Simulate inbound transfer on a Virtual Account
Simulate an inbound fiat transfer against a Virtual Account, for testing
webhook and reconciliation flows. Sandbox / non-production only; returns
404 in production-live. Set the type field in the request body to
choose the transfer rail: bankUs (network ach or wire) or
bankIban (network swift).
Authorizations
Token from POST /auth/token
Headers
Required on POST and PUT requests. Use a unique value per logical mutation attempt, for example a UUID.
Path Parameters
Body
- US bank account (ACH or Wire)
- International bank account (SWIFT)
US domestic (ACH or Wire) inbound simulation against a Virtual Account.
Rail discriminator. Always bankUs for a US domestic inbound.
bankUs Which US rail to simulate.
ach, wire Always "usd", the only asset the VA rail supports today.
usd Must be greater than 0.00 and at most 1000.00 (422 simulationAmountOutOfRange beyond).
Response
The request has succeeded.
Flat (non-discriminated) response for POST /virtual-accounts/{id}/simulate/inbound-transfer.
The Virtual Account that received the simulated transfer (va_ prefix).
^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$Echoes the request's rail discriminator.
bankUs, bankIban The rail the transfer settled on.
ach, wire, swift Always "usd".
usd The simulated transfer amount.
"submitted" for ach/wire (settles synchronously); "pending" for swift - the upstream provider settles SWIFT asynchronously.
submitted, pending When the simulated transfer was submitted.
Correlation id for the subsequent webhook. null for ach/wire;
an intl_wire_in_… id for swift.