Saltar al contenido principal
Update a Customer by ID
curl --request PATCH \
  --url https://api.spherepay.co/v2/customer/{id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "address": {
    "line1": "233 South Wacker Drive",
    "line2": "Suite 4700",
    "city": "Chicago",
    "postalCode": "60606",
    "state": "IL",
    "country": "USA"
  },
  "personalInformation": {
    "taxIdentificationNumber": "123456789",
    "taxIdentificationNumberType": "ssn",
    "taxIdentificationNumberCountry": "USA",
    "taxIdentificationNumberDescription": "<string>",
    "gender": "male",
    "countryOfBirth": "USA",
    "nationality": "USA",
    "middleName": "James",
    "occupationSocCode": "15-1132",
    "residencyCountry": "USA",
    "sourceOfFunds": "salary"
  },
  "meta": {
    "key": "value"
  }
}
'
import requests

url = "https://api.spherepay.co/v2/customer/{id}"

payload = {
"address": {
"line1": "233 South Wacker Drive",
"line2": "Suite 4700",
"city": "Chicago",
"postalCode": "60606",
"state": "IL",
"country": "USA"
},
"personalInformation": {
"taxIdentificationNumber": "123456789",
"taxIdentificationNumberType": "ssn",
"taxIdentificationNumberCountry": "USA",
"taxIdentificationNumberDescription": "<string>",
"gender": "male",
"countryOfBirth": "USA",
"nationality": "USA",
"middleName": "James",
"occupationSocCode": "15-1132",
"residencyCountry": "USA",
"sourceOfFunds": "salary"
},
"meta": { "key": "value" }
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.patch(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
address: {
line1: '233 South Wacker Drive',
line2: 'Suite 4700',
city: 'Chicago',
postalCode: '60606',
state: 'IL',
country: 'USA'
},
personalInformation: {
taxIdentificationNumber: '123456789',
taxIdentificationNumberType: 'ssn',
taxIdentificationNumberCountry: 'USA',
taxIdentificationNumberDescription: '<string>',
gender: 'male',
countryOfBirth: 'USA',
nationality: 'USA',
middleName: 'James',
occupationSocCode: '15-1132',
residencyCountry: 'USA',
sourceOfFunds: 'salary'
},
meta: {key: 'value'}
})
};

