Separate Zahlungen und Überweisungen erstellen
Erstellen Sie Zahlungen auf Ihrem Plattformkonto und übertragen Sie die Gelder auf mehrere verbundene Konten.
Erstellen Sie separate Zahlungen und Überweisungen , um Gelder aus einer Zahlung auf mehrere verbundene Konten zu überweisen oder wenn ein/e bestimmte/r Nutzer/in zum Zeitpunkt der Zahlung nicht bekannt ist. Die Zahlung auf Ihrem Plattformkonto wird von den Überweisungen auf Ihre verbundenen Konten entkoppelt. Mit diesem Zahlungstyp gilt:
- Sie erstellen eine Zahlung auf dem Konto Ihrer Plattform und übertragen außerdem Gelder auf Ihre verbundenen Konten. Die Zahlung wird auf Ihrem Konto als Abbuchung ausgewiesen und es gibt auch Übertragungen auf verbundene Konten (Betrag wird von Ihnen bestimmt), die von Ihrem Kontoguthaben eingezogen werden.
- Sie können Gelder auf mehrere verbundene Konten übertragen.
- Ihr Kontoguthaben wird mit Stripe-Gebühren, Rückerstattungen und Rückbuchungen belastet.
Diese Art der Zahlung eignet sich optimal für Marktplätze, die Zahlungen zwischen mehreren Parteien aufteilen müssen, wie beispielsweise bei DoorDash, einer Lieferplattform für Restaurants.
Stripe unterstützt separate Zahlungen und Überweisungen in den folgenden Regionen:
Bei den meisten Szenarien müssen sich Ihre Plattform und alle verbundenen Konten in derselben Region befinden. Beim Versuch, Gelder über eine unzulässige Grenze zu überweisen, wird ein Fehler zurückgegeben. Informationen zur regionsübergreifenden Unterstützung finden Sie unter Grenzüberschreitende Überweisungen. Verwenden Sie Übertragungen nur in Kombination mit zulässigen Anwendungsszenarien für Zahlungen, Aufstockungen und Gebühren. Wir empfehlen, separate Zahlungen und Überweisungen 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_
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.

