A subscription starts in IN_PROGRESS. It enters AUTHORIZATION_REQUIRED when the user must select a payment method or complete authorization. After the user completes authorization, processing continues toward ACTIVE; failures or timeouts move the subscription to CLOSE. Cancellation statuses and EXPIRED are final. The diagram shows only the key path through creation, authorization, activation, and completion; see the table below for each final status.
Status
Description
Action
AUTHORIZATION_REQUIRED
User authorization is required (e-wallet scenario)
Redirect to the subscriptionAction URL
IN_PROGRESS
The user is confirming the subscription
Wait for the Webhook
ACTIVE
The subscription is active and charging normally
Store the subscriptionId
CLOSE
Closed (timed out or failed)
Re-initiate if needed
MERCHANT_CANCELLED
Cancelled by the merchant
—
USER_CANCELLED
Cancelled by the user
Update local records
CHANNEL_CANCELLED
Cancelled by the channel
Notify the user
PLATFORM_CANCELLED
Cancelled by the platform
Check cancelReason in the subscription inquiry response
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.
Handle intermediate states: do not automatically close orders in PAY_IN_PROGRESS; wait for the Webhook or query proactively
Idempotent handling: Webhooks may be delivered more than once; ensure your handling logic is idempotent. See Idempotency
Unknown status: when you encounter error code E0001, query using the original paymentRequestId and do not automatically close the order. For the full handling flow, see Error handling
Was this page helpful?
Assistant
Responses are generated using AI and may contain mistakes.