Skip to content

UPI

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 Overpay.
  3. Overpay 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. Overpay 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 Overpay.
  3. Overpay 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. Overpay 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.overpay.io/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://api.overpay.io/beyag/transactions/redirect/05482b9d-2ec9-4844-8763-55fc3195c9ef",
      "method": "GET",
      "fields": []
    }
  }
}