Integrieren Sie die vorgefertigte Zahlungs-UI von Stripe in den Bezahlvorgang Ihrer Android-App mit der PaymentSheet-Klasse.
Stripe einrichtenServerseitigClientseitig
Zunächst benötigen Sie ein Stripe-Konto. Registrieren Sie sich jetzt.
Serverseitig
Für diese Integration sind Endpoints auf Ihrem Server erforderlich, die mit der Stripe-API kommunizieren können. Nutzen Sie die offiziellen Bibliotheken für den Zugriff auf die Stripe-API von Ihrem Server aus:
Clientseitig
Das Stripe Android SDK ist Open Source und vollständig dokumentiert.
Um das SDK zu installieren, fügen Sie stripe-android
in den Block dependencies
Ihrer app/build.gradle-Datei ein:
Notiz
Details zur aktuellen SDK-Version und zu vorherigen Versionen finden Sie auf der Seite Releases auf GitHub. Um bei Veröffentlichung eines neuen Release eine Benachrichtigung zu erhalten, beobachten Sie Veröffentlichungen für das jeweilige Repository.
Konfigurieren Sie das SDK mit Ihrem veröffentlichbaren Schlüssel von Stripe so, dass dieser Anfragen an die API stellen kann, wie beispielsweise in Ihrer Unterklasse Application
:
Notiz
Verwenden Sie Ihre Testschlüssel beim Testen und Entwickeln Ihrer App und Ihre Live-Modus-Schlüssel beim Veröffentlichen Ihrer App.
Endpoint hinzufügenServerseitig
Diese Integration verwendet drei Stripe-API-Objekte:
- PaymentIntent: Stripe verwendet diesen, um Ihre Absicht darzustellen, eine Zahlung von Ihren Kundinnen/Kunden anzufordern, wobei Abbuchungsversuche und Zahlungsstatusänderungen im gesamten Vorgang dokumentiert werden.
- Ein/eine Kunde/Kundin. Um eine Zahlungsmethode für zukünftige Zahlungen einzurichten, muss diese einem Kunden/einer Kundin zugeordnet werden. Erstellen Sie ein Kundenobjekt, wenn Ihre Kundin/Ihr Kunde ein Konto bei Ihrem Unternehmen anlegt. Wenn eine Zahlung als Gast durchgeführt wird, können Sie vor der Zahlung ein Kundenobjekt erstellen und es zu einem späteren Zeitpunkt mit Ihrer eigenen internen Darstellung des Kundenkontos verknüpfen.
- Ein temporärer Kundenschlüssel (optional). Informationen zum Kundenobjekt sind vertraulich und können nicht direkt über die App abgerufen werden. Ein temporärer Schlüssel gewährt dem SDK vorübergehenden Zugriff auf den Kunden/die Kundin.
Wenn Sie Karten speichern und wiederkehrenden Kunden und Kundinnen ermöglichen möchten, gespeicherte Karten wiederzuverwenden, benötigen Sie das Customer-Objekt und das temporäre Kundenschlüssel-Objekt für Ihre Integration. Andernfalls können Sie diese Objekte weglassen.
Aus Sicherheitsgründen kann Ihre App diese Objekte nicht erstellen. Fügen Sie stattdessen einen Endpoint auf Ihrem Server hinzu, der:
- Ruft den Kunden/die Kundin ab oder erstellt einen neuen/eine neue.
- Erstellt einen temporären Schlüssel für den Kunden/die Kundin.
- Erstellt einen PaymentIntent mit dem Betrag, der Währung, dem Kunden/der Kundin und einer Übertragungsgruppe, die der Übertragung von Geldern später zugeordnet werden sollen.
- Gibt das Client-Geheimnis des PaymentIntent, das
secret
des temporären Schlüssels, die Kunden-ID und Ihren veröffentlichbaren Schlüssel an Ihre App zurück.
Die Zahlungsmethoden, die Kundinnen/Kunden während des Bezahlvorgangs angezeigt werden, sind ebenfalls im PaymentIntent enthalten. Sie können Zahlungsmethoden durch Stripe 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. Wir verbergen Zahlungsmethoden mit niedrigerer Priorität in einem Überlaufmenü.
Zahlungsformular integrierenClientseitig
Bevor das mobile Payment Element angezeigt wird, sollte Ihre Checkout-Seite:
- Zeigen Sie die gekauften Produkte und den Gesamtbetrag an
- Erfassen Sie erforderliche Versandinformationen mithilfe des Address Element.
- Fügen Sie eine Checkout-Schaltfläche ein, um die Nutzeroberfläche von Stripe anzuzeigen
Wenn Sie allowsDelayedPaymentMethods
auf true festlegen, werden Zahlungsmethoden mit verzögerter Benachrichtigung wie US-Bankkonten zugelassen. Für diese Zahlungsmethoden ist der endgültige Zahlungsstatus nicht bekannt, wenn das PaymentSheet
abgeschlossen wird. Stattdessen ist sie erfolgreich oder schlägt fehl. Wenn Sie diese Art von Zahlungsmethoden unterstützen, informieren Sie den Kunden/die Kundin darüber, dass seine/ihre Bestellung bestätigt ist, und führen seine/ihre Bestellung erst aus (z. B. das Produkt versenden), wenn die Zahlung erfolgreich ist.
Ereignisse nach Zahlung verarbeitenServerseitig
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_
-Ereignisses empfehlen wir die Abwicklung von diesen weiteren Ereignissen, wenn Sie Zahlungen mit dem Payment Element erfassen:
Ereignis | Beschreibung | Aktion |
---|---|---|
payment_intent.succeeded | Wird 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.processing | Wird 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_ - oder ein payment_ -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_failed | Wird gesendet, wenn ein Kunde/eine Kundin einen Zahlungsversuch durchführt, die Zahlung jedoch fehlschlägt. | Wenn eine Zahlung von processing zu payment_ übergeht, bieten Sie der Kundin/dem Kunden einen weiteren Zahlungsversuch an. |
Transfer erstellenServerseitig
Senden Sie auf Ihrem Server Gelder von Ihrem Konto zu einem verbundenen Konto, indem Sie eine Übertragung erstellen und die verwendete transfer_
angeben.
Transfer und Zahlungsbeträge müssen nicht übereinstimmen. Sie können eine einzelne Zahlung auf mehrere Übertragungen aufteilen oder mehrere Zahlungen in eine einzelne Übertragung einbeziehen. Im folgenden Beispiel wird eine zusätzliche Übertragung erstellt, die der gleichen transfer_
zugeordnet ist.
Überweisungsoptionen
Sie können der Zeichenfolge transfer_
einen beliebigen Wert zuweisen, solange dieser für einen einzelnen Geschäftsvorgang steht. Zudem können Sie Überweisungen ohne zugehörige Zahlung oder Angabe einer transfer_
durchführen, zum Beispiel wenn Sie einen Dienstleister bezahlen müssen und diesem Vorgang keine Kundenzahlung zugrunde liegt.
Notiz
Die transfer_
identifiziert nur zugehörige Objekte. Sie hat keine Auswirkungen auf die Standardfunktionalität. Um zu verhindern, dass eine Übertragung ausgeführt wird, bevor die Gelder aus der zugehörigen Zahlung verfügbar sind, verwenden Sie das Attribut source_
der Überweisung.
Standardmäßig schlägt eine Übertragungsanfrage fehl, wenn der Betrag das verfügbare Kontoguthaben der Plattform übersteigt. Stripe wiederholt fehlgeschlagene Übertragungsanfragen nicht automatisch.
Sie können fehlgeschlagene Übertragungsanfragen für Übertragungen vermeiden, die mit Zahlungen verbunden sind. Wenn Sie die zugehörige Zahlung als source_transaction der Überweisung angeben, ist die Übertragungsanfrage automatisch erfolgreich. Die Übertragung erfolgt jedoch erst, wenn die Gelder aus dieser Zahlung auf dem Plattformkonto verfügbar sind.
Notiz
Wenn Sie separate Zahlungen und Überweisungen verwenden, berücksichtigen Sie dies bei der Planung Ihres Auszahlungs-Plans. Automatische Auszahlungen können Transfers stören, für die keine source_
definiert ist.
Integration testen
Hier finden Sie weitere Informationen zum Testen Ihrer Integration.
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.
Gebühren einziehen
Bei der Verwendung separater Zahlungen und Überweisungen kann die Plattform Gebühren für eine Zahlung einziehen, indem sie den Betrag reduziert, den sie auf die Zielkonten überweist. Nehmen Sie zum Beispiel eine Transaktion mit einem Lieferservice in einem Restaurant, bei der das Restaurant und der/die Fahrer/in bezahlt werden:
- Der Kunde/die Kundin zahlt 100 USD.
- Stripe erhebt eine Gebühr von 3,20 USD und fügt die verbleibenden 96,80 USD dem ausstehenden Guthaben des Plattformkontos hinzu.
- Die Plattform überweist 70 USD auf das verbundene Konto des Restaurants und 20 USD auf das verbundene Konto des Fahrers/der Fahrerin.
- Eine Plattformgebühr von 6,80 USD verbleibt auf dem Plattformkonto.

