# Ergebnisse von 3D Secure importieren Zahlungen abwickeln, bei denen 3D Secure außerhalb von Stripe ausgeführt wird. Beim Importieren von 3DS-Ergebnissen handelt es sich um einen erweiterten Ablauf, mit dem Sie Ihre externe 3DS-Authentifizierung in Ihre Stripe-Zahlung integrieren können, indem Sie das Authentifizierungsergebnis importieren. Sie müssen 3DS-Ergebnisse importieren, wenn Sie: - Wenn Sie in der Reisebranche tätig sind und Kartennummern und Kryptogramme von einem Reise-Aggregator wie Expedia oder Sabre erhalten - Wenn Sie zur Durchführung von 3DS einen Drittanbieter nutzen In solchen Fällen können Sie die Kartenangaben und das Kryptogramm direkt an die Payment Intents API übergeben, anstatt Stripe Elements zur Erfassung der Zahlungsdaten und zur Durchführung von 3DS zu nutzen. Das Importieren von 3DS-Ergebnissen ist in den folgenden Ländern verfügbar: - AU - CA - CH - EU - GB - HK - MX - NZ - SG - US (Beta) Alle anderen Länder, in denen Stripe Kartenzahlungen unterstützt. Das Importieren von 3DS-Ergebnissen ist in den folgenden Ländern nicht verfügbar: - IN - MY - TH > In allen folgenden Codebeispielen müssen die im `three_d_secure`-Objekt festgelegten Parameter identisch mit den von Ihrem 3DS-Anbieter zurückgegebenen Werten übereinstimmen. ## Zahlung mit Kartenangaben verarbeiten Wenn Sie Kartendaten auf Ihrem Server verarbeiten: 1. Erstellen Sie einen PaymentIntent mit den Kartenangaben und den 3DS-Angaben in einem API-Aufruf und *bestätigen* (Confirming an intent indicates that the customer intends to use the current or provided payment method. Upon confirmation, the intent attempts to initiate the portions of the flow that have real-world side effects) Sie diesen. 1. Setzen Sie bei der Erstellung des PaymentIntent [confirm](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-confirm) auf `true`. 1. Legen Sie bei der Bestätigung des PaymentIntent [error_on_requires_action](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-error_on_requires_action) auf `true` fest. Dadurch wird verhindert, dass Stripe im Falle einer temporären Ablehnung eine 3DS-Anfrage durchführt. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=2000 \ -d currency=eur \ -d "payment_method_types[]=card" \ -d "payment_method_data[type]=card" \ -d "payment_method_data[card][number]=4000002760003184" \ -d "payment_method_data[card][exp_month]=12" \ -d "payment_method_data[card][exp_year]=23" \ -d "payment_method_data[card][cvc]=123" \ -d "payment_method_options[card][three_d_secure][version]=2.1.0" \ -d "payment_method_options[card][three_d_secure][electronic_commerce_indicator]=05" \ --data-urlencode "payment_method_options[card][three_d_secure][cryptogram]=CJSJbzXT6TRQlvZDX+ZdOG4QriE=" \ -d "payment_method_options[card][three_d_secure][transaction_id]=aaa65c7b-b0fc-4e71-bd6c-29c87acad489" \ -d confirm=true \ -d error_on_requires_action=true ``` ## Zahlung mit einer PaymentMethod verarbeiten Wenn Sie Kartenangaben mit der [Payment Methods API](https://docs.stripe.com/api/payment_methods.md) tokenisieren: 1. Erstellen Sie einen PaymentIntent mit der PaymentMethod-ID und den 3DS-Angaben in einem API-Aufruf und bestätigen Sie diesen. 1. Setzen Sie bei der Erstellung des PaymentIntent [confirm](https://docs.stripe.com/api/setup_intents/create.md#create_setup_intent-confirm) auf `true`. 1. Legen Sie bei der Bestätigung des PaymentIntent [error_on_requires_action](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-error_on_requires_action) auf `true` fest. Dadurch wird verhindert, dass Stripe im Falle einer temporären Ablehnung eine 3DS-Anfrage durchführt. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=2000 \ -d currency=eur \ -d "payment_method_types[]=card" \ -d "customer={{CUSTOMER_ID}}" \ -d "payment_method={{PAYMENTMETHOD_ID}}" \ -d "payment_method_options[card][three_d_secure][version]=2.2.0" \ -d "payment_method_options[card][three_d_secure][electronic_commerce_indicator]=02" \ --data-urlencode "payment_method_options[card][three_d_secure][cryptogram]=M6+990I6FLD8Y6rZz9d5QbfrMNY=" \ -d "payment_method_options[card][three_d_secure][transaction_id]=f879ea1c-aa2c-4441-806d-e30406466d79" \ -d confirm=true \ -d error_on_requires_action=true ``` > Wenn Sie eine Zahlung kurz nach der Tokenisierung der Kartenangaben mit einer PaymentMethod abwickeln möchten, verwenden Sie stattdessen Kartenrohdaten. ## Zukünftige Zahlungen einrichten Das 3DS-Protokoll unterstützt zwei Nachrichtenkategorien: - **Zahlungsauthentifizierung**: Wird zur Authentifizierung von Karteninhabern/Karteninhaberinnen bei Transaktionen verwendet. - **Nicht-Zahlungsauthentifizierung**: Wird zur Identitätsverifizierung und Kontobestätigung verwendet. Wenn Sie Kundinnen/Kunden für zukünftige Zahlungen einbeziehen möchten, geben Sie beim Erstellen und Bestätigen eines [SetupIntent](https://docs.stripe.com/api/setup_intents.md) das Kryptogramm für die Nicht-Zahlungsauthentifizierung und entweder die Kartendetails oder die PaymentMethod-ID an. ```curl curl https://api.stripe.com/v1/setup_intents \ -u "<>:" \ -d "payment_method_types[]=card" \ -d "customer={{CUSTOMER_ID}}" \ -d "payment_method={{PAYMENTMETHOD_ID}}" \ -d "payment_method_options[card][three_d_secure][version]=2.2.0" \ -d "payment_method_options[card][three_d_secure][electronic_commerce_indicator]=05" \ --data-urlencode "payment_method_options[card][three_d_secure][cryptogram]=4BQwsg4yuKt0S1LI1nDZTcO9vUM=" \ -d "payment_method_options[card][three_d_secure][transaction_id]=f879ea1c-aa2c-4441-806d-e30406466d79" \ -d confirm=true \ -d "expand[]=latest_attempt" ``` ## Von 3DS ausgenommene Ergebnisse importieren Wenn Sie außerhalb von Stripe ein 3DS-Ergebnis erhalten, das eine ‘low-risk’-Ausnahme von 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) enthält, können Sie die auf der Ausnahme basierende Art des 3DS-Ergebnisses an Stripe melden, indem Sie den [exemption_indicator](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_options-card-three_d_secure-exemption_indicator)-Parameter nutzen. Wenn die Echtzeit-Analyse von Stripe das Transaktionsrisiko als geeignet einstuft, fordert Stripe die [Ausnahme aufgrund geringen Risikos](https://stripe.com/guides/strong-customer-authentication#low-risk-transactions) vom Kartenaussteller an und teilt Ihnen dies mit, indem [exemption_indicator_applied](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-three_d_secure-exemption_indicator_applied) in der Antwort auf die Autorisierungsanfrage zurückgegeben wird. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=2000 \ -d currency=eur \ -d "payment_method_types[]=card" \ -d "payment_method={{PAYMENTMETHOD_ID}}" \ -d "payment_method_options[card][three_d_secure][version]=2.2.0" \ -d "payment_method_options[card][three_d_secure][electronic_commerce_indicator]=07" \ --data-urlencode "payment_method_options[card][three_d_secure][cryptogram]=CJSJbzXT6TRQlvZDX+ZdOG4QriE=" \ -d "payment_method_options[card][three_d_secure][transaction_id]=aaa65c7b-b0fc-4e71-bd6c-29c87acad489" \ -d "payment_method_options[card][three_d_secure][exemption_indicator]=low_risk" \ -d confirm=true \ -d error_on_requires_action=true \ -d "expand[]=latest_charge" ``` Um festzustellen, ob Stripe die Ausnahme mit geringem Risiko angefordert hat, [erweitern](https://docs.stripe.com/api/expanding_objects.md) Sie die `latest_charge` und prüfen Sie das Attribut [three_d_secure](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-three_d_secure). ```json { "id": "pi_3aTnU0Aif3fLhNTb0le1BSXI", "object": "payment_intent", // ... "latest_charge": { "id": "ch_3aTnU1AifffLhNTb0tUoEZcd", "object": "charge", // ... "payment_method_details": { "card": { // ... "three_d_secure": { "authentication_flow": "frictionless", "electronic_commerce_indicator": "07","exemption_indicator": "low_risk", "exemption_indicator_applied": true, "result": "exempted", "result_reason": null, "transaction_id": "aaa65c7b-b0fc-4e71-bd6c-29c87acad489", "version": "2.2.0" }, // ... }, // ... }, // ... }, // ... } ``` ## Importieren von Cartes Bancaires-Ergebnissen Um den 3DS-Import für Transaktionen zu verwenden, die im Cartes Bancaires-Netzwerk verarbeitet werden, müssen Sie das authentifizierte Netzwerk bei der Anfrage mit dem [Netzwerk](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_options-card-network)-Parameter ausdrücklich übergeben. Um Cartes Bancaires-Kryptogramme zu importieren, benötigen Sie auch zusätzliche Daten von Ihrem externen 3DS-Server. In der folgenden Tabelle sind die Details dieser zusätzlichen erforderlichen und empfohlenen Felder aufgeführt. Diese Empfehlungen gelten, wenn Sie 3DS-Ergebnisse mit PaymentIntents und SetupIntents importieren. | Feld | Beschreibung | Optionalität | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ | | [electronic_commerce_indicator](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_options-card-three_d_secure-electronic_commerce_indicator) | Der Electronic Commerce Indicator (ECI) wird von Ihrem 3DS-Anbieter zurückgegeben und zeigt an, welcher Grad der Authentifizierung durchgeführt wurde. | Optional. Einfügen, falls verfügbar. | | [cb_avalgo](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_options-card-three_d_secure-network_options-cartes_bancaires-cb_avalgo) | Der vom ACS des Kartenausstellers zur Berechnung des Authentifizierungskryptogramms verwendete Kryptogramm-Berechnungsalgorithmus. Auch bekannt als cavvAlgorithm. ARes/RReq messageExtension: `CB-AVALGO` | Erforderlich. | | [cb_exemption](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_options-card-three_d_secure-network_options-cartes_bancaires-cb_exemption) | Der von Cartes Bancaires in den ARes zurückgegebene Befreiungsindikator. Dabei handelt es sich um eine 3-Byte-Bitmap (niederwertiges Byte zuerst und höchstwertiges Bit zuerst), die Base64-codiert wurde. Zeichenfolge (4 Zeichen). ARes Nachrichterweiterung: `CB-EXEMPTION` | Optional. Einfügen, falls verfügbar. | | [cb_score](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_options-card-three_d_secure-network_options-cartes_bancaires-cb_score) | Die von Cartes Bancaires in den ARes zurückgegebene Risikobewertung. Numerischer Wert 0-99. ARes/RReq Nachrichterweiterung: `CB-SCORE` | Optional. Einfügen, falls verfügbar. | | [ares_trans_status](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_options-card-three_d_secure-ares_trans_status) | Der vom ACS des Kartenausstellers in den ARes zurückgegebene `transStatus` | Optional. Einfügen, falls verfügbar. | | [requestor_challenge_indicator](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_options-card-three_d_secure-requestor_challenge_indicator) | Der Challenge-Indikator (`threeDSRequestorChallengeInd`), der in dem an das ACS des Kartenausstellers gesendeten AReq angefordert wurde. Eine Zeichenfolge mit 2 Ziffern von 01-99. | Optional. Einfügen, falls verfügbar. | Geben Sie so viele dieser zusätzlichen Felder wie möglich an, um die Wahrscheinlichkeit einer erfolgreichen Autorisierung zu erhöhen. ```curl curl https://api.stripe.com/v1/payment_intents \ -u "<>:" \ -d amount=2000 \ -d currency=eur \ -d "payment_method_types[]=card" \ -d "payment_method={{PAYMENTMETHOD_ID}}" \ -d "payment_method_options[card][network]=cartes_bancaires" \ -d "payment_method_options[card][three_d_secure][version]=2.2.0" \ -d "payment_method_options[card][three_d_secure][electronic_commerce_indicator]=05" \ --data-urlencode "payment_method_options[card][three_d_secure][cryptogram]=CJSJbzXT6TRQlvZDX+ZdOG4QriE=" \ -d "payment_method_options[card][three_d_secure][transaction_id]=aaa65c7b-b0fc-4e71-bd6c-29c87acad489" \ -d "payment_method_options[card][three_d_secure][requestor_challenge_indicator]=02" \ -d "payment_method_options[card][three_d_secure][ares_trans_status]=Y" \ -d "payment_method_options[card][three_d_secure][network_options][cartes_bancaires][cb_avalgo]=1" \ -d "payment_method_options[card][three_d_secure][network_options][cartes_bancaires][cb_score]=9" \ -d "payment_method_options[card][three_d_secure][network_options][cartes_bancaires][cb_exemption]=BAAA" \ -d confirm=true \ -d error_on_requires_action=true ``` ### Ausnahmen bei Cartes Bancaires Wenn Sie über 3DS von 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) ausgenommen wurden, müssen Sie entweder den Parameter `cb_exemption`, den Parameter `exemption_indicator` oder beide übermitteln. Wenn einer dieser Parameter aufgrund einer Analyse des Transaktionsrisikos durch den Acquirer anzeigt, dass die Ausnahme ein geringes Risiko darstellt, bewertet Stripe die Transaktion erneut, wie unter [Ergebnisse von 3D-Ausnahmen importieren](https://docs.stripe.com/payments/payment-intents/three-d-secure-import.md#import-exempted-outcomes) beschrieben. - Wenn Sie Zugriff auf `cb_exemption` haben, übergeben Sie diesen Wert und lassen Sie `exemption_indicator` leer. Stripe leitet den entsprechenden Ausnahmeindikator anhand von `cb_exemption` ab. - Wenn Sie sowohl den Parameter `cb_exemption` als auch den Parameter `exemption_indicator` übergeben, stellen Sie sicher, dass beide den Ausnahmestatus korrekt darstellen. - Wenn es keine Übereinstimmung zwischen `exemption_indicator=none` und der Bitmap in `cb_exemption` gibt, handelt es sich bei der angewendeten Ausnahme um eine Ausnahme mit geringem Risiko. Stripe lehnt die Anfrage in diesem Fall ab. ## Testen Sie können Ihre Integration in einer Sandbox mit einer der für die Authentifizierung erforderlichen Testkarten validieren: `4000 0027 6000 3184` oder `pm_card_authenticationRequired`. Die Simulation akzeptiert jedes korrekt formatierte 3DS-Ergebnis. Beispiel: - Version: `2.1.0` - Electronic Commerce Indicator: `02` - Kryptogramm: `M6+990I6FLD8Y6rZz9d5QbfrMNY=` - Transaktions-ID: `5f5d08f2-8c36-4f72-99d1-57b4fb70b7d5` Oder: - Version: `2.2.0` - Electronic Commerce Indicator: `05` - Kryptogramm: `4BQwsg4yuKt0S1LI1nDZTcO9vUM=` - Transaktions-ID: `f879ea1c-aa2c-4441-806d-e30406466d79` ### Über 3DS gewährte Ausnahmen In einer Testumgebung geben alle Karten mit `exemption_indicator` `exemption_indicator_applied` als „true“ zurück. Um eine PaymentIntent-Erstellung zu testen, die die interne TRA-Prüfung nicht besteht und „false“ zurückgibt, verwenden Sie die Kartennummer `4000 0000 0001 6123` und legen Sie `exemption_indicator=low_risk` fest. ### Cartes Bancaires Sie können die folgenden Zusatzkarten zum Importieren Ihrer Cartes Bancaires-Ergebnisse verwenden: #### Kartennummern | Nummer | Marke | CVC | Datum | | ------------------- | --------------------------- | ------------------------ | ---------------------- | | 4000 0025 0000 1001 | Cartes Bancaires/Visa | Beliebige 3 Ziffern | Jedes zukünftige Datum | | 5555 5525 0000 1001 | Cartes Bancaires/Mastercard | Beliebige 3 Ziffern | Jedes zukünftige Datum | | 4000 0000 0001 6123 | Cartes Bancaires/Visa | Beliebige 3 Ziffern | Jedes zukünftige Datum | #### Token | Token | Marke | | ---------------------------------------------------- | --------------------------- | | `tok_visa_cartesBancaires` | Cartes Bancaires/Visa | | `tok_mastercard_cartesBancaires` | Cartes Bancaires/Mastercard | | `tok_threeDSecureImportExemptionIndicatorNotApplied` | Cartes Bancaires/Visa | #### PaymentMethods | Zahlungsmethode | Marke | | -------------------------------------------------------- | --------------------------- | | `pm_card_visa_credit_fr_cartesBancaires` | Cartes Bancaires/Visa | | `pm_card_mastercard_credit_fr_cartesBancaires` | Cartes Bancaires/Mastercard | | `pm_card_threeDSecureImportExemptionIndicatorNotApplied` | Cartes Bancaires/Visa | Sie können in Ihren Tests jeden gültigen `cb_exemption`-Wert verwenden. Zum Beispiel: - `AAAA` - Keine Ausnahme gewährt - `BAAA` - Ausnahmegenehmigung aufgrund geringen Risikos Wenn wie beim [Standardablauf für Ausnahmen](https://docs.stripe.com/payments/payment-intents/three-d-secure-import.md#exemptions-granted-through-3ds) der Wert von `cb_exemption` einem niedrigen Risiko entspricht, gibt nur die Testkarte `4000 0000 0001 6123` den Wert „false“ für [exemption_indicator_applied](https://docs.stripe.com/api/charges/object.md#charge_object-payment_method_details-card-three_d_secure-exemption_indicator_applied) zurück. ## Nutzung von Raw PAN Stripe verlangt von Nutzern und Nutzerinnen, dass sie sich vergewisssern, dass die Daten von Karteninhabern und -inhaberinnen sicher und gemäß dem Payment Card Industry Data Security Standard (PCI DSS) gehandhabt werden, bevor sie Zugriff auf APIs für Kartenrohdaten gewähren. An Unternehmen, die diese Funktionalität benötigen, stellt Stripe strenge Anforderungen, einschließlich: - Validierung der PCI-DSS-Konformität - Einreichung für den Stripe-Überprüfungsprozess - Zustimmung zu zusätzlichen Kontrollen über die Standard-Sicherheitseinstellungen von Stripe hinaus Details zur Aktivierung finden Sie im Support-Artikel [Zugriff auf Kartenrohdaten-APIs aktivieren](https://support.stripe.com/questions/enabling-access-to-raw-card-data-apis). > Wenn Sie bei Konten mit individueller Preisgestaltung Stripe als Acquirer (Händlerbank) in der 3D Secure-Anfrage angeben, leitet Stripe die für 3DS geltenden Netzwerkkosten gemäß Ihrer Vereinbarung mit Stripe weiter. ## See also - [3D Secure-Optionen für PaymentIntents](https://docs.stripe.com/api/payment_intents/create.md#create_payment_intent-payment_method_options-card-three_d_secure)