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
Mit Connect loslegen
Integrationsgrundlagen
Musterintegrationen
Kontoverwaltung
Onboarding von Konten
Konto-Dashboards konfigurieren
Mit verbundenen Kontotypen zusammenarbeiten
Zahlungsabwicklung
Zahlungen weltweit akzeptieren
    Zahlung erstellen
      Direct Charges
      Destination Charges
      Separate Gebühren und Überweisungen
    Zahlungsbeschreibungen in der Abrechnung festlegen
    MCCs einrichten
    Umgang mit mehreren Währungen
    Mit Connect Zahlungslinks erstellen
    Radar mit Connect verwenden
    Angefochtene Zahlungen bei Connect
    Abos erstellen
    Rechnungen erstellen
    Mehrere Konfigurationen der Zahlungsmethoden
    Komponente für die Zahlungsmethodeneinstellungen einbetten
    Kontostand
Verbundene Konten auszahlen
Plattformverwaltung
Ihre Connect-Plattform verwalten
Steuerformulare für Ihre Connect-Plattform
StartseitePlattformen und MarktplätzeAccept paymentsCreate a charge

Destination Charges erstellen

Erstellen Sie Zahlungen auf Ihrem Plattformkonto, ziehen Sie Gebühren ein und übertragen Sie die verbleibenden Gelder sofort auf Ihre verbundenen Konten.

Erstellen Sie Destination Charges, wenn Kundinnen/Kunden mit Ihrer Plattform im Zusammenhang mit Produkten oder Dienstleistungen interagieren, die von Ihren verbundenen Konten zur Verfügung gestellt werden, und Sie sofort Gelder an Ihre verbundenen Konten überweisen. Mit diesem Zahlungstyp:

  • Sie erstellen eine Abbuchung auf dem Konto Ihrer Plattform.
  • Sie bestimmen, ob diese Gelder teilweise oder vollständig auf das verbundene Konto übertragen werden sollen.
  • Ihr Kontoguthaben wird mit Stripe-Gebühren, Rückerstattungen und Rückbuchungen belastet.

Diese Art der Zahlung eignet sich optimal für Marktplätze wie Airbnb, einen Marktplatz für Unterkünfte, oder Lyft, eine Mitfahr-App.

Destination Charges werden nur unterstützt, wenn sich Ihre Plattform und das verbundene Konto im selben Land befinden. Für die regionsübergreifende Unterstützung müssen Sie den/die Abwicklungshändler/in für das verbundene Konto mit dem Parameter on_behalf_of für den Payment Intent oder andere Szenarien mit gültigen grenzüberschreitenden Transfers angeben. Wir empfehlen, Destination Charges für verbundene Konten zu verwenden, die Zugriff auf das Express-Dashboard oder keinen Zugriff auf das Dashboard haben.

Private Vorschau

Sie können Destination Charges ohne den Parameter on_behalf_of verwenden, wenn sich Ihre Plattform und das verbundene Konto in verschiedenen Ländern (innerhalb der USA, des Vereinigten Königreichs und der EU) befinden. Kontaktieren Sie uns, um frühzeitigen Zugriff zu erhalten.

Erstellen Sie eine nutzerdefinierte Zahlungsintegration, indem Sie Komponenten der Nutzeroberfläche auf Ihrer Website mit Stripe Elements einbetten. Der clientseitige und der serverseitige Code erstellen ein Checkout-Formular, das verschiedene Zahlungsmethoden akzptiert. Sehen Sie sich diese Integration im Vergleich zu anderen Integrationstypen von Stripe an.

Kundenstandort
Größe
Design
Layout
Um zu erfahren, wie Link für einen wiederkehrenden Nutzer funktioniert, geben Sie die E-Mail-Adresse demo@stripe.com ein. Um zu erfahren, wie Link bei einer Neuanmeldung funktioniert, geben Sie eine beliebige andere E-Mail-Adresse ein und füllen Sie das Formular aus. Diese Demo zeigt Google Pay oder Apple Pay nur dann an, wenn Sie über eine aktive Karte mit einer der beiden Wallets verfügen.

