fixed-routes

Update a fixed route

Updates a fixed route configuration. Supports updating fees, refund address, enabled status, metadata, and the sweep target account. Changing the sweep target keeps the same deposit address; the change is rejected while the route has transfers in flight, and transfers already created keep the destination they were created with.

patch/v1/fixed-routes/{id}

Path parameters

idstring required

Headers

X-API-Keystring

API key

Request body

correspondentBankNamestring

Correspondent/intermediary bank name

correspondentBankSwiftCodestring

Correspondent/intermediary bank SWIFT/BIC code (8 or 11 characters)

correspondentAccountNumberstring

Correspondent/intermediary account number

sweepTargetAccountIdstring

New sweep target account ID belonging to the same customer. Follows the same rules as route creation: a bank account for routes that pay out to fiat, a wallet (EXTERNAL_WALLET, INFINITE_WALLET, or VIRTUAL_WALLET) for crypto payouts, or a balance account for a fiat pay-in route in the same currency. A balance-account destination settles the deposit into that balance (destination rail BALANCE) instead of converting it. Crypto deposits cannot settle into a balance account. Wallet payouts (fiat-to-crypto and crypto-to-crypto) may also set destinationRail and destinationCurrency in the same request, for example to move a payout from Base USDC to Ethereum USDT on another existing wallet. A crypto-to-crypto route whose deposit account is an Infinite-custody wallet may also retarget to a bank account, converting the route to a crypto-to-fiat payout (set destinationRail/destinationCurrency alongside). The deposit address is unchanged. Rejected with 409 while the route has transfers in flight; transfers already created keep the destination they were created with. Routes whose deposit account is issued by a banking partner that binds the payout destination cannot be retargeted — create a new route instead. This field selects an existing account; it does not create one.

sourceRail'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'

Legacy single inbound rail. Treated as a one-element sourceRails list. Prefer sourceRails.

sourceRailsstring[]

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.

destinationRail'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'

New destination rail. Supported on routes that pay out to a bank account (including a wallet→bank retarget in the same request; defaults to ACH when converting a crypto-to-crypto route to a bank payout) and on wallet payouts (fiat-to-crypto and crypto-to-crypto), where it must be a crypto network the destination wallet can receive on. Rejected when the destination is a balance account (the server sets BALANCE) and when the deposit account payout was fixed at issuance.

destinationCurrencystring

New destination currency. Supported on routes that pay out to a bank account (defaults to USD when converting a crypto-to-crypto route to a bank payout) and on wallet payouts, where it must be USDC or USDT. Rejected when the destination is a balance account.

developerFeeFixedstring

Fixed fee in minor units of source currency

developerFeePercentnumber

Variable fee as decimal percentage (0.01 = 1%). Max 10%.

refundAccountIdstring

Customer wallet account ID (inw_xxx or ewa_xxx) for refunds on failed transfers or when fees exceed deposit. Must have a wallet address; validated at request time.

enabledboolean

Whether the fixed route is enabled. When false, deposits land but do not auto-sweep.

documentIdsstring[]

Standing supporting agreement document ID for third-party SWIFT payouts. Set to an empty array to clear; clearing is rejected while an enabled third-party SWIFT route depends on it.

Example request

{
  "correspondentBankName": "Bank of America",
  "correspondentBankSwiftCode": "IRVTUS3NXXX",
  "correspondentAccountNumber": "9876543210",
  "sweepTargetAccountId": "eba_xyz789",
  "sourceRail": "ACH",
  "sourceRails": [
    "ACH",
    "WIRE"
  ],
  "destinationRail": "ACH",
  "destinationCurrency": "USD",
  "developerFeeFixed": "100000",
  "developerFeePercent": 0.01,
  "refundAccountId": "inw_abc123",
  "enabled": true,
  "metadata": {
    "nickname": "Main Checking Account",
    "purpose": "Business operations",
    "tags": [
      "primary",
      "operations"
    ]
  },
  "allowedSenderBanks": [
    {
      "bankName": "JPMorgan Chase",
      "routingNumber": "021000021",
      "swiftBic": "CHASUS33"
    }
  ]
}

Response

Fixed route updated successfully

idstring required

Fixed route ID (same as source account ID)

