Utilisation du client JavaScript (formulaire embarqué)

Cas d'usage concernés

Cinématique

Initialisation de la session de paiement

Ce cas d’utilisation nécessite la création d’un formToken via un appel au Web Service Charge/CreatePayment.

Aucun champ spécifique n'est nécessaire pour bénéficier de la protection 3D Secure.

En fonction du cas d'usage (c'est à dire de la valeur du champ formAction), une authentification forte peut être obligatoire. Dans ce cas, le champ strongAuthentication est ignoré.

Cas d'usage formAction Authentification forte requise?
Paiement simple PAYMENT

Le type d'authentification dépend de la décision de l'émetteur.

Pour les paiements en euro, le marchand peut demander une exemption à l'authentification forte si le montant est inférieur à 30€ et si la boutique possède l'option "Frictionless 3DS2".

Pour les paiements réalisés dans une autre devise, le marchand peut demander une authentification sans interaction du porteur si la boutique possède l'option "Frictionless 3DS2".

Paiement par alias PAYMENT Authentification forte et saisie du CVV requises.
Enregistrement de la carte pendant le paiement REGISTER_PAY Authentification forte requise.
Proposition d'enregistrement de la carte pendant le paiement ASK_REGISTER_PAY Authentification forte requise uniquement si l'acheteur accepte d'enregistrer son moyen de paiement.

Sinon, le comportement est identique à la valeur PAYMENT.

Paiement par wallet acheteur CUSTOMERWALLET Authentification forte requise uniquement si l'acheteur accepte d'enregistrer son moyen de paiement ou s'il utilise une carte déjà enregistrée.

Dans tous les autres cas, le comportement est identique à la valeur PAYMENT.

Analyse de la réponse

A la fin de l'opération, la plateforme retourne un objet Payment à l'URL de notification du site marchand et au client JavaScript.

Voici la liste des attributs décrivant, par cas d'usage, le résultat de l'authentification du porteur :

Cas d'usage Champs retournés
Transaction avec authentification forte réussie
  • authenticationResponse.value.status = SUCCESS : Authentification réussie.
  • authenticationResponse.value.authenticationType = CHALLENGE (Valeur retournée en 3DS1 et 3DS2).
  • authenticationResponse.value.commerceIndicator = 5 (Visa ou AMEX) ou 02 (Mastercard).
  • authenticationResponse.value.extension.authenticationType = THREEDS_V1 ou THREEDS_V2.
  • transactionDetails.liabilityShift = YES : Le paiement est garanti.
  • transactions.effectiveStrongAuthentication = ENABLED : Le porteur s'est authentifié avec succès.
Transaction avec authentification frictionless réussie, le marchand dispose de l'option "Frictionless 3DS2" et a demandé une authentification sans interaction du porteur.
  • authenticationResponse.value.status = SUCCESS : Authentification réussie.

  • authenticationResponse.value.authenticationType = FRICTIONLESS.

  • authenticationResponse.value.commerceIndicator = 5 (Visa ou AMEX) ou 02 (Mastercard).
  • authenticationResponse.value.extension.authenticationType = THREEDS_V2.
  • transactionDetails.liabilityShift = NO : Le paiement n'est pas garanti.

  • transactions.effectiveStrongAuthentication = ENABLED : Le porteur s'est authentifié avec succès.

Transaction avec authentification frictionless réussie, le marchand n'a pas demandé une authentification sans interaction du porteur.
  • authenticationResponse.value.status = SUCCESS : Authentification réussie.

  • authenticationResponse.value.authenticationType = FRICTIONLESS.

  • authenticationResponse.value.commerceIndicator = 5 (Visa ou AMEX) ou 02 (Mastercard).
  • authenticationResponse.value.extension.authenticationType = THREEDS_V2.
  • transactionDetails.liabilityShift = YES : Le paiement est garanti.

  • transactions.effectiveStrongAuthentication = ENABLED : Le porteur s'est authentifié avec succès.
Transaction avec authentification 3D Secure en échec
  • authenticationResponse.value.status = FAILED : Erreur d’authentification.

  • authenticationResponse.value.authenticationType = CHALLENGE.

  • authenticationResponse.value.commerceIndicator = null
  • authenticationResponse.value.extension.authenticationType = THREEDS_V1 ou THREEDS_V2.
  • authenticationResponse.value.reason.code = CARD_AUTHENTICATION_FAILED : Refus de l’authentification par l’émetteur.
  • transactionDetails.liabilityShift = null : Le paiement n'est pas garanti.

  • transactions.effectiveStrongAuthentication = DISABLED : l'authentification du porteur est en échec.

Carte non enrôlée
  • authenticationResponse.value.status = NOT_ENROLLED : Porteur non enrôlé.

  • authenticationResponse.value.authenticationType = null

  • authenticationResponse.value.commerceIndicator = null
  • authenticationResponse.value.extension.authenticationType = THREEDS_V1.
  • transactionDetails.liabilityShift = NO : Le paiement n'est pas garanti.

  • transactions.effectiveStrongAuthentication = DISABLED : l'authentification du porteur est en échec.