What breaks
Payment page error: find which rule rejects it
A red line appears on the payment page, and the shopper cannot tell whether the fault is their card or your settings. This page shows how to read the error, and which part a simulated visitor can reach.
Why does my payment page show an error?
The payment page shows an error when the provider refuses something before the payment goes through, such as a postal code its rules reject, an amount that no longer matches the cart, or a session that expired. Read the exact text and note whether it appears before the card or after you press Pay, since the two have different causes. A simulated visitor reaches the card form with a delivery address and records any error that shows before the card, with a screenshot.
What this looks like in a report
“The card form appeared, then a red line said the postal code was not valid for this country. My code is right. I checked it twice, then went to another mat seller.”
The fix. Send the postal code from the store's address form to the payment form unchanged, without stripping the leading zero or adding a prefix. Then test one address per country you ship to, from a phone and a laptop, and read the error text before the card fields.
An illustration. Run a test to see your own.See a real sample report
A red line on the payment form can mean four different things
The payment page has loaded, the card fields may be visible, and a line of red text sits above them. The shopper reads it as a verdict on their card, even when the cause is their postal code, a total that changed after a coupon, or a session that timed out while they were typing. Some of these errors appear before any card is sent, and some appear only after Pay is pressed. An owner who runs a test payment sees a different set of messages, because the owner's address and currency were already accepted.
- Does the red line name the address, the amount, the session or the card, or only say the payment failed?
- Does the error appear before you enter any card number, or only after you press Pay?
- Does the total on the payment page match the cart total, after any coupon, shipping and tax?
- Does the Network tab show a provider response with a code or message behind the red line?
- Does reloading the payment page after a pause clear the error?
The timing of the error separates a form rule from a card decline
Start with when the error appears. An error that shows as soon as the page loads, or as soon as the address is finished, comes from the form or the session, and a visitor can reach it. An error that shows after a card number and a press of Pay comes from the provider's decision about the card, such as a decline or a failed bank check. A simulated visitor can reach only the first kind, because it stops before any card is sent.
The text usually gives a second clue. A line about the postal code, the country or the amount names a field or a rule you can check in your own settings. A line saying the session expired or the page must be refreshed points to a time limit. A line that says only error gives no detail, so the reason sits in the provider's response, which you can read in the Network tab.
Two postal code rules that disagree reject a valid address
A store checks its address form with one rule, and the payment provider checks the same address with its own. When the two disagree, the shopper passes the store's form and meets an error on the payment page. Compare one address from each country you ship to in both places. Country codes can differ too, and so can a code that loses a leading zero or gains a space the provider does not accept.
The fix is to pass the store's own value through, not a retyped copy. If the store strips characters or adds a country prefix before it sends the address to the payment step, the provider can reject a code that was valid the whole time. Test with one address per country, from a phone and a laptop, and read the error text before the card fields appear.
A total or session that changed after the payment page opened
The payment page is often built from a snapshot: the total, the currency and a session the store created when the page opened. A coupon applied in another tab, a shipping option changed on the previous step, or a session that sat idle long enough can leave the page holding an old snapshot. The provider then refuses the payment with a message about the amount or the session, even though the card is fine. Compare the total on the payment page with the cart, line by line, including shipping and tax.
A reload after a pause shows whether this is the cause. If the error clears when the page loads again, the page held a stale snapshot. If the error returns with the same total, look at how the store calculates the amount on its server, since the payment page can only show what the server sent. The sequence of steps a shopper takes is the first thing to reproduce.
What you get with Mimiq
- 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.
- 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.
- 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.
- 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.
- 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 tax rule or currency setting can raise this error again
A tax rule, a second currency or a new shipping option can bring the same error back after a change that never touched the payment page itself. Rerun the same visitor for each country after every change, and read the error text, not only the page. Owners also test a store behind a site password and check each preview deploy before a sale starts.
Starter
Try it on one launch
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
Builder
Test every build
About 20 tests of 5 visitors
- Everything in Starter
- Credits refill each month, and what is left rolls over once
- Cancel anytime
Pro
Test every release, as a team
About 60 tests of 5 visitors
- Everything in Starter
- Credits refill each month, and what is left rolls over once
- Cancel anytime
Scale
Test at scale, every day
About 240 tests of 5 visitors
- Everything in Starter
- Credits refill each month, and what is left rolls over once
- Priority support
- Cancel anytime
Questions
Will a test show me the decline message my customers get?
No. It cannot tell you about a decline, because a decline comes after a card is sent and a simulated visitor stops before that. The test can show the errors that appear before the card, which are the ones a visitor can reach. For a decline message, use the provider's test mode with its published test card numbers.
Why do my own payments work when shoppers see an error?
Your address, currency and session are usually ones the provider already accepts, so the errors never show for you. A visitor arrives with a new address, a different country or an older page open in another tab. Test with an address the store rarely sees, and compare the two error texts side by side.
Should the store show the provider's error text to shoppers?
Show a plain sentence that names the field, such as 'Check your postal code', and keep the provider's raw text in your logs. Raw codes confuse shoppers, while a plain sentence tells them what to change. The raw text lets a developer find the rule behind the message.
Does the test pay for the order?
No. The visitor reaches the payment page, fills in the address and stops before any card is sent, so no payment is attempted. The run ends at the payment step, because visitors cannot pay with a real card.
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.