UPI
QP Integration option
This integration option supports the following transaction types:
Payment
Request
Info
Check the supported currencies and countries with your manager.
Send a payment request with the following additional parameters:
|
|||||||||||||||||||||||
Response
The upi response section will have parameters copied from the request. Additionally, you'll get the form parameter to build a form where the customer should be redirected to finalize the payment.
Payout
Request
Send a payout request with the following data:
|
|||||||||||||||||||||||||||
Response
The upi response section will have parameters copied from the request.
PF Integration Option
This integration option supports the payment transaction:
Payment
Payment flow
- Customer selects UPI as a payment method on the merchant's website and submits their VPA (Virtual Payment Address).
- Merchant sends the payment request to MerchantPay.
- MerchantPay returns the payment status to the merchant:
pendingorfailed. - Customer receives a payment confirmation request in their UPI application.
- Customer confirms the payment in their UPI application.
- MerchantPay sends a webhook notification with
successful,failedorpendingstatus.
Request
Send a payment request with the following additional parameters:
|
|||||||||||||||||||||||||||||||||
Request example
{
"request": {
"amount": 10042,
"currency": "INR",
"description": "description",
"test": false,
"customer": {
"first_name": "John",
"last_name": "Doe",
"state": "KA",
"city": "Bangalore",
"zip": "560002",
"address": "1st Street",
"phone": "17777777777",
"email": "user@example.com"
},
"method": {
"type": "upi",
"account": "1234"
}
}
}
Response
The upi response section will have the same parameters as in the request.
PF Integration Option (with QR)
Payment
Payment flow
- The customer selects UPI as a payment method on the merchant's website and submits their VPA (Virtual Payment Address).
- The merchant sends the payment request to MerchantPay.
-
MerchantPay sends a response with 3 links:
- to the QR-code;
- to the deeplink;
- to the page that displays both the QR and the deeplink.
-
The merchant redirects the customer to one of the links in the response.
- The customer completes the payment in the UPI application.
- MerchantPay sends a webhook notification with the payment status to the merchant.
Request
Send a payment request with the following additional parameters:
|
|||||||||||||||||||||||||||||||||||
Request example
{
"request": {
"amount": 20000,
"currency": "INR",
"description": "description",
"duplicate_check": false,
"test": false,
"expired_at": "2026-01-01T15:00:00+01:00",
"tracking_id": "your_uniq_number",
"ip": "127.0.0.1",
"language": "en",
"notification_url": "https://merchant.ltd/notification",
"return_url": "https://merchant.ltd/return",
"customer": {
"first_name": "John",
"last_name": "Doe",
"middle_name": "Mid",
"country": "IN",
"state": "KA",
"city": "Bangalore",
"zip": "560002",
"address": "1st Street",
"phone": "17777777777",
"device_id": "12312312321fff67",
"email": "example@example.com"
},
"method": {
"account": "BE11-EF898-251F-A949",
"type": "upi_qr_deeplink"
}
}
}
Response
Redirect your customer to one of the following URLs:
additional_data.payment_method.qr_code– to display the QR-code;additional_data.payment_method.deeplink– to redirect them to the UPI application;form.action– to redirect them to the HTML page with both QR-code and a link to the UPI application displayed.
Response example
{
"transaction": {
"uid": "05482b9d-2ec9-4844-8763-55fc3195c9ef",
"type": "payment",
"status": "pending",
"amount": 20000,
"currency": "INR",
"description": "description",
"created_at": "2025-07-12T10:07:52Z",
"updated_at": "2025-07-12T10:07:52Z",
"method_type": "upi_qr_deeplink",
"receipt_url": "https://backoffice.universepay.eu/customer/transactions/05482b9d-2ec9-4844-8763-55fc3195c9ef/27b5379b2b6796c4d9ef9f2d850000190fac077da124f4d8b14e370b4a737c27?language=en",
"payment": {
"status": "pending",
"gateway_id": 5374,
"ref_id": "178648809",
"message": "Transaction was initialized"
},
"upi_qr_deeplink": {
"type": "upi_qr_deeplink",
"account": "BE11-EF898-251F-A949"
},
"customer": {
"zip": "560002",
"city": "Bangalore",
"email": "example@example.com",
"phone": "17777777777",
"state": "KA",
"address": "1st Street",
"country": "IN",
"device_id": "12312312321fff67",
"last_name": "Doe",
"first_name": "John",
"middle_name": "Mid",
"ip": "127.0.0.1"
},
"manually_corrected_at": null,
"version": 1,
"message": "Transaction was initialized",
"tracking_id": "your_uniq_number",
"test": false,
"language": "en",
"expired_at": "2026-01-01T14:00:00Z",
"billing_address": {
"zip": "560002",
"city": "Bangalore",
"email": "example@example.com",
"phone": "17777777777",
"state": "KA",
"address": "1st Street",
"country": "IN",
"device_id": "12312312321fff67",
"last_name": "Doe",
"first_name": "John",
"middle_name": "Mid"
},
"additional_data": {
"payment_method": {
"type": "alternative",
"qr_code": "data:image/png;base64,",
"deeplink": "upi:/"
}
},
"gateway": {
"iframe": false
},
"form": {
"action": "https://apm.universepay.eu/beyag/transactions/redirect/05482b9d-2ec9-4844-8763-55fc3195c9ef",
"method": "GET",
"fields": []
}
}
}
PO Integration option
Payment
Payment flow
- Customer initiates UPI payment on the merchant's website.
- Merchant sends the payment request to MerchantPay
- MerchantPay returns a payment link to the merchant.
- The merchant redirects the customer to the payment link that opens in the corresponding application on the customer's device.
- The customer confirms the payment.
- MerchantPay sends a webhook notification to the merchant.
Info
This integration option only supports INR currency.
Warning
The amount parameter value in the webhook notification and in the response to the transaction status query can be different from the value sent in the initial payment request and will equal the actual paid amount according to the provider's system.
Request
Send a payment request with the following additional parameters:
|
|||||||||||||||||||||||||||||||||||||
Request example
{
"request": {
"amount": 5100,
"currency": "INR",
"description": "description",
"test": false,
"tracking_id": "your_uniq_number",
"ip": "127.0.0.1",
"language": "hi",
"notification_url": "https://merchant.ltd/notification",
"return_url": "https://merchant.ltd/return",
"customer": {
"first_name": "John",
"email": "john@example.com",
"phone": "17777777777",
"country": "IN",
"city": "Bangalore",
"zip": "560002",
"address": "1st Street",
"device_id": "12312312321fff67"
},
"method": {
"type": "upi",
"account": "98798654"
}
}
}
Response
Redirect your customer to the URL received as the value of the form.action parameter.
Response example
{
"transaction": {
"uid": "9dd7f79d-998e-4ac5-a0f1-9a77d9675d17",
"type": "payment",
"status": "pending",
"amount": 5100,
"currency": "INR",
"description": "description",
"created_at": "2025-10-31T12:06:05Z",
"updated_at": "2025-10-31T12:06:09Z",
"method_type": "upi",
"receipt_url": "https://backoffice.universepay.eu/customer/transactions/9dd7f79d-998e-4ac5-a0f1-9a77d9675d17/13c43106d9f1bb575e350bcd6570da8a75e24ef7bbedf44f5a447ec8d8557412?language=hi",
"payment": {
"status": "pending",
"gateway_id": 5875,
"ref_id": "2025103106700000011",
"message": "Transaction was initialized."
},
"upi": {
"type": "upi"
},
"customer": {
"zip": "560002",
"city": "Bangalore",
"email": "john@example.com",
"phone": "17777777777",
"address": "1st Street",
"country": "IN",
"device_id": "12312312321fff67",
"first_name": "John",
"ip": "127.0.0.1"
},
"manually_corrected_at": null,
"version": 1,
"message": "Transaction was initialized.",
"tracking_id": "your_uniq_number",
"test": false,
"language": "hi",
"billing_address": {
"zip": "560002",
"city": "Bangalore",
"email": "john@example.com",
"phone": "17777777777",
"address": "1st Street",
"country": "IN",
"device_id": "12312312321fff67",
"first_name": "John"
},
"additional_data": {
"payment_method": {
"type": "alternative"
}
},
"gateway": {
"iframe": false
},
"form": {
"action": "payment-url",
"fields": [],
"method": "GET"
}
}
}