Cancel an unsettled transfer
Reverse a transfer that has been reserved but not yet sent to the payment provider. The funds held against the source wallet are credited back, the pending ledger entry is marked reversed, and the transfer’s daily-limit reservation is released.
This does not delete anything. The transfer row remains. It comes back
with status of failed, and a failureReason reading
Cancelled before provider settlement. There is no cancelled status.
Only unsettled transfers qualify. POST /accounts/transfer settles
synchronously, so a transfer is normally already completed by the time
you could call this. It applies to the narrow window where a transfer holds
a reservation that was never submitted, typically because the creating
request failed part-way. Anything the provider has already seen is refused
with 409, because reversing it would need a refund and this endpoint does
not perform one.
Not idempotent. A second call returns 409, since the transfer is
terminal by then. The reversal itself is transactional, so concurrent calls
cannot credit the source twice.
Sandbox: sandbox transfers never reach the provider boundary and settle
immediately, so in practice they are never cancellable and return 409.