An enterprise-grade, Stripe-compatible billing sandbox supporting multi-step Payment Intent state transitions, 3D Secure modal challenges, deterministic test cards, idempotency protection, and automatic invoice receipt dispatch.
14+
Deterministic outcomes6 Stages
requires_action, capture, etc.PSD2 / SCA
Simulated challenge modalAuto Email
Integrated sandbox mailbox
Client initiates checkout with amount and currency, receiving a client secret.
Test cards trigger requires_action status with simulated biometric/OTP modals.
Funds captured into merchant balance and payment_intent.succeeded webhook dispatched.
Choose a focused module to explore interactive simulators, request consoles, and production code recipes:
The asynchronous payment lifecycle state machine. Create client secrets, attach payment methods, inspect payment errors, and test two-step authorization & capture.
Instant success, insufficient funds, expired cards, incorrect CVC, stolen cards, and velocity limits. Includes dynamic date and CVC evaluations without mock setup.
Simulate Strong Customer Authentication (SCA). Handles requires_action status, redirect_to_url challenges, biometric/OTP modals, and post-challenge completion.
Pre-built Stripe Checkout redirect workflows. Model multi-item carts, quantity multipliers, success and cancel callback URLs, and session fulfillment webhooks.
Single-step legacy charges, full amount refunds, and incremental partial refunds. Enforces balance caps, reason logging, and Idempotency-Key duplicate guards.
Persist customer profiles, track transaction history, and attach reusable payment method tokens for recurring SaaS subscription simulations.
How status moves through creation, card confirmation, 3DS challenge action, delayed capture, and success.
Intent created with amount and currency. A client_secret is returned for safe frontend form handling.
Triggered if the card requires step-up authentication. Contains next_action.redirect_to_url for modal verification.
When capture_method: 'manual' is used, funds are authorized and held until explicitly captured by your server.
Payment is fully charged. Webhook payment_intent.succeeded is triggered and receipt email is dispatched.
Compare integration approaches to choose the right architecture for your checkout flow:
| Evaluation Dimension | Hosted Checkout | Payment Intents API | Direct 1-Step Charge |
|---|---|---|---|
| Recommended Use Case | SaaS self-serve upgrades, quick checkouts | Custom in-app checkout forms, Stripe Elements | Backend-to-backend migrations, batch jobs |
| PCI Compliance Scope | SAQ A (Zero card data touches your servers) | SAQ A-EP (Tokenized by client SDK) | Requires tokenization or backend proxying |
| 3D Secure (SCA) Handling | Handled automatically within checkout redirect | Dynamic requires_action step-up flow | Not supported (Immediate failure if 3DS card) |
| Authorization & Delayed Capture | Automatic capture upon checkout completion | Supported (capture_method: manual) | Automatic 1-step capture only |
| Client Secret Tokenization | Session ID URL redirect | pi_test_..._secret_... for browser SDKs | Direct card payload submission |
All amounts must be passed in the smallest currency unit (e.g. cents for USD, pence for GBP).
amount: 2900, currency: 'usd' → $29.00 USD
amount: 4950, currency: 'eur' → €49.50 EUR
amount: 1000, currency: 'jpy' → ¥1,000 JPY (zero-decimal)
Pass an Idempotency-Key: <uuid> header on payment confirmations or direct charges. Repeated requests return cached results with an Idempotent-Replay: true response header.