A quick retry after a lost response can create two charges if the first attempt succeeded.
Payment failures: safe retry without duplicate orders
Distinguish confirmed failure from unknown or pending status. A timeout does not mean payment failed.
Research context: Baymard · Inline form validation ↗
Show next steps based on confirmed status and retain checkout context. Never create a new order merely on reload.
Try the pattern
Task and expected result
- 01
Choose failure: retain review and contact details.
- 02
Choose pending: request a status check instead of blind retry.
- 03
Choose paid: the confirmation heading must clearly say simulated.
How to investigate value
Measure confirmed, deduplicated outcomes per eligible checkout start. Define paid orders and accepted credit orders separately.
Watch for side effects
Payment errors, duplicate orders, incorrect totals, unclear arrival dates and discount cost. A pay click is only an attempt.
This is a proposed investigation, not a measured result. Choose one hypothesis and define the audience before testing.
Build a measurement plan for this concept ↗