Skip to main content
POST
CLI

Authorizations

Authorization
string
header
required

API Key in Bearer format (e.g., Bearer sk_test_...)

Headers

X-API-Key
string

API key

Idempotency-Key
string

Optional idempotency key. When supplied, a retry with the same key replays the original response (24h TTL) instead of being rejected as a duplicate.

Body

application/json
customerId
string
required

Customer ID

Example:

"cus_abc123"

sweepTargetAccountId
string
required

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"

correspondentBankName
string

Correspondent/intermediary bank name

Maximum string length: 200
Example:

"Bank of America"

correspondentBankSwiftCode
string

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

Example:

"IRVTUS3NXXX"

correspondentAccountNumber
string

Correspondent/intermediary account number

Maximum string length: 64
Example:

"9876543210"

braleAutomationId
string

Optional. Existing Brale automation id (admin / advanced). When omitted, the API creates a wire onramp automation after registering the settlement wallet on Brale.

onrampSettlementInwAccountId
string

Optional. TRANSACTION Infinite Wallet for on-chain settlement (Ethereum). When omitted, one is created or reused for the customer.

onrampPayoutTreasuryInwAccountId
string

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"

sourceRail
enum<string>

Source rail - payment rail for incoming deposits

Available options:
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
enum<string>[]

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.

Available options:
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:
depositMatching
enum<string>

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.

Available options:
DEDICATED,
REFERENCE
sourceCurrency
string

Source currency for deposits

Example:

"USD"

destinationRail
enum<string>

Destination rail - chain/network for crypto sweep

Available options:
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
string

Destination currency to convert to

Example:

"USDC"

developerFeeFixed
string

Fixed fee in minor units of source currency

Example:

"100000"

developerFeePercent
number

Variable fee as decimal percentage (0.01 = 1%)

Example:

0.01

externalReference
string

Client-provided external reference

Example:

"550e8400-e29b-41d4-a716-446655440000"

metadata
object

Additional metadata

Example:
allowedSenderBanks
object[]

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.

Response

Fixed route created successfully

id
string
required

Fixed route ID (same as source account ID)

Example:

"vba_abc123"

customerId
string
required
Example:

"cus_abc123"

type
enum<string>
required
Available options:
FIAT_TO_CRYPTO,
CRYPTO_TO_FIAT,
CRYPTO_TO_CRYPTO,
FIAT_TO_FIAT,
FIAT_TO_CRYPTO_TO_FIAT
Example:

"FIAT_TO_CRYPTO"

status
string
required
Example:

"ACTIVE"

enabled
boolean
required

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

Example:

true

sourceAccount
object
required
sweepTargetAccountId
string
required

ID of the account funds are swept to

Example:

"ewa_abc123"

sharesBalanceAccountCoordinates
boolean
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.

Example:

false

createdAt
string<date-time>
required
updatedAt
string<date-time>
required
depositMatching
enum<string>

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.

Available options:
DEDICATED,
REFERENCE
metadata
object

Custom metadata for the fixed route account, including nickname

destinationCurrency
string
Example:

"USDC"

destinationRail
string
Example:

"BASE"

sweepTargetAccount
object

Sweep target account details (only when expand=sweepTargetAccount)

developerFeeFixed
string

Fixed fee in minor units of source currency

Example:

"100000"

developerFeePercent
number

Variable fee as decimal percentage (0.01 = 1%)

Example:

0.01

refundAccountId
string

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

Example:

"inw_abc123"

correspondentBank
object | null

Correspondent/intermediary bank details (when applicable)

allowedSenderBanks
object[] | null

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.

documentIds
string[] | null

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

Maximum array length: 1
minimumAmount
object

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.