Add KYC/KYB Details
Submit onboarding details for sub-accounts, including UBO, business identity, conditional risk assessment questions, and supporting documents based on your approved compliance model.
Add KYC/KYB Details
To move from PENDING to ACTIVE status, every sub-account must undergo compliance vetting. This guide details how to submit Ultimate Beneficial Owner (UBO) and Business Identity data programmatically.
[!NOTE] The onboarding sections, questions, and document uploads you submit depend on your approved compliance model and level. Do not assume every sub-account must answer every risk question or upload every document at the start of onboarding.
[!IMPORTANT] Who is a UBO? You must provide details for any individual who owns directly or indirectly
25%or more of the company.
🚀 Onboarding Workflow
Submit a structured object containing the company's operational address and shareholder details.
curl -X POST https://api.sandbox.vertofx.com/v2/sub-accounts/{sub_acc_id}/onboarding \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"companyAddresses": [{
"action": "ADD",
"data": {
"addressLine1": "123 Tech Lane",
"city": "Lagos",
"country": "Nigeria",
"type": "COMPANY_ADDRESS"
}
}],
"shareholders": [{
"action": "ADD",
"data": {
"percentOwnershipInCompany": 100,
"ownerType": "INDIVIDUAL",
"firstName": "Sola",
"lastName": "Aina",
"nationality": "Nigeria",
"isControllingOfficer": true,
"dateOfBirth": "1990-05-15",
"address": {
"addressLine1": "123 Tech Lane",
"city": "Lagos",
"country": "Nigeria",
"type": "HOME_ADDRESS"
}
}
}]
}'📋 Risk Assessment and Document Requirements
The required onboarding payload depends on your approved product model, compliance level, and rollout scope.
Use these rules when you design your onboarding flow:
- Submit only the sections your approved model requires at that stage.
- Treat
riskAssessment,companyDocuments, andshareholderDocumentsas conditional sections, not universal requirements for every integration. - Require the fields inside a section only when that section is part of the onboarding submission.
- Confirm your required onboarding set with your sales contact or account manager before you lock your production workflow.
For lower-complexity setups, including Atlas for Fintech – Level 0, onboarding can begin with a reduced payload. In those cases, do not present all risk questions or document uploads as universally mandatory unless your approved compliance setup explicitly requires them.
When your model requires a risk assessment, each question has a unique id that must be submitted via the Upload Onboarding Data API.
| Question | Type | Scenario | Production ID |
|---|---|---|---|
| How will you receive money? | Multi-Select | Both / Business / Own | 66557b35aa849e0ccd44b906 |
| Monthly Receive Estimate | Single-Select | $0 - $10M+ | 65590c7c1fd1413a63c924a0 |
| Monthly Send Estimate | Single-Select | $0 - $10M+ | 65590c7c1fd1413a63c9249f |
| Destination Countries | Multi-Select | List of Alpha-2 codes | 65590c7c1fd1413a63c924a1 |
| Transaction Purpose | Multi-Select | Operations / Supplier / Payroll | 68376643f74b3108a927cf8e |
[!TIP] Production vs. Sandbox: Ensure you use the correct IDs for your environment. Sandbox IDs differ from the production IDs listed above to prevent environmental bleed.
📎 How to interpret required onboarding sections
Use the matrix below to separate conditionally required sections from fields that become required once you include that section. The Model guidance column reflects only the rules documented on this page.
| Section | What it is for | When to submit it | Model guidance | What is required if you include it |
|---|---|---|---|---|
companyAddresses | Registered or operational business address data | Submit when your approved onboarding flow requires company address verification | Included in the reduced payload example on this page. Confirm whether your approved model requires company address verification at initial onboarding. | Each entry should include the wrapper fields used by the onboarding API, including action and data, and the address type should be set correctly for the record being submitted. |
shareholders | UBO and control-person details | Submit when your model requires ownership or control-person review | Included in the reduced payload example on this page. Required when your approved model includes UBO or control-person review. | Each entry should include action and data, and the shareholder record should contain the identity and ownership fields needed for that person. |
riskAssessment | Business-profile and usage questions | Submit only when your approved model requires onboarding questions at that stage | Not universal. Lower-complexity setups, including Atlas for Fintech – Level 0, can start onboarding without this section unless your approved compliance setup explicitly requires it. | Each answer must reference the correct question id and use the expected answer format for that question. |
companyDocuments | Business verification files | Submit when company-level documents are required for your model or review stage | Not universal. Lower-complexity setups, including Atlas for Fintech – Level 0, can start onboarding without this section unless your approved compliance setup explicitly requires it. | Each document record should include the document metadata and the uploaded file reference returned from your upload flow. |
shareholderDocuments | UBO or officer identity or proof-of-address files | Submit when an individual associated with the sub-account must provide supporting documents | Not universal. Lower-complexity setups, including Atlas for Fintech – Level 0, can start onboarding without this section unless your approved compliance setup explicitly requires it. | Each document record should identify the correct person and include the uploaded file reference and required document metadata. |
📋 Data Schema
Build your onboarding payload in layers. Some sections are conditional, but once you send a section, its internal structure must match the expected compliance primitive.
| Entity | Field | Requirement |
|---|---|---|
| Section wrapper | action | Required for array-based onboarding updates so the API knows whether you are adding or updating a record. |
| Address | type | Use the correct address type for the record you are submitting. Company address records should use COMPANY_ADDRESS. |
| Shareholder | ownership and identity fields | Provide the ownership, name, nationality, and date-of-birth details required for the shareholder or UBO record you are submitting. |
| Shareholder / Officer | isControllingOfficer | Use this boolean to identify the primary legal or control contact when your flow requires an officer record. |
| Risk answer | question id and answer value | Use the exact question identifier for your environment and submit the answer in the expected format. |
| Document record | uploaded file reference | Generate the upload link first, upload the file, then include the resulting file reference in the onboarding payload. |
[!IMPORTANT] Implementation rule Treat onboarding requirements as model-driven, not globally mandatory. Your application should render and validate only the questions, entities, and documents required for the approved compliance level you are implementing.
⚖️ Verification States
Once submitted, the sub-account enters the review queue.
| Status | Meaning |
|---|---|
| 🟡 Draft/Pending | Details partially submitted or awaiting Verto review. |
| 🟢 Approved | Active. The account is now live and can issue wallets/IBANs. |
| ❌ Rejected | Documents failed verification. Contact Support for the specific rejection code. |
🎯 Next Steps
| Create Wallets for a Sub-Account → Create the first wallet once the customer is approved. | Go-Live Requirements → Review the deeper Stage 2 approval logic. |
Updated about 1 month ago
