Documentationspeedymoneytransfer.com

Concepts

Transfers and states

The life of a transfer and what each state means.

A transfer is one atomic, idempotent posting in a double-entry ledger. Its status moves forward only.

Transfer status

StatusMeaning
funding_pendingWe have asked the sender's bank for the payment. Nothing is sent to you yet.
funding_failedThe bank did not release the payment. No payout was requested.
createdPayment received. We are preparing the payout request.
submittedThe payout request has been sent to you. Not paid.
pendingYou accepted it and are processing. The money has not reached the recipient.
completedYou confirmed the payout, through a verified webhook or reconciliation.
failedThe payout did not complete. The sender is refunded.
returnedThe payout was accepted and then sent back. The sender is refunded the transfer amount.
cancelledStopped by the sender inside the cancel window.

Payout status

Your side reports one of five statuses. The allowed moves are:

Payout transitions
submitted -> pending -> completed
submitted -> completed
submitted -> failed
pending   -> failed | returned
completed -> returned

Funding, refund and loss state

Three separate states sit beside the status, so the status never has to carry money detail:

StateValuesUsed for
funding_statepending, cleared, failed, returned, cancelledThe sender's bank payment.
refund_statenone, pending, doneMoney going back to the original payment method.
loss_statenone, open, recovered, written_offA bank return after the payout went out: a recorded loss and a compliance case, never a silent write-off. Write-offs need a second approver.

Speedy holds no customer balance. Each transfer is funded by its own payment, the payout is sent after funds clear (or earlier only for the Fast option), and refunds go back to the original account.