Start at Bank transfers for the virtual account
flow, or One-off bank deposit for the other. Which
one a country supports is answered by
GET /v1/payment-methods.
Where money can come in
Permanent virtual accounts and one-off deposits do not cover the same set, so check the shape you intend to use rather than the currency alone.
Stablecoin collection is available alongside the fiat rails - USDC, USDT and EURC
on the networks listed in Coverage.
The incoming side is much narrower than the outgoing one. Roughly three times
as many currencies can be paid out as can be paid in. If a corridor matters to
your product, confirm the incoming leg first - it is the one more likely to be
missing.
Why a local transfer beats a cross-border one
The reason virtual accounts exist in the flow at all: a user sends money from an account in their own name to an account in their own name, in the same country and the same currency. That is a local wire - it executes faster and converts at a better rate than the same money crossing a border first. The conversion happens on our side of that hop, not the bank’s.What the user gets back, and what it costs
Every payin returns a full breakdown rather than a single net figure. Both legs carry their own fees, and the FX rate and our markup are stated separately:Fees come out of the amount, never added on top. A 100 EUR transfer with 1.40
in total fees settles the remainder - the user is not charged 101.40. Showing the
two figures side by side without saying so reads as a surcharge.
Following one
A payin passes through the partner’s own states before it is finished. Two of them are easy to misread:- A transfer appearing on the account does not mean the user received anything. It is listed while the money is still in flight. The delivered amount is the first moment anything true can be said about what arrived - poll for that, not for the record’s existence.
- The details expire, the money does not. A payment already on its way still
settles after
expiresAt; only new payments stop being accepted.