# Charges API und Payment Intents API Erfahren Sie mehr über die Unterschiede zwischen den beiden Kern-APIs von Stripe und ihrer Nutzungsweise. ## So funktionieren die Zahlungs-APIs von Stripe Es gibt heute drei Möglichkeiten der Zahlungsannahme mit Stripe: - Stripe Checkout - Charges API - *Payment Intents API* (The Payment Intents API tracks the lifecycle of a customer checkout flow and triggers additional authentication steps when required by regulatory mandates, custom Radar fraud rules, or redirect-based payment methods) [Stripe Checkout](https://docs.stripe.com/payments/checkout.md) ist eine vorgefertigte Zahlungsseite, auf die Sie Ihren Kunden/Ihre Kundin weiterleiten können, um einfache Käufe zu tätigen oder *Abonnements* (A Subscription represents the product details associated with the plan that your customer subscribes to. Allows you to charge the customer on a recurring basis) abzuschließen. Sie bietet zahlreiche Funktionen wie Apple Pay, Google Pay, Internationalisierung und Validierung von Formularen. Mit der [Charges](https://docs.stripe.com/api/charges.md) API und der [Payment Intents](https://docs.stripe.com/api/payment_intents.md) API können Sie nutzerdefinierte Zahlungsabläufe und -erlebnisse entwickeln. Die Payment Intents API vereint alle Stripe-Produkte und Zahlungsmethoden miteinander. Wir stellen Charges zwar nicht ein, jedoch sind neue Funktionen nur mit der Payment Intents API verfügbar. Einen vollständigen Vergleich der Funktionen finden Sie in der folgenden Tabelle: | Charges API | Payment Intents API | | ------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Vorwiegend von Unternehmen mit Kund/innen in den USA oder Kanada verwendet, die eine einfache Option möchten, Karten zu akzeptieren. | Für Unternehmen erforderlich, die mehrere Zahlungsmethoden akzeptieren sowie Karten, für die eine Authentifizierung erforderlich ist (beispielsweise aufgrund der *starken Kundenauthentifizierung* (Strong Customer Authentication (SCA) is a regulatory requirement in effect as of September 14, 2019, that impacts many European online payments. It requires customers to use two-factor authentication like 3D Secure to verify their purchase) in Europa). | | Funktioniert im Web, mit iOS und Android. | Funktioniert im Web, mit iOS und Android. Kann auch für die Annahme von Zahlungen im Store mit Terminal verwendet werden. | | Unterstützt Karten und alle Zahlungsmethoden in der [Sources API](https://docs.stripe.com/sources.md). | Unterstützt Karten, die 3DS erfordern, iDEAL, SEPA und [viele weitere Zahlungsmethoden](https://docs.stripe.com/payments/payment-methods/overview.md). | | Ist **nicht SCA-fähig** | *Ist SCA-fähig* (Strong Customer Authentication (SCA) is a regulatory requirement in effect as of September 14, 2019, that impacts many European online payments. It requires customers to use two-factor authentication like 3D Secure to verify their purchase) | ## Umstellung auf Code, der von Zahlungen abliest Wenn Sie eine Anwendung mit mehreren Zahlungsabläufen haben und diese schrittweise von der Charges API auf die [Payment Intents API](https://docs.stripe.com/payments/payment-intents.md) umstellen, sollten Sie zuerst den Code aktualisieren, der vom [Charge](https://docs.stripe.com/api/charges.md)-Objekt abliest. Um dies zu unterstützen, verfügt das Zahlungsobjekt über zwei zusätzliche Eigenschaften: [payment_method_details](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details) and [billing_details](https://docs.stripe.com/api/charges/object.md#charge_object-billing_details). Diese stellen eine konsistente Schnittstelle für das Lesen der Details der für die Zahlung verwendeten Zahlungsmethode bereit. Diese Felder sind in allen API-Versionen sowie auf Zahlungsobjekten, die sowohl mit der Charges API als auch der Payment Intents API erstellt wurden, verfügbar. Die folgende Tabelle zeigt häufig verwendete Eigenschaften für eine Zahlung und wie auf dieselben Informationen mithilfe zusätzlicher Eigenschaften zugegriffen werden kann. #### Karten und Bankkonten | Beschreibung | Vor | Nach | | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------- | | Details zur Zahlungsmethode, die für die Erstellung einer Zahlung verwendet wurde | `charge.source` | `charge.payment_method_details` | | ID der Zahlungsmethode, die für die Erstellung einer Zahlung verwendet wurde | `charge.source.id` | `charge.payment_method` | | Art der verwendeten Zahlungsmethode | `charge.source.object` (beispielsweise `card` oder `bank_account`) | `charge.payment_method_details.type` | | Rechnungsinformationen für die Zahlung (beispielsweise Postleitzahl für die Rechnung) | `charge.source.address_zip` | `charge.billing_details.address.postal_code` | | Name des Karteninhabers/der Karteninhaberin | `charge.source.name` | `charge.billing_details.name` | | Letzte vier Ziffern der verwendeten Karte | `charge.source.last4` | `charge.payment_method_details.card.last4` | | Fingerabdruck der Karte | `charge.source.fingerprint` | `charge.payment_method_details.card.fingerprint` | | CVC-Verifizierungsstatus für die Zahlung | `charge.source.cvc_check` | `charge.payment_method_details.card.checks.cvc_check` | | Werte der Kartenmarke | `charge.source.brand` kann eine der folgenden sein: `American Express`, `Diners Club`, `Discover`, `JCB`, `MasterCard`, `UnionPay`, `Visa` | `charge.payment_method_details.card.brand` kann eine der folgenden sein: `amex`, `diners`, `discover`, `jcb`, `mastercard`, `unionpay`, `visa` | | Google Pay Enum-Wert | `charge.source.tokenization_method` is `android_pay` | `card.wallet.type` innerhalb `charge.payment_method_details` ist `google_pay` | #### Quellen | Beschreibung | Vor | Nach | | ------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | | Details zur Zahlungsmethode, die für die Erstellung einer Zahlung verwendet wurde | `charge.source` | `charge.payment_method_details` | | ID der Zahlungsmethode, die für die Erstellung einer Zahlung verwendet wurde | `charge.source.id` (`charge.source.three_d_secure.card` wenn die 3D Secure-Quelle verwendet wird) | `charge.payment_method` | | Art der verwendeten Zahlungsmethode | `charge.source.object == 'source' && charge.source.type` (außer, wenn `charge.source.type` `three_d_secure` ist) | `charge.payment_method_details.type` | | Rechnungsinformationen für die Zahlung (beispielsweise Postleitzahl für die Rechnung) | `charge.source.owner.address.postal_code` | `charge.billing_details.address.postal_code` | | Name des Karteninhabers/der Karteninhaberin | `charge.source.owner.name` | `charge.billing_details.name` | | Letzte vier Ziffern der verwendeten Karte | `charge.source.card.last4` `charge.source.three_d_secure.last4` | `charge.payment_method_details.card.last4` | | Ob 3D Secure erfolgreich war oder nicht | `charge.source.object == 'source' && charge.source.type == 'three_d_secure'` | `charge.payment_method_details.card.three_d_secure.succeeded` | | Fingerabdruck der Karte | `charge.source.card.fingerprint` | `charge.payment_method_details.card.fingerprint` | | CVC-Verifizierungsstatus für die Zahlung | `charge.source.card.cvc_check` | `charge.payment_method_details.card.checks.cvc_check` | | Werte der Kartenmarke | `charge.source.card.brand` kann eine der folgenden sein: `American Express`, `Diners Club`, `Discover`, `JCB`, `MasterCard`, `UnionPay`, `Visa` | `charge.payment_method_details.card.brand` kann eine der folgenden sein: `amex`, `diners`, `discover`, `jcb`, `mastercard`, `unionpay`, `visa` | | Google Pay Enum-Wert | `charge.source.card.tokenization_method` ist `android_pay` | `card.wallet.type` innerhalb `charge.payment_method_details` ist `google_pay` | ## See also - [Umstellung auf Payment Intents](https://docs.stripe.com/payments/payment-intents/migration.md)