[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tools-page-test-card-numbers":3},{"page":4,"related":203,"variants":222},{"path":5,"name":6,"title":7,"description":8,"checkedAt":9,"sources":10,"faq":47,"related":66,"nuxter":70,"body":73,"tool":201,"preset":202},"\u002Ftools\u002Ftest-card-numbers","Test card numbers","Test Card Numbers for Stripe, Paddle, Polar and Creem","Test card numbers for Stripe, Polar, Lemon Squeezy, Paddle and Creem, for success, declines, 3D Secure and failed renewals, and where the same card differs.","2026-10-06",[11,14,17,20,23,26,29,32,35,38,41,44],{"label":12,"url":13},"Stripe docs, Testing","https:\u002F\u002Fdocs.stripe.com\u002Ftesting",{"label":15,"url":16},"Stripe docs, Test your Billing integration","https:\u002F\u002Fdocs.stripe.com\u002Fbilling\u002Ftesting",{"label":18,"url":19},"Stripe docs, Webhooks","https:\u002F\u002Fdocs.stripe.com\u002Fwebhooks",{"label":21,"url":22},"Stripe docs, API keys","https:\u002F\u002Fdocs.stripe.com\u002Fkeys",{"label":24,"url":25},"Polar docs, Sandbox environment","https:\u002F\u002Fpolar.sh\u002Fdocs\u002Fintegrate\u002Fsandbox",{"label":27,"url":28},"Polar docs, Webhooks on your machine","https:\u002F\u002Fpolar.sh\u002Fdocs\u002Fintegrate\u002Fcli\u002Fwebhooks",{"label":30,"url":31},"Lemon Squeezy docs, Test mode","https:\u002F\u002Fdocs.lemonsqueezy.com\u002Fhelp\u002Fgetting-started\u002Ftest-mode",{"label":33,"url":34},"Lemon Squeezy docs, Webhooks guide","https:\u002F\u002Fdocs.lemonsqueezy.com\u002Fguides\u002Fdeveloper-guide\u002Fwebhooks",{"label":36,"url":37},"Paddle docs, Sandbox","https:\u002F\u002Fdeveloper.paddle.com\u002Fsdks\u002Fsandbox",{"label":39,"url":40},"Paddle docs, Credit or debit cards","https:\u002F\u002Fdeveloper.paddle.com\u002Fconcepts\u002Fpayment-methods\u002Fcard",{"label":42,"url":43},"Paddle docs, Webhook simulator","https:\u002F\u002Fdeveloper.paddle.com\u002Fwebhooks\u002Fsimulator",{"label":45,"url":46},"Creem docs, Test mode","https:\u002F\u002Fdocs.creem.io\u002Fgetting-started\u002Ftest-mode",[48,51,54,57,60,63],{"question":49,"answer":50},"What is the Stripe test card number?","4242 4242 4242 4242 is Stripe's basic Visa test card. Use it in a sandbox with test API keys, any future expiry date and any three-digit CVC. Stripe lists more cards for each major brand, for declines, for 3D Secure and for disputes.",{"question":52,"answer":53},"Which test card simulates a failed subscription renewal?","At Stripe, 4000 0000 0000 0341. It attaches to a customer, but every charge to that customer fails. Put it behind a short trial and the first real charge fails. Paddle documents 4000 0027 6000 3184 as initial success, subsequent decline. The test pages of Polar, Lemon Squeezy and Creem do not mention one.",{"question":55,"answer":56},"Does Polar have its own test cards?","No. Polar's sandbox takes Stripe's test card numbers, and its page names only 4242 4242 4242 4242, with a future expiry date and a random CVC. The sandbox is a separate server at sandbox.polar.sh with its own accounts and access tokens.",{"question":58,"answer":59},"What test cards does Creem use?","Creem lists four in its test mode docs. 4111 1111 1111 1111 succeeds, and three cards starting 4507 9900 decline, fail for insufficient funds and fail the CVC check. Any future expiry date, CVV and billing details work.",{"question":61,"answer":62},"Why does the same test card behave differently in Paddle?","Each provider decides what its test numbers do. 4000 0027 6000 3184 asks for authentication on every payment at Stripe and is the 3D Secure card at Lemon Squeezy, but Paddle documents it as a first payment that succeeds and later ones that decline. Test with the list of the provider you actually use.",{"question":64,"answer":65},"Where do these test cards work?","Only in each provider's test environment, such as a Stripe sandbox, Lemon Squeezy's test mode or a Paddle sandbox account. Paddle states that its test cards don't work in live accounts. Don't use a real card for testing. Stripe's services agreement forbids it, and Lemon Squeezy warns that it can get a store suspended.",[67,68,69],"webhook-signature-verifier","stripe-fee-calculator","merchant-of-record-comparison",{"body":71,"to":72},"Nuxter's Stripe, Polar, Lemon Squeezy and Creem adapters run against each provider's test environment, and a renewal that fails keeps access through a grace period while the provider retries. Stripe's 4000 0000 0000 0341 lets you watch that happen before launch.","\u002Ffeatures",{"type":74,"value":75,"toc":192},"minimark",[76,81,85,88,92,95,98,102,105,113,117,120,170,174],[77,78,80],"h2",{"id":79},"test-and-live-are-kept-apart","Test and live are kept apart",[82,83,84],"p",{},"Where these work, above, shows each provider's test environment. The difference that matters: at Stripe and Lemon Squeezy, test and live share one API and the key alone decides which data a call reaches, while Polar's and Paddle's sandboxes are separate accounts, so nothing made while testing reaches the live dashboard.",[82,86,87],{},"Stripe warns that state from one test can carry over to later tests on the same card, so use a different card for each end-to-end scenario.",[77,89,91],{"id":90},"testing-a-failed-renewal","Testing a failed renewal",[82,93,94],{},"Most integrations never see a failed renewal before launch: the first payment works, a later charge fails, and the subscription enters the provider's retry window. At Stripe, 4000 0000 0000 0341 attaches to a customer and then fails every charge. Stripe's billing docs suggest making it the customer's default payment method on a subscription with a trial of a few minutes, so the charge at the end of the trial fails. Expect the attempt about an hour after the trial ends, when the invoice opens. Test clocks move a sandbox subscription through time, so an annual renewal can fail without a year's wait.",[82,96,97],{},"Paddle's 4000 0027 6000 3184 does the same in its sandbox: the first payment succeeds and later ones decline. Lemon Squeezy's page names no card for this. Instead, its test mode can simulate the subscription payment webhooks, once a subscription has renewed at least once.",[77,99,101],{"id":100},"testing-3d-secure","Testing 3D Secure",[82,103,104],{},"Stripe's 3D Secure cards differ in when they ask, and for subscriptions that difference is the point, because renewals happen off session. Use 4000 0025 0000 3155 to check that setting the card up at checkout lets later charges go through without the customer, and 4000 0027 6000 3184 to see what your code does when a renewal still asks for authentication.",[82,106,107,108,112],{},"Two details trip people up. Stripe doesn't redirect to 3D Secure for payments created in its Dashboard, so test through your own checkout or the API. And other Stripe cards may still trigger 3D Secure, but Stripe answers with ",[109,110,111],"code",{},"attempt_acknowledged"," and skips the challenge, so only the cards in its 3D Secure section test the flow.",[77,114,116],{"id":115},"sending-webhooks-in-test-mode","Sending webhooks in test mode",[82,118,119],{},"A test payment fires the same events a live one does, so a test checkout is the simplest webhook test. To send one event without a checkout:",[121,122,123,139,152,158,164],"ul",{},[124,125,126,130,131,134,135,138],"li",{},[127,128,129],"strong",{},"Stripe",": ",[109,132,133],{},"stripe listen --forward-to"," sends sandbox events to a local URL and prints the signing secret, and ",[109,136,137],{},"stripe trigger payment_intent.succeeded"," fires a single event.",[124,140,141,130,144,147,148,151],{},[127,142,143],{},"Polar",[109,145,146],{},"polar listen"," forwards a sandbox organization's events to a local URL, and ",[109,149,150],{},"polar trigger order.created"," sends a sample.",[124,153,154,157],{},[127,155,156],{},"Paddle",": the webhook simulator sends single events or whole scenarios, such as a subscription renewal, in sandbox and live.",[124,159,160,163],{},[127,161,162],{},"Lemon Squeezy",": in test mode, each subscription's side panel has a Simulate event option.",[124,165,166,169],{},[127,167,168],{},"Creem",": test mode sends events to your test webhook URL, so a test checkout is the way to fire one.",[77,171,173],{"id":172},"mistakes-that-pass-in-test-and-fail-in-production","Mistakes that pass in test and fail in production",[121,175,176,186],{},[124,177,178,181,182,185],{},[127,179,180],{},"Test credentials left in production."," Creem warns that its test key or test API host in production makes every payment fail, and Paddle answers a sandbox key on the live API with ",[109,183,184],{},"forbidden",".",[124,187,188,191],{},[127,189,190],{},"Testing only the success card."," It proves the checkout loads, not that a decline, a 3D Secure challenge or a failed renewal reaches your code.",{"title":193,"searchDepth":194,"depth":194,"links":195},"",2,[196,197,198,199,200],{"id":79,"depth":194,"text":80},{"id":90,"depth":194,"text":91},{"id":100,"depth":194,"text":101},{"id":115,"depth":194,"text":116},{"id":172,"depth":194,"text":173},"test-card-numbers",null,[204,210,216],{"path":205,"tool":67,"name":206,"title":207,"description":208,"summary":209,"checkedAt":9},"\u002Ftools\u002Fwebhook-signature-verifier","Webhook signature verifier","Webhook Signature Verification for Stripe and Polar","Webhook signature verification in your browser for Stripe, Polar, Standard Webhooks, Lemon Squeezy, Creem, Paddle and GitHub, with the reason a check fails.","Check a Stripe, Polar, Lemon Squeezy, Creem, Paddle or GitHub signature in the browser, and see why it fails.",{"path":211,"tool":68,"name":212,"title":213,"description":214,"summary":215,"checkedAt":9},"\u002Ftools\u002Fstripe-fee-calculator","Stripe fee calculator","Stripe Fee Calculator with Billing, Tax and Reverse Mode","Stripe fee calculator for US accounts. Find what you keep from a charge, or what to charge to keep an exact amount, with Billing, Tax or Managed Payments.","What you keep from a US charge, or what to charge to keep an exact amount, with Billing, Stripe Tax or Managed Payments.",{"path":217,"tool":69,"name":218,"title":219,"description":220,"summary":221,"checkedAt":9},"\u002Ftools\u002Fmerchant-of-record-comparison","Merchant of record comparison","Merchant of Record Comparison for SaaS Payment Fees","Merchant of record comparison for SaaS. Stripe, Stripe Managed Payments, Paddle, Polar, Lemon Squeezy and Creem fees for your price, volume and tax.","Stripe, Managed Payments, Paddle, Polar, Lemon Squeezy and Creem side by side for your price, volume and tax.",[]]