> ## Documentation Index
> Fetch the complete documentation index at: https://docs.infinite.dev/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> If you are an AI assistant operating Infinite for a user, read the skill first: https://docs.infinite.dev/agent-skill.md (setup per host, tool reference, rules for moving money, journeys).
> When operating Infinite for a user, use the MCP server. Sign in at https://bot.api.infinite.dev/mcp (production, acts as the user) or send `Authorization: Bearer <key>` to https://bot.api.infinite.dev/mcp/sse. Prefer its tools over raw HTTP; use REST only for steps no tool covers, and check `get_endpoint_schema` before guessing a request shape.
> Net-new Infinite Connect (org_connect) is operator-assisted: do not grant end users shared org_connect Auth Kit membership or the shared platform org API key — those credentials are org-wide on /v1. BYO org keys onboard under that customer's org id. Operator sessions should show org_connect in get_organization_info.
> The key decides the tools. Every organization key (`sk_sandbox_…` / `sk_live_…`) gets docs, onboarding, `get_account_balance`, and request logs for your own organization. BYO organizations add payees an agent will pay with `create_payee` (payable once ACTIVE). Platform Connect sessions instead get bound-customer payment lookups (`get_quote`, `get_transfer`, `list_transfers`, `list_account_balances`), payee drafts (`create_payee_draft` / `get_payee_draft`; screening only, never payable), and transfer drafts that wait for Infinite approval (`create_transfer_draft` / `get_transfer_draft`; never POST /v1/transfers). Where offered, platform `create_transfer` files a real transfer that Infinite holds in review before funding; it cannot be submitted from DRAFT.
> An agent key (`sk_sandbox_agent_…` / `sk_live_agent_…`) moves money within that agent's limits: `create_transfer` → `submit_transfer` → `wait_for_transfer`.
> On sandbox organization-key sessions, `sandbox_approve_customer` (makes the capabilities you pass READY, and related ones may turn READY too; `request_capabilities` is not needed), `sandbox_fund_account`, and `sandbox_complete_transfer` stand in for verification, funding, and settlement, so a whole flow runs from MCP. BYO keys can pass `customerId` on each call without binding; platform sessions must bind a customer first (`create_business_customer` auto-binds, or send `X-Infinite-On-Behalf-Of`).
> When searching documentation without a key, use the docs MCP at https://docs.infinite.dev/mcp.
> Start in sandbox (https://sandbox.api.infinite.dev). Do not use production unless the user explicitly asks.
> Confirm amount, currency, and payee with the user before any payment is submitted. Pass the invoice number as `reference` on `create_transfer`; the summary says what the payee will see.
> REST amounts are integer minor units (`"4000"` = 40.00 USD). MCP payment tools take exact decimal strings (`"40.00"`). Never mix them.
> Agent denials return `403 { denial: { code, message, window, limit, used, remaining, attemptedAmount, currency }, hint }` with decimal amounts; per-transfer denials omit `used` and `remaining`. Report them to the user; do not work around them.

# Get transfer by ID

> Retrieve a transfer by ID with optional expansion of related resources.

Use the `expand` query parameter to include full objects instead of just IDs:
- `sourceAccount`: Include full source account details
- `destinationAccount`: Include full destination account details
- `counterparty`: Include full counterparty details (for third-party transfers)
- `documents`: Include document IDs (included by default)

Multiple expansions can be requested: `?expand=sourceAccount,destinationAccount,counterparty`



## OpenAPI

````yaml get /v1/transfers/{id}
openapi: 3.0.0
info:
  title: Infinite API
  description: API for Infinite
  version: '1.0'
  contact: {}
servers:
  - url: https://sandbox.api.infinite.dev
    description: Sandbox
  - url: https://api.infinite.dev
    description: Production
security: []
tags:
  - name: Accounts
    description: Virtual and external account management
  - name: Customers
    description: Customer identity management
  - name: Documents
    description: Document upload and management
  - name: Fixed Routes
    description: Fixed route management
  - name: External Bank Accounts
    description: External bank account management
  - name: External Wallets
    description: External wallet management
  - name: Infinite Wallets
    description: Infinite Wallet management
  - name: Organizations
    description: Organization management
  - name: Quotes
    description: Quote creation and management
  - name: Transfers
    description: Money movement and transaction tracking
  - name: Verification
    description: Identity verification workflows
  - name: Terms of Service
    description: Terms of Service acceptance
  - name: Health
    description: System health and monitoring
  - name: Sandbox
    description: Sandbox utilities
paths:
  /v1/transfers/{id}:
    get:
      tags:
        - Transfers
      summary: Get transfer by ID
      description: >-
        Retrieve a transfer by ID with optional expansion of related resources.


        Use the `expand` query parameter to include full objects instead of just
        IDs:

        - `sourceAccount`: Include full source account details

        - `destinationAccount`: Include full destination account details

        - `counterparty`: Include full counterparty details (for third-party
        transfers)

        - `documents`: Include document IDs (included by default)


        Multiple expansions can be requested:
        `?expand=sourceAccount,destinationAccount,counterparty`
      operationId: TransfersController_findOne_v1
      parameters:
        - name: X-API-Key
          in: header
          description: API key
          required: false
          schema:
            type: string
        - name: id
          required: true
          in: path
          schema:
            type: string
        - name: expand
          required: false
          in: query
          description: >-
            Fields to expand in the response. Pass as comma-separated values or
            repeated query params.
          schema:
            example:
              - sourceAccount
              - destinationAccount
            type: array
            items:
              type: string
              enum:
                - sourceAccount
                - destinationAccount
                - sourceCustomer
                - counterparty
                - documents
        - name: includeInternal
          required: false
          in: query
          description: Include internal/system-generated documents
          schema:
            type: boolean
      responses:
        '200':
          description: Transfer retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferDetailResponseDto'
        '401':
          description: Unauthorized - Invalid or missing authentication credentials
      security:
        - bearer: []
      x-codeSamples:
        - lang: bash
          label: CLI
          source: >-
            # Requires: npm i -g @infinite_dev/cli && export
            INFINITE_API_KEY=sk_sandbox_...

            infinite transfers get tfr_abc123
        - lang: text
          label: MCP
          source: >-
            Get transfer (tfr_abc123, expand sourceAccount,destinationAccount,
            includeInternal true).
components:
  schemas:
    TransferDetailResponseDto:
      type: object
      properties:
        id:
          type: string
          description: Transfer ID (tfr_xxx)
          example: tfr_1234567890abcdef
        organizationId:
          type: string
          description: Organization ID
          example: org_abc123
        clientReferenceId:
          type: string
          description: Client's internal reference ID
          example: order_abc123
          nullable: true
        sourceCustomerId:
          type: string
          description: Source customer ID
          example: cus_abc123
        counterpartyId:
          type: string
          description: Counterparty ID for third-party recipient transfers
          example: cp_abc123
          nullable: true
        agentId:
          type: string
          description: >-
            Agent whose key created or submitted this transfer. Null when the
            transfer was not made by an agent key.
          example: agt_abc123
          nullable: true
        agentApprovalStatus:
          description: >-
            Owner approval for an agent payment that went over its limits.
            PENDING: the draft waits for POST /v1/transfers/{id}/agent-approval.
            Null when no approval was needed.
          nullable: true
          allOf:
            - $ref: '#/components/schemas/AgentApprovalStatus'
        flow:
          type: string
          enum:
            - CRYPTO_TO_CRYPTO
            - CRYPTO_TO_FIAT
            - FIAT_TO_CRYPTO
            - FIAT_TO_FIAT
            - FIAT_TO_CRYPTO_TO_FIAT
            - FX
            - INTERNAL
            - FEE_CRYPTO
            - REFUND_CRYPTO
            - REFUND_FIAT
          description: Transfer flow type describing the asset conversion
          example: CRYPTO_TO_FIAT
        status:
          type: string
          enum:
            - DRAFT
            - PENDING_AUTHORIZATION
            - IN_REVIEW
            - PENDING
            - PROCESSING
            - COMPLETED
            - FAILED
            - CANCELLED
            - REVERSED
          description: Transfer status
          example: COMPLETED
        source:
          description: Source payment details
          allOf:
            - $ref: '#/components/schemas/TransferSourceResponseDto'
        destination:
          description: Destination payment details
          allOf:
            - $ref: '#/components/schemas/TransferDestinationResponseDto'
        sourceAmount:
          description: Source amount with currency details
          allOf:
            - $ref: '#/components/schemas/MoneyOutputDto'
        destinationAmount:
          description: Destination amount with currency details
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/MoneyOutputDto'
        refund:
          description: >-
            Refund details when this transfer has been refunded or a refund is
            in progress
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/TransferRefundResponseDto'
        quoteId:
          type: string
          description: Quote ID if transfer was created from a quote
          example: quote_abc123
          nullable: true
        exchangeRate:
          type: string
          description: >-
            Exchange rate applied to the currency conversion, inclusive of all
            fees. Expressed on minor-unit amounts: destinationAmount =
            sourceAmount * exchangeRate. Populated for FX trades.
          example: '0.99985'
          nullable: true
        referenceRate:
          type: string
          description: >-
            Independent reference rate used to price this transfer, expressed as
            destination major units per source major unit. Present for
            benchmark-priced FX transfers.
          example: '1.158691536019208779'
        referenceRateAsOf:
          type: string
          description: >-
            Timestamp of the independent reference rate used to price this
            transfer (ISO 8601).
          example: '2026-09-02T18:30:04.000Z'
        referenceProvider:
          type: string
          description: >-
            Independent market that published `referenceRate`. Present when
            `referenceRate` is present.
          enum:
            - XE
          example: XE
        developerFeeFixed:
          type: string
          description: >-
            Fixed developer fee in minor units of source currency. Prefer the
            `developerFee` object, which also carries the collected amount and
            payout hash.
          example: '100'
          nullable: true
        developerFeePercent:
          type: number
          description: >-
            Variable developer fee as decimal percentage (e.g., 0.005 = 0.5%).
            Prefer the `developerFee` object, which also carries the collected
            amount and payout hash.
          example: 0.005
          nullable: true
        developerFee:
          description: >-
            Developer fee charged on this transfer: the configured components
            plus the collected amount and the on-chain payout hash for
            reconciliation against your fee wallet. Null when the transfer has
            no developer fee. Per-step collected amounts and fee tx hashes are
            on `legs[]`.
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/TransferDeveloperFeeDto'
        depositInstructions:
          description: >-
            Deposit instructions if customer needs to send funds (onramps).
            Either crypto or fiat instructions depending on the transfer flow.
          nullable: true
          oneOf:
            - $ref: '#/components/schemas/CryptoDepositInstructionsDto'
            - $ref: '#/components/schemas/FiatDepositInstructionsDto'
        createdAt:
          type: string
          description: Transfer creation date
          format: date-time
          example: '2026-09-15T10:00:00.000Z'
        updatedAt:
          type: string
          description: Transfer last update date
          format: date-time
          example: '2026-09-15T10:00:00.000Z'
        returnedToAccountId:
          type: string
          description: >-
            Account credited when a settled payout is returned. Null unless the
            return is attributed to one account on this transfer.
          example: acc_123
          nullable: true
        returnedAt:
          type: string
          description: >-
            When the payout return was recorded. Account history uses this time
            for returned credits.
          format: date-time
          example: '2026-09-15T10:00:00.000Z'
          nullable: true
        legs:
          description: Transfer route legs (steps in the transfer)
          type: array
          items:
            $ref: '#/components/schemas/TransferStepDto'
        currentLegIndex:
          type: number
          description: >-
            Index of the current active leg in the legs array (0-indexed). Null
            if all legs are done.
          example: 0
          nullable: true
        fundingNeeded:
          type: boolean
          description: >-
            Whether the transfer is waiting for the customer to send funds
            (deposit)
          example: false
        isThirdParty:
          type: boolean
          description: >-
            Whether this is a third-party payment (destination account belongs
            to someone other than the customer)
          example: false
        remarks:
          type: string
          description: Free-form remarks or notes about the transfer
          example: Partial payment - remaining balance to be paid next month
          nullable: true
        internalRemarks:
          type: string
          description: >-
            Internal remarks visible only within your organization. Never
            forwarded to payment rails or counterparties.
          nullable: true
        uetr:
          type: string
          description: SWIFT UETR (Universal End-to-End Transaction Reference)
          example: 9b6f37f2-21f0-4b2b-b03c-1893364782ce
          nullable: true
        imad:
          type: string
          description: Wire IMAD (Input Message Accountability Data)
          example: 20260309EREBBANK000002
          nullable: true
        omad:
          type: string
          description: Wire OMAD (Output Message Accountability Data)
          example: 20260309MMQFMP0B012345
          nullable: true
        achTraceNumber:
          type: string
          description: ACH trace number from the payment network
          example: '021000021234567'
          nullable: true
        originatingAccount:
          description: Sending bank and account used for the fiat payout, when known
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/OriginatingAccountDto'
        txHash:
          type: string
          description: Blockchain transaction hash
          example: 0x1234567890abcdef...
          nullable: true
        systemRemark:
          type: string
          description: >-
            System-generated status note with important transfer context for the
            customer
          example: >-
            Tracking is unavailable for this SWIFT transfer. We will
            auto-complete it after 24 hours and mark it with an asterisk because
            settlement is assumed rather than confirmed.
          nullable: true
        metadata:
          type: object
          description: Additional non-contractual transfer metadata for UI display
          additionalProperties: true
          example:
            swiftRouting:
              source: GPI_ROUTE
              senderBic: CHASUS33
              receiverBic: CLRBGB22
              checkedAt: '2026-05-10T16:34:42.597Z'
              steps:
                - label: Sender bank
                  bic: CHASUS33
                  bankName: JP Morgan Chase
                  status: Confirmed Active
        estimatedSettlementAt:
          type: string
          description: >-
            Estimated time the recipient will receive funds. Best-effort
            projection — fiat rails account for bank cutoff times, weekends, and
            US Federal Reserve holidays; crypto conversions project from
            recently observed processing times for the route. Not a guarantee.
          format: date-time
          nullable: true
          example: '2026-05-26T13:00:00.000Z'
        nextCutoffAt:
          type: string
          description: >-
            Next time the customer can submit and still settle same business
            day. Past this time, transfers settle next business day.
          format: date-time
          nullable: true
          example: '2026-05-19T19:00:00.000Z'
        cutoffTimezone:
          type: string
          description: IANA timezone for the cutoff time, e.g. "America/New_York".
          example: America/New_York
          nullable: true
        counterparty:
          description: >-
            Expanded counterparty details (only included when
            expand=counterparty)
          oneOf:
            - $ref: '#/components/schemas/CounterpartyResponseDto'
          allOf:
            - $ref: '#/components/schemas/CounterpartyResponseDto'
        correspondentBank:
          description: Correspondent/intermediary bank details (when applicable)
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/CorrespondentBankDto'
        documentIds:
          description: IDs of documents associated with this transfer
          example:
            - doc_abc123
            - doc_def456
          type: array
          items:
            type: string
        sourceAccount:
          description: >-
            Expanded source account details (only included when
            expand=sourceAccount)
          oneOf:
            - $ref: '#/components/schemas/AccountResponseDto'
          allOf:
            - $ref: '#/components/schemas/AccountResponseDto'
        destinationAccount:
          description: >-
            Expanded destination account details (only included when
            expand=destinationAccount)
          oneOf:
            - $ref: '#/components/schemas/AccountResponseDto'
          allOf:
            - $ref: '#/components/schemas/AccountResponseDto'
        sourceCustomer:
          description: >-
            Expanded source customer details (only included when
            expand=sourceCustomer)
          oneOf:
            - $ref: '#/components/schemas/CustomerResponseDto'
          allOf:
            - $ref: '#/components/schemas/CustomerResponseDto'
      required:
        - id
        - organizationId
        - sourceCustomerId
        - flow
        - status
        - source
        - destination
        - sourceAmount
        - createdAt
        - updatedAt
        - legs
        - fundingNeeded
    AgentApprovalStatus:
      type: string
      enum:
        - PENDING
        - APPROVED
        - DECLINED
    TransferSourceResponseDto:
      type: object
      properties:
        currency:
          type: string
          description: Source currency code
          example: usd
        fundingCurrency:
          type: string
          description: >-
            Asset the transfer was funded with when it differs from the
            settlement currency (e.g. a stablecoin deposit settled as fiat at
            face value)
          example: usdc
          nullable: true
        paymentRail:
          type: string
          description: Source payment rail
          example: ACH
        direction:
          type: string
          description: ACH direction when the source rail is ACH
          enum:
            - CREDIT
            - DEBIT
          example: CREDIT
          nullable: true
        accountId:
          type: string
          description: Account ID if applicable
          example: vba_abc123
        accountType:
          type: string
          description: Account type for quick filtering
          enum:
            - VIRTUAL_BANK
            - VIRTUAL_WALLET
            - INFINITE_BANK
            - INFINITE_WALLET
            - EXTERNAL_BANK
            - EXTERNAL_WALLET
            - EXTERNAL_PROXY
            - PROVIDER_BALANCE
          example: VIRTUAL_BANK
        externalAccountId:
          type: string
          description: External account ID if applicable
          example: ext_bank_456
        fromAddress:
          type: string
          description: Source wallet address (for crypto sources)
          example: '0x1234567890abcdef1234567890abcdef12345678'
        refundAccountId:
          type: string
          description: >-
            Customer wallet account ID (inw_xxx or ewa_xxx) that receives
            refunds for failed crypto transfers or when fees exceed deposit
          example: inw_abc123
        accountName:
          type: string
          description: Account holder name
          example: Acme Corporation
        originator:
          description: >-
            Inbound remitter / originator bank identity when the settlement rail
            reported it. ACH includes the originator name and routing number
            when the network provides them; account number and bank name are
            usually absent. Omitted or null when the rail reports no sender
            details. Not the receiving deposit account.
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/TransferDepositOriginatorDto'
      required:
        - currency
        - paymentRail
    TransferDestinationResponseDto:
      type: object
      properties:
        currency:
          type: string
          description: Destination currency code
          example: USDC
        paymentRail:
          type: string
          description: Destination payment rail
          example: ETHEREUM
        accountId:
          type: string
          description: Account ID if applicable
          example: vwa_def456
        accountType:
          type: string
          description: Account type for quick filtering
          enum:
            - VIRTUAL_BANK
            - VIRTUAL_WALLET
            - INFINITE_BANK
            - INFINITE_WALLET
            - EXTERNAL_BANK
            - EXTERNAL_WALLET
            - EXTERNAL_PROXY
            - PROVIDER_BALANCE
          example: EXTERNAL_BANK
        externalAccountId:
          type: string
          description: External account ID if applicable
          example: ext_bank_789
        toAddress:
          type: string
          description: Destination wallet address (for crypto destinations)
          example: '0x1234567890abcdef1234567890abcdef12345678'
        accountName:
          type: string
          description: Account holder name
          example: Acme Corporation
        bankName:
          type: string
          description: Destination bank name (for external bank destinations)
          example: JPMorgan Chase Bank
          nullable: true
        bankCountryCode:
          type: string
          description: >-
            Destination bank country code, ISO 3166-1 alpha-2 (for external bank
            destinations)
          example: US
          nullable: true
        wireMessage:
          type: string
          description: Wire message if applicable
          example: Payment for invoice INV-2026-001
          nullable: true
        achReference:
          type: string
          description: ACH reference if applicable
          example: ORDER123
          nullable: true
        swiftReference:
          type: string
          description: SWIFT reference if applicable
          example: Payment for invoice INV-2026-001
          nullable: true
        rtpReference:
          type: string
          description: RTP reference if applicable
          example: Payment for invoice INV-2026-001
          nullable: true
        payoutReference:
          type: string
          description: >-
            Payment reference that appears on the recipient bank statement, for
            fiat payouts. Populated once the payout has been initiated.
          example: INV2026
          nullable: true
      required:
        - currency
        - paymentRail
    MoneyOutputDto:
      type: object
      properties:
        currency:
          type: string
          description: Currency code
          example: USD
        exponent:
          type: number
          description: >-
            Number of decimal places for this currency (e.g., 2 for USD, 6 for
            USDC)
          example: 2
        value:
          type: string
          description: Amount in smallest unit as a string
          example: '12345'
        displayValue:
          type: string
          description: Human-readable decimal value
          example: '123.45'
      required:
        - currency
        - exponent
        - value
        - displayValue
    TransferRefundResponseDto:
      type: object
      properties:
        status:
          type: string
          enum:
            - INITIATED
            - COMPLETED
          description: Current refund status
          example: COMPLETED
        reason:
          type: string
          description: Reason the transfer was refunded
          example: Fees exceed deposit amount
          nullable: true
        amount:
          description: Refund amount with currency details
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/MoneyOutputDto'
        address:
          type: string
          description: Destination address used for the refund
          example: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb'
          nullable: true
        txHash:
          type: string
          description: Refund transaction hash
          example: 0x1234567890abcdef...
          nullable: true
        initiatedAt:
          type: string
          description: When the refund was initiated
          format: date-time
          nullable: true
        completedAt:
          type: string
          description: When the refund completed
          format: date-time
          nullable: true
      required:
        - status
    TransferDeveloperFeeDto:
      type: object
      properties:
        amount:
          description: >-
            Total developer fee collected for this transfer. Null until the fee
            has been collected.
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/MoneyOutputDto'
        fixed:
          type: string
          description: >-
            Configured fixed fee component, in minor units of the source
            currency.
          example: '100'
          nullable: true
        percent:
          type: number
          description: >-
            Configured variable fee component as a decimal fraction (e.g., 0.005
            = 0.5%).
          example: 0.005
          nullable: true
        txHash:
          type: string
          description: >-
            Transaction hash of the on-chain movement that paid the fee out to
            your configured fee wallet. Shared with the payout hash when the fee
            was split atomically in the same transaction. Null when the fee
            settled without a dedicated on-chain hop.
          example: 0x1234567890abcdef...
          nullable: true
    CryptoDepositInstructionsDto:
      type: object
      properties:
        type:
          type: string
          description: Instruction type
          example: crypto
        paymentRail:
          type: string
          description: Payment rail (blockchain)
          example: ETHEREUM
        toAddress:
          type: string
          description: Destination wallet address
          example: '0x1234567890abcdef1234567890abcdef12345678'
        amount:
          description: Amount to deposit
          allOf:
            - $ref: '#/components/schemas/MoneyOutputDto'
        blockchainMemo:
          type: string
          description: Blockchain memo (for chains that require it)
          nullable: true
        accountId:
          type: string
          description: Account ID for the deposit destination
          example: acc_abc123
          nullable: true
      required:
        - type
        - paymentRail
        - toAddress
        - amount
    FiatDepositInstructionsDto:
      type: object
      properties:
        type:
          type: string
          description: Instruction type
          example: fiat
        paymentRail:
          type: string
          description: Payment rail
          example: ACH
        direction:
          type: string
          description: ACH direction when the funding instructions are ACH-specific
          enum:
            - CREDIT
            - DEBIT
          example: CREDIT
          nullable: true
        amount:
          description: Amount to deposit
          allOf:
            - $ref: '#/components/schemas/MoneyOutputDto'
        bankName:
          type: string
          description: Bank name
          nullable: true
        bankAddress:
          description: Bank address (structured)
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/BankAddressDto'
        accountNumber:
          type: string
          description: Account number
          nullable: true
        routingNumber:
          type: string
          description: Routing number (US)
          nullable: true
        beneficiaryName:
          type: string
          description: Beneficiary name
          nullable: true
        beneficiaryAddress:
          description: Beneficiary address (structured)
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/BankAddressDto'
        iban:
          type: string
          description: IBAN (international)
          nullable: true
        swiftBic:
          type: string
          description: SWIFT/BIC code
          nullable: true
        depositMessage:
          type: string
          description: Deposit message/reference to include in the transfer
          nullable: true
        clabe:
          type: string
          description: CLABE (Mexico)
          nullable: true
        accountId:
          type: string
          description: Account ID for the deposit destination
          example: vba_abc123
          nullable: true
      required:
        - type
        - paymentRail
        - amount
    TransferStepDto:
      type: object
      properties:
        id:
          type: string
          description: Step ID
          example: tleg_abc123
        sequence:
          type: number
          description: Sequence in the route (0-indexed)
          example: 0
        type:
          type: string
          description: Step type
          example: DEPOSIT_CRYPTO
          enum:
            - DEPOSIT_CRYPTO
            - DEPOSIT_FIAT
            - ONRAMP
            - CONVERT
            - OFFRAMP
            - CRYPTO_TRANSFER
            - BRIDGE
            - OUTBOUND_TOP_UP
            - INBOUND_TOP_UP
            - REFUND_CRYPTO
            - REFUND_FIAT
            - LIQUIDITY_ADVANCE
        inputCurrency:
          type: string
          description: Input currency
          example: USDC
        outputCurrency:
          type: string
          description: Output currency
          example: USD
        inputRail:
          type: string
          description: Input rail
          example: ETHEREUM
        outputRail:
          type: string
          description: Output rail
          example: ACH
        status:
          type: string
          description: Step status
          example: PENDING
          enum:
            - PENDING
            - IN_PROGRESS
            - COMPLETED
            - FAILED
            - SKIPPED
        startedAt:
          type: string
          description: When the step started processing
          format: date-time
        completedAt:
          type: string
          description: When the step completed
          format: date-time
        uetr:
          type: string
          description: SWIFT UETR (Universal End-to-End Transaction Reference)
          example: 9b6f37f2-21f0-4b2b-b03c-1893364782ce
          nullable: true
        imad:
          type: string
          description: Wire IMAD (Input Message Accountability Data)
          example: 20260309EREBBANK000002
          nullable: true
        omad:
          type: string
          description: Wire OMAD (Output Message Accountability Data)
          example: 20260309MMQFMP0B012345
          nullable: true
        achTraceNumber:
          type: string
          description: ACH trace number from the payment network
          example: '021000021234567'
          nullable: true
        txHash:
          type: string
          description: >-
            Blockchain transaction hash. Populated for on-chain customer wallet
            movements: crypto deposits, crypto sends to the destination wallet,
            and crypto refunds. Null for internal settlement steps.
          example: 0x1234567890abcdef...
          nullable: true
        developerFee:
          description: >-
            Developer fee collected on this step. Null for steps that carried no
            fee.
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/MoneyOutputDto'
        feeTxHash:
          type: string
          description: >-
            Transaction hash of the on-chain movement that paid this step's
            developer fee to your configured fee wallet. Matches txHash when the
            fee was split atomically in the same transaction; null when the fee
            settled without a dedicated on-chain hop.
          example: 0x1234567890abcdef...
          nullable: true
      required:
        - id
        - sequence
        - type
        - inputCurrency
        - outputCurrency
        - inputRail
        - outputRail
        - status
    OriginatingAccountDto:
      type: object
      properties:
        bankName:
          type: string
          description: Originating bank name
          nullable: true
        routingNumber:
          type: string
          description: Originating ABA routing number
          example: '044016018'
          nullable: true
        accountNumber:
          type: string
          description: Originating sending account number
          example: '37216498313366'
          nullable: true
    CounterpartyResponseDto:
      type: object
      properties:
        id:
          type: string
          example: cp_abc123
          description: Counterparty ID
        name:
          type: string
          example: Jane Doe
          description: Counterparty legal name
        beneficiaryType:
          type: string
          enum:
            - INDIVIDUAL
            - BUSINESS
          example: INDIVIDUAL
          description: Entity type (individual or business)
        address:
          nullable: true
          description: Counterparty address
          type: object
          allOf:
            - $ref: '#/components/schemas/AddressDto'
        createdAt:
          type: string
          description: Creation timestamp
          format: date-time
        updatedAt:
          type: string
          description: Last update timestamp
          format: date-time
      required:
        - id
        - name
        - beneficiaryType
        - createdAt
        - updatedAt
    CorrespondentBankDto:
      type: object
      properties:
        name:
          type: string
          description: Bank name
          nullable: true
        swiftCode:
          type: string
          description: SWIFT/BIC code
          example: IRVTUS3NXXX
          nullable: true
        accountNumber:
          type: string
          description: Account number
          example: '9876543210'
          nullable: true
    AccountResponseDto:
      type: object
      properties:
        id:
          type: string
          description: >-
            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)
          example: vba_1234567890abcdef
        customerId:
          type: string
          description: Customer ID
          example: cust_abc123
        type:
          type: string
          enum:
            - VIRTUAL_BANK
            - VIRTUAL_WALLET
            - INFINITE_BANK
            - INFINITE_WALLET
            - EXTERNAL_BANK
            - EXTERNAL_WALLET
            - EXTERNAL_PROXY
            - PROVIDER_BALANCE
          description: Account type
          example: VIRTUAL_BANK
        externalReference:
          type: string
          description: Client-provided external reference for mapping to your system
          example: 550e8400-e29b-41d4-a716-446655440000
        bankDetails:
          type: object
          description: Bank account details (for bank accounts)
          properties:
            accountNumber:
              type: string
              example: '1234567890'
            routingNumber:
              type: string
              example: '021000021'
            iban:
              type: string
              example: GB82WEST12345698765432
            swiftCode:
              type: string
              example: CHASUS33
            bankName:
              type: string
              example: JPMorgan Chase Bank
            bankCountryCode:
              type: string
              example: US
            bankAddress:
              type: object
              properties:
                addressLine1:
                  type: string
                  example: 270 Park Avenue
                addressLine2:
                  type: string
                  example: Floor 10
                city:
                  type: string
                  example: New York
                state:
                  type: string
                  example: NY
                postalCode:
                  type: string
                  example: '10017'
                country:
                  type: string
                  example: US
            beneficiaryName:
              type: string
              example: John Smith
            beneficiaryPhone:
              type: string
              example: '+14155550123'
            beneficiaryAddress:
              type: object
              properties:
                addressLine1:
                  type: string
                  example: 123 Main Street
                addressLine2:
                  type: string
                  example: Suite 100
                city:
                  type: string
                  example: New York
                state:
                  type: string
                  example: NY
                postalCode:
                  type: string
                  example: '10001'
                country:
                  type: string
                  example: US
            supportedNetworks:
              type: array
              items:
                type: string
              example:
                - ACH
                - WIRE
              description: >-
                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:
          type: object
          description: Wallet details (for wallet accounts)
          properties:
            walletAddress:
              type: string
              example: '0x1234567890abcdef1234567890abcdef12345678'
            addressType:
              type: string
              enum:
                - EVM
                - TRON
                - BITCOIN
                - SOLANA
              example: EVM
            chains:
              type: array
              items:
                type: string
              example:
                - ETHEREUM
                - BASE
            walletType:
              type: string
              enum:
                - TREASURY
                - TRANSACTION
                - VIRTUAL
              example: TREASURY
              description: Wallet type (for infinite wallets only)
            sweepTargetAccountId:
              type: string
              nullable: true
              example: eba_1234567890abcdef
              description: >-
                Fixed-route sweep target when this Infinite wallet is a route
                source (null when unrestricted)
        status:
          type: string
          enum:
            - IN_REVIEW
            - ACTIVE
            - CLOSED
          description: Account status
          example: ACTIVE
        currencyCodes:
          description: Currency codes supported by this account
          example:
            - USD
            - USDC
          type: array
          items:
            type: string
        virtualBankAccount:
          type: object
          description: Virtual bank account details
          properties:
            id:
              type: string
              example: vba_1234567890abcdef
            depositInstructions:
              type: object
              properties:
                bankName:
                  type: string
                  example: JPMorgan Chase Bank
                bankAddress:
                  type: object
                  nullable: true
                  properties:
                    addressLine1:
                      type: string
                      example: 270 Park Avenue
                    addressLine2:
                      type: string
                      example: Floor 10
                    city:
                      type: string
                      example: New York
                    state:
                      type: string
                      example: NY
                    postalCode:
                      type: string
                      example: '10017'
                    country:
                      type: string
                      example: US
                accountNumber:
                  type: string
                  example: '1234567890'
                routingNumber:
                  type: string
                  example: '021000021'
                iban:
                  type: string
                  example: GB82WEST12345698765432
                swiftBic:
                  type: string
                  example: CHASUS33
                bankCountryCode:
                  type: string
                  example: US
                beneficiaryName:
                  type: string
                  example: John Doe
                beneficiaryAddress:
                  type: object
                  nullable: true
                  properties:
                    addressLine1:
                      type: string
                      example: 270 Park Avenue
                    addressLine2:
                      type: string
                      example: Floor 10
                    city:
                      type: string
                      example: New York
                    state:
                      type: string
                      example: NY
                    postalCode:
                      type: string
                      example: '10017'
                    country:
                      type: string
                      example: US
            developerFeeFixed:
              type: string
              example: '100000'
            developerFeePercent:
              type: number
              example: 0.01
            sourceRail:
              type: string
              example: ACH
            sourceCurrency:
              type: string
              example: USD
            destinationRail:
              type: string
              example: BASE
            destinationCurrency:
              type: string
              example: USDC
            sweepTargetAccountId:
              type: string
              example: ewa_1234567890abcdef
            originCapable:
              type: boolean
              example: true
            originAccountId:
              type: string
              example: vba_1234567890abcdef
        virtualWallet:
          type: object
          description: Virtual wallet details (also known as liquidation addresses)
          properties:
            id:
              type: string
              example: vw_1234567890abcdef
            state:
              type: string
              enum:
                - ACTIVE
                - DEACTIVATED
              example: ACTIVE
            destinationCurrency:
              type: string
              example: USD
            destinationRail:
              type: string
              example: ACH
            sweepTargetAccountId:
              type: string
              example: eba_1234567890abcdef
            originCapable:
              type: boolean
              example: false
            originAccountId:
              type: string
              example: vwa_1234567890abcdef
        proxyDetails:
          type: object
          description: >-
            Proxy account details (for proxy/alias-based accounts like PIX, UPI,
            PromptPay)
          properties:
            aliasType:
              type: string
              enum:
                - PHONE
                - EMAIL
                - NATIONAL_ID
                - TAX_ID
                - RANDOM
                - CORPORATE_ID
              example: phone
            aliasValue:
              type: string
              example: '+5511912345678'
            paymentRail:
              type: string
              example: pix
            beneficiaryName:
              type: string
              example: John Smith
            beneficiaryType:
              type: string
              enum:
                - INDIVIDUAL
                - BUSINESS
              example: INDIVIDUAL
        isThirdParty:
          type: boolean
          description: Is this account owned by a third party?
          example: false
        counterpartyId:
          type: string
          description: Counterparty ID when this is a third-party recipient account
          example: cp_abc123
          nullable: true
        referenceId:
          type: string
          description: Client-provided reference ID
          example: 550e8400-e29b-41d4-a716-446655440000
        originCapable:
          type: boolean
          description: Whether this account can be used as the canonical transfer origin.
          example: true
          nullable: true
        originAccountId:
          type: string
          description: Canonical origin account ID when this account is a virtual alias.
          example: vba_1234567890abcdef
          nullable: true
        metadata:
          description: Additional metadata
          allOf:
            - $ref: '#/components/schemas/AccountMetadataDto'
        createdAt:
          type: string
          description: Account creation date
          format: date-time
          example: '2026-01-15T10:00:00Z'
        updatedAt:
          type: string
          description: Account last update date
          format: date-time
          example: '2026-01-15T10:00:00Z'
        created:
          type: boolean
          description: >-
            Whether this account was newly created in this request. Returns
            false if an existing account was returned (idempotent behavior).
          example: true
        holdsBalance:
          type: boolean
          description: >-
            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.
          example: true
        paymentRail:
          type: string
          description: >-
            Payment rail for provider balance accounts (e.g. ETHEREUM). Omitted
            for other account types.
          example: ETHEREUM
        lastSentAt:
          type: string
          description: Timestamp of the last transfer sent from this account
          format: date-time
          example: '2024-01-15T10:30:00Z'
        lastReceivedAt:
          type: string
          description: Timestamp of the last transfer received to this account
          format: date-time
          example: '2024-01-15T10:30:00Z'
        customer:
          description: Expanded customer details (only included when expand=customer)
          allOf:
            - $ref: '#/components/schemas/CustomerResponseDto'
        sweepTargetAccount:
          description: >-
            Expanded sweep target account details (only included when
            expand=sweepTargetAccount). For virtual bank accounts and virtual
            wallets that sweep to an external account.
          allOf:
            - $ref: '#/components/schemas/AccountResponseDto'
        counterparty:
          description: >-
            Expanded counterparty details (only included when
            expand=counterparty)
          allOf:
            - $ref: '#/components/schemas/CounterpartyResponseDto'
      required:
        - id
        - customerId
        - type
        - status
        - createdAt
        - updatedAt
    CustomerResponseDto:
      type: object
      properties:
        id:
          type: string
          description: Customer ID
        customerName:
          type: string
          description: Customer name
        organizationId:
          type: string
          description: Organization ID
        type:
          type: string
          enum:
            - INDIVIDUAL
            - BUSINESS
          description: Customer type
        status:
          type: string
          enum:
            - DRAFT
            - IN_REVIEW
            - NEED_ACTIONS
            - REJECTED
            - ACTIVE
            - INACTIVE
            - SUSPENDED
          description: Customer status
        email:
          type: string
          description: Customer email address
        countryCode:
          type: string
          description: Country code (ISO 3166-2)
          enum:
            - 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
        imageUrl:
          type: string
          description: Customer image URL
        requestedCapabilities:
          type: array
          description: Capabilities requested by the customer
          nullable: true
          items:
            type: string
            enum:
              - USD_ACH_PAYIN
              - USD_ACH_PAYOUT
              - USD_WIRE_PAYIN
              - USD_WIRE_PAYOUT
              - USD_BALANCE
              - USD_YIELD
              - SWIFT_PAYIN
              - SWIFT_PAYOUT
              - STABLECOIN_PAYIN
              - STABLECOIN_PAYOUT
              - STABLECOIN_SWAPS
              - AED_FX_PAYOUT
              - AUD_FX_PAYOUT
              - BHD_FX_PAYOUT
              - BOB_FX_PAYOUT
              - BRL_FX_PAYOUT
              - CLP_FX_PAYOUT
              - CNY_FX_PAYOUT
              - COP_FX_PAYOUT
              - DOP_FX_PAYOUT
              - EGP_FX_PAYOUT
              - EUR_FX_PAYOUT
              - GBP_FX_PAYOUT
              - HKD_FX_PAYOUT
              - IDR_FX_PAYOUT
              - INR_FX_PAYOUT
              - JPY_FX_PAYOUT
              - KRW_FX_PAYOUT
              - KWD_FX_PAYOUT
              - MXN_FX_PAYOUT
              - MYR_FX_PAYOUT
              - PEN_FX_PAYOUT
              - PHP_FX_PAYOUT
              - PYG_FX_PAYOUT
              - QAR_FX_PAYOUT
              - SAR_FX_PAYOUT
              - SGD_FX_PAYOUT
              - THB_FX_PAYOUT
              - TRY_FX_PAYOUT
              - TWD_FX_PAYOUT
              - USD_FX_PAYOUT
              - VND_FX_PAYOUT
        capabilities:
          description: >-
            Computed capability statuses. Included on list responses. READY only
            when the customer is ACTIVE.
          type: array
          items:
            $ref: '#/components/schemas/CustomerCapabilityStateDto'
        createdAt:
          type: string
          description: Customer creation date
          format: date-time
          example: '2026-01-15T10:00:00Z'
        updatedAt:
          type: string
          description: Customer last update date
          format: date-time
          example: '2026-01-15T10:00:00Z'
        customerDetails:
          description: >-
            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.
          oneOf:
            - $ref: '#/components/schemas/IndividualDetailsDto'
            - $ref: '#/components/schemas/BusinessDetailsDto'
        associatedEntities:
          description: >-
            Associated entities (beneficial owners and control persons) for
            business customers.
          type: array
          items:
            $ref: '#/components/schemas/AssociatedEntityResponseDto'
        addresses:
          description: >-
            Customer addresses.


            Each address must include addressLine1, city, postalCode, and
            country.
          type: array
          items:
            $ref: '#/components/schemas/CustomerAddressDto'
        missingRequirements:
          description: >-
            Merged list of missing fields and documents required for full
            verification. Only populated when customer data is incomplete.
          example:
            - requirementType: FIELD
              key: businessData.taxIdentificationNumber
              displayName: Tax Identification Number
            - requirementType: DOCUMENT
              key: ownership.ownership_structure
              displayName: Ownership Information
          type: array
          items:
            $ref: '#/components/schemas/MissingComplianceRequirementDto'
        accounts:
          description: >-
            Customer accounts (only included when expand=accounts). Returns all
            accounts for this customer.
          type: array
          items:
            type: array
        documents:
          description: >-
            Customer documents (only included when expand=documents). Returns
            all documents for this customer.
          type: array
          items:
            $ref: '#/components/schemas/DocumentResponseDto'
        treasury:
          description: >-
            Treasury balances (only included when expand=treasury). Returns
            treasury wallet balances grouped by treasury.
          allOf:
            - $ref: '#/components/schemas/CustomerTreasuryResponseDto'
        verificationSessions:
          description: >-
            Verification sessions (only included when
            expand=verificationSessions). Returns verification session
            summaries.
          type: array
          items:
            $ref: '#/components/schemas/CustomerVerificationSessionResponseDto'
      required:
        - id
        - customerName
        - organizationId
        - type
        - status
        - createdAt
        - updatedAt
    TransferDepositOriginatorDto:
      type: object
      properties:
        name:
          type: string
          description: Originator / remitter name as reported by the payment rail
          example: Acme Suppliers LLC
          nullable: true
        bankName:
          type: string
          description: Originating bank name
          example: Example National Bank
          nullable: true
        routingNumber:
          type: string
          description: Originating bank routing number (e.g. US ABA)
          example: '021000021'
          nullable: true
        accountNumber:
          type: string
          description: Originating account number when the settlement rail provides it
          example: '987654321'
          nullable: true
        swiftBic:
          type: string
          description: Originating bank SWIFT/BIC when available
          example: CHASUS33
          nullable: true
        bankCountry:
          type: string
          description: >-
            ISO 3166-1 alpha-2 country of the originating bank when it can be
            inferred from the rail (valid ABA routing → US, SWIFT BIC, or IBAN
            prefix)
          example: US
          nullable: true
    BankAddressDto:
      type: object
      properties:
        addressLine1:
          type: string
          description: Address line 1 (optional for bank addresses)
          example: 123 Main Street
          maxLength: 1024
        addressLine2:
          type: string
          description: Address line 2 (apartment, suite, etc.)
          example: Apt 4B
          maxLength: 1024
        city:
          type: string
          description: City
          example: San Francisco
          maxLength: 256
        state:
          type: string
          description: State / Province
          example: CA
          maxLength: 256
        postalCode:
          type: string
          description: Postal code / ZIP code (optional for bank addresses)
          example: '94102'
          maxLength: 50
        country:
          type: string
          description: Country code (ISO 3166-2)
          example: US
          minLength: 2
          maxLength: 2
    AddressDto:
      type: object
      properties:
        addressLine1:
          type: string
          description: Address line 1
          example: 123 Main Street
          maxLength: 1024
        addressLine2:
          type: string
          description: Address line 2 (apartment, suite, etc.)
          example: Apt 4B
          maxLength: 1024
        city:
          type: string
          description: City
          example: San Francisco
          maxLength: 256
        state:
          type: string
          description: State / Province
          example: CA
          maxLength: 256
        postalCode:
          type: string
          description: >-
            Postal code / ZIP code. May be empty for countries without a
            postal-code system, including the United Arab Emirates.
          example: '94102'
          maxLength: 50
        country:
          type: string
          description: Country code (ISO 3166-2)
          example: US
          minLength: 2
          maxLength: 2
        transliterated:
          description: >-
            Transliterated address fields (Latin characters) for non-Latin
            addresses. Required when address contains non-Latin characters
            (Chinese, Arabic, Cyrillic, etc.).
          allOf:
            - $ref: '#/components/schemas/TransliteratedAddressDto'
      required:
        - addressLine1
        - city
        - postalCode
        - country
    AccountMetadataDto:
      type: object
      properties:
        nickname:
          type: string
          description: Account nickname
          example: Main Checking Account
          maxLength: 256
        purpose:
          type: string
          description: Account purpose
          example: Business operations
          maxLength: 512
        tags:
          description: Account tags
          example:
            - primary
            - operations
          type: array
          items:
            type: string
    CustomerCapabilityStateDto:
      type: object
      properties:
        capability:
          type: string
          enum:
            - USD_ACH_PAYIN
            - USD_ACH_PAYOUT
            - USD_WIRE_PAYIN
            - USD_WIRE_PAYOUT
            - USD_BALANCE
            - USD_YIELD
            - SWIFT_PAYIN
            - SWIFT_PAYOUT
            - STABLECOIN_PAYIN
            - STABLECOIN_PAYOUT
            - STABLECOIN_SWAPS
            - AED_FX_PAYOUT
            - AUD_FX_PAYOUT
            - BHD_FX_PAYOUT
            - BOB_FX_PAYOUT
            - BRL_FX_PAYOUT
            - CLP_FX_PAYOUT
            - CNY_FX_PAYOUT
            - COP_FX_PAYOUT
            - DOP_FX_PAYOUT
            - EGP_FX_PAYOUT
            - EUR_FX_PAYOUT
            - GBP_FX_PAYOUT
            - HKD_FX_PAYOUT
            - IDR_FX_PAYOUT
            - INR_FX_PAYOUT
            - JPY_FX_PAYOUT
            - KRW_FX_PAYOUT
            - KWD_FX_PAYOUT
            - MXN_FX_PAYOUT
            - MYR_FX_PAYOUT
            - PEN_FX_PAYOUT
            - PHP_FX_PAYOUT
            - PYG_FX_PAYOUT
            - QAR_FX_PAYOUT
            - SAR_FX_PAYOUT
            - SGD_FX_PAYOUT
            - THB_FX_PAYOUT
            - TRY_FX_PAYOUT
            - TWD_FX_PAYOUT
            - USD_FX_PAYOUT
            - VND_FX_PAYOUT
          example: USD_WIRE_PAYIN
        status:
          type: string
          enum:
            - READY
            - IN_REVIEW
            - UNAVAILABLE
          example: READY
      required:
        - capability
        - status
    IndividualDetailsDto:
      type: object
      properties:
        firstName:
          type: string
          description: First name
          example: John
          maxLength: 1024
        lastName:
          type: string
          description: Last name
          example: Smith
          maxLength: 1024
        middleName:
          type: string
          description: Middle name
          example: Michael
          maxLength: 1024
        transliteratedFirstName:
          type: string
          description: >-
            Transliterated first name (Latin characters).


            Required when firstName contains non-Latin characters (Chinese,
            Arabic, Cyrillic, etc.).
          example: Li Ming
          maxLength: 256
        transliteratedMiddleName:
          type: string
          description: |-
            Transliterated middle name (Latin characters).

            Required when middleName contains non-Latin characters.
          example: Wen
          maxLength: 256
        transliteratedLastName:
          type: string
          description: |-
            Transliterated last name (Latin characters).

            Required when lastName contains non-Latin characters.
          example: Wang
          maxLength: 256
        dateOfBirth:
          type: string
          description: Date of birth in ISO 8601 format (YYYY-MM-DD)
          example: '1990-01-15'
        nationality:
          type: string
          description: Nationality (ISO 3166-2)
          example: US
        taxResidenceCountry:
          type: string
          description: >-
            Optional. Country of tax residence (ISO 3166-1 alpha-2). Provide
            only when it differs from nationality; tax ID format validation
            falls back to nationality when omitted.
          example: GB
        phone:
          type: string
          description: Phone number in E.164 format
          example: '+14155551234'
          maxLength: 16
        occupation:
          type: string
          description: Occupation code
          example: '151252'
        employmentStatus:
          type: string
          description: Employment status
          enum:
            - EMPLOYED
            - SELF_EMPLOYED
            - UNEMPLOYED
            - STUDENT
            - RETIRED
            - HOMEMAKER
        sourceOfIncome:
          type: string
          description: Source of income
          example: SALARY
          enum:
            - COMPANY_FUNDS
            - ECOMMERCE_RESELLER
            - GAMBLING_PROCEEDS
            - GIFTS
            - GOVERNMENT_BENEFITS
            - INHERITANCE
            - INVESTMENTS_LOANS
            - PENSION_RETIREMENT
            - SALARY
            - SALE_OF_ASSETS_REAL_ESTATE
            - SAVINGS
            - SOMEONE_ELSES_FUNDS
        sourceOfFundsDescription:
          type: string
          description: Source of funds description
    BusinessDetailsDto:
      type: object
      properties:
        businessName:
          type: string
          description: Legal business name
          example: Acme Corporation
          maxLength: 1024
        businessType:
          type: string
          description: Business legal structure
          example: LLC
          enum:
            - CORPORATION
            - LLC
            - PARTNERSHIP
            - GEN_PARTNERSHIP
            - LLP
            - LP
            - SOLE_PROPRIETORSHIP
            - NON_PROFIT
            - TRUST
            - COOPERATIVE
            - PRIVATE_LIMITED_COMPANY
            - SPV
            - JOINT_VENTURE
        taxIdentificationNumber:
          type: string
          description: >-
            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.
          example: 12-3456789
          maxLength: 50
        website:
          type: string
          description: Business website URL
          example: https://acme.com
          maxLength: 512
        industry:
          type: string
          description: 6-digit NAICS industry classification code
          example: '522320'
          minLength: 6
          maxLength: 6
          pattern: ^\d{6}$
        isCrypto:
          type: boolean
          description: Set true if the business operates in crypto or digital assets.
          example: false
        isRemoteCompany:
          type: boolean
          description: >-
            Set true when the business operates remotely from an owner or
            director address.
          example: false
        industryCryptoSubtype:
          type: string
          description: Crypto-specific industry subtype. Required when isCrypto is true.
          enum:
            - PROTOCOL
            - EXCHANGE
            - INVESTMENT
            - LENDER
            - MARKET_MAKER
            - SAAS
            - MINER
        yearEstablished:
          type: number
          description: Year the business was established
          example: 2010
          minimum: 1800
        numberOfEmployees:
          type: number
          description: Number of employees
          example: 50
          minimum: 0
        tradeName:
          type: string
          description: Business trade name (DBA). Separate multiple names with semicolons.
          example: Acme Services; Acme Pay
          maxLength: 1024
        description:
          type: string
          description: Business description
          example: Cloud software services provider
          maxLength: 2048
        email:
          type: string
          description: >-
            Business email address. Use an email on the company domain when
            available; personal email domains such as Gmail may require
            additional due diligence.
          example: contact@acme.com
          maxLength: 255
        phone:
          type: string
          description: Business phone number in E.164 format
          example: '+14155551234'
          maxLength: 16
        registrationDate:
          type: string
          description: Business registration date in ISO 8601 format (YYYY-MM-DD)
          example: '2020-01-15'
        registrationNumber:
          type: string
          description: >-
            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.
          example: '123456789'
          maxLength: 50
        hasMaterialIntermediaryOwnership:
          type: boolean
          description: >-
            Whether the business has material intermediary ownership (25%+ owned
            by another entity)
          example: false
        accountPurpose:
          type: string
          description: Purpose of the account
          example: OPERATIONS
          enum:
            - PAYROLL
            - VENDOR_PAYMENTS
            - TREASURY
            - OPERATIONS
            - CAPITAL_DEPLOYMENT
            - CROSS_BORDER_PAYMENTS
            - STABLECOIN_CONVERSION
            - ECOMMERCE
            - OTHER
        accountPurposeExplanation:
          type: string
          description: Detailed explanation of account purpose
          example: Operating expenses and customer settlements
          maxLength: 2048
        sourceOfFunds:
          type: string
          description: Source of funds for the business
          example: BUSINESS_REVENUE
          enum:
            - BUSINESS_REVENUE
            - INVESTMENT
            - OWNER_CAPITAL
            - LOAN
            - GRANTS
            - EQUITY
            - INHERITANCE
            - GIFT
            - OTHER
        sourceOfFundsDescription:
          type: string
          description: Detailed description of source of funds
          example: Revenue from software services
          maxLength: 2048
        estimatedAnnualRevenueUsd:
          type: string
          description: Estimated annual revenue in USD
          enum:
            - 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
        expectedMonthlyPaymentsUsd:
          type: number
          description: Expected monthly fiat payment volume in USD-equivalent
          example: 50000
          minimum: 0
        primaryTargetMarket:
          type: string
          description: >-
            Primary target market. RETAIL = B2C (consumers), COMMERCIAL = B2B
            (businesses), GOVERNMENT = B2G (government entities), OTHER =
            another market not covered by the standard options.
          enum:
            - RETAIL
            - COMMERCIAL
            - GOVERNMENT
            - OTHER
          example: COMMERCIAL
        primaryTargetMarketExplanation:
          type: string
          description: >-
            Primary target market explanation (required if primaryTargetMarket
            is OTHER)
          example: Marketplace serving mixed B2B and B2C sellers
          maxLength: 2048
        operatesInProhibitedCountries:
          type: boolean
          description: Whether the business operates in prohibited countries
          example: false
        highRiskActivities:
          type: array
          description: List of high-risk activities the business engages in
          example:
            - MONEY_SERVICES
          items:
            type: string
            enum:
              - MONEY_SERVICES
              - LENDING_BANKING
              - OTC_FX_CRYPTO_BROKERAGE
              - HOLD_CLIENT_FUNDS
              - INVESTMENT_SERVICES
              - SAFE_DEPOSIT_BOX
              - PRECIOUS_METALS_STONES_JEWELRY
              - NICOTINE_TOBACCO
              - MARIJUANA
              - PHARMACEUTICALS
              - THIRD_PARTY_PAYMENT_PROCESSING
              - ADULT_ENTERTAINMENT
              - WEAPONS_FIREARMS_EXPLOSIVES
              - GAMBLING
        highRiskActivitiesExplanation:
          type: string
          description: Explanation of high-risk activities
          example: Cryptocurrency exchange services
          maxLength: 2048
        signedAgreementId:
          type: string
          description: Signed agreement ID
          example: tos_abc123
          maxLength: 256
    AssociatedEntityResponseDto:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier
          example: asp_abc123
        createdAt:
          type: string
          description: Created timestamp
          example: '2026-01-15T10:30:00Z'
        updatedAt:
          type: string
          description: Last updated timestamp
          example: '2026-01-15T10:30:00Z'
        entityType:
          type: string
          enum:
            - INDIVIDUAL
            - BUSINESS
          description: Type of entity
          example: BUSINESS
        parentEntityId:
          type: string
          description: >-
            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.
          example: asp_parent123
        details:
          description: Type-specific details (individual or business)
          oneOf:
            - $ref: '#/components/schemas/IndividualEntityDetailsDto'
            - $ref: '#/components/schemas/BusinessEntityDetailsDto'
          example:
            businessName: Acme Holdings LLC
            registrationNumber: LLC-12345678
            dateOfIncorporation: '2018-06-15'
            businessAddress:
              addressLine1: 100 Market Street
              addressLine2: Suite 500
              city: San Francisco
              state: CA
              postalCode: '94105'
              country: US
        countryCode:
          type: string
          description: Country code (ISO 3166-1 alpha-2)
          example: US
        email:
          type: string
          description: Email address
          example: contact@acmeholdings.com
        phone:
          type: string
          description: Phone number
          example: '+14155551234'
        address:
          description: >-
            Address. Use the nested transliterated field for Latin character
            versions of non-Latin addresses.
          allOf:
            - $ref: '#/components/schemas/AddressDto'
        hasOwnership:
          type: boolean
          description: >-
            Whether this entity is an owner. For an individual with indirect
            ownership whose percentage is not quantified, omit
            ownershipPercentage and set this to true to identify them as a
            beneficial owner.
          example: true
        hasControl:
          type: boolean
          description: >-
            Has significant control (e.g. CEO, managing member). A control
            person satisfies the business submission requirement when no
            individual holds 25% or more effective ownership.
          example: true
        ownershipPercentage:
          type: number
          description: Ownership percentage
          example: 51
        isSigner:
          type: boolean
          description: Has signing authority
          example: false
        isDirector:
          type: boolean
          description: Is a director
          example: false
        role:
          type: string
          description: Structured role at the company.
          enum:
            - CEO
            - CFO
            - COO
            - PRESIDENT
            - GENERAL_COUNSEL
            - MANAGING_MEMBER
            - TREASURER
            - OTHER
        title:
          type: string
          description: Custom title at the company.
          example: Managing Director
        documents:
          description: Array of document IDs
          example:
            - doc_abc123
          type: array
          items:
            type: string
        attestedOwnershipStructureAt:
          type: string
          description: Timestamp when ownership structure was attested
          example: '2026-01-15T10:30:00Z'
        displayName:
          type: string
          description: Display name
          example: Acme Holdings LLC
        verificationLink:
          description: >-
            Verification link for UBO KYC. Present on create (when
            generateVerificationLink is true) and on single entity GET if there
            is an active/pending verification session.
          allOf:
            - $ref: '#/components/schemas/VerificationLinkDto'
      required:
        - id
        - createdAt
        - updatedAt
        - entityType
        - hasOwnership
        - hasControl
    CustomerAddressDto:
      type: object
      properties:
        addressLine1:
          type: string
          description: Address line 1
          example: 123 Main Street
          maxLength: 1024
        addressLine2:
          type: string
          description: Address line 2 (apartment, suite, etc.)
          example: Apt 4B
          maxLength: 1024
        city:
          type: string
          description: City
          example: San Francisco
          maxLength: 256
        state:
          type: string
          description: State / Province
          example: CA
          maxLength: 256
        postalCode:
          type: string
          description: >-
            Postal code / ZIP code. May be empty for countries without a
            postal-code system, including the United Arab Emirates.
          example: '94102'
          maxLength: 50
        country:
          type: string
          description: Country code (ISO 3166-2)
          example: US
          minLength: 2
          maxLength: 2
        transliterated:
          description: >-
            Transliterated address fields (Latin characters) for non-Latin
            addresses. Required when address contains non-Latin characters
            (Chinese, Arabic, Cyrillic, etc.).
          allOf:
            - $ref: '#/components/schemas/TransliteratedAddressDto'
        label:
          type: string
          description: Address label/type
          example: HOME
          enum:
            - REGISTERED
            - OPERATIONAL
            - US_REGISTERED
            - HEADQUARTERS
            - BILLING
            - SHIPPING
            - HOME
            - OFFICE
        isDefault:
          type: boolean
          description: Whether this is the default/primary address
          example: true
      required:
        - addressLine1
        - city
        - postalCode
        - country
    MissingComplianceRequirementDto:
      type: object
      properties:
        requirementType:
          type: string
          description: Requirement category
          enum:
            - FIELD
            - DOCUMENT
          example: FIELD
        key:
          type: string
          description: Stable requirement key or field path
          example: businessData.legalName
        displayName:
          type: string
          description: Human-readable requirement label
          example: Legal Name
        entityId:
          type: string
          description: >-
            Associated entity ID when the missing requirement belongs to a
            beneficial owner or control person.
          example: asp_abc123
        entityDisplayName:
          type: string
          description: >-
            Human-readable associated entity name when the missing requirement
            belongs to a beneficial owner or control person.
          example: Jane Owner
      required:
        - requirementType
        - key
        - displayName
    DocumentResponseDto:
      type: object
      properties:
        id:
          type: string
          example: doc_abc123
        organizationId:
          type: string
          example: org_xyz789
        customerId:
          type: string
          example: cus_abc123
        transferId:
          type: string
          example: txn_xyz789
        documentType:
          type: string
          enum:
            - IDENTITY
            - LIVENESS_CHECK
            - 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
          description: Document type
          example: INVOICE
        documentSubtype:
          type: string
          description: Specific document subtype
          example: BANK_STATEMENT
        fileName:
          type: string
          example: invoice-2026-001.pdf
        contentType:
          type: string
          example: application/pdf
        sizeBytes:
          type: number
          example: 1024000
        remarks:
          type: string
          description: Free-form remarks or notes about the document
        fileHash:
          type: string
          description: SHA-256 hash of file content
        downloadUrl:
          type: string
          description: Signed URL to download the document
        status:
          type: string
          enum:
            - PENDING
            - UPLOADING
            - UPLOADED
            - FAILED
          description: Document status
          example: UPLOADED
        createdAt:
          format: date-time
          type: string
        uploadedAt:
          format: date-time
          type: string
        associatedEntityId:
          type: string
          description: Associated entity ID (e.g., UBO)
      required:
        - id
        - organizationId
        - customerId
        - documentType
        - fileName
        - contentType
        - sizeBytes
        - status
        - createdAt
    CustomerTreasuryResponseDto:
      type: object
      properties:
        customerId:
          type: string
          description: Customer ID
          example: cus_abc123
        treasuries:
          description: Customer treasuries with wallet balances
          type: array
          items:
            $ref: '#/components/schemas/TreasuryDto'
      required:
        - customerId
        - treasuries
    CustomerVerificationSessionResponseDto:
      type: object
      properties:
        id:
          type: string
          example: vs_abc123
        status:
          type: string
          example: COMPLETED
        createdAt:
          type: string
          example: '2026-01-15T10:30:00Z'
        completedAt:
          type: string
          example: '2026-01-15T11:00:00Z'
        progressPercentage:
          type: number
          example: 100
      required:
        - id
        - status
        - createdAt
    TransliteratedAddressDto:
      type: object
      properties:
        addressLine1:
          type: string
          description: Transliterated address line 1 (Latin characters)
          example: 123 Main Street
          maxLength: 1024
        addressLine2:
          type: string
          description: Transliterated address line 2 (Latin characters)
          example: Apt 4B
          maxLength: 1024
        city:
          type: string
          description: Transliterated city (Latin characters)
          example: Beijing
          maxLength: 256
        state:
          type: string
          description: Transliterated state/province (Latin characters)
          example: Hebei
          maxLength: 256
    IndividualEntityDetailsDto:
      type: object
      properties:
        firstName:
          type: string
          example: John
        nickname:
          type: string
          example: Johnny
        lastName:
          type: string
          example: Doe
        middleName:
          type: string
          example: Michael
        dateOfBirth:
          type: string
          example: '1985-03-15'
        taxResidenceCountry:
          type: string
          description: >-
            Optional. Country of tax residence (ISO 3166-1 alpha-2). Provide
            only when it differs from nationality; tax ID format validation
            falls back to nationality when omitted.
          example: GB
        transliteratedFirstName:
          type: string
        transliteratedMiddleName:
          type: string
        transliteratedLastName:
          type: string
        taxIdentificationDocumentType:
          type: string
          example: UTR
    BusinessEntityDetailsDto:
      type: object
      properties:
        businessName:
          type: string
          example: Acme Holdings LLC
        registrationNumber:
          type: string
          example: LLC-12345678
        dateOfIncorporation:
          type: string
          example: '2018-06-15'
        businessAddress:
          $ref: '#/components/schemas/AddressDto'
    VerificationLinkDto:
      type: object
      properties:
        sessionId:
          type: string
          description: Verification session ID
          example: vsess_abc123
        verificationUrl:
          type: string
          description: URL for the UBO to complete their verification
          example: https://verify.infinite.dev/?sessionId=vsess_abc123
        expiresAt:
          type: string
          description: When the verification link expires
          example: '2026-01-09T10:30:00Z'
        status:
          type: string
          enum:
            - PENDING
            - ACTIVE
            - IN_PROGRESS
            - COMPLETED
            - EXPIRED
            - CANCELLED
            - SUBMITTED
          description: Current status of the verification session
          example: ACTIVE
      required:
        - sessionId
        - verificationUrl
        - expiresAt
        - status
    TreasuryDto:
      type: object
      properties:
        id:
          type: string
          description: Treasury ID
          example: trs_abc123
        name:
          type: string
          description: Treasury name
          example: Main Treasury
        provider:
          type: string
          description: Provider backing this treasury
          example: INFINITE
        balances:
          type: object
          description: Balances held in this treasury keyed by currency code
          additionalProperties:
            $ref: '#/components/schemas/TreasuryBalanceDto'
        fundingMethods:
          description: Funding methods that can pay into this treasury
          type: array
          items:
            $ref: '#/components/schemas/TreasuryFundingMethodDto'
        wallets:
          description: Wallets in this treasury
          type: array
          items:
            $ref: '#/components/schemas/TreasuryWalletDto'
      required:
        - id
        - balances
        - fundingMethods
        - wallets
    TreasuryBalanceDto:
      type: object
      properties:
        available:
          description: Available balance for this currency
          allOf:
            - $ref: '#/components/schemas/MoneyOutputDto'
        pending:
          description: Pending balance for this currency
          allOf:
            - $ref: '#/components/schemas/MoneyOutputDto'
      required:
        - available
    TreasuryFundingMethodDto:
      type: object
      properties:
        id:
          type: string
          description: Funding method ID
          example: vba_abc123
        type:
          type: string
          description: Funding method type
          enum:
            - BANK_ACCOUNT
            - CRYPTO_ADDRESS
          example: BANK_ACCOUNT
        provider:
          type: string
          description: Provider backing this treasury funding method
          example: INFINITE
        currency:
          type: string
          description: Primary currency accepted by this funding method
          example: USD
        currencyCodes:
          description: Currencies accepted by this funding method
          example:
            - USDC
          type: array
          items:
            type: string
        rail:
          type: string
          description: Inbound payment rail or network
          example: ACH
        rails:
          description: Supported inbound payment rails
          example:
            - ACH
            - WIRE
          type: array
          items:
            type: string
        bankName:
          type: string
          description: Bank name for bank funding methods
          example: Infinite Bank
        beneficiaryName:
          type: string
          description: Beneficiary name for bank funding methods
          example: Acme Treasury
        accountNumber:
          type: string
          description: Bank account number for bank funding methods
          example: '1234567890'
        routingNumber:
          type: string
          description: Routing number for bank funding methods
          example: '021000021'
        iban:
          type: string
          description: IBAN for bank funding methods
          example: GB82WEST12345698765432
        swiftBic:
          type: string
          description: SWIFT/BIC code for bank funding methods
          example: CHASUS33
        address:
          type: string
          description: Deposit address for crypto funding methods
          example: '0x1234567890abcdef1234567890abcdef12345678'
        addressType:
          type: string
          description: Address type for crypto funding methods
          enum:
            - EVM
            - TRON
            - BITCOIN
            - SOLANA
          example: EVM
        chains:
          type: array
          description: Supported chains for crypto funding methods
          example:
            - ETHEREUM
            - BASE
          items:
            type: string
            enum:
              - ETHEREUM
              - BASE
              - POLYGON
              - SOLANA
              - TRON
              - BITCOIN
              - ARBITRUM
              - ROBINHOOD
      required:
        - id
        - type
        - provider
    TreasuryWalletDto:
      type: object
      properties:
        accountId:
          type: string
          description: >-
            Infinite wallet account id (`inw_…`). Use as transfer
            `source.accountId` and as a fixed-route `sweepTargetAccountId`.
          example: inw_abc123
        address:
          type: string
          description: Wallet address
          example: '0x1234567890abcdef1234567890abcdef12345678'
        addressType:
          type: string
          description: Address type
          enum:
            - EVM
            - TRON
            - BITCOIN
            - SOLANA
          example: EVM
        balances:
          description: Token balances on this wallet
          type: array
          items:
            $ref: '#/components/schemas/WalletTokenBalanceDto'
      required:
        - accountId
        - address
        - addressType
        - balances
    WalletTokenBalanceDto:
      type: object
      properties:
        currency:
          type: string
          description: Currency symbol
          example: USDC
        balance:
          description: Balance amount
          allOf:
            - $ref: '#/components/schemas/MoneyOutputDto'
        chain:
          type: string
          description: Chain name
          example: ETHEREUM
      required:
        - currency
        - balance
        - chain
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: API Key
      type: http
      description: API Key in Bearer format (e.g., Bearer sk_test_...)

````

## Related topics

- [Get customer transfers](/api-reference/customers/get-customer-transfers.md)
- [Get a transfer draft approval record](/api-reference/transfer-drafts/get-a-transfer-draft-approval-record.md)
- [Get account transfer history](/api-reference/accounts/get-account-transfer-history.md)
- [Get a quote by ID](/api-reference/quotes/get-a-quote-by-id.md)
- [Get document by ID](/api-reference/documents/get-document-by-id.md)
