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

# List fixed routes for a customer

> Returns all fixed routes (virtual bank accounts and virtual wallets) configured for a customer.



## OpenAPI

````yaml get /v1/customers/{customerId}/fixed-routes
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/customers/{customerId}/fixed-routes:
    get:
      tags:
        - Customers
      summary: List fixed routes for a customer
      description: >-
        Returns all fixed routes (virtual bank accounts and virtual wallets)
        configured for a customer.
      operationId: CustomersController_getCustomerFixedRoutes_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
            example: cus_abc123
        - name: limit
          required: false
          in: query
          description: 'Number of items to return (default: 50)'
          schema:
            type: number
        - name: offset
          required: false
          in: query
          description: 'Number of items to skip (default: 0)'
          schema:
            type: number
      responses:
        '200':
          description: Paginated list of fixed routes
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/FixedRouteResponseDto'
                  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/customers/cus_abc123/fixed-routes \
              --query limit=10
        - lang: text
          label: MCP
          source: List fixed routes for a customer (cus_abc123).
components:
  schemas:
    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
    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
    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
    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)
- [Update a fixed route](/api-reference/fixed-routes/update-a-fixed-route.md)
- [Simulate a fixed-route source deposit](/api-reference/sandbox/simulate-a-fixed-route-source-deposit.md)
- [Get a fixed route by ID](/api-reference/fixed-routes/get-a-fixed-route-by-id.md)
- [Validate if a fixed route can be created](/api-reference/fixed-routes/validate-if-a-fixed-route-can-be-created.md)
