Aller au contenu principal

3-D Secure

3-D Secure (Three Domain Secure) est le protocole d'authentification standard de l'industrie pour les transactions par carte en ligne. Il ajoute une couche de securite supplementaire en exigeant que les titulaires de carte verifient leur identite avant le traitement du paiement.

Avantages

  • Protection contre la fraude - Transfert de responsabilite pour les transactions frauduleuses a l'emetteur de la carte
  • Conformite SCA - Respectez les exigences d'authentification forte du client
  • Confiance amelioree - Renforcez la confiance des clients avec des transactions securisees
  • Authentification flexible - Prise en charge des flux sans friction lorsque possible

Authentification forte du client (SCA)

Selon la reglementation PSD2 en Europe, l'authentification forte du client exige une verification utilisant au moins deux des trois facteurs :

FacteurTypeExemples
ConnaissanceQuelque chose que vous savezCode PIN, mot de passe, question de securite
PossessionQuelque chose que vous avezTelephone, lecteur de carte, token
InherenceQuelque chose que vous etesEmpreinte digitale, reconnaissance faciale, voix

Versions 3-D Secure

3-D Secure 2

Le standard actuel, offrant :

  • Authentification sans friction - Decisions basees sur le risque sans interaction client
  • Optimisation mobile - Meilleure experience sur les appareils mobiles
  • Echange de donnees enrichi - Plus de contexte pour les decisions de l'emetteur
  • Gestion des exemptions - Demandez des exemptions pour les transactions a faible risque

3-D Secure 1

Version heritee en cours de suppression. Les nouvelles integrations doivent utiliser 3DS2.

Flux d'authentification

Flux sans friction

Pour les transactions a faible risque, l'authentification se fait en arriere-plan :

Client → Marchand → Plateforme → Emetteur (evaluation du risque) → Approuve

Aucune action supplementaire du client requise.

Flux avec challenge

Pour les transactions a risque plus eleve, le client doit s'authentifier :

Client → Marchand → Plateforme → Emetteur → Challenge (OTP/Biometrique) → Approuve

Implementation

Page de paiement hebergee

3-D Secure est gere automatiquement. Incluez simplement les proprietes requises :

{
"order": {
"amountOfMoney": {
"amount": 2980,
"currencyCode": "EUR"
},
"customer": {
"billingAddress": {
"countryCode": "NL",
"city": "Amsterdam"
},
"contactDetails": {
"emailAddress": "customer@example.com"
}
}
},
"hostedCheckoutSpecificInput": {
"returnUrl": "https://yoursite.com/return"
}
}

Serveur a serveur

Incluez la configuration 3-D Secure dans votre requete de paiement :

var request = new CreatePaymentRequest
{
Order = new Order
{
AmountOfMoney = new AmountOfMoney
{
Amount = 2980,
CurrencyCode = "EUR"
},
Customer = new Customer
{
BillingAddress = new Address
{
CountryCode = "NL",
City = "Amsterdam",
Street = "Kalverstraat 1",
Zip = "1012 NX"
},
ContactDetails = new ContactDetails
{
EmailAddress = "customer@example.com"
}
}
},
CardPaymentMethodSpecificInput = new CardPaymentMethodSpecificInput
{
PaymentProductId = 1,
Card = new Card
{
CardNumber = "4111111111111111",
Cvv = "123",
ExpiryDate = "1225",
CardholderName = "John Doe"
},
ThreeDSecure = new ThreeDSecure
{
ChallengeIndicator = "no-preference",
RedirectionData = new RedirectionData
{
ReturnUrl = "https://yoursite.com/return"
}
}
}
};

var response = await merchantClient.Payments
.CreatePaymentAsync(request);

Gerer la reponse

if (response.MerchantAction?.ActionType == "REDIRECT")
{
// Le client doit completer le challenge 3DS
string redirectUrl = response.MerchantAction.RedirectData.RedirectURL;
// Rediriger le client vers cette URL
}
else
{
// Sans friction - verifier directement le statut du paiement
var statusCode = response.Payment.StatusOutput.StatusCode;
}

Indicateur de challenge

Controlez le comportement du challenge 3DS :

