---
title: "Submit customer for verification"
method: POST
path: "/v1/customers/{id}/submit"
tags: ["Customers"]
---

# Submit customer for verification

`POST /v1/customers/{id}/submit`

Submit a DRAFT customer for verification review.

This endpoint is used when you've progressively built up customer data via PATCH requests
and are ready to submit for verification. The customer must be in DRAFT status.

**Workflow:**
1. Create customer → customer is in DRAFT status
2. Add data via PATCH /customers/:id as needed
3. Call POST /customers/:id/submit to submit for verification

After submission, the customer status transitions to IN_REVIEW. Document AI validation runs
asynchronously; validation results are stored on each document's metadata and returned on internal document responses.

For RFI (Request for Information) flows:
1. Customer gets NEED_ACTIONS status with missingRequirements
2. Add missing data via PATCH /customers/:id
3. Call POST /customers/:id/submit to re-submit

## Path parameters

- `id` string, required

## Headers

- `X-API-Key` string

## Response `202`

Customer accepted for verification; document AI validation may still be running

- CustomerResponseDto
  - `id` string, required — Customer ID
  - `customerName` string, required — Customer name
  - `organizationId` string, required — Organization ID
  - `type` 'INDIVIDUAL' | 'BUSINESS', required — Customer type
  - `status` 'DRAFT' | 'IN_REVIEW' | 'NEED_ACTIONS' | 'REJECTED' | 'ACTIVE' | 'INACTIVE' | 'SUSPENDED', required — Customer status
  - `email` string — Customer email address
  - `countryCode` 'AD' | 'AE' | 'AF' | 'AG' | 'AI' | 'AL' | 'AM' | 'AO' | 'AR' | 'AS' | 'AT' | 'AU' | 'AW' | 'AZ' | 'BA' | 'BB' | 'BD' | 'BE' | 'BF' | 'BG' | 'BH' | 'BI' | 'BJ' | 'BL' | 'BM' | 'BN' | 'BO' | 'BR' | 'BS' | 'BT' | 'BW' | 'BY' | 'BZ' | 'CA' | 'CC' | 'CD' | 'CF' | 'CG' | 'CH' | 'CI' | 'CK' | 'CL' | 'CM' | 'CN' | 'CO' | 'CR' | 'CU' | 'CV' | 'CW' | 'CX' | 'CY' | 'CZ' | 'DE' | 'DJ' | 'DK' | 'DM' | 'DO' | 'DZ' | 'EC' | 'EE' | 'EG' | 'EH' | 'ER' | 'ES' | 'ET' | 'EU' | 'FI' | 'FJ' | 'FK' | 'FM' | 'FO' | 'FR' | 'GA' | 'GB' | 'GD' | 'GE' | 'GH' | 'GI' | 'GL' | 'GM' | 'GN' | 'GP' | 'GQ' | 'GR' | 'GS' | 'GT' | 'GU' | 'GW' | 'GY' | 'HK' | 'HN' | 'HR' | 'HT' | 'HU' | 'ID' | 'IE' | 'IL' | 'IM' | 'IN' | 'IQ' | 'IR' | 'IS' | 'IT' | 'JE' | 'JM' | 'JO' | 'JP' | 'KE' | 'KG' | 'KH' | 'KI' | 'KM' | 'KN' | 'KP' | 'KR' | 'KW' | 'KY' | 'KZ' | 'LA' | 'LB' | 'LC' | 'LI' | 'LK' | 'LR' | 'LS' | 'LT' | 'LU' | 'LV' | 'LY' | 'MA' | 'MC' | 'MD' | 'ME' | 'MF' | 'MG' | 'MH' | 'MK' | 'ML' | 'MM' | 'MN' | 'MO' | 'MP' | 'MQ' | 'MR' | 'MS' | 'MT' | 'MU' | 'MV' | 'MW' | 'MX' | 'MY' | 'MZ' | 'NA' | 'NC' | 'NE' | 'NF' | 'NG' | 'NI' | 'NL' | 'NO' | 'NP' | 'NR' | 'NU' | 'NZ' | 'OM' | 'PA' | 'PE' | 'PF' | 'PG' | 'PH' | 'PK' | 'PL' | 'PM' | 'PN' | 'PR' | 'PS' | 'PT' | 'PW' | 'PY' | 'QA' | 'RE' | 'RO' | 'RS' | 'RU' | 'RW' | 'SA' | 'SB' | 'SC' | 'SD' | 'SE' | 'SG' | 'SH' | 'SI' | 'SJ' | 'SK' | 'SL' | 'SM' | 'SN' | 'SO' | 'SR' | 'SS' | 'ST' | 'SV' | 'SY' | 'SZ' | 'TC' | 'TD' | 'TG' | 'TH' | 'TJ' | 'TK' | 'TL' | 'TM' | 'TN' | 'TO' | 'TR' | 'TT' | 'TV' | 'TW' | 'TZ' | 'UA' | 'UG' | 'UM' | 'US' | 'UY' | 'UZ' | 'VA' | 'VC' | 'VE' | 'VG' | 'VI' | 'VN' | 'VU' | 'WF' | 'WS' | 'YE' | 'YT' | 'ZA' | 'ZM' | 'ZW' — Country code (ISO 3166-2)
  - `imageUrl` string — Customer image URL
  - `requestedCapabilities` string[], nullable — Capabilities requested by the customer
  - `createdAt` string, date-time, required — Customer creation date
  - `updatedAt` string, date-time, required — Customer last update date
  - `customerDetails` union — Customer details with transliteration support. For INDIVIDUAL customers: - firstName, lastName, middleName - transliteratedFirstName, transliteratedMiddleName, transliteratedLastName - dateOfBirth, phone, occupation, sourceOfIncome For BUSINESS customers: - businessName, tradeName, businessType, taxIdentificationNumber - website, industry, email, phone Verification and EDD-specific fields are submitted separately through the verification endpoints.
    - IndividualDetailsDto
      - `firstName` string — First name
      - `lastName` string — Last name
      - `middleName` string — Middle name
      - `transliteratedFirstName` string — Transliterated first name (Latin characters). Required when firstName contains non-Latin characters (Chinese, Arabic, Cyrillic, etc.).
      - `transliteratedMiddleName` string — Transliterated middle name (Latin characters). Required when middleName contains non-Latin characters.
      - `transliteratedLastName` string — Transliterated last name (Latin characters). Required when lastName contains non-Latin characters.
      - `dateOfBirth` string — Date of birth in ISO 8601 format (YYYY-MM-DD)
      - `nationality` string — Nationality (ISO 3166-2)
      - `phone` string — Phone number in E.164 format
      - `occupation` string — Occupation code
      - `employmentStatus` 'EMPLOYED' | 'SELF_EMPLOYED' | 'UNEMPLOYED' | 'STUDENT' | 'RETIRED' | 'HOMEMAKER' — Employment status
      - `sourceOfIncome` 'COMPANY_FUNDS' | 'ECOMMERCE_RESELLER' | 'GAMBLING_PROCEEDS' | 'GIFTS' | 'GOVERNMENT_BENEFITS' | 'INHERITANCE' | 'INVESTMENTS_LOANS' | 'PENSION_RETIREMENT' | 'SALARY' | 'SALE_OF_ASSETS_REAL_ESTATE' | 'SAVINGS' | 'SOMEONE_ELSES_FUNDS' — Source of income
      - `sourceOfFundsDescription` string — Source of funds description
    - BusinessDetailsDto
      - `businessName` string — Legal business name
      - `businessType` 'CORPORATION' | 'LLC' | 'PARTNERSHIP' | 'GEN_PARTNERSHIP' | 'LLP' | 'LP' | 'SOLE_PROPRIETORSHIP' | 'NON_PROFIT' | 'TRUST' | 'COOPERATIVE' | 'PRIVATE_LIMITED_COMPANY' | 'SPV' | 'JOINT_VENTURE' — Business legal structure
      - `taxIdentificationNumber` string — Tax identification number issued by the tax authority (e.g., EIN in the US, VAT number in EU). This is different from the business registration number. Validated against country-specific formats when countryCode is provided. Accepts NOT_APPLICABLE when no tax ID is available. If the value does not match the expected format, prefix with OVERRIDE: (e.g. OVERRIDE:12-3456789) to store it as-is. These should be used sparingly; missing or overridden tax IDs may trigger additional customer due diligence.
      - `website` string, uri — Business website URL
      - `industry` string — 6-digit NAICS industry classification code
      - `isCrypto` boolean — Set true if the business operates in crypto or digital assets.
      - `isRemoteCompany` boolean — Set true when the business operates remotely from an owner or director address.
      - `industryCryptoSubtype` 'PROTOCOL' | 'EXCHANGE' | 'INVESTMENT' | 'LENDER' | 'MARKET_MAKER' | 'SAAS' | 'MINER' — Crypto-specific industry subtype. Required when isCrypto is true.
      - `yearEstablished` number — Year the business was established
      - `numberOfEmployees` number — Number of employees
      - `tradeName` string — Business trade name (DBA). Separate multiple names with semicolons.
      - `description` string — Business description
      - `email` string, email — Business email address. Use an email on the company domain when available; personal email domains such as Gmail may require additional due diligence.
      - `phone` string — Business phone number in E.164 format
      - `registrationDate` string — Business registration date in ISO 8601 format (YYYY-MM-DD)
      - `registrationNumber` string — Business registration number issued by the state/authority when the business was registered (e.g., LLC filing number, corporation charter number). This is different from the tax identification number.
      - `hasMaterialIntermediaryOwnership` boolean — Whether the business has material intermediary ownership (25%+ owned by another entity)
      - `accountPurpose` 'PAYROLL' | 'VENDOR_PAYMENTS' | 'TREASURY' | 'OPERATIONS' | 'CAPITAL_DEPLOYMENT' | 'CROSS_BORDER_PAYMENTS' | 'STABLECOIN_CONVERSION' | 'ECOMMERCE' | 'OTHER' — Purpose of the account
      - `accountPurposeExplanation` string — Detailed explanation of account purpose
      - `sourceOfFunds` 'BUSINESS_REVENUE' | 'INVESTMENT' | 'OWNER_CAPITAL' | 'LOAN' | 'GRANTS' | 'EQUITY' | 'INHERITANCE' | 'GIFT' | 'OTHER' — Source of funds for the business
      - `sourceOfFundsDescription` string — Detailed description of source of funds
      - `estimatedAnnualRevenueUsd` 'PRE_REVENUE' | 'LESS_THAN_10K' | '10K_TO_50K' | '50K_TO_100K' | '100K_TO_500K' | '500K_TO_1M' | '1M_TO_5M' | '5M_TO_10M' | '10M_TO_50M' | '50M_TO_250M' | 'MORE_THAN_250M' | 'LESS_THAN_100K' — Estimated annual revenue in USD
      - `expectedMonthlyPaymentsUsd` number — Expected monthly fiat payment volume in USD-equivalent
      - `primaryTargetMarket` 'RETAIL' | 'COMMERCIAL' | 'GOVERNMENT' | 'OTHER' — Primary target market. RETAIL = B2C (consumers), COMMERCIAL = B2B (businesses), GOVERNMENT = B2G (government entities), OTHER = another market not covered by the standard options.
      - `operatesInProhibitedCountries` boolean — Whether the business operates in prohibited countries
      - `highRiskActivities` string[] — List of high-risk activities the business engages in
      - `highRiskActivitiesExplanation` string — Explanation of high-risk activities
      - `signedAgreementId` string — Signed agreement ID
  - `associatedEntities` AssociatedEntityResponseDto[] — Associated entities (beneficial owners and control persons) for business customers.
    - `id` string, required — Unique identifier
    - `createdAt` string, required — Created timestamp
    - `updatedAt` string, required — Last updated timestamp
    - `entityType` 'INDIVIDUAL' | 'BUSINESS', required — Type of entity
    - `parentEntityId` string — Parent entity ID for nested ownership. Use the associated business entity ID returned from the associated entity endpoints when linking a child owner beneath an intermediate business owner.
    - `details` union — Type-specific details (individual or business)
      - IndividualEntityDetailsDto
        - `firstName` string
        - `nickname` string
        - `lastName` string
        - `middleName` string
        - `dateOfBirth` string
        - `transliteratedFirstName` string
        - `transliteratedMiddleName` string
        - `transliteratedLastName` string
        - `taxIdentificationDocumentType` string
      - BusinessEntityDetailsDto
        - `businessName` string
        - `registrationNumber` string
        - `dateOfIncorporation` string
        - `businessAddress` AddressDto
          - `addressLine1` string, required — Address line 1
          - `addressLine2` string — Address line 2 (apartment, suite, etc.)
          - `city` string, required — City
          - `state` string — State / Province
          - `postalCode` string, required — Postal code / ZIP code. May be empty for countries without a postal-code system, including the United Arab Emirates.
          - `country` string, required — Country code (ISO 3166-2)
          - `transliterated` TransliteratedAddressDto
            - `addressLine1` string — Transliterated address line 1 (Latin characters)
            - `addressLine2` string — Transliterated address line 2 (Latin characters)
            - `city` string — Transliterated city (Latin characters)
            - `state` string — Transliterated state/province (Latin characters)
    - `countryCode` string — Country code (ISO 3166-1 alpha-2)
    - `email` string — Email address
    - `phone` string — Phone number
    - `address` AddressDto
      - `addressLine1` string, required — Address line 1
      - `addressLine2` string — Address line 2 (apartment, suite, etc.)
      - `city` string, required — City
      - `state` string — State / Province
      - `postalCode` string, required — Postal code / ZIP code. May be empty for countries without a postal-code system, including the United Arab Emirates.
      - `country` string, required — Country code (ISO 3166-2)
      - `transliterated` TransliteratedAddressDto
        - `addressLine1` string — Transliterated address line 1 (Latin characters)
        - `addressLine2` string — Transliterated address line 2 (Latin characters)
        - `city` string — Transliterated city (Latin characters)
        - `state` string — Transliterated state/province (Latin characters)
    - `hasOwnership` boolean, required — Whether this entity is an owner. For an individual with indirect ownership whose percentage is not quantified, set this to true to identify them as a beneficial owner.
    - `hasControl` boolean, required — Has significant control
    - `ownershipPercentage` number — Ownership percentage
    - `isSigner` boolean — Has signing authority
    - `isDirector` boolean — Is a director
    - `role` 'CEO' | 'CFO' | 'COO' | 'PRESIDENT' | 'GENERAL_COUNSEL' | 'MANAGING_MEMBER' | 'TREASURER' | 'OTHER' — Structured role at the company.
    - `title` string — Custom title at the company.
    - `documents` string[] — Array of document IDs
    - `attestedOwnershipStructureAt` string — Timestamp when ownership structure was attested
    - `displayName` string — Display name
    - `verificationLink` VerificationLinkDto
      - `sessionId` string, required — Verification session ID
      - `verificationUrl` string, required — URL for the UBO to complete their verification
      - `expiresAt` string, required — When the verification link expires
      - `status` 'PENDING' | 'ACTIVE' | 'IN_PROGRESS' | 'COMPLETED' | 'EXPIRED' | 'CANCELLED' | 'SUBMITTED', required — Current status of the verification session
  - `addresses` CustomerAddressDto[] — Customer addresses. Each address must include addressLine1, city, postalCode, and country.
    - `addressLine1` string, required — Address line 1
    - `addressLine2` string — Address line 2 (apartment, suite, etc.)
    - `city` string, required — City
    - `state` string — State / Province
    - `postalCode` string, required — Postal code / ZIP code. May be empty for countries without a postal-code system, including the United Arab Emirates.
    - `country` string, required — Country code (ISO 3166-2)
    - `transliterated` TransliteratedAddressDto
      - `addressLine1` string — Transliterated address line 1 (Latin characters)
      - `addressLine2` string — Transliterated address line 2 (Latin characters)
      - `city` string — Transliterated city (Latin characters)
      - `state` string — Transliterated state/province (Latin characters)
    - `label` 'REGISTERED' | 'OPERATIONAL' | 'US_REGISTERED' | 'HEADQUARTERS' | 'BILLING' | 'SHIPPING' | 'HOME' | 'OFFICE' — Address label/type
    - `isDefault` boolean — Whether this is the default/primary address
  - `missingRequirements` MissingComplianceRequirementDto[] — Merged list of missing fields and documents required for full verification. Only populated when customer data is incomplete.
    - `requirementType` 'FIELD' | 'DOCUMENT', required — Requirement category
    - `key` string, required — Stable requirement key or field path
    - `displayName` string, required — Human-readable requirement label
    - `entityId` string — Associated entity ID when the missing requirement belongs to a beneficial owner or control person.
    - `entityDisplayName` string — Human-readable associated entity name when the missing requirement belongs to a beneficial owner or control person.
  - `accounts` array[], required
    - AccountResponseDto[] — Customer accounts (only included when expand=accounts). Returns all accounts for this customer.
      - `id` string, required — Account ID (vba_xxx for virtual bank, vwa_xxx for virtual wallet, inb_xxx for infinite bank, inw_xxx for infinite wallet, eba_xxx for external bank, ewa_xxx for external wallet, pba_xxx for provider balance)
      - `customerId` string, required — Customer ID
      - `type` 'VIRTUAL_BANK' | 'VIRTUAL_WALLET' | 'INFINITE_BANK' | 'INFINITE_WALLET' | 'EXTERNAL_BANK' | 'EXTERNAL_WALLET' | 'EXTERNAL_PROXY' | 'PROVIDER_BALANCE', required — Account type
      - `externalReference` string — Client-provided external reference for mapping to your system
      - `bankDetails` object — Bank account details (for bank accounts)
        - `accountNumber` string
        - `routingNumber` string
        - `iban` string
        - `swiftCode` string
        - `bankName` string
        - `bankCountryCode` string
        - `bankAddress` object
          - `addressLine1` string
          - `addressLine2` string
          - `city` string
          - `state` string
          - `postalCode` string
          - `country` string
        - `beneficiaryName` string
        - `beneficiaryPhone` string
        - `beneficiaryAddress` object
          - `addressLine1` string
          - `addressLine2` string
          - `city` string
          - `state` string
          - `postalCode` string
          - `country` string
        - `supportedNetworks` string[] — Payment rails this account supports for payouts. Reflects the rails stored on the account; the API picks the actual routing provider per customer approvals at transfer time.
      - `walletDetails` object — Wallet details (for wallet accounts)
        - `walletAddress` string
        - `addressType` 'EVM' | 'TRON' | 'BITCOIN' | 'SOLANA'
        - `chains` string[]
        - `walletType` 'TREASURY' | 'TRANSACTION' | 'VIRTUAL' — Wallet type (for infinite wallets only)
      - `status` 'IN_REVIEW' | 'ACTIVE' | 'CLOSED', required — Account status
      - `currencyCodes` string[] — Currency codes supported by this account
      - `virtualBankAccount` object — Virtual bank account details
        - `id` string
        - `depositInstructions` object
          - `bankName` string
          - `bankAddress` object
            - `addressLine1` string
            - `addressLine2` string
            - `city` string
            - `state` string
            - `postalCode` string
            - `country` string
          - `accountNumber` string
          - `routingNumber` string
          - `iban` string
          - `swiftBic` string
          - `bankCountryCode` string
          - `beneficiaryName` string
        - `developerFeeFixed` string
        - `developerFeePercent` number
        - `sourceRail` string
        - `sourceCurrency` string
        - `destinationRail` string
        - `destinationCurrency` string
        - `sweepTargetAccountId` string
        - `originCapable` boolean
        - `originAccountId` string
      - `virtualWallet` object — Virtual wallet details (also known as liquidation addresses)
        - `id` string
        - `state` 'ACTIVE' | 'DEACTIVATED'
        - `destinationCurrency` string
        - `destinationRail` string
        - `sweepTargetAccountId` string
        - `originCapable` boolean
        - `originAccountId` string
      - `proxyDetails` object — Proxy account details (for proxy/alias-based accounts like PIX, UPI, PromptPay)
        - `aliasType` 'PHONE' | 'EMAIL' | 'NATIONAL_ID' | 'TAX_ID' | 'RANDOM' | 'CORPORATE_ID'
        - `aliasValue` string
        - `paymentRail` string
        - `beneficiaryName` string
        - `beneficiaryType` 'INDIVIDUAL' | 'BUSINESS'
      - `isThirdParty` boolean — Is this account owned by a third party?
      - `counterpartyId` string, nullable — Counterparty ID when this is a third-party recipient account
      - `referenceId` string — Client-provided reference ID
      - `originCapable` boolean, nullable — Whether this account can be used as the canonical transfer origin.
      - `originAccountId` string, nullable — Canonical origin account ID when this account is a virtual alias.
      - `metadata` AccountMetadataDto
        - `nickname` string — Account nickname
        - `purpose` string — Account purpose
        - `tags` string[] — Account tags
      - `createdAt` string, date-time, required — Account creation date
      - `updatedAt` string, date-time, required — Account last update date
      - `created` boolean — Whether this account was newly created in this request. Returns false if an existing account was returned (idempotent behavior).
      - `holdsBalance` boolean — Present and true when this is a balance account (USD or stablecoin). Deposits credit the account instead of being swept, and the balance can fund transfers. See GET /v1/accounts/{id}/balance.
      - `paymentRail` string — Payment rail for provider balance accounts (e.g. ETHEREUM). Omitted for other account types.
      - `lastSentAt` string, date-time, nullable — Timestamp of the last transfer sent from this account
      - `lastReceivedAt` string, date-time, nullable — Timestamp of the last transfer received to this account
      - `customer` CustomerResponseDto — recursive
      - `sweepTargetAccount` AccountResponseDto — recursive
      - `counterparty` CounterpartyResponseDto
        - `id` string, required — Counterparty ID
        - `name` string, required — Counterparty legal name
        - `beneficiaryType` 'INDIVIDUAL' | 'BUSINESS', required — Entity type (individual or business)
        - `address` AddressDto
          - `addressLine1` string, required — Address line 1
          - `addressLine2` string — Address line 2 (apartment, suite, etc.)
          - `city` string, required — City
          - `state` string — State / Province
          - `postalCode` string, required — Postal code / ZIP code. May be empty for countries without a postal-code system, including the United Arab Emirates.
          - `country` string, required — Country code (ISO 3166-2)
          - `transliterated` TransliteratedAddressDto
            - `addressLine1` string — Transliterated address line 1 (Latin characters)
            - `addressLine2` string — Transliterated address line 2 (Latin characters)
            - `city` string — Transliterated city (Latin characters)
            - `state` string — Transliterated state/province (Latin characters)
        - `createdAt` string, date-time, required — Creation timestamp
        - `updatedAt` string, date-time, required — Last update timestamp
      - `screeningStatus` string, nullable
  - `documents` DocumentResponseDto[] — Customer documents (only included when expand=documents). Returns all documents for this customer.
    - `id` string, required
    - `organizationId` string, required
    - `customerId` string, required
    - `transferId` string, nullable
    - `documentType` 'IDENTITY' | 'PROOF_OF_ADDRESS' | 'INVOICE' | 'CONTRACT' | 'BANK_STATEMENT' | 'BUSINESS_LICENSE' | 'ARTICLES_OF_INCORPORATION' | 'ARTICLES_OF_ASSOCIATION' | 'CERTIFICATE_OF_FORMATION' | 'CERTIFICATE_OF_INCUMBENCY' | 'OPERATING_AGREEMENT' | 'PARTNERSHIP_AGREEMENT' | 'OWNERSHIP_STRUCTURE' | 'SHAREHOLDER_AGREEMENT' | 'STOCK_CERTIFICATE' | 'TAX_RETURN' | 'FINANCIAL_STATEMENT' | 'MARKETING_MATERIALS' | 'DOMAIN_OWNERSHIP_PROOF' | 'BUSINESS_PLAN' | 'BILL_OF_LADING' | 'AML_POLICY' | 'AML_COMFORT_LETTER' | 'FUNDS_FLOW_DIAGRAM' | 'GOOD_STANDING_CERTIFICATE' | 'TIN_VERIFICATION' | 'MSB_LICENSE' | 'DIRECTORS_REGISTRY' | 'OWNERSHIP_CHART' | 'PROOF_OF_SIGNATORY_AUTHORITY' | 'PROOF_OF_SOURCE_OF_FUNDS' | 'PROOF_OF_ENTITY_NAME_CHANGE' | 'REMOTE_ADDRESS_ATTESTATION' | 'E_SIGNATURE_CERTIFICATE' | 'COMPLIANCE_NOTES' | 'PROOF_OF_SOURCE_OF_WEALTH' | 'TAX_EXEMPT_ENTITY_CONFIRMATION' | 'OTHER', required — Document type
    - `documentSubtype` string — Specific document subtype
    - `fileName` string, required
    - `contentType` string, required
    - `sizeBytes` number, required
    - `remarks` string, nullable — Free-form remarks or notes about the document
    - `fileHash` string, nullable — SHA-256 hash of file content
    - `downloadUrl` string — Signed URL to download the document
    - `status` 'PENDING' | 'UPLOADING' | 'UPLOADED' | 'FAILED', required — Document status
    - `createdAt` string, date-time, required
    - `uploadedAt` string, date-time, nullable
    - `associatedEntityId` string, nullable — Associated entity ID (e.g., UBO)
  - `treasury` CustomerTreasuryResponseDto
    - `customerId` string, required — Customer ID
    - `treasuries` TreasuryDto[], required — Customer treasuries with wallet balances
      - `id` string, required — Treasury ID
      - `name` string, nullable — Treasury name
      - `provider` 'BRALE' | 'BRIDGE' | 'CAPA' | 'CODEX' | 'EREBOR' | 'FIN' | 'INFINIA' | 'ONE_MONEY' | 'STABLES' | 'TURNKEY' | 'PRIVY' | 'INFINITE' | 'SOCURE' | 'SARDINE' — Provider backing this treasury
      - `balances` object, required — Balances held in this treasury keyed by currency code
      - `fundingMethods` TreasuryFundingMethodDto[], required — Funding methods that can pay into this treasury
        - `id` string, required — Funding method ID
        - `type` 'BANK_ACCOUNT' | 'CRYPTO_ADDRESS', required — Funding method type
        - `provider` 'BRALE' | 'BRIDGE' | 'CAPA' | 'CODEX' | 'EREBOR' | 'FIN' | 'INFINIA' | 'ONE_MONEY' | 'STABLES' | 'TURNKEY' | 'PRIVY' | 'INFINITE' | 'SOCURE' | 'SARDINE', required — Provider backing this treasury funding method
        - `currency` string — Primary currency accepted by this funding method
        - `currencyCodes` string[] — Currencies accepted by this funding method
        - `rail` string — Inbound payment rail or network
        - `rails` string[] — Supported inbound payment rails
        - `bankName` string — Bank name for bank funding methods
        - `beneficiaryName` string — Beneficiary name for bank funding methods
        - `accountNumber` string — Bank account number for bank funding methods
        - `routingNumber` string — Routing number for bank funding methods
        - `iban` string — IBAN for bank funding methods
        - `swiftBic` string — SWIFT/BIC code for bank funding methods
        - `address` string — Deposit address for crypto funding methods
        - `addressType` 'EVM' | 'TRON' | 'BITCOIN' | 'SOLANA' — Address type for crypto funding methods
        - `chains` string[] — Supported chains for crypto funding methods
      - `wallets` TreasuryWalletDto[], required — Wallets in this treasury
        - `address` string, required — Wallet address
        - `addressType` 'EVM' | 'TRON' | 'BITCOIN' | 'SOLANA', required — Address type
        - `balances` WalletTokenBalanceDto[], required — Token balances on this wallet
          - `currency` string, required — Currency symbol
          - `balance` MoneyOutputDto, required
            - `currency` string, required — Currency code
            - `exponent` number, required — Number of decimal places for this currency (e.g., 2 for USD, 6 for USDC)
            - `value` string, required — Amount in smallest unit as a string
            - `displayValue` string, required — Human-readable decimal value
          - `chain` string, required — Chain name
  - `verificationSessions` CustomerVerificationSessionResponseDto[] — Verification sessions (only included when expand=verificationSessions). Returns verification session summaries.
    - `id` string, required
    - `status` string, required
    - `createdAt` string, required
    - `completedAt` string, nullable
    - `progressPercentage` number, nullable

## Other responses

- `400` — Customer is not in a submittable state or missing required fields
- `401` — Unauthorized - Invalid or missing authentication credentials

---

[API](https://skmtc.dev/infinite/apis/infinite-api.md) · [All operations](https://skmtc.dev/infinite/apis/infinite-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/infinite/infinite-api/revisions/5426f2706725/schema)