Integrationsaufwand

Ein wenig Code

Integrationstyp

Komponenten der Nutzeroberfläche in einem nutzerdefinierten Zahlungsablauf kombinieren

Anpassung der Nutzeroberfläche

Anpassung auf CSS-Ebene mit der Appearance API

Registrieren Sie sich zunächst für ein Stripe-Konto.

Verwenden Sie unsere offiziellen Bibliotheken, um von Ihrer Anwendung aus auf die Stripe API zuzugreifen:

Command Line
Ruby
# Available as a gem sudo gem install stripe
Gemfile
Ruby
# If you use bundler, you can add this line to your Gemfile gem 'stripe'

PaymentIntent erstellen
Serverseitig

Stripe verwendet ein PaymentIntent-Objekt, um Ihre Absicht darzustellen, eine Kundenzahlung einzuziehen. Dabei werden die Abbuchungsversuche und Zahlungsstatusänderungen während des gesamten Vorgangs dokumentiert.

Die Zahlungsmethoden, die Kundinnen/Kunden während des Bezahlvorgangs angezeigt werden, sind ebenfalls im PaymentIntent enthalten. Sie können Zahlungsmethoden durch Stripe automatisch aus Ihren Dashboard-Einstellungen abrufen lassen oder sie manuell auflisten.

Sofern Ihre Integration keine codebasierte Option zum Anbieten von Zahlungsmethoden erfordert, listen Sie Zahlungsmethoden nicht manuell auf. Stripe wertet die Währung, die Einschränkungen für Zahlungsmethoden und andere Parameter aus, um die Liste der unterstützten Zahlungsmethoden zu ermitteln. Stripe priorisiert Zahlungsmethoden, die die Konversion steigern und die für die Währung und den Standort des Kunden/der Kundin am relevantesten sind. Stripe verbirgt Zahlungsmethoden mit niedrigerer Priorität in einem Überlaufmenü.

Erstellen Sie einen PaymentIntent auf Ihrem Server, wobei Betrag und Währung aktiviert sind. In der neuesten Version der API ist die Angabe des Parameters automatic_payment_methods optional, da Stripe die Funktionalität standardmäßig aktiviert. Sie können Zahlungsmethoden über das Dashboard verwalten. Stripe handhabt die Rückgabe der in Frage kommenden Zahlungsmethoden anhand von Faktoren wie Transaktionsbetrag, Währung und Zahlungsablauf.

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1000 \ -d currency=usd \ -d "automatic_payment_methods[enabled]"=true \ -d application_fee_amount=123 \ -d "transfer_data[destination]"=
{{CONNECTED_ACCOUNT_ID}}

Client-Geheimnis abrufen

Im PaymentIntent ist ein Client-Geheimnis enthalten, das auf dem Client verwendet wird, um Zahlungen sicher abzuschließen. Es gibt verschiedene Verfahren zum Übergeben des Client-Geheimnisses an den Client.

Rufen Sie das Client-Geheimnis von einem Endpoint auf Ihrem Server ab, indem Sie die Browser-Funktion fetch verwenden. Diese Vorgehensweise funktioniert am besten, wenn es sich bei Ihrer Client-Seite um eine einseitige Anwendung handelt, insbesondere wenn sie mit einem modernen Frontend-Framework wie React erstellt wurde. Erstellen Sie den Server-Endpoint, der das Client-Geheimnis bereitstellt:

main.rb
Ruby
get '/secret' do intent = # ... Create or retrieve the PaymentIntent {client_secret: intent.client_secret}.to_json end

Und dann rufen Sie das Client-Geheimnis mit JavaScript auf der Client-Seite ab:

