You can split during the transaction by amount, where you must ensure that the sum of all splits is equal to the parent transaction amount.
Note:
You must specify two decimal places for each split, but ensure that the sum of split amounts equals the transaction amount.
HTTP Method: POST
Environment
Test Environment | https://test.payu.in/_payment |
Production Environment | https://secure.payu.in/_payment |
splitRequest parameter to be included with _payment API
Theย _paymentย API consists of the parameters listed in theย Collect Payment API - Merchant Hosted Checkout. In addition, theย splitRequestย parameter is required for splitting the transactions.
JSON Request Structure of splitInfo Field
The sample JSON structure for the splitRequest field:
{
"type":"absolute",
"splitInfo":{
"P****Y":{
"aggregatorSubTxnId":"9a70ea0155268**1001ba",
"aggregatorSubAmt":"50",
"aggregatorCharges":"20"
},
"P***K":{
"aggregatorSubTxnId":"9a70ea0155268**1001bb",
"aggregatorSubAmt":"30"
}
}
}
The following fields are included in theย splitRequest parameter in a JSON format to specify the absolute split details. The fields in the JSON format are described in the following table:
Field | Description | Example |
---|---|---|
type mandatory | string Specify the absolute type of split in this field. The absolute amount is specified in the aggregatorSubAmt field of the JSON for each child or aggregator. | absolute |
splitInfo mandatory | JSON This parameter must include the list of aggregator sub transaction IDs and sub amounts. | { "merchantKey1": { "aggregatorSubTxnId": "30nknyhkhib", "aggregatorSubAmt": "8" }ย |
Hashing request
Added as extra parameter in the calculation of hash in case of providing Split Request at time of payment. This parameter will be at the end of the hash pattern. and required while sending Split Request at time of payment.
You need to generate a string using certain parameters and apply the SHA-512 algorithm to this string. For more information on hashing, refer to Generate Hash.
Note:
Ensure that you use pipe (|) character between these parameters as mentioned in the following code block.
The parameter order is in the following code block:
sha512(key|txnid|amount|productinfo|firstname|email|udf1|udf2|udf3|udf4|udf5||||||SALT|splitRequest)
Where, splitRequest
will be at the end of the hash pattern string.
Example:
hash('sha512', 'Ax4j7J|payment-txnid-1|10|Product Info|Payu-Admin|[email protected]|||||||||||t5atu4TyCvrJDPxAYrmfJfzd90kbXMfL|{"type":"absolute","splitInfo":{"P41sCY":{"aggregatorSubTxnId":"0e7411799c9f0e96620c11","aggregatorSubAmt":"3","aggregatorCharges":"2"},"P41sCK":{"aggregatorSubTxnId":"0e7411799c9f0e96620c22","aggregatorSubAmt":"5"}}}'));
Check the response from PayU
Hash validation logic for payment response (Reverse hashing)
Use the following algorithm for reverse hashing the response from PayU:
sha512(SALT|status|splitInfo||||||udf5|udf4|udf3|udf2|udf1|email|firstname|productinfo|amount|txnid|key)
Sample response
TDR model
The formatted response for the above sample request is similar to the following:
Array
(
[mihpayid] => 4123**678**2383977
[mode] => CC
[status] => success
[unmappedstatus] => captured
[key] => A****J
[txnid] => 9a70ea0155268101001b
[amount] => 100.00
[cardCategory] => domestic
[discount] => 0.00
[net_amount_debit] => 100
[addedon] => 2021-12-22 19:02:15
[productinfo] => Product Info
[firstname] => Payu-Admin
[lastname] =>
[address1] =>
[address2] =>
[city] =>
[state] =>
[country] =>
[zipcode] =>
[email] => [email protected]
[phone] => 1234567890
[udf1] =>
[udf2] =>
[udf3] =>
[udf4] =>
[udf5] =>
[udf6] =>
[udf7] =>
[udf8] =>
[udf9] =>
[udf10] =>
[hash] => 6e700275583072c0361bac771a4166a4be5334112d59e40181c5668895c477a047c7be250068186fd26ca72928d7e168f92bb96003a7fffbf4933bb818f4c48a
[field1] => 558**9955**14671900181
[field2] => 113476
[field3] => 100.00
[field4] => 412*456789***83977
[field5] => 100
[field6] => 02
[field7] => AUTHPOSITIVE
[field8] =>
[field9] => Transaction is Successful
[payment_source] => payu
[PG_TYPE] => AxisCYBER
[bank_ref_num] => 55**299554**4671900181
[bankcode] => CC
[error] => E000
[error_Message] => No Error
[name_on_card] => Test User
[cardnum] => 5**345XXXXXX2346
[cardhash] => This field is no longer supported in postback params.
[splitInfo] => {"splitStatus":"success","splitSegments":[{"merchantKey":"P****Y","amount":50,"subvention_amount":0,"txnId":"9a70ea0155268101001ba"},{"merchantKey":"P****K","amount":30,"subvention_amount":0,"txnId":"9a70ea0155268101001bb"},{"merchantKey":"s****r","amount":20,"subvention_amount":0,"txnId":"9a70ea0155268101001b"}]}
)
Note:
In the response, the amount shown in the amount field includes the amount shown in the subvention_amount field.
Convenience model
The formatted response for the above sample request is similar to the following:
Array
(
[mihpayid] => 412**567**12383977
[mode] => CC
[status] => success
[unmappedstatus] => captured
[key] => A****J
[txnid] => 9a70ea0155268101001b
[amount] => 110.00
[cardCategory] => domestic
[discount] => 0.00
[net_amount_debit] => 110
[addedon] => 2021-12-22 19:02:15
[productinfo] => Product Info
[firstname] => Payu-Admin
[lastname] =>
[address1] =>
[address2] =>
[city] =>
[state] =>
[country] =>
[zipcode] =>
[email] => [email protected]
[phone] => 1234567890
[udf1] =>
[udf2] =>
[udf3] =>
[udf4] =>
[udf5] =>
[udf6] =>
[udf7] =>
[udf8] =>
[udf9] =>
[udf10] =>
[hash] => 6e700275583072c0361bac771a4166a4be5334112d59e40181c5668895c477a047c7be250068186fd26ca72928d7e168f92bb96003a7fffbf4933bb818f4c48a
[field1] => 5582299554914671900181
[field2] => 113476
[field3] => 110.00
[field4] => 4123**67891**83977
[field5] => 110
[field6] => 02
[field7] => AUTHPOSITIVE
[field8] =>
[field9] => Transaction is Successful
[payment_source] => payu
[PG_TYPE] => AxisCYBER
[bank_ref_num] => 55**2995549**6719**181
[bankcode] => CC
[error] => E000
[error_Message] => No Error
[name_on_card] => Test User
[cardnum] => 5**2345XXXXXX2346
[cardhash] => This field is no longer supported in postback params.
[splitInfo] => {"splitStatus":"success","splitSegments":[
{"merchantKey":"P****Y","amount":50,"subvention_amount":0,"txnId":"9a70ea0155268101001ba", โdiscount":0,"additionalCharges":0,โtransaction_fee":0โ},
{"merchantKey":"P****K","amount":30,"subvention_amount":0,"txnId":"9a70ea0155268101001bb", โdiscount":0,"additionalCharges":0,โtransaction_fee":0โ},
{"merchantKey":"s****r","amount":20,"subvention_amount":0,"txnId":"9a70ea0155268101001b", โdiscount":0,"additionalCharges":0,โtransaction_feeโ:10โ}
]}
)