Help Center
Troubleshooting Medium Restaurant Admin (Owner) · Manager · Cashier Updated September 2026

Duplicate or double payment

The customer seems to have paid twice. How the system prevents it, and the safe path when it happens anyway.

What happened?

A guest was charged more than the bill — typically because a payment was retried while an earlier attempt was still pending.

Why it can happen

  • Staff took a counter payment while an earlier online attempt was still pending — and the pending one later captured too.
  • A guest retried on their phone after a payment that looked failed but was not.
  • Two different people (floor and counter) settled the same table independently.

Built-in protection

RestoQR verifies every payment against the gateway and is idempotent: confirming the same gateway payment twice returns the original result instead of capturing twice, and an order already fully paid has no pending payment left to capture ("No pending payment for this order"). Double-capture through the normal flow is designed to be impossible.

How to fix it, if the guest was still charged twice

  1. Stop taking money for this bill — the bill is settled.
  2. Get both references — the guest's bank app shows each debit with its own reference; note both, plus the times.
  3. Look both up in the Razorpay dashboard — identify which capture matches the bill and which is the extra.
  4. Refund the extra through the gateway. Refunds are an owner/manager action performed against the gateway record — if you cannot see how to issue it from your screens, contact support with both references and it will be handled at the system level. Refunds issued appear in the shift close-out under Refunds.

What NOT to do

Do not

  • Do not "balance it" by giving cash from the drawer without recording it — that is how drawers stop matching at close-out.
  • Do not delete a payment record to tidy the order.
  • Do not refund without both references in hand — refunding the wrong capture turns one problem into two.

How you know it is fixed

One captured payment matches the bill, the extra shows refunded in the gateway, and the close-out's refund line accounts for it.

Still not working?

If the gateway shows a capture you cannot match to any order, contact RestoQR support immediately with both references, the amount and the times — category Payments.