> ## 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 accounts by customer

> Returns all accounts for a specific customer. Use holdsBalance=true to list balance accounts.



## OpenAPI

````yaml get /v1/accounts/customer/{customerId}
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/accounts/customer/{customerId}:
    get:
      tags:
        - Accounts
      summary: Get accounts by customer
      description: >-
        Returns all accounts for a specific customer. Use holdsBalance=true to
        list balance accounts.
      operationId: AccountsController_getAccountsByCustomer_v1
      parameters:
        - name: X-API-Key
          in: header
          description: API key
          required: false
          schema:
            type: string
        - name: customerId
          required: true
          in: path
          description: Customer ID
          schema:
            type: string
        - name: limit
          required: false
          in: query
          description: >-
            Number of results to return (1-1000). Use with offset for
            traditional pagination.
          schema:
            minimum: 1
            maximum: 1000
            default: 500
            type: number
        - name: offset
          required: false
          in: query
          description: >-
            Number of results to skip. Use with limit for traditional
            pagination.
          schema:
            minimum: 0
            default: 0
            type: number
        - name: page_size
          required: false
          in: query
          description: >-
            Number of results per page (1-1000). Use with starting_after for
            cursor-based pagination.
          schema:
            minimum: 1
            maximum: 1000
            default: 500
            type: number
        - name: starting_after
          required: false
          in: query
          description: >-
            Cursor for pagination. Use the ID of the last item from the previous
            page to get the next page. Use with page_size for cursor-based
            pagination.
          schema:
            type: string
        - name: id
          required: false
          in: query
          description: Account ID prefix to search for
          schema:
            type: string
        - name: holdsBalance
          required: false
          in: query
          description: >-
            Only return balance accounts (USD or stablecoin). Same set as POST
            /v1/balance-accounts and POST /v1/balance-accounts/stablecoin.
          schema:
            type: boolean
        - name: balanceSourceEligible
          required: false
          in: query
          description: >-
            Only return balance accounts that can fund a transfer from balance.
            Narrower than holdsBalance.
          schema:
            type: boolean
      responses:
        '200':
          description: Paginated list of customer accounts
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/AccountResponseDto'
                  total:
                    type: number
                  limit:
                    type: number
                  offset:
                    type: number
        '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_...

            # Escape hatch for any endpoint: infinite api <METHOD> <path>

            infinite api GET /v1/accounts/customer/cus_abc123 \
              --query limit=10 page_size=10
        - lang: text
          label: MCP
          source: >-
            Get accounts by customer (cus_abc123, holdsBalance true,
            balanceSourceEligible true).
components:
  schemas:
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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
    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 virtual accounts by account](/api-reference/accounts/get-virtual-accounts-by-account.md)
- [Get account by ID](/api-reference/accounts/get-account-by-id.md)
- [Get all accounts](/api-reference/accounts/get-all-accounts.md)
- [Get customer by ID](/api-reference/customers/get-customer-by-id.md)
- [Get customer transfers](/api-reference/customers/get-customer-transfers.md)
