Authentification des titulaires de carte à l'aide de 3D Secure
Découvrez 3D Secure, une couche d'authentification supplémentaire que les entreprises utilisent pour lutter contre la fraude.
Fonctionnement de 3D Secure
3D Secure (3DS) utilise l’authentification multi-facteurs pour réduire la fraude liée aux transactions en ligne sans présentation de la carte. La vérification 3DS est déclenchée par les entreprises dans les flux de paiement en ligne et nécessite une authentification multi-facteurs (généralement via un SMS ou un e-mail contenant un code d’accès unique envoyé par Stripe).
Exemple de flux 3D Secure
Étape 1 : Le client saisit ses informations de carte.
Étape 2 : L’acquéreur demande une vérification 3DS. Si la carte Stripe Issuing est enregistrée dans 3DS, le titulaire de la carte est invité à effectuer une étape de vérification supplémentaire.
Comme indiqué ci-dessus, l’étape supplémentaire introduite par 3D Secure lors du paiement implique généralement la présentation au titulaire de la carte de la page d’authentification de son émetteur, où il est invité à saisir un code de vérification envoyé sur son téléphone ou à son adresse e-mail.
En quoi la vérification 3DS est-elle importante
Dans la plupart des cas, les entreprises sont responsables des pertes liées à la fraude dans le cadre des transactions sans présentation de la carte. Pour se protéger, les entreprises peuvent déclencher la vérification 3DS afin de réduire les chances d’accepter une transaction frauduleuse. Même si une entreprise déclenche la vérification 3DS, le titulaire de la carte n’a besoin d’effectuer cette étape que si vos cartes Stripe sont enregistrées dans 3DS. Au Royaume-Uni et dans l’UE, 3DS est la norme pour la mise en œuvre des exigences réglementaires de l’authentification forte du client (SCA).
Transfert de responsabilité
Lorsqu’une entreprise déclenche la vérification 3DS, la responsabilité en cas de fraude passe de l’entreprise à l’émetteur dans la plupart des cas. Cela s’applique que vos cartes Issuing soient enregistrées ou non dans 3DS, ce qui signifie que les émetteurs peuvent assumer une responsabilité accrue sans aucune vérification supplémentaire.
Inscription 3DS
- États-Unis : l’inscription 3DS aux États-Unis est facultative et vos cartes ne seront pas inscrites à 3DS à moins que vous ne contactiez l’assistance pour demander une inscription. Dans le cadre de nos bonnes pratiques en matière de gestion de la fraude aux transactions, nous vous recommandons d’enregistrer vos cartes dans 3DS au début du cycle de vie de votre programme Issuing. Bien que l’inscription augmente la complexité pour un sous-ensemble de vos transactions de titulaire de carte, elle contribue à réduire considérablement le risque de pertes potentielles dues à la fraude aux transactions avec des transactions en ligne sans présentation de la carte. Après votre demande d’inscription, nous inscrivons toutes les cartes actives associées à votre compte et nous le faisons automatiquement pour toutes les cartes créées par la suite.
- En l’absence de numéro de téléphone ou d’adresse e-mail associés au titulaire de carte, son inscription à 3DS sera impossible. Après avoir effectué la demande d’inscription, vous pouvez ajouter ses coordonnées aux objets Cardholder afin d’inscrire automatiquement les cartes concernées. De même, si vous supprimez les coordonnées d’un titulaire de carte, nous le désinscrirons automatiquement de 3DS.
- Royaume-Uni et UE : lors de la création, les cartes sont enregistrées dans 3DS par défaut en raison des réglementations locales.
- Pour permettre la mise en œuvre de l’authentification forte du client sur 3DS et se conformer aux réglementations locales, toutes les cartes émises au sein de l’UE et du Royaume-Uni nécessitent un numéro de téléphone valide enregistré.
Authentification 3DS
Lorsqu’une requête d’authentification 3DS se déclenche pour un titulaire de carte, Stripe lui envoie un SMS ou un e-mail contenant un code de vérification unique.
La méthode d’authentification dépend des informations de contact fournies pour le titulaire de la carte. Sur les marchés du Royaume-Uni et de l’UE pris en charge par Stripe Issuing, les titulaires de carte doivent avoir enregistré un numéro de téléphone pour pouvoir s’authentifier à l’aide d’un code de vérification par SMS ponctuel. Aux États-Unis, le numéro de téléphone ou l’adresse e-mail enregistré sera utilisé pour authentifier les titulaires de carte, mais si le numéro de téléphone et l’adresse e-mail sont présents, le numéro de téléphone sera utilisé pour l’authentification. Dans le cas contraire, la demande d’authentification utilise les coordonnées disponibles. Pour nous permettre de mieux vous sécuriser, vous et vos titulaires de carte, nous vous recommandons de tenir à jour les numéros de téléphone et les adresses e-mail des titulaires de carte. Cela nous permet de les contacter lors de l’authentification. Vous pouvez mettre à jour les informations de vos titulaires de carte en remplaçant le champ par sa nouvelle valeur via l’API ou le Dashboard.
Au Royaume-Uni et dans l’UE, le titulaire de la carte peut également voir s’afficher une question de sécurité supplémentaire. Il peut alors sélectionner dans une liste de transactions celles qu’il reconnaît. Si c’est la première fois qu’il se sert de sa carte, il doit alors sélectionner l’option indiquant qu’il ne reconnaît aucune des transactions qui lui sont présentées.
La liste de transactions qui est présentée au titulaire de la carte.
Choix de la langue dans 3D Secure
Le champ preferred_locales de l’objet Cardholder détermine la langue d’affichage du flux 3DS. La langue par défaut de 3DS est l’anglais.
Afin de choisir une langue 3DS pour un titulaire de carte, utilisez l’API pour définir ses preferred_
sur un tableau de langues de préférence, par ordre de préférence. Si vous le souhaitez, vous ne pouvez indiquer qu’une seule langue. Les langues prises en charge sont l’anglais (en
), le français (fr
), l’allemand (de
), l’italien (it
) et l’espagnol (es
).
Aux États-Unis, Stripe prend également en charge l’authentification via une application iOS et Android native. Si vous souhaitez utiliser cette fonctionnalité, veuillez contacter le service d’assistance.
Quelle que soit la méthode d’authentification utilisée, si un titulaire de carte ne peut pas effectuer trois tentatives d’authentification 3DS consécutives dans un court laps de temps, 3DS est désactivé sur ses cartes pendant 60 minutes.
Exemptions
Certains types de paiements à faible risque peuvent être exemptés d’authentification forte du client. Les exemptions limitent la complexité des paiements à faible risque en réduisant la fréquence d’authentification des clients. Par défaut, Stripe peut demander les exemptions suivantes pour les cartes éligibles 3DS afin de limiter la complexité associée aux transactions qu’il juge à faible risque ou à faible valeur :
Type | Signification |
---|---|
transaction_risk_analysis (États-Unis uniquement) | Un émetteur (comme Stripe) peut effectuer une analyse de risque en temps réel pour déterminer s’il convient ou non de demander une exemption à faible risque pour une transaction. |
low_value_transaction | Les transactions inférieures à 30 GBP/EUR (ou montant équivalent converti) sont considérées comme des transactions « à faible valeur » et peuvent être exemptées d’authentification forte du client. Si l’exemption a été utilisée cinq fois depuis la dernière authentification réussie du titulaire de la carte ou si la somme des paiements précédemment exemptés dépasse 100 GBP ou EUR, l’exemption ne s’applique pas et le titulaire de la carte doit être authentifié. |
Note
Les acquéreurs peuvent également faire des demandes d’exemptions, et Stripe peut répondre favorablement à ces demandes. Dans ces scénarios, la responsabilité des pertes incombe à l’acquéreur et ne passe pas à l’émetteur.
Lorsqu’une exemption réclamée par l’émetteur est appliquée, l’objet Authorization se présente comme suit :
{ "object": "issuing.authorization", ... "verification_data" : { ... "authentication_exemption": { "type": "low_value_transaction", "claimed_by": "issuer" }, ... }, ... }
Inversement, lorsqu’une exemption réclamée par l’acquéreur est appliquée, l’objet Autorisation se présente comme suit :
{ "object": "issuing.authorization", ... "verification_data" : { ... "authentication_exemption": { "type": "low_value_transaction", "claimed_by": "acquirer" }, ... }, ... }
Si vous êtes établi au Royaume-Uni ou dans l’UE et que votre cas d’usage nécessite uniquement des cartes virtuelles, vous pouvez contacter le service d’assistance Stripe pour déterminer si une exemption du paiement SCP (Secure Corporate Payment) s’applique à votre programme.
Gestion de la fraude via 3DS
Stripe fournit les informations sur une tentative d’authentification 3DS via l’API, dans l’endpoint d’autorisation. Utilisez le hachage three_
dans le hachage verification_data pour déterminer si une autorisation a bien été authentifiée. Si vous gérez votre propre logique d’autorisation, nous vous suggérons d’utiliser ces valeurs comme données principales pour déterminer si une autorisation doit être approuvée ou rejetée.
De plus, si l’entreprise n’a pas effectué de tentative d’authentification 3DS, le champ three_
est nul. Si 3DS a été exempté, authentication_
est présent et le champ three_
est nul. Une autorisation ne peut pas contenir à la fois three_
et authentication_
.
Vous trouverez dans le tableau ci-dessous des indications sur la signification de ces valeurs ainsi que sur la manière de les utiliser pour lutter contre la fraude.
Résultat | Signification | Action suggérée |
---|---|---|
attempt_acknowledged | L’entreprise a tenté d’authentifier l’autorisation, mais la carte n’est pas inscrite ou n’a pas pu accéder à Stripe. | Il n’y a pas suffisamment d’éléments probants pour déterminer si l’autorisation est frauduleuse ou non. |
authenticated | Le client a été identifié comme étant le titulaire de la carte car il a correctement saisi le code de vérification envoyé sur son téléphone. L’achat en ligne est légitime et non frauduleux. | Approuver la transaction. |
failed | Le titulaire de la carte n’a pas pu être authentifié comme étant le client, ce qui pourrait signifier que ce n’est pas lui qui effectue l’achat. | Refuser la transaction. |
required | L’autorisation a été refusée car les exigences réglementaires imposaient une authentification pour cette transaction, mais le marchand ne l’a pas soumise correctement et n’a pas demandé d’exemption applicable. | Refuser la transaction. |
Note
Si la carte est inscrite sur 3DS, en l’absence d’indication verification_
, c’est que le marchant n’a pas effectué de tentative d’authentification sur l’autorisation.
Comment tester 3DS
Utilisez l’API Stripe Payments pour tester l’authentification 3DS.
Créer un PaymentMethod avec votre carte émise
Vous pouvez créer un PaymentMethod à l’aide de votre propre carte émise en exécutant la commande suivante :
Remplacez les valeurs suivantes :
YOUR_
avec le numéro de votre carte émiseISSUED_ CARD_ NUMBER YOUR_
avec le CVC de votre carte émiseISSUED_ CARD_ CVC YOUR_
avec le mois d’expiration de votre carte émiseISSUED_ CARD_ EXPIRATION_ MONTH YOUR_
avec l’année d’expiration de votre carte émiseISSUED_ CARD_ EXPIRATION_ YEAR
Créer un PaymentIntent
Vous pouvez créer un PaymentIntent en exécutant la commande suivante :
Cette commande crée un PaymentIntent qui ouvre une requête d’authentification 3D Secure. Utilisez le paramètre payment_
pour procéder à l’authentification 3D Secure. Le montant doit être suffisamment élevé pour justifier une authentification. Dans cet exemple, le montant utilisé est de 150 USD.
Le paramètre "capture_
active la capture manuelle pour le PaymentIntent, ce qui signifie que les fonds sont autorisés mais pas encore capturés.
Confirmer le PaymentIntent
Vous pouvez confirmer le PaymentIntent en exécutant la commande suivante :
Remplacez pi_
par l’ID de votre PaymentIntent et pm_
par l’ID de votre PaymentMethod. Après confirmation du PaymentIntent, la réponse que vous recevez contient le champ next_
. Ce champ inclut une URL que vous pouvez utiliser pour rediriger l’utilisateur vers l’authentification 3DS.
... "next_action": { "redirect_to_url": { "return_url": "https://www.example.com ", "url": "https://hooks.stripe.com/3d_secure_2/hosted?...." }, "type": "redirect_to_url" }, ...
Annuler l’autorisation
Une fois que la demande d’authentification 3DS est effectuée et que le paiement est autorisé, vous pouvez annuler le PaymentIntent sans capturer de fonds.
Remplacez pi_
par l’ID de votre PaymentIntent.