(async () => { const response = await fetch('/secret'); const {client_secret: clientSecret} = await response.json(); // Render the form using the clientSecret })();

Zahlungsdaten erfassen
Clientseitig

Erfassen Sie Zahlungsdetails auf dem Client mit dem Payment Element. Das Payment Element ist eine vorgefertigte Komponente der Nutzeroberfläche, die die Erfassung von Zahlungsdaten für eine Vielzahl von Zahlungsmethoden vereinfacht.

Das Payment Element enthält einen iFrame, der Zahlungsinformationen über eine HTTPS-Verbindung sicher an Stripe sendet. Vermeiden Sie es, das Payment Element in einem anderen iFrame zu platzieren, da einige Zahlungsmethoden die Weiterleitung an eine andere Seite zur Zahlungsbestätigung verlangen.

Wenn Sie sich für die Verwendung eines Iframes entscheiden und Apple Pay oder Google Pay akzeptieren möchten, muss das allow-Attribut des iFrame auf "payment *" gesetzt werden.

Die Adresse der Bezahlseite muss mit https:// beginnen, nicht mit http://, damit Ihre Integration funktioniert. Sie können Ihre Integration ohne HTTPS testen. Denken Sie jedoch daran, dieses zu aktivieren, wenn Sie zur Annahme von Live-Zahlungen bereit sind.

Stripe.js einrichten

Das Payment Element ist ein Feature von Stripe.js und steht damit automatisch zur Verfügung. Fügen Sie das Stripe.js-Skript auf Ihrer Bezahlseite ein, indem Sie es in den head Ihrer HTML-Datei einbinden. Laden Sie Stripe.js immer direkt von js.stripe.com, um die PCI-Konformität zu gewährleisten. Fügen Sie das Skript nicht in ein Paket ein und hosten Sie selbst keine Kopie davon.

checkout.html
<head> <title>Checkout</title> <script src="https://js.stripe.com/basil/stripe.js"></script> </head>

Erstellen Sie auf Ihrer Bezahlseite eine Instanz von Stripe mit dem folgenden JavaScript:

checkout.js
// Set your publishable key: remember to change this to your live publishable key in production // See your keys here: https://dashboard.stripe.com/apikeys const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
);

Payment Element Ihrer Bezahlseite hinzufügen

Das Payment Element benötigt einen festen Platz auf Ihrer Zahlungsseite. Erstellen Sie einen leeren DOM-Knoten (Container) mit einer eindeutigen ID in Ihrem Zahlungsformular:

checkout.html
<form id="payment-form"> <div id="payment-element"> <!-- Elements will create form elements here --> </div> <button id="submit">Submit</button> <div id="error-message"> <!-- Display error message to your customers here --> </div> </form>

Wenn das vorherige Formular geladen wurde, erstellen Sie eine Instanz des Payment Element und verbinden es mit dem DOM-Knoten (Container). Übergeben Sie das Client-Geheimnis aus dem vorherigen Schritt an options, wenn Sie die Elements-Instanz erstellen:

Gehen Sie sorgfältig mit dem Client-Geheimnis um, denn es kann die Zahlung abschließen. Protokollieren Sie es nicht, betten Sie es nicht in URLs ein und geben Sie es nur dem/der Kund/in preis.

checkout.js
const options = { clientSecret: '{{CLIENT_SECRET}}', // Fully customizable with appearance API. appearance: {/*...*/}, }; // Set up Stripe.js and Elements to use in checkout form, passing the client secret obtained in a previous step const elements = stripe.elements(options); // Create and mount the Payment Element const paymentElementOptions = { layout: 'accordion'}; const paymentElement = elements.create('payment', paymentElementOptions); paymentElement.mount('#payment-element');

Stripe Elements durchsuchen

Stripe Elements ist eine Sammlung von Drop-In-Komponenten der Nutzeroberfläche. Um Ihr Formular weiter anzupassen oder andere Kundeninformationen zu erfassen, durchsuchen Sie die Elements-Dokumentation.

Das Payment Element rendert ein dynamisches Formular, mit dem Kund/innen ihre gewünschte Zahlungsmethode auswählen können. Für jede Zahlungsmethode fordert das Formular die Kund/innen automatisch auf, alle erforderlichen Zahlungsdaten einzugeben.

Erscheinungsbild anpassen

Passen Sie das Payment Element an das Design Ihrer Website an, indem Sie beim Erstellen des Elements-Anbieters das Erscheinungsbild-Objekt an options übergeben.

Adressen einholen

Standardmäßig erfasst das Payment Element nur die erforderlichen Angaben zur Rechnungsadresse. Verwenden Sie das Address Element, um die vollständige Rechnungsadresse (z. B. zur Berechnung der Steuer für digitale Waren und Dienstleistungen) oder die Versandadresse einer Kundin/eines Kunden zu erfassen.

Apple Pay-Händler-Token anfordern

Wenn Sie Ihre Integration für die Annahme von Zahlungen per Apple Pay konfiguriert haben, empfehlen wir die Konfiguration der Apple Pay-Schnittstelle um ein Händler-Token zurückzugeben, um von Händlern initiierte Transaktionen (MIT) zu ermöglichen. Fordern Sie den entsprechenden Händler-Token-Typ im Payment Element an.

Zahlung an Stripe senden
Clientseitig

Verwenden Sie stripe.confirmPayment, um die Zahlung mit Details aus dem Payment Element vorzunehmen. Geben Sie für diese Funktion eine return_url an, um anzugeben, wohin Stripe die Nutzer/innen nach Durchführung der Zahlung weiterleiten soll. Ihre Nutzer/innen werden möglicherweise zunächst an eine zwischengeschaltete Seite weitergeleitet, wie z. B. eine Bankautorisierungsseite, bevor sie zur return_url weitergeleitet werden. Kartenzahlungen werden sofort zur return_url weitergeleitet, wenn eine Zahlung erfolgreich war.

Wenn Sie Kartenzahlungen nach Abschluss der Zahlung nicht weiterleiten möchten, können Sie redirect auf if_required festlegen. Dadurch werden nur Kundinnen/Kunden weitergeleitet, die mit weiterleitungsbasierten Zahlungsmethoden bezahlen.

checkout.js
const form = document.getElementById('payment-form'); form.addEventListener('submit', async (event) => { event.preventDefault(); const {error} = await stripe.confirmPayment({ //`Elements` instance that was used to create the Payment Element elements, confirmParams: { return_url: 'https://example.com/order/123/complete', }, }); if (error) { // This point will only be reached if there is an immediate error when // confirming the payment. Show error to your customer (for example, payment // details incomplete) const messageContainer = document.querySelector('#error-message'); messageContainer.textContent = error.message; } else { // Your customer will be redirected to your `return_url`. For some payment // methods like iDEAL, your customer will be redirected to an intermediate // site first to authorize the payment, then redirected to the `return_url`. } });

Achten Sie darauf, dass die return_url auf eine Seite Ihrer Website verweist, die den Status der Zahlung angibt. Wenn Stripe den/die Kund/in an die return_url weiterleitet, stellen wir die folgenden URL-Abfrageparameter bereit:

ParameterBeschreibung
payment_intentDie eindeutige ID für die PaymentIntent.
payment_intent_client_secretDas Client-Geheimnis des PaymentIntent-Objekts.

Vorsicht

Wenn Sie über Tools verfügen, die die Browser-Sitzung der Kund/innen verfolgen, müssen Sie möglicherweise die Domain stripe.com zur Referenz-Ausschlussliste hinzufügen. Weiterleitungen haben zur Folge, dass einige Tools neue Sitzungen erstellen. Dies wiederum hindert Sie daran, die gesamte Sitzung zu verfolgen.

Verwenden Sie einen der Abfrageparameter, um den PaymentIntent abzurufen. Überprüfen Sie den Status des PaymentIntent, um zu entscheiden, was Ihren Kundinnen/Kunden angezeigt werden soll. Sie können bei der Angabe der return_url auch Ihre eigenen Abfrageparameter anhängen, die während des Weiterleitungsvorgangs erhalten bleiben.

status.js
// Initialize Stripe.js using your publishable key const stripe = Stripe(
'pk_test_TYooMQauvdEDq54NiTphI7jx'
); // Retrieve the "payment_intent_client_secret" query parameter appended to // your return_url by Stripe.js const clientSecret = new URLSearchParams(window.location.search).get( 'payment_intent_client_secret' ); // Retrieve the PaymentIntent stripe.retrievePaymentIntent(clientSecret).then(({paymentIntent}) => { const message = document.querySelector('#message') // Inspect the PaymentIntent `status` to indicate the status of the payment // to your customer. // // Some payment methods will [immediately succeed or fail][0] upon // confirmation, while others will first enter a `processing` state. // // [0]: https://stripe.com/docs/payments/payment-methods#payment-notification switch (paymentIntent.status) { case 'succeeded': message.innerText = 'Success! Payment received.'; break; case 'processing': message.innerText = "Payment processing. We'll update you when payment is received."; break; case 'requires_payment_method': message.innerText = 'Payment failed. Please try another payment method.'; // Redirect your user back to your payment page to attempt collecting // payment again break; default: message.innerText = 'Something went wrong.'; break; } });

Ereignisse nach Zahlung verarbeiten
Serverseitig

Stripe sendet ein payment_intent.succeeded-Ereignis, wenn die Zahlung abgeschlossen ist. Verwenden Sie Webhook-Tool im Dashboard oder folgen Sie der Webhook-Anleitung, um diese Ereignisse zu empfangen und führen Sie Aktionen aus, wie beispielsweise das Senden einer Bestellbestätigung per E-Mail, das Protokollieren des Verkaufs in der Datenbank oder das Starten eines Versand-Workflows.

Überwachen Sie diese Ereignisse, statt auf einen Callback vom Client zu warten. Auf dem Client könnten die Kund/innen das Browserfenster schließen oder die App beenden, bevor der Callback erfolgt ist. Bösartige Clients könnten dann die Antwort manipulieren. Wenn Sie Ihre Integration so einrichten, dass sie asynchrone Ereignisse überwacht, können Sie verschiedene Arten von Zahlungsmethoden mit einer einzelnen Integration akzeptieren.

Neben der Abwicklung des payment_intent.succeeded-Ereignisses empfehlen wir die Abwicklung von diesen weiteren Ereignissen, wenn Sie Zahlungen mit dem Payment Element erfassen:

EreignisBeschreibungAktion
payment_intent.succeededWird gesendet, wenn Kundinnen und Kunden eine Zahlung erfolgreich abgeschlossen haben.Senden Sie den Kund/innen eine Auftragsbestätigung und wickeln Sie die Bestellung ab.
payment_intent.processingWird gesendet, wenn eine/e Kund/in eine Zahlung erfolgreich veranlasst hat, die Zahlung aber noch nicht abgeschlossen ist. Dieses Ereignis wird am häufigsten gesendet, wenn der Kunde/die Kundin eine Bankabbuchung veranlasst. In Zukunft folgt darauf entweder ein payment_intent.succeeded- oder ein payment_intent.payment_failed-Ereignis.Senden Sie eine Bestellbestätigung an die Kund/innen, in der angegeben ist, dass die Zahlung noch aussteht. Bei digitalen Waren können Sie die Bestellung abwickeln, bevor Sie darauf warten, dass die Zahlung erfolgt.
payment_intent.payment_failedWird gesendet, wenn ein Kunde/eine Kundin einen Zahlungsversuch durchführt, die Zahlung jedoch fehlschlägt.Wenn eine Zahlung von processing zu payment_failed übergeht, bieten Sie der Kundin/dem Kunden einen weiteren Zahlungsversuch an.

Integration testen

KartennummerSzenarioSo führen Sie den Test durch
Die Kartenzahlung ist erfolgreich und es ist keine Authentifizierung erforderlich.Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an.
Für die Kartenzahlung ist eine Authentifizierung erforderlich.Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an.
Die Karte wird mit einem Ablehnungscode wie insufficient_funds abgelehnt.Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an.
Die UnionPay-Karte hat eine variable Länge von 13 bis 19 Ziffern.Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an.

Hier finden Sie weitere Informationen zum Testen Ihrer Integration.

OptionalWeitere Zahlungsmethoden aktivieren

Gebühren erheben

Anstatt den vollen Transaktionsbetrag auf ein verbundenes Konto zu überweisen, kann Ihre Plattform bei der Verarbeitung einer Zahlung beschließen, einen Teil des Transaktionsbetrags in Form von Gebühren zu erheben. Sie können die Preise für Gebühren auf zwei verschiedene Arten festlegen:

  • Mit dem Plattform-Preistool können Sie Preisregeln für Plattformgebühren festlegen und testen. Diese No-Code-Funktion im Stripe-Dashboard ist derzeit nur für Plattformen verfügbar, die für die Zahlung von Stripe-Gebühren verantwortlich sind.

  • Legen Sie intern Ihre Preisregeln fest und legen Sie Gebühren direkt in einem PaymentIntent fest, entweder mit dem Parameter application_fee_amount oder transfer_data[amount]. Die mit dieser Methode festgelegten Gebühren überschreiben die im Plattform-Preistool angegebene Preislogik.

Wenn Zahlungen mit einem application_fee_amount erstellt werden, wird der vollständige Zahlungsbetrag sofort nach Erfassung der Zahlung von der Plattform auf das transfer_data[destination]-Konto übertragen. Der application_fee_amount (bis zum vollen Zahlungsbetrag) wird wieder an die Plattform zurück übertragen.

Command Line
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1000 \ -d currency=usd \ -d "automatic_payment_methods[enabled]"=true \ -d application_fee_amount=123 \ -d "transfer_data[destination]"=
{{CONNECTED_ACCOUNT_ID}}

Nachdem die Plattformgebühr eingezogen wurde, wird ein Plattformgebühr-Objekt erstellt. Sie können eine Liste der Plattformgebühren im Dashboard über die Plattformgebühren oder in Sigma einsehen. Sie können auch die Eigenschaft amount des Plattformgebühr-Objekts verwenden, um die Gebühren nach Posten aufgeschlüsselt auszuweisen.

Wenn Sie einen application_fee_amount verwenden, muss Ihnen Folgendes bekannt sein:

  • Der application_fee_amount ist auf den Gesamtbetrag der Transaktion begrenzt.
  • Der application_fee_amount wird immer in der gleichen Währung wie die Transaktion berechnet.
  • The application fee settles in the same currency as the connected account’s settlement currency. For cross-border destination charges, this might differ from your platform’s settlement currency.
  • Ihre Plattform zahlt die Stripe-Gebühr, nachdem der application_fee_amount auf Ihr Konto überwiesen wurde.
  • Es fallen keine zusätzlichen Stripe-Gebühren auf den Betrag an.
  • Ihre Plattform kann die integrierte Berichterstattung zur Plattformgebühr verwenden, um die erhobenen Gebühren abzugleichen.
  • In von Stripe gehosteten Dashboards oder Komponenten wie der Zahlungsdetails-Komponente kann Ihr verbundenes Konto sowohl den Gesamtbetrag als auch den Betrag der Plattformgebühr einsehen.

Geldbewegungen

Mit dem obigen Code wird der vollständige Zahlungsbetrag (10,00 USD) dem ausstehenden Guthaben des verbundenen Kontos hinzugefügt. Der application_fee_amount(1,23 USD) wird vom Zahlungsbetrag abgezogen und an Ihre Plattform überwiesen. Die Stripe-Gebühren (0,59 USD) vom Guthaben Ihres Plattformkontos abgezogen. Der Betrag der Plattformgebühr abzüglich der Stripe-Gebühren (1,23 USD – 0,59 USD = 0,64 USD) verbleibt auf dem Guthaben Ihres Plattformkontos.

Geldbewegungen für Destination Charges

Der application_fee_amount wird gemäß dem normalen Überweisungsplan des Plattformkontos verfügbar, genau wie Gelder aus regulären Stripe-Zahlungen.

Abwicklungshändler angeben

Der Abwicklungshändler ist abhängig von den Funktionen, die für ein Konto eingerichtet sind, und davon, wie eine Zahlung erstellt wird. Der Abwicklungshändler bestimmt, wessen Informationen für die Durchführung der Zahlung verwendet werden. Dazu gehört die Zahlungsbeschreibung in der Abrechnung (entweder die der Plattform oder die des verbundenen Kontos), die auf dem Kreditkarten- oder Kontoauszug des Kunden/der Kundin für diese Zahlung angezeigt wird.

Durch die Angabe des Abwicklungshändlers können Sie genauer festlegen, für wen Zahlungen erstellt werden sollen. Einige Plattformen sind beispielsweise vorzugsweise der Abwicklungshändler, da Kundinnen/Kunden direkt mit ihrer Plattform interagieren (zum Beispiel On-Demand-Plattformen). Manche Plattformen verfügen jedoch über verbundene Konten, die stattdessen direkt mit Kundinnen/Kunden interagieren (zum Beispiel ein Ladengeschäft auf einer E-Commerce-Plattform). Bei diesen Szenarien ist es möglicherweise sinnvoller, wenn das verbundene Konto der Abwicklungshändler ist.

Sie können den Parameter on_behalf_of auf die ID eines verbundenen Kontos setzen, um dieses Konto zum Abwicklungshändler für die Zahlung zu machen. Bei Verwendung von on_behalf_of:

  • Zahlungen werden im Land und in der Abwicklungswährung des verbundenen Kontos abgewickelt.
  • Es wird die Gebührenstruktur für das Land des verbundenen Kontos verwendet.
  • Die Zahlungsbeschreibung des verbundenen Kontos wird auf der Kreditkartenabrechnung des Kunden/der Kundin angezeigt.
  • Wenn sich das verbundene Konto in einem anderen Land als die Plattform befindet, werden die Adresse und die Telefonnummer des verbundenen Kontos auf der Kreditkartenabrechnung des Kunden/der Kundin angezeigt.
  • Wie viele Tage ein ausstehendes Guthaben vor der Auszahlung zurückgehalten wird, hängt von der Einstellung delay_days auf dem verbundenen Konto ab.

Wenn on_behalf_of weggelassen wird, ist die Plattform das für die Zahlung verantwortliche Unternehmen.

Vorsicht

Der Parameter on_behalf_of wird nur für verbundene Konten mit Zahlungsfunktionen wie card_payments unterstützt. Konten, denen der Empfänger-Rahmenvertrag zugrunde liegt, können keine card_payments oder andere Zahlungsfunktionen anfordern.

Rückerstattungen ausstellen

Wenn Sie die Payment Intents API verwenden, sollten Rückerstattungen für die zuletzt erstellte Zahlung ausgestellt werden.

Im Plattformkonto erstellte Zahlungen können mit dem geheimen Schlüssel des Plattformkontos rückerstattet werden. Bei Rückerstattung einer Zahlung mit einem transfer_data[destination] bleiben die Gelder standardmäßig auf dem Zielkonto, auf das sie überwiesen wurden, sodass das Plattformkonto den negativen Saldo aus der Rückerstattung abdecken muss. Um die Gelder zur Abdeckung der Rückerstattung von dem verbundenen Konto zurückzuziehen, setzen Sie den Parameter reverse_transfer beim Erstellen der Rückerstattung auf true:

Command Line
Curl
curl https://api.stripe.com/v1/refunds \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d charge="{CHARGE_ID}" \ -d reverse_transfer=true \

Standardmäßig wird die gesamte Zahlung rückerstattet. Sie können jedoch auch eine Teilrückerstattung erstellen, indem Sie einen amount-Wert als positive Ganzzahl festlegen.

Wenn die Rückerstattung zur Folge hat, dass die gesamte Zahlung zurückerstattet wird, wird die gesamte Übertragung rückgängig gemacht. Andernfalls wird nur ein proportionaler Betrag der Übertragung rückgängig gemacht.

Plattformgebühren zurückerstatten

Wenn eine Zahlung mit einer Plattformgebühr zurückerstattet wird, behält das Plattformkonto standardmäßig die Gelder aus der Plattformgebühr ein. Um die Plattformgebühr auf das verbundene Konto zurück zu übertragen, legen Sie den Parameter refund_application_fee auf true fest, wenn Sie die Rückerstattung erstellen:

Command Line
Curl
curl https://api.stripe.com/v1/refunds \ -u
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:
\ -d charge="{CHARGE_ID}" \ -d reverse_transfer=true \ -d refund_application_fee=true \

Beachten Sie Folgendes: Wenn Sie die Plattformgebühr für eine Destination Charge erstatten, müssen Sie auch die Übertragung rückgängig machen. Wenn die Rückerstattung zur Folge hat, dass die gesamte Zahlung zurückerstattet wird, wie die gesamte Plattformgebühr ebenfalls zurückerstattet. Andernfalls wird nur ein proportionaler Betrag der Plattformgebühr rückerstattet.

Alternativ können Sie den refund_application_fee-Wert false angeben und die Plattformgebühr separat über die API zurückerstatten.

Fehlgeschlagene Rückerstattungen

Wenn eine Rückerstattung fehlschlägt oder von Ihnen storniert wird, wird der Betrag der fehlgeschlagenen Rückerstattung dem Stripe-Guthaben gutgeschrieben. Erstellen Sie eine Übertragung, um das Geld nach Bedarf auf das verbundene Konto zu überweisen.

Umgang mit Zahlungsanfechtungen

Für Destination Charges, mit oder ohne on_behalf_of, belastet Stripe angefochtene Beträge und Gebühren von Ihrem Plattformkonto.

Wir empfehlen, einen Webhook einzurichten, um durch Zahlungsanfechtungen erstellte Ereignisse zu überwachen. In diesem Fall können Sie versuchen, Gelder von dem verbundenen Konto zurückzuerhalten, indem Sie die Überweisung über das Dashboard oder durch Erstellen einer Rückbuchung rückgängig machen.

Wenn das verbundene Konto einen negativen Saldo aufweist, versucht Stripe, das externe Konto zu belasten, wenn debit_negative_balances auf true festgelegt ist.

Wenn Sie der Zahlungsanfechtung widersprechen und gewinnen, können Sie die Gelder, die Sie zuvor zurückgebucht haben, auf das verbundene Konto zurücküberweisen. Wenn Ihre Plattform nicht über ausreichendes Guthaben verfügt, schlägt die Übertragung fehl. Verhindern Sie Fehler aufgrund unzureichendem Guthaben, indem Sie Gelder auf Ihr Stripe-Guthaben einzahlen.

Häufiger Fehler

Die erneute Überweisung einer früheren Rückbuchung unterliegt Beschränkungen für grenzüberschreitende Überweisungen. Das bedeutet, Sie haben möglicherweise keine Möglichkeit, eine Rückzahlung auf Ihr verbundenes Konto durchzuführen. Warten Sie stattdessen damit, angefochtene grenzüberschreitender Zahlungstransfers für Destination Charges mit on_behalf_of doch noch als Einnahmen zu buchen, bis eine Zahlungsanfechtung zu Ihren Ungunsten entschieden wurde.

Siehe auch

  • Mit mehreren Währungen arbeiten
  • Zahlungsbeschreibungen mit Connect
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