Update customer by ID
Update a customer’s metadata by their system-generated ID.
Most customer updates complete synchronously and return 200 with the updated customer.
Changing email for a customer whose Embedded Wallet signs in with an EMAIL_OTP credential, or phoneNumber for one that signs in with an SMS_OTP credential, changes how the customer signs in. The customer must first prove they control the new contact:
-
Register the new contact with
POST /auth/credentials, passingemailorphoneNumber. Grid sends a one-time code to it and returns the replacement credential. -
Verify that code with
POST /auth/credentials/{id}/verify. Grid answers204. A replacement that is not verified within 24 hours expires. -
Call
PATCH /customers/{customerId}with onlycustomerTypeand the new contact. Grid returns202withpayloadToSign,requestId, andexpiresAt. Send this soon after verifying: if the verification would lapse before the challenge does, Grid returnsAUTH_CREDENTIAL_VERIFICATION_EXPIREDinstead, and the customer must verify again. -
Use the session API keypair of an active session on the same Embedded Wallet to build an API-key stamp over
payloadToSign. Retry the same request with that full stamp as theGrid-Wallet-Signatureheader and therequestIdechoed back as theRequest-Idheader. The signed retry returns200with the updated customer, and the replacement becomes the wallet’s sign-in credential in place of the old one. If the change is still being applied, the retry returns200with aWalletOperationProcessingbody; re-send the identical signed request until it returns the customer.
A change to a sign-in contact without a verified replacement returns 400 with AUTH_CREDENTIAL_VERIFICATION_REQUIRED. Customers without an Embedded Wallet credential of that type change email or phoneNumber with a plain update. A business administrator’s credentials (those with adminReference) are not tied to the customer’s contact and keep their own email.
Update email and phoneNumber in separate PATCH calls. A request that includes both fields is rejected.
Authorizations
API token authentication using format <api token id>:<api client secret>
Headers
Full API-key stamp built over the prior payloadToSign with the session API keypair of an active session on the Embedded Wallet whose sign-in contact is changing. Required on the signed retry of a sign-in contact change; 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 of a sign-in contact change; must be paired with Grid-Wallet-Signature.
Path Parameters
System-generated unique customer identifier
Body
- Individual Customer Update Request
- Business Customer Update Request
Enhanced-due-diligence (EDD) fields available as optional patchable attributes on an individual customer. Referenced via allOf from IndividualCustomerFields, so these appear as top-level optional fields on the customer resource itself; there is no separate EDD resource. The specific set required for a given customer is driven by the KYC provider's per-jurisdiction / per-flow / per-volume-tier rules (surfaced through MISSING_FIELD errors on POST /verifications).
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.
Email address for the customer. If the customer's Embedded Wallet signs in with an EMAIL_OTP credential, the new address must first be registered and verified as a replacement credential, and the change is sent on its own. A business administrator's credentials are not changed.
255"john.doe@example.com"
Phone number for the customer in strict E.164 format. If the customer's Embedded Wallet signs in with an SMS_OTP credential, the new number must first be registered and verified as a replacement credential, and the change is sent on its own. Send phone number and email updates as separate PATCH calls.
^\+[1-9]\d{1,14}$"+14155551234"
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"
Deprecated; send agreementConsents instead. Supplying this records acceptance of the Lightspark End User Terms, equivalent to a single agreementConsents entry of type LIGHTSPARK_END_USER_TERMS. Supplying both fields in one request is rejected.
Evidence that the customer accepted Grid agreements, at most one entry per type. Supplying this records additional acceptances; it never withdraws or replaces evidence already recorded for other types. Omitting the field leaves recorded consents unchanged.
The current KYC status of a customer. HOLD means the customer is placed on hold and may be required to update or provide more information.
UNVERIFIED, PENDING, APPROVED, REJECTED, HOLD "APPROVED"
Individual's full name
250"John Michael Doe"
Date of birth in ISO 8601 format (YYYY-MM-DD)
"1990-01-15"
Country code (ISO 3166-1 alpha-2)
"US"
Type of tax identification
SSN, ITIN, EIN, NON_US_TAX_ID "SSN"
The individual's tax identification number: an SSN (format ###-##-####) or ITIN, or a non-US tax ID (idType NON_US_TAX_ID) with its non-US countryOfIssuance. US residents must provide an SSN or ITIN. Write-only — never returned in customer responses.
100"123-45-6789"
Country that issued the identification (ISO 3166-1 alpha-2). For an SSN or ITIN this is optional, defaults to US, and is rejected if set to anything else. For a NON_US_TAX_ID, set it to the issuing non-US country; US is rejected.
"US"
Structured source-of-funds categories (FLOW of funds for this account).
1A structured source-of-funds category for an individual customer (FLOW of funds into this account). Distinct from SourceOfFundsCategory, which covers business customers.
SALARY, SELF_EMPLOYMENT_INCOME, INVESTMENT_INCOME, PENSION, RENTAL_INCOME, GIFT, INHERITANCE, LOAN, SAVINGS, SALE_OF_ASSETS, OTHER Free-form description of the customer's source of funds. Required when sourceOfFundsCategories includes OTHER; otherwise omitted.
500"Contest winnings"
Structured source-of-wealth categories (STOCK — origin of accumulated wealth).
1Origin of the customer's accumulated wealth (STOCK). Distinct from SourceOfFundsCategory which describes the FLOW of funds for this specific account.
SALARY, BUSINESS_INCOME, INVESTMENTS, INHERITANCE, PROPERTY_SALE, GIFT, RETIREMENT, SAVINGS, OTHER Free-form description of the customer's source of wealth. Required when sourceOfWealthCategories includes OTHER; otherwise omitted.
500"Royalty income from published works"
The intended purpose for using the Grid account
CONTRACTOR_PAYOUTS, CREATOR_PAYOUTS, EMPLOYEE_PAYOUTS, MARKETPLACE_SELLER_PAYOUTS, SUPPLIER_PAYMENTS, CROSS_BORDER_B2B, AR_AUTOMATION, AP_AUTOMATION, EMBEDDED_PAYMENTS, PLATFORM_FEE_COLLECTION, P2P_TRANSFERS, CHARITABLE_DONATIONS, OTHER "CONTRACTOR_PAYOUTS"
Free-form description of the customer's intended purpose for the Grid account. Required when purposeOfAccount is OTHER; otherwise omitted.
500"Household budgeting between spouses"
Expected number of transactions per month
COUNT_UNDER_10, COUNT_10_TO_100, COUNT_100_TO_500, COUNT_500_TO_1000, COUNT_OVER_1000 "COUNT_100_TO_500"
Expected total transaction volume per month in USD equivalent
VOLUME_UNDER_10K, VOLUME_10K_TO_100K, VOLUME_100K_TO_1M, VOLUME_1M_TO_10M, VOLUME_OVER_10M "VOLUME_100K_TO_1M"
Bucketed annual income (USD equivalent). Used for enhanced due diligence on higher-risk profiles.
UNDER_50K, RANGE_50K_100K, RANGE_100K_250K, RANGE_250K_1M, OVER_1M "RANGE_100K_250K"
Bucketed total net worth (USD equivalent). Used for enhanced due diligence on higher-risk profiles.
UNDER_100K, RANGE_100K_500K, RANGE_500K_1M, RANGE_1M_5M, RANGE_5M_25M, OVER_25M "RANGE_500K_1M"
Political exposure declaration (Politically Exposed Person status). HIO = head of an international organization. FAMILY_OR_ASSOCIATE covers close family members and known close associates of a PEP.
NONE, DOMESTIC, FOREIGN, HIO, FAMILY_OR_ASSOCIATE "NONE"
Response
Customer updated successfully. For a sign-in contact change, this is returned only on the signed retry: the updated customer once the change has landed, or a WalletOperationProcessing body with status: "PROCESSING" while it is still being applied. Re-send the identical signed request until it returns the customer.
- Individual Customer
- Business Customer
- Wallet Operation Processing
Enhanced-due-diligence (EDD) fields available as optional patchable attributes on an individual customer. Referenced via allOf from IndividualCustomerFields, so these appear as top-level optional fields on the customer resource itself; there is no separate EDD resource. The specific set required for a given customer is driven by the KYC provider's per-jurisdiction / per-flow / per-volume-tier rules (surfaced through MISSING_FIELD errors on POST /verifications).
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"
Deprecated; read agreementConsents instead. Mirrors the customer's LIGHTSPARK_END_USER_TERMS acceptance when one is on file, and is omitted otherwise.
The customer's recorded agreement acceptances, one entry per accepted type holding that type's most recent acceptance. Omitted when the customer has not accepted any agreement yet.
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.
Email address for the customer.
"john.doe@example.com"
Phone number for the customer in strict E.164 format.
^\+[1-9]\d{1,14}$"+14155551234"
Creation timestamp
"2025-07-21T17:32:28Z"
Last update timestamp
"2025-07-21T17:32:28Z"
Whether the customer is marked as deleted
false
Email and phone verification state. Only present when the customer's payment provider requires it (e.g. EU customers); omitted otherwise.
The current KYC status of a customer. HOLD means the customer is placed on hold and may be required to update or provide more information.
UNVERIFIED, PENDING, APPROVED, REJECTED, HOLD "APPROVED"
Individual's full name
250"John Michael Doe"
Date of birth in ISO 8601 format (YYYY-MM-DD)
"1990-01-15"
Country code (ISO 3166-1 alpha-2)
"US"
Type of tax identification
SSN, ITIN, EIN, NON_US_TAX_ID "SSN"
Country that issued the identification (ISO 3166-1 alpha-2). For an SSN or ITIN this is optional, defaults to US, and is rejected if set to anything else. For a NON_US_TAX_ID, set it to the issuing non-US country; US is rejected.
"US"
Structured source-of-funds categories (FLOW of funds for this account).
1A structured source-of-funds category for an individual customer (FLOW of funds into this account). Distinct from SourceOfFundsCategory, which covers business customers.
SALARY, SELF_EMPLOYMENT_INCOME, INVESTMENT_INCOME, PENSION, RENTAL_INCOME, GIFT, INHERITANCE, LOAN, SAVINGS, SALE_OF_ASSETS, OTHER Free-form description of the customer's source of funds. Required when sourceOfFundsCategories includes OTHER; otherwise omitted.
500"Contest winnings"
Structured source-of-wealth categories (STOCK — origin of accumulated wealth).
1Origin of the customer's accumulated wealth (STOCK). Distinct from SourceOfFundsCategory which describes the FLOW of funds for this specific account.
SALARY, BUSINESS_INCOME, INVESTMENTS, INHERITANCE, PROPERTY_SALE, GIFT, RETIREMENT, SAVINGS, OTHER Free-form description of the customer's source of wealth. Required when sourceOfWealthCategories includes OTHER; otherwise omitted.
500"Royalty income from published works"
The intended purpose for using the Grid account
CONTRACTOR_PAYOUTS, CREATOR_PAYOUTS, EMPLOYEE_PAYOUTS, MARKETPLACE_SELLER_PAYOUTS, SUPPLIER_PAYMENTS, CROSS_BORDER_B2B, AR_AUTOMATION, AP_AUTOMATION, EMBEDDED_PAYMENTS, PLATFORM_FEE_COLLECTION, P2P_TRANSFERS, CHARITABLE_DONATIONS, OTHER "CONTRACTOR_PAYOUTS"
Free-form description of the customer's intended purpose for the Grid account. Required when purposeOfAccount is OTHER; otherwise omitted.
500"Household budgeting between spouses"
Expected number of transactions per month
COUNT_UNDER_10, COUNT_10_TO_100, COUNT_100_TO_500, COUNT_500_TO_1000, COUNT_OVER_1000 "COUNT_100_TO_500"
Expected total transaction volume per month in USD equivalent
VOLUME_UNDER_10K, VOLUME_10K_TO_100K, VOLUME_100K_TO_1M, VOLUME_1M_TO_10M, VOLUME_OVER_10M "VOLUME_100K_TO_1M"
Bucketed annual income (USD equivalent). Used for enhanced due diligence on higher-risk profiles.
UNDER_50K, RANGE_50K_100K, RANGE_100K_250K, RANGE_250K_1M, OVER_1M "RANGE_100K_250K"
Bucketed total net worth (USD equivalent). Used for enhanced due diligence on higher-risk profiles.
UNDER_100K, RANGE_100K_500K, RANGE_500K_1M, RANGE_1M_5M, RANGE_5M_25M, OVER_25M "RANGE_500K_1M"
Political exposure declaration (Politically Exposed Person status). HIO = head of an international organization. FAMILY_OR_ASSOCIATE covers close family members and known close associates of a PEP.
NONE, DOMESTIC, FOREIGN, HIO, FAMILY_OR_ASSOCIATE "NONE"