Skip to main content
Every order belongs to a customer: the end user who receives the fiat or the crypto. Before you can create an order, the customer must be VERIFIED and, for payouts, have a bank account.

Pick an onboarding flow

The customer object

Create a customer with POST /customer/create.
  • client_reference_id and alpha_3_country_code are required. client_reference_id is your ID for the user. If you send one that already exists, Zapyd returns the existing customer, so you can retry this call safely.
  • Send full_name, or first_name with last_name.
  • alpha_3_country_code must be enabled for your organization, otherwise the call fails with REQ_INVALID_COUNTRY. US customers also need dob (YYYY-MM-DD).
  • email and phone are required only when your organization has email or phone verification turned on. Send phone without the country code. The response returns it with the dial code, for example +919911002211.
  • Store the returned id. Every other call uses it as customer_id.

Standard KYC

Choose one method per customer.

KYC sharing

You already verify users. Submit the verified data by API, and Zapyd runs its own checks. India.

KYC SDK

Redirect the user to a hosted link. Zapyd collects documents, runs liveness and verifies them. Required for the USA.

KYC statuses

Each customer gets three attempts. After three failures the customer is blocked, and Zapyd support resolves it manually. To redo KYC from scratch, for example with a different document, call Reset KYC. This sets the customer back to UNVERIFIED, and they can’t transact until KYC passes again.
In sandbox, skip real KYC. Mock KYC Status sets any customer to VERIFIED, or to a failure such as DOCUMENT_VERIFICATION_FAILED.

Next: bank accounts

Payouts need a bank account in the customer’s name, and some payins use one too. See Bank accounts and wallets.