Transaction Status Check API
This API is used to check the status of the transaction based on the status of the transaction in PayU system further course of action is determined. If the transaction status is pending in PayU then we hit bank API to get the transaction’s status. Based on the bank response, we mark transaction success, fail, or pending in our system and provide a response.
Endpoints
Environment | URL |
---|---|
Production | https://info.payu.in/merchant/postservice.php |
Request Parameters
Parameter | Description | Sample Value |
---|---|---|
keymandatory | string This parameter must include the Merchant key that was provided by PayU.Reference: For more information on how to generate the Key and Salt, refer to any of the following: Production : Generate Production Merchant Key and Sat.Test : Generate Test Merchant Key and Salt. | Your Test Key |
commandmandatory | string The parameter must contain the name of the web service. | check_bqr_txn_status |
hashmandatory | string This parameter must contain the hash value to be calculated at your end. The string used for calculating the hash is mentioned below:sha512(key|command|var1|salt) sha512 is the encryption method used here. | ajh84babvav |
var1.transactionIdmandatory | string (alphanumeric) This parameter will include the transaction Identifier of the transaction for which the status is being checked. | 1234abcd |
var2.paymentmodeoptional | string This parameter will include any of the following values to specify the mode of transaction:CARD: Debit/Credit Card UPI: UPI | CARD |
var3.productypeoptional | string This parameter will include any of the following values to specify the product type:‘’ or ‘’. DBQR: DBQR ISBQR: ISBQR | DBQR |
Sample Request
curl --location --request POST 'https://info.payu.in/merchant/postservice.php' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'key=vDy3i7' \
--data-urlencode 'command=check_bqr_txn_status' \
--data-urlencode 'hash=8bb33d0ed43485019eab261cc5f73838149e3bbc1d253e63ca829ff05975c173ec9f308bafe022605aa7fce31821ea3b18df3752accd8a7f50658a96552a0860' \
--data-urlencode 'var1=980' \
--data-urlencode 'var2=UPI' \
--data-urlencode 'var3=Optional'
import http.client
conn = http.client.HTTPSConnection("info.payu.in")
payload = 'key=vDy3i7&command=check_bqr_txn_status&hash=8bb33d0ed43485019eab261cc5f73838149e3bbc1d253e63ca829ff05975c173ec9f308bafe022605aa7fce31821ea3b18df3752accd8a7f50658a96552a0860&var1=980&var2=UPI&var3=Optional'
headers = {
'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/merchant/postservice.php", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://info.payu.in/merchant/postservice.php');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'Content-Type' => 'application/x-www-form-urlencoded'
));
$request->addPostParameter(array(
'key' => 'vDy3i7',
'command' => 'check_bqr_txn_status',
'hash' => '8bb33d0ed43485019eab261cc5f73838149e3bbc1d253e63ca829ff05975c173ec9f308bafe022605aa7fce31821ea3b18df3752accd8a7f50658a96552a0860',
'var1' => '980',
'var2' => 'UPI',
'var3' => 'Optional'
));
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "key=vDy3i7&command=check_bqr_txn_status&hash=8bb33d0ed43485019eab261cc5f73838149e3bbc1d253e63ca829ff05975c173ec9f308bafe022605aa7fce31821ea3b18df3752accd8a7f50658a96552a0860&var1=980&var2=UPI&var3=Optional");
Request request = new Request.Builder()
.url("https://info.payu.in/merchant/postservice.php")
.method("POST", body)
.addHeader("Content-Type", "application/x-www-form-urlencoded")
.build();
Response response = client.newCall(request).execute();
Response Parameters
Parameter | Description |
---|---|
status | This parameter returns the status of web service call. The status can be any of the following: 0 - If web service call failed. 1 - If web service call succeeded |
msg | This parameter returns the following message if the SMS was sent successfully:sms request successful |
Sample Response
{
"status": 1,
"msg": "Transaction has been Completed.",
"result": "eyJtaWhwYXlpZCI6NDAzOTkzNzE1NTExODQxNjcwLCJtb2RlIjoiREJRUiIsInN0YXR1cyI6InN1Y2Nlc3MiLCJrZXkiOiJ2RHkzaTciLCJ0eG5pZCI6Ijk4MCIsImFtb3VudCI6IjEuMDAiLCJhZGRlZG9uIjoiMjAxOS0wNS0yMyAxODoyMzozMiIsInByb2R1Y3RpbmZvIjoiT2ZmbGluZSBEeW5hbWljIFFSIiwiZmlyc3RuYW1lIjoicm9uYWxkbyIsImxhc3RuYW1lIjoiIiwiYWRkcmVzczEiOiJiZXN0ZWNoIGJ1c2luZXNzIHRvd2VyICBzb2huYSByb2FkICBzZWN0b3IgNDggIGd1cmdhb24gMTIyMDAxIiwiYWRkcmVzczIiOiIiLCJjaXR5IjoiaHlkZXJhYmFkIiwic3RhdGUiOiIiLCJjb3VudHJ5IjoiIiwiemlwY29kZSI6IjUwMDA3MiIsImVtYWlsIjoibW52c2s5N0BnbWFpbC5jb20iLCJwaG9uZSI6IjcwNjAzMzQ1MDEiLCJ1ZGYxIjoiMTgwIiwidWRmMiI6IiIsInVkZjMiOiIiLCJ1ZGY0IjoiIiwidWRmNSI6IiIsInVkZjYiOiIiLCJ1ZGY3IjoiIiwidWRmOCI6IiIsInVkZjkiOiIiLCJ1ZGYxMCI6IiIsImNhcmRfdG9rZW4iOiIiLCJjYXJkX25vIjoiIiwiZmllbGQwIjoiRFlROTgwMTM2MjI3NiIsImZpZWxkMSI6IiIsImZpZWxkMiI6IjUyOTgzNzQ2NDAiLCJmaWVsZDMiOiI3ODI3MDU3NjA0QHlibCIsImZpZWxkNCI6IiIsImZpZWxkNSI6InllbGxvd3FyLnBheXV0ZXN0ZHluYW1pY3FyQGhkZmNiYW5rIXBheXV0ZXN0ZHluYW1pY3FyIU5BIiwiZmllbGQ2IjoiS290YWsgTWFoaW5kcmEgQmFuayE5MTEyMTI0MTg1IUtLQkswMDAwMjU1ITkxNzgyNzA1NzYwNCIsImZpZWxkNyI6IlRyYW5zYWN0aW9uIHN1Y2Nlc3MiLCJmaWVsZDgiOiIiLCJmaWVsZDkiOiJTVUNDRVNTfENvbXBsZXRlZCBVc2luZyBDYWxsYmFjayIsInBheW1lbnRfc291cmNlIjoicGF5dSIsIlBHX1RZUEUiOiJCUVIiLCJlcnJvciI6IkUwMDAiLCJlcnJvcl9NZXNzYWdlIjoiTm8gRXJyb3IiLCJuZXRfYW1vdW50X2RlYml0IjoxLCJ1bm1hcHBlZHN0YXR1cyI6ImNhcHR1cmVkIiwiaGFzaCI6ImQzMGQ0MzY2MWFkYjQ0NGMxNDgyYzkzODMwZTA5OGJmZTY1ZTVjZjgzOWEwMWRiMTlhZDU2MzYxZjM5M2FkZDdhODUyNTZlNDM4M2E2MDZjY2M4MTM0OTZkZTAwN2M1N2QyZGNkYTlkMjI5ZTBlNTk4MjE1MDkwNDdmZTJhNjM2IiwiYmFua19yZWZfbm8iOiI5MTM3Mzk5NTMyMTYiLCJiYW5rX3JlZl9udW0iOiI5MTM3Mzk5NTMyMTYiLCJiYW5rY29kZSI6IlVQSUJRUiIsInN1cmwiOiJodHRwOlwvXC8xMC41MC4yMy4zNSIsImN1cmwiOiJodHRwOlwvXC8xMC41MC4yMy4zNSIsImZ1cmwiOiJodHRwOlwvXC8xMC41MC4yMy4zNSJ9"
}
{
"status": 1,
"msg": "Transaction is Pending",
"result": "eyJtaWhwYXlpZCI6NDAzOTkzNzE1NTExODQxNjcwLCJtb2RlIjoiREJRUiIsInN0YXR1cyI6InBlbmRpbmciLCJrZXkiOiJ2RHkzaTciLCJ0eG5pZCI6Ijk4MCIsImFtb3VudCI6IjEuMDAiLCJhZGRlZG9uIjoiMjAxOS0wNS0yMyAxODoyMzozMiIsInByb2R1Y3RpbmZvIjoiT2ZmbGluZSBEeW5hbWljIFFSIiwiZmlyc3RuYW1lIjoicm9uYWxkbyIsImxhc3RuYW1lIjoiIiwiYWRkcmVzczEiOiJiZXN0ZWNoIGJ1c2luZXNzIHRvd2VyICBzb2huYSByb2FkICBzZWN0b3IgNDggIGd1cmdhb24gMTIyMDAxIiwiYWRkcmVzczIiOiIiLCJjaXR5IjoiaHlkZXJhYmFkIiwic3RhdGUiOiIiLCJjb3VudHJ5IjoiIiwiemlwY29kZSI6IjUwMDA3MiIsImVtYWlsIjoibW52c2s5N0BnbWFpbC5jb20iLCJwaG9uZSI6IjcwNjAzMzQ1MDEiLCJ1ZGYxIjoiMTgwIiwidWRmMiI6IiIsInVkZjMiOiIiLCJ1ZGY0IjoiIiwidWRmNSI6IiIsInVkZjYiOiIiLCJ1ZGY3IjoiIiwidWRmOCI6IiIsInVkZjkiOiIiLCJ1ZGYxMCI6IiIsImNhcmRfdG9rZW4iOiIiLCJjYXJkX25vIjoiIiwiZmllbGQwIjoiRFlROTgwMTM2MjI3NiIsImZpZWxkMSI6IiIsImZpZWxkMiI6IjUyOTgzNzQ2NDAiLCJmaWVsZDMiOiI3ODI3MDU3NjA0QHlibCIsImZpZWxkNCI6IiIsImZpZWxkNSI6InllbGxvd3FyLnBheXV0ZXN0ZHluYW1pY3FyQGhkZmNiYW5rIXBheXV0ZXN0ZHluYW1pY3FyIU5BIiwiZmllbGQ2IjoiS290YWsgTWFoaW5kcmEgQmFuayE5MTEyMTI0MTg1IUtLQkswMDAwMjU1ITkxNzgyNzA1NzYwNCIsImZpZWxkNyI6IlRyYW5zYWN0aW9uIHN1Y2Nlc3MiLCJmaWVsZDgiOiIiLCJmaWVsZDkiOiJBbW91bnQgb3IgdHJhbnNhY3Rpb24gZG9lc250IG1hdGNofENvbXBsZXRlZCBVc2luZyBDYWxsYmFjayIsInBheW1lbnRfc291cmNlIjoicGF5dSIsIlBHX1RZUEUiOiJCUVIiLCJlcnJvciI6IkUyMjAiLCJlcnJvcl9NZXNzYWdlIjoiQW1vdW50IG9yIHRyYW5zYWN0aW9uIGRvZXNudCBtYXRjaCIsIm5ldF9hbW91bnRfZGViaXQiOjAsInVubWFwcGVkc3RhdHVzIjoiaW4gcHJvZ3Jlc3MiLCJoYXNoIjoiY2YyMjUwNTNhYWZkMDJiYjE0ZWVlMTFhZTQxMWM4NTgzODQyMzdmMjg4MjE4MzE0ZDkzM2UyNzVkOWM3ODUzMDA0M2FjMjFjMTQ0MTU0N2VmYzdkYWM3NjM1N2ZkYzI5NWFkYjA3YWMxZWE2Yzk2YTk1ZDFiNmQ5OWYxNWM3MDQiLCJiYW5rX3JlZl9ubyI6IjkxMzczOTk1MzIxNiIsImJhbmtfcmVmX251bSI6IjkxMzczOTk1MzIxNiIsImJhbmtjb2RlIjoiVVBJQlFSIiwic3VybCI6Imh0dHA6XC9cLzEwLjUwLjIzLjM1IiwiY3VybCI6Imh0dHA6XC9cLzEwLjUwLjIzLjM1IiwiZnVybCI6Imh0dHA6XC9cLzEwLjUwLjIzLjM1In0="
{
"status": 1,
"msg": "Transaction is Failed",
"result": "eyJtaWhwYXlpZCI6NDAzOTkzNzE1NTExODQxNjcwLCJtb2RlIjoiREJRUiIsInN0YXR1cyI6ImZhaWx1cmUiLCJrZXkiOiJ2RHkzaTciLCJ0eG5pZCI6Ijk4MCIsImFtb3VudCI6IjEwLjAwIiwiYWRkZWRvbiI6IjIwMTktMDUtMjMgMTg6MjM6MzIiLCJwcm9kdWN0aW5mbyI6Ik9mZmxpbmUgRHluYW1pYyBRUiIsImZpcnN0bmFtZSI6InJvbmFsZG8iLCJsYXN0bmFtZSI6IiIsImFkZHJlc3MxIjoiYmVzdGVjaCBidXNpbmVzcyB0b3dlciAgc29obmEgcm9hZCAgc2VjdG9yIDQ4ICBndXJnYW9uIDEyMjAwMSIsImFkZHJlc3MyIjoiIiwiY2l0eSI6Imh5ZGVyYWJhZCIsInN0YXRlIjoiIiwiY291bnRyeSI6IiIsInppcGNvZGUiOiI1MDAwNzIiLCJlbWFpbCI6Im1udnNrOTdAZ21haWwuY29tIiwicGhvbmUiOiI3MDYwMzM0NTAxIiwidWRmMSI6IjE4MCIsInVkZjIiOiIiLCJ1ZGYzIjoiIiwidWRmNCI6IiIsInVkZjUiOiIiLCJ1ZGY2IjoiIiwidWRmNyI6IiIsInVkZjgiOiIiLCJ1ZGY5IjoiIiwidWRmMTAiOiIiLCJjYXJkX3Rva2VuIjoiIiwiY2FyZF9ubyI6IiIsImZpZWxkMCI6IkRZUTk4MDEzNjIyNzYiLCJmaWVsZDEiOiIiLCJmaWVsZDIiOiI1Mjk4Mzc0NjQwIiwiZmllbGQzIjoiNzgyNzA1NzYwNEB5YmwiLCJmaWVsZDQiOiIiLCJmaWVsZDUiOiJ5ZWxsb3dxci5wYXl1dGVzdGR5bmFtaWNxckBoZGZjYmFuayFwYXl1dGVzdGR5bmFtaWNxciFOQSIsImZpZWxkNiI6IktvdGFrIE1haGluZHJhIEJhbmshOTExMjEyNDE4NSFLS0JLMDAwMDI1NSE5MTc4MjcwNTc2MDQiLCJmaWVsZDciOiJUcmFuc2FjdGlvbiBzdWNjZXNzIiwiZmllbGQ4IjoiIiwiZmllbGQ5IjoiQW1vdW50IG9yIHRyYW5zYWN0aW9uIGRvZXNudCBtYXRjaCIsInBheW1lbnRfc291cmNlIjoicGF5dSIsIlBHX1RZUEUiOiJCUVIiLCJlcnJvciI6IkUyMjAiLCJlcnJvcl9NZXNzYWdlIjoiQW1vdW50IG9yIHRyYW5zYWN0aW9uIGRvZXNudCBtYXRjaCIsIm5ldF9hbW91bnRfZGViaXQiOjAsInVubWFwcGVkc3RhdHVzIjoiZmFpbGVkIiwiaGFzaCI6ImQ0OTc5MDdmZjFlZjY5ODg2NTlkZWUzMDA2M2UyMWVlZWVhYTNlOTJlZTZiMWM0MzdmMmU2ZDhjODZhNzliZDJjYTg4Njk5ODgxOTIwOWRmNWZlMzA3YjdlMjJmNjFiNDc1ODE2ZWExYmNlN2U3ZDBjNGZkYmJhNDZjMDZlZTg0IiwiYmFua19yZWZfbm8iOiI5MTM3Mzk5NTMyMTYiLCJiYW5rX3JlZl9udW0iOiI5MTM3Mzk5NTMyMTYiLCJiYW5rY29kZSI6IlVQSUJRUiIsInN1cmwiOiJodHRwOlwvXC8xMC41MC4yMy4zNSIsImN1cmwiOiJodHRwOlwvXC8xMC41MC4yMy4zNSIsImZ1cmwiOiJodHRwOlwvXC8xMC41MC4yMy4zNSJ9"
{
"status": 1,
"msg": "Transaction is Successful",
"result": "eyJtaWhwYXlpZCI6NDAzOTkzNzE1NTExODQxNjcwLCJtb2RlIjoiREJRUiIsInN0YXR1cyI6InN1Y2Nlc3MiLCJrZXkiOiJ2RHkzaTciLCJ0eG5pZCI6Ijk4MCIsImFtb3VudCI6IjEuMDAiLCJhZGRlZG9uIjoiMjAxOS0wNS0yMyAxODoyMzozMiIsInByb2R1Y3RpbmZvIjoiT2ZmbGluZSBEeW5hbWljIFFSIiwiZmlyc3RuYW1lIjoicm9uYWxkbyIsImxhc3RuYW1lIjoiIiwiYWRkcmVzczEiOiJiZXN0ZWNoIGJ1c2luZXNzIHRvd2VyICBzb2huYSByb2FkICBzZWN0b3IgNDggIGd1cmdhb24gMTIyMDAxIiwiYWRkcmVzczIiOiIiLCJjaXR5IjoiaHlkZXJhYmFkIiwic3RhdGUiOiIiLCJjb3VudHJ5IjoiIiwiemlwY29kZSI6IjUwMDA3MiIsImVtYWlsIjoibW52c2s5N0BnbWFpbC5jb20iLCJwaG9uZSI6IjcwNjAzMzQ1MDEiLCJ1ZGYxIjoiMTgwIiwidWRmMiI6IiIsInVkZjMiOiIiLCJ1ZGY0IjoiIiwidWRmNSI6IiIsInVkZjYiOiIiLCJ1ZGY3IjoiIiwidWRmOCI6IiIsInVkZjkiOiIiLCJ1ZGYxMCI6IiIsImNhcmRfdG9rZW4iOiIiLCJjYXJkX25vIjoiIiwiZmllbGQwIjoiRFlROTgwMTM2MjI3NiIsImZpZWxkMSI6IiIsImZpZWxkMiI6IjUyOTgzNzQ2NDAiLCJmaWVsZDMiOiI3ODI3MDU3NjA0QHlibCIsImZpZWxkNCI6IiIsImZpZWxkNSI6InllbGxvd3FyLnBheXV0ZXN0ZHluYW1pY3FyQGhkZmNiYW5rIXBheXV0ZXN0ZHluYW1pY3FyIU5BIiwiZmllbGQ2IjoiS290YWsgTWFoaW5kcmEgQmFuayE5MTEyMTI0MTg1IUtLQkswMDAwMjU1ITkxNzgyNzA1NzYwNCIsImZpZWxkNyI6IlRyYW5zYWN0aW9uIHN1Y2Nlc3MiLCJmaWVsZDgiOiIiLCJmaWVsZDkiOiJjYXB0dXJlZCB1c2luZyBWZXJpZnkgQXBpIiwicGF5bWVudF9zb3VyY2UiOiJwYXl1IiwiUEdfVFlQRSI6IkJRUiIsImVycm9yIjoiRTAwMCIsImVycm9yX01lc3NhZ2UiOiJObyBFcnJvciIsIm5ldF9hbW91bnRfZGViaXQiOjEsInVubWFwcGVkc3RhdHVzIjoiY2FwdHVyZWQiLCJoYXNoIjoiZDMwZDQzNjYxYWRiNDQ0YzE0ODJjOTM4MzBlMDk4YmZlNjVlNWNmODM5YTAxZGIxOWFkNTYzNjFmMzkzYWRkN2E4NTI1NmU0MzgzYTYwNmNjYzgxMzQ5NmRlMDA3YzU3ZDJkY2RhOWQyMjllMGU1OTgyMTUwOTA0N2ZlMmE2MzYiLCJiYW5rX3JlZl9ubyI6IjkxMzczOTk1MzIxNiIsImJhbmtfcmVmX251bSI6IjkxMzczOTk1MzIxNiIsImJhbmtjb2RlIjoiVVBJQlFSIiwic3VybCI6Imh0dHA6XC9cLzEwLjUwLjIzLjM1IiwiY3VybCI6Imh0dHA6XC9cLzEwLjUwLjIzLjM1IiwiZnVybCI6Imh0dHA6XC9cLzEwLjUwLjIzLjM1In0="
}
Error codes for failed response
For every failed request, a JSON response is sent with key as status, message, and error code.
Status | Message | Error Code | Description |
---|---|---|---|
"if it is invalid, an HTML page is shown with a message : 'Sorry, Some Problem Occurred" | Command name is empty | ||
"if it is invalid, an HTML page is shown with a message : 'Sorry, Some Problem Occurred" | Merchant key is empty | ||
"if it is invalid, an HTML page is shown with a message : 'Sorry, Some Problem Occurred" | Hash is empty | ||
failed | transactionId is empty | E2029 | transaction ID is mandatory |
failed | transaction should be either UPI or Card | E2026 | |
failed | Invalid product type | E2027 |
Updated 3 months ago