Card declines and gateway timeouts are routine here rather than exceptional. A checkout with one payment path treats a normal event as the end of the transaction.
Designing a checkout around the successful case means designing it for the minority of attempts.
When a gateway times out the customer should be offered another route rather than an error. Failover is part of the checkout rather than a manual fallback.
Retrying an attempt whose outcome is unknown is how a customer gets debited twice. Requests carry an idempotency key so a repeat is recognised rather than re-executed.
A decline reason tells you whether to retry, offer another method or stop. Discarded, every failure looks identical and nothing improves.
An attempt whose result never arrived is neither paid nor failed, and left alone it becomes an order nobody reconciles.
Traffic is overwhelmingly mobile with wide quality variation, so fewer round trips beats fewer kilobytes.
A checkout offering a single gateway converts whatever share of attempts that gateway happens to accept today, and treats the rest as customers who changed their minds.
Page speed barely moves the number here. How many attempts eventually succeed does, and that is a matter of routing and retries.
Payment failure being common rather than exceptional changes the whole shape of a checkout.
| Setting | What we do | Why |
|---|---|---|
| Gateway routing | Failover to an alternate provider on timeout or decline | With declines routine rather than rare, a single payment path converts only the share that one provider happens to accept today. |
| Retry safety | Idempotency keys carried on every attempt | Retrying a request whose outcome is unknown is exactly how a customer is debited twice, and that is worse than the original failure. |
| Decline handling | Reasons recorded and acted on | A decline reason distinguishes retry from offer-another-method from stop, and discarding it makes every failure look the same. |
| Pending resolution | Unresolved attempts reconciled rather than left | An attempt with no returned result is neither paid nor failed, and untouched it becomes an order that never balances. |
| Round trips | Reduced ahead of payload size | Traffic is overwhelmingly mobile with wide network variation, where an extra sequential request costs more than the bytes it carries. |
Every plan includes free migration, daily backups, SSL and 24/7 support.
Move the store across — migration is free, payment routing reviewed.