Skip to main content

Documentation Index

Fetch the complete documentation index at: https://waffo.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

Order status transitions

Order status reference

StatusDescriptionFinal
PAY_IN_PROGRESSThe order has been accepted and the user is in the process of payingNo
AUTHORIZATION_REQUIREDThe payment method requires user authorization (e.g., an e-wallet)No
AUTHED_WAITING_CAPTUREAuthorized, awaiting capture confirmation (card payments; requires the merchant to confirm capture)No
PAY_SUCCESSPayment succeededYes
ORDER_CLOSEThe order is closed (cancelled, failed, or timed out)Yes

Subscription statuses

StatusDescriptionAction
AUTHORIZATION_REQUIREDUser authorization is required (e-wallet scenario)Redirect to the subscriptionAction URL
IN_PROGRESSThe user is confirming the subscriptionWait for the Webhook
ACTIVEThe subscription is active and charging normallyStore the subscriptionId
CLOSEClosed (timed out or failed)Re-initiate if needed
MERCHANT_CANCELLEDCancelled by the merchant
USER_CANCELLEDCancelled by the userUpdate local records
CHANNEL_CANCELLEDCancelled by the channelNotify the user
EXPIREDExpired without being activatedRe-initiate if needed

Refund statuses

StatusDescription
REFUND_IN_PROGRESSRefund is being processed
ORDER_PARTIALLY_REFUNDEDPartial refund completed
ORDER_FULLY_REFUNDEDFull refund completed
ORDER_REFUND_FAILEDRefund failed

Best practices

Use the Webhook as the only source of truth: redirect URLs are only for user experience and should not be used to determine the payment result.
  1. Handle intermediate states: do not automatically close orders in PAY_IN_PROGRESS; wait for the Webhook or query proactively
  2. Idempotent handling: Webhooks may be delivered more than once; ensure your handling logic is idempotent
  3. Unknown status: when you encounter error code E0001, query using the original paymentRequestId and do not automatically close the order