Merchant Hosted Integration

The pre_authorize parameter is used to pre-authorize payments using the Merchant 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 with the Pre-Authorization using the Merchant Hosted Checkout. For complete list of parameters, refer to Pre-Authorize Payment for the complete list parameters with Try It experience.

Environment

Environment

The pre_authorize parameter as specified is used to pre-authorize payments using the Merchant Hosted Checkout integration with the _payment API. For the complete list of parameters and "Try-It" experience for _payment API, refer to Merchant Hosted Integration - Pre-Authorize Payment.

ParameterReference
pre_authorizeThis parameter is set to 1 to pre-authorize payment using PayU Hosted Checkout

Sample request

curl --request POST \
     --url 'https://test.payu.in/_payment?form=2' \
     --header 'Content-Type: application/x-www-form-urlencoded' \
     --header 'accept: text/plain' \
     --data key=JPM7Fg \
     --data pg=CC \
     --data bankcode=CC \
     --data pre_authorize=1 \
     --data surl=https://test-payment-middleware.payu.in/simulatorResponse \
     --data furl=https://test-payment-middleware.payu.in/simulatorResponse \
     --data txnid=ypskjfdaaksdjfh \
     --data amount=10000 \
     --data productinfo=iPhone \
     --data firstname=Ashish \
     --data [email protected] \
     --data phone=9889XXXXXX \
     --data ccnum=512*******012346 \
     --data ccname=Ashish \
     --data ccexpmon=11 \
     --data ccexpyr=2025 \
     --data ccvv=123 \
     --data hash=d99f230c19d781016fa64c57f976d0ec8ff3761fe5d9d6448933cf46d7177db6fb7b370e551e39dd37f2045a2a761f9065f8462838bbaad22963c083c84f9ced

Check the PayU response

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": "403993715531065775",
  "mode": "CC",
  "status": "success",
  "unmappedstatus": "captured",
  "key": "JPM7Fg",
  "txnid": "ypskjfdaaksdjfh",
  "amount": "10000.00",
  "cardCategory": "domestic",
  "discount": "0.00",
  "net_amount_debit": "10000",
  "addedon": "2024-02-26 07:20:56",
  "productinfo": "iPhone",
  "firstname": "Ashish",
  "lastname": "",
  "address1": "",
  "address2": "",
  "city": "",
  "state": "",
  "country": "",
  "zipcode": "",
  "email": "[email protected]",
  "phone": "9889843845",
  "udf1": "",
  "udf2": "",
  "udf3": "",
  "udf4": "",
  "udf5": "",
  "udf6": "",
  "udf7": "",
  "udf8": "",
  "udf9": "",
  "udf10": "",
  "hash": "00f188fdda2d60d418b147e7dce3a6ead172cf760a95a4df09b763f7627c01d867127e022de97841f1fe41cecb420b12b482fd8b68aaf66476b840bdfe82ca3c",
  "field1": "261005309469848160",
  "field2": "724760",
  "field3": "10000.00",
  "field4": "",
  "field5": "00",
  "field6": "02",
  "field7": "AUTHPOSITIVE",
  "field8": "AUTHORIZED",
  "field9": "Transaction is Successful",
  "payment_source": "payu",
  "PG_TYPE": "CC-PG",
  "bank_ref_num": "261005309469848160",
  "bankcode": "CC",
  "error": "E000",
  "error_Message": "No Error",
  "cardnum": "XXXXXXXXXXXX2346",
  "cardhash": "This field is no longer supported in postback params.",
  "splitInfo": "{\"splitStatus\":\"splitNotReceived\",\"splitSegments\":[]}"
}

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

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:

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": "-" 
            } 
        } 
    } 
}