Yes. A screen that looks correct cannot prove that a payment was created only once. A request may reach the payment processor even if its response is lost or delayed, leaving the checkout page unable to show what happened. If a retry starts a separate payment request, you could see a second payment. For shoppers, check the order and transaction records before submitting again; for developers, use server-side idempotency and reconcile uncertain results.
How can a payment happen twice after one click?
After you press Pay, the browser sends a request to the merchant’s server, which may send it to a payment processor. The processor can act on that request while the reply gets delayed or lost. Your page might keep spinning, fail to update, or appear normal even though the payment system has already received the request.
As an Amazon Associate I earn from qualifying purchases.
If you click again, refresh into a new checkout session, or trigger a separate retry, the second request may be treated as a new payment. Adyen explains that separate payment sessions can be processed as distinct requests even when they use the same merchant reference, with separate PSP references (Adyen API idempotency documentation; Adyen Help on duplicate payments).
Recommended Free Tools
Does a second card entry mean you were charged twice?
Not necessarily. Two entries may represent a completed payment and a pending authorization, rather than two completed charges. A pending authorization can later be canceled, but timing depends on the bank and payment provider. Adyen says a pending duplicate may be automatically canceled in about 4–5 working days, depending on how quickly the bank updates it; that is Adyen’s guidance, not a timetable that applies to every issuer or processor (Adyen Help on duplicate payments).
#1 Best Overall
- With Square Terminal, you can ring up sales, accept payments, and print receipts, all with one device. Use it at the counter or ring up customers anywhere in your store.
- Accept all major credit and debit cards and pay one low rate with no hidden fees and no long-term contracts.
- Process chip cards in just two seconds.
- Get your money as soon as the next business day.
- Use it cordlessly with the built-in battery, designed to last all day.
To check what happened, compare the transaction details and timestamps in your banking app with the merchant’s order or payment history. If the order status is unclear, contact the merchant with the relevant transaction details and ask whether both entries were captured or whether one is still pending. Avoid submitting the payment again while the first attempt’s outcome is unknown.
What protects a retry from creating another payment?
Use an idempotency key for the same logical payment
An idempotency key is an identifier attached to a payment request so that a retry can be recognized as another attempt at the same operation, rather than a new purchase. The retry must reuse the original key and the same request parameters. Adyen recommends unique keys such as UUIDs, supports keys on POST requests, and says the key can be up to 64 characters long. It states that keys are valid for 7 to 14 days, are scoped to an account, and are not checked across regional endpoints (Adyen API idempotency documentation).
Rank #2
- Use the, easy-to-use, and customizable POS to get started.
- Accept contactless payments, chip cards, Apple Pay, and Google Pay from anywhere, with improved connectivity, extended battery life, and enhanced security. Pay one low rate for every tap or dip.
- No long-term commitments or contracts, no monthly fees- and with offline payments, keep taking payments for up to 24 hours.
- Safely and securely accepts payments anywhere. Plus, get data security, 24/7 fraud prevention, and payment-dispute management at no extra cost.
- Use the, easy-to-use, and customizable POS to get started.
Stripe likewise saves the first result for an idempotency key and returns that result on subsequent uses. If a later request uses the same key with different parameters, Stripe reports an error rather than silently treating it as the original operation (Stripe API reference on idempotent requests).
Free tools Windows power users keep installed
One-click scans. No signup required.
Keep the payment attempt and order state together
For a payment system, persist the logical payment attempt and its idempotency key before or as the request is sent, then associate the processor’s result with the order. If the response is missing, check the existing attempt or retry it with the same key when the provider supports that behavior. A fresh key can represent a new operation, so creating one just because a response is late can defeat deduplication. This approach follows the providers’ documented key semantics and AWS guidance on making operations with external side effects, such as charging a card, idempotent (Adyen API idempotency documentation; Stripe API reference on idempotent requests; AWS guidance on durable execution and idempotency).
Rank #3
- With Square Handheld, you can accept payments, take tableside orders, or scan barcodes anywhere. With a slim design and comfortable grip, the POS is easy to carry in your palm or pocket. Square Handheld is designed to withstand water splashes and dust. Add an optional protective case for accidental drops. A long-lasting battery and offline payments let you keep selling.
- Slim, pocketable, and lightweight so you can accept payments wherever your customers are.
- Take tableside orders, bust lines, or use the built-in barcode scanner, all with one sleek device.
- A battery that can power through your shift and offline payments let you keep selling, even if your internet is down.
- Accept all major credit and debit cards and pay one simple rate with no hidden fees and no long-term contracts required.
Reconcile outcomes that arrive later
A missing browser response is not the only source of payment status. Adyen recommends asynchronous server-to-server webhooks to track missing responses. Payment systems should treat notifications and background retries as repeatable inputs: record the event or operation identity, make state updates idempotent, and reconcile the order against the processor’s payment record. AWS also advises idempotent handling when retries or replay may run an operation more than once (Adyen API idempotency documentation; AWS Well-Architected guidance on idempotent operations).
Why a success screen, order number, or disabled button isn’t enough
- A screen shows what the client knows. It cannot establish whether a request reached the processor if the response was lost or delayed.
- A matching order number is not necessarily a deduplication control. Adyen says it does not check merchant-reference uniqueness when processing payment requests. A reference can help trace an order, but it does not by itself prevent a second request from creating another payment (Adyen Help on duplicate payments).
- A disabled button only reduces accidental repeat clicks. It cannot resolve a timeout or prevent another checkout session or server retry from submitting a distinct request.
What are the limits of idempotency?
Idempotency does not merge every independently created payment, checkout session, region, or business action into one transaction. It works within the processor’s documented key scope and rules. For example, Adyen’s documented keys are account-scoped, have a 7-to-14-day validity period, and are not checked across regional endpoints (Adyen API idempotency documentation).
Rank #4
- The Clover Compact and Clover Mini /Station sync with each other through the Clover Dashboard and cloud-based network. This allows you to manage transactions, track sales, and access business data across both devices seamlessly. Plug in, not battery/mobile. Requires New Processing account through Powering POS. (US, PR, USVI). CANNOT be used with a different Processor. Rate match guarantee. Contact us for questions
When evaluating a payment API or designing an integration, check the key’s scope and retention period, how concurrent duplicates are handled, what happens if parameters change, how to recover the original result, and whether webhooks or status lookups can resolve a missing response. These behaviors differ by provider; do not assume that the same key works the same way everywhere (Adyen API idempotency documentation; Stripe API reference on idempotent requests).
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Quick Recap
Best Value
- A complete countertop point of sale — Combine dual responsive touchscreens, built-in POS software, and durable hardware for a fast, reliable checkout experience.
- Serve customers faster — Run smoothly through busy shifts, complex menus, and big orders with high-speed processing, memory, and responsive touchscreen displays.
- Accept every way they pay — Take all major cards at one simple rate, with no hidden fees or long-term contracts. Receive funds as soon as the next business day.
- Handle real-world demands — Resist everyday spills, dust, and wear with a durable, IP54-rated design.
- Stay reliable through every rush — Maintain strong connectivity and consistent performance through your busiest hours.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




