- Directives d'intégration
- Conformité et dispenses SCA PSD2
- Intégration de l'API Authentication (Authentification) pour la directive SCA PSD2
Intégration de l'API Authentication (Authentification) pour la directive SCA PSD2
Cette page décrit l'effort d'intégration pour prendre en charge la conformité et les dispenses SCA PSD2 pour une intégration de l'API Authentication (Authentification). Avant de procéder à la création de votre intégration, il est recommandé de vous familiariser avec la conformité et les dispenses SCA PSD2.
Exonérations prises en charge
La passerelle prend actuellement en charge les dispenses suivantes :
- Risque faible
- Faible valeur
- Liste blanche
- Paiements récurrents
- Paiements d'entreprise sécurisés
Conditions préalables
Pour vous conformer aux obligations de SCA PSD2, vous devez avoir une intégration avec la passerelle pour l'authentification 3-D Secure.
Pour utiliser la fonctionnalité de dispenses SCA PSD2 via la passerelle :
- Votre profil de commerçant doit être activé et configuré pour les dispenses PSD2 si vous voulez que votre your payment service provider les utilise.
- Vous ne devez configurer aucune règle de filtrage de transaction 3-D Secure.
- Vous devez avoir une intégration avec l'API Authentication (Authentification) de la passerelle.
Vous devez soumettre autant d'informations sur le payeur et la transaction que possible lorsque vous initiez l'authentification. Cela augmentera la probabilité qu'une dispense soit accordée ou appliquée par l'émetteur. - Vous devez avoir une intégration avec API version 57 ou supérieure.
Demander l'authentification du payeur
Vous pouvez soumettre la demande d'authentification sans demander de dispense. Dans ce cas, vous n'avez pas besoin de modifier votre intégration avec l'API Authentication (Authentification) de la passerelle.
Si la SCA PSD2 s'applique à la transaction, l'émetteur présentera au payeur le flux d'authentification 3DS ou appliquera une dispense émetteur où le payeur connaîtra un flux de paiement sans friction. Dans les deux cas, les informations d'authentification requises sont contenues dans la réponse et vous pouvez procéder au paiement de la manière standard.
Demander une dispense lors de la demande d'authentification du payeur
Si la réponse Initiate Authentication (Initier l'authentification) indique que l'authentification 3DS est disponible pour la carte, c.-à-d. que authentication.version a la valeur 3DS2 ou 3DS1, vous pouvez demander une dispense lors de la soumission de la demande Authenticate Payer (Authentifier le payeur) en ajoutant le champ authentication.psd2.exemption avec l'une des valeurs suivantes :
- LOW_RISK
- LOW_VALUE_PAYMENT
- SECURE_CORPORATE_PAYMENT
authentication.challengePreference=NO_CHALLENGE.Vous pouvez demander une dispense pour tous les cas énumérés ci-dessous :
- Les authentifications 3DS2 ou 3DS1 sont disponibles pour la carte, c'est-à-dire que la réponse Initiate Authentication (Initier l'authentification) a retourné le champ
authentication.versionavec la valeur 3DS2 ou 3DS1.- Si l'authentification 3DS2 est disponible, la passerelle demandera la dispense lors de l'authentification.
- Si l'authentification 3DS1 est disponible, la passerelle contournera l'authentification et vous conseillera de procéder au paiement. La passerelle demandera automatiquement la dispense lors de la soumission du paiement pour traitement à l'acquéreur.
- Votre acquéreur prend en charge les dispenses PSD2. Si l'acquéreur ne prend pas en charge les dispenses, la passerelle demandera automatiquement l'authentification sans demander de dispense.
- L'émetteur prend en charge les dispenses PSD2 pour les authentifications. Si l'émetteur ne prend pas en charge les dispenses PSD2, la passerelle contournera l'authentification et vous conseillera de procéder au paiement. La passerelle demandera automatiquement la dispense lors de la soumission du paiement pour traitement à l'acquéreur.
Exemple de demande Authenticate Payer (Authentifier le payeur)
Exemple de demande Authenticate Payer (Authentifier le payeur) dans REST illustrant comment demander une dispense acquéreur pour risque faible.
| URL | https://test-gateway.mastercard.com/api/rest/version/72/merchant/<your_merchant_ID>/order/<your_order_ID>/transaction/<your_transaction_ID> |
| Méthode HTTP | PUT |
{
"apiOperation":"AUTHENTICATE_PAYER",
"authentication":{
"challengePreference":"NO_CHALLENGE",
"redirectResponseUrl":"<your_host_name_and_path>",
"psd2":{
"exemption":"LOW_RISK"
}
},
"correlationId":"123456789012345678",
"device":{
"browser":"MOZILLA",
"browserDetails":{
"3DSecureChallengeWindowSize":"FULL_SCREEN",
"acceptHeaders":"application/json",
"colorDepth":24,
"javaEnabled":true,
"language":"en-US",
"screenHeight":640,
"screenWidth":480,
"timeZone":273
},
"ipAddress":"123.4.5.6"
},
"order":{
"amount":"100",
"currency":"EUR"
},
"sourceOfFunds":{
"provided":{
"card":{
"number":"5506900140100107",
"expiry":{
"month":"1",
"year":"39"
}
}
}
}
}
Exemple de réponse Authenticate Payer (Authentifier le payeur)
Exemple de réponse Authenticate Payer (Authentifier le payeur) illustrant une dispense acquéreur pour risque faible accordée par l'émetteur.
{
"authentication":{
"3ds":{
"acsEci":"06",
"authenticationToken":"kNyn+7YFi1EUAREAAAAvNUe6Hv8=",
"transactionId":"088d2f19-ecef-47c6-ae27-6db0a1e09278"
},
"3ds2":{
"acsTransactionId":"10c1b4e3-fadc-472b-88a3-73df73722f1e",
"directoryServerId":"A999999999",
"dsTransactionId":"088d2f19-ecef-47c6-ae27-6db0a1e09278",
"methodSupported":"NOT_SUPPORTED",
"protocolVersion":"2.1.0",
"requestorId":"<your_requestor_ID>",
"requestorName":"<your_requestor_name>",
"statusReasonCode":"81",
"transactionStatus":"N"
},
"payerInteraction":"NOT_REQUIRED",
"psd2":{
"exemption":"LOW_RISK"
},
"redirect":{
"customized":{
"3DS":{
"acsUrl":"<ACS_host_and path>",
"cReq":"e30="
}
}
},
"redirectHtml":"<div id=\"threedsFrictionLessRedirect\" xmlns=\"http://www.w3.org/1999/html\"> <iframe id=\"challengeFrame\" name=\"challengeFrame\"> </iframe> <form id=\"threedsFrictionLessRedirectForm\" method=\"POST\" action=\"<your host and path>\" target=\"challengeFrame\"> <input type=\"hidden\" name=\"order.id\" value=\"27bc3847-3a16-4ad7-8566-6b1be559b337\" /> <input type=\"hidden\" name=\"transaction.id\" value=\"1\" /> <input type=\"hidden\" name=\"response.gatewayRecommendation\" value=\"PROCEED\" /> <input type=\"hidden\" name=\"result\" value=\"SUCCESS\" /> </form> <script id=\"authenticate-payer-script\"> var e=document.getElementById(\"threedsFrictionLessRedirectForm\"); if (e) { e.submit(); if (e.parentNode !== null) { e.parentNode.removeChild(e); } } </script> </div>",
"version":"3DS2"
},
"correlationId":"123456789012345678",
"device":{
"browser":"MOZILLA",
"ipAddress":"123.4.5.6"
},
"lineOfBusiness":"Online",
"merchant":"<your_merchant_ID>",
"order":{
"amount":100,
"authenticationStatus":"AUTHENTICATION_EXEMPT",
"creationTime":"2020-06-01T05:32:49.982Z",
"currency":"EUR",
"id":"27bc3847-3a16-4ad7-8566-6b1be559b337",
"lastUpdatedTime":"2020-07-22T08:44:28.148Z",
"merchantCategoryCode":"1234",
"status":"AUTHENTICATION_NOT_NEEDED",
"totalAuthorizedAmount":0,
"totalCapturedAmount":0,
"totalRefundedAmount":0,
"valueTransfer":{
"accountType":"NOT_A_TRANSFER"
}
},
"response":{
"gatewayCode":"APPROVED",
"gatewayRecommendation":"PROCEED"
},
"result":"SUCCESS",
"sourceOfFunds":{
"provided":{
"card":{
"expiry":{
"month":"1",
"year":"39"
},
"number":"5506900140100107",
"scheme":"MASTERCARD"
}
},
"type":"CARD"
},
"timeOfLastUpdate":"2020-07-22T08:44:28.148Z",
"timeOfRecord":"2020-06-01T05:32:49.982Z",
"transaction":{
"acquirer":{
"merchantId":"9808"
},
"amount":100,
"authenticationStatus":"AUTHENTICATION_EXEMPT",
"currency":"EUR",
"id":"1",
"type":"AUTHENTICATION"
},
"version":"57"
}
Si vous n'êtes pas activé pour la dispense demandée, la demande est traitée comme si vous n'aviez pas demandé de dispense. L'émetteur peut :
- accorder la dispense que vous avez demandée,
- appliquer une dispense émetteur ou
- refuser la dispense que vous avez demandée et ne pas appliquer de dispense émetteur.
Un traitement spécial est appliqué si votre acquéreur ou le système ne prend pas en charge les dispenses.
| Scénario | Description |
|---|---|
| L'émetteur accorde une dispense acquéreur | Si l'émetteur accorde la dispense que vous avez demandée :
|
| L'émetteur applique une dispense émetteur | Si l'émetteur applique une dispense émetteur :
|
| L'émetteur n'accorde ni n'applique de dispense | Si l'émetteur n'a pas accordé la dispense que vous avez demandée et n'a pas appliqué de dispense pour émetteur :
|
| L'acquéreur ne prend pas en charge les dispenses PSD2 | Si l'acquéreur (qui sera ensuite utilisé pour traiter le paiement) ne prend pas en charge les dispenses PSD2, la passerelle traitera l'authentification comme si aucune dispense n'était demandée.
|
| Dispenses PSD2 non prises en charge pour ce système | La demande de dispense lors de l'authentification n'est actuellement prise en charge que pour Mastercard et Visa. Si la passerelle ne prend pas en charge la demande de dispense PSD2 pour un système, la passerelle continuera sans exécuter l'authentification 3DS.
|
Procéder à un paiement
Si la réponse ne contient pas response.gatewayRecommendation=PROCEED, nous vous déconseillons de procéder au paiement. Demandez au payeur d'autres détails de paiement.
Si la réponse Authenticate Payer (Authentifier le payeur) indique que vous pouvez procéder au paiement (response.gatewayRecommendation=PROCEED), procédez au paiement en soumettant une demande Authorize (Autoriser) ou Pay (Payer). Pour plus d'informations, voir Mise en œuvre d'une intégration 3DS à l'aide de l'API Authentication (Authentification) (Étape 3).
Retour à l'authentification 3DS1
Si la carte ne prend pas en charge l'authentification 3DS2, la passerelle peut revenir à l'authentification 3DS1. Dans ce cas, lorsque vous avez demandé une dispense, le comportement de la passerelle dépend de la prise en charge par l'acquéreur des dispenses PSD2. Voir le tableau ci-dessous pour plus de détails.
| Scénario | Description |
|---|---|
| L'acquéreur prend en charge les dispenses PSD2 | La passerelle poursuivra sans exécuter l'authentification 3DS.
La réponse ne contiendra aucun détail d'authentification 3DS (indiquant que l'authentification 3DS n'a pas été exécutée). Lorsque vous procédez au paiement, la passerelle demandera automatiquement la dispense lors de la soumission du paiement pour traitement avec l'acquéreur. |
| L'acquéreur ne prend pas en charge les dispenses PSD2 | Si l'acquéreur (qui sera ensuite utilisé pour traiter le paiement) ne prend pas en charge les dispenses PSD2, la passerelle traitera l'authentification comme si aucune dispense n'était demandée.
|
Procéder à un paiement après une authentification réussie
Si vous avez réussi une authentification, c.-à-d. que la réponse Authenticate Payer (Authentifier le payeur) contient response.gatewayRecommendation=PROCEED, procédez au paiement en soumettant une demande Authorize (Autoriser) ou Pay (Payer).
Pour plus d'informations, voir Mise en œuvre d'une intégration 3DS à l'aide de l'API Authentication (Authentification) (Étape 3). La passerelle ajoutera automatiquement les détails de l'authentification 3DS à la demande de transaction soumise à l'émetteur.
Demander une exonération lors de la soumission d'un paiement
Si vous n'avez pas effectué d'authentification, vous pouvez demander une dispense sur la demande Authorize (Autoriser) ou Pay (Payer). Ajoutez le champ authentication.psd2.exemption à la demande avec l'une des valeurs suivantes :
- LOW_RISK
- LOW_VALUE_PAYMENT
- SECURE_CORPORATE_PAYMENT
Exemple de demande Pay (Payer)
Un exemple de demande Pay (Payer) dans REST montrant comment demander une dispense pour les acquéreurs à faible risque.
| URL | https://test-gateway.mastercard.com/api/rest/version/72/merchant/<your_merchant_ID>/order/<your_order_ID>/transaction/<your_transaction_ID> |
| Méthode HTTP | PUT |
{
"apiOperation":"PAY",
"authentication":{
"psd2":{
"exemption":"LOW_RISK"
}
},
"order":{
"amount":"100",
"reference":"<your_order_ID>",
"currency": "EUR",
"merchantCategoryCode": "1234"
},
"sourceOfFunds":{
"provided":{
"card":{
"number":"5506900140100107",
"expiry":{
"month":"1",
"year":"39"
}
}
},
"type":"CARD"
},
"transaction":{
"source":"INTERNET"
}
}
Exemple de réponse Pay (Payer)
Exemple de réponse Pay (Payer) où l'émetteur n'a pas accordé ou ni appliqué de dispense et a rejeté la demande (une SCA étant requise).
{
"authentication":{
"psd2":{
"exemption":"LOW_RISK"
}
},
"authorizationResponse":{
"commercialCard":"888",
"commercialCardIndicator":"3",
"financialNetworkCode":"777",
"posData":"1025104006600",
"posEntryMode":"812",
"processingCode":"003000",
"responseCode":"65",
"stan":"101123",
"transactionIdentifier":"123456789"
},
"currencyConversion":{
"uptake":"NOT_REQUIRED"
},
"gatewayEntryPoint":"WEB_SERVICES_API",
"merchant":"<your_order_ID>",
"order":{
"amount":100.00,
"authenticationStatus":"AUTHENTICATION_REQUIRED",
"certainty":"FINAL",
"chargeback":{
"amount":0,
"currency":"EUR"
},
"creationTime":"2020-07-24T06:49:21.703Z",
"currency":"EUR",
"id":"<your_order_ID>",
"lastUpdatedTime":"2020-07-24T06:49:22.019Z",
"merchantAmount":100.00,
"merchantCategoryCode":"1234",
"merchantCurrency":"EUR",
"reference":"f1dc3211-ea25-46af-b72d-93828f0c6964",
"status":"FAILED",
"totalAuthorizedAmount":0.00,
"totalCapturedAmount":0.00,
"totalRefundedAmount":0.00
},
"response":{
"acquirerCode":"65",
"acquirerMessage":"SCA required under PSD2",
"gatewayCode":"DECLINED",
"gatewayRecommendation":"ATTEMPT_WITH_AUTHENTICATION"
},
"result":"FAILURE",
"sourceOfFunds":{
"provided":{
"card":{
"brand":"MASTERCARD",
"expiry":{
"month":"1",
"year":"39"
},
"fundingMethod":"CREDIT",
"issuer":"INTERNATIONAL CARD SERVICES BV",
"number":"510029xxxxxx2909",
"scheme":"MASTERCARD",
"storedOnFile":"NOT_STORED"
}
},
"type":"CARD"
},
"timeOfLastUpdate":"2020-07-24T06:49:22.019Z",
"timeOfRecord":"2020-07-24T06:49:21.813Z",
"transaction":{
"acquirer":{
"batch":20200724,
"date":"0724",
"id":"SYSTEST_ACQ_S2I",
"merchantId":"9808",
"transactionId":"123456789"
},
"amount":100.00,
"authenticationStatus":"AUTHENTICATION_REQUIRED",
"currency":"EUR",
"id":"<your_transaction_ID>",
"receipt":"020606101123",
"source":"INTERNET",
"stan":"101123",
"terminal":"0002",
"type":"PAY"
},
"version":"57"
}
Si vous n'êtes pas activé pour la dispense demandée, la demande sera rejetée par la passerelle. Contactez votre your payment service provider pour vous assurer qu'il vous a activé pour l'utilisation de la fonctionnalité de dispenses SCA PSD2 sur tous les vos liens commerçant-acquéreur.
L'émetteur peut :
- accorder la dispense que vous avez demandée,
- appliquer une dispense émetteur ou
- refuser la dispense que vous avez demandée et ne pas appliquer de dispense émetteur.
Un traitement spécial est appliqué si votre acquéreur ou le système ne prend pas en charge les dispenses.
| Scénario | Description |
|---|---|
| L'émetteur accorde une dispense acquéreur | Si l'émetteur accorde la dispense que vous avez demandée, le paiement est exonéré du mandat PSD2 SCA et se déroulera sans aucune information d'authentification. Si la transaction réussit, la réponse contiendra :
|
| L'émetteur applique une dispense émetteur | Si l'émetteur applique une dispense émetteur, le paiement est dispensé de l'obligation de SCA PSD2 et se poursuivra sans aucun détail d'authentification. Si la transaction réussit, la réponse contiendra :
|
| L'émetteur n'accorde ni n'applique de dispense | Si l'émetteur n'accorde pas la dispense que vous avez demandée et n'applique pas de dispense émetteur, l'émetteur rejettera la transaction. Le code de réponse retourné par l'émetteur indiquera que la transaction a été rejetée, car une SCA est requise conformément à l'obligation PSD2. La réponse Authorize (Autoriser) ou Pay (Payer) contiendra :
|
| L'acquéreur ne prend pas en charge les dispenses PSD2 | Si votre acquéreur ne prend pas en charge les dispenses PSD2, la passerelle traitera le paiement comme si aucune dispense n'était demandée. |
| Dispenses PSD2 non prises en charge pour ce système | Les dispenses ne sont actuellement prises en charge que pour Mastercard et Visa. Si la passerelle ne dispose pas de support pour demander des dispenses PSD2 pour un système, la passerelle traitera le paiement comme si aucune dispense n'était demandée. |
Soumettre un paiement sans demander de dispense
Si vous n'avez pas effectué d'authentification, vous pouvez soumettre une demande Authorize (Autoriser) ou Pay (Payer) sans demander de dispense. L'émetteur peut soit appliquer une dispense émetteur, soit refuser le paiement car celui-ci ne respecte pas l'obligation de SCA PSD2.
| Scénario | Description |
|---|---|
| L'émetteur applique une dispense émetteur | Si l'émetteur applique une dispense émetteur, le paiement est dispensé de l'obligation de SCA PSD2 et se poursuivra sans aucun détail d'authentification. Si la transaction réussit, la réponse contiendra :
|
| L'émetteur n'accorde ni n'applique de dispense | Si vous n'avez pas demandé de dispense acquéreur et si l'émetteur n'applique aucune dispense émetteur, l'émetteur rejettera la transaction. Le code de réponse retourné par l'émetteur indiquera que la transaction a été rejetée, car une SCA est requise conformément à l'obligation PSD2. La réponse Authorize (Autoriser) ou Pay (Payer) contiendra :
Vous pouvez poursuivre le paiement en effectuant une authentification du payeur et en soumettant à nouveau la demande de paiement avec les détails de l'authentification. Pour imposer l'authentification du payeur, soumettez une demande Authenticate Payer (Authentifier le payeur) avec le champ authentication.challengePreference=CHALLENGE_MANDATED.
|
Dispense pour liste blanche
Vous pouvez demander à l'émetteur de proposer au payeur de vous ajouter à sa liste blanche (pour la carte), en ajoutant authentication.challengePreference=REQUEST_WHITELISTING à la demande Authenticate Payer (Authentifier le payeur).
authentication.challengePreference=REQUEST_WHITELISTING contient également le champ authentication.psd2.exemption, la passerelle ignore le champ authentication.psd2.exemption. Vous pouvez faire ce type de demande :
- lorsque vous soumettez un paiement (la demande Initiate Authentication (Initier l'authentification) contient
authentication.purpose=PAYMENT_TRANSACTION) ou - lorsque vous ajoutez ou mettez à jour les détails de la carte du payeur (la demande Initiate Authentication (Initier l'authentification) contient
authentication.purpose=ADD_CARDouMAINTAIN_CARD).
Lorsque le payeur a accepté de vous ajouter à sa liste blanche, la réponse Authenticate Payer (Authentifier le payeur) contient authentication.psd2.whitelistStatus=WHITELISTED. Sinon, ou dans le cas où l'émetteur ne prend pas en charge les listes blanches, la réponse Authenticate Payer (Authentifier le payeur) contient authentication.psd2.whitelistStatus=NOT_WHITELISTED.
Vous devrez garder une trace du fait que le payeur vous a mis sur liste blanche afin de pouvoir demander une dispense pour liste blanche sur tout paiement ultérieur pour ce payeur.
Demandez l'application de la dispense pour liste blanche en ajoutant authentication.psd2.exemption=WHITELISTED_MERCHANT à la demande.
L'émetteur validera que le payeur vous a mis sur liste blanche et :
- accordera la dispense (flux sans friction pour le payeur) et retournera les détails de l'authentification pour une authentification réussie, ou
- n'accordera pas la dispense et présentera le flux d'authentification au payer.
Si le payeur vous a ajouté à la liste blanche et que vous procédez au paiement sans authentifier le payeur, l'émetteur peut accorder la dispense ou rejeter la demande de transaction. Pour procéder au paiement, vous devez alors procéder à l'authentification du payeur et soumettre à nouveau la demande de paiement.
Exonération des paiements récurrents
Si vous avez une entente avec le payeur pour des paiements récurrents, c'est-à-dire un abonnement avec un montant fixe :
- Vous devez effectuer une SCA lorsque vous soumettez le premier paiement initié par le titulaire de carte.
- Vous devez identifier correctement le premier paiement initié par le titulaire de la carte ; voir Transactions initiées par le titulaire de carte.
- Vous devez identifier correctement tous les paiements ultérieurs initiés par le commerçant comme étant des paiements initiés par le commerçant ; voir Transactions initiées par le commerçant.
- Vous devez demander une dispense pour paiement récurrent pour tous les paiements ultérieurs initiés par le commerçant.
- En cas de modification du montant ou des détails de la carte pour l'entente, vous devez soumettre un autre paiement initié par le titulaire de la carte et effectuer une SCA pour ce paiement.
Paiement initié par le titulaire de la carte
Pour le premier paiement ou en cas de modification du montant ou des détails de la carte, authentifiez le payeur et soumettez un paiement initié par le titulaire de la carte.
Soumettez une demande Initiate Authentication (Initier l'authentification) avec authentication.purpose=PAYMENT_TRANSACTION.
Soumettez une demande Authenticate Payer (Authentifier le payeur) avec :
authentication.challengePreference=CHALLENGE_MANDATEDorder.amountdéfini avec la valeur du montant fixe par paiement dans les paiements récurrentsagreement.idagreement.type=RECURRINGagreement.expiryDate(facultatif)agreement.recurring.daysBetweenPayments(facultatif)
Si l'authentification a réussi, soumettez une demande Authorize (Autoriser) ou Pay (Payer) sur la même commande avec :
authentication.transactionIdréférençant la transaction d'authentification ou en soumettant les détails de l'authentification 3DS dans le groupe de paramètresauthenticationorder.amountcorrespondant au montant authentifiéagreement.idcorrespondant à l'ID de l'entente sur la transaction d'authentificationsourceOfFunds.provided.card.storedOnFile=TO_BE_STOREDtransaction.sourceest défini sur une valeur autre queMERCHANT
Paiement initié par le commerçant
Pour tous les paiements ultérieurs initiés par le commerçant, vous n'avez pas besoin d'authentifier le payeur. Vous devez identifier correctement le paiement en tant que paiement initié par le commerçant. Voir Transactions initiées par le commerçant pour plus de détails.
Soumettez une demande Authorize (Autoriser) ou Pay (Payer) avec :
authentication.psd2.exemption=RECURRING_PAYMENTorder.amountcorrespondant au montant de la commande pour la transaction d'authentificationagreement.idcorrespondant à l'ID de l'entente sur la transaction d'authentificationtransaction.source=MERCHANTsourceOfFunds.provided.card.storedOnFile=STORED
Exonération des paiements initiés par le commerçant
Si vous avez une entente avec le payeur pour des paiements initiés par le commerçant, par exemple les paiements récurrents, échelonnés ou non planifiés (à l'exclusion des paiements récurrents avec un montant fixe, voir la rubrique Dispenses pour paiements récurrents à l'aide de l'API Authentication [Authentification]) :
- Vous devez effectuer une SCA lorsque vous soumettez le premier paiement initié par le titulaire de carte.
- Vous devez identifier correctement tous les paiements ultérieurs initiés par le commerçant comme étant des paiements initiés par le commerçant ; voir Transactions initiées par le commerçant.
- Vous devez demander une dispense pour paiement initié par le commerçant pour tous les paiements ultérieurs initiés par le commerçant.
- En cas de modification des détails de la carte pour l'entente, vous devez soumettre un autre paiement initié par le titulaire de la carte et effectuer une SCA pour ce paiement.
Paiement initié par le titulaire de la carte
Pour le premier paiement ou en cas de modification des détails de la carte, authentifiez le payeur et soumettez un paiement initié par le titulaire de la carte.
Soumettez une demande Initiate Authentication (Initier l'authentification) avec authentication.purpose=PAYMENT_TRANSACTION.
Soumettez une demande Authenticate Payer (Authentifier le payeur) avec :
authentication.challengePreference=CHALLENGE_MANDATEDagreement.id
Si l'authentification a réussi, soumettez une demande Authorize (Autoriser) ou Pay (Payer) sur la même commande avec :
authentication.transactionIdréférençant la transaction d'authentification ou en soumettant les détails de l'authentification 3DS dans le groupe de paramètresauthenticationagreement.idcorrespondant à l'ID de l'entente sur la transaction d'authentificationagreement.typeagreement.expiryDate(facultatif, applicable uniquement pour les paiements récurrents)agreement.recurring.daysBetweenPayments(facultatif, applicable uniquement pour les paiements récurrents). Défini sur « 1 » pour les ententes avec intervalle de temps variable.sourceOfFunds.provided.card.storedOnFile=TO_BE_STOREDtransaction.sourceest défini sur une valeur autre queMERCHANT
Paiement initié par le commerçant
Pour tous les paiements ultérieurs initiés par le commerçant, vous n'avez pas besoin d'authentifier le payeur. Vous devez identifier correctement le paiement en tant que paiement initié par le commerçant. Voir Transactions initiées par le commerçant pour plus de détails.
Soumettez une demande Authorize (Autoriser) ou Pay (Payer) avec :
authentication.psd2.exemption=MERCHANT_INITIATED_PAYMENTagreement.idcorrespondant à l'ID de l'entente sur la transaction d'authentificationtransaction.source=MERCHANTsourceOfFunds.provided.card.storedOnFile=STORED
Utiliser la passerelle pour l'authentification uniquement
Si la réponse ne contient pas response.gatewayRecommendation=PROCEED, nous vous déconseillons de procéder au paiement. Demandez au payeur d'autres détails de paiement.
Si la réponse Authenticate Payer (Authentifier le payeur) indique que vous pouvez procéder au paiement (response.gatewayRecommendation=PROCEED), soumettez une demande de paiement avec les détails indiqués dans la réponse Authenticate Payer (Authentifier le payeur). En fonction des détails de la réponse d'authentification, vous devrez peut-être indiquer les détails suivants sur la demande de paiement.
| Scénario | Description |
|---|---|
| L'émetteur accorde une dispense acquéreur | Si l'émetteur accorde la dispense que vous avez demandée, la réponse contient transaction.authenticationStatus=AUTHENTICATION_EXEMPT. Dans ce cas, ne demandez pas de dispense sur la demande de paiement. Soumettez le jeton d'authentification non modifié dans la demande de paiement, comme prévu dans le champ authentication.3ds.authenticationToken. La réponse contient les champs suivants et la version du protocole renvoyée pour la carte est la version 2.1.0 :Version du protocole 2.1.0
Pour les cartes Mastercard, la combinaison de :
Pour les cartes Visa, la confirmation d'une dispense présente un flux d'authentification sans friction typique.
Pour l'authentification du payeur à l'aide de la version de protocole 2.2.0. Pour les cartes Mastercard, la combinaison de :
Pour les cartes Visa, la combinaison de :
Lorsqu'aucun paiement n'est exécuté au moment où le payeur est authentifié, les commerçants peuvent exécuter une transaction Verification Only (Vérification uniquement). Cependant, Mastercard a indiqué qu'elle ne renvoyait pas de jeton d'authentification (cryptogramme) dans la réponse pour les requêtes EMV 3DS signalées comme des authentifications de non-paiement (« ADD_CARD » ou « MAINTAIN_CARD »). Pour l'authentification Non-Payment Authentication (Authentification hors paiement) à l'aide de la version de protocole 2.2.0. Pour les cartes Mastercard, la combinaison de :
|
| L'émetteur applique une dispense émetteur | Si l'émetteur a appliqué une dispense émetteur, la réponse contient transaction.authenticationStatus=AUTHENTICATION_SUCCESSFUL. Dans ce cas, ne demandez pas de dispense sur la demande de paiement. Soumettez le jeton d'authentification non modifié dans la demande de paiement, comme prévu dans le champ authentication.3ds.authenticationToken. La demande peut également contenir les champs suivants :
|
| L'émetteur n'accorde ni n'applique de dispense | Si l'émetteur n'a pas appliqué de dispense et l'authentification 3DS a réussi, la réponse contient transaction.authenticationStatus=AUTHENTICATION_SUCCESSFUL. Dans ce cas, ne demandez pas de dispense sur la demande de paiement. Soumettez le jeton d'authentification non modifié dans la demande de paiement, comme prévu dans le champ authentication.3ds.authenticationToken. La demande peut également contenir les champs suivants :
|
| L'acquéreur ne prend pas en charge les dispenses PSD2 | Si votre acquéreur ne prend pas en charge les dispenses PSD2, la passerelle traitera l'authentification comme si aucune dispense n'était demandée. Notez que cela nécessite que votre profil de commerçant soit configuré par votre your payment service provider en conséquence. Si l'authentification 3DS a réussi, la réponse contient transaction.authenticationStatus=AUTHENTICATION_SUCCESSFUL. Dans ce cas, ne demandez pas de dispense sur la demande de paiement. Soumettez le jeton d'authentification non modifié dans la demande de paiement, comme prévu dans le champ authentication.3ds.authenticationToken. La demande peut également contenir les champs suivants :
|
| Dispenses PSD2 non prises en charge pour ce système | La demande de dispense lors de l'authentification n'est actuellement prise en charge que pour Mastercard et Visa. Si la passerelle ne prend pas en charge la demande de dispense PSD2 pour un système, la passerelle continuera sans exécuter l'authentification 3DS. La réponse ne contiendra aucun détail d'authentification 3DS (indiquant que l'authentification 3DS n'a pas été exécutée). Dans ce cas, soumettez votre demande de paiement en incluant la dispense. |
Authentification du payeur effectuée en dehors de la passerelle
Si vous avez effectué une authentification du payeur 3DS2 en dehors de la passerelle et avez reçu des détails de l'authentification indiquant que l'émetteur a accordé une dispense, il vous suffit d'indiquer les détails de l'authentification lors de la soumission d'une demande Authorize (Autoriser) ou Pay (Payer) en incluant :
- le jeton d'authentification non modifié dans le champ
authentication.3ds.authenticationToken - l'ECI indiqué par le serveur ACS dans le champ
authentication.3ds.acsEci - la valeur retournée dans le champ de statut de la transaction par le serveur de contrôle d'accès (ACS - Access Control Server) de l'émetteur dans le champ
authentication.3ds2.transactionStatus - le code indiquant le motif du statut de la transaction retourné dans le champ
authentication.3ds2.statusReasonCode - la valeur non modifiée de l'identifiant unique de la transaction d'authentification 3DS2, telle qu'attribuée par le serveur d'annuaire dans le champ
authentication.3ds.transactionId
Test de votre intégration
Vous pouvez tester votre intégration à l'aide de votre profil de commerçant de test (votre identifiant de commerçant préfixé par « TEST »). Cette rubrique fournit des détails sur les numéros de carte de test qui peuvent être utilisés pour déclencher une réponse spécifique.
Authentification du payeur
Pour déclencher une réponse Authenticate Payer (Authentifier le payeur) indiquant que l'émetteur a accordé une dispense que vous avez demandée, procédez comme suit :
- Soumettez une demande d'authentification du payeur avec :
authentication.psd2.exemptiondéfini sur l'une des valeurs suivantes :
LOW_RISKLOW_VALUE_PAYMENTSECURE_CORPORATE_PAYMENT
sourceOfFunds.provided.card.number=5506900140100107 (Mastercard), 4532249999999388 (Visa)
- Cela se traduira par une réponse Authenticate Payer (Authentifier le payeur) avec :
authentication.psd2.exemptiondéfini sur la valeur fournie dans la requête, c'est-à-dire l'un des éléments suivants :
LOW_RISKLOW_VALUE_PAYMENTSECURE_CORPORATE_PAYMENT
transaction.authenticationStatus=AUTHENTICATION_EXEMPTresponse.gatewayRecommendation=PROCEEDresponse.gatewayCode=APPROVEDorder.status=AUTHENTICATION_NOT_NEEDEDauthentication.3ds2.transactionStatus=N(Mastercard) ouN(Visa)authentication.3ds2.statusReasonCode=81(Mastercard uniquement)authentication.3ds2.statusReasonCode=89(Visa uniquement)authentication.3ds.acsEci=06(Mastercard) ou07(Visa)authentication.3ds.authenticationToken
- Procédez au paiement en soumettant une demande Authorize (Autoriser) ou Pay (Payer) sur cette commande.
Transaction de paiement
Pour déclencher une réponse Authorize (Autoriser) ou Pay (Payer) indiquant que le paiement a été refusé par l'émetteur parce qu'une SCA est requise, procédez comme suit :
- Soumettez une demande Authorize (Autoriser) ou Pay (Payer) avec :
sourceOfFunds.provided.card.number=5506900140100503 (Mastercard), 4532249999994628 (Visa)
- Cela se traduira par une réponse Authorize (Autoriser) ou Pay (Payer) avec :
authentication.psd2.exemptiondéfini sur la valeur fournie dans la requête, c'est-à-dire l'un des éléments suivants :
LOW_RISKLOW_VALUE_PAYMENTSECURE_CORPORATE_PAYMENT
result=FAILUREresponse.gatewayRecommendation=ATTEMPT_WITH_AUTHENTICATIONresponse.gatewayCode=DECLINEDorder.authenticationStatus=AUTHENTICATION_REQUIRED
Questions fréquentes
J'ai des ententes de paiement existantes pour les paiements récurrents ou d'autres paiements initiés par le commerçant. Dois-je à nouveau effectuer l'authentification du payeur pour toutes mes ententes ?
Vous n'avez pas besoin d'authentifier à nouveau le payeur pour une telle entente. Les systèmes ont des règles pour la période de transition.
Comment procéder si j'utilise une session et que la session contient une dispense, mais que le paiement a été refusé par l'émetteur car il n'est pas conforme à la SCA PSD2 ?
Lorsque la commande comporte un paiement qui a été rejeté par l'émetteur, la passerelle ignorera la dispense figurant dans la session car le paiement n'est pas conforme à la SCA PSD2. Par conséquent, il n'est pas nécessaire de retirer la dispense de la session avant d'effectuer l'authentification 3DS pour la commande et de soumettre à nouveau le paiement.
Comment puis-je rechercher et afficher les détails de la dispense PSD2 pour les commandes et les transactions dans Merchant Administration ?
Lors de la recherche d'une commande ou d'une transaction dans Merchant Administration via la recherche de commandes et de transactions, vous pouvez utiliser le terme de recherche suivant :
- « Statut d'authentification du payeur » : « Authentification réussie » pour trouver toutes les commandes authentifiées avec succès.
- « Statut d'authentification du payeur » : « Dispensé d'authentification » pour trouver toutes les commandes pour lesquelles une dispense a été demandée ou appliquée.
Le statut d'authentification de la commande est affiché sur la page Détails de la commande et de la transaction dans Merchant Administration dans le champ « Statut d'authentification du payeur » dans la rubrique « Détails de l'authentification du payeur ». Le champ aura la valeur « Dispensé d'authentification » si une dispense a été demandée ou appliquée à la commande.
Le statut d'authentification de la transaction est affiché sur la page Détails de la commande et de la transaction dans Merchant Administration dans la rubrique « Transactions ». Sélectionnez « Afficher » pour la transaction que vous souhaitez voir. Le champ « Authentification du payeur - statut d'authentification » aura la valeur « Authentification exemptée » si une dispense a été demandée ou appliquée à la transaction.