Weiter zum Inhalt
Konto erstellen
oder
anmelden
Das Logo der Stripe-Dokumentation
/
KI fragen
Konto erstellen
Anmelden
Jetzt starten
Zahlungen
Umsatz
Plattformen und Marktplätze
Geldmanagement
Entwicklerressourcen
Übersicht
Informationen zu Stripe Payments
Aktualisieren Sie Ihre Integration
Zahlungsanalysefunktionen
Online-Zahlungen
ÜbersichtIhren Use case findenZahlungen verwalten
Payment Links verwenden
Bezahlseite erstellen
Erweiterte Integration erstellen
In-App-Integration erstellen
Zahlungsmethoden
Zahlungsmethoden hinzufügen
Zahlungsmethoden verwalten
Schnellerer Bezahlvorgang mit Link
Zahlungsschnittstellen
Payment Links
Checkout
Web Elements
In-App-Elements
Zahlungsszenarien
Umgang mit mehreren Währungen
Nutzerdefinierte Zahlungsabläufe
Flexibles Acquiring
    Übersicht
    Eine Zahlung mehrmals erfassen
    Mehr als den autorisierten Betrag für eine Zahlung erfassen
    Erweiterte Rückstellung für eine Online-Kartenzahlung einrichten
    Autorisierung erhöhen
    Zahlung teilweise autorisieren
    Von Beta migrieren
Orchestrierung
Präsenzzahlungen
Terminal
Mehr als Zahlungen
Unternehmensgründung
Krypto
Financial Connections
Climate
StartseiteZahlungenFlexible acquiring

Eine Zahlung mehrmals erfassen

Erfassen Sie einen PaymentIntent mehrmals bis zum autorisierten Betrag.

Mit Multicapture können Sie eine PaymentIntent, die während des Bestätigungsschritts einer CheckoutSession erstellt wurde, mehrmals für eine einzelne Transaktion erfassen, bis zum vollständigen Betrag des PaymentIntent. Sie können ihn verwenden, wenn Sie Bestellungen mit mehreren Lieferungen haben und Gelder erfassen möchten, während Sie Teile der Bestellung abwickeln.

IC+-Funktion

Multicapture ist Teil der Funktionalität, von dem unsere Nutzer/innen beim Preismodell IC+ profitieren. Wenn Sie ein gemischtes Stripe-Preismodell anbieten und auf diese Funktion zugreifen möchten, wenden Sie sich an den Stripe Support.

Verfügbarkeit

Beachten Sie bei der Verwendung von Multicapture folgende Einschränkungen:

  • Es werden nur Online-Kartenzahlungen unterstützt
  • Verfügbar mit Amex, Visa, Discover, Mastercard, Cartes Bancaires, Diners Club, China UnionPay (CUP) und Japan Credit Bureau (JCB).
  • Geldbewegungen für separate Zahlungen und Überweisungen, die source_transaction verwenden, werden nicht unterstützt
  • Mit Stripe können Sie bis zu 50 Erfassungen für einen einzelnen PaymentIntent durchführen
  • Modus ist auf payment und capture_method in der CheckoutSession ist auf manual gesetzt.

CUP- und JCB-Unterstützung

CUP-Mehrfacherfassung ist nur in den USA verfügbar. JCB-Mehrfacherfassung ist nur in den USA, in Kanada, Australien und Neuseeland verfügbar.

Best Practices

Wenn Sie getrennte Sendungen für eine Bestellung versenden, benachrichtigen Sie Ihre Endkundinnen und -kunden proaktiv über die Details jeder Lieferung. Auf diese Weise werden Anfragen und Rückbuchungen von Kundinnen/Kunden vermieden, da sie verwirrt sind, weil sie mehrere Transaktionen auf ihren Kontoauszügen sehen. Verwenden Sie die folgenden Best Practices bei der Benachrichtigung von Kundinnen und Kunden:

  • Informieren Sie sie zum Zeitpunkt des Bezahlvorgangs vor dem Kauf über das geschätzte Lieferdatum und den Transaktionsbetrag für jede Lieferung.
  • Benachrichtigen Sie sie bei jeder Lieferung, zusammen mit dem Transaktionsbetrag.
  • Geben Sie Ihre vollständigen Rückerstattungs- und Stornorichtlinien an.

Sie können das Feld custom_text verwenden, wenn Sie eine neue CheckoutSession erstellen, um zusätzlichen Text auf der Bezahlseite anzuzeigen, um die Compliance-Anforderungen zu erfüllen.

