Skip to main content
Use KYC sharing if you already verify your users. You collect the documents and submit the verified data to Zapyd. Zapyd stores it and runs its own compliance checks.
KYC sharing accepts customers from India (IND). For US customers, use the KYC SDK.

Flow

1. Create the customer

Create a customer with POST /customer/create and save its id. See the customer object.

2. Get the KYC configuration

Your organization’s configuration decides which documents are accepted and which extra fields you must send. Read it once per customer country.

3. Submit the KYC data

Send the verified data with POST /kyc/add-kyc-data. The customer moves to PROCESSING.
string
required
The customer, their legal name, their phone number without country code (9–10 digits), and their full residential address.
string (DD-MM-YYYY)
required
Date of birth, and the date the user registered on your platform.
string
required
One of supported_document_types from step 2.
string (URL)
JPG, JPEG, PNG or PDF. Required for every document type except AADHAAR, which also accepts aadhaar_json or aadhaar_xml in document_details.additional_data.
string
required
The document’s number (for a passport, the file number): 6–20 letters, digits or hyphens.
string (URL)
required
JPG, JPEG or PNG. The face must be clearly visible.
string
Optional. The PAN in India.
object
The fields your configuration requires.
string
Optional. The end user’s IP address.
Send image URLs, not base64. Host the files somewhere Zapyd can download them, and make sure the images are sharp and every word on the document is readable.

4. Wait for the result

Zapyd runs these checks. The first one that fails sets the failure_reason: Most results arrive within 60 seconds. Manual review can take up to 24 hours. Zapyd sends the result as a CUSTOMER webhook:
If you can’t receive webhooks, poll GET /customer/{customer_id} no more than once a minute and read status and failure_reason.

5. Fix a failure

Resubmit only the part that failed. Each update moves the customer back to PROCESSING and uses one of the customer’s three attempts.
PATCH /cms/api/v1/kyc/update-tax-info
KYC_FAILED means the customer can’t be verified. Don’t retry. Contact support with the customer_id. Usual causes of a failure: blurry images, an expired document, a name that differs between documents, or a mistyped tax number. Show the user what to fix before they use another attempt.

Test it in sandbox

  1. Create a customer and submit KYC data with any well-formed values.
  2. Set a result with Mock KYC Status. kyc_status accepts VERIFIED, UNVERIFIED, DOCUMENT_VERIFICATION_FAILED, TAX_VERIFICATION_FAILED and ADDITIONAL_INFO_VERIFICATION_FAILED.
  3. Check that your webhook handler and your update flow work, then set VERIFIED.

Next

Add the customer’s bank account: Bank accounts and wallets.