ValeurDescription
no-preferenceLaisser l'emetteur decider (par defaut)
no-challenge-requestedPreferer sans friction si possible
challenge-requestedDemander un challenge
challenge-requiredExiger un challenge
ThreeDSecure = new ThreeDSecure
{
ChallengeIndicator = "no-challenge-requested",
// ...
}

Exemptions

Demandez des exemptions pour les transactions eligibles :

Exemption de faible valeur

Pour les transactions inferieures a 30 EUR (limites cumulatives applicables) :

ThreeDSecure = new ThreeDSecure
{
ExemptionRequest = "low-value"
}

Analyse du risque de transaction (TRA)

Pour les marchands avec de faibles taux de fraude :

ThreeDSecure = new ThreeDSecure
{
ExemptionRequest = "transaction-risk-analysis"
}

Exemptions disponibles

ExemptionCondition
low-valueTransaction < 30 EUR
transaction-risk-analysisFaible taux de fraude
whitelistClient a mis le marchand en liste blanche
corporateCartes entreprise/professionnelles
recurringPaiements recurrents subsequents
Resultats des exemptions

Les demandes d'exemption peuvent etre acceptees ou refusees par l'emetteur. En cas de refus, la transaction revient a l'authentification 3DS standard.

Exclusions

Certaines transactions sont automatiquement exclues de la SCA :

  • MOTO - Commande par courrier/telephone
  • Transfrontalier - Paiements hors EEE
  • Prepaye anonyme - Cartes jusqu'a 150 EUR
  • Initie par le marchand - Transactions MIT
CardPaymentMethodSpecificInput = new CardPaymentMethodSpecificInput
{
TransactionChannel = "MOTO" // Exclu de la SCA
}

Donnees requises

Incluez ces champs pour des resultats d'authentification optimaux :

Adresse de facturation

BillingAddress = new Address
{
Street = "Kalverstraat 1",
City = "Amsterdam",
Zip = "1012 NX",
CountryCode = "NL"
}

Coordonnees

ContactDetails = new ContactDetails
{
EmailAddress = "customer@example.com",
PhoneNumber = "+31612345678"
}

Donnees du navigateur (pour S2S)

ThreeDSecure = new ThreeDSecure
{
BrowserData = new BrowserData
{
ColorDepth = 24,
JavaEnabled = false,
ScreenHeight = "1080",
ScreenWidth = "1920"
}
}

Tests

Utilisez les cartes de test pour simuler differents scenarios 3DS :

Numero de carteScenario
4012 0000 3333 0026Challenge 3DS requis
4012 0000 3333 00343DS sans friction
4012 0000 3333 00423DS tente
4000 0000 0000 0002Authentification echouee

Resultats d'authentification

Le threeDSecureResults dans la reponse contient :

ChampDescription
eciElectronic Commerce Indicator
authenticationStatusResultat de l'authentification
cavvCardholder Authentication Verification Value
xidIdentifiant de transaction
var threeDSecureResults = response.Payment
.PaymentOutput
.CardPaymentMethodSpecificOutput
.ThreeDSecureResults;

string eci = threeDSecureResults.Eci;
string authStatus = threeDSecureResults.AuthenticationStatus;

Valeurs du statut d'authentification

StatutSignification
YEntierement authentifie
ATentative d'authentification
NNon authentifie (refuse)
UAuthentification indisponible
CChallenge requis

Transfert de responsabilite

Avec une authentification 3-D Secure reussie :

  • Transaction frauduleuse → L'emetteur est responsable
  • Contestation du titulaire → Protection contre les chargebacks
Bonne pratique

Incluez toujours des donnees client et d'adresse completes pour maximiser les taux d'authentification sans friction et la couverture du transfert de responsabilite.

Depannage

Problemes courants

ProblemeCauseSolution
Challenge non afficheDonnees navigateur manquantesInclure tous les champs navigateur
Authentification echoueeURL de retour invalideAssurez-vous que l'URL est HTTPS et accessible
Pas de transfert de responsabiliteExemption utiliseeLes exemptions SCA n'incluent pas le transfert de responsabilite

Prochaines etapes