When a transaction is completed via the PG Load API, the result is communicated back to the merchant through a callback mechanism. The response parameters are sent to the surl (success URL) or furl (failure URL) that was provided in the original PG Load API request.
Callback Flow
- Merchant initiates the load request using the PG Load API with mandatory fields like
clientTxnId,surl, andfurl - Customer completes the payment on the payment gateway page
- Upon completion:
- PayU redirects the customer to the
surlin case of success - If the transaction fails, the customer is redirected to the
furl
- PayU redirects the customer to the
- Callback parameters are sent to these URLs for final status tracking and reconciliation
Callback parameters
Parameter | Description | Example |
|---|---|---|
merchantCode
|
| 180012 |
accosaTransactionId
|
| 3591893 |
responseCode
|
| 00 |
responseMessage
|
| SUCCESS |
clientTxnId
|
| 56894 |
txnAmount
|
| 4100 |
loadAmount
|
| 4100 |
accosaRefNo
|
| 424 |
status
|
| SUCCESS |
checksum
|
| 900a98e04b4abc61 0bd0cb5623a470a4b0 d821d85551ae3baa410 11536cfe6b9 |
Sample callback response
When the transaction is completed, PayU sends the following parameters to your success or failure URL:
status=SUCCESS&AccosaRefNo=12321234&accosaTransactionId=1487&responseCode=00&responseMessage=Success&merchantCode=Vb007&clientTxnId=2023LOAD10000000003&txnAmount=1000&checksum=900a98e04b4abc610bd0cb5623a470a4b0d821d85551ae3baa41011536cfe6b9&loadAmount=4100
Checksum verification
To ensure the integrity of the callback data, a checksum is included in the callback parameters. The merchant should validate this checksum to confirm the authenticity of the response.
Checksum logic: The checksum is calculated using the same algorithm and salt as used in the request hash calculation. You have to implement the following checksum logic:
ChecksumString: merchantCode|clientTxnId|loadAmount|accosaRefNo|accosaTransactionId|responseCode|responseMessage|merchantSalt Checksum: sha512(ChecksumString)
Success and Failure Handling
Success scenario
When a transaction is successful:
- The customer is redirected to the
surlprovided in the original request - The
responseCodewill be "00" - The
statuswill be "SUCCESS" - The wallet will be credited with the amount specified in
loadAmount
Failure scenario
When a transaction fails:
- The customer is redirected to the
furlprovided in the original request - The
responseCodewill not be "00" - The
statuswill be "FAILED" - An appropriate error message will be included in the
responseMessageparameter
HTTP Status Codes
| HTTP Status Code | Status Description |
|---|---|
| 200 | OK |
| 201 | Created |
| 404 | Not Found |
| 500 | Internal Server Error |
| 403 | Forbidden |
| 400 | Bad Request |
| 401 | Unauthorized |
| 503 | Service Unavailable |
API Response Codes
| Error Code | Description |
|---|---|
| 00 | SUCCESS |
| 1009 | CARD_CANCELLED_CLOSED_EXPIRED |
| 1010 | CARD_TEMPORARY_BLOCK |
| 1012 | CARD_PENDING_CANCELLATION |
| 1013 | AML MIN LIMIT |
| 1030 | INVALID_MESSAGE |
| 1045 | UNABLE_TO_PROCESS_REQUEST |
| 1054 | DUPLICATE REQUEST |
| 1056 | INVALID MESSAGE CODE |
| 1058 | INVALID_WALLETS |
| 1088 | INVALID REQUEST DATE format |
| 1093 | INVALID CLIENT TXN ID |
| 1101 | UNKNOWN_SOURCE_ACCOUNT_TYPE |
| 1121 | CARD_CREDIT_DEBIT_BLOCK |
| 1135 | REFUND_AMOUNT_GREATER_THAN_ORIGINAL_TXN_AMOUNT |
| 1138 | CURRENCY NOT MATCHING WITH CARD CURRENCY |
| 1246 | ORIGINAL_TXN_NOT_EXIST |
| 1247 | SOURCE_ACC_TYPE_NOT_MACHED_WITH_IMPL |
| 1303 | CUSTOMER DETAILS NOT PRESENT |
| 1304 | MORE THAN ONE CUSTOMER IDENTIFIER NOT ALLOWED |
| 1322 | TRANSACTION AMOUNT CANNOT BE ZERO |
| 1325 | FUND FLOW TYPE MISMATCH |
| 1326 | IMPL ID MISMATCH |
| 1357 | WALLET DETAILS NOT FOUND |
| 1353 | COOLING OFF PERIOD BETWEEN TWO LOADS NOT COMPLETED |
| 1354 | CORPORATE_LEVEL_LIMIT_EXCEEDED |
| 1359 | INVALID LOAD AMOUNT |
| 1366 | PROGRAM IS INACTIVE |
| 1367 | PROGRAM NOT FOUND |
| 1368 | WALLET OR ACCOUNTNO SHOULD BE PRESENT |
| 1398 | ACCOUNTNO SHOULD BE PRESENT |
| 1501 | SYSTEM_ERROR_DB |
| 1504 | SYSTEM_CACHE_FAILURE |
| 6000 | ACCOUNT DORMANT |
| 6002 | ACCOUNT PERMANENTLY BLOCKED OR CLOSED |
| 6014 | ACCOUNT IN TEMPORARILY BLOCKED STATE |
| 6016 | ACCOUNT IN CREDIT BLOCKED STATE |
| 6017 | ACCOUNT ALREADY IN CREDIT_DEBIT BLOCKED STATE |
| 10153 | AMOUNT IS NOT WITHIN MIN-MAX RANGE |
| 10163 | PROGRAM DAILY LIMIT EXCEEDED |
| 1392 | FUND FLOW TYPE NOT PRESENT IN THE REQUEST |
| 6909 | SENDER CUSTOMER NOT FOUND |
| 10044 | SENDER INFO INVALID LENGTH |
| 1319 | SOURCE_ACCOUNT_INVALID_LENGTH |
| 1103 | INVALID_TRANSACTION_AMOUNT |
