Notify Redemption


Once the subscription is set up, the next step is to collect the redemption amount based on the selected subscription frequency.

Redemption involves two steps:

  • Notify: Inform the user about the upcoming payment.
  • Execute: Debits the redemption amount from the user. This step is required only when auto-debit is set to false; if set to true, the debit is processed automatically by PhonePe Payment Gateway.

⚠️ Validate Subscription State Before Notify!


Always verify that the subscription is in the ACTIVE state using the Subscription Status API before calling the Notify API, to prevent avoidable failures.

⚠️ Validate Subscription State Before Notify!


  • When paymentFlow.redemptionRetryStrategy is set to CUSTOM:
    • Merchants must retry until a terminal status (COMPLETED or FAILED) is reached.
    • You are limited to one initial attempt and three retries over a maximum of 48 hours.
    • Retries must be executed only during the non peak periods – 9:31 PM to 9:59 AM and 1:01 PM to 4:59 PM
  • When paymentFlow.redemptionRetryStrategy is set to STANDARD:
    • PhonePe will automatically handle all internal redemption retries for you.
    • Retries are managed internally by PhonePe, with a maximum time window of 48 hours to achieve a terminal status.
    • Retries must be executed only during the non peak periods – 9:31 PM to 9:59 AM and 1:01 PM to 4:59 PM
    • No action or changes are required from the merchant.
  • Default Value: STANDARD.
EnvironmentHTTP MethodAPI
SandboxPOSThttps://api-preprod.phonepe.com/apis/pg-sandbox/checkout/v2/subscriptions/notify
ProductionPOSThttps://api.phonepe.com/apis/pg/checkout/v2/subscriptions/notify
Request Headers
Header NameHeader Value
Content-Typeapplication/json
AuthorizationO-Bearer <merchant-auth-token>

⚠️ For Partner Integrations!


It is mandatory to include the X-MERCHANT-ID header with the MerchantID of the end merchant.

Sample Request
{
    "merchantOrderId": "Tx1234",
    "amount":100,
    "paymentFlow": {
        "type": "SUBSCRIPTION_CHECKOUT_REDEMPTION",
        "merchantSubscriptionId": "Sub123",
        "redemptionRetryStrategy": "STANDARD",
        "autoDebit": false
    }
}
Request Parameters
Parameter NameData TypeDescriptionMandatoryConstraints
merchantOrderIdStringUnique merchant order id generated by merchantYesMax Length: 63 charactersNo Special characters allowed except underscore “_” and hyphen “-“
amountLongTransaction amount in paise.YesMin Value: 100 paise (₹ 1)
paymentFlowObjectContains additional configuration required to process the selected payment flow.Yes
paymentFlow.typeStringSpecifies the type of payment flow to be executed.YesPossible Value: SUBSCRIPTION_CHECKOUT_REDEMPTION
paymentFlow.merchantSubscriptionIdStringUnique ID for the subscription associated with the payment flow.Yes
paymentFlow.redemptionRetryStrategyStringDefines the retry behavior in case a debit attempt fails.No
paymentFlow.autoDebitbooleanIndicates whether automatic debit is enabled for the subscription.No
Sample Response
{
  "orderId": "OMO2604141043461445825945V",
  "state": "NOTIFICATION_IN_PROGRESS",
  "expireAt": 1776489226123,
  "nativeOtpEnabled": false
}
Response Parameters
Parameter NameDescription
orderIdUnique internal orderId generated by PhonePe Payment Gateway.
stateCurrent status of the order.
expireAtExpiry time of the order in epoch format (milliseconds).
headers
body params

In the next section, you will learn how to check the status of a notify redemption for an active subscription.

Is this article helpful?