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:

  1. Submit only the sections your approved model requires at that stage.
  2. Treat riskAssessment, companyDocuments, and shareholderDocuments as conditional sections, not universal requirements for every integration.
  3. Require the fields inside a section only when that section is part of the onboarding submission.
  4. 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.

QuestionTypeScenarioProduction ID
How will you receive money?Multi-SelectBoth / Business / Own66557b35aa849e0ccd44b906
Monthly Receive EstimateSingle-Select$0 - $10M+65590c7c1fd1413a63c924a0
Monthly Send EstimateSingle-Select$0 - $10M+65590c7c1fd1413a63c9249f
Destination CountriesMulti-SelectList of Alpha-2 codes65590c7c1fd1413a63c924a1
Transaction PurposeMulti-SelectOperations / Supplier / Payroll68376643f74b3108a927cf8e

[!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.

SectionWhat it is forWhen to submit itModel guidanceWhat is required if you include it
companyAddressesRegistered or operational business address dataSubmit when your approved onboarding flow requires company address verificationIncluded 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.
shareholdersUBO and control-person detailsSubmit when your model requires ownership or control-person reviewIncluded 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.
riskAssessmentBusiness-profile and usage questionsSubmit only when your approved model requires onboarding questions at that stageNot 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.
companyDocumentsBusiness verification filesSubmit when company-level documents are required for your model or review stageNot 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.
shareholderDocumentsUBO or officer identity or proof-of-address filesSubmit when an individual associated with the sub-account must provide supporting documentsNot 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.

EntityFieldRequirement
Section wrapperactionRequired for array-based onboarding updates so the API knows whether you are adding or updating a record.
AddresstypeUse the correct address type for the record you are submitting. Company address records should use COMPANY_ADDRESS.
Shareholderownership and identity fieldsProvide the ownership, name, nationality, and date-of-birth details required for the shareholder or UBO record you are submitting.
Shareholder / OfficerisControllingOfficerUse this boolean to identify the primary legal or control contact when your flow requires an officer record.
Risk answerquestion id and answer valueUse the exact question identifier for your environment and submit the answer in the expected format.
Document recorduploaded file referenceGenerate 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.

StatusMeaning
🟡 Draft/PendingDetails partially submitted or awaiting Verto review.
🟢 ApprovedActive. The account is now live and can issue wallets/IBANs.
RejectedDocuments 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.