A gateway deposit and a gateway withdrawal each move through a fixed set of stages. The gateway emits DepositStageChanged and WithdrawalStageChanged on every move. The names below are the names those events carry. The concept page explains the model, and the how-to walks the routes that move a record.
The “Client sees” column is the wording in the Investor portal and “Operator sees” is the wording in the Console. A stage that rests waits for a person or a time limit. A stage that ends never moves again.
Deposit stages
Withdrawal stages
Notes
Frozen is not a stored stage
A freeze is a flag on a record, not a stage. A frozen deposit keeps the stage it was frozen from, and a read reports it with isFrozen set. DepositStageChanged still carries Frozen when a freeze starts or renews, and the Console's “Stage” column shows “Frozen” while the freeze is live. A frozen withdrawal keeps its stage in the same way, and the Portal shows “On hold”. Unfreezing restores the stage the record had.
The reported mark
report marks a frozen record as reported. A reported record never expires its freeze and nobody can unfreeze it. When a client's flag clears, reported records stay frozen.
returnedBy and returnReason
A deposit that ends as Returned carries returnedBy: None, Client, Screener or Managers. A withdrawal that ends as ReceiptReturned or waits in ReturnPending carries returnReason: None, Refused, Rejected, Cancelled, TimeLimit, FrozenReturn or PausedExit.
Time limits
Each limit is a setting that resolves from the gateway, then its profile, then the add-on default. The terms in force when a record was created are the terms it keeps. freeze-expiry and paused-exit-after are required on every enabled coin.