The order
1
Onboard the buyer
POST /fiat/onboard - register them and link the wallet the stablecoins go to.
Returns ids you hold for the rest of the flow.2
Open a virtual account
POST /fiat/account - returns the bank details to display (IBAN or SWIFT), plus
the fee that applies.3
Wait for the money
POST /fiat/status - poll until funded. Bank transfers settle in hours or days,
not seconds.Identity checks
We do not run our own identity flow. The buyer verifies once with an identity provider, and that result is shared with the banking partner - so a returning buyer is not asked twice./fiat/onboard takes the authorization code from that flow.
POST /fiat/onboard
string
required
One-time authorization code from the identity flow. Single use - a stale or reused
code is rejected.
object
required
object
required
string
required
The EVM address the stablecoins are delivered to.
accountId, walletId and kycStatus. Hold the first two.
POST /fiat/account
string
required
string
required
string
Virtual account id. Pass it to
/fiat/status.object
The bank details to show the buyer - IBAN or SWIFT coordinates, and the reference
that ties their transfer to this account.
number
The fee applied to this account, in basis points (100 bps = 1%).
Show the reference prominently. A transfer that arrives without it takes manual
work to attribute.
POST /fiat/status
string
required
string
required
string
awaiting_deposit or funded. Poll on the first; the second is terminal.string
Once funded: what actually landed, as a decimal string in the currency’s major
unit. Credit this, not the amount the buyer said they would send.