Indische E-Mandate integrieren
Dieser Leitfaden bietet einen Überblick darüber, wie indische E-Mandate mit Stripe Invoicing generiert und für einmalige Zahlungen verwendet werden. Zurzeit können Sie indische E-Mandate nur über die API integrieren.
Wir verwenden den Begriff Off-Session zur Beschreibung von Zahlungen, die ohne direkte Beteiligung der Kundin/des Kunden erfolgen. Bei dieser Art von Zahlungen werden die zuvor erfassten Zahlungsinformationen der Kundin/des Kunden verwendet. Im Gegensatz dazu finden On-Session-Zahlungen statt, wenn eine Kundin/ein Kunde direkt an der Durchführung einer Zahlung beteiligt ist. Dies kann entweder über die Nutzerschnittstelle oder über eine Zwei-Faktor-Authentifizierung wie 3D Secure (3DS) erfolgen.
Ein Mandat generieren
Wenn Sie ein Mandat generieren möchten, während Ihr/e Kund/in angemeldet ist, führen Sie einen Aufruf zum Erstellen eines SetupIntent durch, der die Zahlungsmethoden-ID und die Mandatsdetails enthält.
Notiz
Wenn Sie eine Anfrage zum Erstellen eines SetupIntent übermitteln, muss das Anfangsdatum ein Zeitstempel sein und innerhalb eines Tages nach dem heutigen Tag liegen.
Nachdem Sie den SetupIntent erstellt haben, verwenden Sie das Payment Element, um die kundenseitigen Zahlungsdetails zu erfassen und zukünftige Zahlungen einzurichten. Um die Einrichtung mithilfe der vom Payment Element erfassten Informationen abzuschließen, verwenden Sie stripe.confirmSetup.
stripe.confirmSetup({ elements, confirmParams: { // Return URL where the customer should be redirected after the SetupIntent is confirmed. return_url: 'https://example.com', }, }) .then(function(result) { if (result.error) { // Inform the customer that there was an error. } });
Durch die Bestätigung des SetupIntent wechselt dieser in den Status requires_action
zusammen mit der Eigenschaft next_action
, die beschreibt, welche Maßnahmen ergriffen werden müssen, um die Zahlung abzuschließen.
{ "payment_method_options": { "card" : { "mandate_options" : { "reference" : "{{REFRENCE}}", "description" : "{{DESCRIPTION}}", "amount" : "{{AMOUNT}}", "currency" : "inr", "type" : "{{AMOUNT_TYPE}}", "start_date" : "{{START_DATE}}", "end_date" : "{{END_DATE}}", "interval" : "{{INTERVAL}}", "interval_count" : "{{INTERVAL_COUNT}}" } } }, "status": "requires_action", "next_action": { "type": "use_stripe_sdk", "use_stripe_sdk": { "type": "three_d_secure_redirect", "stripe_js": "https://hooks.stripe.com/redirect/authenticate/src_xxxxxxxxxxx", "source": "src_xxxxxxxx" } }, // Other existing SetupIntent params }
Nach erfolgreichem Abschluss der zusätzlichen Faktorauthentifizierung (3DS) durch den/die Karteninhaber/in wechselt der SetupIntent in den Status succeeded
, und Stripe erstellt ein Mandat. Das Mandat ist im SetupIntent
-Objekt verfügbar.
{ "mandate": "{{MANDATE_ID}}", "payment_method_options": { "card" : { "mandate_options" : { "reference" : "{{REFRENCE}}", "description" : "{{DESCRIPTION}}", "amount" : "{{AMOUNT}}", "currency" : "inr", "type" : "{{AMOUNT_TYPE}}", "start_date" : "{{START_DATE}}", "end_date" : "{{END_DATE}}", "interval" : "{{INTERVAL}}", "interval_count" : "{{INTERVAL_COUNT}}" } } }, status: "succeeded", // Other existing SetupIntent params }
Notiz
Sie können den Parameter payment_method_options[card][mandate_options]
für alle Registrierungsanfragen für Abonnements übergeben. Stripe ignoriert diese Parameter, wenn Ihr/e Kund/in für das Abonnement eine nicht-indische Karte verwendet, da die Verordnung für ihn/sie nicht gilt.
Ein Mandat zum Erstellen einer Rechnung verwenden
Wenn Sie eine Rechnung erstellen, können Sie das Standardmandat für alle Off-Session-Zahlungen der Rechnung festlegen. Wenn Sie Standardmandate verwenden, empfehlen wir Ihnen, die entsprechende Zahlungsmethode und die default_payment_method
festzulegen:
# Request to create an Invoice with a default mandate curl https://api.stripe.com/v1/invoices \ -u sk_test_123: \ -d customer=cus_xyz \ -d default_payment_method=pm_xxx \ -d payment_settings[default_mandate]=mandate_xyz
Schließlich wird mit dieser Rechnung möglicherweise versucht, eine Off-Session-Belastung der Zahlungsmethode vorzunehmen. Mögliche Gründe dafür: Sie haben die Rechnung so konfiguriert, dass sie automatisch weitergeleitet wird, sie haben die Rechnung manuell über den Endpoint Invoice Pay weitergeleitet oder Sie haben den PaymentIntent der Rechnung bestätigt. Wenn versucht wird, Ihre Kundin/Ihren Kunden mit der Rechnung zu belasten, werden die Parameter default_mandate
und default_payment_method
zusammen verwendet, um die Rechnung „off-session“ zu bezahlen.
Solange das Mandat aktiv bleibt und die Zahlung hinsichtlich Betrag und Häufigkeit innerhalb der ursprünglichen Parameter des Mandats liegt, wird die Zahlung erfolgreich verarbeitet. Es ist auch möglich, die Parameter default_mandate
und default_payment_method
für die Rechnung über den Endpoint Invoice Update festzulegen.
Mandat für Rechnungsstellung verwenden
Wenn Sie das Mandat nicht bei der Erstellung der Rechnung festlegen möchten (z. B. weil Sie das Mandat noch nicht erfasst haben), können Sie es zu zwei späteren Zeitpunkten während des Lebenszyklus des Mandats angeben. Welchen Weg Sie wählen, hängt davon ab, wie Sie Ihre bestehende Integration der Rechnungsstellung eingerichtet haben.
Wenn Sie jedoch den Endpoint Invoice Pay
verwenden, können Sie das Mandat als übergeordneten Parameter mandate
angeben. Wie bei der Festlegung des Standardmandats müssen Sie die mit dem Mandat zu verwendende Zahlungsmethode explizit angeben:
# Request to attempt payment on an open invoice with a mandate curl https://api.stripe.com/v1/invoices/in_aaa/pay \ -u sk_test_123: \ -d payment_method=pm_xxx \ -d mandate=mandate_xyz
Ebenso können Sie das Mandat verwenden, um den der Rechnung zugeordneten PaymentIntent zu bestätigen:
# Request to retrieve the invoice's PaymentIntent ID curl https://api.stripe.com/v1/invoices/in_aaa \ -u sk_test_123: # Response to GET /v1/invoices/in_aaa { "id": "in_abc789", "status": "open", "payment_intent": "pi_zyx", # ... more fields } # Request to attempt invoice payment with a mandate by confirming the payment intent curl https://api.stripe.com/v1/payment_intents/pi_zyc012/confirm \ -u sk_test_123: \ -d mandate=mandate_xyz
Benachrichtigung und Wartezeit
Vor der endgültigen Zahlung erhalten die Kund/innen eine Benachrichtigung, in der sie über die Abbuchung informiert werden. Die Kund/innen erhalten außerdem die Möglichkeit, das Mandat zu ändern oder zu stornieren. Nach Ablauf von 26 Stunden wird die Karte der Kundin/des Kunden mit dem Betrag belastet, und die Rechnung wechselt in den Status paid
.