Erfahren Sie, wie Sie eine Integration aktualisieren, um E-Mandate der RBI zu unterstützen.
Die indische Zentralbank (Reserve Bank of India, RBI) hat eine Directive erlassen (die später im Dezember 2020 und März 2021 geändert wurde), die zusätzliche Sicherheitsmaßnahmen für wiederkehrende Zahlungen mit von in Indien ausgestellten Karten vorsieht. Diese Maßnahmen umfassen:
Banken müssen Karteninhaber/innen registrieren und ein E-Mandat über einen Einmalvorgang mit zusätzlicher Faktorauthentifizierung (AFA) wie 3D Secure (3DS) erstellen.
Banken müssen Karteninhaber/innen mindestens 24 Stunden vor Abbuchungen benachrichtigen und ihnen die Möglichkeit geben, Transaktionen abzulehnen.
Wiederkehrende Transaktionen über 15.000 INR (oder den Gegenwert in anderen Währungen) müssen jedes Mal die AFA durchlaufen.
Wenn Sie ein/e indische/r Stripe-Nutzer/in /in oder ein/e internationale/r (nicht-IN) Stripe-Nutzer/in/in sind, ist Ihr Unternehmen betroffen, wenn Sie Kund/innen haben, die indische Karten für folgende Zwecke verwenden:
Off-Session-Zahlungen
Abonnements oder Rechnungen, bei denen collection_method auf charge_automatically festgelegt ist
Funktionsweise von Zahlungen mit einem E-Mandat
Stripe hat mit einer Partnerplattform zusammengearbeitet, um die Registrierung von E-Mandaten und die Ausgabe von Abbuchungsankündigungen an Kund/innen zu unterstützen.
Notiz
Derzeit bieten wir die Verwendung von E-Mandaten für Stripe-Nutzer/innen in Mexiko und Japan nicht an.
Je nachdem, wie Sie mit Stripe vernetzt sind, müssen Sie möglicherweise zusätzliche Informationen an Stripe übermitteln, um ein Mandat einzurichten. Der/die Kund/in muss die AFA (3DS) durchlaufen, um das Mandat zu registrieren.
Nachfolgende Off-Session-Zahlungen oder automatische Abbuchungen für ein Abonnement unterliegen einer wesentlichen Änderung. Kund/innen müssen mindestens 24 Stunden vor der tatsächlichen Zahlung eine Abbuchungsankündigung erhalten, in der der genaue Abbuchungsbetrag genannt wird. Die Abbuchungsankündigung enthält Informationen über die Zahlung und eine Option zum Stornieren des Mandats. Wenn der Zahlungsbetrag über 15.000 INR oder dem Höchstbetrag des Mandats liegt, enthält die Abbuchungsankündigung einen Link zur Durchführung einer AFA (3DS), um die Zahlung zu autorisieren.
Da Stripe mit einer Partnerplattform vernetzt ist, warten wir 26 Stunden, bevor wir das Kundenkonto nach Erhalt einer Zahlungsanfrage belasten (wir fügen einen Puffer für möglichen nachgelagerte Probleme hinzu, was die 26 Stunden für die Vorab-Benachrichtigung erforderlich macht). Dies bedeutet, dass Stripe den Zahlungsvorgang um 26 Stunden verzögert.
Ohne ein Mandat für eine Off-Session-Zahlung wird der Kartenaussteller die Zahlung wahrscheinlich ablehnen.
Integration
Wenn Sie PaymentIntents oder SetupIntents verwenden, um Off-Session-Zahlungen für in Indien ausgestellte Karten zu erstellen, müssen Sie Ihre Integration aktualisieren.
Mandat erstellen
Um ein Mandat zu erstellen, geben Sie die folgenden Parameter für das PaymentIntent- oder das SetupIntent-Objekt an (zusätzlich zu den bestehenden Parametern).
Einer der Werte fixed oder maximum. Bei fixed bezieht sich der Parameter amount auf den genauen Betrag, der bei zukünftigen Zahlungen berechnet wird. Ist der Wert auf maximum festgelegt, kann einem/einer Kund/in mehr als der Höchstbetrag berechnet werden. Die Zahlung erfordert jedoch die Durchführung von AFA (3DS) für Beträge, die höher sind als der Höchtbetrag oder 15.000 INR (je nachdem, welcher Betrag niedriger ist).
Dieser Parameter gilt nur für SetupIntents. Er legt die Währung für zukünftige Zahlungen fest. Stripe unterstützt INR-Mandate für alle Unternehmen. Die folgenden Währungen werden nur für internationale (Nicht-IN)-Unternehmen unterstützt: USD, EUR, GBP, SGD, CAD, CHF, SEK, AED, JPY, NOK, MYR, HKD.
Enddatum des Mandats oder Abonnements, angegeben als Zeitstempel der Epoche bis zum Jahr 2051. Wird keine Angabe gemacht, bleibt das Mandat bis zur Stornierung aktiv.
Die Anzahl der Intervalle zwischen den Zahlungen. Beispielsweise bedeuten interval=month und interval_count=3 eine Zahlung alle 3 Monate. Die Intervalle umfassen maximal 1 Jahr (1 Jahr, 12 Monate oder 52 Wochen). Dieser Parameter ist nur optional, wenn interval=sporadic gilt.
Ein Array, das die für diese Zahlung unterstützten Mandatstypen angibt. Der einzige mögliche Wert ist [‘india’].
Notiz
Sie können den Parameter payment_method_options[card][mandate_options] für alle Anfragen übergeben. Stripe ignoriert diese Parameter, wenn Ihr/e Kund/in eine nicht in Indien ausgestellte Karte verwendet, da die Verordnung für ihn/sie nicht gilt.
Wenn der gezahlte Betrag variieren kann, richten Sie das Mandat mit amount_type=maximum ein. Sie können einem/einer Kund/in nicht mehr als den in einem Mandat des Typs amount_type=fixed festgelegten Betrag in Rechnung stellen. Mit amount_type=maximum können Sie jedoch mehr als den Höchstbetrag berechnen. Die Einschränkung hierbei ist, dass für Beträge, die den Höchstbetrag oder 15.000 INR überschreiten (je nachdem, welcher Betrag niedriger ist)eine AFA (3DS) erforderlich ist.
Beispiele:
Bei amount_type=maximum, amount=100000 muss sich der/die Kund/in für Beträge über 1.000 INR authentifizieren.
Bei amount=2000000 muss sich der/die Kund/in für Beträge über 15.000 INR authentifizieren.
Nach der Bestätigung des PaymentIntent mit einer Zahlungsmethode wechselt der PaymentIntent in den Status requires_action. Der/die Karteninhaber/in muss die AFA (3DS) durchführen, bevor der PaymentIntent in den Status succeeded übergeht und ein Mandat erstellt wird. E-Mandate erfordern eine vollständige Authentifizierung und Ergebnisse wie attempt_acknowledged oder Verarbeitungsfehler werden als Fehlschlag behandelt.
Stripe gibt keine Mandats-ID zurück, wenn eine der folgenden Situationen zutrifft:
Eine Karte ist keine in Indien ausgestellte Karte.
Die Währung für das Mandat wird weder vom Aussteller noch vom Land des Stripe-Kontos unterstützt.
Die in Indien ausgestellte Karte ist weder Visa noch Mastercard. Stripe unterstützt nur Mandate für diese beiden Karten.
Stripe unterstützt INR-Mandate für alle Unternehmen. Die folgenden Währungen werden nur für internationale (Nicht-IN)-Unternehmen unterstützt:
USD
EUR
GBP
SGD
CAD
CHF
SEK
AED
JPY
NOK
MYR
HKD
Es gibt über 100 ausstellende Banken in Indien, und die vollständige Anpassung an die neuen Anforderungen wird voraussichtlich einige Zeit in Anspruch nehmen. Ein Aussteller unterstützt möglicherweise für eine bestimmte Währung noch keine E-Mandate. In diesem Fall gibt Stripe keine Mandats-ID zurück.
{"id":"ch_xxxxxxxxxxxxxxxxxxxxxxxx","object":"charge","payment_intent":"pi_xxxxxxxxxxxxxxxxxxxxxxxx","payment_method":"pm_xxxxxxxxxxxxxxxxxxxxxxxx","payment_method_details":{"card":{"brand":"visa","country":"IN","mandate":"mandate_xxxxxxxxxxxxxxxxxxxxxxxx",// id of the mandate created
...
},
...
"status":"succeeded",
...
}
Mandats-Webhooks
Achten Sie auf das Ereignis mandate.updated, um sicherzustellen, dass das Mandat active ist, bevor Sie die gespeicherte Off-Session-Zahlungsmethode belasten.
Selbst wenn der PaymentIntent oder der SetupIntent möglicherweise in den Status status=succeeded übergegangen ist, ist das Mandat möglicherweise noch nicht active. Stripe erstellt das Mandatsobjekt im Status pending. Wenn das Mandat in den Status active übergeht, senden wir das Ereignis mandate.updated. In seltenen Fällen kann es bis zu 30 Minuten dauern, bis ein Mandat in den Status active im Live-Modus wechselt. Wenn das Mandat nach 30 Minuten noch nicht aktiv ist, können Sie davon ausgehen, dass Sie dieses Mandat nicht verwenden können.
{"object":{"id":"mandate_xxxxxxxxxxxxxxxxxxxxxxxx","object":"mandate","customer_acceptance":{"accepted_at":1677301688,"online":{"ip_address":"xx.xxx.xx.xxx","user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36"},"type":"online"},"livemode":false,"multi_use":{},"payment_method":"pm_xxxxxxxxxxxxxxxxxxxxxxxx","payment_method_details":{"card":{},"type":"card"},"status":"active","type":"multi_use"},"previous_attributes":{"status":"pending"}}
Wenn ein Mandat nicht erstellt werden kann, können Sie die Verwendung einer anderen Karte vorschlagen oder alternative Optionen anbieten, wie z. B. die On-Session-Zahlung auf Ihrer Website oder mit einem Link zu einer gehosteten Rechnungsseite.
Wenn Sie bereit sind, eine Off-Session-Belastung eines Kundenkontos vorzunehmen, erstellen Sie einen PaymentIntent mithilfe der Kunden- und PaymentMethod-ID.
Wenn der Off-Session-PaymentIntent bestätigt ist, sendet die ausstellende Bank die Abbuchungsankündigung an den/die Kund/in. Der PaymentIntent geht für die gesamte Dauer der Abbuchungsankündigung (26 Stunden) in den Status processing über und kann nicht abgebrochen werden.
Das Attribut processing.card.customer_notification.completes_at gibt den Zeitpunkt an, zu dem Stripe versucht, die Karte zu belasten. Wenn der/die Kund/in die erfolgreiche Zahlung bestätigen muss, muss er/sie die Zahlung bis zum angegebenen Zeitpunkt authentifizieren.
Fehler- und Ablehnungscodes
Wir geben Fehlercodes für die folgenden Szenarien zurück:
Fehlercode
Beschreibung
payment_intent_mandate_invalid
Dieser Code wird zurückgegeben, wenn eine wiederkehrende Zahlung mit einem inaktiven Mandat durchgeführt wird. Überprüfen Sie den Mandatsstatus, bevor Sie versuchen, die Zahlung einzuziehen – so lässt sich der Fehler leicht vermeiden.
india_recurring_payment_mandate_canceled
Dieser Code wird zurückgegeben, wenn eine wiederkehrende Zahlung mit einem stornierten Mandat durchgeführt wird. Dies kann passieren, wenn wir erst zu diesem Zeitpunkt erfahren, dass ein Mandat storniert wurde.
processing_error
Die Ermittlung eines (in der Regel vorübergehenden) Verarbeitungsfehlers gibt diesen Code zurück.
Dieser Code wird zurückgegeben, wenn Sie versuchen, eine nachfolgende Zahlung durchzuführen, und die Kundin/der Kunde die Berechtigungen für die automatische Abbuchung pausiert oder die Zahlung nicht authentifiziert hat, wenn dies erforderlich ist.
Testen
Mit diesen Testkartennummern können Sie verschiedene Szenarien simulieren.
Im Test-Modus dauert es etwa 15 Minuten, bis ein Off-Session-PaymentIntent den Status processing verlässt. Der On-Session-PaymentIntent für eine erste Zahlung wechselt nie in den Status processing.
Testkartennummer
Szenario
Simuliert die erfolgreiche Einrichtung von Mandaten und Verlängerungen.
Simuliert eine/n Karteninhaber/in , der/die eine Abbuchungsankündigung für eine Off-Session-Zahlung erhält und die Zahlung für ein Mandat eines beliebigen Betrags entweder storniert oder unterbricht.
Simuliert das Versäumnis der ausstellenden Bank, dem/der Karteninhaber/in eine Abbuchungsankündigung während einer Off-Session-Zahlung für ein Mandat in beliebiger Höhe zu senden.
Simuliert eine/n Karteninhaber/in, der/die ein Mandat in beliebiger Höhe storniert.
Beschränkungen
Beachten Sie die folgenden Einschränkungen:
Stripe versucht, automatisch Mandate nur für Abonnements zu erstellen, die nach dem 1. Oktober 2021 erstellt wurden. Wenn Sie vor diesem Datum ein Abonnement erstellt haben, stornieren Sie es und erstellen Sie ein neues Abonnement, um sicherzustellen, dass ein Mandat erstellt wird.
Sie können kein Mandat mit der Charges API und der Sources API erstellen. Wenn Sie ein Mandat erstellen möchten, müssen Sie die PaymentIntent API oder die SetupIntent API verwenden.
Sie können ein bestehendes Mandat nicht an ein Abonnement übergeben.
Sie können ein Mandat nicht stornieren oder aktualisieren.
Welcome to the Stripe Shell!
Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Log in to your
Stripe account and press Control + Backtick (`) on your keyboard to start managing your Stripe
resources in test mode.
- View supported Stripe commands:
- Find webhook events:
- Listen for webhook events:
- Call Stripe APIs: stripe [api resource] [operation] (e.g., )
Stripe Shell wurde für die Verwendung am Desktop konzipiert.