# Mit 3D Secure authentifizieren Integrieren Sie 3D Secure (3DS) in Ihren Bezahlvorgang. > Große Kartenmarken unterstützen 3D Secure 1 nicht mehr. Wenn Ihre Implementierung 3D Secure 1 nutzt, aktualisieren Sie sie, um die [Payment Intents](https://docs.stripe.com/api/payment_intents.md) API und die [Setup Intents](https://docs.stripe.com/api/setup_intents.md) API zu verwenden. Verwendung dieser APIs: > > - Unterstützt [3D Secure 2 (3DS2](https://stripe.com/guides/3d-secure-2). - Nutzt [Dynamic 3D Secure](https://docs.stripe.com/payments/3d-secure/authentication-flow.md#three-ds-radar). - Entspricht den europäischen Vorschriften für die [starke Kundenauthentifizierung](https://docs.stripe.com/strong-customer-authentication.md). Sie können die 3D Secure (3DS)-Authentifizierung auf mehreren Plattformen in Ihren Bezahlvorgang integrieren, einschließlich Web, iOS, Android und React Native. Diese Integration führt [3D Secure 2 (3DS2)](https://stripe.com/guides/3d-secure-2) aus, wenn sie von der Bank der Kundin/des Kunden unterstützt wird. Andernfalls wird 3D Secure 1 angewendet. Sie können die 3DS-Authentifizierung auch auf Stripe durchführen, während Sie die Transaktion bei einem anderen Zahlungsdienstleister (PSP) akquirieren, indem Sie das Produkt [Standalone 3DS](https://docs.stripe.com/payments/3d-secure/standalone-three-d-secure.md) verwenden. #### Web ![Checkout-Seite](https://b.stripecdn.com/docs-statics-srv/assets/3ds-flow-1-checkout-page.039294e0dee3a6dede8ea8a32185aae5.png) Die Kundin/der Kunde gibt die Kartenangaben ein. ![Ladesymbol](https://b.stripecdn.com/docs-statics-srv/assets/3ds-flow-2-frictionless-flow.417618d0570c469cfb6bbc43630c7896.png) Die Kundenbank bewertet die Transaktion und kann das 3D Secure-Verfahren in diesem Schritt abschließen. ![Authentifizierungsmodal](https://b.stripecdn.com/docs-statics-srv/assets/3ds-flow-3-challenge-flow.9052a220f336bbdb75a51799622c6477.png) Falls von der Bank gefordert, führt die Kundin/der Kunde einen zusätzlichen Authentifizierungsschritt durch. #### iOS ![Checkout-Bildschirm](https://b.stripecdn.com/docs-statics-srv/assets/3ds2-checkout.1cd901263328cbb76020b66c173da8b7.png) Die Kundin/der Kunde gibt die Kartenangaben ein. ![Bildschirm wird geladen](https://b.stripecdn.com/docs-statics-srv/assets/3ds2-loading.f93743ad15b9120027f93f49ed45b26d.png) Das SDK stellt einen Ladebildschirm dar, während die Kundenbank prüft, ob eine Authentifizierung erforderlich ist. ![Bildschirm für abfragebasierten Ablauf](https://b.stripecdn.com/docs-statics-srv/assets/3ds2-otp.ce1e46e0a853d7d6e3238750a07bca86.png) Falls von der Kundenbank verlangt, authentifiziert das SDK die Kundin/den Kunden. #### Android ![Checkout-Bildschirm](https://b.stripecdn.com/docs-statics-srv/assets/auth-flow-step01-confirm.399f5a4abbd7f303861689d186b79557.png) Die Kundin/der Kunde gibt die Zahlungsinformationen ein. ![Authentifizierung starten](https://b.stripecdn.com/docs-statics-srv/assets/auth-flow-step02-processing.3877946d74743878ec86cec56dd69085.png) Das SDK stellt einen Ladebildschirm dar, während die Kundenbank prüft, ob eine Authentifizierung erforderlich ist. ![Bildschirm für abfragebasierten Ablauf](https://b.stripecdn.com/docs-statics-srv/assets/auth-flow-step03-otp.f42397e1ce4ec5975e05f1bada72d195.png) Falls von der Kundenbank verlangt, authentifiziert das SDK die Kundin/den Kunden. ## 3DS-Ablauf steuern Stripe löst 3DS automatisch aus, wenn dies durch Vorschriften wie die [starke Kundenauthentifizierung](https://docs.stripe.com/strong-customer-authentication.md) in Europa oder durch Branchenrichtlinien wie die Sicherheitsrichtlinien für Kreditkarten in Japan vorgeschrieben ist, wenn dies von einem Aussteller mit einem [Soft Decline](https://docs.stripe.com/declines/codes.md)-Code angefordert wird oder wenn bestimmte Optimierungen von Stripe gelten. Sie können auch [Radar](https://docs.stripe.com/payments/3d-secure/authentication-flow.md#three-ds-radar) oder die [API](https://docs.stripe.com/payments/3d-secure/authentication-flow.md#manual-three-ds) verwenden, um zu entscheiden, wann Nutzer/innen zur 3DS-Authentifizierung aufgefordert werden sollen. Auf diese Weise können Sie den Authentifizierungsvorgang für jede Nutzerin/jeden Nutzer basierend auf den von Ihnen gewählten Parametern anpassen. Allerdings unterstützen nicht alle Transaktionen 3DS, beispielsweise Wallets oder *Off-Session-Zahlungen* (A payment is described as off-session if it occurs without the direct involvement of the customer, using previously-collected payment information). Wenn eine Zahlung 3DS (3D Secure) auslöst, kann der Aussteller der Karte verlangen, dass die/der Kunde/Kundin sich authentifiziert, um die Zahlung abzuschließen, sofern die 3DS-Authentifizierung für diese Karte unterstützt wird. Während Stripe die Anfrage zur Authentifizierung initiiert, stammt die Anforderung vom Aussteller. Je nachdem, welches Frontend Sie verwenden, müssen Sie möglicherweise [den 3DS-Fluss anzeigen](https://docs.stripe.com/payments/3d-secure/authentication-flow.md#when-to-use-3d-secure). Bei einem typischen Payment Intent API-Ablauf, der 3DS auslöst: 1. Die Nutzerin/der Nutzer gibt die Zahlungsinformationen ein, wodurch ein PaymentIntent oder ein SetupIntent bestätigt wird, oder fügt einer Kundin/einem Kunden eine PaymentMethod hinzu. 1. Stripe prüft anhand von behördlichen Vorschriften, Radar-Regeln, manuellen API-Anfragen, vorübergehenden Ablehnungen (Soft Declines) des Ausstellers und anderen Kriterien, ob die Transaktion 3DS unterstützt und verlangt. 1. Wenn 3DS: - **Nicht erforderlich**: Aufgrund einer *Befreiung* (Some transactions that are deemed low risk, based on the volume of fraud rates associated with the payment provider or bank, may be exempt from Europe's Strong Customer Authentication requirements) versucht Stripe beispielsweise, die Zahlung durchzuführen. Der PaymentIntent wechselt in den Status `processing`. Wenn der Aussteller dies mit einem [Soft Decline](https://docs.stripe.com/declines/codes.md) verlangt, versuchen wir es automatisch erneut und fahren bei Bedarf fort. - **Nicht unterstützt**: Der PaymentIntent geht in den Status `requires_payment_method` über. Je nachdem, aus welchem Grund 3DS ausgelöst wurde, kann es zulässig sein, mit dem Autorisierungsschritt der Zahlung fortzufahren. In diesem Fall geht der PaymentIntent in den Status `processing` über. - **Erforderlich**: Stripe startet den 3DS-Authentifizierungsvorgang, indem es den 3DS-Zugangskontrollserver (ACS) des Ausstellers der Karte kontaktiert und den 3DS-Vorgang startet. 1. Wenn 3DS-Ablaufinformationen vom Aussteller empfangen werden, reicht Stripe die Anfrage an den Aussteller ein, um den/die Karteninhaber/in zu authentifizieren. Der PaymentIntent geht in den Status `requires_action` über: - Nachfolgend erfahren Sie, [wie die erforderliche 3DS-Aktion angezeigt wird](https://docs.stripe.com/payments/3d-secure/authentication-flow.md#when-to-use-3d-secure). Aussteller können verschiedene Arten von 3DS-Ablaufaktionen anfordern, die möglicherweise nicht immer zur Anzeige eines abfragebasierten 3DS-Ablaufs führen (z. B. ein reibungsloser Ablauf). - Wenn der Aussteller 3DS überhaupt nicht unterstützt oder ein Ausfall auftritt, kann Stripe versuchen, die Zahlung ohne Authentifizierung abzuschließen, sofern dies zulässig ist. - Die Daten für 3DS-Authentifizierungsanfragen werden in der Regel von Kundinnen/Kunden zum Zeitpunkt der Transaktion bereitgestellt. Um Komplikationen und die Möglichkeit einer fehlgeschlagenen Authentifizierung zu verringern, können wir diese Anfragen mit Daten vervollständigen, die wir aus anderen Quellen ableiten, zum Beispiel Daten, die während des Zahlungsvorgangs von Ihrem Kunden/Ihrer Kundin erfasst wurden, Aufzeichnungen zu früheren Transaktionen, die Ihr Kunde/Ihre Kundin mit Ihnen getätigt hat, oder relevante Informationen, die über die Karte des Kunden/der Kundin oder die Aussteller/innen verfügbar sind. - Wenn Stripe bereits Zugriff auf alle erforderlichen 3DS-Datenelemente hat, versucht unser optimierter 3DS-Server möglicherweise, die Authentifizierungsanfrage für Sie abzuschließen, während er den PaymentIntent bestätigt. Dies kann dazu führen, dass der PaymentIntent direkt in den Status `processing` wechselt, wenn der 3DS-Ablauf erfolgreich ist, oder in den Status `requires_action`, wenn zusätzliche Schritte oder Datenelemente erforderlich sind, um den 3DS-Ablauf abzuschließen. 1. Je nach Ergebnis der 3DS-Authentifizierung: - **Authentifiziert**: Stripe versucht, die Zahlung durchzuführen, und der PaymentIntent geht in den Status `processing` über. - **Fehlgeschlagen**: Der PaymentIntent geht in den Status `requires_payment_method` über. Dies gibt an, dass Sie es mit einer anderen Zahlungsmethode versuchen müssen oder 3DS durch erneute Bestätigung erneut versucht werden kann. - **Andere Szenarien**: Je nach dem Grund, aus dem 3DS für die Zahlung ausgelöst wurde, kann es in [Grenzfällen](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-three_d_secure-result) zulässig sein, die Autorisierung für die Zahlung fortzusetzen. Beispielsweise führt das Ergebnis `attempt_acknowledged` zu einer Zahlung und der PaymentIntent wechselt in den Status `processing`. - Eine Ausnahme bildet die Erstellung von [indischen E-Mandaten für wiederkehrende Zahlungen](https://docs.stripe.com/india-recurring-payments.md). Alle anderen Ergebnisse außer einem `authenticated` Ergebnis werden als Fehlschlag behandelt. 1. Der PaymentIntent wechselt je nach Zahlungsergebnis zu einem der folgenden Status: `succeeded`, `requires_capture` oder `requires_payment_method`. Um nachzuverfolgen, ob bei einer Kartenzahlung das 3DS-Verfahren unterstützt und versucht wurde, lesen Sie die Eigenschaft [three_d_secure](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-three_d_secure) der Karteninformationen in den `payment_method_details` der Zahlung. Stripe füllt die Eigenschaft `three_d_secure` aus, wenn die Kundin/der Kunde versucht, die Karte zu authentifizieren. `three_d_secure.result` gibt das Ergebnis der Authentifizierung an. ### Radar-Regeln im Dashboard verwenden Stripe bietet [Betrugskontrollen](https://docs.stripe.com/radar/rules.md#request-3d-secure), um 3DS dynamisch anzufordern, wenn ein [PaymentIntent](https://docs.stripe.com/api/payment_intents.md) oder ein [SetupIntent](https://docs.stripe.com/api/setup_intents.md) erstellt oder bestätigt wird. Sie können diese Regeln in Ihrem [Dashboard](https://dashboard.stripe.com/settings/radar/rules) konfigurieren. Wenn Sie über [Radar for Fraud Teams](https://stripe.com/radar/fraud-teams) verfügen, können Sie [benutzerdefinierte 3DS-Regeln](https://docs.stripe.com/radar/rules.md#request-3d-secure) hinzufügen. ### 3DS manuell über die API anfordern Die Standardmethode, um 3DS auszulösen, ist die [Nutzung von Radar, das 3D Secure](https://docs.stripe.com/radar/risk-settings.md#adaptive-3ds) dynamisch basierend auf dem Risikolevel und anderen Anforderungen anfordert. Das manuelle Auslösen von 3DS ist für fortgeschrittene Nutzer gedacht, die Stripe mit ihrer eigenen Betrugserkennung integrieren. Um 3DS manuell auszulösen, setzen Sie `payment_method_options[card][request_three_d_secure]` entsprechend dem, was Sie optimieren möchten, wenn Sie entweder eine [PaymentIntent](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_options-card-request_three_d_secure) erstellen oder bestätigen oder [SetupIntent](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-payment_method_options-card-request_three_d_secure) oder beim Erstellen einer [Checkout-Sitzung](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_method_options-card-request_three_d_secure). Dieser Vorgang ist derselbe für einmalige Zahlungen oder beim Einrichten einer Zahlungsmethode für zukünftige Zahlungen. Wenn Sie diesen Parameter angeben, versucht Stripe, 3DS durchzuführen, und überschreibt alle [Dynamic 3D Secure Radar-Regeln](https://docs.stripe.com/radar/rules.md) in der PaymentIntent-, SetupIntent- oder Checkout-Sitzung. #### Payment Intents API ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=1000 \ -d currency=usd \ -d "payment_method_options[card][request_three_d_secure]=any" ``` #### Setup Intents API ```curl curl https://api.stripe.com/v1/setup_intents \ -u "<>:" \ -d "customer={{CUSTOMER_ID}}" \ -d "payment_method_options[card][request_three_d_secure]=any" ``` #### Checkout Session API ```curl curl https://api.stripe.com/v1/checkout/sessions \ -u "<>:" \ -d mode=payment \ --data-urlencode "success_url=https://example.com/success" \ -d "line_items[0][price]={{PRICE_ID}}" \ -d "line_items[0][quantity]=1" \ -d "payment_method_options[card][request_three_d_secure]=any" ``` Wann Sie diesen Parameter angeben, richtet sich danach, wann Ihre Betrugs-Engine ein Risiko erkennt. Wenn Ihre Betrugs-Engine beispielsweise nur Kartendaten prüft, wissen Sie, ob Sie 3DS anfordern müssen, bevor Sie den PaymentIntent oder SetupIntent erstellen. Überprüft Ihre Betrugs-Engine sowohl Karten- als auch Transaktionsdaten, geben Sie den Parameter während der Bestätigung an, sobald Ihnen mehr Informationen vorliegen. Übergeben Sie dann den resultierenden PaymentIntent oder SetupIntent an Ihren Client, um den Vorgang abzuschließen. Untersuchen Sie die Verwendung des Parameters `request_three_d_secure` für alle unterschiedlichen Fälle in der API-Dokumentation: - [PaymentIntent erstellen](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_options-card-request_three_d_secure) - [PaymentIntent bestätigen](https://docs.stripe.com/api/payment_intents/confirm.md#confirm_payment_intent-payment_method_options-card-request_three_d_secure) - [SetupIntent erstellen](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-payment_method_options-card-request_three_d_secure) - [SetupIntent bestätigen](https://docs.stripe.com/api/setup_intents/confirm.md#confirm_setup_intent-payment_method_options-card-request_three_d_secure) - [Checkout-Sitzung erstellen](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-payment_method_options-card-request_three_d_secure) Legen Sie `request_three_d_secure` auf `any` fest, um 3DS manuell mit einer Präferenz für einen `frictionless` Ablauf anzufordern, um die Wahrscheinlichkeit zu erhöhen, dass die Authentifizierung ohne zusätzliche Kundeneingaben abgeschlossen wird. Legen Sie `request_three_d_secure` auf `challenge` fest, um 3DS mit einer Präferenz für einen `challenge`-Ablauf anzufordern, bei dem die Kundin/der Kunde auf eine Aufforderung zur aktiven Authentifizierung reagieren muss. Stripe kann Ihre Präferenz nicht garantieren, da der Aussteller den endgültigen Authentifizierungsablauf bestimmt. Sie können herausfinden, welches der letztendliche Authentifizierungsablauf war, indem Sie den `authentication_flow` für die Eigenschaft `three_d_secure` der [Zahlung](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-three_d_secure-authentication_flow) oder des [SetupAttempt](https://docs.stripe.com/api/setup_attempts/object.md#setup_attempt_object-payment_method_details-card-three_d_secure-authentication_flow) überprüfen. Um mehr über 3DS-Abläufe zu erfahren, lesen Sie unseren [Leitfaden](https://stripe.com/guides/3d-secure-2#frictionless-authentication). > Stripe fordert Ihren Kunden/Ihre Kundin nur dann zur Authentifizierung auf, wenn die 3DS-Authentifizierung für eine Karte verfügbar ist. Wenn sie für die betreffende Karte nicht verfügbar ist oder wenn während des Authentifizierungsvorgangs ein Fehler auftritt, wird die Zahlung normal durchgeführt. Die obligatorischen Authentifizierungsregeln von Stripe werden automatisch ausgeführt, unabhängig davon, ob Sie 3DS manuell anfordern oder nicht. Alle 3DS-Anfragen von Ihnen erfolgen zusätzlich zu denen, die für die starke Kundenauthentifizierung (SCA) erforderlich sind. ## 3DS-Ablauf anzeigen #### Web Beim Aufruf von `confirmCardPayment` und `handleCardAction` zeigt Stripe automatisch in einem Pop-up-Modal die Authentifizierungs-Nutzeroberfläche an. Sie können stattdessen auch eine Weiterleitung an die Website der Bank oder einen iFrame nutzen. Stripe.js erfasst [grundlegende Gerätedaten](https://support.stripe.com/questions/3d-secure-2-device-information) während der 3DS2-Authentifizierung und sendet diese zur Risikoanalyse an die ausstellende Bank. ### Weiterleitung an die Website der Bank Um Ihre Kundin/Ihren Kunden an die 3DS-Authentifizierungsseite weiterzuleiten, übergeben Sie eine `return_url` an den PaymentIntent, wenn Sie diesen [auf dem Server](https://docs.stripe.com/api/payment_intents/confirm.md#confirm_payment_intent-return_url) oder auf dem [Client](https://docs.stripe.com/js/payment_intents/confirm_card_payment) bestätigen. Wenn ein PaymentIntent nach der Bestätigung den Status *requires\_action* (This status appears as "requires_source_action" in API versions before 2019-02-11) aufweist, überprüfen Sie die `next_action` des PaymentIntent. Wenn er `redirect_to_url` enthält, bedeutet dies, dass 3DS erforderlich ist. ```js next_action: { type: 'redirect_to_url', redirect_to_url: { url: 'https://hooks.stripe.com/...', return_url: 'https://mysite.com' } } ``` Leiten Sie im Browser die Kundin/den Kunden an die `url` im redirect_to_url-Hash weiter, um die Authentifizierung durchzuführen. ```javascript var action = intent.next_action; if (action && action.type === 'redirect_to_url') { window.location = action.redirect_to_url.url; } ``` Wenn die Kundin/der Kunde den Authentifizierungsvorgang abgeschlossen hat, erfolgt eine Weiterleitung an die `return_url`, die Sie angegeben haben, als Sie den PaymentIntent erstellt bzw. bestätigt haben. Die Weiterleitung fügt außerdem die URL-Abfrageparameter `payment_intent` und `payment_intent_client_secret` hinzu, die Ihre Anwendung zur Identifizierung des mit dem Einkauf verknüpften PaymentIntent verwenden kann. ### In einem iFrame anzeigen Sie können die Authentifizierungs-Nutzeroberfläche nicht so anpassen, dass Sie zum Design Ihrer Website passt. Die ausstellende Bank bestimmt über die Schriftarten und Farben. Sie können jedoch wählen, *wie* und *wo* Sie die 3DS-Benutzeroberfläche anzeigen möchten. Die meisten Unternehmen zeigen sie in einem modalen Dialog über ihrer Bezahlseite an. Wenn Sie Ihre eigene modale Komponente haben, können Sie den 3DS-Rahmen darin platzieren. Sie können die Inhalte zur Authentifizierung auch inline mit Ihrem Zahlungsformular anzeigen. #### PaymentIntent bestätigen Wenn Ihre Kundin/Ihr Kunde bereit ist, den Kauf abzuschließen, *bestätigen* (Confirming a PaymentIntent indicates that the customer intends to pay with the current or provided payment method. Upon confirmation, the PaymentIntent attempts to initiate a payment) Sie den PaymentIntent, um den Zahlungseinzug zu starten. Wenn Sie steuern möchten, wie 3DS angezeigt wird, geben Sie eine `return_url` an, an die der `