Informationen zur Verarbeitung von Zahlungen in mehreren Währungen mit Connect finden Sie unter Mit mehreren Währungen arbeiten.
Verfügbarkeit von Überweisungen
Standardmäßig werden Gelder aus dem verfügbaren Guthaben des Plattformkontos überwiesen. Der Versuch, einen Betrag zu überweisen, der das verfügbare Guthaben übersteigt, schlägt mit einer Fehlermeldung fehl. Um dieses Problem zu vermeiden, verknüpfen Sie eine Überweisung beim Erstellen mit einer bestehenden Zahlung, indem Sie die Zahlungs-ID als source_
-Parameter angeben. Mit einer source_
wird die Überweisungsanforderung unabhängig von Ihrem verfügbaren Guthaben als erfolgreich zurückgegeben, wenn die zugehörige Zahlung noch nicht abgewickelt wurde. Die Gelder werden auf dem Zielkonto jedoch erst verfügbar, wenn die Gelder aus der zugehörigen Zahlung vom Plattformkonto überwiesen werden können.
Notiz
Wenn eine Überweisung aufgrund unzureichenden Plattformguthabens fehlschlägt, wird die fehlgeschlagene Aktion nicht automatisch wiederholt, nachdem Sie Guthaben hinzugefügt haben. Nachdem Sie Geld eingezahlt haben, müssen Sie alle fehlgeschlagenen Überweisungen oder Auszahlungen wiederholen.
Wenn die Quellenzahlung den Wert transfer_
hat, weist Stripe denselben Wert der transfer_
der Übertragung zu. Ist dies nicht der Fall, generiert Stripe eine Zeichenfolge im Format group_
plus der zugehörigen PaymentIntent-ID, zum Beispiel: group_
. Diese Zeichenfolge wird sowohl für die Zahlung als auch für die Überweisung als transfer_
zugewiesen.
Notiz
Sie müssen die source_
angeben, wenn Sie eine Übertragung erstellen. Sie können dieses Attribut später nicht aktualisieren.
Sie können die Zahlungs-ID dem PaymentIntent entnehmen:
- Rufen Sie das Attribut neueste_Zahlung des PaymentIntent ab. Bei diesem Attribut handelt es sich um die ID der neuesten Abbuchung, die mit PaymentIntent verknüpft ist.
- Fordern Sie eine Liste von Zahlungen an, wobei Sie den
payment_
in der Anfrage angeben. Diese Methode gibt vollständige Daten für alle Zahlungen zurück, die mit dem PaymentIntent verknüpft sind.intent
Folgendes gilt bei Verwendung dieses Parameters:
- Der Überweisungsbetrag darf nicht den Betrag der zugrundeliegenden Zahlung übersteigen.
- Sie können mehrere Überweisungen mit dem gleichen Parameter
source_
erstellen, solange die Summe der Überweisungen die zugrunde liegende Zahlung nicht übersteigt.transaction - Die Überweisung übernimmt von der zugehörigen Zahlung den Status „Ausstehend“: Wenn die Gelder von der Zahlung in N Tagen verfügbar werden, wird auch die Zahlung, die das Stripe-Zielkonto durch die Überweisung empfängt, in N Tagen verfügbar.
- Stripe erstellt automatisch eine
transfer_
für Sie.group - Die Währung der Saldotransaktion, die mit der Abbuchung verknüpft ist, muss mit der Währung der Überweisung übereinstimmen
Asychrone Zahlungsmethoden wie ACHkönnen nach einer nachfolgenden Überweisungsanfrage fehlschlagen. Vermeiden Sie für diese Zahlungen die Verwendung von source_
. Warten Sie stattdessen, bis ein charge.succeeded-Ereignis ausgelöst wird, bevor Sie die Gelder überweisen. Wenn Sie bei diesen Zahlungen source_
verwenden, müssen Sie Funktionen zum Umgang mit Zahlungsfehlern implementieren.
Wenn eine als source_
verwendete Zahlung fehlschlägt, werden Gelder aus dem Guthaben Ihres Plattformkontos auf das verbundene Konto überwiesen, um die Zahlung zu decken. Um diese Gelder zurückzuerhalten, können Sie die Überweisung im Zusammenhang mit der fehlgeschlagenen source_
zurückbuchen.
Rückerstattungen ausstellen
Zahlungen, die auf Ihrer Plattform erstellt wurden, können Sie mithilfe des Geheimschlüssels Ihrer Plattform zurückerstatten. Die Rückerstattung einer Zahlung hat allerdings keine Auswirkungen auf damit verbundene Übertragungen. Es obliegt Ihrer Plattform, geschuldete Beträge einzutreiben, indem Sie die Höhe künftiger Übertragungen reduzieren oder Transfers zurückbuchen.
Transfers zurückbuchen
Connect unterstützt die Rückbuchung von Überweisungen, die an verbundene Konten erfolgt sind, entweder in voller Höhe oder in Teilen (durch Festlegen eines Werts für amount
). Verwenden Sie Überweisungsrückbuchungen nur für Rückerstattungen oder Zahlungsanfechtungen im Zusammenhang mit der Abbuchung oder zur Korrektur von Fehlern bei der Überweisung.
Durch eine Rückbuchung wird der angegebene Teilbetrag (oder der Gesamtbetrag) einer Überweisung wieder dem verfügbaren Guthaben der Plattform gutgeschrieben, wodurch sich das verfügbare Guthaben des verbundenen Kontos entsprechend verringert. Eine Überweisung kann nur zurückgebucht werden, wenn das verfügbare Guthaben des verbundenen Kontos höher als der Rückbuchungsbetrag ist oder wenn verbundene Rückstellungen aktiviert sind.
Wenn für die Rückbuchung die Währung umgerechnet werden muss, wird ein Fehler zurückgegeben, falls der Rückbuchungsbetrag nach der Währungsumrechnung zu einem Kontostand von null führt.
Wenn die Rückerstattungen für ein verbundenes Konto deaktiviert werden, können dennoch weiterhin Rückbuchungen der Überweisungen verarbeitet werden.