Skip to content

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:

object
object
A section of the payment method.
type
required
string
upi
account
required
string
A UPI account.
object
A section of information about your customer.
first_name
required
string
The customer's first name.
last_name
required
string
The customer's last name.
email
required
string
The customer's email address.
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:

object
object
A section of the payout method.
type
required
string
upi
account
required
string
A UPI account.
object
A section of information about the customer.
first_name
required
string
The customer's first name.
last_name
required
string
The customer's last name.
email
required
string
The customer's email address.
address
required
string
The customer's address.
phone
required
string
10 digits of the customer's phone number without the country code.
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

  1. Customer selects UPI as a payment method on the merchant's website and submits their VPA (Virtual Payment Address).
  2. Merchant sends the payment request to MerchantPay.
  3. MerchantPay returns the payment status to the merchant: pending or failed.
  4. Customer receives a payment confirmation request in their UPI application.
  5. Customer confirms the payment in their UPI application.
  6. MerchantPay sends a webhook notification with successful, failed or pending status.
Request

Send a payment request with the following additional parameters:

object
object
A section of the payment method.
type
required
string
upi
account
required
string
The customer's VPA/UPI account ID.
object
A section of the customer's details.
first_name
required
string
The customer's first name.
last_name
required
string
The customer's last name.
state
required
string (2)
The customer's billing state. Set as the 2 last symbols of the code in the ISO 3166-2 format.
city
required
string (100)
The customer's billing city.
zip
required
string
The post code of the customer's billing address.
address
required
string (100)
The customer's address.
phone
required
string (14)
The customer's phone number.
email
required
string
The customer's email address.
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

  1. The customer selects UPI as a payment method on the merchant's website and submits their VPA (Virtual Payment Address).
  2. The merchant sends the payment request to MerchantPay.
  3. 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.
  4. The merchant redirects the customer to one of the links in the response.

  5. The customer completes the payment in the UPI application.
  6. MerchantPay sends a webhook notification with the payment status to the merchant.
Request

Send a payment request with the following additional parameters:

object
return_url
required
string
The URL to which to return the customer once the transaction is completed.
object
type
required
string
upi_qr_deeplink
account
required
string
VPA/UPI ID of the customer.
required
object
A section of information about the customer.
first_name
required
string
The customer's first name.
last_name
required
string
The customer's last name.
state
required
string (2)
The customer's billing state. Set as the 2 last symbols of the code in the ISO 3166-2 format.
city
required
string (100)
The customer's billing city.
zip
required
string (6)
The post code of the customer's billing address.
address
required
string (100)
The customer's address.
phone
required
string (14)
The customer's phone number.
email
required
string
The customer's email address.
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

  1. Customer initiates UPI payment on the merchant's website.
  2. Merchant sends the payment request to MerchantPay
  3. MerchantPay returns a payment link to the merchant.
  4. The merchant redirects the customer to the payment link that opens in the corresponding application on the customer's device.
  5. The customer confirms the payment.
  6. 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:

object
return_url
required
string
The URL to which to return the customer once the transaction is completed.
ip
string
The customer's IP address.
object
type
required
string
upi
account
required
string
The customer's UPI account ID.
required
object
A section of information about the customer.
first_name
required
string
The customer's first name.
email
required
string
The customer's email address.
phone
required
string
The customer's phone number.
country
string (2)
The customer's country in the ISO 3166-1 Alpha-2 format.
city
string (100)
The customer's billing city.
address
string(255)
The customer's billing address.
zip
string
The post code of the customer's billing address.
device_id
string
The customer's device ID.
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"
        }
    }
}