Subscription Status and Workflow
In this article, you will learn about the various subscription statuses along with its workflow.
A subscription can go through various states once it is created. They are explained in the table below:
Subscription States | Description |
---|---|
INITIALIZED | A subscription is in the INITIALIZED state when it is created. This status shows the subscription is created but the customer has not authorized it yet. |
BANK APPROVAL PENDING | This state indicates that your customer has authorized the mandate. However, we are yet to receive the final confirmation from the bank before we can activate the subscription. |
ACTIVE | The subscription is ACTIVE when the bank has authorised the subscription and you can start collecting payments for this subscription. |
ON HOLD | A subscription moves to the ON HOLD state when the recurring payment fails for a periodic subscription. When it is re-activated, the subscription is updated from the ON HOLD state to the ACTIVE state. |
PAUSED | A subscription moves to the PAUSED state when you pause your periodic subscriptions. Only a periodic subscription that is in the ACTIVE state can be paused. |
COMPLETED | A subscription is COMPLETED when the maximum number of cycles is reached or the subscription expiry is reached. |
CUSTOMER CANCELLED | This state indicates that your customer has cancelled their subscription at the bank’s end. If a subscription is cancelled by your customer it cannot be resumed. |
CUSTOMER_PAUSED | This state indicates that your customer has paused their subscription from their UPI application. If a subscription is paused by your customer only they can resume it. |
EXPIRED | An EXPIRED status indicates that the subscription has passed its expiry date and cannot be resumed. A subscription that is EXPIRED cannot accept any fresh payment requests. |
LINK EXPIRED | This status indicates that the subscription link has expired and there has been no successful authorisation done by the customer for this Subscription. This is one of the terminal states and no further action can be performed on these subscriptions. This is applicable only to all non-seamless Subscriptions that were created post 4th May 2023. |
The Subscription workflow is shown below. For a comprehensive overview of all possible subscription states, please refer to the detailed tables provided below in this document.
State Name: INITIALIZED
All possible states to which a subscription can move when it is INITIALIZED are mentioned in the table below.
Subscription State | Description |
---|---|
INITIALIZED -> BANK APPROVAL PENDING | A subscription moves from the INITIALIZED state to the BANK APPROVAL PENDING when your customer completes the authorisation. |
INITIALIZED -> CANCELLED | A subscription moves from the INITIALIZED state to the CANCELLED state when you cancel the subscription. |
INITIALIZED -> LINK EXPIRED | A subscription moves from the INITIALIZED state to the LINK EXPIRED when the checkout link expires. |
State Name: BANK APPROVAL PENDING
All possible states to which a subscription can move when it is BANK APPROVAL PENDING are mentioned in the table below.
Subscription State | Description |
---|---|
BANK APPROVAL PENDING -> ACTIVE | A subscription moves from the BANK APPROVAL PENDING to the ACTIVE state when the bank approval is successful. |
BANK APPROVAL PENDING -> COMPLETED | A subscription moves from the BANK APPROVAL PENDING state to the COMPLETED state when the subscription has reached the expiry date. |
BANK APPROVAL PENDING -> CANCELLED | A subscription moves from the BANK APPROVAL PENDING state to the CANCELLED state when you cancel the subscription. |
BANK APPROVAL PENDING -> INITIALIZED | A subscription moves from the BANK APPROVAL PENDING state to the INITIALIZED state if the authorisation is unsuccessful (this is not applicable for eNACH). |
State Name: ACTIVE
All possible states to which a subscription can move when it is ACTIVE are mentioned in the table below.
Subscription State | Description |
---|---|
ACTIVE -> COMPLETED | A subscription moves from the ACTIVE state to the COMPLETED state when the maximum number of cycles is completed or if the subscription expiry date is passed. |
ACTIVE -> ON HOLD | A subscription moves from the ACTIVE state to the ON HOLD state if the periodic subscription payment has failed. The subscription will be put on hold. |
ACTIVE -> CANCELLED | A subscription moves from the BANK APPROVAL PENDING state to the CANCELLED state when you cancel the subscription. |
ACTIVE -> CUSTOMER CANCELLED | A subscription moves from the ACTIVE state to the CUSTOMER CANCELLED state when your customer cancels the subscription. |
ACTIVE -> CUSTOMER PAUSED | A subscription moves from the ACTIVE state to the CUSTOMER PAUSED state when your customer pauses the subscription. |
State Name: ON HOLD
All possible states to which a subscription can move when it is ON HOLD are mentioned in the table below.
Subscription State | Description |
---|---|
ON HOLD -> CANCELLED | A subscription moves from the ON HOLD state to the CANCELLED state if you cancel the subscription. |
ON HOLD -> CUSTOMER CANCELLED | A subscription moves from the ON HOLD state to the CUSTOMER CANCELLED state if your customer cancels the subscription. |
ON HOLD -> COMPLETED | A subscription moves from the ON HOLD state to the COMPLETED state if the subscription reaches its expiry date. |
ON HOLD -> ACTIVE | A subscription moves from the ON HOLD state to the ACTIVE state if the subscription is re-activated. |
ON HOLD -> CUSTOMER PAUSED | A subscription moves from the ON HOLD state to the CUSTOMER PAUSED state if your customer pauses the subscription. |
State Name: PAUSED
All possible states to which a subscription can move when it is PAUSED are mentioned in the table below.
Subscription State | Description |
---|---|
PAUSED -> ACTIVE | A subscription moves from the PAUSED state to the ACTIVE state when it is reactivated. |
PAUSED -> COMPLETED | A subscription moves from the PAUSED state to the COMPLETED state if the subscription expiry date is reached. |
PAUSED -> CANCELLED | A subscription moves from the PAUSED state to the CANCELLED state if you cancel the subscription. |
PAUSED -> CUSTOMER CANCELLED | A subscription moves from the PAUSED state to the CUSTOMER CANCELLED state if your customer cancels the subscription. |
State Name: CUSTOMER PAUSED
Subscription State | Description |
---|---|
CUSTOMER PAUSED -> ACTIVE | A subscription moves from the CUSTOMER PAUSED state to the ACTIVE state when it is resumed. |
CUSTOMER PAUSED -> ON HOLD | subscription moves from the CUSTOMER PAUSED state to the ON HOLD state when it is put on hold. |
CUSTOMER_CANCELLED use cases for different payment methods are mentioned below -
- eNACH: Information that the customer has cancelled the mandate is known only when a charge is raised on this mandate. This charge will always fail as per the cut-off timelines. Refer here for payment statuses.
Cut-off Timelines:
Charge Subscription API Scenarios | eNACH | UPI | Cards |
---|---|---|---|
Raised on: T(before 7am) scheduledOn: null | Charge will be raised on T | Not allowed | Not allowed |
Raised on: T(after 7 am) scheduledOn: null | Charge will be raised on T+1* | Not allowed | Not allowed |
Raised on: T(before 7am) scheduledOn: T | Charge will be raised on T | Not allowed | Not allowed |
Raised on: T(after 7am) scheduledOn: T | Not allowed | Not allowed | Not allowed |
Raised on: T scheduledOn : T+1* (cut-off time for UPI is 6pm on T for the charge to be raised on T+1). | Charge will be raised on T+1* | Charge will be raised on T+1* | Not allowed |
Raised on: T scheduledOn: T+2* | Charge will be raised on T+2* | Charge will be raised on T+2* | Charge will be raised on T+2* |
Raised on: T scheduledOn: T+3… T+14 | Charge will be raised on T+3..T+14 | Charge will be raised on T+3..T+14 | Charge will be raised on T+3..T+14 |
Raised on: T scheduledOn : T+15* | Not allowed | Not allowed | Not allowed |
- UPI AutoPay: This update is instant i.e. the status is updated as and when your customer cancels the mandate from their UPI application.
T+x*
Settlement cycle is subject to bank approval and can vary based on transaction type, business category/model, risk parameters, and other factors.
Notifications
When a subscription is created or payment gets processed, a notification via an email or text message will be sent to your customers. This is in compliance with NPCI’s regulations.
Cashfree Payments sends notifications to your customers at different stages of the subscription lifecycle described below:
Event | Email Notification | Text Notification |
---|---|---|
Subscription request initiated This notification is sent when your customers initiate a checkout process through Cashfree's checkout page. | False | True |
Subscription rejected for payment This notification is sent when your customers or their bank rejects the subscription. | False | True |
Subscription created for payment This notification is sent when a subscription is created successfully and approved for payments through your customer's bank account. | True | True |
Upcoming payment (For periodic subscriptions - 48 hours prior to debit) This notification is sent to your customers 48 hours prior to the subscription payment deduction. This will help customers ensure they have sufficient funds in their account. | False | True |
Payment confirmation - Success This notification is sent to your customers when the payment for a subscription is successful. | True | True |
Payment confirmation - Failure This notification is sent to your customers when the payment for a subscription has failed. | True | True |
Subscription Cancelled This notification is sent to your customers when a subscription has been cancelled. | True | True |
Subscription created A notification with the checkout link is sent to your customers. This is sent only if the notification is set as true during creation. | True | True |
General Pointers
- A subscription ends if any one of the following conditions are satisfied:
- The maximum cycle reaches the given limit.
- The subscription reaches the expiry date set during creation.
- The subscription is cancelled from the dashboard or via API.
- When your customer cancels it.
Updated about 1 month ago