> ## 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.

# Create a virtual bank account fixed route

> Creates a virtual bank account that automatically sweeps fiat deposits. Route type (FIAT_TO_CRYPTO, FIAT_TO_FIAT, or FIAT_TO_CRYPTO_TO_FIAT) is inferred from the sweep target account type. Set depositMatching to DEDICATED for a unique account number, or REFERENCE for a shared account number plus a payment reference. Use the Idempotency-Key header to safely retry on network failure.



## OpenAPI

````yaml post /v1/fixed-routes/virtual-bank-accounts
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/fixed-routes/virtual-bank-accounts:
    post:
      tags:
        - fixed-routes
      summary: Create a virtual bank account fixed route
      description: >-
        Creates a virtual bank account that automatically sweeps fiat deposits.
        Route type (FIAT_TO_CRYPTO, FIAT_TO_FIAT, or FIAT_TO_CRYPTO_TO_FIAT) is
        inferred from the sweep target account type. Set depositMatching to
        DEDICATED for a unique account number, or REFERENCE for a shared account
        number plus a payment reference. Use the Idempotency-Key header to
        safely retry on network failure.
      operationId: FixedRoutesController_createVba_v1
      parameters:
        - name: X-API-Key
          in: header
          description: API key
          required: false
          schema:
            type: string
        - name: Idempotency-Key
          required: false
          in: header
          description: >-
            Optional idempotency key. When supplied, a retry with the same key
            replays the original response (24h TTL) instead of being rejected as
            a duplicate.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateVbaFixedRouteDto'
      responses:
        '201':
          description: Fixed route created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FixedRouteResponseDto'
        '401':
          description: Unauthorized - Invalid or missing authentication credentials
        '409':
          description: >-
            An enabled route with the same source, destination, and sweep target
            already exists for this customer.
      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 POST /v1/fixed-routes/virtual-bank-accounts \
              --body '<request-json>'
        - lang: text
          label: MCP
          source: >-
            Create a virtual bank account fixed route.


            # Infinite MCP is read-only for this endpoint — use a dedicated MCP
            tool when one exists, otherwise run the CLI tab.
