Generate QR

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…

📘

Header Request

Accept : application/json
Content-Type: application/json
secret : Unique secret key (Provided by Pay2New)
outletId: Unique OutletID (Provided by Pay2New)


Request Parameters


FieldTypeRequiredValidation / Description
amountdecimalYesMust be greater than 0 and in multiples of 100.
latitudedecimalYesCustomer/outlet latitude.
longitudedecimalYesCustomer/outlet longitude.
customer_mobilestringYes10 digit customer mobile number.
request_idstringYesUnique request id, minimum 8 characters.
product_codenumericYesProduct/operator code configured for UPI ATM.
ipstringYesEnd 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.
  • ip is sent to provider as end-user IP.
Headers
string
Defaults to (Provided by Pay2New)
string

(Provided by Pay2New)

Responses

Language
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json