Redemption Order Status
- Once a Redemption Request is initiated for an active subscription, this API can be used to check its execution status. It helps you identify whether the redemption has been notified to the user, 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> |
⚠️ For Partner Integrations!
It is mandatory to include the X-MERCHANT-ID header with the MerchantID of the end merchant.
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 user 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 user 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 user’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.