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.
Environment
| Environment | HTTP Method | API |
| Sandbox | GET | https://api-preprod.phonepe.com/apis/pg-sandbox/subscriptions/v2/order/{merchantOrderId}/status?details=true |
| Production | GET | https://api.phonepe.com/apis/pg/subscriptions/v2/order/{merchantOrderId}/status?details=true |
Request for Redemption
Request Headers
| Header Name | Header Value |
| Content-Type | application/json |
| Authorization | O-Bearer <merchant-auth-token> |
Path Parameters
| Parameter Name | Description |
merchantOrderId | Merchant-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'Response for Redemption
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 Name | Data Type | Description |
merchantId | String | A unique ID assigned to the merchant by the PhonePe system during the onboarding process. |
merchantOrderId | String | A unique orderId provided by the merchant when creating the order. |
orderId | String | An orderId generated by PhonePe. |
state | String | Possible value: • NOTIFICATION_IN_PROGRESS • NOTIFIED |
amount | Long | The amount provided by the merchant in Paise. |
expireAt | DateTime | Represents the time in epoch (milliseconds). |
| Array | Provides the details of the subscription. |
| String | The type should be “SUBSCRIPTION_REDEMPTION“ for redemption-related actions. |
MetaInfo | Array | Contains metadata provided by the merchant. |
paymentFlow.merchantSubscriptionId | String | A unique subscriptionId provided by the merchant to identify and manage the subscription request. |
| String | STANDARD |
paymentFlow.maxAmount | Boolean | If true, PhonePe will handle the execution process. |
| DateTime | The start timestamp of the redemption window, provided in milliseconds. |
paymentFlow.subscriptionId | DateTime | The end timestamp of the redemption window, provided in milliseconds. |
paymentDetails | DateTime | The 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 Name | Data Type | Description |
merchantId | String | A unique ID assigned to the merchant by the PhonePe system during the onboarding process. |
merchantOrderId | String | A unique orderId provided by the merchant when creating the order. |
orderId | String | An orderId generated by PhonePe. |
state | String | Possible value: • COMPLETED • FAILED • PENDING |
amount | Long | The amount provided by the merchant in Paise. |
expireAt | DateTime | Represents the time in epoch (milliseconds). |
| Array | Provides the details of the subscription. |
MetaInfo | Array | Contains metadata provided by the merchant. |
| DateTime | Time (in milliseconds) when the customer got the notification about the redemption. |
| String | Error code shown if the status is FAILED. |
detailedErrorCode | String | A detailed explanation of the error code, shown only when the status is FAILED. |
paymentMode | String | The method used to collect payment for the subscription. |
transactionId | String | Unique transaction ID generated by PhonePe. |
state | String | The current status of the debit. |
rail | Array | Details of the payment instrument used and UMRN associated with the transaction. |
instrument | Array | Details of the customer’s bank account. |
errorCode | String | Error code provided when the payment attempt fails. |
detailedErrorCode | String | An 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 Name | Data Type | Description | Mandatory (Yes/No) | Constraints |
metaInfo.udf1-15 | String | Optional details you can add for more information | No | • Maximum 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 Name | Data Type | Description |
| String | The type should be “SUBSCRIPTION_REDEMPTION“ for redemption-related actions. |
paymentFlow.merchantSubscriptionId | String | A unique subscriptionId provided by the merchant to identify and manage the subscription request. |
| Boolean | If set to true, PhonePe will handle the redemption execution automatically. |
| DateTime | The time (in milliseconds) when the redemption window starts. |
| DateTime | The time (in milliseconds) when the redemption window ends. |
Check Redemption Order status !
headers
url params
What’s Next?
In next section, how the amount is executed and debited from the user’s bank account.