UPI reconciliation for a kirana counter

Bank SMS is noisy. For a shop, UPI reconciliation is: customer pays, customer uploads a screenshot, you confirm. Until you confirm, the due still exists. That pending state is the whole control. A ledger that marks UPI as paid the moment someone says “I sent it” is a paper book with extra steps, and you will argue about a transfer that never landed.

What you actually need at the counter

You need three things: a VPA you can copy, a QR or an Android deep link for the same amount, and a place to park the screenshot. The customer does not need to install your app. They pay, they photograph the success screen, they send it. You open it later, or in the next quiet minute, and you tap confirm or decline. Failed payments stay in history. That is how you stop the loop of “I already paid, check your phone.”

Match the amount, the VPA and the time. A screenshot of ₹500 against a ₹540 due is a part payment. Record ₹500, leave ₹40 open. Do not round it away because you are busy. Do not confirm a screenshot that is for another shop’s UPI. The photo is evidence the money moved. The receipt you issue afterwards is the record that belongs in your book. Put the UPI transaction id in the reference if you have it, so the two documents point at each other.

Desktop payers and pay links

Laptops cannot open upi:// links. Show a QR of the same pay string. The screenshot still comes back to you. A pay link on WhatsApp is the same flow for someone who will not visit: amount, VPA, QR, upload. The public pay page shows business name and amount. It does not show anyone else’s dues.

What this is not

This is not a bank dump, not a NPCI portal, and not a way to reverse a payment. If the money left their account and never arrived, that is a bank complaint with the UTR, not a khata setting. If they paid the wrong VPA, decline the screenshot and keep the due. Reconciliation at shop scale is a photo and a status chip. Everything else is theatre.