Notifications of order status changes are sent to a corresponding endpoint implemented on your system's side.
Payment status diagram
The following image shows the payment operation state machine flow.
The diagram does not show processors with async notifications or without 3DS.

Payment statuses
The notified statuses are the following:
- Pending: Pending order. The order has been initiated, but payment has not been confirmed by the processor.
- Succeeded: Order completed. The order was successfully processed by the selected processor. Does not include cash payments.
- Cancelled: Order canceled. Orders are marked as canceled when the merchant manually marks them in Admin. Depending on the processor, a refund process might be initiated.
- Refund: Order being refunded. The order is moving from a competing status to a canceled status. The order is waiting for the processor to confirm the chargeback or cancellation.
- Expired: Order expired. Orders are expired via the API or by setting an expiration time. An order may be expired if:
- The order has no associated payment attempt.
- The status of the order is pending.
Pending orders are considered complete when the actual payment method has been used to complete them.
Checkout statuses
Checkout handles payment statuses separately from the last payment attempt status.
Consider payment statuses to flag orders accordingly and maintain visibility of the current order status with:
- Synchronous payment methods (debit and credit cards)
- Asynchronous payment methods (BPNLS, cash pickup, and so on)
Orders must be flagged according to their status so end users can see the order status to preserve idempotency.
The following payment statuses match the corresponding order status.
Pending
The order.payment.data.status == "pending"
status has the following possibilities:
processing
: The order is still being processed.pending
: The order was pending due to business rules or has not been confirmed by the processor.denied
: The order was denied.authorizing
: The order is in the authorization process.manual_review
: The order has been manually reviewed by the payment provider or fraud provider.pending_3ds
: The transaction is pending authentication with 3DS.
Succeeded
The order.payment.data.status == "succeeded"
status has the following possibilities:
processed
: The order was processed.authorized
: The order was authorized.captured
: The order has been captured.partial_refunded
: Part of the order was collected..
DEUNA allows for X quantity of partialrefunds where the sum of the amounts for X is equal to the initial payment amount.
DEUNA notifies each partial refund via webhook.
Cancelled
The order.payment.data.status == "cancelled"
status has the following possibilities:
cancelled
voided
refunded
Expired
The expired
status has the following possibilities:
- There is no payment associated with this order.
- The payment associated with said order has not been completed, and the order is still in
pending
status.