Payment States
Every payment carries a paymentState. Drive your order logic from these values, and never downgrade an order that has already reached a later state — webhooks can arrive out of order.
| State | Meaning | What to do |
|---|---|---|
Created |
Payment exists; the customer has not paid yet. | Hold the order as pending. |
SaleInProgress |
The customer is going through checkout. | Keep waiting. |
Authorizing / Authorized |
Funds are being, or have been, reserved on the payment method. | Capture when you are ready to fulfil (if autoCapture was false). |
Approved |
The provider approved the transaction. | Keep waiting for capture. |
ProviderAuthorizedHold / CapturedHold |
Authorised or captured, but held for review — usually a fraud rule. | Review in the Console; release with unhold or cancel. |
Capturing |
Capture is in flight. | Keep waiting. |
Captured |
Money settled with the provider. Terminal success. | Fulfil the order. |
Cancelling |
A cancellation is being processed. | Keep the order on hold. |
Failed |
The payment cannot succeed. Terminal. | Cancel the order and release reserved stock. lastError explains why. |
Refunding / Refunded |
A refund is in flight, or complete. | Mark the order refunded only on Refunded. |
Disputed |
The customer raised a chargeback with their bank. | Flag for manual review; do not restore stock automatically. |
Fraud status
Alongside the state, fraudStatus reports what the risk engine decided: Unknown, Verified, RuleViolated, Suspicious, Fraudulent or Ignored. Rules are configured per app as fraud policies, and a payment can name a specific policy with fraudPolicyId.