curl --request PATCH \
--url https://api.lightspark.com/grid/2025-10-13/customers/{customerId} \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"customerType": "INDIVIDUAL",
"fullName": "John Smith",
"birthDate": "1985-06-15",
"currencies": [
"USD",
"EUR",
"USDC"
],
"address": {
"line1": "456 Market St",
"city": "San Francisco",
"state": "CA",
"postalCode": "94103",
"country": "US"
}
}
'{
"platformCustomerId": "9f84e0c2a72c4fa",
"customerType": "INDIVIDUAL",
"umaAddress": "$john.doe@uma.domain.com",
"id": "Customer:019542f5-b3e7-1d02-0000-000000000001",
"region": "US",
"currencies": [
"USD",
"USDC"
],
"email": "john.doe@example.com",
"createdAt": "2025-07-21T17:32:28Z",
"updatedAt": "2025-07-21T17:32:28Z",
"isDeleted": false,
"kycStatus": "APPROVED",
"fullName": "John Michael Doe",
"birthDate": "1990-01-15",
"nationality": "US",
"address": {
"line1": "123 Main Street",
"postalCode": "94105",
"country": "US",
"line2": "Apt 4B",
"city": "San Francisco",
"state": "CA"
}
}Update a customer’s metadata by their system-generated ID.
Most customer updates complete synchronously and return 200 with the updated customer. If the request changes email for a customer that has one or more tied Embedded Wallet internal accounts with EMAIL_OTP credentials, the email change uses the two-step signed-retry flow so the customer’s wallet session authorizes the authentication credential update. On the signed retry, Grid updates the customer email and every tied EMAIL_OTP credential across all tied Embedded Wallets as one logical operation. If any tied credential cannot be updated, the customer email is not changed.
For an Embedded Wallet email update:
Call PATCH /customers/{customerId} with the full update body and no signature headers. Grid returns 202 with payloadToSign, requestId, and expiresAt. The pending challenge binds the submitted update fields and the set of tied Embedded Wallet email OTP credentials that must be updated.
Use the session API keypair of a verified authentication credential on one of the customer’s tied Embedded Wallets to build an API-key stamp over payloadToSign, then retry the same request with that full stamp as the Grid-Wallet-Signature header and the requestId echoed back as the Request-Id header. The retry body must carry the same update fields submitted in step 1. The signed retry returns 200 with the updated customer.
curl --request PATCH \
--url https://api.lightspark.com/grid/2025-10-13/customers/{customerId} \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"customerType": "INDIVIDUAL",
"fullName": "John Smith",
"birthDate": "1985-06-15",
"currencies": [
"USD",
"EUR",
"USDC"
],
"address": {
"line1": "456 Market St",
"city": "San Francisco",
"state": "CA",
"postalCode": "94103",
"country": "US"
}
}
'{
"platformCustomerId": "9f84e0c2a72c4fa",
"customerType": "INDIVIDUAL",
"umaAddress": "$john.doe@uma.domain.com",
"id": "Customer:019542f5-b3e7-1d02-0000-000000000001",
"region": "US",
"currencies": [
"USD",
"USDC"
],
"email": "john.doe@example.com",
"createdAt": "2025-07-21T17:32:28Z",
"updatedAt": "2025-07-21T17:32:28Z",
"isDeleted": false,
"kycStatus": "APPROVED",
"fullName": "John Michael Doe",
"birthDate": "1990-01-15",
"nationality": "US",
"address": {
"line1": "123 Main Street",
"postalCode": "94105",
"country": "US",
"line2": "Apt 4B",
"city": "San Francisco",
"state": "CA"
}
}Documentation Index
Fetch the complete documentation index at: https://ramps-docs-sync-20260519.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
API token authentication using format <api token id>:<api client secret>
Full API-key stamp built over the prior payloadToSign with the session API keypair of a verified authentication credential on one of the customer's tied Embedded Wallets. Required on the signed retry for Embedded Wallet email updates; ignored on the initial call and on customer updates that complete synchronously.
The requestId returned in a prior 202 response, echoed back on the signed retry so the server can correlate it with the issued challenge. Required on the signed retry for Embedded Wallet email updates; must be paired with Grid-Wallet-Signature.
System-generated unique customer identifier
Request body for PATCH /customers/{customerId}. When email changes for a customer with tied Embedded Wallet internal accounts, Grid updates the customer email and every tied EMAIL_OTP credential across all tied Embedded Wallets through the endpoint's signed-retry flow.
Whether the customer is an individual or a business entity
INDIVIDUAL "INDIVIDUAL"
Updated list of currency codes the customer will use (ISO 4217 for fiat, e.g. "USD", "EUR"; tickers for crypto, e.g. "BTC", "USDC"). Replaces the existing list. Some currency combinations may require separate customers — if so, the request will be rejected with details.
["USD", "EUR", "USDC"]Email address for the customer. For customers with tied Embedded Wallet internal accounts, changing this value also updates every tied EMAIL_OTP credential across all tied Embedded Wallets.
"john.doe@example.com"
Optional UMA address identifier. If provided, the customer's UMA address will be updated. This is an optional identifier to route payments to the customer.
"$john.doe@uma.domain.com"
The current KYC status of a customer
UNVERIFIED, PENDING, APPROVED, REJECTED "APPROVED"
Individual's full name
"John Michael Doe"
Date of birth in ISO 8601 format (YYYY-MM-DD)
"1990-01-15"
Country code (ISO 3166-1 alpha-2)
"US"
Show child attributes
Customer updated successfully. For Embedded Wallet email updates, this is returned only on the signed retry after the customer email and all tied email OTP credentials have been updated.
Platform-specific customer identifier
"9f84e0c2a72c4fa"
Whether the customer is an individual or a business entity
INDIVIDUAL "INDIVIDUAL"
Full UMA address (always present in responses, even if system-generated). This is an optional identifier to route payments to the customer.
"$john.doe@uma.domain.com"
System-generated unique identifier
"Customer:019542f5-b3e7-1d02-0000-000000000001"
Country code (ISO 3166-1 alpha-2) representing the customer's regional identity and regulatory jurisdiction.
"US"
List of currency codes enabled for this customer.
["USD", "USDC"]Email address for the customer.
"john.doe@example.com"
Creation timestamp
"2025-07-21T17:32:28Z"
Last update timestamp
"2025-07-21T17:32:28Z"
Whether the customer is marked as deleted
false
The current KYC status of a customer
UNVERIFIED, PENDING, APPROVED, REJECTED "APPROVED"
Individual's full name
"John Michael Doe"
Date of birth in ISO 8601 format (YYYY-MM-DD)
"1990-01-15"
Country code (ISO 3166-1 alpha-2)
"US"
Show child attributes
Was this page helpful?