Skip to main content
After creating an individual customer, you must complete identity verification (KYC) before they can transact. This guide walks through each step of the process.
If you don’t want to build the verification flow via API, you can share the verification.link returned in the customer response directly with your customer. The link opens a guided flow where they can submit all required information and documents without any additional API integration.

Prerequisites

Verification flow

1

Accept terms of service

Before starting verification, the customer must accept the terms of service. Send a POST request to /customers/{id}/tos to get the acceptance URL. You can optionally include a redirectUrl to redirect the customer after they accept.
Request
Response
Share the returned URL with your customer. The link expires after 24 hours. Generate a new one if needed. The requirements array will show TERMS_OF_SERVICE as NOT_SENT until they accept. You can check the status by reading the customer.
The request body is optional. If you don’t need to redirect the customer after acceptance, you can send the request without a body.
2

Send additional information

Send a PATCH request to /customers/{id}/additional-information with the customer’s personal and transactional information. This has to be done before uploading documents.
Request
All fields are required unless noted otherwise. Here’s a summary of the key fields:For all accepted values, see the API Reference.
3

Upload documents

Upload the required documents using POST /customers/{id}/documents. Each document is sent as a multipart/form-data request.Required documents:
  • One identity document: ID_CARD, PASSPORT, or DRIVERS_LICENSE
  • BANK_STATEMENT (must be from the last 6 months)
  • PROOF_OF_ADDRESS (must be from the last 90 days)
Optional documents:
  • INCOME_TAX_RETURN (must be from the last calendar year)
  • DELIVERY_RECEIPT (must be from the last calendar year)
  • OTHER (any additional document)
Identity documents (ID_CARD and DRIVERS_LICENSE) require the side field. Upload the front and back as separate requests. For the digital Brazilian driver’s license (CNH digital), the side field is not needed.
Upload identity document (front)
Upload identity document (back)
Upload bank statement
Files must be JPG, PNG, or PDF with a maximum size of 50MB.
4

Complete liveness check

The customer must complete a liveness check by accessing the verification.link returned in the customer response. This link opens a guided selfie flow.You can retrieve the link at any time by reading the customer:
For individual customers, verification starts automatically after the liveness check is completed. You do not need to call a separate endpoint to start verification.
5

Monitor verification status

Check the verification status by reading the customer’s verification:
Request
Response
You can also receive status updates via webhooks instead of polling.
In sandbox, you can simulate different verification statuses using magic numbers in the customer’s taxId. See Sandbox magic numbers for the full list.

Handling rejections

When a customer receives RFI, the verification response includes details about what needs to be corrected:
Re-upload the corrected documents and the verification will automatically resume.
A FINAL_REJECTION is permanent. The customer cannot resubmit documents or be re-verified.

Review timeline

Standard KYC verification is typically reviewed within 1 business day. See Identity Verification for full details.

Webhooks

Receive real-time status updates.

Transaction Limits

Understand post-verification limits.

Identity Verification

Full compliance requirements.