Payonclick Developer Docs
v1

Create UPI Cash QR

POST https://payonclick.in/ext/v1/upicw/qr
Requires upicw Signed request Counts toward your 60 req/min

Mint a QR for the amount the customer wants in cash


Body Params

NameTypeDescription
merchant_ref required string The outlet paying out the cash
client_reference required string Your unique id and the idempotency key. 1–64 characters: letters, digits, hyphen, underscore
amount required int ₹100 – ₹5,000, multiple of ₹100
customer_mobile required string Customer’s 10-digit mobile — the only way to identify them in a dispute
latitude required number Outlet GPS latitude
longitude required number Outlet GPS longitude

Responses

StatusDescription
201 Created Mint a QR for the amount the customer wants in cash — see the example on the right.
422 · QR not created Alternate outcome for the same call — the second Response tab.
4xx / 5xx { "success": false, "error": { "code": "…", "message": "…" } } — every code is listed under Error Codes.
🔏
This call must be signed

POST carries an X-Signature header over POST\n/ext/v1/upicw/qr\n{TIMESTAMP}\n{BODY_SHA256}. The samples on the right compute it for you; the rules are in Request Signing.

📘
Good to know

Show qr.image_base64 as a PNG (data:image/png;base64,…) at the outlet — it is the bank’s own QR, so draw it at full size without smoothing. Re-sending the same client_reference returns the original with duplicate: true (the QR image is not repeated) and never mints a second QR. A 202 with qr: null means the bank network did not answer in time: poll the reference — do not mint another QR for the same customer. At most 3 unpaid QRs per outlet at a time (TOO_MANY_OPEN_QRS); refused during the closed window (SERVICE_CLOSED).