KOSTENLOSES TOOL · STRIPE TESTKARTEN

Stripe Testkarten

Die Karte, die du suchst, ist 4242 4242 4242 4242 — mit einer beliebigen dreistelligen CVC (vier Ziffern bei American Express), einem beliebigen Ablaufdatum in der Zukunft wie 12/34 und beliebigen Werten in den übrigen Feldern. Sie funktioniert nur mit deinen Test-API-Schlüsseln von Stripe. Die Tabelle unten enthält 119 Testkarten, am 26. September 2026 gegen Stripes eigene Testreferenz geprüft, darunter die 64 Karten, die Stripe nach Land führt: Die deutsche Karte steht in dieser Gruppe vorn, die deutschen SEPA-Test-IBANs führen die Tabelle der lokalen Zahlungsmethoden an. Durchsuch sie, klick auf eine Nummer, um sie zu kopieren, und lad den ganzen Satz als JSON oder CSV für deine Testsuite herunter. Jede Karte, die einen Fehler auslöst, nennt außerdem Fehlercode, Ablehnungscode und Webhook-Ereignis — genau das, was Stripes Dokumentation auf drei Seiten verteilt.

KostenlosOhne Anmeldung119 KartenJSON + CSV zum Download

Auch aufEnglish繁體中文日本語한국어EspañolFrançaisDeutschPortuguês (Brasil)

stripe · testkarten

Klick auf eine Nummer, um sie ohne Leerzeichen zu kopieren. Nichts wird irgendwohin gesendet — Tabelle und Downloads entstehen auf dieser Seite. Der Download folgt dem Filter, du kannst also nur die Ablehnungskarten exportieren.

