externalUserId; you never need to store an ID of ours.
What you send depends on your identityPolicy: with SHARED you send the customer’s identity, with REFERENCED you send none.
Create a customer
- REFERENCED
Body
kyc fields
All optional. Send what you hold; anything you leave out is returned as null.
Fields not listed here are refused, so a typo fails loudly instead of being dropped.
Response
201 Created for a new customer:
Retrying safely
Create is idempotent onexternalUserId, so you can retry after a timeout without creating a duplicate:
- Same
externalUserIdand same details:200 OKwith"message": "Customer already exists"and the existing customer. - Same
externalUserIdand different details:409 CUSTOMER_EXTERNAL_ID_CONFLICT. Use update to change details.
REFERENCED, any resend of an existing externalUserId is a retry and returns 200.
List customers
documents (their download links are created per read, so get the customer for them). With REFERENCED, the identity fields are null. nextCursor is the last customer’s externalUserId, or null on the last page; pass it as cursor to get the next page. A cursor that isn’t one of your customers returns 400 INVALID_CUSTOMER_CURSOR.
Get a customer
200 OK, or 404 CUSTOMER_NOT_FOUND if you have no customer with that externalUserId. You can only see your own customers.
Update a customer
externalUserId, termsAndConditionsAccepted and kycVerification. Fields inside kyc are merged, so sending kyc.city leaves the other KYC fields as they were.
200 OK.
A REFERENCED account holds no customer details to update, so every update field is refused with 400 CUSTOMER_PII_NOT_ACCEPTED.
Uniqueness
Within your account:externalUserIdidentifies one customer.- No two customers share an email or a phone number (
409 CUSTOMER_EMAIL_OR_PHONE_IN_USE).Jane@Example.comandjane@example.comcount as the same email. - No two customers share an ID number for the same issuing country (
409 CUSTOMER_IDENTITY_IN_USE).
Errors
See Errors for the error format.