components:
  schemas:
    CreateVbaFixedRouteDto:
      type: object
      properties:
        correspondentBankName:
          type: string
          description: Correspondent/intermediary bank name
          example: Bank of America
          maxLength: 200
        correspondentBankSwiftCode:
          type: string
          description: Correspondent/intermediary bank SWIFT/BIC code (8 or 11 characters)
          example: IRVTUS3NXXX
        correspondentAccountNumber:
          type: string
          description: Correspondent/intermediary account number
          example: '9876543210'
          maxLength: 64
        customerId:
          type: string
          description: Customer ID
          example: cus_abc123
        braleAutomationId:
          type: string
          description: >-
            Optional. Existing Brale automation id (admin / advanced). When
            omitted, the API creates a wire onramp automation after registering
            the settlement wallet on Brale.
        onrampSettlementInwAccountId:
          type: string
          description: >-
            Optional. TRANSACTION Infinite Wallet for on-chain settlement
            (Ethereum). When omitted, one is created or reused for the customer.
        onrampPayoutTreasuryInwAccountId:
          type: string
          description: >-
            Optional. TRANSACTION Infinite Wallet on the receive chain for
            post-settlement payout when the receive chain is not Ethereum. When
            omitted, one is created or reused.
          example: inw_tron_tx
        sweepTargetAccountId:
          type: string
          description: >-
            Sweep / destination account id; the route type is inferred from it.
            A crypto wallet, or an ACTIVE provider-balance account (USDT on
            Ethereum) when the organization is enabled for provider-balance
            onramps, gives FIAT_TO_CRYPTO (developer fees are not supported on a
            provider-balance target). The customer's own fiat balance account
            gives FIAT_TO_FIAT: the deposit settles into that balance in the
            same currency with no crypto leg, and destinationRail becomes
            BALANCE. That requires the pay-in and the balance to be on the same
            provider holding the fiat on dedicated coordinates, and rejects
            developer fees. An external bank account gives the
            FIAT_TO_CRYPTO_TO_FIAT sandwich.
          example: ewa_abc123
        sourceRail:
          type: string
          description: Source rail - payment rail for incoming deposits
          enum:
            - ACH
            - ACH_SAME_DAY
            - WIRE
            - FED_NOW
            - RTP
            - EREBOR
            - EREBOR_RAIL
            - BALANCE
            - SWIFT
            - SEPA
            - SEPA_INSTANT
            - TIPS
            - FASTER_PAYMENTS
            - BACS
            - CHAPS
            - ELIXIR
            - NICS
            - EFT
            - INTERAC
            - NPP
            - BECS
            - UPI
            - IMPS
            - IMPS_WITH_FIRC
            - NEFT
            - RTGS
            - BI_FAST
            - ARTAJASA
            - PIX
            - TED
            - TEF
            - SPEI
            - COELSA
            - SINPE
            - CIPS
            - CFXPS
            - CHATS
            - ZENGIN
            - KFTC
            - FAST_SG
            - MEPS
            - DUITNOW
            - PROMPTPAY
            - INSTAPAY
            - PESONET
            - NAPAS
            - BEFTN
            - SLIPS
            - ZAHAV
            - GHIPSS
            - NIBSS
            - PESALINK
            - RTC_ZA
            - TZS_RTGS
            - EGP_ACH
            - JOD_ACH
            - NPSS
            - MADA
            - QPS
            - DOP_ACH
            - GTQ_ACH
            - HNL_ACH
            - PEN_ACH
            - JMD_ACH
            - USD_ACH_SV
            - USD_ACH_EC
            - CLP_TEF
            - PSE
            - COP_ACH
            - BOB_RTGS
            - PYG_ACH
            - CERTIS
            - DKK_TIPS
            - SENT
            - NKS
            - BANKGIROT
            - HKD_FPS
            - IBFT
            - TRY_FAST
            - ETHEREUM
            - BASE
            - POLYGON
            - SOLANA
            - TRON
            - BITCOIN
            - ARBITRUM
          example: ACH
        sourceRails:
          type: array
          description: >-
            Optional list of inbound rails for a USD bank pay-in deposit
            account. Omit to accept ACH and wire. SWIFT is included only when
            listed. When sourceRail is sent instead, it is treated as a
            one-element list. Crypto deposit routes still use a single
            sourceRail.
          example:
            - ACH
            - WIRE
          items:
            type: string
            enum:
              - ACH
              - ACH_SAME_DAY
              - WIRE
              - FED_NOW
              - RTP
              - EREBOR
              - EREBOR_RAIL
              - BALANCE
              - SWIFT
              - SEPA
              - SEPA_INSTANT
              - TIPS
              - FASTER_PAYMENTS
              - BACS
              - CHAPS
              - ELIXIR
              - NICS
              - EFT
              - INTERAC
              - NPP
              - BECS
              - UPI
              - IMPS
              - IMPS_WITH_FIRC
              - NEFT
              - RTGS
              - BI_FAST
              - ARTAJASA
              - PIX
              - TED
              - TEF
              - SPEI
              - COELSA
              - SINPE
              - CIPS
              - CFXPS
              - CHATS
              - ZENGIN
              - KFTC
              - FAST_SG
              - MEPS
              - DUITNOW
              - PROMPTPAY
              - INSTAPAY
              - PESONET
              - NAPAS
              - BEFTN
              - SLIPS
              - ZAHAV
              - GHIPSS
              - NIBSS
              - PESALINK
              - RTC_ZA
              - TZS_RTGS
              - EGP_ACH
              - JOD_ACH
              - NPSS
              - MADA
              - QPS
              - DOP_ACH
              - GTQ_ACH
              - HNL_ACH
              - PEN_ACH
              - JMD_ACH
              - USD_ACH_SV
              - USD_ACH_EC
              - CLP_TEF
              - PSE
              - COP_ACH
              - BOB_RTGS
              - PYG_ACH
              - CERTIS
              - DKK_TIPS
              - SENT
              - NKS
              - BANKGIROT
              - HKD_FPS
              - IBFT
              - TRY_FAST
              - ETHEREUM
              - BASE
              - POLYGON
              - SOLANA
              - TRON
              - BITCOIN
              - ARBITRUM
        depositMatching:
          type: string
          description: >-
            How incoming payments are matched to this deposit account. DEDICATED
            issues a unique account number and the sender does not include a
            payment reference. REFERENCE uses a shared account number and the
            sender must include sourceAccount.depositInstructions.reference on
            the payment (wire memo or ACH addenda). Omit to keep the default for
            the requested rails. USD ACH, wire, and SWIFT bank pay-ins only.
          enum:
            - DEDICATED
            - REFERENCE
        sourceCurrency:
          type: string
          description: Source currency for deposits
          example: USD
        destinationRail:
          type: string
          description: Destination rail - chain/network for crypto sweep
          enum:
            - ACH
            - ACH_SAME_DAY
            - WIRE
            - FED_NOW
            - RTP
            - EREBOR
            - EREBOR_RAIL
            - BALANCE
            - SWIFT
            - SEPA
            - SEPA_INSTANT
            - TIPS
            - FASTER_PAYMENTS
            - BACS
            - CHAPS
            - ELIXIR
            - NICS
            - EFT
            - INTERAC
            - NPP
            - BECS
            - UPI
            - IMPS
            - IMPS_WITH_FIRC
            - NEFT
            - RTGS
            - BI_FAST
            - ARTAJASA
            - PIX
            - TED
            - TEF
            - SPEI
            - COELSA
            - SINPE
            - CIPS
            - CFXPS
            - CHATS
            - ZENGIN
            - KFTC
            - FAST_SG
            - MEPS
            - DUITNOW
            - PROMPTPAY
            - INSTAPAY
            - PESONET
            - NAPAS
            - BEFTN
            - SLIPS
            - ZAHAV
            - GHIPSS
            - NIBSS
            - PESALINK
            - RTC_ZA
            - TZS_RTGS
            - EGP_ACH
            - JOD_ACH
            - NPSS
            - MADA
            - QPS
            - DOP_ACH
            - GTQ_ACH
            - HNL_ACH
            - PEN_ACH
            - JMD_ACH
            - USD_ACH_SV
            - USD_ACH_EC
            - CLP_TEF
            - PSE
            - COP_ACH
            - BOB_RTGS
            - PYG_ACH
            - CERTIS
            - DKK_TIPS
            - SENT
            - NKS
            - BANKGIROT
            - HKD_FPS
            - IBFT
            - TRY_FAST
            - ETHEREUM
            - BASE
            - POLYGON
            - SOLANA
            - TRON
            - BITCOIN
            - ARBITRUM
          example: BASE
        destinationCurrency:
          type: string
          description: Destination currency to convert to
          example: USDC
        developerFeeFixed:
          type: string
          description: Fixed fee in minor units of source currency
          example: '100000'
        developerFeePercent:
          type: number
          description: Variable fee as decimal percentage (0.01 = 1%)
          example: 0.01
        externalReference:
          type: string
          description: Client-provided external reference
          example: 550e8400-e29b-41d4-a716-446655440000
        metadata:
          description: Additional metadata
          example:
            nickname: USD to Base deposits
          allOf:
            - $ref: '#/components/schemas/AccountMetadataDto'
        allowedSenderBanks:
          description: >-
            Allowed sender banks for deposits into this route. When set,
            deposits from sender banks not on this list are held for review
            instead of being processed automatically. Each entry must include at
            least one identifier.
          type: array
          items:
            $ref: '#/components/schemas/AllowedSenderBankDto'
      required:
        - customerId
        - sweepTargetAccountId
    FixedRouteResponseDto:
      type: object
      properties:
        id:
          type: string
          description: Fixed route ID (same as source account ID)
          example: vba_abc123
        customerId:
          type: string
          example: cus_abc123
        type:
          type: string
          enum:
            - FIAT_TO_CRYPTO
            - CRYPTO_TO_FIAT
            - CRYPTO_TO_CRYPTO
            - FIAT_TO_FIAT
            - FIAT_TO_CRYPTO_TO_FIAT
          example: FIAT_TO_CRYPTO
        status:
          type: string
          example: ACTIVE
        enabled:
          type: boolean
          description: >-
            Whether the fixed route is enabled. When false, deposits land but do
            not auto-sweep.
          example: true
        depositMatching:
          type: string
          description: >-
            How incoming payments are matched to this deposit account. DEDICATED
            issues a unique account number and the sender does not include a
            payment reference. REFERENCE uses a shared account number and the
            sender must include sourceAccount.depositInstructions.reference on
            the payment (wire memo or ACH addenda). Omit to keep the default for
            the requested rails. USD ACH, wire, and SWIFT bank pay-ins only.
          enum:
            - DEDICATED
            - REFERENCE
        metadata:
          description: Custom metadata for the fixed route account, including nickname
          allOf:
            - $ref: '#/components/schemas/AccountMetadataDto'
        sourceAccount:
          $ref: '#/components/schemas/SourceAccountDto'
        destinationCurrency:
          type: string
          example: USDC
        destinationRail:
          type: string
          example: BASE
        sweepTargetAccountId:
          type: string
          description: ID of the account funds are swept to
          example: ewa_abc123
        sweepTargetAccount:
          description: Sweep target account details (only when expand=sweepTargetAccount)
          allOf:
            - $ref: '#/components/schemas/SweepTargetAccountDto'
        developerFeeFixed:
          type: string
          description: Fixed fee in minor units of source currency
          example: '100000'
        developerFeePercent:
          type: number
          description: Variable fee as decimal percentage (0.01 = 1%)
          example: 0.01
        refundAccountId:
          type: string
          description: >-
            Customer wallet account ID (inw_xxx or ewa_xxx) for refunds on
            failed transfers or when fees exceed deposit
          example: inw_abc123
        correspondentBank:
          description: Correspondent/intermediary bank details (when applicable)
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/FixedRouteCorrespondentBankDto'
        allowedSenderBanks:
          description: >-
            Allowed sender banks for deposits into this route. When set,
            deposits from sender banks not on this list are held for review
            instead of being processed automatically.
          nullable: true
          type: array
          items:
            $ref: '#/components/schemas/AllowedSenderBankDto'
        documentIds:
          description: >-
            Standing supporting agreement document ID applied to transfers
            created by this route.
          maxItems: 1
          nullable: true
          type: array
          items:
            type: string
        minimumAmount:
          description: >-
            Minimum deposit amount for this route. Deposits below this floor are
            held instead of swept. This is a preview based on the stored route
            configuration; the validate endpoint returns the authoritative floor
            at submission time.
          allOf:
            - $ref: '#/components/schemas/MoneyOutputDto'
        sharesBalanceAccountCoordinates:
          type: boolean
          description: >-
            Whether this route's deposit coordinates are shared with a USD
            balance account. When true, the route and a balance account are
            mutually exclusive for the customer — one must be closed/disabled
            before the other can be created or re-enabled. Only bank pay-in
            routes on the balance-account provider qualify (ACH, WIRE, or
            SWIFT); crypto routes and payout routes are always false.
          example: false
        createdAt:
          format: date-time
          type: string
        updatedAt:
          format: date-time
          type: string
      required:
        - id
        - customerId
        - type
        - status
        - enabled
        - sourceAccount
        - sweepTargetAccountId
        - sharesBalanceAccountCoordinates
        - 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
    AllowedSenderBankDto:
      type: object
      properties:
        bankName:
          type: string
          description: >-
            Sender bank name. Matched ignoring case, whitespace, and
            punctuation.
          example: JPMorgan Chase
          maxLength: 200
        routingNumber:
          type: string
          description: Sender bank routing number (e.g. US ABA). Matched on digits only.
          example: '021000021'
        swiftBic:
          type: string
          description: Sender bank SWIFT/BIC code (8 or 11 characters)
          example: CHASUS33
    SourceAccountDto:
      type: object
      properties:
        id:
          type: string
          example: vba_abc123
        type:
          type: string
          enum:
            - VIRTUAL_BANK
            - VIRTUAL_WALLET
            - INFINITE_BANK
            - INFINITE_WALLET
            - EXTERNAL_BANK
            - EXTERNAL_WALLET
            - EXTERNAL_PROXY
            - PROVIDER_BALANCE
          example: VIRTUAL_BANK
        metadata:
          description: Custom metadata for the source account, including nickname
          allOf:
            - $ref: '#/components/schemas/AccountMetadataDto'
        depositInstructions:
          $ref: '#/components/schemas/BankDepositInstructions'
        sourceCurrency:
          type: string
          example: USD
        sourceRail:
          type: string
          example: ACH
        sourceRails:
          description: >-
            Inbound rails accepted by this deposit account. Omitted when the
            route stores a single rail only.
          example:
            - ACH
            - WIRE
          type: array
          items:
            type: string
        walletAddress:
          type: string
          example: '0x742d35Cc6529Cf6c6D06E4C8a4c07583F5C6C2d8'
        addressType:
          type: string
          example: EVM
        chains:
          type: array
          items:
            type: string
          example:
            - ETHEREUM
            - BASE
        walletType:
          type: string
          enum:
            - TREASURY
            - TRANSACTION
            - VIRTUAL
          description: >-
            Infinite wallet subtype when source is INFINITE_WALLET (e.g. VIRTUAL
            for dedicated offramp deposit wallets)
      required:
        - id
        - type
    SweepTargetAccountDto:
      type: object
      properties:
        id:
          type: string
          example: ewa_abc123
        type:
          type: string
          enum:
            - VIRTUAL_BANK
            - VIRTUAL_WALLET
            - INFINITE_BANK
            - INFINITE_WALLET
            - EXTERNAL_BANK
            - EXTERNAL_WALLET
            - EXTERNAL_PROXY
            - PROVIDER_BALANCE
          example: EXTERNAL_WALLET
        isThirdParty:
          type: boolean
          description: Whether the sweep target belongs to a third party
          example: false
        metadata:
          description: Custom metadata for the sweep target account, including nickname
          allOf:
            - $ref: '#/components/schemas/AccountMetadataDto'
        walletAddress:
          type: string
          example: '0x742d35Cc6529Cf6c6D06E4C8a4c07583F5C6C2d8'
        addressType:
          type: string
          example: EVM
        chains:
          type: array
          items:
            type: string
          example:
            - ETHEREUM
            - BASE
        accountNumber:
          type: string
          example: '****7890'
        routingNumber:
          type: string
          example: '021000021'
        bankName:
          type: string
          example: Bank of America
      required:
        - id
        - type
        - isThirdParty
    FixedRouteCorrespondentBankDto:
      type: object
      properties:
        name:
          type: string
          description: Bank name
          nullable: true
        swiftCode:
          type: string
          description: SWIFT/BIC code
          example: IRVTUS3NXXX
          nullable: true
        accountNumber:
          type: string
          description: Account number
          example: '9876543210'
          nullable: true
    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
    BankDepositInstructions:
      type: object
      properties:
        bankName:
          type: string
          example: JPMorgan Chase Bank
        bankAddress:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/BankAddressDto'
        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
        reference:
          type: string
          description: >-
            Payment reference the sender includes so a shared deposit account
            can be matched to one route. Omitted when the account number is
            unique.
          example: REF-123456
        depositMessage:
          type: string
          example: INV-2026-0001
        beneficiaryName:
          type: string
          example: John Doe
        beneficiaryAddress:
          nullable: true
          type: object
          allOf:
            - $ref: '#/components/schemas/BankAddressDto'
      required:
        - accountNumber
    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
  securitySchemes:
    bearer:
      scheme: bearer
      bearerFormat: API Key
      type: http
      description: API Key in Bearer format (e.g., Bearer sk_test_...)

````

## Related topics

- [Fixed Routes](/concepts/fixed-routes.md)
- [Create a virtual wallet fixed route](/api-reference/fixed-routes/create-a-virtual-wallet-fixed-route.md)
- [List fixed routes for a customer](/api-reference/customers/list-fixed-routes-for-a-customer.md)
- [Accounts](/concepts/accounts.md)
- [Update a fixed route](/api-reference/fixed-routes/update-a-fixed-route.md)
