Exécuter une authentification 3D Secure 2
POST /threedsecure/v2/accounts/account_id/authentications
Une fois que vous avez reçu deviceFingerprintingId de la SDK JavaScript, vous devez l’inclure dans votre requête d’authentification avec les autres champs requis et les données contextuelles.
Voir notre documentation API complète pour une description intégrale des paramètres requis pour la requête d’authentification.
Lorsque l’authentification est terminée, Paysafe interprète la réponse du serveur répertoire et renvoie une réponse contenant les paramètres status et threeDResult* de même que authenticationId.
- Si status=COMPLETED, le marchand doit alors consulter la matrice Transfert de responsabilité pour déterminer s’il convient de donner suite à la requête d’autorisation.
- Si status=PENDING et threeDResult=C, l’émetteur de la carte a mis au défi le titulaire de la carte et demande une vérification supplémentaire. Dans ce cas, le marchand doit continuer à utiliser le flux de défi.
curl -X POST https://api.test.paysafe.com/threedsecure/v2/accounts/89987201/authentications \
-u devcentre322:B-qa2-0-53625f86-302c021476f52bdc9deab7aea876bb28762e62f92fc671e2d0214736abf501e9675e55940e83ef77f5c304edc7968 \
-H 'Content-type: application/json' \
-d ’{
"amount": 123,
"currency": "EUR",
"mcc": "0742",
"merchantName": "Merchant Name Inc",
"merchantRefNum": "Ref-1234",
"merchantUrl": "https://mysite.com",
"card": {
"cardExpiry": {
"month": 12,
"year": 2019
},
"cardNum": "4111111111111111",
"holderName": "John Smith"
},
"billingDetails": {
"city": "New York",
"country": "US",
"state": "AL",
"street": "My street 1",
"street2": "My street 2",
"zip": "CHY987"
},
"shippingDetails": {
"city": "New York",
"country": "US",
"state": "AL",
"street": "My street 1",
"street2": "My street 2",
"zip": "CHY987",
"shipMethod": "S"
},
"profile": {
"cellPhone": "+154657854697",
"email": "example@example.com",
"phone": "+154657854697"
},
"deviceFingerprintingId": "123e4567-e89b-12d3-a456-426655440000",
"deviceChannel": "BROWSER",
"requestorChallengePreference": "NO_PREFERENCE",
"messageCategory": "PAYMENT",
"transactionIntent": "GOODS_OR_SERVICE_PURCHASE",
"authenticationPurpose": "PAYMENT_TRANSACTION",
"orderItemDetails": {
"preOrderItemAvailabilityDate": "2014-01-26",
"preOrderPurchaseIndicator": "MERCHANDISE_AVAILABLE",
"reorderItemsIndicator": "FIRST_TIME_ORDER",
"shippingIndicator": "SHIP_TO_BILLING_ADDRESS"
},
"purchasedGiftCardDetails": {
"amount": 1234,
"count": 2,
"currency": "USD"
},
"userAccountDetails": {
"addCardAttemptsForLastDay": 1,
"changedDate": "2010-01-26",
"changedRange": "DURING_TRANSACTION",
"createdDate": "2010-01-26",
"createdRange": "NO_ACCOUNT",
"passwordChangedDate": "2012-01-26",
"passwordChangedRange": "NO_CHANGE",
"paymentAccountDetails": {
"createdRange": "NO_ACCOUNT",
"createdDate": "2010-01-26"
},
"shippingDetailsUsage": {
"cardHolderNameMatch": true,
"initialUsageDate": "2014-01-26",
"initialUsageRange": "CURRENT_TRANSACTION"
},
"suspiciousAccountActivity": true,
"totalPurchasesSixMonthCount": 1,
"transactionCountForPreviousDay": 1,
"transactionCountForPreviousYear": 3,
"userLogin": {
"authenticationMethod": "NO_LOGIN",
"data": "Some up to 2048 bytes undefined data",
"time": "2014-01-26T10:32:28Z"
}
}
}’
Avant d’essayer l’exemple, vous devez :
- Remplacer le numéro de compte (89987201) dans l’URL par le numéro de compte de test que vous avez reçu.
La requête contient les paramètres suivants :
Élément | Élément enfant | Type | Requis? | Description |
---|---|---|---|---|
montant | integer max=99999999999 | Oui | Il s’agit du montant de la requête, en unités mineures. | |
devise | string length<=3 | Oui | Il s’agit de la devise du compte marchand, p. ex. USD ou CAD. | |
mcc | string length=4 | No | Ce code remplace le code marchand configuré de manière statique pour la requête d’authentification spécifique. | |
merchantName | string length=1-25 | No | Ce code remplace le nom du marchand configuré de manière statique pour la requête d’authentification spécifique. | |
merchantRefNum | string length<=255 | Oui | Il s’agit du numéro de référence du marchand, créé par ce dernier, et soumis dans le cadre de la requête. Il doit être unique pour chaque requête. | |
merchantUrl | string length<=2048 | Oui | Il s’agit de l’adresse URL complète du site Web commercial ou du service à la clientèle du marchand. | |
carte | cardExpiry | object | Oui | Il s’agit de la date d’expiration de la carte. Les paramètres suivants sont requis :
|
cardNum | string longueur=8-20 | Oui | Il s’agit du numéro de carte utilisé pour la requête. | |
holderName | string longueur<=45 | Oui | Il s’agit du nom du titulaire de la carte. | |
billingDetails | city | string length<=40 | No | Il s’agit de la ville figurant dans l’adresse de facturation. |
country | enum length=2 | No | Il s’agit du pays figurant dans l’adresse de facturation. | |
state | string length<=40 | No | Il s’agit de la province ou de l’État ou de la province figurant dans l’adresse de facturation. | |
street | string length<=50 | No | Il s’agit de la première ligne de l’adresse municipale figurant dans l’adresse de facturation. | |
street2 | string length<=50 | No | Il s’agit de la deuxième ligne de l’adresse municipale de l’adresse de facturation, si nécessaire (p. ex. numéro d’appartement). | |
zip | string length<=10 | No | Il s’agit du code postal de l’adresse de facturation. | |
useAsShippingAddress | boolean | No | Indique si les données de facturation seront également utilisées comme données d’expédition. | |
shippingDetails | city | string length<=40 | No | Il s’agit de la ville de résidence du destinataire. |
country | enum length=2 | No | Il s’agit du pays de résidence du destinataire. | |
state | string length<=40 | No | Il s’agit de l’État ou de la province de résidence du destinataire. | |
street | string length<=50 | No | Il s’agit de l’adresse municipale du destinataire. | |
street2 | string length<=255 | No | Il s’agit de la deuxième ligne de l’adresse municipale figurant dans l’adresse de livraison, si nécessaire (p. ex. numéro d’appartement). | |
zip | string length<=10 | No | Il s’agit du code postal du destinataire. | |
shipMethod | enum | No | Il s’agit du mode d’expédition. Les valeurs éventuelles sont :
| |
profile | cellPhone | string length<=40 | No | Il s’agit du numéro de téléphone cellulaire du client. |
adresse courriel | string | No | Il s’agit de l’’adresse courriel du client. | |
phone | string length<=40 | No | Il s’agit du numéro de téléphone principal du client. | |
deviceFingerprintingId | string length<=36 | Oui | Il s’agit de l’UUID utilisé pour l’empreinte digitale de l’appareil. | |
deviceChannel | enum | Oui | Il s'agit du type d'interface de canal utilisé pour initier la transaction. Les valeurs éventuelles sont :
| |
requestorChallengePreference | enum | No | Indique si un défi est demandé pour cette transaction. Les valeurs éventuelles sont :
| |
messageCategory | enum | Oui | Il s'agit de la catégorie du message pour un cas d'utilisation spécifique. Les valeurs éventuelles sont :
| |
transactionIntent | enum | No | Identifie le type de transaction étant autorisée. Les valeurs éventuelles sont :
Cet élément n’est requis que sur certains marchés, p. ex. le Brésil. | |
authenticationPurpose | enum | Oui | C'est le type de requête d'authentification. Cet élément de données fournit des informations supplémentaires à ACS afin de déterminer la meilleure approche pour traiter une requête d'authentification. Les valeurs éventuelles sont :
| |
maxAuthorizationsForInstalmentPayment | integer max=999 | No | Indique le nombre maximum d’autorisations permises pour les paiements échelonnés. Ceci est requis si authenticationPurpose=INSTALMENT_TRANSACTION. | |
initialPurchaseTime | UTC formatted date | No | Il s’agit de la date et de l’heure de l’achat. Le format de date ISO 8601 est attendu, c.-à-d. AAAA-MM-JJ-THH:MM:SSZ. Cet élément n’est requis que si messageCategory=NON_PAYMENT et authenticationPurpose=INSTALMENT_TRANSACTION or RECURRING_TRANSACTION. | |
billingCycle | endDate | UTC formatted date | No | Il s’agit de la date après laquelle aucune autre autorisation ne sera accordée. Le format de date ISO 8601 est attendu, c’est-à-dire AAAA-MM-JJ. |
frequency | integer max=9999 | No | Il s’agit du nombre minimum de jours entre deux autorisations. | |
orderItemDetails | preOrderItemAvailabilityDate | UTC formatted date | No | Pour un achat en précommande, il s’agit de la date à laquelle la marchandise est censée être disponible. Le format de date ISO 8601 est attendu, c’est-à-dire AAAA-MM-JJ. |
preOrderPurchaseIndicator | enum | No | Indique si le titulaire de la carte passe une commande pour des marchandises disponibles ou des marchandises dont la disponibilité ou la date de sortie est à venir. Les valeurs éventuelles sont :
| |
reorderItemsIndicator | enum | No | Indique si le titulaire de la carte commande à nouveau des marchandises. Les valeurs éventuelles sont :
| |
shippingIndicator | enum | No | Il s’agit du mode de livraison pour la transaction. Les valeurs éventuelles sont :
| |
purchasedGiftCardDetails | montant | integer max=99999999999 | No | Il s’agit du montant de la carte-cadeau, en unités mineures. |
count | integer max=99 | No | Il s’agit du nombre total de cartes prépayées, de cartes-cadeaux ou de codes achetés. | |
devise | string length=3 | No | Il s’agit de la devise de la carte-cadeau, p. ex. USD ou CAD. | |
userAccountDetails | addCardAttemptsForLastDay | integer max=999 | No | Il s’agit du nombre de tentatives d’ajout de carte au cours des dernières 24 heures. |
changedDate | UTC formatted date | No | Il s’agit de la date à laquelle le compte du titulaire de la carte auprès du demandeur 3DS a été modifié pour la dernière fois. Le format de date ISO 8601 est attendu, c’est-à-dire AAAA-MM-JJ. | |
changedRange | enum | No | Il s’agit du temps écoulé entre la dernière modification des informations relatives au compte du titulaire de la carte et l’appel à l’API de la transaction en cours. Les valeurs éventuelles sont :
| |
createdDate | UTC formatted date | No | Il s’agit de la date à laquelle le titulaire de la carte a ouvert le compte auprès du demandeur 3DS. Le format de date ISO 8601 est attendu, c’est-à-dire AAAA-MM-JJ. | |
createdRange | enum | No | Il s’agit du temps écoulé entre l’ouverture du compte par le titulaire de la carte auprès du demandeur 3DS et l’appel API de la transaction en cours. Les valeurs éventuelles sont :
| |
passwordChangedDate | UTC formatted date | No | Il s’agit de la date à laquelle le compte du titulaire de la carte a été réinitialisé ou le mot de passe modifié. Le format de date ISO 8601 est attendu, c’est-à-dire AAAA-MM-JJ. | |
passwordChangedRange | enum | No | Il s’agit du temps écoulé entre le dernier changement de mot de passe ou la réinitialisation du compte du titulaire de la carte et l’appel à l’API de la transaction en cours. Les valeurs éventuelles sont :
| |
paymentAccountDetails | No | Détails du compte de paiement actuel du titulaire de la carte.
| ||
priorThreeDSAuthentication | data | string max=2 048 octets | No | Ce champ est réservé aux futures itérations de 3D Secure 2. |
method | enum | No | Il s’agit du mécanisme utilisé par le titulaire de la carte pour s’authentifier auprès du demandeur 3DS. Les valeurs éventuelles sont :
| |
Id | string length<=36 | No | Il s’agit d’un ancien identifiant d’authentification du titulaire de la carte. Pour les paiements récurrents, il s’agit du paramètre authenticationId de la première authentification. | |
time | UTC formatted date | No | Il s’agit de la date et de l’heure de l’authentification du titulaire de la carte. Le format de date ISO 8601 est attendu, c’est-à-dire : AAAA-MM-JJ-THH:MM:SSZ. | |
shippingDetailsUsage | cardHolderNameMatch | boolean | No | Indique si le nom du titulaire du compte est identique au nom d’expédition utilisé pour cette transaction. |
initialUsageDate | UTC formatted date | No | Il s’agit de la date à laquelle l’adresse d’expédition pour cette transaction a été utilisée pour la première fois avec le demandeur 3DS. Le format de date ISO 8601 est attendu, c’est-à-dire AAAA-MM-JJ. | |
initialUsageRange | enum | No | Il s’agit du temps écoulé entre la première utilisation de cette adresse de livraison et la transaction en cours. Les valeurs éventuelles sont :
| |
suspiciousAccountActivity | boolean | No | Indique si le demandeur 3DS a constaté une activité suspecte, y compris une fraude antérieure, sur le compte du titulaire de la carte. | |
totalPurchasesSixMonthCount | integer max=9999 | No | Il s’agit du nombre total d’achats effectués sur le compte de ce titulaire au cours des six derniers mois. | |
transactionCountForPreviousDay | integer max=999 | No | Il s’agit du nombre de transactions (réussies et abandonnées) pour ce compte de titulaire de carte avec le demandeur 3DS sur tous les comptes de paiement au cours des 24 dernières heures. | |
transactionCountForPreviousYear | integer max=999 | No | Il s’agit du nombre de transactions (réussies et abandonnées) pour ce compte de titulaire de carte avec le demandeur 3DS sur tous les comptes de paiement au cours de l’année précédente. | |
travelDetails | isAirTravel | boolean | No | Indique si la transaction est un achat lié au transport aérien, p. ex. l’achat d’un billet. La valeur par défaut est « false ». |
airlineCarrier | string length<=256 | No | Il s’agit du transporteur aérien sélectionné. Ceci est requis si isAirTravel=true. | |
departureDate | string UTC formatted date | No | Il s’agit de la date de départ dans le fuseau horaire du lieu de départ. Le format de date ISO 8601 est attendu, c’est-à-dire AAAA-MM-JJ. Ceci est requis si isAirTravel=true. | |
destination | string length<=5 | No | Il s’agit du code de l’aéroport de destination. Ceci est requis si isAirTravel=true. | |
origin | string length<=5 | No | Il s’agit du code de l’aéroport de départ. Ceci est requis si isAirTravel=true. | |
passengerFirstName | string length<=99 | No | Il s’agit du prénom du titulaire de la carte figurant dans les données de facturation. Ceci est requis si isAirTravel=true. | |
passengerLastName | string length<=99 | No | Il s’agit du nom de famille du titulaire de la carte figurant dans les données de facturation. Ceci est requis si isAirTravel=true. | |
userLogin | authenticationMethod | enum | No | Il s’agit du mécanisme utilisé par le titulaire de la carte pour s’authentifier auprès du demandeur 3DS. Les valeurs éventuelles sont :
|
data | string max=2 048 octets | No | Il s’agit des données qui documentent et prennent en charge un processus d’authentification spécifique. Non spécifié actuellement en détail, destiné à transporter des données que l’ACS peut utiliser pour vérifier le processus d’authentification. | |
time | UTC formatted date | No | Il s’agit de la date et de l’heure de l’authentification du titulaire de la carte. Le format de date ISO 8601 est attendu, c’est-à-dire : AAAA-MM-JJ-THH:MM:SSZ. | |
browserDetails Si cet objet est inclus, tous les éléments enfants sont requis. | No | |||
acceptHeader | string length<=2048 | Oui | Il s’agit du contenu exact de l’en-tête d’acceptation HTTP tel qu’il est envoyé au demandeur 3DS par le navigateur du titulaire de la carte. | |
colorDepthBits | enum | Oui | Il s’agit de la profondeur de bits de la palette de couleurs pour l’affichage des images, en bits par pixel. Les valeurs éventuelles sont :
| |
customerIp | string Valid IPv4/IPv6 | Oui | Il s’agit de l’adresse IP du client. | |
javascriptEnabled | boolean | Oui | Ce code indique si le navigateur du titulaire de la carte est capable d’exécuter JavaScript. | |
javaEnabled | boolean | Oui | Ce code indique si le navigateur du titulaire de la carte est capable d’exécuter Java. | |
language | string length<=8 | Oui | Il s’agit de la langue du navigateur. | |
screenHeight | integermax=999999 | Oui | Il s’agit de la hauteur totale de l’écran du titulaire de la carte en pixels. | |
screenWidth | integermax=999999 | Oui | Il s’agit de la largeur totale de l’écran du titulaire de la carte en pixels. | |
timezoneOffset | integer max=99999 | Oui | Il s’agit du décalage en minutes entre le fuseau horaire UTC et l’heure locale du navigateur du titulaire de la carte. | |
userAgent | string length<=256 | Oui | Il s’agit de l’en-tête User-Agent du navigateur du client. Par exemple : Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36 |
{
"id": "123e4567-e89b-12d3-a456-4266554456745",
"cavv": "BwAQATkhGAEAABVIFSEYEGkybeU=",
"eci": 5,
"status": "COMPLETED",
"threeDResult": "Y",
"txnTime": "2019-01-21T16:28:17.735Z",
"amount": 123,
"currency": "EUR",
"merchantRefNum": "Ref-1234",
"merchantUrl": "https://mysite.com",
"card": {
"cardExpiry": {
"month": 12,
"year": 2019
},
"cardBin": "411111",
"lastDigits": "1111",
"holderName": "John Smith"
},
"billingDetails": {
"city": "New York",
"country": "US",
"state": "AL",
"street": "My street 1",
"street2": "My street 2",
"zip": "CHY987",
"useAsShippingAddress": true
},
"shippingDetails": {
"city": "New York",
"country": "US",
"state": "AL",
"street": "My street 1",
"street2": "My street 2",
"zip": "CHY987",
"shipMethod": "S"
},
"profile": {
"cellPhone": "+154657854697",
"email": "example@example.com",
"phone": "+154657854697"
},
"directoryServerTransactionId": "123e4567-e89b-12d3-a456-4266554456745",
"threeDSecureVersion": "2.1.0"
"threeDSecureServerTransactionId": "9411c7dc-72dc-4c2d-8dc6-eeb86e8d9532"
}
Les paramètres de réponse non contenus dans la requête sont décrits ci-dessous :
Élément | Élément enfant | Type | Description |
---|---|---|---|
Id | string length<=36 | Il s’agit de l’identifiant unique renvoyé dans la réponse. | |
cavv | string length<=2048 | Il s’agit de la valeur de vérification de l’authentification du titulaire de carte, qui indique que la transaction a été authentifiée. Elle n’existe que lorsqu’aucun défi n’est nécessaire, c.-à-d. lors d’une authentification sans friction réussie. | |
eci | integer longueur<=2 | Il s’agit du code de l’indicateur de commerce électronique, qui est renvoyé par l’émetteur de la carte indiquant si le titulaire de la carte a été authentifié avec succès. Veuillez noter que dans certains cas, la valeur eci comprend un zéro de gauche, p. ex. 01 ou 02. Visa, Amex, JCB et Diners Club
Mastercard
Cela n’existe que lorsqu’aucun défi n’est nécessaire, c.-à-d. dans le cas d’une authentification sans friction. | |
status | enum | Il s’agit de l’état de la requête d’authentification. Les valeurs éventuelles sont :
| |
threeDResult | enum | Indique le résultat de l’authentification. Les valeurs éventuelles sont :
Les valeurs C et R n’existent que pour 3D Secure 2. Voir Résultats 3D Secure pour de plus amples renseignements sur ces valeurs de résultat d’authentification. | |
txnTime | string Format UTC | Il s’agit de la date et de l’heure auxquelles la requête a été traitée. Le format de date ISO 8601 est attendu, c’est-à-dire : AAAA-MM-JJ-THH:MM:SSZ. | |
carte | cardBin | string length<=6-8 | Il s’agit du numéro d’identification bancaire de la carte (NIB). Il s’agit généralement des 6 premiers chiffres de la carte. |
lastDigits | string length=4 | Il s’agit des quatre derniers chiffres de la carte utilisée pour la requête. | |
directoryServerTransactionId | string length<=36 | Il s’agit de l’identifiant de transaction du serveur répertoire requis pour Mastercard. Existe seulement pour 3D Secure 2. | |
threeDSecureVersion | string min=5, max=8 | Il s’agit de la version du protocole 3D Secure. | |
threeDSecureServerTransactionId | string length<=36 | L’identifiant de la transaction du serveur 3D Secure. Remarque : Existe seulement pour 3DS 1.0.2. |
{
"id": "123e4567-e89b-12d3-a456-4266554456745",
"acsUrl": "https://www.acs.com",
"status": "PENDING",
"threeDResult": "C"
"txnTime": "2019-01-21T16:28:17.735Z",
"amount": 123,
"currency": "EUR",
"merchantRefNum": "Ref-1234",
"merchantUrl": "https://mysite.com",
"card": {
"cardExpiry": {
"month": 12,
"year": 2019
},
"cardBin": "411111",
"lastDigits": "1111",
"holderName": "John Smith"
},
"billingDetails": {
"city": "New York",
"country": "US",
"state": "AL",
"street": "My street 1",
"street2": "My street 2",
"zip": "CHY987",
"useAsShippingAddress": true
},
"shippingDetails": {
"city": "New York",
"country": "US",
"state": "AL",
"street": "My street 1",
"street2": "My street 2",
"zip": "CHY987",
"shipMethod": "S"
},
"profile": {
"cellPhone": "+154657854697",
"email": "example@example.com",
"phone": "+154657854697"
},
"directoryServerTransactionId": "123e4567-e89b-12d3-a456-4266554456745",
"threeDSecureVersion": "2.1.0",
"threeDSecureServerTransactionId": "9411c7dc-72dc-4c2d-8dc6-eeb86e8d9532",
"payload": "eyJtZXNzYWdlVHlwZSI6IkNSZXMiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiI
4NWUxZDA1Mi1iM2NkLTRmM2YtOWVlZC1lMDdjYzQxOTk0OTkiLCJhY3NUcmFuc0lEIjoiM2QzZmVmMDUtMWJmMC00Yjk3LWEyYmUtMTk
5MzQ0YTYwMDg4IiwiYWNzVWlUeXBlIjoiMDEiLCJjaGFsbGVuZ2VBZGRJbmZvIjoiQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvbiB3aHk
geW91IGFyZSBiZWluZyBjaGFsbGFuZ2VkISIsImNoYWxsZW5nZUNvbXBsZXRpb25JbmQiOiJOIiwiY2hhbGxlbmdlSW5mb0hlYWRlciI
6Ik9UUCBIZWFkZXIiLCJjaGFsbGVuZ2VJbmZvTGFiZWwiOiJPVFAiLCJjaGFsbGVuZ2VJbmZvVGV4dCI6IlBsZWFzZSBlbnRlciB5b3V
yIE9UUCIsImNoYWxsZW5nZUluZm9UZXh0SW5kaWNhdG9yIjoiTiIsImlzc3VlckltYWdlIjp7Im1lZGl1bSI6Imh0dHBzOi8vd3d3LmN
hcmRpbmFsY29tbWVyY2UuY29tL2ltYWdlcy9jYXJkaW5hbC1sb2dvLnN2ZyIsImhpZ2giOiJodHRwczovL3d3dy5jYXJkaW5hbGNvbW1
lcmNlLmNvbS9pbWFnZXMvY2FyZGluYWwtbG9nby5zdmciLCJleHRyYUhpZ2giOiJodHRwczovL3d3dy5jYXJkaW5hbGNvbW1lcmNlLmN
vbS9pbWFnZXMvY2FyZGluYWwtbG9nby5zdmcifSwicHNJbWFnZSI6eyJtZWRpdW0iOiJodHRwczovL3d3dy5jYXJkaW5hbGNvbW1lcmN
lLmNvbS9pbWFnZXMvY2FyZGluYWwtbG9nby5zdmciLCJoaWdoIjoiaHR0cHM6Ly93d3cuY2FyZGluYWxjb21tZXJjZS5jb20vaW1hZ2V
zL2NhcmRpbmFsLWxvZ28uc3ZnIiwiZXh0cmFIaWdoIjoiaHR0cHM6Ly93d3cuY2FyZGluYWxjb21tZXJjZS5jb20vaW1hZ2VzL2NhcmR
pbmFsLWxvZ28uc3ZnIn0sInJlc2VuZEluZm9ybWF0aW9uTGFiZWwiOiJTZW5kIGEgbmV3IE9UUCIsInNka1RyYW5zSUQiOiIzNzYxODR
jMS1hZmJkLTQ2NmMtYTRkZi01OTkwYTFjNTkxMDQiLCJzdWJtaXRBdXRoZW50aWNhdGlvbkxhYmVsIjoiU3VibWl0IiwidHJhbnNTdGF
0dXMiOiJZIiwiYWNzQ291bnRlckF0b1MiOiIwMDAiLCJleHBhbmRJbmZvTGFiZWwiOiJXaHkgdXNlIDNEUyBTZWN1cmU/Pz8/Pz8/Pz8
/PyIsImV4cGFuZEluZm9UZXh0IjoiWW91IHBheSBsb3dlciBpbnRlcmNoYW5nZSByYXRlcyBhbmQgZ2V0IGNoYXJnZWJhY2sgcHJvdGV
jdGlvbiEhISEhISEhISEhIiwid2h5SW5mb0xhYmVsIjoiV2h5IHVzZSAzRFMgU2VjdXJlPyIsIndoeUluZm9UZXh0IjoiWW91IHBheSB
sb3dlciBpbnRlcmNoYW5nZSByYXRlcyBhbmQgZ2V0IGNoYXJnZWJhY2sgcHJvdGVjdGlvbiEifQ==",
"sdkChallengePayload": "eyJtZXNzYWdlVHlwZSI6IkNSZXMiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiI
4NWUxZDA1Mi1iM2NkLTRmM2YtOWVlZC1lMDdjYzQxOTk0OTkiLCJhY3NUcmFuc0lEIjoiM2QzZmVmMDUtMWJmMC00Yjk3LWEyYmUtMTk
5MzQ0YTYwMDg4IiwiYWNzVWlUeXBlIjoiMDEiLCJjaGFsbGVuZ2VBZGRJbmZvIjoiQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvbiB3aHk
geW91IGFyZSBiZWluZyBjaGFsbGFuZ2VkISIsImNoYWxsZW5nZUNvbXBsZXRpb25JbmQiOiJOIiwiY2hhbGxlbmdlSW5mb0hlYWRlciI
6Ik9UUCBIZWFkZXIiLCJjaGFsbGVuZ2VJbmZvTGFiZWwiOiJPVFAiLCJjaGFsbGVuZ2VJbmZvVGV4dCI6IlBsZWFzZSBlbnRlciB5b3V
yIE9UUCIsImNoYWxsZW5nZUluZm9UZXh0SW5kaWNhdG9yIjoiTiIsImlzc3VlckltYWdlIjp7Im1lZGl1bSI6Imh0dHBzOi8vd3d3LmN
hcmRpbmFsY29tbWVyY2UuY29tL2ltYWdlcy9jYXJkaW5hbC1sb2dvLnN2ZyIsImhpZ2giOiJodHRwczovL3d3dy5jYXJkaW5hbGNvbW1
lcmNlLmNvbS9pbWFnZXMvY2FyZGluYWwtbG9nby5zdmciLCJleHRyYUhpZ2giOiJodHRwczovL3d3dy5jYXJkaW5hbGNvbW1lcmNlLmN
vbS9pbWFnZXMvY2FyZGluYWwtbG9nby5zdmcifSwicHNJbWFnZSI6eyJtZWRpdW0iOiJodHRwczovL3d3dy5jYXJkaW5hbGNvbW1lcmN
lLmNvbS9pbWFnZXMvY2FyZGluYWwtbG9nby5zdmciLCJoaWdoIjoiaHR0cHM6Ly93d3cuY2FyZGluYWxjb21tZXJjZS5jb20vaW1hZ2V
zL2NhcmRpbmFsLWxvZ28uc3ZnIiwiZXh0cmFIaWdoIjoiaHR0cHM6Ly93d3cuY2FyZGluYWxjb21tZXJjZS5jb20vaW1hZ2VzL2NhcmR
pbmFsLWxvZ28uc3ZnIn0sInJlc2VuZEluZm9ybWF0aW9uTGFiZWwiOiJTZW5kIGEgbmV3IE9UUCIsInNka1RyYW5zSUQiOiIzNzYxODR
jMS1hZmJkLTQ2NmMtYTRkZi01OTkwYTFjNTkxMDQiLCJzdWJtaXRBdXRoZW50aWNhdGlvbkxhYmVsIjoiU3VibWl0IiwidHJhbnNTdGF
0dXMiOiJZIiwiYWNzQ291bnRlckF0b1MiOiIwMDAiLCJleHBhbmRJbmZvTGFiZWwiOiJXaHkgdXNlIDNEUyBTZWN1cmU/Pz8/Pz8/Pz8
/PyIsImV4cGFuZEluZm9UZXh0IjoiWW91IHBheSBsb3dlciBpbnRlcmNoYW5nZSByYXRlcyBhbmQgZ2V0IGNoYXJnZWJhY2sgcHJvdGV
jdGlvbiEhISEhISEhISEhIiwid2h5SW5mb0xhYmVsIjoiV2h5IHVzZSAzRFMgU2VjdXJlPyIsIndoeUluZm9UZXh0IjoiWW91IHBheSB
sb3dlciBpbnRlcmNoYW5nZSByYXRlcyBhbmQgZ2V0IGNoYXJnZWJhY2sgcHJvdGVjdGlvbiEifQ=="
}
Les paramètres de réponse non contenus dans la requête sont décrits ci-dessous :
Élément | Élément enfant | Type | Description |
---|---|---|---|
Id | string length<=36 | Il s’agit de l’identifiant unique renvoyé dans la réponse. | |
acsUrl | string length<=2048 | Il s’agit de l’URL entièrement qualifiée pour rediriger le consommateur pour compléter l’opération d’authentification du payeur. | |
status | enum | Il s’agit de l’état de la requête d’authentification. Les valeurs éventuelles sont :
| |
threeDResult | enum | Indique le résultat de l’authentification. Les valeurs éventuelles sont :
Les valeurs C et R n’existent que pour 3D Secure 2. Voir Résultats 3D Secure pour de plus amples renseignements sur ces valeurs de résultat d’authentification. | |
txnTime | string Format UTC | Il s’agit de la date et de l’heure auxquelles la requête a été traitée. Le format de date ISO 8601 est attendu, c’est-à-dire : AAAA-MM-JJ-THH:MM:SSZ. | |
carte | cardBin | string length=6-8 | Il s’agit du numéro d’identification bancaire de la carte (NIB). Il s’agit généralement des 6 premiers chiffres de la carte. |
lastDigits | string length=4 | Il s’agit des quatre derniers chiffres de la carte utilisée pour la requête. | |
directoryServerTransactionId | string length<=36 | Il s’agit de l’identifiant de transaction du serveur répertoire requis pour Mastercard. Existe seulement pour 3D Secure 2. | |
threeDSecureVersion | string min=5, max=8 | Il s’agit de la version du protocole 3D Secure. | |
threeDSecureServerTransactionId | string length<=36 | L’identifiant de la transaction du serveur 3D Secure. Remarque : Existe seulement pour 3DS 1.0.2. | |
payload | stringlength<=2048 | Il s’agit de la demande d’authentification de paiement encodée générée par le système de traitement d’authentification du marchand (MAPS). | |
sdkChallengePayload | stringlength<=9999 | Il s’agit de données utiles qui, si elles sont renvoyées, doivent être transmises à la fonction challenge de la SDK JavaScript pour que le défi se poursuive. |
{
"id": "123e4567-e89b-12d3-a456-4266554456745",
"acsUrl": "https://www.acs.com",
"xid": "MTU0ODE1MjExNDYzMXBVY1ZqU3k=",
"status": "PENDING",
"threeDEnrollment": "Y",
"txnTime": "2019-01-21T16:28:17.735Z",
"amount": 123,
"currency": "EUR",
"merchantRefNum": "Ref-1234",
"merchantUrl": "https://mysite.com",
"card": {
"cardExpiry": {
"month": 12,
"year": 2019
},
"cardBin": "411111",
"lastDigits": "1111",
"holderName": "John Smith"
},
"billingDetails": {
"city": "New York",
"country": "US",
"state": "AL",
"street": "My street 1",
"street2": "My street 2",
"zip": "CHY987",
"useAsShippingAddress": true
},
"shippingDetails": {
"city": "New York",
"country": "US",
"state": "AL",
"street": "My street 1",
"street2": "My street 2",
"zip": "CHY987",
"shipMethod": "S"
},
"profile": {
"cellPhone": "+154657854697",
"email": "example@example.com",
"phone": "+154657854697"
},
"threeDSecureVersion": "1.0.2",
"payload": "eyJtZXNzYWdlVHlwZSI6IkNSZXMiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiI
4NWUxZDA1Mi1iM2NkLTRmM2YtOWVlZC1lMDdjYzQxOTk0OTkiLCJhY3NUcmFuc0lEIjoiM2QzZmVmMDUtMWJmMC00Yjk3LWEyYmUtMTk
5MzQ0YTYwMDg4IiwiYWNzVWlUeXBlIjoiMDEiLCJjaGFsbGVuZ2VBZGRJbmZvIjoiQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvbiB3aHk
geW91IGFyZSBiZWluZyBjaGFsbGFuZ2VkISIsImNoYWxsZW5nZUNvbXBsZXRpb25JbmQiOiJOIiwiY2hhbGxlbmdlSW5mb0hlYWRlciI
6Ik9UUCBIZWFkZXIiLCJjaGFsbGVuZ2VJbmZvTGFiZWwiOiJPVFAiLCJjaGFsbGVuZ2VJbmZvVGV4dCI6IlBsZWFzZSBlbnRlciB5b3V
yIE9UUCIsImNoYWxsZW5nZUluZm9UZXh0SW5kaWNhdG9yIjoiTiIsImlzc3VlckltYWdlIjp7Im1lZGl1bSI6Imh0dHBzOi8vd3d3LmN
hcmRpbmFsY29tbWVyY2UuY29tL2ltYWdlcy9jYXJkaW5hbC1sb2dvLnN2ZyIsImhpZ2giOiJodHRwczovL3d3dy5jYXJkaW5hbGNvbW1
lcmNlLmNvbS9pbWFnZXMvY2FyZGluYWwtbG9nby5zdmciLCJleHRyYUhpZ2giOiJodHRwczovL3d3dy5jYXJkaW5hbGNvbW1lcmNlLmN
vbS9pbWFnZXMvY2FyZGluYWwtbG9nby5zdmcifSwicHNJbWFnZSI6eyJtZWRpdW0iOiJodHRwczovL3d3dy5jYXJkaW5hbGNvbW1lcmN
lLmNvbS9pbWFnZXMvY2FyZGluYWwtbG9nby5zdmciLCJoaWdoIjoiaHR0cHM6Ly93d3cuY2FyZGluYWxjb21tZXJjZS5jb20vaW1hZ2V
zL2NhcmRpbmFsLWxvZ28uc3ZnIiwiZXh0cmFIaWdoIjoiaHR0cHM6Ly93d3cuY2FyZGluYWxjb21tZXJjZS5jb20vaW1hZ2VzL2NhcmR
pbmFsLWxvZ28uc3ZnIn0sInJlc2VuZEluZm9ybWF0aW9uTGFiZWwiOiJTZW5kIGEgbmV3IE9UUCIsInNka1RyYW5zSUQiOiIzNzYxODR
jMS1hZmJkLTQ2NmMtYTRkZi01OTkwYTFjNTkxMDQiLCJzdWJtaXRBdXRoZW50aWNhdGlvbkxhYmVsIjoiU3VibWl0IiwidHJhbnNTdGF
0dXMiOiJZIiwiYWNzQ291bnRlckF0b1MiOiIwMDAiLCJleHBhbmRJbmZvTGFiZWwiOiJXaHkgdXNlIDNEUyBTZWN1cmU/Pz8/Pz8/Pz8
/PyIsImV4cGFuZEluZm9UZXh0IjoiWW91IHBheSBsb3dlciBpbnRlcmNoYW5nZSByYXRlcyBhbmQgZ2V0IGNoYXJnZWJhY2sgcHJvdGV
jdGlvbiEhISEhISEhISEhIiwid2h5SW5mb0xhYmVsIjoiV2h5IHVzZSAzRFMgU2VjdXJlPyIsIndoeUluZm9UZXh0IjoiWW91IHBheSB
sb3dlciBpbnRlcmNoYW5nZSByYXRlcyBhbmQgZ2V0IGNoYXJnZWJhY2sgcHJvdGVjdGlvbiEifQ==",
"sdkChallengePayload": "eyJtZXNzYWdlVHlwZSI6IkNSZXMiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiI
4NWUxZDA1Mi1iM2NkLTRmM2YtOWVlZC1lMDdjYzQxOTk0OTkiLCJhY3NUcmFuc0lEIjoiM2QzZmVmMDUtMWJmMC00Yjk3LWEyYmUtMTk
5MzQ0YTYwMDg4IiwiYWNzVWlUeXBlIjoiMDEiLCJjaGFsbGVuZ2VBZGRJbmZvIjoiQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBvbiB3aHk
geW91IGFyZSBiZWluZyBjaGFsbGFuZ2VkISIsImNoYWxsZW5nZUNvbXBsZXRpb25JbmQiOiJOIiwiY2hhbGxlbmdlSW5mb0hlYWRlciI
6Ik9UUCBIZWFkZXIiLCJjaGFsbGVuZ2VJbmZvTGFiZWwiOiJPVFAiLCJjaGFsbGVuZ2VJbmZvVGV4dCI6IlBsZWFzZSBlbnRlciB5b3V
yIE9UUCIsImNoYWxsZW5nZUluZm9UZXh0SW5kaWNhdG9yIjoiTiIsImlzc3VlckltYWdlIjp7Im1lZGl1bSI6Imh0dHBzOi8vd3d3LmN
hcmRpbmFsY29tbWVyY2UuY29tL2ltYWdlcy9jYXJkaW5hbC1sb2dvLnN2ZyIsImhpZ2giOiJodHRwczovL3d3dy5jYXJkaW5hbGNvbW1
lcmNlLmNvbS9pbWFnZXMvY2FyZGluYWwtbG9nby5zdmciLCJleHRyYUhpZ2giOiJodHRwczovL3d3dy5jYXJkaW5hbGNvbW1lcmNlLmN
vbS9pbWFnZXMvY2FyZGluYWwtbG9nby5zdmcifSwicHNJbWFnZSI6eyJtZWRpdW0iOiJodHRwczovL3d3dy5jYXJkaW5hbGNvbW1lcmN
lLmNvbS9pbWFnZXMvY2FyZGluYWwtbG9nby5zdmciLCJoaWdoIjoiaHR0cHM6Ly93d3cuY2FyZGluYWxjb21tZXJjZS5jb20vaW1hZ2V
zL2NhcmRpbmFsLWxvZ28uc3ZnIiwiZXh0cmFIaWdoIjoiaHR0cHM6Ly93d3cuY2FyZGluYWxjb21tZXJjZS5jb20vaW1hZ2VzL2NhcmR
pbmFsLWxvZ28uc3ZnIn0sInJlc2VuZEluZm9ybWF0aW9uTGFiZWwiOiJTZW5kIGEgbmV3IE9UUCIsInNka1RyYW5zSUQiOiIzNzYxODR
jMS1hZmJkLTQ2NmMtYTRkZi01OTkwYTFjNTkxMDQiLCJzdWJtaXRBdXRoZW50aWNhdGlvbkxhYmVsIjoiU3VibWl0IiwidHJhbnNTdGF
0dXMiOiJZIiwiYWNzQ291bnRlckF0b1MiOiIwMDAiLCJleHBhbmRJbmZvTGFiZWwiOiJXaHkgdXNlIDNEUyBTZWN1cmU/Pz8/Pz8/Pz8
/PyIsImV4cGFuZEluZm9UZXh0IjoiWW91IHBheSBsb3dlciBpbnRlcmNoYW5nZSByYXRlcyBhbmQgZ2V0IGNoYXJnZWJhY2sgcHJvdGV
jdGlvbiEhISEhISEhISEhIiwid2h5SW5mb0xhYmVsIjoiV2h5IHVzZSAzRFMgU2VjdXJlPyIsIndoeUluZm9UZXh0IjoiWW91IHBheSB
sb3dlciBpbnRlcmNoYW5nZSByYXRlcyBhbmQgZ2V0IGNoYXJnZWJhY2sgcHJvdGVjdGlvbiEifQ=="
}
Les paramètres de réponse non contenus dans la requête sont décrits ci-dessous :
Élément | Élément enfant | Type | Description |
---|---|---|---|
Id | string length<=36 | Il s’agit de l’identifiant unique renvoyé dans la réponse. | |
acsUrl | string longueur<=28 | Il s’agit de l’URL entièrement qualifiée pour rediriger le consommateur pour compléter l’opération d’authentification du payeur. | |
xid | string length<=40 | Il s’agit de l’identificateur de transaction renvoyé par l’émetteur de la carte. Existe seulement pour 3DS 1.0.2. | |
status | enum | Il s’agit de l’état de la requête d’authentification. Les valeurs éventuelles sont :
| |
threeDEnrollment | enum | Indique si le titulaire de la carte est inscrit ou non à 3D Secure. Les valeurs éventuelles sont :
Existe seulement pour 3DS 1.0.2. Si une banque émettrice ne prend pas en charge 3D Secure 2, l’API reviendra automatiquement à 3DS 1.0.2 et le paramètre ThreeDEnrollment remplacera ThreeDResult. Voir Scénarios pour de plus amples renseignements. | |
txnTime | string Format UTC | Il s’agit de la date et de l’heure auxquelles la requête a été traitée. Le format de date ISO 8601 est attendu, c’est-à-dire : AAAA-MM-JJ-THH:MM:SSZ. | |
carte | cardBin | string length=6-8 | Il s’agit du numéro d’identification bancaire de la carte (NIB). Il s’agit généralement des 6 premiers chiffres de la carte. |
lastDigits | string length=4 | Il s’agit des quatre derniers chiffres de la carte utilisée pour la requête. | |
threeDSecureVersion | string min=5, max=8 | Il s’agit de la version du protocole 3D Secure. | |
payload | string length<=2048 | Il s’agit de la demande d’authentification de paiement encodée générée par le système de traitement d’authentification du marchand (MAPS). | |
sdkChallengePayload | string length<=9999 | Il s’agit de données utiles qui, si elles sont renvoyées, doivent être transmises à la fonction challenge de la SDK JavaScript pour que le défi se poursuive. |