Before you launch or pay for traffic

Payment confirmation page: wait for the result

A buyer who approved a charge in their bank app and came back to a page that says processing wants one answer: did it go through. The page should give that answer only when it is final.

5 visitors try to .
First test free with an accountRun it from your coding agent

What should a payment confirmation page show?

A payment confirmation page should show success only after the payment is confirmed, with the order number and the total the buyer was charged. While the payment is pending, it should say so and offer no second Pay button. A refresh or a return from the bank's approval page should land on the same order, not on a new payment prompt. A simulated test cannot pay, so it stops before this page, but it shows the total and the Pay button the buyer sees first.

What this looks like in a report

Who
Pooja, buying a pair of boots for a trip she leaves on in a week
How they arrived
Searched the shop's name and clicked through to the store
Where they stopped
Confirmation page, after the bank approval screen

“I approved the charge in my banking app and came back, and the page still says processing. Did it take my money twice? I am not pressing Pay again until I know.”

The fix. Read the payment status on the server when the buyer returns, and show Payment received with the order number and total only once that status is final. While it is pending, show Still confirming with a refresh button, and no Pay button.

An illustration. Run a test to see your own.See a real sample report

The buyer comes back from the bank's page to a spinner

Some cards ask the buyer to approve the charge in their bank's app or on a bank page. They leave your site to do it, then return. Your server may still be waiting for the bank's answer when the buyer lands back, so the page has nothing final to show. A spinner that never resolves, a Pay button that reappears or a blank page all read the same to the buyer: the charge may not have happened, and the safe guess is to pay again. A second payment is how a buyer can end up charged twice, and it can start on your confirmation page.

  • Success appears only after the server confirms the payment, not on the redirect alone.
  • A pending payment shows a status line and no Pay button.
  • The order number and total on the page match the receipt email.
  • A refresh shows the same confirmation, and never a second payment prompt.
  • A return from a bank approval page lands on the same order, with the same total.

Success is a server answer, not a redirect

A redirect back from the payment step tells the buyer where they are, not what happened. The page should ask the server for the status of this order, and show success only when the status is final. Wrong: the page shows Thank you for your payment because the visitor arrived there. Right: the page checks the order, sees that the payment is confirmed, then shows the order number and the total. If the check finds the order still pending, the page says so and keeps checking, or invites a refresh. A confirmation that appears before the server agrees will be wrong for some buyers, and they are the ones who pay again.

The buyer who left for the bank and came back

Approval steps send the buyer to a different page, sometimes in a new tab, and the way back is where things get lost. The return address may not carry the order reference, so the confirmation page cannot find what to show. The buyer may have returned to the original tab and found it still on the payment form. Check the return on a phone, because the bank's app may open in front of your page and the browser may reload it. Each path should land on the same order, with the same total. If it lands on a blank form, the buyer is invited to pay again, and that is the fault to fix first.

The amount the buyer sees must equal the amount charged

A confirmation that shows a different total from the one charged is a support request waiting to happen. Tax and shipping are a common gap: the cart shows one number, the confirmation shows another, and the charge matches a third. Check that the total on the confirmation page matches the total at the payment step, and that the receipt email shows the same order number and amount. Currency is the other gap, when a shop shows prices in one currency and charges in another. Name the currency beside every amount, so a buyer comparing the two numbers can see they match.

The part after Pay, which only a real order can reach

A visitor stops before Pay, so nothing on this confirmation page is reached by a simulated test. The owner has to place one real order with a card they own, complete the bank approval step if the card asks for one, then refund the order. Check the confirmation page on a phone and a laptop, reload it, press back and forward, and open the receipt email. Note whether the confirmation shows once, whether the order opens without a login, and whether the total matches. A simulated test can still show the total and the Pay button on the step before, which is where a mismatch often starts.

What you get with Mimiq

  1. 01

    Run it by hand, or on every pull request

    Paste a link and a task in the app and watch the visitors work. Or run them on every preview deploy: the GitHub Action comments on the pull request, any other CI can call the MCP endpoint, and your coding agent can run it too.

  2. 02

    Bugs and usability problems in one report

    The browser records errors and failed or slow requests on the step they happened. The visitors say where the wording or the steps confused them, and where they left.

  3. 03

    Visitors that behave like your audience

    Each visitor is a different profile with a reason to be there, matched to who the page is for, described by you, or built from your own customers.

  4. 04

    A prompt to fix each problem

    Every problem comes with a fix to paste into Cursor, Claude Code, Lovable or any coding agent, and one prompt hands over the top problems at once. Then send the same visitors through again.

  5. 05

    Follow every visitor

    See each visitor's whole path, step by step with screenshots, and what it was thinking at every step. Ask any visitor a question.

The browser records relevant JavaScript errors and failed or slow app requests encountered during the run, attached to the step where they occurred. The visitors are simulated: they find problems, they do not predict how many real people will convert.

A new bank approval step can send buyers back to a blank page

A change to the payment provider, the checkout script or the return address changes what the buyer sees after approval. A confirmation that worked for cards with no extra step can break for a card that needs one. After each change, complete one real order with a card that requires approval, refund it, and check the return. With paid credits, a test account lets visitors reach checkout behind a login, so the steps before payment can be rerun.

Starter

Try it on one launch

$9 once
120 credits, never expire

About 4 tests of 5 visitors

  • Visitors on your landing page, signup and checkout
  • Where they left and why, with a fix to copy for each problem
  • Run it in the app or on every pull request
  • Ask any visitor a question, included
  • Test accounts and protected previews
Buy 120 credits

Builder

Test every build

$19 a month
500 credits every month

About 20 tests of 5 visitors

  • Everything in Starter
  • Credits refill each month, and what is left rolls over once
  • Cancel anytime
Choose Builder

Pro

Test every release, as a team

$49 a month
1,500 credits every month

About 60 tests of 5 visitors

  • Everything in Starter
  • Credits refill each month, and what is left rolls over once
  • Cancel anytime
Choose Pro

Scale

Test at scale, every day

$149 a month
6,000 credits every month

About 240 tests of 5 visitors

  • Everything in Starter
  • Credits refill each month, and what is left rolls over once
  • Priority support
  • Cancel anytime
Choose Scale
$0for your first test, with a free account (Google sign-in, no card). It includes 50 credits, enough for 10 visitors. After that a visitor uses 5 credits, and packs start at $9 for 120 credits.
See a sample report

Questions

Can a simulated visitor see the confirmation page?

No. A visitor never submits a payment, so the test stops at the payment step, and it cannot tell you whether a real bank approves a charge. It cannot show a pending payment, a return from a bank page or a receipt. Use a test order in your store's test mode, plus one real order you refund.

How is a confirmation page different from a thank you page?

A confirmation page reports the result of the payment: the order is paid, with its number and total. A thank you page comes after that and says what happens next, such as the delivery window or account setup. A paid order usually needs both, in that order, and each page should do only its own job.

Should the confirmation page match the receipt email?

Yes, at least on the order number and the total. The page is what the buyer sees first, and the email is the record they keep. If the two disagree, the buyer will trust the email and contact you, so compare them after every change to the total logic.

Does a guest need a login to see the receipt?

They should not need one. A guest who loses the confirmation page should be able to find the order from the receipt email, with a link that opens the order without signing in. The test cannot reach that link after a payment, so open it yourself after a real order.

Keep reading

Send visitors and see what breaks first.

Your first test is free: sign in with Google and it starts right away. Last checked 2026-11-02.

5 visitors try to .