Compliance

Sie sind bei Verwendung von Mehrfacherfassung für die Einhaltung aller geltenden Gesetze, Vorschriften und Netzwerkregeln verantwortlich. Informieren Sie sich über die Regeln der Kartennetze, mit denen Sie diese Funktion nutzen möchten, um sicherzustellen, dass Ihre Verkäufe allen geltenden Regeln entsprechen, die je nach Netzwerk unterschiedlich sind. Beispielsweise beschränken die meisten Kartennetzwerke die Nutzung von Mehrfacherfassung auf Transaktionen ohne Karte für den Verkauf von Waren, die separat versendet werden. Bestimmte Kartennetzwerke erlauben die Mehrfacherfassung für Unternehmen, basierend auf ihrer Branche (zum Beispiel Reisen), während andere die Mehrfacherfassung nicht für Ratenzahlungs- oder Einzahlungs-Workflows zulassen.

Die auf dieser Seite bereitgestellten Informationen im Zusammenhang mit der Einhaltung dieser Anforderungen dienen Ihrer allgemeinen Orientierung und stellen keine rechtliche, steuerliche, buchhalterische oder sonstige fachliche Beratung dar. Wenden Sie sich an eine Fachperson, wenn Sie sich bezüglich Ihrer Verpflichtungen unsicher sind.

Checkout-Sitzung erstellen

Fügen Sie Ihrer Website eine Schaltfläche zum Bezahlen hinzu, über die ein serverseitiger Endpoint aufgerufen wird, um eine Checkout-Sitzung zu erstellen.

checkout.html
<html> <head> <title>Buy cool new product</title> </head> <body> <!-- Use action="/create-checkout-session.php" if your server is PHP based. --> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>r

Eine Checkout-Sitzung ist eine programmgesteuerte Darstellung dessen, was Ihren Kundinnen und Kunden bei der Weiterleitung zum Zahlungsformular angezeigt wird. Sie können es mit Optionen wie den folgenden konfigurieren:

  • Posten für die Zahlungsabwicklung
  • Zu verwendende Währungen

Sie müssen success_url mit dem URL-Wert einer Seite auf Ihrer Website ausfüllen, an die Checkout Ihre Kundinnen und Kunden nach Abschluss der Zahlung zurückleitet. Optional können Sie auch einen cancel_url-Wert einer Seite auf Ihrer Website angeben, zu der Checkout Ihre Kundinnen/Kunden zurückleitet, wenn sie den Zahlungsvorgang vor Zahlungsabschluss abbrechen.

Notiz

Checkout-Sitzungen laufen standardmäßig 24 Stunden nach Erstellung ab.

Leiten Sie Ihre Kundinnen und Kunden nach dem Erstellen einer Checkout-Sitzung zu der in der Antwort zurückgegebenen URL weiter.

Legen Sie abschließend request_multicapture als if_available fest, um die Funktion zur Mehrfacherfassung zu aktivieren.

