Redemption Order Status


  • Once a Redemption Request is initiated for an active subscription, this API can be used to track its execution status. It helps you identify whether the redemption has been notified to the customer, is currently in progress, or has been completed.
  • Also verify the Execute Redemption status using this API, if the request was processed successfully, failed, or remains pending, along with other key payment details.
EnvironmentHTTP MethodAPI
SandboxGEThttps://api-preprod.phonepe.com/apis/pg-sandbox/subscriptions/v2/order/{merchantOrderId}/status?details=true
ProductionGEThttps://api.phonepe.com/apis/pg/subscriptions/v2/order/{merchantOrderId}/status?details=true
Request Headers
Header NameHeader Value
Content-Typeapplication/json
AuthorizationO-Bearer <merchant-auth-token>
Path Parameters
Parameter NameDescription
merchantOrderIdMerchant-generated order ID that was shared during the Redemption Notify API call.
Sample Request in CURL
curl --location 'https://api-preprod.phonepe.com/apis/pg-sandbox/subscriptions/v2/order/MO1709025691805/status?details=true' \
--header 'Accept: application/json' \
--header 'Authorization: O-Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHBpcmVzT24iOjE3MTIyNTM2MjU2NDQsIm1lcmNoYW50SWQiOiJWMlNVQlVBVCJ9.7aVzYI_f_77-bBicEcRNuYx093b2wCsgl_WFNkKqAPY'
Sample Response when Subscription state is Notified
{
  "merchantId": "SWIGGY8",  
  "merchantOrderId": "SWIGGY122",
  "orderId": "OMO2503162337146919338960",
  "state": "NOTIFIED",
  "amount": 100,
  "expireAt": 1620891733101,
  "paymentFlow": {
    "type": "SUBSCRIPTION_REDEMPTION",
    "merchantSubscriptionId": "MS121312",
    "redemptionRetryStrategy": "STANDARD",
    "autoDebit": true,
    "validAfter": 1628229131000,
    "validUpto": 1628574731000,
    "notifiedAt": 1622539751586
  },
    "paymentDetails": []
}
Response Parameters
Parameter NameData TypeDescription
merchantIdStringA unique ID assigned to the merchant by the PhonePe system during the onboarding process.
merchantOrderIdStringA unique orderId provided by the merchant when creating the order.
orderIdStringAn orderId generated by PhonePe.
stateStringPossible value:
NOTIFICATION_IN_PROGRESS
NOTIFIED
amountLongThe amount provided by the merchant in Paise.
expireAtDateTimeRepresents the time in epoch (milliseconds).
paymentFlowArrayProvides the details of the subscription.
paymentFlow.typeStringThe type should be SUBSCRIPTION_REDEMPTION for redemption-related actions.
MetaInfoArrayContains metadata provided by the merchant.
paymentFlow.merchantSubscriptionIdStringA unique subscriptionId provided by the merchant to identify and manage the subscription request.
paymentFlow.retryStrategyStringSTANDARD
paymentFlow.maxAmountBooleanIf true, PhonePe will handle the execution process.
paymentFlow.validAfterDateTimeThe start timestamp of the redemption window, provided in milliseconds.
paymentFlow.subscriptionIdDateTimeThe end timestamp of the redemption window, provided in milliseconds.
paymentDetailsDateTimeThe timestamp in milliseconds indicating when the customer was notified about the scheduled redemption.
Sample Response when Subscription state is Redeemed
{
  "merchantId": "SWIGGY8",  
  "merchantOrderId": "MO1232",
  "orderId": "OMO12344",
  "state": "COMPLETED",
  "amount": 100,
  "expireAt": 1620891733101,
  "metaInfo": {
    "udf1": 
    "udf2": 
    "udf3": 
    "udf4": 
    "udf5": 
    "udf6": 
    "udf7": 
    "udf8": 
    "udf9": 
    "udf10": 
    "udf11": 
    "udf12": 
    "udf13": 
    "udf14": 
    "udf15": 
  },
  "paymentFlow": {
    "type": "SUBSCRIPTION_REDEMPTION",
    "merchantSubscriptionId": "MS121312",
    "redemptionRetryStrategy": "CUSTOM",
    "autoDebit": true,
    "validAfter": 1628229131000,
    "validUpto": 1628574731000,
    "notifiedAt": 1622539751586
  },
  "errorCode": 
  "detailedErrorCode":   
  "paymentDetails": [
    {
      "amount": 100
      "paymentMode": "UPI_MANDATE",
      "timestamp": 1620891733101      
      "transactionId": "OM124",
      "state": "COMPLETED", // FAILED, PENDING
      "rail": {
        "type": "UPI",
        "utr": "2",
        "vpa": "****@ybl", //add success@ybl/failure@ybl/pending@ybl here.
        "umn": "544fcc8819d04cb08e26faa1fb07eee7@ybl"
      },
      "instrument": {
        "type": "ACCOUNT",
        "maskedAccountNumber": "XXX2312",
        "ifsc": "VISA",
        "accountHolderName": "Harshad",
        "accountType": "SAVINGS"
      },
      "errorCode": 
      "detailedErrorCode": 
    }
  ]
}
Response Parameters
Parameter NameData TypeDescription
merchantIdStringA unique ID assigned to the merchant by the PhonePe system during the onboarding process.
merchantOrderIdStringA unique orderId provided by the merchant when creating the order.
orderIdStringAn orderId generated by PhonePe.
stateStringPossible value:
COMPLETED
FAILED
PENDING
amountLongThe amount provided by the merchant in Paise.
expireAtDateTimeRepresents the time in epoch (milliseconds).
paymentFlowArrayProvides the details of the subscription.
MetaInfoArrayContains metadata provided by the merchant.
notifiedAtDateTimeTime (in milliseconds) when the customer got the notification about the redemption.
errorcodeStringError code shown if the status is FAILED.
detailedErrorCodeStringA detailed explanation of the error code, shown only when the status is FAILED.
paymentModeStringThe method used to collect payment for the subscription.
transactionIdStringUnique transaction ID generated by PhonePe.
stateStringThe current status of the debit.
railArrayDetails of the payment instrument used and UMRN associated with the transaction.
instrumentArrayDetails of the customer’s bank account.
errorCodeStringError code provided when the payment attempt fails.
detailedErrorCodeStringAn error code description will appear if the attempt fails.

The metaInfo object contains additional parameters, which are explained in the table below.

Request Parameters of metoInfo Object:
Parameter NameData TypeDescriptionMandatory (Yes/No)Constraints
metaInfo.udf1-15StringOptional details you can add for more informationNoMaximum length for Udf1-10 = 256 characters
Maximum length for Udf11-15 = 50 characters

The paymentFlow object contains additional parameters, which are explained in the table below.

Request Parameters of paymentFlow Object:
Parameter NameData TypeDescription
paymentFlow.typeStringThe type should be SUBSCRIPTION_REDEMPTION for redemption-related actions.
paymentFlow.merchantSubscriptionIdStringA unique subscriptionId provided by the merchant to identify and manage the subscription request.
paymentFlow.autoDebitBooleanIf set to true, PhonePe will handle the redemption execution automatically.
paymentFlow.validAfterDateTimeThe time (in milliseconds) when the redemption window starts.
paymentFlow.validUptoDateTimeThe time (in milliseconds) when the redemption window ends.
headers
url params

You can also test this API request directly in Postman for a quick and easy integration check.

In next section, how the amount is executed and debited from the user’s bank account.

Is this article helpful?