PayU Hosted Integration
The pre_authorize parameter is used to pre-authorize payments using the PayU Hosted Checkout integration with the _payment API.
Note:
You need to activate the Pre-Authorize Payments before you start using this integration. Contact your PayU Key Account Manager (KAM) to activate Pre-Authorize Payments.
Step 1: Post the Pre-Auth transaction request and check response
Post the additional parameters for using the Pre-Auth. For complete list of parameters, refer to Pre-Authorize Payment for the complete list parameters with Try It experience.
Environment
Environment
Test Environment | https://test.payu.in/_payment |
Production Environment | https://secure.payu.in/_payment |
The pre_authorize parameter as specified is used to pre-authorize payments using the PayU Hosted Checkout integration with the _payment API. For the complete list of parameters for _payment API, refer to Collect Payment API - PayU Hosted Checkout.
Parameter | Description | Example |
---|---|---|
pg mandatory | String The pg parameter determines which payment tabs will be displayed on the PayU page. For cards, 'CC' will be the value. | CC |
bankcode mandatory | String Each payment option is identified with a unique bank code at PayU. The merchant must post this parameter with the corresponding payment option’s bank code value in it. | AMEX |
pre_authorize mandatory for Pre-Auth | This parameter is set to 1 to pre-authorize payment using PayU Hosted Checkout. | |
ccnum mandatory | String Use 13-19 digit card number for credit/debit cards (15 digits for AMEX, 13-19 for Maestro) and validate with LUHN algorithm. Refer to Card Number Formats and display error message on invalid input. | 5123456789012346 |
ccname mandatory | String This parameter must contain the name on card – as entered by the customer for the transaction. | Ashish Kumar |
ccvv mandatory | String Use 3-digit CVV number for credit/debit cards and 4-digit security code (4DBC/CID) for AMEX cards. Validate with BIN API. | 123 |
ccexpmon mandatory | String This parameter must contain the card’s expiry month – as entered by the user for the transaction. It must always be in 2 digits or in MM format. For months 1-9, this parameter must be appended with 0 – like 01, 02…09. For months 10-12, this parameter must not be appended – It should be 10,11 and 12 respectively. | 10 |
ccexpyr mandatory | String This parameter must contain the card’s expiry year – as entered by the customer for the transaction. It must be of four digits. | 2021 |
Parameter | Reference |
---|---|
pre_authorize | This parameter is set to 1 to pre-authorize payment using PayU Hosted Checkout. |
Sample request
curl -X POST "https://test.payu.in/_payment
-H "accept: application/json" -H "Content-Type: application/x-www-form-urlencoded" -d
"key=JP***g&txnid=PQI6MqpYrjEefU&amount=10.00
&firstname=PayU User&[email protected]&phone=9876543210
&productinfo=iPhone&pre_authorize=1&pg=cc&bankcode=CC&surl=
https://apiplayground-response.herokuapp.com/
&furl=https://apiplayground-response.herokuapp.com/
&pre_authorize=1&hash=05a397501918ec5c36ae52daa3b3e49b43e986b86940e109d060076e467c3ea7536617df7420e0e6863dced8c5b45f9fff15c13bdf0335512c05f0210b31b072"
Check the PayU response
By default, the response in HTML format. The formatted sample response body is similar to the following, and you need to look for the following parameters:
- PG_TYPE: CC PG
- bankcode: CC
- unamappedstatus: auth
mihpayid: 403993715523615328
mode: CC
status: success
unmappedstatus: auth
key: JPM7Fg
txnid: 50QJq6lBJBmx14
amount: 10.00
cardCategory: domestic
discount: 0.00
net_amount_debit: 10
addedon: 2021-07-28 15:11:37
productinfo: iPhone
firstname: PayU User
lastname:
address1:
address2:
city:
state:
country:
zipcode:
email: [email protected]
phone: 9876543210
udf1:
udf2:
udf3:
udf4:
udf5:
udf6:
udf7:
udf8:
udf9:
udf10:
hash: afeab9dcf4e43d47f8fbf5a6838d393c70694a58e30ada08e6cb86ac943236c05717c5f5e4872d671fe81d0d9b2d9facd44e9a061ba621aff6f20c4343ea5dfa
field1:
field2:
field3:
field4:
field5:
field6:
field7:
field8:
field9: Transaction Completed Successfully
payment_source: payu
PG_TYPE: CC-PG
bank_ref_num: 7f0d5ada-59bb-41d7-9e41-20a6af2406c9
bankcode: CC
error: E000
error_Message: No Error
name_on_card: test
cardnum: 411111XXXXXX1111
cardhash: This field is no longer supported in postback params.
Step 2: Capture a Pre-authorized payment
To capture a pre-authorized payment, use the following command. After the API command is successful, the transaction would be captured and settled to you.
Environment
Environment
Test Environment | https://test.payu.in/merchant/postservice?form=2 |
Production Environment | https://info.payu.in/merchant/postservice?form=2 |
Sample request
curl --location --request POST 'https://info.payu.in/merchant/postservice.php?form=2' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--form 'key="JF***g"' \
--form 'command="capture_transaction"' \
--form 'hash="67411736ab98c59522492a12751a6015c41b87764019f9dc14052690c2c7af9095d31002fc109dcf3596c2f38792d56db6f6207b1989010f2adf51c144fa3019"' \
--form 'var1="15246574846"' \
--form 'var2="authorizeTransaction123"' \
--form 'var3="1"'
Sample response
{
"status": 1,
"msg": "Capture Request Queued",
"request_id": "Request ID",
"bank_ref_num": "Bank Reference Number"
}
Step 3: Check Action Status
- To check the status of the transaction, use the verify_payment API. For more information, refer to Verify Payment API
- To check the status of the Auth Request and then Capture Request sent, use the check_action_status API. For more information, refer to Check Refund Status API with Request ID.
Note:
- The unamappedstatus to auth can be checked using thje Verify Payment API and in callback response in the Transaction callback.
- If you want to cancel or refund a pre-authorized payment, refer to Cancel a Pre-Authorized Payment.
Sample response
Failure scenario
{
"status": 1,
"msg": "1 out of 1 Transactions Fetched Successfully",
"transaction_details": {
"18315176038": {
"12806028149": {
"mihpayid": "18315176038",
"bank_ref_num": "6969235068376733806127",
"request_id": "12806028149",
"amt": "2.00",
"mode": "CC",
"action": "auth",
"token": "",
"status": "SUCCESS", // Auth is successful
"bank_arn": null,
"settlement_id": null,
"amount_settled": null,
"UTR_no": null,
"value_date": null,
"refund_mode": "-"
},
"12806028151": {
"mihpayid": "18315176038",
"bank_ref_num": null,
"request_id": "12806028151",
"amt": "1.00",
"mode": "CC",
"action": "capture",
"token": "Cap_18315176038_01",
"status": "QUEUED", // Capture is in queue statue
"bank_arn": null,
"settlement_id": null,
"amount_settled": null,
"UTR_no": null,
"value_date": null,
"refund_mode": "-"
}
}
}
Success scenario
{
"status": 1,
"msg": "1 out of 1 Transactions Fetched Successfully",
"transaction_details": {
"18283829909": {
"12781896792": {
"mihpayid": "18283829909",
"bank_ref_num": "6966342376826003206121",
"request_id": "12781896792",
"amt": "1031.00",
"mode": "CC",
"action": "auth",
"token": "",
"status": "SUCCESS",
"bank_arn": null,
"settlement_id": null,
"amount_settled": null,
"UTR_no": null,
"value_date": null,
"refund_mode": "-"
},
"12781896793": {
"mihpayid": "18283829909",
"bank_ref_num": "6969233152136917105030",
"request_id": "12781896793",
"amt": "426.00",
"mode": "CC",
"action": "capture",
"token": "PZT2310070446VG2VC01",
"status": "success", // Auth is successful
"bank_arn": null,
"settlement_id": "202310111115",
"amount_settled": "418.7100",
"UTR_no": null,
"value_date": null,
"refund_mode": "-"
},
"12806008126": {
"mihpayid": "18283829909",
"bank_ref_num": null,
"request_id": "12806008126",
"amt": "605.00",
"mode": "CC",
"action": "cancel",
"token": "825816e28afb809be802c7b",
"status": "SUCCESS", // Capture is successful
"bank_arn": null,
"settlement_id": null,
"amount_settled": null,
"UTR_no": null,
"value_date": null,
"refund_mode": "-"
}
}
}
}
Updated 1 day ago