← ClaudeAtlas

payments-testinglisted

Test Stripe payment flows in test mode using the Stripe API/MCP — the successful charge/checkout path that should create a booking, and the decline/failure paths (generic decline and 3DS/SCA-required) that the app must handle gracefully. Use this skill whenever the user wants to test payments, verify checkout, confirm a charge succeeds or a declined card is handled, or check Stripe integration before launch. Trigger on casual asks like "does paying actually work" or "test a declined card" too. Stripe TEST MODE only.
Marcdaou/claude-qa-suite · ★ 0 · Testing & QA · score 70
Install: claude install-skill Marcdaou/claude-qa-suite
# Payments Testing A payment test answers a sharp question: when a real card is charged, does the app do the right thing — and when a card is *declined*, does it fail safely instead of booking anyway or 500ing? This skill drives Stripe in **test mode** through the connected Stripe API/MCP tools, runs a small fixed set of scenarios, and returns a pass/fail report. It only ever uses test-mode keys and Stripe's magic test cards; it never touches live data. ## Before running Confirm you're in test mode. Use the Stripe MCP account/info tool to verify the active key is a **test** key (`sk_test`/test-mode). If it looks like live mode, stop and tell the user — never run charge tests against live. ## Scenarios Run these three, in order. Each uses a Stripe magic test card via a test PaymentMethod / PaymentIntent created through the Stripe MCP API tools. | # | Scenario | Test card | Pass condition | |---|----------|-----------|----------------| | 1 | **Successful charge** | `4242 4242 4242 4242` | PaymentIntent reaches `succeeded`; the app records a booking tied to it (confirm via the booking record / API). | | 2 | **Generic decline** | `4000 0000 0000 0002` | PaymentIntent is `requires_payment_method` / declined with `card_declined`; the app does **not** create a confirmed booking and surfaces an error. | | 3 | **3DS / SCA required** | `4000 0025 0000 3155` | PaymentIntent returns `requires_action` (authentication needed); the app routes the user into the 3DS challenge rather tha