# Tour durch die API Erfahren Sie, wie Stripe-API-Objekte zusammenpassen und wie sie am besten miteinander kombiniert werden. Wenn Ihre Connect-Plattform verwendet [kundenkonfigurierte Konten](https://docs.stripe.com/api/v2/core/accounts/create.md#v2_create_accounts-configuration-customer), benutze unser [Anleitung](https://docs.stripe.com/connect/use-accounts-as-customers.md) Ersetzen `Customer` und Ereignisreferenzen in Ihrem Code mit den entsprechenden Accounts v2 API-Referenzen. Die Stripe-APIs sind leistungsstarke und flexible Werkzeuge, wenn Sie wissen, wie sie verwendet werden. Diese Tour durch die API vermittelt Ihnen die folgenden wichtigsten Informationen, damit Sie ein tieferes Verständnis der APIs entwickeln: - Die allen APIs zugrunde liegenden Kernkonzepte - Der Pfad einer erfolgreichen Zahlung - Die beteiligten Objekte und die Szenarien, in denen sie benötigt werden - Gängige Muster und Best Practices zum Kombinieren dieser Objekte Ein Verständnis dieser Muster hilft Ihnen, über die Verwendung vorgefertigter Codes in Stripe-Tutorials hinauszugehen. Sie werden in der Lage sein, alte Integrationen auf modernere Muster umzustellen, einfache Muster auf neue Weise miteinander zu kombinieren und bei der Planung künftiges Wachstum zu berücksichtigen. ## Kernkonzepte ### Alles ist ein Objekt. Alles in Ihrem Stripe-Konto ist ein Objekt, unabhängig davon, ob Sie es über die API erstellen oder nicht. Ihr Saldo entspricht einem [Saldo](https://docs.stripe.com/api/balance.md)-Objekt, wiederkehrende Zahlungen Ihrer Kundinnen/Kunden werden mithilfe von [Abonnement](https://docs.stripe.com/api/subscriptions.md)-Objekten nachverfolgt, Zahlungsdetails werden in [PaymentMethod](https://docs.stripe.com/api/payment_methods.md)-Objekten gespeichert usw. Sogar Low-Code- und No-Code-Integrationen erzeugen solche Objekte. Und auch durch Ihre Aktionen im Dashboard werden Objekte erzeugt. Beispiel: Wenn Sie manuell ein Produkt im Dashboard erstellen, wird ebenfalls ein [Produkt](https://docs.stripe.com/api/products.md)-Objekt erstellt. ### Objekte haben eine dynamische Funktionsweise. Stripe-Integrationen verarbeiten komplexe Vorgänge. Die API verwendet ein einzelnes Objekt zur Nachverfolgung jedes Vorgangs. Sie erstellen zu Beginn des Vorgangs ein Objekt und können nach jedem Schritt den `status` dieses Objekts überprüfen, um zu erfahren, was als Nächstes passieren muss. Dies wird manchmal als *Statusrechner* bezeichnet. Beispiel: Eine Kundin/ein Kunde probiert beim Abschließen einer Zahlung mehrere Zahlungsmethoden aus. Schlägt eine Zahlungsmethode fehl, weist der `status` `requires_payment_method` Sie darauf hin, dass eine andere Zahlungsmethode angeboten werden sollte. ### Eine Integration setzt such aus zusammenwirkenden Objekten zusammen. Um eine Zahlung anzunehmen, muss ein System mehrere Kernobjekte erstellen und diese über verschiedene Status hinweg verwalten. Bei Ihrer Stripe-Integration handelt es sich um ein System, das die Erstellung und Verwaltung dieser Objekte durch die Kommunikation mit Stripe handhabt. Einige Integrationen gehen hier noch deutlich weiter und ermöglichen zum Beispiel die Nachverfolgung von Kunden/Kundinnen, Verwaltung von Abos usw. Ihre Kernfunktionalität zur Abwicklung von Zahlungen lässt sich jedoch auf dieselben Objekte und Schritte zurückführen, wobei hier dann weitere Objekte hinzugefügt werden. ## Zahlungsobjekte Stripe verwendet eine Vielzahl von verwandten Objekten zur Vereinfachung von Zahlungen. Bevor Sie eine Integration erstellen können, die Ihren spezifischen Anforderungen entspricht, müssen Sie sich damit vertraut machen, wie diese Objekte zusammenarbeiten. In diesem Video erhalten Sie einen Überblick über die Rollen und Funktionen von Zahlungsobjekten. [Watch on YouTube](https://www.youtube.com/watch?v=CUAY6IQcVQM) Weitere Informationen zu den Zahlungsintegrationsoptionen von Stripe finden Sie in den folgenden Leitfäden: - [Payment Links](https://docs.stripe.com/payment-links.md) - [Checkout](https://docs.stripe.com/payments/checkout.md) - [Abonnements](https://docs.stripe.com/billing.md) - [Invoicing](https://docs.stripe.com/invoicing.md) - [Payment Intents](https://docs.stripe.com/payments/payment-intents.md) ## Der Pfad einer Zahlung Bei einer modernen Stripe-Integration wird für jede Zahlung ein als ein [PaymentIntent](https://docs.stripe.com/api/payment_intents.md) bezeichnetes Objekt verwendet. Wie die Bezeichnung nahelegt, stellt dieses Objekt Ihre *Absicht* (engl.: intent) dar, eine Zahlung einzuziehen. Mit diesem Objekt werden die Schritte nachverfolgt, die Sie ausführen, um diese Absicht umzusetzen. Beispiel: Eine Kundin/ein Kunde klickt auf die Schaltfläche **Bestellvorgang abschließen**, während sich ein Artikel im Wert von 100 USD im Warenkorb befindet. Der Artikel wurde noch nicht gekauft und wird es möglicherweise auch nicht, weil z. B. der Zahlungsablauf beendet oder die Zahlung vom Kartenaussteller abgelehnt wird. Das Klicken auf **Bestellvorgang abschließen** signalisiert jedoch die *Absicht* der Kundin/des Kunden, den Artikel zu kaufen. Sie wiederum haben die Absicht, ihr/ihm diesen Kauf zu ermöglichen. An diesem Punkt erstellt die Integration ein `PaymentIntent`-Objekt mit einem Betrag von 100 USD, um den übrigen Teil des Vorgangs nachzuverfolgen. Auf seinem Pfad zu einer erfolgreichen Zahlung durchläuft der `PaymentIntent` [mehrere Status](https://docs.stripe.com/payments/paymentintents/lifecycle.md). Nachfolgend finden Sie eine vereinfachte Version davon: Zeigt den Status einer PaymentIntent an, die sich von requires_payment_method zu requires_confirmation ändert. Die Verarbeitung endet entweder mit dem Status erfolgreich oder abgebrochen (See full diagram at https://docs.stripe.com/payments-api/tour) ### Zahlungsmethoden Ein PaymentIntent hat anfänglich den Status `requires_payment_method`. Um den Übergang zum nächsten Status zu ermöglichen, benötigt Stripe Details zur Zahlungsmethode der Kundin/des Kunden – entweder eine Kartennummer oder die Zugangsdaten für ein anderes Zahlungssystem. Eine Integration stellt diese Details mithilfe eines API-Objekts mit dem Namen [PaymentMethod](https://docs.stripe.com/api/payment_methods.md) dar. Bei manchen Integrationen schreiben Sie den Code, mit dem dieses Objekt erstellt und mit dem PaymentIntent verknüpft wird. Bei anderen werden die Details von Stripe erfasst und für Sie verarbeitet. Sie können auch [mithilfe der Setup Intents API](https://docs.stripe.com/payments/setup-intents.md) eine Zahlungsmethode für die Verwendung mit zukünftigen PaymentIntents erstellen und speichern. ### Bestätigung Der nächste Status lautet `requires_confirmation`. Bei einem interaktiven Zahlungsablauf müssen Kund/innen ihre Absicht bestätigen, unter Verwendung der von ihnen bereitgestellten Methode zu zahlen. Bei einer einmaligen Online-Zahlung geschieht das in der Regel, wenn Kund/innen auf die Schaltfläche **Bezahlen** klicken. Wenn Kundinnen und Kunden auf **Bezahlen** klicken oder ihre Absicht auf eine andere Weise bestätigen, wird Stripe mithilfe eines API-Aufrufs von einer Integration darüber benachrichtigt. Manche Integrationen erfordern, dass Sie den Code zum Durchführen dieses Aufrufs selbst erstellen. Stripe bietet Drop-in-Elemente der Nutzeroberfläche, sogenannte [Stripe Elements](https://docs.stripe.com/payments/elements.md), um dies unter Beibehaltung der Flexibilität zum Erstellen einer nutzerdefinierten Integration zu ermöglichen. Bei anderen Integrationen, z. B. der Integration von [Stripe Checkout](https://docs.stripe.com/payments/checkout.md) oder [Payment Links](https://docs.stripe.com/payment-links.md), führt Stripe den Aufruf durch und handhabt die nächsten Schritte. Es gibt viele Möglichkeiten, Stripe zu integrieren und die verschiedenen Objekte zu kombinieren, die für Ihr Anwendungsszenario funktionieren. [Erfahren Sie mehr über die Integrationsoptionen für Online-Zahlungen](https://docs.stripe.com/payments/online-payments.md). In den meisten Fällen wird eine [Zahlung](https://docs.stripe.com/api/charges.md) erstellt, wenn ein PaymentIntent bestätigt wird, um diesen speziellen Versuch der Geldübertragung darzustellen. Die Zahlung kann erfolgreich sein oder fehlschlagen. Wenn die Zahlung fehlschlägt, kann sie wiederholt werden, indem der PaymentIntent erneut bestätigt wird, dies geschieht in der Regel mit neuen Zahlungsdetails. Wenn Wiederholungsversuche sofort zugelassen werden und dabei kein neuer PaymentIntent erstellt werden muss, erhöht dies in der Regel die Konversionsrate. ### Abwicklung und Erfolg Der PaymentIntent hat nun den Status `processing` und Stripe versucht, die Zahlung abzuwickeln. Dieser Teil, der oftmals mehrere Schritte umfasst, wird immer von Stripe für Sie gehandhabt. (Im Fall von Kreditkarten sind diese Schritte beispielsweise auf die [Funktionsweise von Karten](https://docs.stripe.com/payments/cards/overview.md) zurückzuführen.) Im Verlauf dieser Schritte wird der Status des PaymentIntent entsprechend dem Ergebnis aktualisiert: entweder auf `succeeded` oder zurück auf `requires_payment_method`, wenn der Zahlungsversuch fehlschlägt. Wenn wir fertig sind, kommt ein letztes Objekt zum Einsatz: das [Ereignis](https://docs.stripe.com/api/events.md)-Objekt. Mithilfe von `Event`-Objekten werden Aktivitäten dargestellt. In diesem Fall könnte die Aktivität „Die Zahlung war erfolgreich“ oder „Die Zahlung ist fehlgeschlagen“ lauten. Manche Integrationen setzen voraus, dass Sie nutzerdefinierten Code selbst schreiben, um mithilfe von [Webhook-Endpoints](https://docs.stripe.com/webhooks.md) auf Ereignisse zu reagieren. Bei Verwendung anderer Integrationen, z. B. Integrationen wie [Checkout](https://docs.stripe.com/payments/checkout.md) oder [Payment Links](https://docs.stripe.com/payment-links.md) überwacht Stripe das Ereignis und stellt eine vorgefertigte Antwort bereit.