Transfer states

Transfer Status

The transfer status represents the current lifecycle stage of a transfer within the Stables platform.

A transfer progresses forward through defined states and does not move backwards. Certain states represent normal progression, while others indicate an exception or terminal outcome.

Status Reference

StatusDescription
CREATEDThe transfer has been successfully created in Stables but no funds movement has started yet. This is the initial state after calling the Transfers API.
AWAITING_FUNDS_COLLECTIONStables is waiting to collect funds from the source. This may include incoming crypto deposits, prefunded balances, or external fiat collection rails.
FUNDS_COLLECTEDFunds have been successfully received or debited from the source and are ready to be sent to the destination.
IN_PROGRESSFunds have been received and internal processing is underway. The transfer is being prepared for outbound payment submission.
PAYMENT_SUBMITTEDThe outbound payment has been initiated on the selected rail. Processing time depends on the rail used, such as minutes for crypto, hours for wires, or multiple business days for ACH.
PAYMENT_PROCESSEDThe destination rail has confirmed successful processing of the payment.
COMPLETEDThe transfer lifecycle has fully completed. Funds have been delivered and confirmed with no further actions pending. This is a terminal success state.
FAILEDThe transfer could not be completed due to an error or processing failure. This is a terminal exception state and may require manual review or retry.
CANCELLEDThe transfer was cancelled before funds were collected. This is a terminal state and can only occur prior to funds collection.
EXPIREDThe transfer expired before funds were collected. This is a terminal state and can only occur prior to funds collection.
COMPLIANCE_HOLDThe transfer has been placed on hold pending a compliance review. The transfer will resume processing once the review is complete, or may be cancelled if it does not pass.

State Progression

A successful transfer will typically move through the following progression.

CREATED → AWAITING_FUNDS_COLLECTION → FUNDS_COLLECTED → IN_PROGRESS → PAYMENT_SUBMITTED → PAYMENT_PROCESSED → COMPLETED

Important Notes

  • Transfers never move backwards in state.
  • EXPIRED, FAILED and CANCELLED represent terminal exception paths.
  • COMPLIANCE_HOLD is a non-terminal state that may be applied at any point during processing. A transfer can resume from this state once the compliance review is resolved.
  • Once a transfer reaches COMPLETED, FAILED, CANCELLED, or EXPIRED, no further state changes occur.
  • The REST API returns these statuses in lowercase (for example created, compliance_hold, completed). Webhook payloads use the uppercase names shown here.
  • Processing time varies depending on the payment rail and destination.

On this page