By platform

PayPal website payments not working

The PayPal button is on the page, but buyers hit an error or never get back to your store with a paid order. Mimiq sends simulated visitors to the button and shows the step where each one stopped.

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

Why are PayPal payments failing on my website?

PayPal payments fail at one of three stops: the button does nothing, the PayPal window refuses the buyer, or the buyer comes back to your site after approving and the order is not recorded as paid. A dead button points at your page's script, a refused window at the keys or the currency, and a return error at how the order is recorded. A simulated visitor shows which stop it reached, with a screenshot of the PayPal window.

What this looks like in a report

Who
Sipho, buying a ceramic candle for his sister's birthday
How they arrived
Clicked a product link from a search result on a laptop
Where they stopped
PayPal window, after pressing the PayPal button at checkout

“A PayPal window opened, then refused the account. I have a PayPal account, so the shop must be the problem. I will try a card, but I do not know if my order is saved.”

The fix. Replace the PayPal keys in the checkout code with the live pair for the account that receives payments, and make the order currency one that account accepts. Then ask a coding agent to confirm the return handler marks the order as paid before it shows the thank you page.

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

A PayPal payment can fail after the buyer has already approved it

Your site hands the buyer to PayPal in a window, and PayPal hands the result back. The keys your site uses must belong to the same environment as the account that receives the money, test or live. The order's currency must be one that account accepts. When the keys point at the wrong environment, the window opens and then refuses the account. When the currency is not accepted, the order fails inside PayPal. The third stop is the return, where an approved order can still be left unrecorded on your side.

  • Open the browser console at the click and note any error from PayPal's address or from your own script.
  • Check that the keys in your store are the live pair for the account that receives payments, not the test pair.
  • Compare the order's currency with the currencies that account accepts for buyers in that country.
  • After a test approval, check the order list in your admin, not only the thank you page.

Three stops: the button, the PayPal window and the return to your site

The buyer meets PayPal at three stops, and each leaves its own trace. At the button, the click either opens a PayPal window or does nothing at all. In the window, PayPal accepts the buyer or refuses them, often with a short message about the account, the currency or the country. After approval, the buyer is sent back to your site, where the order should be recorded as paid. The other two only show up after the buyer gets past the button.

Keys, currency and country decide what the PayPal window does next

PayPal keeps a test environment and a live environment, each with its own keys, and a page built with one set of keys cannot take money into an account in the other. A key pair from the wrong environment makes the window open and then refuse the account, which looks to the buyer like PayPal rejecting them. The currency works the same way. An order in a currency the receiving account does not accept fails inside the window, after the buyer has already entered details. Check the keys and the order currency before any other change.

Ask the buyer which currency the PayPal window showed, and compare it with the currency your order uses. Write down the buyer's country and device too, so a refusal from one place can be told apart from one that happens everywhere. Do not tell the buyer to try another browser until you know which of those causes applies. The keys and the currency are two separate checks, so run both before you decide.

Approval followed by an error is the failure buyers report to you

The most painful stop comes last. The buyer approves the payment in PayPal and is sent back to your site, then sees an error or a page saying the order failed. Your server may have received the approval without marking the order as paid, or it may never have finished the step that completes the payment. Check the order list in your admin after a test, not only the thank you page, because a thank you page can appear while the order record is missing.

Where the run ends, and the sign-in window it cannot pass

A simulated visitor adds the item, goes to checkout and presses the PayPal button. The run records a screenshot at the click, whether a PayPal window opened, the address of that window, and any script error or blocked request from the button. The run cannot go through PayPal's own login or payment, so it stops at PayPal's window and cannot show you the return trip.

That limit matters for this topic. A fix to the keys or the return handler can only be confirmed by an approval on your side, in a PayPal sandbox or with a small order you place yourself. Use the run to confirm the button and the window, then check the return by hand, and repeat the run after each change.

Mimiq is independent and not affiliated with the platforms it names. Names belong to their owners.

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 key rotation or currency change can break PayPal again

PayPal keys get replaced, a store changes its currency, or a second payment plugin adds another PayPal button, and the window can start refusing buyers again. Run the same visitor after each of those changes, from the button to the sign-in window. Check the order list after one approved test, because the window can open again while the return still fails.

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

Why does the PayPal button show but the window never opens?

Usually something blocks the window after the click. A pop-up blocker, a privacy setting or a content rule on your site can stop the window from opening. Check the console for an error on the click, then try the button in a private window with pop-ups allowed. A button that does not appear at all is a different problem, and it comes before the click.

Does a refused PayPal window mean my PayPal account is closed?

Not usually. A refusal can come from the keys, the currency or the buyer's country, and each of those is a setting you can check yourself. Look at your PayPal account's status separately, then compare the keys and currency in your store before you assume the account is the problem.

Can the simulated visitor tell me why PayPal refused the buyer?

No. The run shows whether the button produced a window, the address of that window, any message on its first screen, and errors recorded on that step. It stops before PayPal's login, so it cannot see the reason in full. It also does not tell you how many buyers would pay once the window works.

Does the test place a real payment?

No. The visitor stops at PayPal's window, because a visitor cannot pay with a real card. To test the whole payment, use your PayPal sandbox with its test buyer accounts, then check the order record in your admin.

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 .