# Requires: npm i -g @infinite_dev/cli && export INFINITE_API_KEY=sk_sandbox_...
# Escape hatch for any endpoint: infinite api <METHOD> <path>
infinite api PATCH /v1/fixed-routes/vba_abc123 \
--body '<request-json>'Update a fixed route (vba_abc123).
# Infinite MCP is read-only for this endpoint — use a dedicated MCP tool when one exists, otherwise run the CLI tab.import requests
url = "https://sandbox.api.infinite.dev/v1/fixed-routes/{id}"
payload = {
"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": "USD to Base deposits" },
"allowedSenderBanks": [
{
"bankName": "JPMorgan Chase",
"routingNumber": "021000021",
"swiftBic": "CHASUS33"
}
],
"documentIds": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
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: 'USD to Base deposits'},
allowedSenderBanks: [{bankName: 'JPMorgan Chase', routingNumber: '021000021', swiftBic: 'CHASUS33'}],
documentIds: ['<string>']
})
};
fetch('https://sandbox.api.infinite.dev/v1/fixed-routes/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.api.infinite.dev/v1/fixed-routes/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'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' => 'USD to Base deposits'
],
'allowedSenderBanks' => [
[
'bankName' => 'JPMorgan Chase',
'routingNumber' => '021000021',
'swiftBic' => 'CHASUS33'
]
],
'documentIds' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.api.infinite.dev/v1/fixed-routes/{id}"
payload := strings.NewReader("{\n \"correspondentBankName\": \"Bank of America\",\n \"correspondentBankSwiftCode\": \"IRVTUS3NXXX\",\n \"correspondentAccountNumber\": \"9876543210\",\n \"sweepTargetAccountId\": \"eba_xyz789\",\n \"sourceRail\": \"ACH\",\n \"sourceRails\": [\n \"ACH\",\n \"WIRE\"\n ],\n \"destinationRail\": \"ACH\",\n \"destinationCurrency\": \"USD\",\n \"developerFeeFixed\": \"100000\",\n \"developerFeePercent\": 0.01,\n \"refundAccountId\": \"inw_abc123\",\n \"enabled\": true,\n \"metadata\": {\n \"nickname\": \"USD to Base deposits\"\n },\n \"allowedSenderBanks\": [\n {\n \"bankName\": \"JPMorgan Chase\",\n \"routingNumber\": \"021000021\",\n \"swiftBic\": \"CHASUS33\"\n }\n ],\n \"documentIds\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://sandbox.api.infinite.dev/v1/fixed-routes/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"correspondentBankName\": \"Bank of America\",\n \"correspondentBankSwiftCode\": \"IRVTUS3NXXX\",\n \"correspondentAccountNumber\": \"9876543210\",\n \"sweepTargetAccountId\": \"eba_xyz789\",\n \"sourceRail\": \"ACH\",\n \"sourceRails\": [\n \"ACH\",\n \"WIRE\"\n ],\n \"destinationRail\": \"ACH\",\n \"destinationCurrency\": \"USD\",\n \"developerFeeFixed\": \"100000\",\n \"developerFeePercent\": 0.01,\n \"refundAccountId\": \"inw_abc123\",\n \"enabled\": true,\n \"metadata\": {\n \"nickname\": \"USD to Base deposits\"\n },\n \"allowedSenderBanks\": [\n {\n \"bankName\": \"JPMorgan Chase\",\n \"routingNumber\": \"021000021\",\n \"swiftBic\": \"CHASUS33\"\n }\n ],\n \"documentIds\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.api.infinite.dev/v1/fixed-routes/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"correspondentBankName\": \"Bank of America\",\n \"correspondentBankSwiftCode\": \"IRVTUS3NXXX\",\n \"correspondentAccountNumber\": \"9876543210\",\n \"sweepTargetAccountId\": \"eba_xyz789\",\n \"sourceRail\": \"ACH\",\n \"sourceRails\": [\n \"ACH\",\n \"WIRE\"\n ],\n \"destinationRail\": \"ACH\",\n \"destinationCurrency\": \"USD\",\n \"developerFeeFixed\": \"100000\",\n \"developerFeePercent\": 0.01,\n \"refundAccountId\": \"inw_abc123\",\n \"enabled\": true,\n \"metadata\": {\n \"nickname\": \"USD to Base deposits\"\n },\n \"allowedSenderBanks\": [\n {\n \"bankName\": \"JPMorgan Chase\",\n \"routingNumber\": \"021000021\",\n \"swiftBic\": \"CHASUS33\"\n }\n ],\n \"documentIds\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "vba_abc123",
"customerId": "cus_abc123",
"type": "FIAT_TO_CRYPTO",
"status": "ACTIVE",
"enabled": true,
"sourceAccount": {
"id": "vba_abc123",
"type": "VIRTUAL_BANK",
"metadata": {
"nickname": "Main Checking Account",
"purpose": "Business operations",
"tags": [
"primary",
"operations"
]
},
"depositInstructions": {
"accountNumber": "1234567890",
"bankName": "JPMorgan Chase Bank",
"bankAddress": {
"addressLine1": "123 Main Street",
"addressLine2": "Apt 4B",
"city": "San Francisco",
"state": "CA",
"postalCode": "94102",
"country": "US"
},
"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"
],
"walletType": "TREASURY"
},
"sweepTargetAccountId": "ewa_abc123",
"sharesBalanceAccountCoordinates": false,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"depositMatching": "DEDICATED",
"metadata": {
"nickname": "Main Checking Account",
"purpose": "Business operations",
"tags": [
"primary",
"operations"
]
},
"destinationCurrency": "USDC",
"destinationRail": "BASE",
"sweepTargetAccount": {
"id": "ewa_abc123",
"type": "EXTERNAL_WALLET",
"isThirdParty": false,
"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": {
"name": "<string>",
"swiftCode": "IRVTUS3NXXX",
"accountNumber": "9876543210"
},
"allowedSenderBanks": [
{
"bankName": "JPMorgan Chase",
"routingNumber": "021000021",
"swiftBic": "CHASUS33"
}
],
"documentIds": [
"<string>"
],
"minimumAmount": {
"currency": "USD",
"exponent": 2,
"value": "12345",
"displayValue": "123.45"
}
}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.
# Requires: npm i -g @infinite_dev/cli && export INFINITE_API_KEY=sk_sandbox_...
# Escape hatch for any endpoint: infinite api <METHOD> <path>
infinite api PATCH /v1/fixed-routes/vba_abc123 \
--body '<request-json>'Update a fixed route (vba_abc123).
# Infinite MCP is read-only for this endpoint — use a dedicated MCP tool when one exists, otherwise run the CLI tab.import requests
url = "https://sandbox.api.infinite.dev/v1/fixed-routes/{id}"
payload = {
"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": "USD to Base deposits" },
"allowedSenderBanks": [
{
"bankName": "JPMorgan Chase",
"routingNumber": "021000021",
"swiftBic": "CHASUS33"
}
],
"documentIds": ["<string>"]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
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: 'USD to Base deposits'},
allowedSenderBanks: [{bankName: 'JPMorgan Chase', routingNumber: '021000021', swiftBic: 'CHASUS33'}],
documentIds: ['<string>']
})
};
fetch('https://sandbox.api.infinite.dev/v1/fixed-routes/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://sandbox.api.infinite.dev/v1/fixed-routes/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'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' => 'USD to Base deposits'
],
'allowedSenderBanks' => [
[
'bankName' => 'JPMorgan Chase',
'routingNumber' => '021000021',
'swiftBic' => 'CHASUS33'
]
],
'documentIds' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://sandbox.api.infinite.dev/v1/fixed-routes/{id}"
payload := strings.NewReader("{\n \"correspondentBankName\": \"Bank of America\",\n \"correspondentBankSwiftCode\": \"IRVTUS3NXXX\",\n \"correspondentAccountNumber\": \"9876543210\",\n \"sweepTargetAccountId\": \"eba_xyz789\",\n \"sourceRail\": \"ACH\",\n \"sourceRails\": [\n \"ACH\",\n \"WIRE\"\n ],\n \"destinationRail\": \"ACH\",\n \"destinationCurrency\": \"USD\",\n \"developerFeeFixed\": \"100000\",\n \"developerFeePercent\": 0.01,\n \"refundAccountId\": \"inw_abc123\",\n \"enabled\": true,\n \"metadata\": {\n \"nickname\": \"USD to Base deposits\"\n },\n \"allowedSenderBanks\": [\n {\n \"bankName\": \"JPMorgan Chase\",\n \"routingNumber\": \"021000021\",\n \"swiftBic\": \"CHASUS33\"\n }\n ],\n \"documentIds\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://sandbox.api.infinite.dev/v1/fixed-routes/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"correspondentBankName\": \"Bank of America\",\n \"correspondentBankSwiftCode\": \"IRVTUS3NXXX\",\n \"correspondentAccountNumber\": \"9876543210\",\n \"sweepTargetAccountId\": \"eba_xyz789\",\n \"sourceRail\": \"ACH\",\n \"sourceRails\": [\n \"ACH\",\n \"WIRE\"\n ],\n \"destinationRail\": \"ACH\",\n \"destinationCurrency\": \"USD\",\n \"developerFeeFixed\": \"100000\",\n \"developerFeePercent\": 0.01,\n \"refundAccountId\": \"inw_abc123\",\n \"enabled\": true,\n \"metadata\": {\n \"nickname\": \"USD to Base deposits\"\n },\n \"allowedSenderBanks\": [\n {\n \"bankName\": \"JPMorgan Chase\",\n \"routingNumber\": \"021000021\",\n \"swiftBic\": \"CHASUS33\"\n }\n ],\n \"documentIds\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.api.infinite.dev/v1/fixed-routes/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"correspondentBankName\": \"Bank of America\",\n \"correspondentBankSwiftCode\": \"IRVTUS3NXXX\",\n \"correspondentAccountNumber\": \"9876543210\",\n \"sweepTargetAccountId\": \"eba_xyz789\",\n \"sourceRail\": \"ACH\",\n \"sourceRails\": [\n \"ACH\",\n \"WIRE\"\n ],\n \"destinationRail\": \"ACH\",\n \"destinationCurrency\": \"USD\",\n \"developerFeeFixed\": \"100000\",\n \"developerFeePercent\": 0.01,\n \"refundAccountId\": \"inw_abc123\",\n \"enabled\": true,\n \"metadata\": {\n \"nickname\": \"USD to Base deposits\"\n },\n \"allowedSenderBanks\": [\n {\n \"bankName\": \"JPMorgan Chase\",\n \"routingNumber\": \"021000021\",\n \"swiftBic\": \"CHASUS33\"\n }\n ],\n \"documentIds\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "vba_abc123",
"customerId": "cus_abc123",
"type": "FIAT_TO_CRYPTO",
"status": "ACTIVE",
"enabled": true,
"sourceAccount": {
"id": "vba_abc123",
"type": "VIRTUAL_BANK",
"metadata": {
"nickname": "Main Checking Account",
"purpose": "Business operations",
"tags": [
"primary",
"operations"
]
},
"depositInstructions": {
"accountNumber": "1234567890",
"bankName": "JPMorgan Chase Bank",
"bankAddress": {
"addressLine1": "123 Main Street",
"addressLine2": "Apt 4B",
"city": "San Francisco",
"state": "CA",
"postalCode": "94102",
"country": "US"
},
"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"
],
"walletType": "TREASURY"
},
"sweepTargetAccountId": "ewa_abc123",
"sharesBalanceAccountCoordinates": false,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"depositMatching": "DEDICATED",
"metadata": {
"nickname": "Main Checking Account",
"purpose": "Business operations",
"tags": [
"primary",
"operations"
]
},
"destinationCurrency": "USDC",
"destinationRail": "BASE",
"sweepTargetAccount": {
"id": "ewa_abc123",
"type": "EXTERNAL_WALLET",
"isThirdParty": false,
"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": {
"name": "<string>",
"swiftCode": "IRVTUS3NXXX",
"accountNumber": "9876543210"
},
"allowedSenderBanks": [
{
"bankName": "JPMorgan Chase",
"routingNumber": "021000021",
"swiftBic": "CHASUS33"
}
],
"documentIds": [
"<string>"
],
"minimumAmount": {
"currency": "USD",
"exponent": 2,
"value": "12345",
"displayValue": "123.45"
}
}Authorizations
API Key in Bearer format (e.g., Bearer sk_test_...)
Headers
API key
Path Parameters
Body
Correspondent/intermediary bank name
200"Bank of America"
Correspondent/intermediary bank SWIFT/BIC code (8 or 11 characters)
"IRVTUS3NXXX"
Correspondent/intermediary account number
64"9876543210"
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.
"eba_xyz789"
Legacy single inbound rail. Treated as a one-element sourceRails list. Prefer sourceRails.
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 "ACH"
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.
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 ["ACH", "WIRE"]
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.
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 "ACH"
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.
"USD"
Fixed fee in minor units of source currency
"100000"
Variable fee as decimal percentage (0.01 = 1%). Max 10%.
0.01
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.
"inw_abc123"
Whether the fixed route is enabled. When false, deposits land but do not auto-sweep.
true
Optional metadata for the fixed route account (e.g., nickname)
Show child attributes
Show child attributes
{ "nickname": "USD to Base deposits" }
Allowed sender banks for deposits into this route (fiat pay-in routes only). 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. Set to an empty array to remove the restriction.
Show child attributes
Show child attributes
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.
1Response
Fixed route updated successfully
Fixed route ID (same as source account ID)
"vba_abc123"
"cus_abc123"
FIAT_TO_CRYPTO, CRYPTO_TO_FIAT, CRYPTO_TO_CRYPTO, FIAT_TO_FIAT, FIAT_TO_CRYPTO_TO_FIAT "FIAT_TO_CRYPTO"
"ACTIVE"
Whether the fixed route is enabled. When false, deposits land but do not auto-sweep.
true
Show child attributes
Show child attributes
ID of the account funds are swept to
"ewa_abc123"
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.
false
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.
DEDICATED, REFERENCE Custom metadata for the fixed route account, including nickname
Show child attributes
Show child attributes
"USDC"
"BASE"
Sweep target account details (only when expand=sweepTargetAccount)
Show child attributes
Show child attributes
Fixed fee in minor units of source currency
"100000"
Variable fee as decimal percentage (0.01 = 1%)
0.01
Customer wallet account ID (inw_xxx or ewa_xxx) for refunds on failed transfers or when fees exceed deposit
"inw_abc123"
Correspondent/intermediary bank details (when applicable)
Show child attributes
Show child attributes
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.
Show child attributes
Show child attributes
Standing supporting agreement document ID applied to transfers created by this route.
1Minimum 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.
Show child attributes
Show child attributes
Was this page helpful?