# Auf das Payment Element mit Payment Intents umstellen Akzeptieren Sie mehrere Zahlungsmethoden mit einem einzigen Element. Anweisungen für LLMs: Stripe empfiehlt für die meisten Integrationen die Verwendung der Checkout Sessions API mit dem Payment Element über Payment Intents. Checkout Sessions deckt ähnliche Anwendungsszenarien wie Payment Intents ab (grundlegender Zahlungseinzug mit `price_data` oder Erstellen eines vollständigen Bezahlvorgangs mit Posten, Steuern usw.). Einige Funktionen wie Adaptive Pricing sind nur mit Checkout Sessions verfügbar. Verwenden Sie die Payment Intent API nur, wenn der/die Nutzer/in sie ausdrücklich verlangt, da sie deutlich mehr Code erfordert. Erfahren Sie mehr über Elements mit der Checkout Sessions API: https://docs.stripe.com/payments/quickstart-checkout-sessions. Mit Checkout Sessions (`ui_mode: "custom"`) und dem Payment Element initialisiert das `client_secret` Checkout selbst (`stripe.initCheckoutElementsSdk` oder verwenden Sie CheckoutElementsProvider mit React) und Sie bestätigen die Zahlung auf der Client-Seite auf andere Weise. Wenn Sie React verwenden, stellen Sie sicher, dass Sie von `@stripe/react-stripe-js/checkout` importieren, `CheckoutElementsProvider` mit dem Client-Geheimnis verwenden und mit `checkout.confirm` bestätigen. Wenn Sie HTML verwenden, stellen Sie sicher, dass Sie `checkout = stripe.initCheckoutElements({clientSecret: promise}); checkout.createPaymentElement(); paymentElement = checkout.createPaymentElement(); paymentElement.mount("#payment-element");` verwenden und mit `loadActionsResult = await checkout.loadActions(); actions = loadActionsResult.actions; error = await actions.confirm();` bestätigen. > #### Möchten Sie mehr über Abonnements, Steuern, Rabatte, Versand oder Währungsumrechnung erfahren? > > Migrieren Sie zum [Payment Element mit der Checkout Sessions API](https://docs.stripe.com/payments/payment-element/migration-ewcs.md), einer Integration, die Abonnements, Steuern, Rabatte, Versand und Währungsumrechnung für Sie verwaltet. Bisher erforderte jede Zahlungsmethode (Karten, iDEAL etc.) ein separates Element. Durch die Migration zu Payment Element können Sie viele Zahlungsmethoden mit einem einzelnen Element akzeptieren. PaymentIntents und SetupIntents haben jeweils eigene Migrationsrichtlinien. Sehen Sie sich den entsprechenden Leitfaden für Ihren Integrationspfad und die Codebeispiele an. Wenn Ihre Integration weiterhin die Charges API mit Token verwendet, [migrieren Sie zuerst zur Payment Intents API](https://docs.stripe.com/payments/payment-intents/migration.md#web), bevor Sie diesen Leitfaden verwenden. # Umstieg auf PaymentIntent > This is a Umstieg auf PaymentIntent for when integration-path is one-time. View the full page at https://docs.stripe.com/payments/payment-element/migration?integration-path=one-time. Wenn Ihre bestehende Integration die API [Payment Intents](https://docs.stripe.com/payments/payment-intents.md) zur Erstellung und Nachverfolgung von Zahlungen oder zum Speichern von Kartendaten bei der Zahlung verwendet, führen Sie die folgenden Schritte zur Verwendung von Payment Element aus. ## Zahlungsmethoden aktivieren > Dieser Integrationspfad unterstützt keine BLIK oder vorautorisierte Belastungen, die das Automated Clearing Settlement System (ACSS) verwenden. Außerdem können Sie, wenn Sie den verzögerten Intent von der Client-Seite erstellen, `customer_balance` nicht mit dynamischen Zahlungsmethoden verwenden , da der PaymentIntent einen kundenkonfiguriertes [Account](https://docs.stripe.com/api/v2/core/accounts/object.md#v2_account_object-configuration-customer)- oder [Customer](https://docs.stripe.com/api/customers/object.md)-Objekt erfordert, das der clientseitige Ablauf nicht unterstützt. Zur Verwendung von `customer_balance`, erstellen Sie das `PaymentIntent` serverseitig mit einem `Account` oder `Customer` und geben Sie sein `client_secret` an den Client zurück. Zeigen Sie Ihre [Einstellungen für Zahlungsmethoden](https://dashboard.stripe.com/settings/payment_methods) an und aktivieren Sie die Zahlungsmethoden, die Sie unterstützen möchten. Sie müssen mindestens eine Zahlungsmethode aktiviert haben, um einen *PaymentIntent* (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) zu erstellen. Standardmäßig aktiviert Stripe Karten und andere gängige Zahlungsmethoden, mit denen Sie mehr Kundinnen und Kunden erreichen können. Wir empfehlen jedoch, zusätzliche Zahlungsmethoden zu aktivieren, die für Ihr Unternehmen und Ihre Kundschaft relevant sind. Weitere Informationen zur Unterstützung von Produkten und Zahlungsmethoden finden Sie auf der Seite [Unterstützte Zahlungsmethoden](https://docs.stripe.com/payments/payment-methods/payment-method-support.md) und der [Preisseite](https://stripe.com/pricing/local-payment-methods) für Gebühren. ## Eine Elements-Instanz aktualisieren [Clientseitig] Aktualisieren Sie als Nächstes Ihren clientseitigen Code, um beim Erstellen der Elements-Instanz `mode`, `currency` und `amount` zu übergeben. Für die Verwendung mit einem PaymentIntent setzen Sie den `mode` auf `'payment'` und die `currency` und den `amount` auf den Betrag, den Sie Ihrem/Ihrer Kund/in in Rechnung stellen möchten. #### Javascript ### Before ```javascript const stripe = Stripe('<>'); const elements = stripe.elements(); ``` ### After ```javascript const stripe = Stripe('<>'); const options = { mode: 'payment', currency: 'usd', amount: 1099, }; const elements = stripe.elements(options); ``` #### React ### Before ```jsx const stripePromise = loadStripe('<>'); function App() { return ( ); }; ``` ### After ```jsx const stripePromise = loadStripe('<>'); const options = { mode: 'payment', currency: 'usd', amount: 1099, }; function App() { return ( ); }; ``` ## Optional: Zahlungsdaten beim Bezahlvorgang speichern Wenn Ihre bestehende Integration auch Zahlungsdetails während einer Zahlung speichert, verwenden Sie die Option `setup_future_usage` beim Erstellen der Elements-Gruppe, anstatt sie in der Phase der Zahlungsbestätigung mit `stripe.confirmCardPayment` zu übergeben. Das Payment Element verwendet diese Informationen, um bei Bedarf zusätzliche Eingabefelder anzuzeigen und Mandate einzublenden. > Einige Zahlungsmethoden können Sie während der Zahlung nicht speichern. Sie können diese Zahlungsmethoden trotzdem für andere Anwendungsszenarien aktivieren, sie werden den Kundinnen/Kunden nur nicht als Option angezeigt, wenn sie zukünftige Zahlungen einrichten. Unter den [Integrationsoptionen für Zahlungsmethoden](https://docs.stripe.com/payments/payment-methods/integration-options.md) finden Sie weitere Details dazu, was unterstützt wird. #### Javascript ```javascript const stripe = Stripe('<>'); const options = { mode: 'payment', currency: 'usd', amount: 1099,setup_future_usage: 'off_session', }; const elements = stripe.elements(options); ``` #### React ```jsx const stripePromise = loadStripe('<>'); const options = { mode: 'payment', currency: 'usd', amount: 1099,setup_future_usage: 'off_session', }; function App() { return ( ); }; ``` Sie müssen beim Erstellen Ihres PaymentIntent `setup_future_usage` übergeben. #### curl ```bash curl https://api.stripe.com/v1/payment_intents \ -u <>: \ -d "customer"="{{CUSTOMER_ID}}" \-d "setup_future_usage"= "off_session" \ -d "amount"=1099 \ -d "currency"="usd" \ ``` ## Optional: Optionen für zusätzliche Elemente [Client-seitig] Das [Elements-Objekt](https://docs.stripe.com/js/elements_object/create_without_intent) akzeptiert zusätzliche Optionen, die die Zahlungserfassung beeinflussen. Basierend auf den angegebenen Optionen zeigt das Payment Element die verfügbaren Zahlungsmethoden an, die Sie aktiviert haben. Erfahren Sie mehr über die [Unterstützung von Zahlungsmethoden](https://docs.stripe.com/payments/payment-methods/payment-method-support.md). Stellen Sie sicher, dass die von Ihnen angegebenen Elements-Optionen (wie `captureMethod`, `setupFutureUsage` und `paymentMethodOptions`) mit den entsprechenden Parametern übereinstimmen, die Sie beim Erstellen und Bestätigen des Intent übergeben. Nicht übereinstimmende Parameter können zu unerwartetem Verhalten oder Fehlern führen. | Eigentum | Typ | Beschreibung | Erforderlich | | ---------------------------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------ | | `mode` | - `payment` - `setup` - `subscription` | Gibt an, ob das Payment Element mit einem *PaymentIntent* (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), *SetupIntent* (The Setup Intents API lets you build dynamic flows for collecting payment method details for future payments. It tracks the lifecycle of a payment setup flow and can trigger additional authentication steps if required by law or by the payment method) oder *Abonnement* (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) verwendet wird. | Ja | | `currency` | `string` | Die Währung des Betrags, der dem Kunden/der Kundin berechnet werden soll. | Ja | | `amount` | `number` | Der Betrag, der dem Kunden/der Kundin in Rechnung gestellt werden soll, angezeigt in Apple Pay, Google Pay oder BNPL-Nutzeroberflächen. | Für den Modus `payment` und `subscription` | | `setupFutureUsage` | - `off_session` - `on_session` | Gibt an, dass Sie beabsichtigen, zukünftige Zahlungen mit den vom Payment Element erfassten Zahlungsdaten zu tätigen. | Nein | | `captureMethod` | - `automatic` - `automatic_async` - `manual` | Steuert, wann die Gelder vom Kundenkonto erfasst werden. | Nein | | `onBehalfOf` | `string` | Nur Connect. Die Stripe-Konto-ID, die das Unternehmen des Datensatzes ist. Weitere Informationen dazu, ob diese Option für Ihre Integration relevant ist, finden Sie unter [Use cases](https://docs.stripe.com/connect/charges.md). | Nein | | `paymentMethodTypes` | `string[]` | Eine Liste der zu rendernden Zahlungsmethodentypen. Sie können dieses Attribut weglassen, um Ihre Zahlungsmethoden im [Stripe-Dashboard](https://dashboard.stripe.com/settings/payment_methods) zu verwalten. | Nein | | `paymentMethodConfiguration` | `string` | Die [Konfiguration der Zahlungsmethode](https://docs.stripe.com/api/payment_method_configurations.md), die bei der Verwaltung Ihrer Zahlungsmethoden im [Stripe-Dashboard](https://dashboard.stripe.com/settings/payment_methods) verwendet werden soll. Wenn keine Angabe gemacht wird, wird Ihre Standardkonfiguration verwendet. | Nein | | `paymentMethodCreation` | `manual` | Ermöglicht die Erstellung von PaymentMethods aus der Elements-Instanz mit [stripe.createPaymentMethod](https://docs.stripe.com/js/payment_methods/create_payment_method_elements). | Nein | | `paymentMethodOptions` | `{us_bank_account: {verification_method: string}}` | Verifizierungsoptionen für die Zahlungsmethode `us_bank_account`. Akzeptiert dieselben Verifizierungsmethoden wie [Payment Intents](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_options-us_bank_account-verification_method). | Nein | | `paymentMethodOptions` | `{card: {installments: {enabled: boolean}}}` | Ermöglicht die ggf. manuelle Aktivierung der Nutzeroberfläche zur Auswahl des Karten-Ratenzahlungsplans, wenn Sie Ihre Zahlungsmethoden nicht im [Stripe-Dashboard](https://dashboard.stripe.com/settings/payment_methods) verwalten. Sie müssen `mode='payment'` festlegen *und* `paymentMethodTypes` explizit angeben. Andernfalls wird ein Fehler ausgelöst. Nicht kompatibel mit `paymentMethodCreation='manual'`. | Nein | | `paymentMethodOptions` | `{[paymentMethod]: {setup_future_usage: string}}` | Ermöglicht es Ihnen, `setup_future_usage` nur für Zahlungsmethoden anzugeben, die die Wiederverwendung unterstützen. Gilt nur, wenn der `mode` `payment` ist. Der Wert für jede Zahlungsmethode muss mit der entsprechenden `payment_method_options[paymentMethod][setup_future_usage]` im PaymentIntent während der Bestätigung übereinstimmen. Unterstützte Zahlungsmethoden und Werte finden Sie in der [Ressource zu Stripe.js](https://docs.stripe.com/js/elements_object/create_without_intent#stripe_elements_no_intent-options-paymentMethodOptions). | Nein | ## Payment Element hinzufügen [Clientseitig] Wenn Sie [React Stripe.js](https://github.com/stripe/react-stripe-js) verwenden, führen Sie eine Aktualisierung auf das neuste Paket durch, um das Payment Element zu nutzen. Sie können jetzt das Card Element und die Elemente der einzelnen Zahlungsmethoden durch das Payment Element ersetzen. Das Payment Element passt basierend auf der Zahlungsmethode und dem Land die zu erfassenden Eingabefelder automatisch an (z. B. Erfassung der vollständigen Rechnungsadresse), sodass Sie keine nutzerdefinierten Eingabefelder pflegen müssen. Im folgenden Beispiel wird `CardElement` durch `PaymentElement` ersetzt: #### JavaScript ```html
``` ```javascript const paymentElement = elements.create("payment"); paymentElement.mount("#payment-element"); ``` Wenn in Ihrem Zahlungsablauf bereits immer Details wie der Name oder die E-Mail-Adresse der Kundinnen und Kunden erfasst wird, können Sie verhindern, dass das Payment Element diese Informationen erfasst, indem Sie die Option [Felder](https://docs.stripe.com/js/elements_object/create_payment_element#payment_element_create-options-fields) beim Erstellen des Payment Element übergeben. Wenn Sie die Erfassung eines bestimmten Felds deaktivieren, müssen Sie die gleichen Daten mit [stripe.confirmPayment](https://docs.stripe.com/js/payment_intents/confirm_payment) zurückgeben. ## Aktualisieren Sie Ihren Erstellungsaufruf für PaymentIntents [Serverseitig] Mit dem Payment Element können Sie mehrere Zahlungsmethoden annehmen. Sie können Zahlungsmethoden über das [Dashboard](https://dashboard.stripe.com/settings/payment_methods) verwalten. Stripe handhabt die Rückgabe geeigneter Zahlungsmethoden basierend auf Faktoren wie Betrag, Währung und Zahlungsablauf. Wir priorisieren Zahlungsmethoden, die die Konversion erhöhen und für die Währung und den Standort des Kunden/der Kundin am relevantesten sind. Alle zusätzlichen Elementoptionen, die beim Erstellen der Elements-Gruppe im vorherigen Schritt übergeben wurden, sollten auch beim Erstellen des PaymentIntent übergeben werden. #### curl ```bash curl https://api.stripe.com/v1/payment_intents \ -u <>: \ -H "Stripe-Version: 2026-04-22.dahlia" \ -d "amount"=1099 \ -d "currency"="usd" \-d "automatic_payment_methods[enabled]"=true \ ``` > Jede Zahlungsmethode muss die im PaymentIntent übergebene Währung unterstützen und Ihr Unternehmen muss in einem der Länder niedergelassen sein, das von der jeweiligen Zahlungsmethode unterstützt wird. Unter [Integrationsoptionen für Zahlungsmethoden](https://docs.stripe.com/payments/payment-methods/integration-options.md) finden Sie weitere Informationen zu den unterstützten Optionen. ## Submit-Handler aktualisieren [Clientseitig] Statt einzelne Bestätigungsmethoden wie `stripe.confirmCardPayment` oder `stripe.confirmP24Payment` zu verwenden, verwenden Sie [stripe.confirmPayment](https://docs.stripe.com/js/payment_intents/confirm_payment), um Zahlungsinformationen zu erfassen und an Stripe zu übermitteln. Um den PaymentIntent zu bestätigen, nehmen Sie die folgenden Änderungen an Ihrem Submit-Handler vor: - Rufen Sie `await elements.submit()` auf, um die Formularvalidierung auszulösen und alle Daten zu erfassen, die für [Wallets](https://docs.stripe.com/js/elements_object/create_payment_element#payment_element_create-options-wallets) erforderlich sind. - Optional: Verschieben Sie die Erstellung des PaymentIntent innerhalb des Submit-Handlers. Auf diese Weise erstellen Sie den PaymentIntent nur, wenn Sie den endgültigen Betrag kennen. - Übergeben Sie die `elements`-Instanz, die Sie zum Erstellen des Payment Element verwendet haben, und das `clientSecret` aus dem PaymentIntent als Parameter an `stripe.confirmPayment`. Beim Aufruf versucht `stripe.confirmPayment`, alle [erforderlichen Aktionen](https://docs.stripe.com/payments/paymentintents/lifecycle.md) durchzuführen, wie z. B. die Authentifizierung Ihrer Kundinnen/Kunden durch Anzeigen eines 3DS-Dialogfelds oder die Weiterleitung an eine Bankautorisierungsseite. Nach der Bestätigung werden die Nutzer/innen an die von Ihnen konfigurierte `return_url` weitergeleitet. Dies entspricht in der Regel einer Seite auf Ihrer Website, die [Auskunft zum Zahlungsstatus gibt](https://docs.stripe.com/payments/accept-a-payment.md#web-post-payment). Wenn Sie den gleichen Bezahlvorgang für Kartenzahlungen beibehalten möchten und Weiterleitungen nur für Zahlungsmethoden mit Weiterleitung vornehmen möchten, können Sie die [Weiterleitung](https://docs.stripe.com/js/payment_intents/confirm_payment#confirm_payment_intent-options-redirect) auf `if_required` festlegen. Im folgenden Codebeispiel wird `stripe.confirmCardPayment` durch `stripe.confirmPayment` ersetzt: ### Before ```javascript // Create the PaymentIntent and obtain clientSecret const res = await fetch("/create-intent", { method: "POST", headers: {"Content-Type": "application/json"}, }); const {client_secret: clientSecret} = await res.json(); const handleSubmit = async (event) => { event.preventDefault(); if (!stripe) { // Stripe.js hasn't yet loaded. // Make sure to disable form submission until Stripe.js has loaded. return; } setLoading(true); if (error) { handleError(error); } }; ``` ### After ```javascript const handleSubmit = async (event) => { event.preventDefault(); if (!stripe) { // Stripe.js hasn't yet loaded. // Make sure to disable form submission until Stripe.js has loaded. return; } setLoading(true); // Trigger form validation and wallet collection const {error: submitError} = await elements.submit(); if (submitError) { handleError(submitError); return; } // Create the PaymentIntent and obtain clientSecret const res = await fetch("/create-intent", { method: "POST", headers: {"Content-Type": "application/json"}, }); const {client_secret: clientSecret} = await res.json(); // Use the clientSecret and Elements instance to confirm the setup const {error} = await stripe.confirmPayment({ elements, clientSecret, confirmParams: { return_url: 'https://example.com/order/123/complete', }, // Uncomment below if you only want redirect for redirect-based payments // redirect: "if_required", }); if (error) { handleError(error); } }; ``` ## Optional: Prüfziffer (CVC) erneut erfassen Wenn Sie für gespeicherte Karten künftige Zahlungen erstellen, sollten Sie als zusätzliche Betrugspräventionsmaßnahme erneut die Prüfziffer (CVC) der Karte erfassen, um den/die Nutzer/in zu verifizieren. Erstellen Sie zunächst auf Ihrem Server einen `PaymentIntent` mit dem Betrag, der Währung, der [Konto](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-customer_account)- oder [Kunden](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-customer)-ID sowie dem Parameter [require_cvc_recollection](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_options-card-require_cvc_recollection). [Listen Sie die mit Ihrem Kunden bzw. Ihrer Kundin verknüpften Zahlungsmethoden auf](https://docs.stripe.com/api/payment_methods/list.md), um festzustellen, welche davon für die erneute Erfassung des CVC angezeigt werden sollen. Nachdem Sie das Client-Geheimnis des `PaymentIntent` an den Browser übergeben haben, können Sie die CVC-Daten mit Stripe Elements auf Ihrer Client-Seite erneut erfassen. Verwenden Sie das `cardCvc`-Element, um einen CVC-Wert von Ihrem Kunden bzw. Ihrer Kundin erneut zu erfassen, und bestätigen Sie anschließend die Zahlung von Ihrem Client aus mit [stripe.confirmCardPayment](https://docs.stripe.com/js.md#stripe-confirm-card-payment). Setzen Sie `payment_method` auf Ihre PaymentMethod-ID und `payment_method_options[card][cvc]` auf Ihr `cardCvc`-Element. ```javascript const result = await stripe.confirmCardPayment(clientSecret, { payment_method: '{{PAYMENT_METHOD_ID}}', payment_method_options: { card: { cvc: cardCvcElement } }, }); if (result.error) { // Show error to your customer console.log(result.error.message); } else { if (result.paymentIntent.status === 'succeeded') { // Show a success message to your customer // There's a risk of the customer closing the window before callback // execution. Set up a webhook or plugin to listen for the // payment_intent.succeeded event that handles any business critical // post-payment actions. } } ``` Eine Zahlung kann auch dann erfolgreich sein, wenn die CVC-Prüfung fehlschlägt. Um dies zu verhindern, konfigurieren Sie Ihre [Radar-Regeln](https://docs.stripe.com/radar/rules.md#traditional-bank-checks) so, dass die Zahlung bei einem Fehlschlagen der CVC-Verifizierung gesperrt wird. ## Handhabung von Ereignissen nach der Zahlung [Serverseitig] Stripe sendet ein [payment_intent.succeeded](https://docs.stripe.com/api/events/types.md#event_types-payment_intent.succeeded)-Ereignis, wenn die Zahlung abgeschlossen ist. Verwenden Sie [Webhook-Tool im Dashboard](https://dashboard.stripe.com/webhooks) oder folgen Sie der [Webhook-Anleitung](https://docs.stripe.com/webhooks/quickstart.md), 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](https://stripe.com/payments/payment-methods-guide) mit einer einzelnen Integration akzeptieren. Neben der Abwicklung des `payment_intent.succeeded`-Ereignisses empfehlen wir die Abwicklung von diesen weiteren Ereignissen, wenn Sie Zahlungen mit dem Payment Element erfassen: | Ereignis | Beschreibung | Aktion | | ------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | [payment_intent.succeeded](https://docs.stripe.com/api/events/types.md?lang=php#event_types-payment_intent.succeeded) | Wird gesendet, wenn Kundinnen und Kunden eine Zahlung erfolgreich abgeschlossen haben. | Senden Sie den Kund/innen eine Auftragsbestätigung und *wickeln* (Fulfillment is the process of providing the goods or services purchased by a customer, typically after payment is collected) Sie die Bestellung ab. | | [payment_intent.processing](https://docs.stripe.com/api/events/types.md?lang=php#event_types-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_intent.succeeded`- oder ein `payment_intent.payment_failed`-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](https://docs.stripe.com/api/events/types.md?lang=php#event_types-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_failed` übergeht, bieten Sie der Kundin/dem Kunden einen weiteren Zahlungsversuch an. | ## Integration testen #### Karten | Kartennummer | Szenario | So führen Sie den Test durch | | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------- | | 4242424242424242 | Die Kartenzahlung ist erfolgreich und es ist keine Authentifizierung erforderlich. | Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an. | | 4000002500003155 | Für die Kartenzahlung ist eine *Authentifizierung* (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) erforderlich. | Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an. | | 4000000000009995 | Die Karte wird mit einem Ablehnungscode wie `insufficient_funds` abgelehnt. | Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an. | | 6205500000000000004 | Die UnionPay-Karte hat eine variable Länge von 13 bis 19 Ziffern. | Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an. | #### Digitale Geldbörsen (Wallets) | Zahlungsmethode | Szenario | So führen Sie den Test durch | | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Alipay | Ihr Kunde/Ihre Kundin zahlt erfolgreich mit einer auf Weiterleitung basierenden Zahlungsmethode mit [sofortiger Benachrichtigung](https://docs.stripe.com/payments/payment-methods.md#payment-notification). | Wählen Sie eine beliebige, auf Weiterleitung basierende Zahlungsmethode aus, füllen Sie die erforderlichen Informationen aus und bestätigen Sie die Zahlung. Klicken Sie dann auf der Weiterleitungsseite auf **Testzahlung abschließen**. | #### Bankumleitungen | Zahlungsmethode | Szenario | So führen Sie den Test durch | | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | BECS-Lastschriftverfahren | Ihr/e Kund/in zahlt erfolgreich mit dem BECS-Lastschriftverfahren. | Füllen Sie das Formular mit der Kontonummer `900123456` und BSB `000000` aus. Der bestätigte PaymentIntent geht zunächst in den Status `processing` über und dann 3 Minuten später in den Status `succeeded`. | | BECS-Lastschriftverfahren | Die Zahlung Ihres/Ihrer Kund/in schlägt fehl mit Code `account_closed` fehl. | Füllen Sie das Formular mit der Kontonummer `111111113` und BSB `000000` aus. | | Bancontact, EPS, iDEAL und Przelewy24 | Ihr/e Kund/in konnte sich auf der iDEAL-Weiterleitungsseite für eine auf Weiterleitung basierende Zahlungsmethode mit sofortiger Benachrichtigung nicht authentifizieren. | Wählen Sie eine beliebige, auf Weiterleitung basierende Zahlungsmethode aus, füllen Sie die erforderlichen Informationen aus und bestätigen Sie die Zahlung. Klicken Sie dann auf der Weiterleitungsseite auf **Testzahlung fehlgeschlagen**. | | Pay by Bank | Ihr Kunde/Ihre Kundin zahlt erfolgreich mit einer auf Weiterleitung basierenden Zahlungsmethode mit [verzögerter Benachrichtigung](https://docs.stripe.com/payments/payment-methods.md#payment-notification). | Wählen Sie die Zahlungsmethode aus, füllen Sie die erforderlichen Informationen aus und bestätigen Sie die Zahlung. Klicken Sie dann auf der Weiterleitungsseite auf **Testzahlung abschließen**. | | Pay by Bank | Ihr/e Kund/in konnte sich auf der iDEAL-Weiterleitungsseite für eine auf Weiterleitung basierende Zahlungsmethode mit verzögerter Benachrichtigung nicht authentifizieren. | Wählen Sie die Zahlungsmethode aus, füllen Sie die erforderlichen Informationen aus und bestätigen Sie die Zahlung. Klicken Sie dann auf der Weiterleitungsseite auf **Testzahlung fehlgeschlagen**. | | BLIK | BLIK-Zahlungen können aus verschiedenen Gründen fehlschlagen. Es gibt sofortige Fehler (der Code ist abgelaufen oder ungültig), verzögerte Fehler (die Bank lehnt ab) oder Zeitüberschreitungen (der/die Kund/in hat nicht rechtzeitig reagiert). | Verwenden Sie E-Mail-Muster, um [die verschiedenen Fehler zu simulieren](https://docs.stripe.com/payments/blik/accept-a-payment.md#simulate-failures) | #### Banklastschriften | Zahlungsmethode | Szenario | So führen Sie den Test durch | | ---------------- | -------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | SEPA-Lastschrift | Ihr/e Kund/in zahlt erfolgreich mit dem SEPA-Lastschriftverfahren. | Füllen Sie das Formular mit der Kontonummer `AT321904300235473204` aus. Die bestätigte PaymentIntent geht zunächst in den Status „wird verarbeitet“ und dann drei Minuten später in den Status „erfolgreich“ über. | | SEPA-Lastschrift | Der Status der PaymentIntent Ihres/Ihrer Kund/in wechselt von `processing` zu `requires_payment_method`. | Füllen Sie das Formular mit der Kontonummer `AT861904300235473202` aus. | #### Gutscheine | Zahlungsmethode | Szenario | So führen Sie den Test durch | | --------------- | ------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- | | Boleto, OXXO | Ihr/e Kund/in bezahlt mit einem Boleto- oder OXXO-Gutschein. | Wählen Sie als Zahlungsmethode Boleto oder OXXO aus und übermitteln Sie die Zahlung. Schließen Sie das OXXO-Dialogfeld, nachdem es angezeigt wurde. | Hier finden Sie weitere Informationen zum [Testen](https://docs.stripe.com/testing.md) Ihrer Integration. # Umstieg auf SetupIntent > This is a Umstieg auf SetupIntent for when integration-path is future. View the full page at https://docs.stripe.com/payments/payment-element/migration?integration-path=future. Wenn Ihre bestehende Integration die API [Setup Intents](https://docs.stripe.com/payments/setup-intents.md) für künftige Zahlungen verwendet, führen Sie die folgenden Schritte zur Verwendung von Payment Element aus. ## Zahlungsmethoden aktivieren > Dieser Integrationspfad unterstützt keine BLIK oder vorautorisierte Belastungen, die das Automated Clearing Settlement System (ACSS) verwenden. Außerdem können Sie, wenn Sie den verzögerten Intent von der Client-Seite erstellen, `customer_balance` nicht mit dynamischen Zahlungsmethoden verwenden , da der PaymentIntent einen kundenkonfiguriertes [Account](https://docs.stripe.com/api/v2/core/accounts/object.md#v2_account_object-configuration-customer)- oder [Customer](https://docs.stripe.com/api/customers/object.md)-Objekt erfordert, das der clientseitige Ablauf nicht unterstützt. Zur Verwendung von `customer_balance`, erstellen Sie das `PaymentIntent` serverseitig mit einem `Account` oder `Customer` und geben Sie sein `client_secret` an den Client zurück. Zeigen Sie Ihre [Einstellungen für Zahlungsmethoden](https://dashboard.stripe.com/settings/payment_methods) an und aktivieren Sie die Zahlungsmethoden, die Sie unterstützen möchten. Sie müssen mindestens eine Zahlungsmethode aktiviert haben, um einen *SetupIntent* (The Setup Intents API lets you build dynamic flows for collecting payment method details for future payments. It tracks the lifecycle of a payment setup flow and can trigger additional authentication steps if required by law or by the payment method) zu erstellen. Standardmäßig aktiviert Stripe Karten und andere gängige Zahlungsmethoden, mit denen Sie mehr Kundinnen und Kunden erreichen können. Wir empfehlen jedoch, zusätzliche Zahlungsmethoden zu aktivieren, die für Ihr Unternehmen und Ihre Kundschaft relevant sind. Weitere Informationen zur Unterstützung von Produkten und Zahlungsmethoden finden Sie auf der Seite [Unterstützte Zahlungsmethoden](https://docs.stripe.com/payments/payment-methods/payment-method-support.md) und der [Preisseite](https://stripe.com/pricing/local-payment-methods) für Gebühren. ## Eine Elements-Instanz aktualisieren [Clientseitig] Aktualisieren Sie als Nächstes Ihren clientseitigen Code, um beim Erstellen der Elements-Instanz den Parameter `mode` und `currency` zu übergeben. Für die Verwendung mit einem SetupIntent setzen Sie den `mode` auf `'setup'` und die `currency` auf das, was Sie Ihrem/Ihrer Kund/in zukünftig in Rechnung stellen werden. #### Javascript ### Before ```javascript const stripe = Stripe('<>'); const elements = stripe.elements(); ``` ### After ```javascript const stripe = Stripe('<>'); const options = { mode: 'setup', currency: 'usd', }; const elements = stripe.elements(options); ``` #### React ### Before ```jsx const stripePromise = loadStripe('<>'); function App() { return ( ); }; ``` ### After ```jsx const stripePromise = loadStripe('<>'); const options = { mode: 'setup', currency: 'usd', }; function App() { return ( ); }; ``` ## Optional: Optionen für zusätzliche Elemente [Client-seitig] Das [Elements-Objekt](https://docs.stripe.com/js/elements_object/create_without_intent) akzeptiert zusätzliche Optionen, die die Zahlungserfassung beeinflussen. Basierend auf den angegebenen Optionen zeigt das Payment Element die verfügbaren Zahlungsmethoden an, die Sie aktiviert haben. Erfahren Sie mehr über die [Unterstützung von Zahlungsmethoden](https://docs.stripe.com/payments/payment-methods/payment-method-support.md). Stellen Sie sicher, dass die von Ihnen angegebenen Elements-Optionen (wie `captureMethod`, `setupFutureUsage` und `paymentMethodOptions`) mit den entsprechenden Parametern übereinstimmen, die Sie beim Erstellen und Bestätigen des Intent übergeben. Nicht übereinstimmende Parameter können zu unerwartetem Verhalten oder Fehlern führen. | Eigentum | Typ | Beschreibung | Erforderlich | | ---------------------------- | -------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------ | | `mode` | - `payment` - `setup` - `subscription` | Gibt an, ob das Payment Element mit einem *PaymentIntent* (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), *SetupIntent* (The Setup Intents API lets you build dynamic flows for collecting payment method details for future payments. It tracks the lifecycle of a payment setup flow and can trigger additional authentication steps if required by law or by the payment method) oder *Abonnement* (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) verwendet wird. | Ja | | `currency` | `string` | Die Währung des Betrags, der dem Kunden/der Kundin berechnet werden soll. | Ja | | `amount` | `number` | Der Betrag, der dem Kunden/der Kundin in Rechnung gestellt werden soll, angezeigt in Apple Pay, Google Pay oder BNPL-Nutzeroberflächen. | Für den Modus `payment` und `subscription` | | `setupFutureUsage` | - `off_session` - `on_session` | Gibt an, dass Sie beabsichtigen, zukünftige Zahlungen mit den vom Payment Element erfassten Zahlungsdaten zu tätigen. | Nein | | `captureMethod` | - `automatic` - `automatic_async` - `manual` | Steuert, wann die Gelder vom Kundenkonto erfasst werden. | Nein | | `onBehalfOf` | `string` | Nur Connect. Die Stripe-Konto-ID, die das Unternehmen des Datensatzes ist. Weitere Informationen dazu, ob diese Option für Ihre Integration relevant ist, finden Sie unter [Use cases](https://docs.stripe.com/connect/charges.md). | Nein | | `paymentMethodTypes` | `string[]` | Eine Liste der zu rendernden Zahlungsmethodentypen. Sie können dieses Attribut weglassen, um Ihre Zahlungsmethoden im [Stripe-Dashboard](https://dashboard.stripe.com/settings/payment_methods) zu verwalten. | Nein | | `paymentMethodConfiguration` | `string` | Die [Konfiguration der Zahlungsmethode](https://docs.stripe.com/api/payment_method_configurations.md), die bei der Verwaltung Ihrer Zahlungsmethoden im [Stripe-Dashboard](https://dashboard.stripe.com/settings/payment_methods) verwendet werden soll. Wenn keine Angabe gemacht wird, wird Ihre Standardkonfiguration verwendet. | Nein | | `paymentMethodCreation` | `manual` | Ermöglicht die Erstellung von PaymentMethods aus der Elements-Instanz mit [stripe.createPaymentMethod](https://docs.stripe.com/js/payment_methods/create_payment_method_elements). | Nein | | `paymentMethodOptions` | `{us_bank_account: {verification_method: string}}` | Verifizierungsoptionen für die Zahlungsmethode `us_bank_account`. Akzeptiert dieselben Verifizierungsmethoden wie [Payment Intents](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_options-us_bank_account-verification_method). | Nein | | `paymentMethodOptions` | `{card: {installments: {enabled: boolean}}}` | Ermöglicht die ggf. manuelle Aktivierung der Nutzeroberfläche zur Auswahl des Karten-Ratenzahlungsplans, wenn Sie Ihre Zahlungsmethoden nicht im [Stripe-Dashboard](https://dashboard.stripe.com/settings/payment_methods) verwalten. Sie müssen `mode='payment'` festlegen *und* `paymentMethodTypes` explizit angeben. Andernfalls wird ein Fehler ausgelöst. Nicht kompatibel mit `paymentMethodCreation='manual'`. | Nein | | `paymentMethodOptions` | `{[paymentMethod]: {setup_future_usage: string}}` | Ermöglicht es Ihnen, `setup_future_usage` nur für Zahlungsmethoden anzugeben, die die Wiederverwendung unterstützen. Gilt nur, wenn der `mode` `payment` ist. Der Wert für jede Zahlungsmethode muss mit der entsprechenden `payment_method_options[paymentMethod][setup_future_usage]` im PaymentIntent während der Bestätigung übereinstimmen. Unterstützte Zahlungsmethoden und Werte finden Sie in der [Ressource zu Stripe.js](https://docs.stripe.com/js/elements_object/create_without_intent#stripe_elements_no_intent-options-paymentMethodOptions). | Nein | ## Payment Element hinzufügen [Clientseitig] Wenn Sie [React Stripe.js](https://github.com/stripe/react-stripe-js) verwenden, führen Sie eine Aktualisierung auf das neuste Paket durch, um das Payment Element zu nutzen. Sie können jetzt das Card Element und die Elemente der einzelnen Zahlungsmethoden durch das Payment Element ersetzen. Das Payment Element passt basierend auf der Zahlungsmethode und dem Land die zu erfassenden Eingabefelder automatisch an (z. B. Erfassung der vollständigen Rechnungsadresse), sodass Sie keine nutzerdefinierten Eingabefelder pflegen müssen. Im folgenden Beispiel wird `CardElement` durch `PaymentElement` ersetzt: #### JavaScript ```html
``` ```javascript const paymentElement = elements.create("payment"); paymentElement.mount("#payment-element"); ``` Wenn in Ihrem Zahlungsablauf bereits immer Details wie der Name oder die E-Mail-Adresse der Kundinnen und Kunden erfasst wird, können Sie verhindern, dass das Payment Element diese Informationen erfasst, indem Sie die Option [Felder](https://docs.stripe.com/js/elements_object/create_payment_element#payment_element_create-options-fields) beim Erstellen des Payment Element übergeben. Wenn Sie die Erfassung eines bestimmten Felds deaktivieren, müssen Sie die gleichen Daten mit [stripe.confirmSetup](https://docs.stripe.com/js/setup_intents/confirm_setup) zurückgeben. ## Aktualisieren Sie Ihren Erstellungsaufruf für SetupIntents [Serverseitig] Da Sie mit dem Payment Element mehrere Zahlungsmethoden akzeptieren können, empfehlen wir die Verwendung von `automatic_payment_methods`. Wenn Sie sie aktivieren, wertet Stripe die Währung, Einschränkungen der Zahlungsmethode und andere Parameter aus, um die Liste der für Ihre Kund/innen verfügbaren Zahlungsmethoden zu ermitteln. Wir bevorzugen Zahlungsmethoden, die die Konversionsrate erhöhen und die für die Währung und den Standort der Kund/innen am relevantesten sind. Fügen Sie das Attribut `automatic_payment_methods` dem Endpoint auf Ihrem Server hinzu. Dieser erstellt den SetupIntent. Alle zusätzlichen Elementoptionen, die beim Erstellen der Elements-Gruppe im vorherigen Schritt übergeben wurden, sollten auch beim Erstellen des SetupIntent übergeben werden. #### curl ```bash curl https://api.stripe.com/v1/setup_intents \ -u <>: \ -H "Stripe-Version: 2026-04-22.dahlia" \ -d "customer"="{{CUSTOMER_ID}}" \-d "automatic_payment_methods[enabled]"=true ``` > Sie können einige Zahlungsmethoden nicht für zukünftige Zahlungen speichern. Weitere Informationen finden Sie unter [Optionen für die Integration von Zahlungsmethoden](https://docs.stripe.com/payments/payment-methods/integration-options.md). ## Submit-Handler aktualisieren [Clientseitig] Statt einzelne Bestätigungsmethoden wie `stripe.confirmCardSetup` oder `stripe.confirmP24Setup` zu verwenden, verwenden Sie [stripe.confirmSetup](https://docs.stripe.com/js/setup_intents/confirm_setup), um Zahlungsinformationen zu erfassen und an Stripe zu übermitteln. Um den SetupIntent zu bestätigen, nehmen Sie die folgenden Änderungen an Ihrem Submit-Handler vor: - Rufen Sie `await elements.submit()` auf, um die Formularvalidierung auszulösen und alle Daten zu erfassen, die für [Wallets](https://docs.stripe.com/js/elements_object/create_payment_element#payment_element_create-options-wallets) erforderlich sind. - Optional: Verschieben Sie die SetupIntent-Erstellung an den Setup-Handler. Auf diese Weise erstellen Sie den SetupIntent erst, wenn Nutzer/innen bereit sind, ihre Angaben zur Zahlungsmethode zu übermitteln. - Übergeben Sie die `elements`-Instanz, die Sie zum Erstellen des Payment Element verwendet haben, und das `clientSecret` aus dem SetupIntent als Parameter an `stripe.confirmSetup`. Beim Aufruf versucht `stripe.confirmSetup`, alle [erforderlichen Aktionen](https://docs.stripe.com/payments/paymentintents/lifecycle.md) durchzuführen, wie beispielsweise die Authentifizierung Ihrer Kundinnen und Kunden durch Anzeigen eines 3DS-Dialogfelds oder die Weiterleitung an eine Autorisierungsseite ihrer Bank. Nach der Bestätigung werden die Nutzer/innen an die von Ihnen konfigurierte `return_url` weitergeleitet. Dies entspricht in der Regel einer Seite auf Ihrer Website, die Auskunft zum Status des `SetupIntent` gibt. Wenn Sie den gleichen Bezahlvorgang zum Speichern der Kartendaten beibehalten möchten und Weiterleitungen nur für Zahlungsmethoden mit Weiterleitung vornehmen möchten, können Sie die [Weiterleitung](https://docs.stripe.com/js/setup_intents/confirm_setup#confirm_setup_intent-options-redirect) auf `if_required` festlegen. Im folgenden Codebeispiel wird `stripe.confirmCardSetup` durch `stripe.confirmSetup` ersetzt: ### Before ```javascript // Create the SetupIntent and obtain clientSecret const res = await fetch("/create-intent", { method: "POST", headers: {"Content-Type": "application/json"}, }); const {client_secret: clientSecret} = await res.json(); const handleSubmit = async (event) => { event.preventDefault(); if (!stripe) { // Stripe.js hasn't yet loaded. // Make sure to disable form submission until Stripe.js has loaded. return; } setLoading(true); if (error) { handleError(error); } }; ``` ### After ```javascript const handleSubmit = async (event) => { event.preventDefault(); if (!stripe) { // Stripe.js hasn't yet loaded. // Make sure to disable form submission until Stripe.js has loaded. return; } setLoading(true); // Trigger form validation and wallet collection const {error: submitError} = await elements.submit(); if (submitError) { handleError(submitError); return; } // Create the SetupIntent and obtain clientSecret const res = await fetch("/create-intent", { method: "POST", headers: {"Content-Type": "application/json"}, }); const {client_secret: clientSecret} = await res.json(); // Use the clientSecret and Elements instance to confirm the setup const {error} = await stripe.confirmSetup({ elements, clientSecret, confirmParams: { return_url: 'https://example.com/order/123/complete', }, // Uncomment below if you only want redirect for redirect-based payments // redirect: "if_required", }); if (error) { handleError(error); } }; ``` ## Integration testen Verwenden Sie Test-Zahlungsdaten und die Test-Weiterleitungsseite um Ihre Integration zu überprüfen. Klicken Sie auf die nachfolgenden Registerkarten, um Details zu jeder Zahlungsmethode anzuzeigen. #### Karten | Zahlungsmethode | Szenario | So führen Sie den Test durch | | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Kreditkarte | Die Einrichtung der Karte ist erfolgreich und es ist keine *Authentifizierung* (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) erforderlich. | Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer `4242 4242 4242 4242` mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an. | | Kreditkarte | Die Karte erfordert für die Ersteinrichtung, um nachfolgende Zahlungen erfolgreich abschließen zu können. | Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer `4000 0025 0000 3155` mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an. | | Kreditkarte | Die Karte erfordert für die Ersteinrichtung sowie für nachfolgende Zahlungen eine Authentifizierung. | Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer `4000 0027 6000 3184` mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an. | | Kreditkarte | Die Karte wurde während der Einrichtung abgelehnt. | Füllen Sie das Kreditkartenformular aus und geben Sie die Kreditkartennummer `4000 0000 0000 9995` mit beliebiger Gültigkeitsdauer, CVC und Postleitzahl an. | #### Bankumleitungen | Zahlungsmethode | Szenario | So führen Sie den Test durch | | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Bancontact | Ihr/e Kund/in richtet erfolgreich die Zahlungsmethode SEPA-Lastschrift für zukünftige Nutzung durch Bancontact ein. | Geben Sie im Bancontact-Formular einen beliebigen Namen ein und klicken Sie dann auf der Weiterleitungsseite auf die Option **Testeinrichtung autorisieren**. | | Bancontact | Ihre Kundin/Ihr Kunde konnte sich auf der Bancontact-Weiterleitungsseite nicht authentifizieren. | Geben Sie im Bancontact-Formular einen beliebigen Namen ein und klicken Sie dann auf der Weiterleitungsseite auf die Option für eine **fehlgeschlagene Testeinrichtung**. | | BECS-Lastschrift | Ihr/e Kund/in zahlt erfolgreich mit dem BECS-Lastschriftverfahren. | Füllen Sie das Formular mit der Kontonummer `900123456` aus. Der bestätigte `PaymentIntent`-Status wechselt zunächst zur `Verarbeitung`, dann zum `Erfolg` 3 Minuten später. | | BECS-Lastschrift | Die Zahlung Ihres/Ihrer Kund/in schlägt fehl mit Code `account_closed` fehl. | Füllen Sie das Formular mit der Kontonummer `111111113` aus. | | iDEAL | Ihr Kunde/Ihre Kundin richtet die Zahlungsmethode [SEPA-Lastschrift](https://docs.stripe.com/payments/sepa-debit.md) erfolgreich für die zukünftige Nutzung durch iDEAL ein. | Geben Sie im iDEAL-Formular einen beliebigen Namen und eine beliebige Bank ein und klicken Sie dann auf der Weiterleitungsseite auf die Option zum **Autorisieren der Testeinrichtung**. | | iDEAL | Ihr/Ihre Kund/in konnte sich auf der iDEAL-Weiterleitungsseite nicht authentifizieren. | Wählen Sie eine beliebige Bank, verwenden Sie einen beliebigen Namen im iDEAL-Formular und klicken Sie dann auf der Weiterleitungsseite auf die Option **Einrichtung des Tests fehlgeschlagen**. | #### Lastschriften | Zahlungsmethode | Szenario | So führen Sie den Test durch | | ---------------- | ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | SEPA-Lastschrift | Ihr/e Kund/in zahlt erfolgreich mit dem SEPA-Lastschriftverfahren. | Füllen Sie das Formular mit der Kontonummer `AT321904300235473204` aus. Die bestätigte `PaymentIntent` geht zunächst in den Status `„wird verarbeitet“` und dann drei Minuten später in den Status `„erfolgreich“` über. | | SEPA-Lastschrift | Der Status der `PaymentIntent` Ihres/Ihrer Kund/in wechselt von `processing` zu `requires_payment_method`. | Füllen Sie das Formular mit der Kontonummer `AT861904300235473202` aus. | ### Testen Sie das Belasten mit einer gespeicherten SEPA-Lastschrift Durch Bestätigen des `SetupIntent` mit iDEAL, Bancontact oder Sofort wird eine *PaymentMethod* (PaymentMethods represent your customer's payment instruments, used with the Payment Intents or Setup Intents APIs) für [SEPA Direct Debit](https://docs.stripe.com/payments/sepa-debit.md) generiert. SEPA-Lastschriften sind Zahlungsmethoden mit [verzögerter Benachrichtigung](https://docs.stripe.com/payments/payment-methods.md#payment-notification) , die in den Status `Zwischenverarbeitung` übergehen, bevor sie einige Tage später in den Status `erfolgreich` oder `requires_payment_method` übergehen. #### E-Mail-Adresse Setzen Sie `payment_method.billing_details.email` auf einen der folgenden Werte, um die `PaymentIntent`-Statusübergänge zu testen. Sie können Ihren eigenen benutzerdefinierten Text am Anfang der E-Mail-Adresse, gefolgt von einem Unterstrich, einfügen. Beispielsweise ergibt sich aus `test_1_generatedSepaDebitIntentsFail@example.com` eine SEPA-Lastschrift-PaymentMethod, die immer fehlschlägt, wenn sie mit einem `PaymentIntent` verwendet wird. | E-Mail-Adresse | Beschreibung | | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------- | | `generatedSepaDebitIntentsSucceed@example.com` | Der Status des `PaymentIntent` wechselt von `wird bearbeitet` zu `erfolgreich`. | | `generatedSepaDebitIntentsSucceedDelayed@example.com` | Der Status des `PaymentIntent` wechselt nach drei Minuten von `wird bearbeitet` zu `erfolgreich`. | | `generatedSepaDebitIntentsFail@example.com` | Der Status des `PaymentIntent` wechselt von `wird bearbeitet` zu `requires_payment_method`. | | `generatedSepaDebitIntentsFailDelayed@example.com` | Der Status des `PaymentIntent` wechselt nach mindestens drei Minuten von `wird bearbeitet` zu `requires_payment_method`. | | `generatedSepaDebitIntentsSucceedDisputed@example.com` | Der Status des `PaymentIntent` wechselt von `wird bearbeitet` zu `erfolgreich`, aber es wird sofort eine Zahlungsanfechtung erstellt. | | `generatedSepaDebitIntentsFailsDueToInsufficientFunds@example.com` | Der Status des `PaymentIntent` wechselt von `wird bearbeitet` zu `requires_payment_method` mit dem Fehlercode `insufficient_funds`. | #### PaymentMethod Verwenden Sie diese PaymentMethods, um die `PaymentIntent`-Statusübergänge zu testen. Diese Token sind nützlich für automatisierte Test, um die PaymentMethod sofort zum SetupIntent auf dem Server hinzuzufügen. | Zahlungsmethode | Beschreibung | | -------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | | `pm_bancontact_generatedSepaDebitIntentsSucceed` | Der Status des `PaymentIntent` wechselt von `wird bearbeitet` zu `erfolgreich`. | | `pm_bancontact_generatedSepaDebitIntentsSucceedDelayed` | Der Status des `PaymentIntent` wechselt nach drei Minuten von `wird bearbeitet` zu `erfolgreich`. | | `pm_bancontact_generatedSepaDebitIntentsFail` | Der Status des `PaymentIntent` wechselt von `wird bearbeitet` zu `requires_payment_method`. | | `pm_bancontact_generatedSepaDebitIntentsFailDelayed` | Der Status des `PaymentIntent` wechselt nach mindestens drei Minuten von `wird bearbeitet` zu `requires_payment_method`. | | `pm_bancontact_generatedSepaDebitIntentsSucceedDisputed` | Der Status des `PaymentIntent` wechselt von `wird bearbeitet` zu `erfolgreich`, aber es wird sofort eine Zahlungsanfechtung erstellt. | | `pm_bancontact_generatedSepaDebitIntentsFailsDueToInsufficientFunds` | Der Status des `PaymentIntent` wechselt von `wird bearbeitet` zu `requires_payment_method` mit dem Fehlercode `insufficient_funds`. |