This API is used to fetch the status of an order.
API Path and Method to be used
Environment | Http Method | API Host URL |
---|---|---|
Sandbox | GET | https://api-preprod.phonepe.com/apis/pg-sandbox/payments/v2/order/{merchantOrderId}/status?details=[true] |
Production | GET | https://api.phonepe.com/apis/pg/payments/v2/order/{merchantOrderId}/status?details=[true] |
Request Headers
Header Name | Header Value | Description |
---|---|---|
Content-Type | application/json | |
Authorization | O-Bearer <access_token> | Pass access_token received in Authorization call |
Path Parameters
details : True
Sample Responses
Case 1: Order is completed with only UPI
{
"orderId": "OMO2406121817536673671964",
"state": "FAILED",
"amount": 600,
"expireAt": 1718196773639,
"errorCode": "PAYMENT_ERROR",
"detailedErrorCode": "XC",
"paymentDetails": [
{
"transactionId": "OM2406121817537233671905",
"paymentMode": "UPI_INTENT",
"timestamp": 1718196473782,
"amount": 600,
"payableAmount": 600,
"feeAmount": 0,
"state": "FAILED",
"errorCode": "PAYMENT_ERROR",
"detailedErrorCode": "XC",
"splitInstruments": [
{
"instrument": {
"type": "ACCOUNT",
"maskedAccountNumber": "XXXXXXX20000",
"accountHolderName": "Venkat",
"accountType": "SAVINGS"
},
"rail": {
"type": "UPI",
"utr": "416455839594",
"upiTransactionId": "YBLb58946ea97d34dacbb341be2aa52cfdd",
"vpa": "nishant1@ybl"
},
"amount": 600
}
]
}
]
}
Case 2: Order is completed with UPI + Wallet
{
"orderId": "OMO2406121815092173671793",
"state": "FAILED",
"amount": 600,
"expireAt": 1718196609188,
"errorCode": "PAYMENT_ERROR",
"detailedErrorCode": "XC",
"paymentDetails": [
{
"transactionId": "OM2406121815092983671195",
"paymentMode": "UPI_INTENT",
"timestamp": 1718196309367,
"amount": 600,
"payableAmount": 600,
"feeAmount": 0,
"state": "FAILED",
"errorCode": "PAYMENT_ERROR",
"detailedErrorCode": "XC",
"splitInstruments": [
{
"instrument": {
"type": "ACCOUNT",
"maskedAccountNumber": "XXXXXXX20000",
"accountHolderName": "Venkat",
"accountType": "SAVINGS"
},
"rail": {
"type": "UPI",
"utr": "416421787136",
"upiTransactionId": "YBL96b3dfd0a7c442dc80bec6ae45ffb58c",
"vpa": "nishant1@ybl"
},
"amount": 100
},
{
"instrument": {
"type": "WALLET"
},
"rail": {
"type": "PPI_WALLET"
},
"amount": 500
}
]
}
]
}
Case 3: No payment attempt is made for order
{
"orderId": "OMOxx",
"state": "CREATED",
"amount": 10000,
"expireAt": 1291391291
}
Response Parameters
Parameter Name | Type | Description |
---|---|---|
orderId | String | PG generated internal order id |
state | String | State of order, Expected Values = [PENDING, FAILED, COMPLETED] |
amount | Long | Order amount in paisa |
expireAt | String | order expiry time in epoch |
metaInfo | Object | Merchant defined meta info passed at the time of order creation |
paymentDetails | List | Contains list of details of each payment attempt made corresponding to this order. |
paymentDetails.paymentMode | String | Mode of payment. Expected Values = [UPI_INTENT, UPI_COLLECT, UPI_QR, CARD, TOKEN, NET_BANKING] |
paymentDetails.timestamp | Long | Transaction attempt timestamp in epoch |
paymentDetails.amount | Long | Amount in paisa, corresponding to payment attempt |
paymentDetails.transactionId | String | internal transaction id for given payment attempt |
paymentDetails.state | String | Transaction attempt state. Expected Values = [PENDING, COMPLETED, FAILED] |
paymentDetails.errorCode | String | Error code (Only present when transaction state is failed) |
paymentDetails.detailedErrorCode | String | Detailed Error Code (Only present when transaction state is failed) |
paymentDetails.rail | Object | Contains processing rail details under which payment attempt is made. |
paymentDetails.rail.type | String | Type of rail. Expected values = [UPI, PG] |
paymentDetails.instrument | Object | Contains instrument details |
paymentDetails.instrument.type | String | Type of payment instrument. Expected values = [ACCOUNT, EXTERNAL_VPA, CREDIT_CARD, DEBIT_CARD, NET_BANKING] |
Rail and Instrument Values for Each Payment Mode
Rail = “UPI”, When payment Mode = [UPI_INTENT, UPI_COLLECT, UPI_QR]
"rail": {
"type": "UPI",
"utr": "<utr>",
"upiTransactionId": "upi12313",
"vpa": "abcd@ybl"
}
Rail = “PG”, When payment Mode = [CARD, TOKEN, NET_BANKING]
"rail": {
"type": "PG",
"transactionId": "<transactionId>",
"authorizationCode": "<authorizationCode>",
"serviceTransactionId": "<serviceTransactionId>"
}
Instrument = “ACCOUNT”, When payment Mode = [UPI_INTENT, UPI_COLLECT, UPI_QR]
"instrument": {
"type": "ACCOUNT",
"accountType": "SAVINGS",
"maskedAccountNumber": "<maskedAccountNumber>",
"accountHolderName": "<accountHolderName>"
}
Instrument = “CREDIT_CARD”, When payment Mode = [CARD, UPI_INTENT, UPI_COLLECT, UPI_QR]
"instrument": {
"type": "CREDIT_CARD",
"bankTransactionId": "<bankTransactionId>",
"bankId": "<bankId>",
"arn": "<arn>",
"brn": "<brn>"
}
Instrument = “DEBIT_CARD”, When payment Mode = [CARD]
"instrument": {
"type": "DEBIT_CARD",
"bankTransactionId": "<bankTransactionId>",
"bankId": "<bankId>",
"arn": "<arn>",
"brn": "<brn>"
}
Instrument = “NET_BANKING”, When payment Mode = [NET_BANKING]
"instrument": {
"type": "NET_BANKING",
"bankTransactionId": "<bankTransactionId>",
"bankId": "<bankId>",
"arn": "<arn>",
"brn": "<brn>"
}