customerIdstring required
type'FIAT_TO_CRYPTO' | 'CRYPTO_TO_FIAT' | 'CRYPTO_TO_CRYPTO' | 'FIAT_TO_CRYPTO_TO_FIAT' required
statusstring required
enabledboolean required

Whether the fixed route is enabled. When false, deposits land but do not auto-sweep.

destinationCurrencystring
destinationRailstring
sweepTargetAccountIdstring required

ID of the account funds are swept to

developerFeeFixedstring nullable

Fixed fee in minor units of source currency

developerFeePercentnumber nullable

Variable fee as decimal percentage (0.01 = 1%)

refundAccountIdstring nullable

Customer wallet account ID (inw_xxx or ewa_xxx) for refunds on failed transfers or when fees exceed deposit

documentIdsstring[] nullable

Standing supporting agreement document ID applied to transfers created by this route.

sharesBalanceAccountCoordinatesboolean required

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.

createdAtstring date-time required
updatedAtstring date-time required

Example response

{
  "id": "vba_abc123",
  "customerId": "cus_abc123",
  "type": "FIAT_TO_CRYPTO",
  "status": "ACTIVE",
  "enabled": true,
  "metadata": {
    "nickname": "Main Checking Account",
    "purpose": "Business operations",
    "tags": [
      "primary",
      "operations"
    ]
  },
  "sourceAccount": {
    "id": "vba_abc123",
    "type": "VIRTUAL_BANK",
    "metadata": {
      "nickname": "Main Checking Account",
      "purpose": "Business operations",
      "tags": [
        "primary",
        "operations"
      ]
    },
    "depositInstructions": {
      "bankName": "JPMorgan Chase Bank",
      "bankAddress": {
        "addressLine1": "123 Main Street",
        "addressLine2": "Apt 4B",
        "city": "San Francisco",
        "state": "CA",
        "postalCode": "94102",
        "country": "US"
      },
      "accountNumber": "1234567890",
      "routingNumber": "021000021",
      "iban": "GB82WEST12345698765432",
      "swiftBic": "CHASUS33",
      "bankCountryCode": "US",
      "reference": "REF-123456",
      "depositMessage": "INV-2026-0001",
      "beneficiaryName": "John Doe",
      "beneficiaryAddress": {
        "addressLine1": "123 Main Street",
        "addressLine2": "Apt 4B",
        "city": "San Francisco",
        "state": "CA",
        "postalCode": "94102",
        "country": "US"
      }
    },
    "sourceCurrency": "USD",
    "sourceRail": "ACH",
    "sourceRails": [
      "ACH",
      "WIRE"
    ],
    "walletAddress": "0x742d35Cc6529Cf6c6D06E4C8a4c07583F5C6C2d8",
    "addressType": "EVM",
    "chains": [
      "ETHEREUM",
      "BASE"
    ]
  },
  "destinationCurrency": "USDC",
  "destinationRail": "BASE",
  "sweepTargetAccountId": "ewa_abc123",
  "sweepTargetAccount": {
    "id": "ewa_abc123",
    "type": "EXTERNAL_WALLET",
    "metadata": {
      "nickname": "Main Checking Account",
      "purpose": "Business operations",
      "tags": [
        "primary",
        "operations"
      ]
    },
    "walletAddress": "0x742d35Cc6529Cf6c6D06E4C8a4c07583F5C6C2d8",
    "addressType": "EVM",
    "chains": [
      "ETHEREUM",
      "BASE"
    ],
    "accountNumber": "****7890",
    "routingNumber": "021000021",
    "bankName": "Bank of America"
  },
  "developerFeeFixed": "100000",
  "developerFeePercent": 0.01,
  "refundAccountId": "inw_abc123",
  "correspondentBank": {
    "swiftCode": "IRVTUS3NXXX",
    "accountNumber": "9876543210"
  },
  "allowedSenderBanks": [
    {
      "bankName": "JPMorgan Chase",
      "routingNumber": "021000021",
      "swiftBic": "CHASUS33"
    }
  ],
  "minimumAmount": {
    "currency": "USD",
    "exponent": 2,
    "value": "12345",
    "displayValue": "123.45"
  }
}

Changes