What you are seeing
The code scans, the payment page opens, but the payment fails: a declined transaction, an error at checkout, or a payment page that never loads the amount. The scan worked, so the fault sits in the payment journey: the amount, the account, the payment method, or the page that collects it. Payment failures lose sales and trust at once, so treat them as urgent. The fix is to trace the payment journey step by step and to find the step that rejects it.
Likely causes
1.
Wrong amount or currency in the payload — A payment code that carries the wrong amount or currency can be rejected by the payment service. Test: decode the payload and compare the amount with the intended charge.
2.
Wrong account or merchant details — A payment code that points at the wrong account, or at an account that is not set up to receive payments, fails at the payment step. Test: confirm the account details with the payment provider record.
3.
Payment page or checkout broken — A checkout page with a script error, a missing field, or a blocked payment method can fail even when the code is correct. Test: walk through the checkout manually without the QR code.
4.
Payment method not supported — A payment method the customer uses may not be supported by the checkout or the account. Test: try a different payment method on the same checkout.
5.
Expired or single-use payment link — A payment link that expired or was already used can fail at the payment step. Test: check the link dates and usage record.
Step-by-step fix
1. Decode the payload and write down the exact payment details it carries.
2. Walk through the checkout manually without the QR code.
3. Compare the amount, the account, and the payment method with the intended setup.
4. Fix the payload, the checkout, or the account, whichever is at fault.
5. Test the payment journey on two devices with a real test payment.
6. Relaunch only when the full journey reaches a confirmation.
Putting this into practice
In practice, the manual checkout test splits this problem in two, just as with coupons. If the checkout fails without the code, the payment setup is at fault. If it works manually but fails from the code, the payload or the QR journey is at fault. That test tells you where to fix. Keep a short note of what you tested, what failed, and what you changed, so the next person starts from evidence rather than guesswork. A fix that is written down survives staff changes and reprints; a fix that lives only in memory gets repeated.
Common mistakes to avoid
- Relaunching a payment QR code after a scan test, without ever completing a test payment.
- Reprinting the full run before a single proof passes, which turns one failure into many.
- Testing on one phone in ideal conditions instead of two phones in the real conditions where a code that scans but the payment fails will be used.
- Changing the artwork and the placement at the same time, so you cannot tell which change fixed a code that scans but the payment fails.- Skipping the proof test because the change looked small, when small changes cause most repeat failures.
Quick checklist
- The decoded payment details match the intended charge
- The checkout works manually without the QR code
- A test payment reaches a confirmation
- The corrected proof passes on two phones in the real conditions
- The fix is recorded in the job file so the next reprint starts from a proven setup
- Every printed copy is checked against the approved proof
- The proof is retested after any later change to the link, design, or placement
Related tools and guides
- [QR expiry checker](/qr-expiry-checker)
- [QR redirect chain viewer](/qr-redirect-chain-viewer)
- [QR batch validator](/qr-batch-validator)
- [QR scan log](/qr-scan-log)
- [QR safety checker](/qr-safety-checker)
- [QR payload inspector](/qr-payload-inspector)