fetch('https://api.spherepay.co/v2/customer/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.spherepay.co/v2/customer/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'address' => [
'line1' => '233 South Wacker Drive',
'line2' => 'Suite 4700',
'city' => 'Chicago',
'postalCode' => '60606',
'state' => 'IL',
'country' => 'USA'
],
'personalInformation' => [
'taxIdentificationNumber' => '123456789',
'taxIdentificationNumberType' => 'ssn',
'taxIdentificationNumberCountry' => 'USA',
'taxIdentificationNumberDescription' => '<string>',
'gender' => 'male',
'countryOfBirth' => 'USA',
'nationality' => 'USA',
'middleName' => 'James',
'occupationSocCode' => '15-1132',
'residencyCountry' => 'USA',
'sourceOfFunds' => 'salary'
],
'meta' => [
'key' => 'value'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.spherepay.co/v2/customer/{id}"

payload := strings.NewReader("{\n \"address\": {\n \"line1\": \"233 South Wacker Drive\",\n \"line2\": \"Suite 4700\",\n \"city\": \"Chicago\",\n \"postalCode\": \"60606\",\n \"state\": \"IL\",\n \"country\": \"USA\"\n },\n \"personalInformation\": {\n \"taxIdentificationNumber\": \"123456789\",\n \"taxIdentificationNumberType\": \"ssn\",\n \"taxIdentificationNumberCountry\": \"USA\",\n \"taxIdentificationNumberDescription\": \"<string>\",\n \"gender\": \"male\",\n \"countryOfBirth\": \"USA\",\n \"nationality\": \"USA\",\n \"middleName\": \"James\",\n \"occupationSocCode\": \"15-1132\",\n \"residencyCountry\": \"USA\",\n \"sourceOfFunds\": \"salary\"\n },\n \"meta\": {\n \"key\": \"value\"\n }\n}")

req, _ := http.NewRequest("PATCH", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.patch("https://api.spherepay.co/v2/customer/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"address\": {\n \"line1\": \"233 South Wacker Drive\",\n \"line2\": \"Suite 4700\",\n \"city\": \"Chicago\",\n \"postalCode\": \"60606\",\n \"state\": \"IL\",\n \"country\": \"USA\"\n },\n \"personalInformation\": {\n \"taxIdentificationNumber\": \"123456789\",\n \"taxIdentificationNumberType\": \"ssn\",\n \"taxIdentificationNumberCountry\": \"USA\",\n \"taxIdentificationNumberDescription\": \"<string>\",\n \"gender\": \"male\",\n \"countryOfBirth\": \"USA\",\n \"nationality\": \"USA\",\n \"middleName\": \"James\",\n \"occupationSocCode\": \"15-1132\",\n \"residencyCountry\": \"USA\",\n \"sourceOfFunds\": \"salary\"\n },\n \"meta\": {\n \"key\": \"value\"\n }\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.spherepay.co/v2/customer/{id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"address\": {\n \"line1\": \"233 South Wacker Drive\",\n \"line2\": \"Suite 4700\",\n \"city\": \"Chicago\",\n \"postalCode\": \"60606\",\n \"state\": \"IL\",\n \"country\": \"USA\"\n },\n \"personalInformation\": {\n \"taxIdentificationNumber\": \"123456789\",\n \"taxIdentificationNumberType\": \"ssn\",\n \"taxIdentificationNumberCountry\": \"USA\",\n \"taxIdentificationNumberDescription\": \"<string>\",\n \"gender\": \"male\",\n \"countryOfBirth\": \"USA\",\n \"nationality\": \"USA\",\n \"middleName\": \"James\",\n \"occupationSocCode\": \"15-1132\",\n \"residencyCountry\": \"USA\",\n \"sourceOfFunds\": \"salary\"\n },\n \"meta\": {\n \"key\": \"value\"\n }\n}"

response = http.request(request)
puts response.read_body
{
  "id": "customer_f31121c389624d3697cbf3ea8830b7a4",
  "verificationProfiles": [
    {
      "name": "kyc_profile_a",
      "status": "incomplete",
      "criteria": {
        "complete": [
          "email_address",
          "phone_number",
          "residential_address",
          "tax_identification_number"
        ],
        "pending": [],
        "required": [
          "identity_document",
          "liveness_report_document"
        ],
        "errors": []
      }
    }
  ],
  "tosStatus": "incomplete",
  "createdAt": "2026-03-09T20:46:31.305Z",
  "updatedAt": "2026-03-09T20:46:31.305Z",
  "type": "individual",
  "email": "jane.smith@example.com",
  "phone": "+14155550123",
  "meta": {},
  "firstName": "Jane",
  "lastName": "Smith",
  "dateOfBirth": "1990-01-15",
  "personalInformation": {
    "taxIdentificationNumberType": "ssn",
    "taxIdentificationNumberCountry": "USA",
    "taxIdentificationNumberDescription": "<string>",
    "gender": "male",
    "countryOfBirth": "USA",
    "nationality": "USA",
    "middleName": "James",
    "occupationSocCode": "15-1132",
    "residencyCountry": "USA",
    "sourceOfFunds": "salary"
  }
}
{
"status": 400,
"detail": "Invalid request parameters",
"code": "address/invalid",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c"
}
{
"status": 404,
"detail": "Resource not found",
"code": "resource/not-found",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c"
}
{
"status": 422,
"detail": "Validation failed",
"code": "validation/failed",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"errors": [
{
"detail": "Invalid email format",
"pointer": "/email"
},
{
"detail": "Name is required",
"pointer": "/name"
}
]
}
Usa este endpoint para actualizar los campos mutables en un cliente individual existente. Puedes actualizar la dirección, información personal y metadatos del cliente en cualquier momento antes del envío de KYC. Una vez que una revisión de KYC ha sido enviada, los campos de identidad como nombre, fecha de nacimiento y número de identificación fiscal quedan bloqueados y no pueden cambiarse — solo los datos de contacto y metadatos siguen siendo editables.
Este endpoint actualmente soporta actualizaciones solo para clientes individuales. Los campos de cliente empresarial deben gestionarse a través del flujo de link KYC.

Autorizaciones

Authorization
string
header
requerido

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Parámetros de ruta

id
string
requerido

Customer ID

Ejemplo:

"customer_f31121c389624d3697cbf3ea8830b7a4"

Cuerpo

application/json
address
object

The address of the customer. Required if personalInformation is provided.

Ejemplo:
{
"line1": "233 South Wacker Drive",
"line2": "Suite 4700",
"city": "Chicago",
"postalCode": "60606",
"state": "IL",
"country": "USA"
}
personalInformation
object

Personal information including tax identification details for individual customers. When any tax identification field is provided, all tax identification fields (number, type, country) and address are required. Please refer to the Individual Verification Criteria for the full list of reference.

meta
object

The customer metadata

Ejemplo:
{ "key": "value" }

Respuesta

Response containing information about an individual customer.

id
string
requerido

Customer ID

Ejemplo:

"customer_f31121c389624d3697cbf3ea8830b7a4"

verificationProfiles
object[]
requerido

Array of verification profiles. For individual customers, this will include kyc_profile_a. For business customers, this will include kyb_profile_a. See KYC Flow for individuals or KYB Flow for businesses. See Verification Profile for individual status definitions and criteria breakdown or Verification Profile for business status definitions and criteria breakdown.

Ejemplo:
[
{
"name": "kyc_profile_a",
"status": "incomplete",
"criteria": {
"complete": [
"email_address",
"phone_number",
"residential_address",
"tax_identification_number"
],
"pending": [],
"required": [
"identity_document",
"liveness_report_document"
],
"errors": []
}
}
]
tosStatus
enum<string>
requerido

Customer Terms of Service acceptance status (incomplete | pending | approved).

Opciones disponibles:
incomplete,
pending,
approved
Ejemplo:

"incomplete"

createdAt
string
requerido

ISO 8601 formatted customer creation timestamp

Ejemplo:

"2026-03-09T20:46:31.305Z"

updatedAt
string
requerido

ISO 8601 formatted customer update timestamp

Ejemplo:

"2026-03-09T20:46:31.305Z"

type
enum<string>
requerido

Customer type

Opciones disponibles:
individual
Ejemplo:

"individual"

email
string

Customer email address

Ejemplo:

"jane.smith@example.com"

phone
string

Customer phone number

Ejemplo:

"+14155550123"

meta
object
firstName
string

Customer first name (individual customers only)

Ejemplo:

"Jane"

lastName
string

Customer last name (individual customers only)

Ejemplo:

"Smith"

dateOfBirth
string

The customer's date of birth in YYYY-MM-DD format (individual customers only).

Ejemplo:

"1990-01-15"

personalInformation
object

Personal information for an individual customer, echoed back from the most recent submission. The tax identification number is omitted from responses for privacy.

Última modificación el 22 de junio de 2026