Use this API to execute recurring payment transactions for customers who have already completed a successful mandate/registration transaction with Net Banking, UPI, or Cards.
API Endpoint
| Environment | URL |
|---|---|
| Production | https://info.payu.in/merchant/postservice?form=2 |
| Test | https://test.payu.in/merchant/postservice?form=2 |
HTTP Method: POST
Request Parameters
| Parameter | Description | Example |
|---|---|---|
keymandatory | String - Merchant Key provided by PayU | JPM7Fg |
commandmandatory | String - API command. Must be si_transaction | si_transaction |
var1mandatory | JSON Object - Transaction details object containing mandatory and optional fields | Refer to var1 Object Fields |
hashmandatory | String - SHA512 hash: sha512(key|command|var1|salt) | 9f5faabedb... |
var1 Object Fields
| Parameter | Description | Example |
|---|---|---|
authpayuidmandatory | String - The mihpayid returned in the payment response of the Registration/Consent transaction when transaction is successfully completed. Map this value against the customer profile. | 6611192557 |
amountmandatory | String - The transaction amount which will be deducted from the customer's payment instrument. | 10.00 |
txnidmandatory | String - Unique Transaction ID (Order ID) generated by the merchant for this recurring transaction. | REC15113506209 |
phoneoptional | String - The phone number of the customer. | 9999999999 |
emailoptional | String - The email address of the customer. | [email protected] |
firstnamemandatory | String - First name of the buyer/customer. | John |
lastnamemandatory | String - Last name of the buyer/customer. | Doe |
address1mandatory | String - Address line 1 of the buyer. | 123 Main Street |
citymandatory | String - City of the buyer. | Mumbai |
statemandatory | String - State of the buyer. | Maharashtra |
countrymandatory | String - Country of the buyer. Allowed values: IN or India only. | IN |
zipcodemandatory | String - ZIP/PIN code of the buyer. Must be a valid 6-digit Indian PIN code. | 400001 |
buyer_type_businessoptional | Integer - Indicates if this is a B2B transaction.Allowed values: • 0 - B2C transaction (default)• 1 - B2B transaction | 1 |
invoiceDisplayNumbermandatory for Cards SI | String - A unique display number by merchant for every subsequent invoice/recurring charge. This is mandatory for Cards SI payment and must be the same value that was passed during the pre_debit_si API call for the same mandate.⚠️ Note: This is different from the invoiceId passed in udf3 or udf5. | 12345678910 |
udf1conditional | String - General Transactions: Buyer's PAN (Permanent Account Number).UPI Mandate/Recurring Transactions: Buyer's PAN and Date of Birth in the following format (separated by two pipe characters): Buyer's PAN||Buyer's DOBDOB format: DD-MM-YYYY | General: ABCDE1234FUPI: ABCDE1234F||15-08-1990 |
udf2optional | String - User defined field for any transactional information. | - |
udf3conditional | String - General Transactions: Buyer's Date of Birth (DOB).UPI Mandate/Recurring Transactions: Invoice ID and Merchant Name in the following format (separated by two pipe characters): InvoiceID||MerchantName⚠️ Note: MerchantName is required for PA2PA integrations only. For non-PA2PA integrations, only InvoiceID is required. | General: 15-08-1990UPI (PA2PA): INV123456||MerchantABCUPI (Non-PA2PA): INV123456 |
udf4conditional | String - PA2PA Integration: Merchant Name or Seller Name.⚠️ Important: For UPI mandate consent and recurring transactions, this field should NOT be passed. | PA2PA: MerchantABC or AshsihUPI Mandate/Recurring: Do not pass |
udf5mandatory | String - Invoice ID for every merchant . This field is mandatory during or after the transaction (using the udf_update API post successful transaction). ⚠️ Important: For UPI mandate consent and recurring transactions, this field should NOT be passed. | INV789012 |
UDF Field Requirements Summary
| Transaction Type | udf1 | udf3 | udf4 | udf5 |
|---|---|---|---|---|
| General (Cards/Net Banking) | Buyer's PAN | Buyer's DOB | MerchantName (PA2PA only) | InvoiceId (mandatory) |
| UPI Mandate/Recurring | PAN||DOB | InvoiceID||MerchantName (MerchantName for PA2PA only) | Do NOT pass | InvoiceId (mandatory) |
| PA2PA Integration | As above based on payment mode | As above based on payment mode | MerchantName | InvoiceId (mandatory) |
Sample Request
curl -X POST "https://test.payu.in/merchant/postservice?form=2" \
-H "accept: application/json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "key=JPM7Fg&command=si_transaction&var1={
\"authpayuid\": \"6611192557\",
\"amount\": \"100.00\",
\"txnid\": \"REC15113506209\",
\"phone\": \"9999999999\",
\"email\": \"[email protected]\",
\"firstname\": \"John\",
\"lastname\": \"Doe\",
\"address1\": \"123 Main Street\",
\"city\": \"Mumbai\",
\"state\": \"Maharashtra\",
\"country\": \"IN\",
\"zipcode\": \"400001\",
\"buyer_type_business\": \"0\",
\"invoiceDisplayNumber\": \"12345678910\",
\"udf1\": \"ABCDE1234F\",
\"udf2\": \"\",
\"udf3\": \"15-08-1990\",
\"udf4\": \"MerchantABC\",
\"udf5\": \"INV789012\"
}&hash=jbUS07Og8BToVZ..."Sample Request for UPI Mandate/Recurring Transaction
curl -X POST "https://test.payu.in/merchant/postservice?form=2" \
-H "accept: application/json" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "key=JPM7Fg&command=si_transaction&var1={
\"authpayuid\": \"6611192557\",
\"amount\": \"100.00\",
\"txnid\": \"REC15113506209\",
\"phone\": \"9999999999\",
\"email\": \"[email protected]\",
\"firstname\": \"John\",
\"lastname\": \"Doe\",
\"address1\": \"123 Main Street\",
\"city\": \"Mumbai\",
\"state\": \"Maharashtra\",
\"country\": \"IN\",
\"zipcode\": \"400001\",
\"buyer_type_business\": \"0\",
\"udf1\": \"ABCDE1234F||15-08-1990\",
\"udf2\": \"\",
\"udf3\": \"INV123456||MerchantABC\"
}&hash=jbUS07Og8BToVZ..."Note: For UPI Mandate/Recurring transactions,
udf4should NOT be passed andinvoiceDisplayNumberis not required (only mandatory for Cards SI).
Sample var1 JSON Objects
General Cards SI Transaction
{
"authpayuid": "6611192557",
"amount": "100.00",
"txnid": "REC15113506209",
"phone": "9999999999",
"email": "[email protected]",
"firstname": "John",
"lastname": "Doe",
"address1": "123 Main Street",
"city": "Mumbai",
"state": "Maharashtra",
"country": "IN",
"zipcode": "400001",
"buyer_type_business": "0",
"invoiceDisplayNumber": "12345678910",
"udf1": "ABCDE1234F",
"udf2": "",
"udf3": "15-08-1990",
"udf4": "",
"udf5": "INV789012"
}UPI Mandate/Recurring Transaction (PA2PA Integration)
{
"authpayuid": "6611192557",
"amount": "100.00",
"txnid": "REC15113506209",
"phone": "9999999999",
"email": "[email protected]",
"firstname": "John",
"lastname": "Doe",
"address1": "123 Main Street",
"city": "Mumbai",
"state": "Maharashtra",
"country": "IN",
"zipcode": "400001",
"buyer_type_business": "0",
"udf1": "ABCDE1234F||15-08-1990",
"udf2": "",
"udf3": "INV123456||MerchantABC"
}B2B Transaction Example
{
"authpayuid": "6611192557",
"amount": "5000.00",
"txnid": "B2B15113506209",
"phone": "9999999999",
"email": "[email protected]",
"firstname": "Company",
"lastname": "Name",
"address1": "Corporate Office, Tower A",
"city": "Bangalore",
"state": "Karnataka",
"country": "IN",
"zipcode": "560001",
"buyer_type_business": "1",
"invoiceDisplayNumber": "12345678910",
"udf1": "AAAAA0000A",
"udf2": "",
"udf3": "",
"udf4": "",
"udf5": "CORPINV001"
}Response Parameters
Success Response
{
"status": 1,
"message": "Transaction Processed successfully",
"details": {
"REC15113506209": {
"transactionid": "REC15113506209",
"amount": "100.00",
"payuid": "6611427463",
"status": "captured",
"field9": "Transaction Completed Successfully",
"phone": "9999999999",
"email": "[email protected]",
"udf1": "ABCDE1234F",
"udf2": "",
"udf3": "15-08-1990",
"udf4": "",
"udf5": "INV789012"
}
}
}Response Parameters Description
| Parameter | Description |
|---|---|
| status | API response status. 1 = success, 0 = failure |
| message | Description of the API response |
| transactionid | The unique transaction ID echoed back from the request |
| amount | The transaction amount echoed back |
| payuid | PayU's transaction ID for the processed recurring transaction. Use this for settlement report reference. |
| status (in details) | Transaction status: captured, pending, failed, or in-progress |
| field9 | Description of the transaction status for customer communication |
Transaction Status Values
| Status | Description |
|---|---|
| captured | Transaction successful. (Net Banking ICICI may return this in real-time) |
| pending | Payment initiated with bank/NPCI. Common for Net Banking (except ICICI) and UPI. Final status will be notified via webhook. |
| failed | Transaction failed |
| in-progress | Transaction is being processed |
Failure Responses
Invalid Hash
{
"status": 0,
"msg": "Invalid Hash."
}Basic Authentication Check Failed
{
"status": 1,
"message": "Transaction Processed successfully",
"details": {
"REC9812123123": {
"authpayuid": "6611192559",
"transactionid": "REC9812123123",
"amount": "1",
"payuid": "",
"status": "failed",
"field9": "Basic authentication check failed"
}
}
}Invalid Country Value
{
"status": 0,
"message": "Invalid country. Only 'IN' or 'India' is allowed."
}Missing Mandatory Buyer Information
{
"status": 0,
"message": "Missing mandatory field: firstname/lastname/address1/city/state/country/zipcode"
}Important Notes
Notes
- Banks do not support refunds for Net Banking Recurring Payment transactions (e-NACH), so you will get an error message "Refund not accepted for txn" or Error 232.
- Always call the Pre-Debit Notification API before calling this API to check mandate status.
- For UPI, "pending" transactions typically get converted to
capturedorfailedwithin 10 minutes. Call the Query API after 10 minutes.- For Net Banking, "pending" transactions may take up to T+2 days to get final status.
