Skip to main content

Status lifecycle

Use this table to interpret status values from GET /transaction/{id} or webhook payloads.

StatusWhen it happensYour actionWebhook event
AWAITING_PAYMENTThe transaction was accepted and is waiting for the on-chain deposit that includes the transaction_reference memo.Send the quoted crypto amount before the expiration_time.transaction.created
PROCESSING_PAYMENTAbroad detected the on-chain transfer and is preparing or sending the local payout.No action; continue polling or wait for the next webhook.transaction.updated
PAYMENT_COMPLETEDLocal payout succeeded.Mark the transfer as settled in your system.transaction.updated
PAYMENT_FAILEDPayout failed (e.g., invalid account, provider error).Show the error to the user, correct the account, then create a new transaction.transaction.updated
PAYMENT_EXPIREDThe quote expired before funds arrived.Create a fresh quote and transaction, then resend funds.transaction.updated (after expiry job)
WRONG_AMOUNTFunds arrived but were below the quoted amount; we attempt an on-chain refund.Inform the sender and create a new quote/transaction with the correct amount.transaction.created

If kycLink is present in the transaction payload, the user must complete KYC before the payout continues.