NummerSimuliertMarkePaymentMethodCodes und Ereignis
Erfolgreiche Zahlung, nach Kartenmarke · 15
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Erfolgreiche Zahlung Visa pm_card_visa —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Erfolgreiche Zahlung mit einer Debitkarte Visa (debit) pm_card_visa_debit —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Erfolgreiche Zahlung Mastercard pm_card_mastercard —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Erfolgreiche Zahlung mit einer BIN der 2er-Serie Mastercard (2-series) — —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Erfolgreiche Zahlung mit einer Debitkarte Mastercard (debit) pm_card_mastercard_debit —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Erfolgreiche Zahlung mit einer Prepaid-Karte Mastercard (prepaid) pm_card_mastercard_prepaid —payment_intent.succeeded
Beliebige 4 Ziffern · Beliebiges zukünftiges Datum Erfolgreiche Zahlung (15 Stellen, vierstellige CVC) American Express pm_card_amex —payment_intent.succeeded
Beliebige 4 Ziffern · Beliebiges zukünftiges Datum Erfolgreiche Zahlung, zweite American-Express-BIN American Express — —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Erfolgreiche Zahlung Discover pm_card_discover —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Erfolgreiche Zahlung mit 19-stelliger Kartennummer UnionPay (19-digit) — —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Erfolgreiche Zahlung Diners Club pm_card_diners —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Erfolgreiche Zahlung mit 14-stelliger Kartennummer Diners Club (14-digit) — —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Erfolgreiche Zahlung JCB pm_card_jcb —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Erfolgreiche Zahlung UnionPay pm_card_unionpay —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Erfolgreiche Zahlung mit einer französischen Co-Branding-Karte (Cartes Bancaires/Visa) Cartes Bancaires / Visa pm_card_visa_cartesBancaires —payment_intent.succeeded
Ablehnungen · 10
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Allgemeine Ablehnung Visa pm_card_visa_chargeDeclined card_declineddecline_code generic_declinepayment_intent.payment_failed
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Ablehnung wegen unzureichender Deckung Visa pm_card_visa_chargeDeclinedInsufficientFunds card_declineddecline_code insufficient_fundspayment_intent.payment_failed
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Ablehnung wegen verlorener Karte Visa pm_card_visa_chargeDeclinedLostCard card_declineddecline_code lost_cardpayment_intent.payment_failed
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Ablehnung wegen gestohlener Karte Visa pm_card_visa_chargeDeclinedStolenCard card_declineddecline_code stolen_cardpayment_intent.payment_failed
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Ablehnung wegen abgelaufener Karte Visa pm_card_chargeDeclinedExpiredCard expired_cardpayment_intent.payment_failed
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Ablehnung wegen falscher CVC (CVC mitschicken, sonst wird nicht geprüft) Visa pm_card_chargeDeclinedIncorrectCvc incorrect_cvcpayment_intent.payment_failed
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Ablehnung wegen eines Verarbeitungsfehlers Visa pm_card_chargeDeclinedProcessingError processing_errorpayment_intent.payment_failed
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Falsche Nummer — fällt absichtlich durch die Luhn-Prüfung Visa — incorrect_numberkein Ereignis — vor der API abgelehnt
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Ablehnung wegen überschrittenem Geschwindigkeitsgrenzwert Visa pm_card_visa_chargeDeclinedVelocityLimitExceeded card_declineddecline_code card_velocity_exceededpayment_intent.payment_failed
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Lässt sich einem Kunden anhängen, schlägt aber beim Belasten fehl Visa pm_card_chargeCustomerFail card_declinedpayment_intent.payment_failed
Radar, Betrug und Adressprüfungen · 9
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Risikoniveau „sehr hoch“ — Radar blockiert sie immer Visa pm_card_radarBlock card_declineddecline_code generic_declinepayment_intent.payment_failed
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Risikoniveau „sehr hoch“ — Radar blockiert je nach deinen Einstellungen Visa pm_card_riskLevelHighest card_declineddecline_code generic_declinepayment_intent.payment_failed
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Risikoniveau „erhöht“ — Radar kann sie zur manuellen Prüfung einreihen Visa pm_card_riskLevelElevated —review.opened
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Hoher Score für Anfechtungen wegen Betrugs Visa pm_card_highFraudDisputeScore —review.opened
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Hoher Score für frühzeitige Betrugswarnungen Visa pm_card_highEfwScore —review.opened
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Missbrauch der kostenlosen Testversion — blockiert, wenn diese Kontrolle aktiv ist Visa pm_card_freeTrialAbuseBlock card_declineddecline_code generic_declinepayment_intent.payment_failed
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum CVC-Prüfung schlägt fehl (nur wenn du eine CVC mitschickst) Visa pm_card_cvcCheckFail card_declineddecline_code generic_declinepayment_intent.payment_failed
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Postleitzahlprüfung schlägt fehl (nur wenn du eine Postleitzahl mitschickst) Visa pm_card_avsZipFail card_declineddecline_code generic_declinepayment_intent.payment_failed
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Prüfung von Postleitzahl und Adresszeile 1 schlägt fehl Visa pm_card_avsFail card_declineddecline_code generic_declinepayment_intent.payment_failed
Anfechtungen und Betrugswarnungen · 8
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich, dann Anfechtung wegen Betrugs Visa pm_card_createDispute —charge.dispute.created
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich, dann Anfechtung wegen Betrugs (Discover) Discover — —charge.dispute.created
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich, dann Anfechtung: Produkt nicht erhalten Visa pm_card_createDisputeProductNotReceived —charge.dispute.created
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich, dann Anfechtung als Anfrage statt Rückbuchung Visa pm_card_createDisputeInquiry —charge.dispute.created
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich, dann eine frühzeitige Betrugswarnung Visa pm_card_createIssuerFraudRecord —radar.early_fraud_warning.created
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich, dann mehrere Anfechtungen Visa pm_card_createMultipleDisputes —charge.dispute.created
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Anfechtung, für die Visa Compelling Evidence 3.0 infrage kommt Visa pm_card_createCe3EligibleDispute —charge.dispute.created
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Anfechtung, für die Smart Disputes infrage kommt Visa pm_card_createAutoRepresentmentEligibleDispute —charge.dispute.created
Rückerstattungen und Guthaben · 4
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Rückerstattung erst ausstehend, später erfolgreich Visa pm_card_pendingRefund —refund.updated
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Rückerstattung scheinbar erfolgreich, schlägt später fehl Visa pm_card_refundFail —refund.failed
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum US-Zahlung landet direkt im verfügbaren Guthaben Visa pm_card_bypassPending —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Internationale Zahlung landet direkt im verfügbaren Guthaben Visa pm_card_bypassPendingInternational —payment_intent.succeeded
3D Secure · 9
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum 3DS erforderlich, die Authentifizierung gelingt Visa (IE) pm_card_threeDSecure2Required —payment_intent.requires_action
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum 3DS erforderlich bei einer in den USA ausgestellten Karte, die Authentifizierung gelingt Visa (US) — —payment_intent.requires_action
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum 3DS gelingt, die Zahlung wird trotzdem abgelehnt Visa pm_card_threeDSecureRequiredChargeDeclined card_declinedpayment_intent.payment_failed
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Die 3DS-Abfrage selbst schlägt fehl, die Zahlung wird abgelehnt Visa pm_card_threeDSecureRequiredProcessingError card_declinedpayment_intent.payment_failed
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum 3DS unterstützt, von den Standardregeln aber nicht verlangt Visa pm_card_threeDSecureOptional —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum 3DS unterstützt, der Versuch endet mit einem Verarbeitungsfehler Visa pm_card_threeDSecureOptionalProcessingError card_declinedpayment_intent.payment_failed
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Off-Session-Zahlungen brauchen 3DS, bis die Karte für künftige Zahlungen eingerichtet ist Visa pm_card_authenticationRequiredOnSetup —payment_intent.requires_action
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum 3DS bei jeder Transaktion, egal wie die Karte eingerichtet ist Visa pm_card_authenticationRequired —payment_intent.requires_action
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Schon für Off-Session eingerichtet; On-Session-Zahlungen werden trotzdem authentifiziert Visa pm_card_authenticationRequiredSetupForOffSession —payment_intent.requires_action
Erfolgreiche Zahlung, nach Land · 64
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Dein MarktZahlung erfolgreich — Ausstellerland: Deutschland Visa pm_card_de —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Vereinigte Staaten Visa pm_card_us —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Argentinien Visa pm_card_ar —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Brasilien Visa pm_card_br —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Kanada Visa pm_card_ca —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Chile Visa pm_card_cl —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Kolumbien Visa pm_card_co —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Costa Rica Visa pm_card_cr —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Ecuador Visa pm_card_ec —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Mexiko Visa pm_card_mx —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Mexiko Carnet — —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Panama Visa pm_card_pa —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Paraguay Visa pm_card_py —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Peru Visa pm_card_pe —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Uruguay Visa pm_card_uy —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Vereinigte Arabische Emirate Visa pm_card_ae —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Vereinigte Arabische Emirate Mastercard pm_card_ae_mastercard —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Österreich Visa pm_card_at —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Belgien Visa pm_card_be —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Bulgarien Visa pm_card_bg —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Belarus Visa pm_card_by —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Kroatien Visa pm_card_hr —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Zypern Visa pm_card_cy —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Tschechien Visa pm_card_cz —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Dänemark Visa pm_card_dk —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Estland Visa pm_card_ee —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Finnland Visa pm_card_fi —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Frankreich Visa pm_card_fr —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Gibraltar Visa pm_card_gi —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Griechenland Visa pm_card_gr —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Ungarn Visa pm_card_hu —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Irland Visa pm_card_ie —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Italien Visa pm_card_it —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Lettland Visa pm_card_lv —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Liechtenstein Visa pm_card_li —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Litauen Visa pm_card_lt —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Luxemburg Visa pm_card_lu —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Malta Visa pm_card_mt —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Niederlande Visa pm_card_nl —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Norwegen Visa pm_card_no —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Polen Visa pm_card_pl —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Portugal Visa pm_card_pt —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Rumänien Visa pm_card_ro —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Saudi-Arabien Visa — —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Slowenien Visa pm_card_si —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Slowakei Visa pm_card_sk —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Spanien Visa pm_card_es —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Schweden Visa pm_card_se —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Schweiz Visa pm_card_ch —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Vereinigtes Königreich Visa pm_card_gb —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Vereinigtes Königreich Visa (debit) pm_card_gb_debit —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Vereinigtes Königreich Mastercard pm_card_gb_mastercard —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Australien Visa pm_card_au —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: China Visa pm_card_cn —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Hongkong Visa pm_card_hk —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Indien Visa pm_card_in —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Japan Visa pm_card_jp —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Japan JCB pm_card_jcb —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Malaysia Visa pm_card_my —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Neuseeland Visa pm_card_nz —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Singapur Visa pm_card_sg —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Taiwan Visa pm_card_tw —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Thailand Visa (credit) pm_card_th_credit —payment_intent.succeeded
Beliebige 3 Ziffern · Beliebiges zukünftiges Datum Zahlung erfolgreich — Ausstellerland: Thailand Visa (debit) pm_card_th_debit —payment_intent.succeeded

Lokale Zahlungsmethoden: Testwerte

Was Stripe für die SEPA-Lastschrift in Deutschland, Frankreich und Spanien, für Konbini in Japan und für Boleto in Brasilien veröffentlicht. Klick auf einen Wert, um ihn zu kopieren. Diese Zahlungen warten in processing oder requires_action, bevor sie sich entscheiden — die letzte Spalte zeigt deshalb die ganze Webhook-Abfolge.

TestwertSimuliertParameterPaymentMethodCodes und Ereignis
SEPA Direct Debit · Deutschland (DE) · 6
Dein MarktDer Status des PaymentIntent wechselt von processing zu succeeded sepa_debit[iban] pm_sepaDebit_success_de payment_intent.processing→ payment_intent.succeeded
Dein MarktDer Status des PaymentIntent wechselt nach mindestens drei Minuten von processing zu succeeded sepa_debit[iban] pm_sepaDebit_successDelayed_de payment_intent.processing→ payment_intent.succeeded
Dein MarktDer Status des PaymentIntent wechselt von processing zu requires_payment_method sepa_debit[iban] pm_sepaDebit_failed_de payment_intent.processing→ payment_intent.payment_failed
Dein MarktDer Status des PaymentIntent wechselt nach mindestens drei Minuten von processing zu requires_payment_method sepa_debit[iban] pm_sepaDebit_failedDelayed_de payment_intent.processing→ payment_intent.payment_failed
Dein MarktDer Status des PaymentIntent wechselt von processing zu succeeded, es wird jedoch sofort eine Zahlungsanfechtung erstellt sepa_debit[iban] pm_sepaDebit_disputed_de payment_intent.processing→ payment_intent.succeeded→ charge.dispute.created
Dein MarktDie Zahlung schlägt mit dem Fehlercode insufficient_funds fehl sepa_debit[iban] pm_sepaDebit_insufficientFunds_de insufficient_fundspayment_intent.processing→ payment_intent.payment_failed
SEPA Direct Debit · Frankreich (FR) · 6
Der Status des PaymentIntent wechselt von processing zu succeeded sepa_debit[iban] pm_sepaDebit_success_fr payment_intent.processing→ payment_intent.succeeded
Der Status des PaymentIntent wechselt nach mindestens drei Minuten von processing zu succeeded sepa_debit[iban] pm_sepaDebit_successDelayed_fr payment_intent.processing→ payment_intent.succeeded
Der Status des PaymentIntent wechselt von processing zu requires_payment_method sepa_debit[iban] pm_sepaDebit_failed_fr payment_intent.processing→ payment_intent.payment_failed
Der Status des PaymentIntent wechselt nach mindestens drei Minuten von processing zu requires_payment_method sepa_debit[iban] pm_sepaDebit_failedDelayed_fr payment_intent.processing→ payment_intent.payment_failed
Der Status des PaymentIntent wechselt von processing zu succeeded, es wird jedoch sofort eine Zahlungsanfechtung erstellt sepa_debit[iban] pm_sepaDebit_disputed_fr payment_intent.processing→ payment_intent.succeeded→ charge.dispute.created
Die Zahlung schlägt mit dem Fehlercode insufficient_funds fehl sepa_debit[iban] pm_sepaDebit_insufficientFunds_fr insufficient_fundspayment_intent.processing→ payment_intent.payment_failed
SEPA Direct Debit · Spanien (ES) · 6
Der Status des PaymentIntent wechselt von processing zu succeeded sepa_debit[iban] pm_sepaDebit_success_es payment_intent.processing→ payment_intent.succeeded
Der Status des PaymentIntent wechselt nach mindestens drei Minuten von processing zu succeeded sepa_debit[iban] pm_sepaDebit_successDelayed_es payment_intent.processing→ payment_intent.succeeded
Der Status des PaymentIntent wechselt von processing zu requires_payment_method sepa_debit[iban] pm_sepaDebit_failed_es payment_intent.processing→ payment_intent.payment_failed
Der Status des PaymentIntent wechselt nach mindestens drei Minuten von processing zu requires_payment_method sepa_debit[iban] pm_sepaDebit_failedDelayed_es payment_intent.processing→ payment_intent.payment_failed
Der Status des PaymentIntent wechselt von processing zu succeeded, es wird jedoch sofort eine Zahlungsanfechtung erstellt sepa_debit[iban] pm_sepaDebit_disputed_es payment_intent.processing→ payment_intent.succeeded→ charge.dispute.created
Die Zahlung schlägt mit dem Fehlercode insufficient_funds fehl sepa_debit[iban] pm_sepaDebit_insufficientFunds_es insufficient_fundspayment_intent.processing→ payment_intent.payment_failed
Konbini · Japan (JP) · 6
{any_prefix}@{any_domain}confirmation_number 11111111110 Zahlung nach 3 Minuten erfolgreich billing_details.email — payment_intent.requires_action→ payment_intent.succeeded
{any_prefix}succeed_immediately@{any_domain}confirmation_number 22222222220 Zahlung sofort erfolgreich billing_details.email — payment_intent.requires_action→ payment_intent.succeeded
{any_prefix}expire_immediately@{any_domain}confirmation_number 33333333330 Zahlung läuft sofort ab billing_details.email — payment_intent.requires_action→ payment_intent.payment_failed
{any_prefix}expire_with_delay@{any_domain}confirmation_number 44444444440 Nie bezahlt; läuft nach 3 Minuten ab billing_details.email — payment_intent.requires_action→ payment_intent.payment_failed
{any_prefix}fill_never@{any_domain}confirmation_number 55555555550 Nie bezahlt; läuft zu dem expires_at ab, das du gesetzt hast billing_details.email — payment_intent.requires_action→ payment_intent.payment_failed
Bestätigungsnummer wird beim Bestätigen des PaymentIntent abgelehnt payment_method_options[konbini][confirmation_number] — payment_intent_konbini_rejected_confirmation_number
Boleto · Brasilien (BR) · 6
{any_prefix}@{any_domain} Boleto nach 3 Minuten bezahlt billing_details.email — payment_intent.requires_action→ payment_intent.succeeded
{any_prefix}succeed_immediately@{any_domain} Boleto sofort bezahlt billing_details.email — payment_intent.requires_action→ payment_intent.succeeded
{any_prefix}expire_immediately@{any_domain} Boleto läuft unbezahlt ab; payment_failed nach wenigen Sekunden billing_details.email — payment_intent.requires_action→ payment_intent.payment_failed
{any_prefix}expire_with_delay@{any_domain} Boleto läuft nach etwa 3 Minuten unbezahlt ab billing_details.email — payment_intent.requires_action→ payment_intent.payment_failed
{any_prefix}fill_never@{any_domain} Boleto wird nie bezahlt; läuft zu seinem expires_at ab billing_details.email — payment_intent.requires_action→ payment_intent.payment_failed
CNPJ 00.000.000/0000-00 Sandbox-CPF, die die Prüfung der Steuernummer umgeht boleto[tax_id] — —

Quellen: Stripe-Dokumentation auf Deutsch — Testen (Testkarten, Zahlung nach Land, SEPA-Test-IBANs, Webhook-Abfolgen), SEPA-Lastschrift, SEPA-Lastschriftzahlungen annehmen, Wahl der Kartenmarke und Ablehnungscodes. Kartendaten am 26. September 2026 geprüft, die deutschen Zeilen am 27. September 2026 gegen die deutsche Fassung.

So benutzt du eine Stripe-Testkarte

Drei Schritte. Testkarten gehören zu Test-API-Schlüsseln, deshalb kann hier nichts eine echte Karte oder einen echten Kunden berühren.

  1. Auf Testschlüssel umstellen. Nimm deine veröffentlichbaren und geheimen Test-API-Schlüssel oder eine Sandbox. Echte Kartendaten haben dort nichts zu suchen: Stripes Rahmenvertrag verbietet es, im Live-Modus mit echten Zahlungsdaten zu testen. Umgekehrt lehnt der Live-Modus Testnummern ab — Stripe führt dafür einen eigenen Ablehnungscode, testmode_decline.
  2. Die Karte für das gewünschte Ergebnis wählen. 4242 4242 4242 4242 für eine schlichte erfolgreiche Zahlung. Für deine Fehlerbehandlung nimmst du die Karte, deren Zeile den gewünschten Ablehnungscode nennt, dazu eine beliebige dreistellige CVC und ein Datum in der Zukunft wie 12/34.
  3. Im Servercode die PaymentMethod verwenden. Stripe rät davon ab, Kartennummern direkt in API-Aufrufen oder serverseitigem Code zu verwenden, auch in Testumgebungen — sonst ist dein Code beim Livegang womöglich nicht PCI-konform. Nimm ein Token wie pm_card_visa; die Spalte PaymentMethod nennt es für jede Karte, die eines hat.

Zahlungen aus Deutschland testen: DE-Karte, SEPA-Lastschrift, girocard

Für einen Shop, der in Deutschland kassiert, zählen drei Stellen der Tabelle mehr als 4242 4242 4242 4242 — und Stripe dokumentiert sie an drei verschiedenen Orten.

  • Die deutsche Karte, 4000 0027 6000 0016 (pm_card_de), steht auf dieser Seite am Anfang der Gruppe „nach Land“. Sie simuliert eine erfolgreiche Zahlung mit einer in Deutschland ausgestellten Karte. Was sich ändert, ist das Ausstellerland, und danach berechnet Stripe grenzüberschreitende Gebühren — für Karten, deren Ausstellerland nicht die USA ist, laut Stripe auch in Testumgebungen. Was die Karte nicht testet, ist die Authentifizierung: Die Vorschriften zur starken Kundenauthentifizierung verlangen für Online-Zahlungen im Europäischen Wirtschaftsraum 3D Secure, aber die Karten aus Stripes Abschnitt Europa und Naher Osten simulieren eine Zahlung, die ohne Authentifizierung erfolgreich ist. Für den Challenge-Ablauf ist die Gruppe 3D Secure zuständig.
  • Die deutschen SEPA-Test-IBANs führen die Tabelle der lokalen Zahlungsmethoden an: DE89370400440532013000 für eine Lastschrift, die durchgeht, DE62370400440532013001 für eine, die fehlschlägt, DE35370400440532013002 für eine sofortige Zahlungsanfechtung, DE65370400440002222227 für unzureichende Deckung, dazu die Varianten DE08370400440532013003 und DE78370400440532013004, die erst nach mindestens drei Minuten entscheiden. Gibst du einen dieser Testwerte ein, validiert das Payment Element die IBAN und zeigt das Mandat an. Stripe veröffentlicht neun Szenarien pro Land; die Tabelle führt die sechs Kernszenarien, die beiden Limit-Fälle und bank_account_unusable stehen bei Stripe.
  • girocard steht in Stripes Testkarten-Liste nicht. Die Pflicht zur Wahl der Kartenmarke aus der Verordnung (EU) 2015/751 betrifft Co-Badge-girocards laut Stripe nur bei Zahlungen vor Ort; online geht es um Karten mit Cartes-Bancaires-Co-Badge. Wundere dich trotzdem nicht über eine Netzwerkauswahl im Test-Checkout: In Sandboxes ist Cartes Bancaires für Online-Zahlungen immer aktiviert, deshalb kann der Selektor auf Stripes gehosteten Oberflächen auftauchen, auch wenn du Cartes Bancaires nie eingeschaltet hast. Die Co-Branding-Karte Cartes Bancaires/Visa steht in der Markengruppe.

Zwei Dinge, die diese Zeilen nicht zeigen und die du vor dem Livegang wissen solltest. Eine SEPA-Lastschrift entscheidet sich im Test nach Minuten; im Live-Modus rät Stripe, mindestens sechs Werktage zu warten, bevor du eine Zahlung als erfolgreich betrachtest. Und die Kundin kann eine Lastschrift bis zu acht Wochen danach ohne Angabe von Gründen über ihre Bank anfechten — solche Anfechtungen werden automatisch anerkannt; danach und bis zu 13 Monate nach dem Einzug nur noch, wenn die Lastschrift als nicht autorisiert gilt. Plane die Auslieferung entsprechend: Das Ereignis payment_intent.succeeded ist bei der Lastschrift nicht das letzte Wort.

Welche Karte welchen Fehler auslöst — und was dein Webhook sieht

Eine fehlgeschlagene Zahlung gut zu behandeln heißt, drei Dinge gleichzeitig im Kopf zu haben: den error.code, den dein API-Aufruf wirft, den decline_code, den der Aussteller mitschickt, und das Ereignis, das später an deinem Webhook-Endpunkt ankommt. Stripe dokumentiert die drei auf drei verschiedenen Seiten, deshalb ist die meiste Integration gegen eine davon geschrieben und von den anderen beiden überrascht. Hier steht dieselbe Information als eine Zeile pro Ergebnis.

TestkarteWas sie simulierterror.codedecline_codeWebhook-Ereignis
4000 0000 0000 0002Allgemeine Ablehnungcard_declinedgeneric_declinepayment_intent.payment_failed
4000 0000 0000 9995Unzureichende Deckungcard_declinedinsufficient_fundspayment_intent.payment_failed
4000 0000 0000 9987Verlorene Kartecard_declinedlost_cardpayment_intent.payment_failed
4000 0000 0000 9979Gestohlene Kartecard_declinedstolen_cardpayment_intent.payment_failed
4000 0000 0000 6975Zu viele Versuche mit einer Kartecard_declinedcard_velocity_exceededpayment_intent.payment_failed
4000 0000 0000 0069Abgelaufene Karteexpired_cardkeinerpayment_intent.payment_failed
4000 0000 0000 0127Falsche CVCincorrect_cvckeinerpayment_intent.payment_failed
4000 0000 0000 0119Verarbeitungsfehler im Netzwerkprocessing_errorkeinerpayment_intent.payment_failed
4242 4242 4242 4241Nummer, die die Luhn-Prüfung nicht bestehtincorrect_numberkeinerkeins — abgelehnt, bevor eine Zahlung existiert
4100 0000 0000 0019Radar blockiert sie immercard_declinedgeneric_declinepayment_intent.payment_failed
4000 0000 0000 9235Erhöhtes Risiko, zur Prüfung eingereihtkeiner — die Zahlung wird erstelltkeinerreview.opened
4000 0000 0000 0101CVC-Prüfung schlägt bei Radar fehlcard_declinedgeneric_declinepayment_intent.payment_failed
4000 0000 0000 0036Postleitzahlprüfung schlägt bei Radar fehlcard_declinedgeneric_declinepayment_intent.payment_failed
4000 0000 0000 0259Zahlung erfolgreich, dann Anfechtung wegen Betrugskeinerkeinercharge.dispute.created
4000 0000 0000 2685Zahlung erfolgreich, dann „Produkt nicht erhalten“keinerkeinercharge.dispute.created
4000 0000 0000 5423Zahlung erfolgreich, dann frühzeitige Betrugswarnungkeinerkeinerradar.early_fraud_warning.created
4000 0000 0000 7726Rückerstattung erst ausstehend, später erfolgreichkeinerkeinerrefund.updated
4000 0000 0000 5126Rückerstattung scheinbar erfolgreich, später fehlgeschlagenkeinerkeinerrefund.failed
4000 0000 0000 32203D-Secure-Authentifizierung erforderlichkeinerkeinerpayment_intent.requires_action
4000 0084 0000 1629Authentifiziert, dann trotzdem abgelehntcard_declinedkeinerpayment_intent.payment_failed
4000 0084 0000 1280Die 3D-Secure-Abfrage selbst schlägt fehlcard_declinedkeinerpayment_intent.payment_failed

Aus dem Lesen als eine Tabelle folgen zwei Gewohnheiten. Erstens: card_declined ist kein Grund, sondern eine Kategorie — der Grund steht im decline_code. Von den acht Ablehnungen oben in der Tabelle tragen fünf einen; die drei anderen liefern einen eigenen error.code. Eine Fehlerbehandlung, die nur auf error.code schaut, kann unzureichende Deckung und eine gestohlene Karte nicht auseinanderhalten. Dabei sollen verlorene und gestohlene Karten laut Stripe gegenüber dem Kunden gar nicht genannt, sondern als generic_decline gemeldet werden — während der Kunde, dessen Konto nur gerade leer ist, einen hilfreichen Hinweis verdient.

Zweitens tauchen manche Ergebnisse in der Antwort gar nicht auf. Eine zur Prüfung eingereihte Zahlung, eine Anfechtung drei Wochen später, eine asynchrone Rückerstattung, die von erfolgreich auf fehlgeschlagen springt — nichts davon ist im Moment des API-Aufrufs sichtbar. Es kommt als Ereignis, oder es kommt gar nicht, weil der Endpunkt nie gebaut wurde. Genau diesen Fehlerfall solltest du gezielt testen: Karte auslösen, dann nachsehen, was dein System mit dem Ereignis gemacht hat.

Zwei Fußnoten, die nicht in die Tabelle passen. Stripe überspringt die CVC- und die Postleitzahlprüfung, wenn du diese Felder nicht mitschickst — die Karten für eine fehlschlagende Prüfung gehen also still durch, solange dein Formular die Felder nicht erfasst. Und für von Radar blockierte Zahlungen nennt Stripe generic_decline, dessen Beschreibung ausdrücklich den Fall einschließt, dass Stripe-Radar bzw. Adaptive Acceptance die Zahlung blockiert haben: Der Kunde soll nicht erfahren, dass er als verdächtig eingestuft wurde. Und weil der Status auf Kartenebene aus einem Test laut Stripe spätere Tests mit derselben Karte beeinflussen kann, nimmst du für jedes unabhängige End-to-End-Szenario eine eigene Testkarte.

3D Secure testen

3D Secure ist der Authentifizierungsschritt, den die Regeln zur starken Kundenauthentifizierung für die meisten Online-Kartenzahlungen im EWR verlangen — und die Stelle, an der eine funktionierende Integration am häufigsten umfällt, weil der Normalfall sie nie sieht. Eine Zahlung, die eine Authentifizierung braucht, schlägt weder fehl noch gelingt sie: Der PaymentIntent kommt mit dem Status requires_action zurück, und dein Frontend muss an Stripe.js übergeben, damit der Kunde die Abfrage abschließen kann.

Neun Karten der Tabelle decken die Zweige ab, und die Unterscheidung, die am meisten Zeit spart, ist erforderlich gegen unterstützt:

  • 4000 0000 0000 3220 — Authentifizierung erforderlich, sie gelingt. Das ist die Karte, gegen die du baust. Mit ihr merkst du, ob dein Client den Bestätigungsschritt wirklich aufruft oder requires_action still als Fehler behandelt.
  • 4000 0000 0000 3055 — 3D Secure wird unterstützt, standardmäßig aber nicht angefordert. Nützlich, um zu prüfen, dass du die Authentifizierung nicht versehentlich zur Pflicht gemacht hast.
  • 4000 0084 0000 1629 und 4000 0084 0000 1280 — die beiden schlechten Enden: Der Kunde authentifiziert sich und der Aussteller lehnt trotzdem ab, oder die Abfrage selbst schlägt fehl. Beide kommen als card_declined zurück; eine Fehlerbehandlung, die eine abgeschlossene Abfrage für eine abgeschlossene Zahlung hält, zeigt eine Erfolgsseite für eine Zahlung, die nie stattgefunden hat.
  • 4000 0025 0000 3155 und 4000 0027 6000 3184 — die Fälle mit gespeicherter Karte. Die erste verlangt Authentifizierung für Off-Session-Zahlungen, bis sie für künftige Zahlungen eingerichtet ist; die zweite verlangt sie immer. Wenn du später abbuchen willst, ohne dass der Kunde dabei ist, entscheiden diese beiden über eine funktionierende Verlängerung oder ein totes Abo.

Eine Falle: Nur die Karten dieser Gruppe testen 3D Secure wirklich. Andere Testkarten können es auslösen, aber Stripe gibt dann attempt_acknowledged zurück und überspringt die zusätzlichen Schritte — deine Challenge-Oberfläche erscheint nie, und du schließt fälschlich, dass sie funktioniert. Die deutsche Karte und die anderen europäischen Karten der Gruppe „nach Land“ gehen ohnehin ohne Authentifizierung durch. Und 3D-Secure-Weiterleitungen finden für Zahlungen, die direkt im Stripe-Dashboard angelegt werden, nicht statt: Steuere den Test über dein eigenes Frontend oder einen API-Aufruf.

Stripe-Testkarten nach Land

Stripe führt eine eigene Liste von Testkarten nach Land: 64 Karten aus 58 Ländern, jede simuliert eine erfolgreiche Zahlung mit einer Karte aus diesem Land. Sie sind die letzte Gruppe der Tabelle, und auf dieser Seite steht Deutschland darin an erster Stelle. Die PaymentMethods folgen dem Ländercode — pm_card_de, pm_card_at, pm_card_ch — mit drei Ausnahmen: Die mexikanische Carnet-Karte und die saudische Karte haben keine PaymentMethod, und die japanische JCB-Karte nutzt pm_card_jcb, dieselbe wie die JCB-Karte der Markengruppe. Die Zeile für die Vereinigten Staaten ist 4242 4242 4242 4242 selbst, mit eigener pm_card_us.

Diese Karten ändern das Ausstellerland, und genau dafür sind sie da: Stripe berechnet grenzüberschreitende Gebühren nach dem Land des Kartenausstellers, auch in Testumgebungen. Lass sie also durch alles laufen, was die Gebühr oder das Land der Karte ausliest — etwa eine Abrechnung, die zwischen EWR- und Auslandskarten unterscheidet. Authentifizierung testen sie nicht: Die Karten aus Europa und dem Nahen Osten gehen ohne 3D Secure durch.

Um zu simulieren, wo der Kunde sitzt, statt woher seine Karte kommt, dokumentiert Stripe E-Mail-Adressen im Standortformat für Checkout-Sitzungen, Zahlungslinks und Preistabellen: Häng +location_XX an den lokalen Teil, etwa test+location_DE@example.com, und übergib die Adresse als customer_email einer Checkout-Sitzung oder als prefilled_email eines Zahlungslinks. So siehst du, was eine Kundin in Deutschland im Checkout angezeigt bekommt.

Unter der Kartentabelle stehen die Testwerte, die Stripe für drei lokale Methoden veröffentlicht: SEPA-IBANs für Deutschland, Frankreich und Spanien, Konbini für Japan und Boleto für Brasilien. Sie entscheiden sich anders als Karten. Eine SEPA-Lastschrift wartet in processing, bevor sie gelingt oder fehlschlägt, ein Konbini- oder Boleto-Gutschein wartet in requires_action, bis er bezahlt ist oder abläuft — jede Zeile nennt deshalb die ganze Abfolge von Ereignissen, die dein Webhook bekommt, nicht nur eines.

Rückerstattungen, Anfechtungen und alles, was später kommt

Rückerstattungen sind im Live-Modus asynchron: Eine Rückerstattung kann scheinbar gelingen und später fehlschlagen, oder erst ausstehen und später gelingen. Fast jede Testsuite verpasst das, weil Rückerstattungen mit gewöhnlichen Testkarten sofort erfolgreich sind und ihren Status danach nie ändern. Zwei Karten holen das echte Verhalten zurück: 4000 0000 0000 7726 lässt die Rückerstattung erst ausstehen und später gelingen, 4000 0000 0000 5126 meldet sie erst als erfolgreich und lässt sie später scheitern. Beide senden danach ein Ereignis — genau der Codepfad, den du geschrieben haben willst, bevor ein Kunde am Telefon nach Geld fragt, das nie zurückkam.

Anfechtungen laufen genauso, nur in Zeitlupe. Die Zahlung gelingt ganz normal, Tage später erscheint eine Rückbuchung, und charge.dispute.created ist die einzige Nachricht, die du bekommst. 4000 0000 0000 0259 löst eine Anfechtung wegen Betrugs aus, 4000 0000 0000 2685 „Produkt nicht erhalten“, und 4000 0000 0000 1976 eine Anfrage statt einer vollen Rückbuchung — ein Unterschied, der sich lohnt, weil eine Anfrage oft ohne Eskalation geschlossen werden kann und eine Rückbuchung nicht. 4000 0000 0000 5423 erzeugt stattdessen eine frühzeitige Betrugswarnung: das Netzwerk kündigt eine wahrscheinliche Anfechtung an, solange eine freiwillige Rückerstattung noch möglich ist.

Um auch den Ausgang zu simulieren, antwortest du auf die Anfechtung mit den Beweiswerten, die Stripe für Tests reserviert: winning_evidence schließt sie als gewonnen, losing_evidence als verloren, und escalate_inquiry_evidence macht aus einer Anfrage eine Rückbuchung. Über die API übergibst du den Wert als uncategorized_text. Für die SEPA-Lastschrift gibt es mit DE35370400440532013002 eine eigene Test-IBAN, die sofort nach dem Erfolg eine Zahlungsanfechtung erzeugt.

Als Letztes aus dieser Gruppe: 4000 0000 0000 0077 bucht das Geld direkt auf dein verfügbares statt auf dein ausstehendes Guthaben. Das ist kein Zahlungstest, sondern ein Buchhaltungstest — nützlich, wenn nachgelagert etwas Auszahlungen abgleicht und du nicht erst eine Abwicklungsfrist abwarten willst, um zu sehen, ob es funktioniert.

Die Fixtures als JSON oder CSV herunterladen

Eine Tabelle, die du von Hand abschreiben musst, schreibst du falsch ab. Die beiden Download-Knöpfe oben auf der Seite liefern dieselben 119 Karten als maschinenlesbare Dateien, im Browser aus genau den Daten erzeugt, aus denen diese Seite gerendert wird — was du herunterlädst, kann also nicht von dem abweichen, was du gerade gelesen hast.

Das JSON ist ein Objekt mit source, checked, count und einem Array cards. Jede Karte trägt eine stabile id, auf die du dich in einem Testnamen beziehen kannst, die Ziffern, die Marke, die Gruppe, eine einzeilige Beschreibung, die Regeln für CVC und Ablaufdatum, die vier Felder des Abgleichs — payment_method, error_code, decline_code und webhook_event — und country, den ISO-Code des Ausstellerlands für die Karten der Gruppe nach Land. Felder, die nicht zutreffen, sind null statt zu fehlen, damit ein Parser nie auf fehlende Schlüssel prüfen muss.

Das CSV enthält dieselben zwölf Spalten mit Anführungszeichen nach RFC 4180 — es öffnet sich in einer Tabellenkalkulation und lädt in pandas ohne Konvertierungsargument. Beide Dateien bleiben englisch, in jeder Sprachversion dieser Seite dieselben. Die Testwerte der lokalen Zahlungsmethoden sind zum Kopieren da, nicht zum Herunterladen: Keine der beiden Dateien enthält sie.

Beide Downloads folgen dem gesetzten Filter. Grenz die Tabelle auf die Ablehnungen ein, drück „JSON herunterladen“, und du bekommst zehn Zeilen statt 119 — meist genau das, was ein parametrisierter Test will:

test.each(fixtures.cards.filter(c => c.group === 'decline'))(
  '$id surfaces $decline_code',
  async ({ payment_method, error_code, decline_code }) => { /* … */ },
);

Die Dateien tragen die Quell-URL und das Prüfdatum, denn einer Kartenliste ohne Datum kannst du in sechs Monaten nicht mehr trauen. Ändert Stripe eine Nummer, ist die ehrliche Korrektur ein erneuter Blick in die Quelle, nicht eine veraltete Kopie im Repository.

Was du eigentlich baust

Niemand schlägt Testkarten zum Spaß nach. Du bist hier, weil du einen Checkout verdrahtest, und der Checkout ist ein Teil von etwas Größerem: ein Katalog, ein Preis, den der Kunde nicht ändern kann, eine Sitzung, die irgendwo mit einem Geheimnis erzeugt wird, ein Webhook, der entscheidet, ob die Bestellung als bezahlt gilt, und alles, was passiert, nachdem das Geld angekommen ist.

Das Teil, das am häufigsten schiefgeht, ist nicht die Karte, sondern der Preis. Eine statische Website, die ihre Preise im HTML hält und einen Betrag an einen Checkout-Endpunkt schickt, vertraut dem Browser die Zahl an — und der Browser ist nicht vertrauenswürdig. Das ist eine ganze Klasse von Fehlern, die keine Testkarte je findet, denn eine manipulierte Zahlung geht wunderbar durch.

Clize baut genau deshalb auf Stripe Checkout und legt den Preis auf die Serverseite: Ein gehosteter Shop berechnet jeden Warenkorb gegen die _catalog.json, die mit der Website ausgeliefert wird, und ignoriert den Betrag, den der Client behauptet. Wenn das die Form deines Problems ist, gibt es für die Katalogdatei einen Generator und einen Validator (auf Englisch). Und wenn nur ein Kunde einen Betrag bezahlen soll, liefert clize pay link --amount 49 eine echte Stripe-Checkout-URL ohne eigenes Stripe-Konto — diese Zahlung ist echtes Geld, also halte sie weit weg von den Nummern auf dieser Seite.

FAQ

Welche Nummer hat die Stripe-Testkarte?

Die Standardkarte ist 4242 4242 4242 4242, eine Visa, die immer gelingt. Dazu eine beliebige dreistellige CVC, ein beliebiges Ablaufdatum in der Zukunft wie 12/34 und beliebige Werte in den übrigen Feldern. Sie funktioniert nur mit deinen Stripe-Test-API-Schlüsseln.

Welches Ablaufdatum und welche CVC nehme ich für eine Stripe-Testkarte?

Jedes Datum in der Zukunft funktioniert — 12/34 ist das Beispiel, das Stripe selbst nennt. Die CVC sind beliebige drei Ziffern, bei American Express beliebige vier. Schickst du gar keine CVC mit, überspringt Stripe die Prüfung; deshalb scheint die Karte für eine fehlschlagende CVC-Prüfung zu gelingen, wenn dein Formular das Feld weglässt.

Gibt es eine deutsche Stripe-Testkarte?

Ja: 4000 0027 6000 0016 mit der PaymentMethod pm_card_de, die Zeile Deutschland in Stripes Liste nach Land. Sie simuliert eine erfolgreiche Zahlung mit einer in Deutschland ausgestellten Karte, ohne Authentifizierung. Für 3D Secure nimmst du die Karten der Gruppe 3D Secure, etwa 4000 0000 0000 3220. Eine girocard-Testkarte führt Stripe nicht.

Wie teste ich eine SEPA-Lastschrift mit Stripe?

Mit Stripes Test-IBANs, zum Beispiel DE89370400440532013000 für eine Lastschrift, die gelingt, und DE62370400440532013001 für eine, die fehlschlägt. Der PaymentIntent geht zuerst in processing und dann in succeeded oder requires_payment_method; die verzögerten IBANs brauchen mindestens drei Minuten. Im Live-Modus rät Stripe, mindestens sechs Werktage zu warten, bevor du eine Lastschrift als erfolgreich betrachtest.

Warum wird meine Stripe-Testkarte abgelehnt?

Drei übliche Gründe. Du schickst sie an Live-Schlüssel; dort meldet Stripe eine Testnummer mit dem Ablehnungscode testmode_decline. Du hast eine Karte kopiert, die ablehnen soll — 4000 0000 0000 0002 und die ganze Gruppe Ablehnungen gibt es genau dafür. Oder die Nummer fällt durch die Luhn-Prüfung, wie 4242 4242 4242 4241, die incorrect_number liefert, bevor eine Zahlung entsteht.

Wie teste ich 3D Secure mit Stripe?

Mit 4000 0000 0000 3220: Sie verlangt eine Authentifizierung, und die gelingt. Der PaymentIntent kommt als requires_action zurück, und dein Frontend muss an Stripe.js übergeben, damit der Kunde die Abfrage abschließt. Nur die Karten der Gruppe 3D Secure testen diesen Ablauf wirklich; andere können ihn auslösen, aber Stripe gibt attempt_acknowledged zurück und überspringt den Schritt.

Welche Stripe-Testkarte löst eine Zahlungsanfechtung aus?

4000 0000 0000 0259 für eine Anfechtung wegen Betrugs, 4000 0000 0000 2685 für „Produkt nicht erhalten“ und 4000 0000 0000 1976 für eine Anfrage statt einer vollen Rückbuchung. Die Zahlung gelingt zuerst, die Anfechtung kommt später als Ereignis charge.dispute.created. Mit den Beweiswerten winning_evidence oder losing_evidence schließt du sie als gewonnen oder verloren.

clize pay link — eine echte Checkout-URL mit einem Befehl

Wenn die Tests durch sind: eine echte Zahlung annehmen.

Ein Befehl liefert einen echten Stripe-Checkout-Link, ohne eigenes Stripe-Konto, ohne Schlüssel und ohne Onboarding-Formular. Das ist echtes Geld — halte die beiden Nummernsätze sauber auseinander.

$ npm i -g @clize/clize && clize login
$ clize pay link --amount 49 --for "Rechnung 1042"
[ Agent Storefront → ]