Artha All Module Api's
    • Introduction
    • Authentication
    • KYC/KYB Requirements
    • API Setup Guide
    • Products
      • List Products
        GET
      • Get Product
        GET
      • Get Customer Product Status
        GET
    • Customers
      • Create Customer
        POST
      • List Customers
        GET
      • Get Customer
        GET
      • Submit Applicant (KYC/KYB)
        POST
      • Create Onboarding Session
        POST
    • Wallets
      • Beneficiary
        • Create Crypto Beneficiary
        • Update Crypto Beneficiary
        • List Crypto Withdraw Beneficiaries
      • Create Wallet
        POST
      • Get Wallet Address
        GET
      • Get Customer Balances
        GET
      • List Wallets
        GET
      • List Withdrawals
        GET
      • List Withdrawal Networks
        GET
      • Preview Withdrawal Summary
        POST
      • Create Crypto Withdrawal
        POST
    • Cards
      • Issuance
        • Issue Card
        • List Cards
        • List Customer Cards
        • Get Card Details
        • Get Sensitive Card Details
      • Funding
        • Top Up Card
        • Get Card Balance
        • Get Top-Up Status
        • List Top-Up History
      • Operations
        • Resend Activation Code
        • Activate Card
        • Set Card PIN
        • Change Card PIN
        • Update Card Limits
        • Freeze Card
        • Unfreeze Card
        • Replace Card
        • Cancel Card
        • Get Card Limits
        • Show Card PIN Details
        • Get PIN View Iframe URL
        • Get PIN Change Iframe URL
        • Get PIN Set Iframe URL
        • Get Card View Iframe URL
        • Show Card PIN
    • Payees
      • Create a payee for a customer.
        POST
      • List a customer's payees.
        GET
      • Update a payee.
        PUT
      • Retrieve a payee by id.
        GET
      • Look up an existing payee.
        GET
      • List the currencies a payee can be created in.
        GET
      • List the accepted payment purpose codes for a payee.
        GET
      • List the countries a payee can be created in.
        GET
      • List currency/country pairings for payees.
        GET
      • List the accepted beneficiary relationship codes.
        GET
    • Payments
      • Onboarding
        • List the customer's payout-currency configuration sections.
        • Enable a payout-currency section for the customer.
        • Get the customer's terms-of-service acceptance status.
        • Enable or disable a payout-currency section.
      • Quote
        • List the currencies a beneficiary can be paid in under a product.
        • List the payout rails available for a product and beneficiary.
        • Create an FX quote giving the rate and fee for a cross-currency payout.
      • Order
        • Submit a payout order to send money to a beneficiary.
        • Retrieve the on-chain address to fund an order.
        • Retrieve the status and settlement detail of a payout order.
      • Lookups
        • List the accepted payment purpose codes for a payout.
        • List the accepted source-of-funds codes for a payout.
        • List the document types accepted on a payout order.
    • Banks
      • Accounts
        • Create Bank Account
        • Get Account Details
        • Get Account Issuance Status
      • Withdraw
        • Create Withdrawal Quote
        • List Withdrawal Purposes
        • Get Payment Schemes
        • Execute Withdrawal
    • Exchange
      • Quote
        • Get Exchange Rate
        • Create Price Quote
      • Order
        • Place Exchange Order
    • Transactions
      • List Transactions
      • Get Transaction Details
    • Utilities
      • List Currencies
      • List Countries
      • Get Fee Schedule
      • List Product Occupations
      • List Product Industry Codes
      • Upload File
    • Webhook's
      • Wallets Webhooks
      • Banks Webhooks
      • Payments Webhooks
      • Exchange Webhooks
      • Card Webhooks

    KYC/KYB Requirements

    Submit KYC / KYB Applicant#

    How It Works#

    Before submitting a KYC/KYB application, check the Product Details to determine which
    KYC/KYB requirements apply. The product response lists the required requirement types you
    must satisfy when submitting the applicant.
    πŸ“Œ KYC/KYB requirements are driven by each Product.
    πŸ”’ Proof of Address is a cross-cutting rule, not a product requirement.
    Unlike the requirement types below (which only apply when your product's kyc_requirements
    list includes them), proof of address is enforced automatically on every external
    submission whenever the customer's country of residence differs from their country of
    origin β€” regardless of what your product requires.
    These two country values are set once, at customer creation
    (countryOfResidencyIsoTwo / countryOfOriginIsoTwo on POST /api/v1/customers) β€”
    not from the address/companyAddress you send in this endpoint.
    Individual (KYC): provide a documents[] entry with "type": "PROOF_OF_ADDRESS".
    Business (KYB): provide company.proofOfAddressUrl β€” a dedicated field, not
    an entry in company.requiredDocuments[].
    If it's required and missing, the call returns 422 VALIDATION_ERROR (see the example
    at the bottom of this page).
    Step 1: Get product KYC requirements  β†’  GET  /api/v1/Products/{productId}
    Step 2: Upload required documents      β†’  POST /api/v1/uploadfile
    Step 3: Submit KYC/KYB with file URLs  β†’  POST /api/v1/customers/{customerId}/products/{productId}/applicant

    Step 1 β€” Check KYC Requirements#

    GET /api/v1/Products/{productId}
    The response contains a kyc_requirements array listing which requirement types are needed
    for that product. Use it to decide which fields and documents to collect.

    Step 2 β€” Upload Documents#

    Upload all required documents (ID images, selfies, signatures, company docs, …) first.
    POST /api/v1/uploadfile
    Supports images (JPEG, PNG) and PDFs
    Files are stored in Azure Blob Storage
    Returns a file URL for each uploaded file
    Response (200):
    {
      "data": [
        {
          "file_name": "passport_front.jpg",
          "file_url": "https://storage.blob.core.windows.net/docs/abc123.jpg"
        }
      ]
    }
    ⚠️ Important: Save the returned file_url values β€” you pass these URLs as the
    frontUrl / backUrl / selfieUrl / documentUrl fields in Step 3.

    Step 3 β€” Submit KYC/KYB Application#

    POST /api/v1/customers/{customerId}/products/{productId}/applicant
    ParameterInTypeRequiredDescription
    customerIdpathuuidβœ…The customer identifier
    productIdpathuuidβœ…The product identifier
    bodybodyJSONβœ…kyc for an individual applicant, or kyb for a business applicant
    The request body has exactly two top-level objects β€” send one of them:
    {
      "kyc": { ... },   // individual applicant
      "kyb": { ... }    // business applicant
    }
    ⚠️ Only send the fields that match the requirements returned by the Product Details API.
    Requirements vary by product.

    Individual (KYC)#

    The kyc object is grouped into person, address, and a single unified documents[] list,
    plus two top-level fields (ipAddress, kycRequirements).
    {
      "kyc": {
        "person":  { ... },
        "address": { ... },
        "documents": [ ... ],
        "ipAddress": "192.168.1.1",
        "kycRequirements": "FullName,Comms,FullAddress,Passport,Face,Sign,FinancialProfile"
      }
    }

    person#

    FieldTypeNotes
    firstNamestring
    lastNamestring
    dateOfBirthstringYYYY-MM-DD
    genderstringmale / female / …
    emailstring
    countryIsoTwostringApplicant country ISO 2-letter code
    phoneCountryCodestringe.g. +44
    phoneNumberstring
    occupationstringsend the Description value (see Occupation List)
    emergencyContactNamestring
    accountPurposestring
    annualSalarynumber
    expectedMonthlyVolumenumber

    address#

    FieldTypeNotes
    addressLine1string
    addressLine2string
    citystring
    statestring
    postalCodestring
    addressCountryIsoTwostringISO alpha-2 (e.g. GB)
    countryIsoThreestringOptional β€” ISO alpha-3, only when a provider needs it

    documents[] β€” one unified list for all individual documents#

    Each item's type decides how it is handled (case-insensitive).
    FieldTypeNotes
    typestringRequired. See the type taxonomy below
    documentNumberstringID number (identity docs only)
    issueDatestringYYYY-MM-DD
    expiryDatestringYYYY-MM-DD
    frontUrlurlFront image β€” or the single image for selfie/sign/etc., or the URL for a supporting document
    backUrlurlBack image (identity docs only)

    type taxonomy#

    CategoryAccepted type valuesFields used
    Primary identity document (first one wins)PASSPORT, NATIONAL_ID, ID_CARD, DRIVERS_LICENSE, DRIVER_LICENSE, RESIDENCE_PERMIT, VOTER_IDdocumentNumber, issueDate, expiryDate, frontUrl, backUrl
    Selfie / faceSELFIE, FACE, PHOTOfrontUrl
    SignatureSIGNATURE, SIGNfrontUrl
    BiometricBIOMETRICfrontUrl
    Hand-held IDHANDHELD_ID, HANDHOLDING_ID, HANDHELDPASSPORT, HANDEDPASSPORTfrontUrl
    Card hand-held IDCARD_HANDHELD_ID, CARDHANDHOLDING_IDfrontUrl
    Supporting document (anything else β€” proof of address, tax doc, secondary ID, extra copies…)any other value, e.g. TAX_DOC, PROOF_OF_ADDRESSfrontUrl (the doc URL)
    πŸ’‘ Multiple documents for a personal account = just add more entries to documents[].
    The first identity-type entry is the primary ID; extra identity entries and any other
    types become supporting documents automatically.

    Individual Requirement Types β†’ where each field goes#

    RequirementProvide
    PassportOnlydocuments[] β†’ { "type":"PASSPORT", "documentNumber", "frontUrl", "backUrl" }
    Passportdocuments[] β†’ { "type":"PASSPORT", "documentNumber", "frontUrl", "backUrl", "expiryDate" }
    IdTypesdocuments[] β†’ { "type":"NATIONAL_ID" | "DRIVERS_LICENSE" |"PASSPORT" …, "documentNumber", "frontUrl", "backUrl", "expiryDate" }
    IssueDatedocuments[] identity item β†’ issueDate
    FullNameOnlyperson.firstName, person.lastName
    FullNameperson.firstName, person.lastName, person.gender, person.dateOfBirth
    Commsperson.email, person.phoneCountryCode, person.phoneNumber
    EmergencyContactperson.emergencyContactName
    Addressaddress.addressLine1, address.addressLine2
    FullAddressaddress.addressLine1, address.addressLine2, address.city, address.state, address.postalCode, address.addressCountryIsoTwo
    HandedPassportdocuments[] β†’ { "type":"HANDHELD_ID", "frontUrl" }
    Facedocuments[] β†’ { "type":"SELFIE", "frontUrl" }
    Signdocuments[] β†’ { "type":"SIGNATURE", "frontUrl" }
    Biometricdocuments[] β†’ { "type":"BIOMETRIC", "frontUrl" }
    IpAddresskyc.ipAddress
    FinancialProfileperson.occupation, person.accountPurpose, person.annualSalary, person.expectedMonthlyVolume
    TaxDocdocuments[] β†’ { "type":"TAX_DOC", "frontUrl" }
    SSNSSN Number
    ℹ️ docNeverExpire is not exposed in this contract (leave expiryDate empty for
    never-expiring documents).

    Occupation List#

    The person.occupation field must use one of the following. Send the Description value.
    CodeDescription (Value to Send)
    marketing_managerMarketing Managers
    political_scientistPolitical Scientists
    dancerDancers
    nurseNurse Midwives
    teacherTeacher Assistants
    accountantAccountants and Auditors
    lawyerLawyers
    pilotCommercial Pilots
    surveyorSurveyors
    librarianLibrarians
    data_entryData Entry Keyers
    residential_advisorResidential Advisors
    inspectorConstruction and Building Inspectors
    optometristOptometrists
    self_employedSelf-Enrichment Education Teachers
    curatorCurators
    salesSales Managers
    marketingMarketing Managers
    engineerIndustrial Engineers
    architectComputer Network Architects
    mechanicMotorcycle Mechanics
    driverLight Truck or Delivery Services Drivers
    designerInterior Designers
    artistMultimedia Artists and Animators
    trainerAthletic Trainers
    social_workerHealthcare Social Workers
    scientistPhysicists
    computer_operatorComputer Operators
    barberBarbers

    Business (KYB)#

    The kyb object contains company, primaryContact, and the control-person lists
    (representatives[], directors[], ubos[]), plus a top-level ipAddress.
    {
      "kyb": {
        "company":          { ... },
        "primaryContact":   { ... },
        "representatives":  [ ... ],
        "directors":        [ ... ],
        "ubos":             [ ... ],
        "ipAddress": "123.123.123.123"
      }
    }

    company#

    FieldTypeNotes
    companyNamestring
    companyTypestringe.g. limited_company
    descriptionstring
    industrystringsend the exact Description value (see Industry List)
    registrationNumberstring
    websiteurl
    certificateOfIncorporationUrlurl
    dateOfIncorporationdate
    shareholderRegistryUrlurl
    companyAddressobjectsee below
    requiredDocumentsarraysee below

    company.companyAddress#

    FieldType
    addressTypestring (e.g. registered)
    addressLine1string
    addressLine2string
    citystring
    statestring
    postalCodestring
    countryIsoTwostring (ISO alpha-2)

    company.requiredDocuments[]#

    FieldTypeNotes
    documentTypestringe.g. CERTIFICATE_OF_INCORPORATION, SHAREHOLDER_REGISTRY
    documentUrlurlthe document URL
    ⚠️ Do not send proof of address here. A {"documentType": "PROOF_OF_ADDRESS", ...}
    entry in this list is stored only as a supplementary document β€” it does not satisfy
    the proof-of-address requirement. Use company.proofOfAddressUrl instead.

    Person blocks β€” primaryContact, representatives[], directors[], ubos[]#

    They all share the same shape (control-person lists additionally accept id and
    recordStatus for updates):
    {
      "personDetails": {
        "firstName": "Jane",
        "lastName": "Smith",
        "dateOfBirth": "1985-03-20",
        "gender": "female",
        "countryIsoTwo": "GB",
        "email": "jane.smith@acmecorp.com",
        "phoneCountryCode": "+44",
        "phoneNumber": "7700900000",
        "shareholderPercentage": "60"
      },
      "documents": [
        {
          "documentType": "passport",
          "documentNumber": "CD7654321",
          "countryIsoTwo": "GB",
          "documentIssueDate": "2019-06-15",
          "documentExpiryDate": "2029-06-15",
          "frontDocumentUrl": "https://storage.blob.../front.jpg",
          "backDocumentUrl": "https://storage.blob.../back.jpg"
        }
      ],
      "selfieUrl": "https://storage.blob.../selfie.jpg",
      "address": {
        "addressType": "residential",
        "addressLine1": "789 Home Lane",
        "addressLine2": "",
        "city": "London",
        "state": "England",
        "postalCode": "SW1A 1AA",
        "countryIsoTwo": "GB"
      }
    }
    ℹ️ documents is a list β€” add more than one identity document per person if needed.
    The first entry is used as that person's identity document.
    ℹ️ primaryContact does not take id / recordStatus. Control persons in
    representatives[] / directors[] / ubos[] may include "id" and "recordStatus"
    to update an existing record.

    Business Requirement Types β†’ where each field goes#

    RequirementProvide
    CompanyInformationcompany.companyName, company.companyType, company.description, company.industry, company.registrationNumber, company.website ,dateOfIncorporation
    CompanyDocumentscompany.certificateOfIncorporationUrl, company.shareholderRegistryUrl
    | proofOfAddressUrl | url | Business proof of address. Conditionally required β€” see the Proof of Address rule at the top of this page. A dedicated field, not an entry in requiredDocuments[]. |
    | CompanyAddress | company.companyAddress.* |
    | TaxDoc | company.taxDocumentUrl |
    | CompanyRequiredDocuments | company.requiredDocuments[] β†’ { documentType, documentUrl } |
    | PersonalInformation | primaryContact.personDetails.{firstName,lastName,dateOfBirth,email,phoneCountryCode,phoneNumber} |
    | PersonalInformationAddress | primaryContact.address.* |
    | PersonalIdentification | primaryContact.documents[].{documentType,documentNumber,countryIsoTwo,documentExpiryDate,frontDocumentUrl,backDocumentUrl} |
    | UBO | ubos[].personDetails.{firstName,lastName,dateOfBirth,countryIsoTwo,email,phoneCountryCode,phoneNumber,shareholderPercentage} |
    | UBOSSN | SSN Number |
    | UBOAddress | ubos[].address.* |
    | UBOIdentification | ubos[].documents[].{documentType,documentNumber,frontDocumentUrl,backDocumentUrl} |
    | UBOSelfie | ubos[].selfieUrl |
    | Representatives | representatives[].personDetails.* |
    | RepresentativeSSN | SSN Number* |
    | RepresentativeAddress | representatives[].address.* |
    | RepresentativeIdentification | representatives[].documents[].* |
    | RepresentativeSelfie | representatives[].selfieUrl |
    | Directors | directors[].personDetails.* | DirectorSSN|SSN Number*
    | DirectorAddress | directors[].address.* |
    | DirectorIdentification | directors[].documents[].* |
    | DirectorSelfie | directors[].selfieUrl |
    | IpAddress | kyb.ipAddress |

    Industry List#

    The company.industry field must use one of the following. Send the exact Description value.
    Description (Value to Send)
    International Affairs
    National Security
    Space Research and Technology
    Regulation, Licensing, and Inspection of Miscellaneous Commercial Sectors
    Regulation of Agricultural Marketing and Commodities
    Regulation and Administration of Communications, Electric, Gas, and Other Utilities
    Regulation and Administration of Transportation Programs
    Administration of General Economic Programs
    Administration of Urban Planning and Community and Rural Development
    Administration of Housing Programs
    Administration of Conservation Programs
    Administration of Air and Water Resource and Solid Waste Management Programs
    Administration of Veterans' Affairs
    Administration of Human Resource Programs (except Education, Public, Health, and Veterans' Affairs Programs)
    Administration of Public Health Programs
    Administration of Education Programs
    Other Justice, Public Order, and Safety Activities
    Fire Protection
    Parole Offices and Probation Offices
    Correctional Institutions

    Example 1 β€” Individual KYC Submission#

    Product requires: FullName, Comms, FullAddress, Passport, Face, Sign, FinancialProfile
    POST /api/v1/customers/{customerId}/products/{productId}/applicant
    
    {
      "kyc": {
        "person": {
          "firstName": "Jane",
          "lastName": "Doe",
          "gender": "female",
          "countryIsoTwo": "AU",
          "dateOfBirth": "1990-06-15",
          "email": "jane@example.com",
          "phoneCountryCode": "+44",
          "phoneNumber": "7700900000",
          "occupation": "Industrial Engineers",
          "accountPurpose": "personal spending",
          "annualSalary": 75000,
          "expectedMonthlyVolume": 5000
        },
        "address": {
          "addressLine1": "10 Downing Street",
          "addressLine2": "",
          "city": "London",
          "state": "England",
          "postalCode": "SW1A 2AA",
          "addressCountryIsoTwo": "GB"
        },
        "documents": [
          {
            "type": "PASSPORT",
            "documentNumber": "AB1234567",
            "issueDate": "2020-01-01",
            "expiryDate": "2030-01-01",
            "frontUrl": "https://storage.blob.../passport_front.jpg",
            "backUrl": "https://storage.blob.../passport_back.jpg"
          },
          { "type": "SELFIE",    "frontUrl": "https://storage.blob.../selfie.jpg" },
          { "type": "SIGNATURE", "frontUrl": "https://storage.blob.../signature.png" }
        ],
        "ipAddress": "192.168.1.1",
        "kycRequirements": "FullName,Comms,FullAddress,Passport,Face,Sign,FinancialProfile"
      }
    }

    Example 2 β€” Business KYB Submission#

    Product requires: CompanyInformation, CompanyDocuments, CompanyAddress,
    PersonalInformation, PersonalIdentification, PersonalInformationAddress,
    UBO,UBOSSN, UBOAddress, UBOIdentification, UBOSelfie,
    Representatives,RepresentativeSSN, RepresentativeAddress, RepresentativeIdentification, RepresentativeSelfie,
    Directors, DirectorSSN,DirectorAddress, DirectorIdentification, DirectorSelfie
    POST /api/v1/customers/{customerId}/products/{productId}/applicant
    
    {
      "kyb": {
        "company": {
          "companyName": "Acme Corp Ltd",
          "companyType": "limited_company",
          "description": "Fintech payment solutions provider",
          "industry": "International Affairs",
          "registrationNumber": "12345678",
          "website": "https://acmecorp.com",
          "dateOfIncorporation":"2013-01-01"
          "certificateOfIncorporationUrl": "https://storage.blob.../certificate.pdf",
          "shareholderRegistryUrl": "https://storage.blob.../shareholders.pdf",
          "companyAddress": {
            "addressType": "registered",
            "addressLine1": "456 Business Avenue",
            "addressLine2": "Floor 3",
            "city": "London",
            "state": "England",
            "postalCode": "EC1A 1BB",
            "countryIsoTwo": "GB"
          },
          "requiredDocuments": [
            {
              "documentType": "CERTIFICATE_OF_INCORPORATION",
              "documentUrl": "https://example.com/docs/certificate_of_incorporation.pdf"
            },
            {
              "documentType": "SHAREHOLDER_REGISTRY",
              "documentUrl": "https://example.com/docs/shareholder_registry.pdf"
            }
          ]
        },
        "primaryContact": {
          "personDetails": {
            "firstName": "Jane",
            "lastName": "Smith",
            "dateOfBirth": "1985-03-20",
            "countryIsoTwo": "GB",
            "email": "jane.smith@acmecorp.com",
            "phoneCountryCode": "+44",
            "phoneNumber": "7700900000"
          },
          "documents": [
            {
              "documentType": "passport",
              "documentNumber": "CD7654321",
              "countryIsoTwo": "GB",
              "documentIssueDate": "2019-06-15",
              "documentExpiryDate": "2029-06-15",
              "frontDocumentUrl": "https://storage.blob.../personal_front.jpg",
              "backDocumentUrl": "https://storage.blob.../personal_back.jpg"
            }
          ],
          "address": {
            "addressLine1": "789 Home Lane",
            "city": "London",
            "state": "England",
            "postalCode": "SW1A 1AA",
            "countryIsoTwo": "GB"
          }
        },
        "ubos": [
          {
            "personDetails": {
              "firstName": "John",
              "lastName": "Doe",
              "dateOfBirth": "1980-01-10",
              "gender": "male",
              "countryIsoTwo": "GB",
              "uboSsn": "958748348559559",
              "email": "john.doe@acmecorp.com",
              "phoneCountryCode": "+44",
              "phoneNumber": "7700800000",
              "shareholderPercentage": "60"
            },
            "documents": [
              {
                "documentType": "national_id",
                "documentNumber": "NI12345678",
                "countryIsoTwo": "GB",
                "documentExpiryDate": "2028-12-01",
                "frontDocumentUrl": "https://storage.blob.../ubo_front.jpg",
                "backDocumentUrl": "https://storage.blob.../ubo_back.jpg"
              }
            ],
            "selfieUrl": "https://storage.blob.../ubo_selfie.jpg",
            "address": {
              "addressLine1": "100 Owner Street",
              "city": "Manchester",
              "postalCode": "M1 1AA",
              "countryIsoTwo": "GB"
            }
          }
        ],
        "representatives": [
          {
            "personDetails": {
              "firstName": "Sarah",
              "lastName": "Connor",
              "dateOfBirth": "1988-07-25",
              "countryIsoTwo": "GB",
              "representativeSSn":       "958748348559553",
              "email": "sarah@acmecorp.com",
              "phoneCountryCode": "+44",
              "phoneNumber": "7700700000",
              "shareholderPercentage": "0"
            },
            "documents": [
              {
                "documentType": "passport",
                "documentNumber": "EF9876543",
                "countryIsoTwo": "GB",
                "documentExpiryDate": "2031-03-10",
                "frontDocumentUrl": "https://storage.blob.../rep_front.jpg",
                "backDocumentUrl": "https://storage.blob.../rep_back.jpg"
              }
            ],
            "selfieUrl": "https://storage.blob.../rep_selfie.jpg",
            "address": {
              "addressLine1": "50 Rep Road",
              "city": "Birmingham",
              "postalCode": "B1 1AA",
              "countryIsoTwo": "GB"
            }
          }
        ],
        "directors": [
          {
            "personDetails": {
              "firstName": "Mike",
              "lastName": "Johnson",
              "dateOfBirth": "1975-11-30",
              "countryIsoTwo": "GB",
              "directorSsn":"958748348359559"
              "email": "mike@acmecorp.com",
              "phoneCountryCode": "+44",
              "phoneNumber": "7700600000",
              "shareholderPercentage": "40"
            },
            "documents": [
              {
                "documentType": "driving_license",
                "documentNumber": "DL98765432",
                "countryIsoTwo": "GB",
                "documentExpiryDate": "2027-08-20",
                "frontDocumentUrl": "https://storage.blob.../dir_front.jpg",
                "backDocumentUrl": "https://storage.blob.../dir_back.jpg"
              }
            ],
            "selfieUrl": "https://storage.blob.../dir_selfie.jpg",
            "address": {
              "addressLine1": "25 Director Lane",
              "city": "Leeds",
              "postalCode": "LS1 1AA",
              "countryIsoTwo": "GB"
            }
          }
        ],
        "ipAddress": "123.123.123.123"
      }
    }

    Responses#

    StatusMeaning
    200KYC/KYB submitted successfully
    404Customer not found
    422Validation error β€” missing or invalid fields

    Example β€” Proof of Address Missing (422)#

    {
      "error": {
        "code": "VALIDATION_ERROR",
        "message": "Proof of address is required because the customer's country of residence and country of origin differ. Provide a Kyc.RequiredDocuments entry with documentType 'PROOF_OF_ADDRESS'.",
        "details": []
      }
    }
    Modified atΒ 2026-09-19 09:37:06
    Previous
    Authentication
    Next
    API Setup Guide
    Built with