Ruby
# This example sets up an endpoint using the Sinatra framework. require 'json' require 'sinatra' require 'stripe' # Set your secret key. Remember to switch to your live secret key in production. # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
'sk_test_BQokikJOvBiI2HlWgH4olfQ2'
post '/create-checkout-session' do session = Stripe::Checkout::Session.create({ line_items: [{ price_data: { currency: 'usd', product_data: { name: 'T-shirt', }, unit_amount: 2000, }, quantity: 1, }], payment_method_options: { card: { request_multicapture: 'if_available', }, }, mode: 'payment', # These placeholder URLs will be replaced in a following step. success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel', }) redirect session.url, 303 end

Zahlungsmethoden

Standardmäßig aktiviert Stripe Karten und andere gängige Zahlungsmethoden. Sie können einzelne Zahlungsmethoden im Stripe Dashboard aktivieren oder deaktivieren. In Checkout wertet Stripe die Währung und etwaige Einschränkungen aus und zeigt den Kundinnen/Kunden dann dynamisch die unterstützten Zahlungsmethoden an.

Um zu sehen, wie Ihre Zahlungsmethoden Kundinnen und Kunden angezeigt werden, geben Sie eine Transaktions-ID ein oder legen Sie einen Bestellbetrag und eine Währung im Dashboard fest.

Sie können Apple Pay und Google Pay in Ihren Einstellungen für Zahlungsmethoden aktivieren. Standardmäßig ist Apple Pay aktiviert und Google Pay deaktiviert. In einigen Fällen filtert Stripe die Optionen jedoch heraus, auch wenn sie aktiviert sind. Wir filtern Google Pay, wenn Sie automatische Steuern aktivieren, ohne eine Versandadresse zu erfassen.

Die von Stripe gehosteten Checkout-Seiten benötigen keine Integrationsänderungen, um Apple Pay oder Google Pay zu aktivieren. Stripe verarbeitet diese Zahlungen genauso wie andere Kartenzahlungen.

PaymentIntent erfassen

Bei einem PaymentIntent im Status requires_capture, in dem die Mehrfacherfassung available ist, wird Stripe durch Angabe des optionalen Parameters final_capture auf false angewiesen, die verbleibenden, nicht erfassten Gelder freizugeben, wenn die Erfassungs-API aufgerufen wird. Wenn Sie beispielsweise einen Payment Intent in Höhe von 10 USD bestätigen, bleiben bei der Erfassung von 7 USD mit final_capture=false die verbleibenden 3 USD autorisiert.

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents/pi_xxx/capture \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount_to_capture=700 \ -d final_capture=false \ -d "expand[]"=latest_charge

In der PI-Erfassungsantwort werden die Felder amount_capturable und amount_received entsprechend aktualisiert.

// PaymentIntent Response { "id": "pi_ANipwO3zNfjeWODtRPIg", "object": "payment_intent", "amount": 1000, "amount_capturable": 300, // 1000 - 700 = 300 "amount_received": 700, // if latest_charge is expanded "latest_charge": { "id": "ch_xxx", "object": "charge", "amount": 1000, "amount_captured": 700, "amount_refunded": 0, ... } ... }

Endgültige Erfassung

Der PaymentIntent verbleibt im Status requires_capture, bis Sie eine der folgenden Maßnahmen ergreifen:

  • Setzen Sie final_capture auf true
  • Erfassung ohne den Parameter final_capture (da final_capture standardmäßig auf true eingestellt ist)
  • Das Autorisierungsfenster läuft ab.

An dieser Stelle gibt Stripe alle verbleibenden Gelder frei, und der PaymentIntent wechselt in den Status succeeded.

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents/pi_xxx/capture \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount_to_capture=200 \ -d final_capture=true \ -d "expand[]"=latest_charge

In der PI-Erfassungsantwort werden die Felder amount_capturable und amount_received entsprechend aktualisiert.

// PaymentIntent Response { "id": "pi_ANipwO3zNfjeWODtRPIg", "object": "payment_intent", "amount": 1000, "amount_capturable": 0, // not 100 due to final_capture=true "amount_received": 900, // 700 + 200 = 900 // if latest_charge is expanded "latest_charge": { "id": "ch_xxx", "object": "charge", "amount": 1000, "amount_captured": 900, "amount_refunded": 0, ... } ... }

Nicht erfasste PaymentIntents gehen in den Status canceled über, während teilweise erfasste PaymentIntents in den Status succeeded wechseln.

OptionalNicht erfasste Gelder freigeben

Ihre Integration testen

Verwenden Sie eine Stripe-Testkarte mit einer beliebigen CVC/Prüfzimmer und Postleitzahl und einem beliebigen zukünftigen Ablaufdatum, um Multicapture-Zahlungen zu testen.

Die NummerZahlungsmethodeBeschreibung
pm_card_visaDiese Testkarte unterstützt die Mehrfacherfassung.
pm_card_visa_cartesBancairesCartes Bancaires- oder Visa-Testkarte, die die Mehrfacherfassung unterstützt.

Rückerstattungen

Bei einem PaymentIntent mit dem Status requires_capture können Sie beliebig oft Rückerstattungen bis zum gesamten erfassten Betrag abzüglich des gesamten rückerstatteten Betrags durchfühen. Dies ist der amount_received – amount_refunded. Das Feld charge.refunded wechselt erst auf true, wenn die endgültige Erfassung durchgeführt wurde und die gesamte amount_received rückerstattet wird.

Stripe unterstützt keine Teilrückerstattungen mit refund_application_fee=true oder reverse_transfer=true. Stattdessen können Sie Teilgebührenrückerstattungen durchführen, indem Sie manuell Teilgebührenerstattungen und Transferrückbuchungen mit den Endpoints Rückerstattung von Plattformgebühren und Rückbuchung des Transfers durchführen. Nach Verwendung der Endpoints für die Rückerstattung der Plattformgebühr oder das Übertragungsstorno unterstützt Stripe keine weiteren Rückerstattungen mit refund_application_fee=true or reverse_transfer=true.

Connect

Multicapture unterstützt alle Use cases von Connect mit Ausnahme von Separate Zahlungen und Überweisungen mit dem Parameter source_transaction. Die Parameter application_fee_amount und transfer_data[amount] haben einige zusätzliche Validierungen. Beachten Sie die folgenden Validierungen bei der Implementierung von Multicapture mit Connect:

  • Die Festlegung von application_fee_amount oder transfer_data[amount] bei der ersten Erfassung macht sie für alle nachfolgenden Erfassungen erforderlich. Jede Übergabe von application_fee_amount und transfer_data[amount] zum Zeitpunkt der Erfassung setzt die bei der Erstellung, Bestätigung und Aktualisierungen des PaymentIntent übergebenen Werte außer Kraft.
  • Stripe unterstützt keine Teilrückerstattungen für Multicapture-Zahlungen mit refund_application_fee=true oder reverse_transfer=true. Sie können Teilgebührenrückerstattungen oder Transferrückbuchungen mit den Endpoints Rückerstattung von Plattformgebühren und Rückbuchung des Transfers durchführen.

Webhooks

Aktualisierte Webhooks belasten

Wir senden jedes Mal, wenn Sie eine Zahlung erfassen, einen charge.updated-Webhook.

Beispiel: Bei der ersten Erfassung einer Multicapture-Zahlung vom Typ Destination Charge mit einem application_fee_amount aktualisieren wir diese Felder von leeren auf nicht leere Werte.

// charge.updated { "data": { "id": "ch_xxx", "object": "charge", "amount": 1000, "balance_transaction": "txn_xxx", // applicable to all charges "transfer": "tr_xxx", // applicable to destination charges only "application_fee": "fee_xxx", // applicable to Connect only ... }, "previous_attributes": { "balance_transaction": null, // applicable to all charges "transfer": null, // applicable to destination charges only "application_fee": null, // applicable to Connect only } }

payment_intent.amount_capturable_updated

Wir übermitteln payment_intent.amount_capturable_updated bei jeder Erfassung, unabhängig von den Werten amount_to_capture und final_capture.

Wenn wir beispielsweise 1 USD von einem PaymentIntent mit einem Betrag von 10 USD erfassen, wird das Feld amount_capturable des PaymentIntent auf 9 USD aktualisiert.

// payment_intent.amount_capturable_updated { "data": { "id": "pi_xxx", "object": "payment_intent", "amount": 1000, "amount_capturable": 900 // 1000 - 100 = 900 ... }, "previous_attributes": { "amount_capturable": 1000 } }

Zahlungserfassungsereignisse

Wir senden ein charge.captured-Ereignis für die endgültige Erfassung oder am Ende des Autorisierungsfensters, um die Autorisierung des nicht erfassten Betrags rückgängig zu machen. Das Feld captured für eine Zahlung wird erst nach einer endgültigen Erfassung oder einem Autorisierungsstorno true.

Wenn wir beispielsweise eine Erfassung mit amount=0 und final_capture=true durchführen, ändert sich das Attribut captured der Zahlung von false in true.

// charge.captured { "data": { "id": "ch_xxx", "object": "charge", "captured": true ... }, "previous_attributes": { "captured": false } }

Rückerstattungs-Webhooks

Multicapture-Webhooks für die Rückerstattung unterscheiden sich nicht von Webhooks ohne Multicapture.

Bei jeder Teilrückerstattung senden wir ein refund.created-Ereignis. Bei verbundenen Konten senden wir auch application_fee.refunded-Ereignisse, wenn wir Plattformgebühren erstatten, und transfer.reversed-Ereignisse, wenn wir Transfers zurückbuchen.

War diese Seite hilfreich?
JaNein
  • Benötigen Sie Hilfe? Kontaktieren Sie den Kundensupport.
  • Nehmen Sie an unserem Programm für frühzeitigen Zugriff teil.
  • Schauen Sie sich unser Änderungsprotokoll an.
  • Fragen? Sales-Team kontaktieren.
  • LLM? Lesen Sie llms.txt.
  • Unterstützt von Markdoc