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
- A business customer already created (see Create a Customer)
- An API key from the Dashboard
- Your environment base URL (see Environments)
Verification flow
Send additional information
Send a All fields are required. Here’s a summary of the business-specific fields:
For all accepted values, see the API Reference.
PATCH request to /customers/{id}/additional-information with the company’s details and transactional information.Request
| Field | Description |
|---|---|
companyType | Type of company (e.g., BLOCKCHAIN_SOFTWARE_COMPANY, PAYMENT_GATEWAY) |
annualRevenue | Company’s annual revenue in USD |
monthlyTransactionVolume | Expected monthly transaction volume |
complianceAndAML | Description of the company’s compliance and AML policies |
isRegulatedActivity | Whether the company is involved in regulated activities |
regulatedActivityDetails | Details if isRegulatedActivity is true |
website | Company website URL |
sourceOfFunds | Origin of funds (e.g., COMPANY, COMPANY_CAPITAL, INVESTMENT) |
servicesProvided | Description of the services or products the company offers |
Upload company documents
Upload company documents using Files must be JPG, PNG, or PDF with a maximum size of 50MB.
POST /customers/{id}/documents. Each document is sent as a multipart/form-data request.Required documents:INCORPORATION_ARTICLESSHAREHOLDER_REGISTRYDIRECTORS_REGISTRY
POWER_OF_ATTORNEYREGULATED_ACTIVITY_DOCUMENTSIGNED_BALANCE_SHEETSIGNED_CORPORATE_STRUCTURE_CHARTSIGNED_INCOME_STATEMENTOTHER(any additional document)
Upload incorporation articles
Upload shareholder registry
Upload directors registry
Add associated parties
Add the company’s UBOs, shareholders, and representatives using
POST /customers/{id}/associated-parties.There are three roles:- UBO (Ultimate Beneficial Owner) — Always
INDIVIDUALtype. RequiresownershipPercentage(25–100%). - SHAREHOLDER — Can be
INDIVIDUALorBUSINESStype. RequiresownershipPercentage(25–100%). - REPRESENTATIVE — Always
INDIVIDUALtype. NoownershipPercentageneeded.
- UBO (Individual)
- Representative
Request
Response
Upload associated party documents
Upload documents for each associated party using the same Business associated parties need company formation documents:
POST /customers/{id}/documents endpoint, but include the associatedPartyId field.Individual associated parties need an identity document (ID_CARD, PASSPORT, or DRIVERS_LICENSE):Upload identity document for associated party (front)
Upload identity document for associated party (back)
Upload incorporation articles for business shareholder
Upload directors registry for business shareholder
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
Monitor verification status
Check the verification status using the verification ID returned in the previous step:
You can also receive status updates via webhooks instead of polling.
Request
Response
| Status | Description |
|---|---|
NOT_STARTED | Verification created but review not yet started |
UNDER_VERIFICATION | Documents submitted and being reviewed |
APPROVED | Verification complete — customer can transact |
TEMPORARY_REJECTION | Additional documentation required |
FINAL_REJECTION | Customer permanently rejected |
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 theparentId 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
Handling rejections
When a business receivesTEMPORARY_REJECTION, the verification response includes details about what needs to be corrected: