Stripe-Ablehnungscodes erklärt: was bei jedem zu tun ist
Stripe-Ablehnungscodes bei Abo-Verlängerungen: Soft vs. Hard Declines, Advice Codes, Grenzen für Wiederholungen und was Sie dem Kunden bei jedem Code sagen.
Wenn eine Verlängerung bei Stripe fehlschlägt, kommt die Belastung mit einer kurzen Zeichenkette wie insufficient_funds oder do_not_honor zurück. Diese Zeichenkette ist die nützlichste Information, die Sie über den Fehlschlag bekommen. Sie sagt Ihnen, ob ein erneuter Versuch funktionieren kann, ob der Kunde etwas tun muss und was Sie ihm sagen dürfen.
Dieser Ratgeber geht die Ablehnungscodes durch, die für Abos am wichtigsten sind, gruppiert danach, was Sie dagegen tun sollten. Er hält sich an das, was Stripe in seiner Referenz der Ablehnungscodes und seinem Leitfaden zu Kartenablehnungen dokumentiert (beide abgerufen im November 2026), und sagt es, wenn Stripes eigene Seiten Raum für Interpretation lassen.
Wo die Codes stehen
Eine fehlgeschlagene Kartenzahlung bei Stripe kann mehrere Felder tragen. Sie beantworten unterschiedliche Fragen:
| Feld | Was es Ihnen sagt | Wo Sie es finden |
|---|---|---|
decline_code |
Stripes vereinheitlichter Grund für die Ablehnung durch die Bank, falls sie einen genannt hat | Im Fehler und in last_payment_error des PaymentIntent |
advice_code |
Was als Nächstes zu tun ist: erneut versuchen, nicht erneut versuchen oder die Kartendaten prüfen | Im Fehler, neben dem Ablehnungscode |
network_decline_code |
Der Rohcode des Kartennetzwerks | Im Ergebnis der Belastung |
network_advice_code |
Die eigene Empfehlung des Netzwerks (bei Mastercard seine Merchant Advice Codes) | Im Ergebnis der Belastung |
Stripe hat die Felder für Network Advice und Network Decline Code im Dezember 2024 zur API hinzugefügt. Stripes Dokumentation warnt, dass sich die Bedeutung eines network_decline_code zwischen Kartennetzwerken unterscheidet; lesen Sie ihn daher immer zusammen mit der Kartenmarke.
Bei Abos lesen Sie diese meist aus dem Webhook invoice.payment_failed: Holen Sie den PaymentIntent der Rechnung und sehen Sie sich last_payment_error an.
Advice Codes zuerst
Der advice_code ist das einfachste Signal, und Stripes Leitfaden zu Kartenablehnungen dokumentiert drei Werte:
try_again_later: Die Bank hat abgelehnt, aber Sie dürfen es erneut versuchen. Scheitern wiederholte Versuche, muss der Kunde seine Bank kontaktieren.do_not_try_again: Verwenden Sie diese Karte für diese Transaktion nicht erneut. Den Grund nennt der Ablehnungscode.confirm_card_data: Die Bank hat abgelehnt, weil Kartendaten falsch waren. Der Kunde muss seine Angaben prüfen.
Ist ein Advice Code vorhanden, hat er Vorrang vor jeder allgemeinen Faustregel. Ein do_not_try_again bei etwas, das wie ein Soft Decline aussieht, heißt: aufhören.
Soft vs. Hard Declines
Stripe kennzeichnet nicht jeden Code als soft oder hard, aber die Unterscheidung ist nützlich, und Stripe verwendet sie in seiner Dokumentation zu Wiederholungen:
- Soft Declines sind vorübergehend. Die Karte ist gültig; die Bank hat diesmal nein gesagt. Ein späterer Versuch kann funktionieren.
- Hard Declines bedeuten, dass die Karte so, wie sie ist, nicht belastet werden kann. Stripes Seite zu Smart Retries listet die Codes, bei denen es ohne neue Zahlungsmethode nicht erneut versucht:
incorrect_number,lost_card,pickup_card,stolen_card,revocation_of_authorization,revocation_of_all_authorizations,authentication_required,highest_risk_levelundtransaction_not_allowed.
Bei diesen Hard-Decline-Codes plant Stripe weiterhin Wiederholungen auf der Rechnung, aber eine Belastung läuft erst, wenn eine neue Zahlungsmethode hinterlegt ist. Fragt niemand den Kunden, passiert nichts. Die Seite der Wiederholungen erklären wir ausführlich in So funktionieren Stripe Smart Retries.
Die häufigen Codes und was zu tun ist
Die Tabelle unten behandelt die Codes, die Sie bei Abo-Verlängerungen am häufigsten sehen. „Stripes Beschreibung und nächster Schritt“ gibt die Referenz der Ablehnungscodes sinngemäß wieder; „Bei einem Abo“ ist unsere praktische Lesart.
| Code | Stripes Beschreibung und nächster Schritt | Erneut versuchen? | Bei einem Abo |
|---|---|---|---|
insufficient_funds |
Nicht genug Deckung; der Kunde sollte eine andere Zahlungsmethode verwenden | Ja, später | Zu einem besseren Zeitpunkt erneut versuchen (nach einem wahrscheinlichen Zahltag); dem Kunden eine E-Mail mit Link zur Aktualisierung senden |
generic_decline |
Aus unbekanntem Grund abgelehnt oder von Radar blockiert; der Kunde kontaktiert die Bank | Ein paar Mal | Erneut versuchen; E-Mail; dem Kunden vorschlagen, seine Bank anzurufen oder eine andere Karte zu nutzen |
do_not_honor |
Allgemeine Ablehnung durch die Bank ohne bestimmten Grund | Ein paar Mal | Wie generic_decline |
processing_error |
Fehler bei der Verarbeitung der Karte; erneut versuchen, dann die Bank kontaktieren | Ja | Bald erneut versuchen; nur bei anhaltendem Fehlschlag eine E-Mail |
card_velocity_exceeded |
Der Kunde hat Guthaben, Kreditlimit oder Transaktionslimit überschritten; die Bank kontaktieren | Ja, später | Später erneut versuchen; in der E-Mail ein Ausgabelimit erwähnen |
expired_card |
Die Karte ist abgelaufen; eine andere Karte verwenden | Nein | Zuerst prüfen, ob es ein automatisches Kartenupdate gibt; sonst um eine neue Karte bitten |
incorrect_cvc |
Die CVC ist falsch; mit der richtigen CVC erneut versuchen | Nein | Den Kunden bitten, seine Karte auf der Aktualisierungsseite neu einzugeben |
incorrect_number |
Die Kartennummer ist falsch | Nein | Um eine neue Karte bitten |
lost_card, stolen_card |
Als verloren oder gestohlen gemeldet; als allgemeine Ablehnung darstellen | Nein | Um eine neue Karte bitten, ohne den Grund zu nennen |
pickup_card |
Die Karte kann für diese Zahlung nicht verwendet werden (möglicherweise als verloren oder gestohlen gemeldet); die Bank kontaktieren | Nein | Um eine neue Karte bitten |
fraudulent |
Stripe vermutet Betrug; dieselbe Nachricht wie bei einer allgemeinen Ablehnung zeigen | Nein | Mit Vorsicht behandeln; den Grund nicht offenlegen |
authentication_required |
Die Bank verlangt, dass sich der Kunde authentifiziert | Nicht ohne den Kunden | Einen Link zum Bestätigen der Zahlung senden; siehe SCA bei Verlängerungen |
revocation_of_authorization, stop_payment_order |
Stripe führt diese mit unbekanntem Grund; der Kunde kontaktiert die Bank | Nein | Um eine neue Zahlungsmethode bitten; prüfen, ob der Kunde aufhören wollte zu zahlen |
transaction_not_allowed |
Auf dieser Karte nicht zulässig | Nein | Um eine andere Karte oder Zahlungsmethode bitten |
Zwei Punkte übersieht man leicht:
- Manche Gründe dürfen dem Kunden nicht gezeigt werden. Bei
lost_card,stolen_cardundfraudulentsagt Stripes Referenz, dass die Ablehnung als allgemeine Ablehnung dargestellt werden soll. Ihre Mahnmail sollte „Ihre Zahlung wurde abgelehnt“ sagen, nie „Ihre Karte wurde als gestohlen gemeldet“. - „Kontaktieren Sie Ihre Bank“ ist eine echte Anweisung. Bei allgemeinen Ablehnungen löst ein Anruf bei der Bank die Sperre oft. Es ist in Ordnung, das in der E-Mail kurz zu sagen.
Grenzen für Wiederholungen sind real
Erneute Versuche sind nicht kostenlos, auch nicht bei Soft Declines. Kartennetzwerke begrenzen, wie oft ein Händler eine abgelehnte Karte erneut belasten darf, und Banken können übermäßige Wiederholungen als Betrugssignal werten.
Laut Stripes Support-Artikel zu wegen übermäßiger Wiederholungen blockierten Zahlungen (abgerufen im November 2026) verbieten Visas Regeln im Allgemeinen mehr als 15 Wiederholungen einer einzelnen Zahlung innerhalb von 30 Tagen. Bei Visa-Transaktionen mit integrierten Preisen blockiert Stripe Wiederholungen nach dem 15. Versuch, wenn es die Erfolgschance als gering einschätzt. Stripes eigene Standardwerte (8 Versuche bei Smart Retries) liegen deutlich darunter, aber eigene Wiederholungslogik außerhalb von Stripe kann die Grenze überschreiten, wenn Sie nicht aufpassen.
Das entsprechende Signal bei Mastercard ist der Merchant Advice Code, den Stripe als network_advice_code bereitstellt. Dokumentation von Zahlungsabwicklern wie Braintrees Referenz der Merchant Advice Codes beschreibt Codes, die „nicht erneut versuchen“ bedeuten, und einen, der bedeutet, dass der Karteninhaber die wiederkehrende Zahlung gekündigt hat. Wenn Sie diese sehen, hören Sie auf, diese Karte erneut zu belasten.
Praktische Regeln:
- Zählen Sie jeden Versuch pro Rechnung, auch die, die Ihr eigener Code auslöst.
- Hören Sie bei einem Hard Decline oder der Empfehlung
do_not_try_againsofort auf. - Versuchen Sie dieselbe Karte nicht mehrmals am selben Tag „für alle Fälle“.
- Verteilen Sie Wiederholungen bei Soft Declines und legen Sie sie auf Zeitpunkte, zu denen wahrscheinlich Geld verfügbar ist.
Was Sie dem Kunden sagen, nach Gruppe
Die meisten Teams senden für jeden Fehlschlag dieselbe E-Mail. Ein paar Varianten nach Ablehnungsgruppe funktionieren besser und kosten nicht viel zusätzliche Arbeit.
| Gruppe | Codes | Botschaft der E-Mail |
|---|---|---|
| Deckung oder Limits | insufficient_funds, card_velocity_exceeded |
„Wir versuchen es am [Datum] erneut. Wenn Sie lieber eine andere Karte verwenden möchten, aktualisieren Sie sie hier.“ |
| Unklar | generic_decline, do_not_honor, processing_error |
„Ihre Bank hat die Zahlung abgelehnt. Oft ist das eine vorübergehende Sperre; ein kurzer Anruf bei Ihrer Bank oder eine andere Karte löst es meist.“ |
| Karte unbrauchbar | expired_card, lost_card, stolen_card, pickup_card, incorrect_number |
„Wir brauchen eine neue Karte, damit Ihr Abo aktiv bleibt.“ Kein Grund genannt. |
| Authentifizierung | authentication_required |
„Ihre Bank bittet Sie, diese Zahlung zu bestätigen. Das dauert eine Minute.“ |
| Kartendaten | incorrect_cvc, Empfehlung confirm_card_data |
„Einige Kartendaten stimmten nicht überein. Bitte geben Sie Ihre Karte erneut ein.“ |
Fertige E-Mails für jeden Schritt finden Sie in unseren Vorlagen für Mahnmails.
Ablehnungscodes richtig protokollieren
Was Sie nicht messen, können Sie nicht verbessern. Speichern Sie für jede fehlgeschlagene Verlängerung:
- Rechnungs-ID, Kunden-ID, Betrag und Währung.
- Nummer und Datum des Versuchs.
decline_code,advice_code,network_decline_code,network_advice_code.- Kartenmarke, Kartentyp (Kredit, Debit, Prepaid) und Land.
- Ergebnis: zurückgewonnen (und wie: Wiederholung, neue Karte, Authentifizierung) oder verloren.
Mit ein paar Monaten Daten können Sie die Fragen beantworten, die zählen: welche Codes sich durch Wiederholung erholen und welche nur, wenn der Kunde handelt, ob Prepaid-Karten häufiger scheitern (siehe Prepaid- und virtuelle Karten) und ob Ihre E-Mails oder Ihre Wiederholungen den Großteil der Arbeit leisten.
Gruppierung für Berichte
Rohcodes sind für einen Monatsbericht zu feingliedrig. Gruppieren Sie sie:
| Berichtsgruppe | Codes |
|---|---|
| Soft: Deckung | insufficient_funds, card_velocity_exceeded |
| Soft: unklar | generic_decline, do_not_honor, processing_error, try_again_later |
| Hard: Karte | expired_card, lost_card, stolen_card, pickup_card, incorrect_number, incorrect_cvc |
| Hard: Autorisierung | revocation_of_authorization, revocation_of_all_authorizations, stop_payment_order, transaction_not_allowed |
| Authentifizierung | authentication_required |
| Risiko | fraudulent, highest_risk_level |
Behalten Sie den Rohcode in Ihren Daten, damit Sie später neu gruppieren können. Stripe fügt mit der Zeit Codes hinzu und kennzeichnet andere als veraltet; Stripes Referenz markiert inzwischen einige ältere Codes als veraltet zugunsten von Advice Codes.
Die Behandlung von Ablehnungen testen
Stripe stellt Testkartennummern bereit, die bestimmte Ablehnungscodes auslösen. Bevor Sie Rückgewinnungslogik live schalten, spielen Sie jede Gruppe im Testmodus durch:
- Ein Soft Decline plant eine Wiederholung und sendet die erste E-Mail.
- Ein Hard Decline sendet eine E-Mail „neue Karte nötig“ und versucht dieselbe Karte nicht erneut.
-
authentication_requiredsendet einen Bestätigungslink. -
lost_cardundstolen_carderzeugen eine allgemeine Nachricht. - Eine erfolgreiche Zahlung (
invoice.paid) stoppt alle E-Mails und Wiederholungen. - Jeder Versuch wird mit seinen Codes protokolliert.
Häufige Fehler
- Jede Ablehnung gleich behandeln. Eine gestohlene Karte acht Mal erneut zu belasten gewinnt nichts zurück und kann beim Netzwerk gegen Sie zählen.
- Dem Kunden den Rohgrund nennen. „Do not honor“ bedeutet Kunden nichts, und manche Gründe dürfen überhaupt nicht offengelegt werden.
- Advice Codes ignorieren. Sie existieren genau dafür, Ihnen zu sagen, ob Sie es erneut versuchen sollen.
- Nur den ersten Fehlschlag lesen. Der Code kann sich zwischen Versuchen ändern; eine Karte kann über einen langen Wiederholungszeitraum von
insufficient_fundszuexpired_cardwechseln. - Kein Ausweg bei Hard Declines. Wenn der einzige Weg zur Rückgewinnung eine Wiederholung ist, sind Hard Declines von vornherein verloren.
Für das Gesamtbild der Rückgewinnung fehlgeschlagener Zahlungen, von Wiederholungen über E-Mails bis zur Messung, siehe So gewinnen Sie fehlgeschlagene Zahlungen bei Stripe zurück.
Wie NoChurn hilft
NoChurn liest den Ablehnungscode bei jeder fehlgeschlagenen Verlängerung und behandelt jede Gruppe anders. Soft Declines werden zu Zeitpunkten erneut versucht, die sich an wahrscheinlichen Zahltagen und der Ortszeit des Kunden orientieren (oder Sie behalten Stripe Smart Retries). Hard Declines und Authentifizierungsanfragen überspringen sinnlose Wiederholungen und gehen direkt zu einer von der KI geschriebenen Mahnmail, vor dem Versand geprüft, mit einem Link zu einer gehosteten Seite zur Kartenaktualisierung. Sensible Gründe werden dem Kunden nie gezeigt, und jede Entscheidung wird mit ihrem Code protokolliert.
Es verbindet sich mit einem Klick mit Stripe, und der Preis hängt nur vom MRR ab, ohne Anteil am zurückgewonnenen Umsatz. Siehe fehlgeschlagene Zahlungen und Preise.