Skip to main content
POST
CLI

Source account id

Pass the fixed route’s source account id — vba_… for fiat mailboxes, inw_… for crypto deposit wallets. This is the public fixed-route id. The sweep runs without a real provider deposit. When the destination is a treasury Infinite wallet (inw_…) on a mintable sandbox token (USDT or USAT on Ethereum today), the endpoint also mints that token to the vault so GET /v1/customers/{id}/treasury and later withdrawals see a chain balance. Circle test USDC and Tron are not mintable this way. When the sweep target is a fiat balance account, the same call credits that balance immediately and emits balance.credited. Replaying the same reference does not credit twice. On a fiat pay-in that lists sourceRails, pass rail (ACH, WIRE, or SWIFT) to choose the inbound rail. Omit it to book the route’s stored rail — ACH when the route accepts ACH and wire. Domestic wire is WIRE. A rail the route does not accept is rejected when no sweep exists for that reference and amount. Reusing reference with the same amount returns the existing sweep and leaves its recorded rail and remitter unchanged. An unfinished sweep resumes from that deposit; use a new reference for each rail. Wire, ACH, and SWIFT simulations populate source.originator (and the same field on transfer.created / transfer.updated webhooks) with a sandbox remitter. The ACH remitter is the originator name and routing number only. Pass originator to override, or {} to leave it null. Crypto sources stay null unless originator is set. Routes with allowedSenderBanks do not get a default remitter — omit originator and senderBank to exercise the unattributed fail-closed path. POST /v1/sandbox/accounts/{id}/fund-in cannot replace this call for inw_ accounts.

Authorizations

Authorization
string
header
required

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

Headers

X-API-Key
string

API key

Path Parameters

id
string
required

Fixed route source account id (vba_ for fiat, inw_ for crypto deposit wallets)

Body

application/json
amount
string
required

Deposit amount in major units (e.g. "1000.00" for USD, "100.5" for USDT)

Example:

"1000.00"

currency
string

Deposit currency; defaults to the route source currency when omitted

Example:

"USD"

reference
string

Idempotency reference for the simulated deposit. A reused reference returns the existing sweep. Its rail and remitter stay as first recorded, and an unfinished sweep resumes from that deposit rather than the later rail. Use a new reference to simulate a different inbound rail.

Example:

"sandbox_test_deposit_1"

rail
enum<string>

Inbound rail for a fiat pay-in that lists sourceRails. ACH, WIRE, or SWIFT. Omit to book the route's stored rail (ACH when the route accepts ACH and wire). Domestic wire is WIRE. Ignored when the route has no sourceRails.

Available options:
ACH,
WIRE,
SWIFT
Example:

"WIRE"

senderBank
object

Sender bank reported for the simulated deposit, for exercising the allowedSenderBanks restriction on fiat pay-in routes. When omitted on a wire/FedWire/SWIFT route with no allowlist, a default remitter is used so source.originator is populated. Omit both this and originator on an allowlisted route to simulate a deposit without sender-bank data.

originator
object | null

Inbound remitter identity persisted on the sweep transfer as source.originator (and transfer webhooks). Wire/FedWire/SWIFT/ACH simulations default a sandbox remitter when this is omitted and the route has no allowedSenderBanks. The ACH default is the originator name and routing number only. Pass an empty object to skip the default and leave originator null. Crypto sources stay null unless this is set.

Response

Fixed route sweep simulated successfully

accountId
string
required

Fixed route source account ID

Example:

"acc_123"

transferId
string
required

Sweep transfer created or replayed for this simulation

Example:

"tfr_123"

sweepReferenceId
string
required

Sweep idempotency key used for this simulation

Example:

"sandbox_sim_550e8400-e29b-41d4-a716-446655440000"