post
https://pay2new.in/apis/upiAtm/v1/generateQr
Recent Requests
Log in to see full request history
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Loading…
Header Request
Accept : application/json
Content-Type: application/json
secret : Unique secret key (Provided by Pay2New)
outletId: Unique OutletID (Provided by Pay2New)
Request Parameters
| Field | Type | Required | Validation / Description |
|---|---|---|---|
| amount | decimal | Yes | Must be greater than 0 and in multiples of 100. |
| latitude | decimal | Yes | Customer/outlet latitude. |
| longitude | decimal | Yes | Customer/outlet longitude. |
| customer_mobile | string | Yes | 10 digit customer mobile number. |
| request_id | string | Yes | Unique request id, minimum 8 characters. |
| product_code | numeric | Yes | Product/operator code configured for UPI ATM. |
| ip | string | Yes | End user IPv4 address. |
Sample request:
curl --location 'https://pay2new.in//apis/upiAtm/v1/generateQr' \
--header 'Content-Type: application/json' \
--header 'secret: YOUR_SECRET' \
--header 'outletId: CUSTOMER_OUTLET_ID' \
--data '{
"amount": "500",
"latitude": "19.0760",
"longitude": "72.8777",
"customer_mobile": "9876543210",
"request_id": "UPIATM123456",
"product_code": "1234",
"ip": "103.10.10.10"
}'
Success response:
{
"status": 1,
"message": "QR Generated Successfully.",
"order_id": "TXN123456789",
"txn_value": "500.00",
"balance": "10000.00",
"request_id": "UPIATM123456",
"qrStatus": "ACTIVE",
"qrString": "upi://pay?pa=merchant@upi&pn=Merchant&am=500&cu=INR",
"qrMobile": "upi://pay?pa=merchant@upi&pn=Merchant&am=500&cu=INR",
"qrCreatedDate": "2026-05-18 14:30:00",
"expiryDt": "2026-05-18 14:35:00",
"displayExpirySec": 30
}
Duplicate request response:
If same request_id, same amount, and same customer_mobile are sent again, existing order details are returned.
{
"status": 1,
"message": "Request already initiated",
"order_id": "TXN123456789",
"txn_value": "500.00",
"balance": "10000.00",
"request_id": "UPIATM123456",
"qrStatus": null,
"qrString": null,
"qrMobile": null,
"qrCreatedDate": null,
"expiryDt": null,
"displayExpirySec": null
}
Duplicate request mismatch response:
{
"status": 2,
"message": "request_id already used for another transaction"
}
Amount validation response:
{
"status": 2,
"message": "Amount must be in multiples of 100"
}
Product/operator not found response:
{
"status": 2,
"message": "No Product Found!"
}
QR generation failed response:
{
"status": 2,
"message": "QR generation failed",
"order_id": "TXN123456789",
"txn_value": "500.00",
"balance": "10000.00",
"request_id": "UPIATM123456",
"qrStatus": null,
"qrString": null,
"qrMobile": null,
"qrCreatedDate": null,
"expiryDt": null,
"displayExpirySec": null
}
Failed validation response:
{
"status": 2,
"message": "Invalid Parameters",
"errors": {
"amount": "The amount field must be greater than 0.",
"customer_mobile": "The customer_mobile field must be exactly 10 characters in length.",
"ip": "The ip field must contain a valid IP."
}
}
Invalid JSON response:
{
"status": 2,
"message": "Invalid Json!"
}
Notes:
- QR generation stores transaction as pending.
- Wallet settlement is expected after final QR status confirmation.
- Latitude and longitude are rounded/truncated to 4 decimal places before sending to provider.
ipis sent to provider as end-user IP.
