← All docs

Docs

UPI payments

Add a UPI ID once, and a scan-to-pay QR starts appearing on your issued invoices automatically.

If your shop is in India, Settings has a UPI ID field on the shop profile: something in the shape shopname@okhdfcbank. Add it once and save.

Where the QR shows up

The QR only appears under a specific, deliberate set of conditions: the invoice has to be issued (not a draft you might still change), still unpaid (it disappears again the moment you mark the invoice as paid), and in INR (a UPI QR doesn’t make sense on a foreign-currency invoice). Meet all three and the invoice detail page shows a “Scan to pay” code with the amount underneath it, right below the totals, both on screen and in the printed version.

Nothing about this is retroactive or automatic in the other direction: if you haven’t set a UPI ID, or the shop isn’t in India, or the invoice is a draft, there’s simply no QR section on the page at all. No blank box, no placeholder.

What the QR actually does

Scanning it opens the customer’s own UPI app with the payment already filled in: your UPI ID as the payee, the invoice total as the amount, and the invoice number as a reference note, so it shows up clearly on both sides once it settles. That’s the entire mechanism. Bench builds the code and displays it; it doesn’t sit in the middle of the payment, doesn’t hold the money, and doesn’t get notified when it’s paid. Marking an invoice “Paid” in Bench is still something you do yourself, once the payment actually lands in your account.

Why it’s gated this tightly

A QR on a draft invoice could be scanned against an amount that’s about to change. A QR on an already-paid invoice would just confuse a customer checking an old receipt. Restricting it to issued, unpaid, INR invoices means the code on the page is always the amount that’s actually still owed, right now, nothing stale.

Something here not match what you are seeing in Bench? WhatsApp us or use the contact form, and we will fix whichever one is wrong.