> ## 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 account transfer history

> Retrieves transfers where this account is the source, the destination, or the account credited when a settled payout was returned. Returned payouts are ordered by the return time.



## OpenAPI

````yaml get /v1/accounts/{id}/history
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/{id}/history:
    get:
      tags:
        - Accounts
      summary: Get account transfer history
      description: >-
        Retrieves transfers where this account is the source, the destination,
        or the account credited when a settled payout was returned. Returned
        payouts are ordered by the return time.
      operationId: AccountsController_getAccountHistory_v1
      parameters:
        - name: X-API-Key
          in: header
          description: API key
          required: false
          schema:
            type: string
        - name: id
          required: true
          in: path
          description: Account 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
      responses:
        '200':
          description: Paginated list of transfers involving this account
          content:
            application/json:
              schema:
                type: object
                properties:
                  has_more:
                    type: boolean
                    description: Whether there are more results available
                  page_size:
                    type: number
                    description: Number of results per page
                  url:
                    type: string
                    description: URL for this request
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/TransferResponseDto'
                  page_next:
                    type: string
                    nullable: true
                    description: URL to fetch the next page of results
                  page_prev:
                    type: string
                    nullable: true
                    description: URL to fetch the previous page of results
        '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 accounts history acc_abc123 --limit 50
        - lang: text
          label: MCP
          source: Get account transfer history (acc_abc123).
components:
  schemas:
    TransferResponseDto:
      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'
      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
    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
    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
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: API Key
      type: http
      description: API Key in Bearer format (e.g., Bearer sk_test_...)

````

## Related topics

- [Get balance transactions](/api-reference/accounts/get-balance-transactions.md)
- [Balance Accounts](/guides/balance-accounts.md)
- [Webhooks](/guides/webhooks.md)
- [Cards (Coming Soon)](/concepts/cards.md)
- [Get transfer by ID](/api-reference/transfers/get-transfer-by-id.md)
