Check Order Status with PHP SDK
It is used to retrieve the status of an order using getOrderStatus() function.
Request
The request parameters are as follows:
| Parameter Name | Data Type | Mandatory (Yes/No) | Description |
merchantOrderId | String | Yes | The merchant order ID for which the status is fetched. |
details | String | No | • true → Returns all payment attempt details under the paymentDetails list. • false → Returns only the latest payment attempt details. |
Sample Request
<?php
require_once "vendor/autoload.php"; // Include Composer autoloader
use PhonePe\payments\v2\standardCheckout\StandardCheckoutClient;
use PhonePe\Env;
$clientId = "YOUR_CLIENT_ID"; // Replace with your Client ID
$clientVersion = CLIENT_VERSION; // Replace with your Client Version
$clientSecret = "YOUR_CLIENT_SECRET"; // Replace with your Client Secret
$env = Env::PRODUCTION;
$client = StandardCheckoutClient::getInstance(
$clientId,
$clientVersion,
$clientSecret,
$env
);
$merchantOrderId = "YOUR_MERCHANT_ORDER_ID"; // Replace with the order ID you want to check
try {
$statusCheckResponse = $client->getOrderStatus($merchantOrderId, true);
// Process the status check response
echo "Order ID: " . $statusCheckResponse->getMerchantId() . "\n";
echo "Transaction ID: " . $statusCheckResponse->getTransactionId() . "\n";
echo "State: " . $statusCheckResponse->getState() . "\n";
echo "Amount: " . $statusCheckResponse->getAmount() . "\n";
// You can access further details from $statusCheckResponse->getPaymentInstrument(), $statusCheckResponse->getPayResponseCode()
} catch (\PhonePe\common\exceptions\PhonePeException $e) {
// Handle exceptions (e.g., log the error)
echo "Error checking order status: " . $e->getMessage();
}
?>Response
The function returns a StatusCheckResponse object with the following properties:
| Property | Data Type | Description |
orderId | String | Order ID generated by PhonePe PG. |
state | String | Current state of the order: Expected values: • PENDING • FAILED • COMPLETED |
expireAt | Number | Expiry time in epoch. |
amount | Long | Order amount in paisa. |
metaInfo | Object | A MetaInfo object containing additional metadata about the order. |
errorCode | String | Error code (only present when the transaction state is FAILED). |
detailedErrorCode | String | Detailed error code (only present when the transaction state is FAILED). |
paymentDetails | List<PaymentDetail> | Contain list of details of each payment attempt made corresponding to this order. |
The paymentDetails property contains a list of payment details for each payment attempt made against an order. The details of each payment are explained in the table below.
| Property | Data Type | Description |
transactionId | String | The transaction ID generated by PhonePe PG. |
paymentMode | String | The payment method used • UPI_INTENT • UPI_COLLECT • UPI_QR • CARD • TOKEN • NET_BANKING |
| timestamp | Long | Timestamp of the attempted transaction in epoch. |
state | String | Attempted transaction state. It can be any one of the following states: • PENDING • COMPLETED • FAILED |
errorCode | String | Error code (only if the transaction failed) |
detailedErrorCode | String | A more detailed error code (only if the transaction failed) |
splitInstruments | list<InstrumentCombo> | Contains split instrument details of all the transactions made. |
splitInstruments provides a list of InstrumentCombo objects. Details of each InstrumentCombo object are explained in the table below.
| Property | Data Type | Type |
| PaymentInstrumentV2 | Instrument used for the payment. |
| PaymentRail | Rail used for the payment. |
| Integer | Amount transferred using the above instrument and rail. |
What’s Next?
You’ve understood how to retrieve the status of an order using the getOrderStatus() function. Now, let’s move on to learn how to process refunds, which allows you to return funds to the customer for eligible transactions.