Skip to main content
Onboarding creates your customer as a Ndovu investor, ready to invest. You identify each customer by your own ID for them, 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

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 on externalUserId, so you can retry after a timeout without creating a duplicate:
  • Same externalUserId and same details: 200 OK with "message": "Customer already exists" and the existing customer.
  • Same externalUserId and different details: 409 CUSTOMER_EXTERNAL_ID_CONFLICT. Use update to change details.
For REFERENCED, any resend of an existing externalUserId is a retry and returns 200.

List customers

Your customers, newest first.
Each item is the customer as Get a customer returns it, without 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

Returns the same shape as create, with 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

Send only the fields you want to change. Any create field can be updated, identity included, except externalUserId, termsAndConditionsAccepted and kycVerification. Fields inside kyc are merged, so sending kyc.city leaves the other KYC fields as they were.
An update is all or nothing: if any check fails, nothing is changed. Returns the updated customer with 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:
  • externalUserId identifies one customer.
  • No two customers share an email or a phone number (409 CUSTOMER_EMAIL_OR_PHONE_IN_USE). Jane@Example.com and jane@example.com count as the same email.
  • No two customers share an ID number for the same issuing country (409 CUSTOMER_IDENTITY_IN_USE).
These checks only look at your own customers. A person who is also a direct Ndovu customer, or a customer of another partner, can be onboarded by you.

Errors

See Errors for the error format.