WhoopsBot

Guides · Updated 2026-10-23

How to monitor a Stripe or Paddle checkout

What to watch on a Stripe or Paddle checkout without entering a card, including overlays, hosted pages, price ids, and redirects.

The payment page is not your homepage

A pricing page can load while checkout is dead. The buy button can be unbound, the price id can belong to test mode while the site is live, or the script that opens checkout can be blocked. None of that changes the status code of /pricing. Customers see a button. The charge never starts. An uptime check on the marketing site stays green.

Stripe and Paddle also do not render the card form inside your own HTML. Stripe Checkout is usually a redirect to checkout.stripe.com. Stripe's embedded form and Paddle's overlay are frames from their domains. Your page starts the session. Their page collects the card. A monitor that only reads your HTML never sees the card fields, and it should not try to fill them.

What is safe to assert

Stop before a card number. A useful check opens your pricing or upgrade URL, clicks the real button, and expects a sentence that appears only when checkout started. On a full-page redirect, that sentence can be the product name or the amount on the hosted page, because that page is now the document. On an overlay, the card fields live in a cross-origin frame. A check that reads the main document cannot see inside that frame. It can still fail if your button never opens anything, or if your page shows an error you wrote in your own DOM.

Do not add a fill step for a card, a CVC, or a real customer's payment details. WhoopsBot stores flow steps so it can run them again. A test card in a step is a secret you did not need to save. Completing a payment also creates charges, tax events, and emails that a monitor should not generate every hour.

The breaks that look like a front-end bug

Price ids are mode-specific. A price created in Stripe test mode, or a Paddle sandbox price, will not open a live checkout, and the reverse is also true. The client token has the same split. If the button calls the wrong mode, the error often shows up in the console or as a message on your page, while the document request is still 200.

Content-Security-Policy can block the script. Stripe.js is loaded from js.stripe.com. Paddle.js is loaded from cdn.paddle.com. A policy that allows only your own origin will stop the overlay from existing. The free page check notices a missing Content-Security-Policy header. It does not grade whether an existing policy allows those hosts. If checkout used to open and stopped after a header change, compare the policy with the script host before you rewrite the button.

Redirects matter on the way back as well as the way in. After payment, Stripe and Paddle send the browser to a success URL you configured. If that URL 404s, or hops through an old http address, the customer paid and then saw an error. The redirect checker follows HTTP redirects for one URL. It does not run JavaScript, and it does not pay.

A flow that stops at the door

Write the steps the way you would tell a teammate, and stop when checkout is visibly open. Visit the published pricing URL. Click the words on the button, such as Subscribe. Expect a sentence from the hosted checkout page if the click navigates there, or a sentence from your own page if you render one when the overlay opens. If the only proof is inside the frame, do not pretend the check can read it. Use a sentence you control, or check a hosted checkout URL directly with a visit step.

Run it on a schedule only after you have seen one pass that did not charge a card. The free plan is one flow, once a day, results on the run page. Starter is $19 USD a month for five flows about every six hours, with an email when a flow starts failing. Pro is $49 USD a month for twenty flows every hour, with an email on every failure. The first payment for a plan is refunded in full if you ask within 14 days. Cancel from the billing page.

What this is not

This is not a reconciliation of payouts, failed charges, or tax. Stripe and Paddle already email you about disputes and failed payments. WhoopsBot does not read those dashboards. It answers a narrower question: can a person still get from your button to a checkout screen?

Paddle, when you use it, is the merchant of record for that payment. The card is theirs to collect. Your job is to open their checkout with the right price and to land the browser on a success URL that exists. The free page check can still look at your pricing URL for console errors and a page that fails to load. It will not click the button.

Questions

Should a monitor enter a test card?

No. Stop when the checkout screen is open. Do not store a card number in a flow step.

Can a check read the card fields in a Paddle or Stripe overlay?

No. Those fields are in a cross-origin frame. The check can see your page and a full-page redirect, not the inside of that frame.

Related

Check the published page.

No card needed. Free plan forever. Cancel anytime.