Skip to main content
After creating a business customer, you must complete identity verification (KYB) before they can transact. Business verification requires company information, documents, and details about associated parties (UBOs, shareholders, and representatives).
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.
If you start the verification process through the API, do not share the verification.link with your customer. Mixing both approaches can cause conflicts and lead to unexpected issues during the verification flow.

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 company’s details and transactional information.
Request
All fields are required. Here’s a summary of the business-specific fields:For all accepted values, see the API Reference.
3

Upload company documents

Upload company documents using POST /customers/{id}/documents. Each document is sent as a multipart/form-data request.Required documents:
  • INCORPORATION_ARTICLES
  • SHAREHOLDER_REGISTRY
  • DIRECTORS_REGISTRY
  • PROOF_OF_ADDRESS (must be from the last 90 days)
Optional documents:
  • POWER_OF_ATTORNEY
  • REGULATED_ACTIVITY_DOCUMENT
  • SIGNED_BALANCE_SHEET
  • SIGNED_CORPORATE_STRUCTURE_CHART
  • SIGNED_INCOME_STATEMENT
  • OTHER (any additional document)
Upload incorporation articles
Upload shareholder registry
Upload directors registry
Files must be JPG, PNG, or PDF with a maximum size of 50MB.
4

Add associated parties

Add the company’s UBOs, shareholders, and representatives using POST /customers/{id}/associated-parties. Each associated party can have one or more roles.
Before starting verification, the company must have at least one associated party assigned to each required role: UBO, Shareholder, and Representative. A single individual may fulfill multiple roles, and multiple individuals may be assigned to the same role.
There are three role types:
  • UBO (Ultimate Beneficial Owner): always INDIVIDUAL type. Requires ownershipPercentage (25–100%).
  • SHAREHOLDER: can be INDIVIDUAL or BUSINESS type. Requires ownershipPercentage (25–100%).
  • REPRESENTATIVE: always INDIVIDUAL type. No ownershipPercentage needed.
Request
Response
5

Upload associated party documents

Upload documents for each associated party using the same POST /customers/{id}/documents endpoint, but include the associatedPartyId field.Individual associated parties (UBOs, shareholders, and representatives) need an identity document (ID_CARD, PASSPORT, or DRIVERS_LICENSE) and a PROOF_OF_ADDRESS from the last 90 days:
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 for associated party (front)
Upload identity document for associated party (back)
Upload proof of address for associated party
Business associated parties need company formation documents:
Upload incorporation articles for business shareholder
Upload directors registry for business shareholder
6

Start verification

Unlike individual customers, business verification must be started explicitly. Ensure all documents and associated parties are uploaded before calling this endpoint.
Request
Response
Before starting verification, ensure you have:
  • At least one associated party with each role type: UBO, SHAREHOLDER, and REPRESENTATIVE
  • All required company documents uploaded
  • All associated party documents uploaded
Missing documents or role types will delay or prevent the verification review.
7

Monitor verification status

Check the verification status using the verification ID returned in the previous step:
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.

Multi-level corporate structures

If your customer has a multi-level ownership structure (e.g., a holding company that owns another company that owns the customer), you can use the parentId field to nest shareholders across multiple levels. For example, if “Investment Fund ABC” (a business shareholder) has its own individual shareholders, you can link them by passing the fund’s associated party ID as parentId:
Request
This creates the following structure:
Associated parties nested under a shareholder (via parentId) can only have the SHAREHOLDER role. Other roles such as UBO and REPRESENTATIVE are only valid for top-level associated parties.
You can repeat this pattern for as many levels as needed. Each associated party at every level requires its own documents and verification.

Handling rejections

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

Review timeline

Standard KYB verification is typically reviewed within 2 business days. See Identity Verification for full details.

Retrying verification for specific associated parties

When only some associated parties are rejected, you can retry verification for those parties in isolation. Pass associatedPartyIds in the request body when starting a verification:
Request
Only the listed associated parties are sent for verification again. The customer-level verification is not restarted, and any associated party not included in the list keeps its current verification status.
Resubmit any corrected documents/information for the affected associated parties before starting the retry. This option applies only to BUSINESS customers.

Webhooks

Receive real-time status updates.

Transaction Limits

Understand post-verification limits.

Identity Verification

Full compliance requirements.