# 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* (A low-code payment integration that creates a customizable form for collecting payments. You can embed Checkout directly in your website, redirect customers to a Stripe-hosted payment page, or create a customized checkout page with Stripe Elements)
- *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)
- Charges-API (für die Erstellung von Zahlungen veraltet)

[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.

Die [Payment Intents API](https://docs.stripe.com/payments/payment-intents.md) ist die einheitliche Schnittstelle für alle Stripe-Produkte und Zahlungsmethoden. Mit ihr können Sie individuelle Zahlungsabläufe und -erlebnisse gestalten. Neue Funktionen sind ausschließlich über die Payment Intents API verfügbar.

> #### Deprecated
> 
> Wir haben die Verwendung der Charges-API zum Anlegen von Kartenzahlungen als veraltet eingestuft und planen, die Unterstützung dafür einzustellen. Verwenden Sie stattdessen [Checkout](https://docs.stripe.com/payments/checkout.md) oder die [Payment Intent](https://docs.stripe.com/payments/payment-intents.md) API. Bei neuen Integrationen kann die Charges-API nicht mehr zum Anlegen von Zahlungen verwendet werden.
> 
> Die Charges API unterstützt die folgenden Funktionen nicht, von denen viele für die Einhaltung von Kreditkartenvorschriften erforderlich sind:
> 
> - Unternehmen in Indien
> - [Bankanfragen zur Kartenauthentifizierung](https://docs.stripe.com/payments/cards/overview.md)
> - [Starke Kundenauthentifizierung](https://docs.stripe.com/strong-customer-authentication.md)

## Umstellung auf Code, der von Zahlungen abliest

Wenn Sie über eine Anwendung mit mehreren Zahlungsabläufen verfügen und diese schrittweise von der Charges-API auf die Payment Intents-API umstellen, sollten Sie zunächst den gesamten Code aktualisieren, der Daten aus dem [Charge](https://docs.stripe.com/api/charges.md)-Objekt ausliest. Um Ihnen dabei zu helfen, verfügt das Charge-Objekt über zwei zusätzliche Eigenschaften, [payment_method_details](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details) und [billing_details](https://docs.stripe.com/api/charges/object.md#charge_object-billing_details), die eine einheitliche Schnittstelle zum Auslesen der Details der für die Belastung verwendeten Zahlungsmethode bieten.

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)
