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.
Notiz
Wir empfehlen, Destination Charges für verbundene Konten zu verwenden, die Zugriff auf das Express-Dashboard oder keinen Dashboard-Zugriff haben.
Führen Sie mithilfe von Stripe Checkout eine Weiterleitung an eine von Stripe gehostete Zahlungsseite durch. Sehen Sie sich diese Integration im Vergleich zu anderen Integrationstypen von Stripe an.
Integrationsaufwand
Integrationstyp
An die von Stripe gehostete Zahlungsseite weiterleiten
Anpassung der Nutzeroberfläche
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:
Checkout-Sitzung erstellenClientseitigServerseitig
Über eine Checkout-Sitzung wird gesteuert, was die Kundinnen/Kunden auf dem Zahlungsformular sehen, z. B. Positionen, Bestellbetrag und Währung sowie die akzeptierten Zahlungsmethoden. Fügen Sie auf Ihrer Website eine Schaltfläche zum Bezahlen hinzu, die einen serverseitigen Endpoint aufruft, um eine Checkout-Sitzung zu erstellen.
<html> <head> <title>Checkout</title> </head> <body> <form action="/create-checkout-session" method="POST"> <button type="submit">Checkout</button> </form> </body> </html>
Ereignisse nach Zahlung verarbeitenServerseitig
Stripe übermittelt ein checkout.session.completed-Ereignis, wenn die Zahlung abgeschlossen ist. Verwenden Sie einen Webhook, um diese Ereignisse zu empfangen und Aktionen auszuführen (Versenden einer Bestellbestätigung per E-Mail an die Kundinnen/Kunden, Erfassen des Verkaufs in einer Datenbank oder Einleiten des Versandablaufs).
Überwachen Sie diese Ereignisse, anstatt auf einen Callback vom Client zu warten. Auf dem Client könnten die Kundinnen und Kunden das Browserfenster schließen oder die App beenden, bevor der Callback erfolgt ist. Einige Zahlungsmethoden benötigen auch 2 bis 14 Tage bis zur Zahlungsbestätigung. Wenn Sie Ihre Integration so einrichten, dass sie asynchrone Ereignisse überwacht, können Sie mehrere Zahlungsmethoden mit einer einzelnen Integration akzeptieren.
Stripe empfiehlt, alle folgenden Ereignisse zu verarbeiten, wenn Zahlungen mit Checkout eingezogen werden:
Ereignis | Beschreibung | Nächste Schritte |
---|---|---|
checkout.session.completed | Der Kunde/die Kundin hat die Zahlung nach der Übermittlung des Checkout-Formulars erfolgreich autorisiert. | Warten Sie, bis die Zahlung erfolgt ist oder fehlschlägt. |
checkout.session.async_payment_succeeded | Die Kundenzahlung war erfolgreich. | Führen Sie die Bestellung der gekauften Waren oder Dienstleistungen aus. |
checkout.session.async_payment_failed | Die Zahlung wurde abgelehnt oder ist aus einem anderen Grund fehlgeschlagen. | Kontaktieren Sie den Kunden/die Kundin per E-Mail und fordern Sie eine neue Bestellung von ihm/ihr an. |
Diese Ereignisse beinhalten alle das Checkout-Sitzungsobjekt. Nach erfolgreicher Zahlung ändert sich der Status des zugrunde liegenden PaymentIntent von processing
in succeeded
oder in einen Fehlerstatus.
Integration testen
Hier finden Sie weitere Informationen zum Testen Ihrer Integration.
Gebühren erheben
Sie können Gebühren entweder mit einem application_fee_amount oder einem transfer_data[amount] erheben.
Branding anpassen
Ihre Plattform nutzt die Branding-Einstellungen im Dashboard, um das Branding auf der Zahlungsseite anzupassen. Bei Destination Charges verwendet Checkout die Branding-Einstellungen des Plattformkontos. Bei Destination Charges mit on_
verwendet Checkout die Branding-Einstellungen des verbundenen Kontos.
Plattformen können die Branding-Einstellungen verbundener Konten mithilfe der Update Account API konfigurieren:
icon
– Wird neben dem Unternehmensnamen in der Kopfzeile der Checkout-Seite angezeigt.logo
– Wird anstelle des Symbols und des Unternehmensnamens in der Kopfzeile der Checkout-Seite verwendet.primary_
– Wird als Hintergrundfarbe auf der Checkout-Seite verwendet.color secondary_
– Wird als Farbe für Schaltflächen auf der Checkout-Seite verwendet.color
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_
auf die ID eines verbundenen Kontos setzen, um dieses Konto zum Abwicklungshändler für die Zahlung zu machen. Bei Verwendung von on_
:
- 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_
weggelassen wird, ist die Plattform das für die Zahlung verantwortliche Unternehmen.
Vorsicht
Der Parameter on_
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_
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_
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_
beim Erstellen der Rückerstattung auf 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:
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_
-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.
Handle disputes
For destination charges, with or without on_
, Stripe debits dispute amounts and fees from your platform account.
We recommend setting up a webhook to listen to dispute created events. When that happens, you can attempt to recover funds from the connected account by reversing the transfer through the Dashboard or by creating a transfer reversal.
If the connected account has a negative balance, Stripe attempts to debit its external account if debit_
is set to true
.
If you challenge the dispute and win, you can transfer the funds that you previously reversed back to the connected account. If your platform has an insufficient balance, the transfer fails. Prevent insufficient balance errors by adding funds to your Stripe balance.
Häufiger Fehler
Retransferring a previous reversal is subject to cross-border transfer restrictions, meaning you might have no means to repay your connected account. Instead, wait to recover disputed cross-border payment transfers for destination charges with on_
until after a dispute is lost.