PCI/Charge/CreateToken (PCI)
L’opération PCI/Charge/CreateToken est un Web Service de l’API REST. Il permet de créer un nouvel alias à partir d'un numéro de carte.
En mode PCI-DSS, vous pouvez renseigner directement les informations de carte dans le web service.
Une transaction de vérification est créée en même temps que le token. Le token se trouvera à l'intérieur de l'objet Transaction, dans le paramètre paymentMethodToken.
Pour une utilisation non-PCI avec le formulaire embarqué, rendez-vous ici : Charge/CreateToken(non-PCI).
A noter que la précédente version dépréciée de ce web service peut-être trouvée ici : PCI/Charge/CreateToken (depréciée)
Ce Web Service permet de réaliser une authentification 3D Secure lors la création de l'alias. Il est donc nécessaire de prendre connaissance du fonctionnement de cette fonctionnalité. Pour voir comment l'intégrer, la documentation de référence est présente ici: Service de création d'alias PCI
Point important concernant les paiements CB
Avec l'application de la DSP2, les émetteurs peuvent refuser la création de l'alias si l'authentification 3D Secure n'a pas été réalisée. Ce comportement s'appelle "Soft Decline".
Dans le cas d'un "Soft Decline" le champ transactionDetails.cardDetails.authorizationResponse.authorizationResult est valorisé à 81. Il est de la responsabilité du marchand d'initier une nouvelle création d'alias avec une authentification 3D secure.
Paramètres d'entrée
contrib
Nom de la solution e-commerce utilisée sur le site marchand ainsi que son numéro de version.
Format
currency
Devise du paiement. Code alphabétique en majuscule selon la norme ISO 4217 alpha-3.
Exemple: "XPF" pour le franc CFP.
Format
Valeurs possibles
Les valeurs possibles sont les suivantes:
Devise | CODIFICATION ISO 4217 | Unité fractionnaire |
---|---|---|
Franc CFP (953) | XPF | 0 |
ipnTargetUrl
Vous pouvez surcharger l’URL de notification instantanée (également appelée IPN) dans le formulaire dans le cas où vous utilisez une seule boutique pour différents canaux de ventes, différentes typologies de paiement, différentes langues etc...
Format
orderId
Référence de la commande définie par le marchand. Ne prend pas en charge les caractères UTF-8.
Format
metadata
Valeurs personnalisées rattachées à la transaction, au format json.
Exemple d'appel
Par exemple, pour passer une valeur personnalisée, ajoutez à votre requête :
{ "metadata": { "MyValueKey": "1234" } }
Cette valeur sera retournée dans l'objet transaction nouvellement créé.
Vous pouvez aussi utiliser les metadatas "orderInfo", "orderInfo2" et "orderInfo3" pour transmettre des informations additionnelles sur la commande.
Ces données seront ensuite visibles dans l'onglet Extra du détail de la transaction depuis votre
Format
fingerPrintId
Ce champ est utilisé par les marchands qui implémentent l'analyseur de risque dans leur page de paiement. Il permet de transmettre l'identifiant de session (ou fingerPrint Id) à la plateforme de paiement pour finaliser l'analyse de risque.
Les analyseurs de risque supportés sont :
- NOTO
- Konduto
- Cybersource
- MonitorPlus
- ClearSale
Dans le cas de l'analyseur de risque ClearSale ce champ a une taille fixe de 128 caractères et peut contenir des majuscules, des minuscules, des chiffres ou des tirets ([A-Z][a-z], 0-9, _, -).
Dans les autres cas il est recommandé de renseigner un UUID
standard d'une taille de 36 caractères. Ex: dd7a3898-2e1b-40d0-aaf7-5482c73bf0c4
Format
paymentMethodType
Chemin: paymentForms.paymentMethodType
Type de moyen de paiement. Exemple: PAYCONIQ
Format
paymentForms.pan
Le PAN (Primary Account Number) est le numéro principal de la carte généralement composé de 16 chiffres).
Format
expiryMonth
Chemin: paymentForms.expiryMonth
Mois d’expiration sur 2 chiffres. Exemple : "09" pour septembre.
Format
expiryYear
Chemin: paymentForms.expiryYear
Année d’expiration sur 2 chiffres. Exemple : "25" pour 2025.
Format
securityCode
Chemin: paymentForms.securityCode
Code de sécurité de la carte.
Sa longueur peut varier entre 3 ou 4 chiffres en fonction du type de carte.
Format
paymentForms.brand
Marque de la carte.
Format
cardHolderName
Chemin: paymentForms.cardHolderName
Nom et prénom du porteur de la carte (recommandé)
Format
identityDocumentNumber
Chemin: paymentForms.identityDocumentNumber
Numéro de pièce d'identité de l'acheteur.
Le format dépend du type de pièce d'identité: de 7 à 13 caractères, chiffres, lettres et/ou points.
En Amérique Latine, ce paramètre peut être obligatoire pour certains acquéreurs.
Format
identityDocumentType
Chemin: paymentForms.identityDocumentType
Type de pièce d'identité.
Format
customer.reference
Identifiant de l’acheteur chez le marchand.
Format
customer.email
Adresse e-mail de l'acheteur.
- Spécifications sur la structure de l'e-mail : RFC-2822
Format
customer.ipAddress
Adresse IP de l'acheteur.
Format
address
Chemin: customer.billingDetails.address
Adresse de facturation.
Attention : Les caractères > et < ne sont pas autorisés.
Format
address2
Chemin: customer.billingDetails.address2
Informations complémentaires sur l'adresse de facturation.
Attention : Les caractères > et < ne sont pas autorisés.
Format
category
Chemin: customer.billingDetails.category
Type de client.
Format
Valeurs possibles
valeurs | Description |
---|---|
PRIVATE | Client de type Particulier |
COMPANY | Client de type Société |
cellPhoneNumber
Chemin: customer.billingDetails.cellPhoneNumber
Téléphone portable de l'acheteur.
Accepte tous les formats:
Exemples:
- 0623456789
- +33623456789
- 0033623456789
- (+34) 824 65 43 21
- 87 77 12 34
Format
city
Chemin: customer.billingDetails.city
Ville de facturation.
Format
country
Chemin: customer.billingDetails.country
Pays de l'acheteur (en majuscule, suivant la norme ISO 3166-1 alpha-2).
Format
Valeurs possibles
Exemples de valeurs possibles :
Pays | Code |
---|---|
AUTRICHE | AT |
BRESIL | BR |
CORSE | FR |
COTE D'IVOIRE | CI |
FRANCE | FR |
GUADELOUPE | GP |
INDE | IN |
MARTINIQUE | MQ |
NOUVELLE-CALÉDONIE | NC |
ST-PIERRE-ET-MIQUELON | PM |
POLYNESIE FRANCAISE | PF |
district
Chemin: customer.billingDetails.district
Quartier de l'adresse de facturation.
Format
firstName
Chemin: customer.billingDetails.firstName
Prénom de l'acheteur.
Format
identityCode
Chemin: customer.billingDetails.identityCode
Identifiant national. Permet d'identifier de façon unique chaque citoyen au sein d'un pays.
Format
identityType
Chemin: customer.billingDetails.identityType
Type de pièce d'identité.
Format
language
Chemin: customer.billingDetails.language
Code de la langue de l'acheteur, selon la norme norme ISO 639-1.
Permet de spécifier la langue dans laquelle sont envoyés les e-mails de confirmation de paiement.
L'objet device et ses attributs ne sont pas requis si paymentSource est valorisé à MOTO, CC ou OTHER ou si l'objet authenticationDetails est renseigné.
Format
Valeurs possibles
Exemples de valeurs possibles:
Langue | Code |
---|---|
Allemand (Allemagne) | DE |
Anglais (Royaume Uni) | EN |
Anglais (Etats-Unis ) | EN |
Chinois (Traditionnel) | ZH |
Espagnol (Espagne) | ES |
Espagnol (Chili) | ES |
Français (France) | FR |
Italien (Italie) | IT |
Japonais (Japon) | JP |
Néerlandais (Pays-Bas) | NL |
Polonais (Pologne) | PL |
Portugais (Brésil) | PT |
Portugais (Portugal) | PT |
Russe (Russie) | RU |
lastName
Chemin: customer.billingDetails.lastName
Nom de l'acheteur.
Format
legalName
Chemin: customer.billingDetails.legalName
Raison sociale.
Format
phoneNumber
Chemin: customer.billingDetails.phoneNumber
Numéro de téléphone de l'acheteur.
Accepte tous les formats:
Exemples:
- 0123456789
- +33123456789
- 0033123456789
- (00.571) 638.14.00
- 40 41 42 42
Format
state
Chemin: customer.billingDetails.state
Région (état) de l'adresse de facturation. Il est recommandé mais non obligatoire de passer la valeur en ISO-3166-2.
Format
streetNumber
Chemin: customer.billingDetails.streetNumber
Numéro de rue de l'adresse de facturation.
Caractères acceptés:
- Caractères alphabétiques (de "A" à "Z" et de "a" à "z")
- Espace
Format
title
Chemin: customer.billingDetails.title
Civilité de l’acheteur.
Exemples:
- Mr
- M.
- Mme
Format
zipCode
Chemin: customer.billingDetails.zipCode
Code postal de l'adresse de facturation.
Format
insuranceAmount
Chemin: customer.shoppingCart.insuranceAmount
Montant de l’assurance pour l’ensemble de la commande exprimé dans sa plus petite unité monétaire .
Exemple: 30050 pour 30050 XPF.
Format
shippingAmount
Chemin: customer.shoppingCart.shippingAmount
Montant des frais de livraison pour l’ensemble de la commande exprimé dans sa plus petite unité monétaire .
Exemple: 30050 pour 30050 XPF.
Format
taxAmount
Chemin: customer.shoppingCart.taxAmount
Montant des taxes pour l’ensemble de la commande exprimé dans sa plus petite unité monétaire .
Exemple: 30050 pour 30050 XPF.
Format
cartItemInfo
Chemin: customer.shoppingCart.cartItemInfo
cardItemInfo est une liste qui contient des objets Customer/ShoppingCartItemInfo.
Il permet de décrire chaque article du panier.
Format
productAmount
Chemin: customer.shoppingCart.cartItemInfo.productAmount
Montant du produit exprimé dans sa plus petite unité monétaire .
Exemple: 30050 pour 30050 XPF.
Format
productLabel
Chemin: customer.shoppingCart.cartItemInfo.productLabel
Nom du produit.
Format
productQty
Chemin: customer.shoppingCart.cartItemInfo.productQty
Quantité de produit.
Format
productRef
Chemin: customer.shoppingCart.cartItemInfo.productRef
Référence produit.
Format
productType
Chemin: customer.shoppingCart.cartItemInfo.productType
Type du produit.
Valeurs possibles
Valeur | Description |
---|---|
FOOD_AND_GROCERY | Produits alimentaires et d'épicerie |
AUTOMOTIVE | Automobile / Moto |
ENTERTAINMENT | Divertissement / Culture |
HOME_AND_GARDEN | Maison et jardin |
HOME_APPLIANCE | Equipement de la maison |
AUCTION_AND_GROUP_BUYING | Ventes aux enchères et achats groupés |
FLOWERS_AND_GIFTS | Fleurs et cadeaux |
COMPUTER_AND_SOFTWARE | Ordinateurs et logiciels |
HEALTH_AND_BEAUTY | Santé et beauté |
SERVICE_FOR_INDIVIDUAL | Services à la personne |
SERVICE_FOR_BUSINESS | Services aux entreprises |
SPORTS | Sports |
CLOTHING_AND_ACCESSORIES | Vêtements et accessoires |
TRAVEL | Voyage |
HOME_AUDIO_PHOTO_VIDEO | Son, image et vidéo |
TELEPHONY | Téléphonie |
Format
productVat
Chemin: customer.shoppingCart.cartItemInfo.productVat
Type du produit.
Montant de la taxe sur le produit (dans la plus petite unité de la devise).
Valeurs possibles
Valeur | Description |
---|---|
Un nombre entier | Montant de la transaction. Sa valeur doit être un entier positif (ex: 1234 pour 1234 XPF). |
Un nombre décimal, inférieur à 100 | Pourcentage appliqué sur le montant. Exemples : 20.0 ou 19.6532 |
Pour exprimer un pourcentage appliqué sur le montant du produit concerné, la valeur doit avoir au maximum 4 chiffres après la virgule. La décimale est obligatoire pour exprimer un pourcentage. La décimale est marquée par le caractère ".".
Format
strongAuthentication
strongAuthentication permet d'indiquer la préférence du marchand au sujet de l'authentification de l'acheteur.
- Sans interaction du porteur (frictionless).
- Avec interaction du porteur (authentification forte ou challenge).
- Pas de préférence du marchand.
Lors de l'enregistrement d'une carte, une authentification forte est requise, sans tenir compte de la préférence du marchand.
Cas d'utilisation | Valeurs possibles |
---|---|
CHALLENGE: Avec interaction du porteur |
|
| |
| |
FRICTIONLESS Sans interaction du porteur
Option "Frictionless 3DS2" obligatoire |
Si vous ne disposez pas de l'option "Frictionless 3DS2", le choix de la préférence est délégué à l'émetteur de la carte (No Preference). Si la demande de frictionless est acceptée, la transaction ne bénéficie pas du transfert de responsabilité en cas de contestation du porteur. |
Pas de préférence du marchand |
|
|
Format
mid
Chemin: transactionOptions.cardOptions.mid
Numéro de contrat commerçant. Si ce champ est renseigné, veillez à utiliser le bon contrat en fonction du réseau de la carte.
Un contrat CB ne peut être utilisé pour une transaction AMEX.
Format
paymentSource
Chemin: transactionOptions.cardOptions.paymentSource
Origine du paiement.
Format
Valeurs possibles
Les valeurs possibles sont les suivantes:
Valeur | Description |
---|---|
EC | E-Commerce: les données du moyen de paiement sont saisies par l'acheteur. Cette valeur permet d'avoir une authentification forte lors du paiement. |
MOTO | MAIL OR TELEPHONE ORDER: Saisie réalisée par un opérateur. Les informations du moyen de paiement sont transmises par courrier ou par e-mail. Nécessite un contrat de type VAD. |
CC | Call Center: paiement effectué via un centre d’appel. Nécessite un contrat de type VAD. |
OTHER | Autre canal de vente. Valeur de sortie retournée pour les paiements réalisés depuis le |
Absent ou null | La valeur par défaut est "EC". |
retry
Chemin: transactionOptions.cardOptions.retry
Nombre de nouvelles tentatives disponibles en cas de refus de paiement (3 par défaut).
Format
name
Chemin: authenticationDetails.protocol.name
Nom du protocole d'authentification du porteur de carte.
Valeurs possibles
Valeur | Description |
---|---|
THREEDS | Protocole 3D Secure |
Format
version
Chemin: authenticationDetails.protocol.version
Version du protocole d'authentification du porteur de carte.
Valeurs possibles
Valeur | Description | Protocole compatible |
---|---|---|
2 | A renseigner si la version exacte n'est pas connue. Dans ce cas la dernière version supportée en 3D Secure 2 par la plateforme de paiement sera considérée | Tous |
1.0.2 | Version 1.0.2 | THREEDS |
2.1.0 | Version 2.1.0 | THREEDS |
2.2.0 | Version 2.2.0 | THREEDS |
Format
directoryServer
Chemin: authenticationDetails.protocol.directoryServer
Nom du réseau DS sur lequel l'authentification s'est effectué.
Valeurs possibles
NOM DU PROTOCOLE | VALEUR DE DIRECTORYSERVER | NOM DU RESEAU |
---|---|---|
THREEDS | CB | Réseau Carte Bancaire |
THREEDS | AMEX | Réseau American Express (Safekey) |
MASTERCARD | Réseau Mastercard | |
VISA | Réseau Visa | |
ELO | Réseau Elo (Brésil) | |
DINERS | Réseau Diners | |
DISCOVER | Réseau Discover | |
ELO | Réseau Elo |
Format
challengePreference
Chemin: authenticationDetails.protocol.challengePreference
Indique si le commerçant a demandé un challenge ou pas.
Valeurs possibles
Valeur | Carte 3DS2 |
---|---|
NO_PREFERENCE | Le choix de la préférence est délégué à l'émetteur de la carte. |
NO_CHALLENGE_REQUESTED | Permet de demander une authentification sans interaction (frictionless) |
CHALLENGE_REQUESTED | Permet de demander une authentification forte pour la transaction. |
CHALLENGE_MANDATED | Permet d'indiquer que pour des raisons réglementaires, une authentification forte est requise pour la transaction. |
DATA_ONLY | Permet de demander une authentification sans interaction, prise en charge par le DS au lieu de l'ACS de la banque émettrice. La transaction ne bénéficiera pas du transfert de responsabilité. L'authentification sera désactivée si le réseau n'est pas compatible avec cette fonctionnalité. Le service PCI/Charge/Authenticate retourne un code erreur INT_808, si le champ transactionCategory n'est pas valorisé à PAYMENT . |
Format
authenticationType
Chemin: authenticationDetails.authenticationType
Le type d'authentification qui a eu lieu.
Valeurs possibles
Valeur | Description |
---|---|
FRICTIONLESS | Authentification en mode Frictionless, c'est à dire de manière transparente pour le client |
CHALLENGE | Authentification avec Challenge, le client a dû s'authentifier explicitement auprès de l'ACS |
DATA_ONLY | Authentification prise en charge par le DS sans interraction du client |
Format
status
Chemin: authenticationDetails.status
Le statut d'authentification, c'est à dire le résultat positif/négatif de l'authentification.
Valeurs possibles
Valeur | Description |
---|---|
ATTEMPT | Preuve de tentative d'authentification quand l'authentification n'est pas disponible |
ENROLLED_UNAVAILABLE | Impossible d'obtenir le statut d'enrôlement |
FAILED | Authentification erronée |
NOT_ENROLLED | Carte non enrôlée |
SUCCESS | Authentification réussie |
UNAVAILABLE | L'authentification n'a pas pu se terminer (erreur technique, etc.) |
DISABLED | Authentification débrayée. Le champ exemption devient obligatoire |
Format
commerceIndicator
Chemin: authenticationDetails.commerceIndicator
Le Commerce Indicator, appelé ECI (Electronic Commerce Indicator) pour le protocole 3DS. Indicateur renvoyé par l'ACS pour indiquer les résultats de la tentative d'authentification du porteur de carte.
En cas d'authentification sans paiement (cas de l'enregistrement d'une carte) Mastercard peut retourner les 2 valeurs suivantes :
VALEUR | DESCRIPTION |
---|---|
N0 | Not authenticated |
N2 | Authenticated |
Format
authenticationValue
Chemin: authenticationDetails.authenticationValue
Valeur d'authentification finale (en fonction du DS cette valeur peut s'appeler CAVV, AEVV ou AAV). Chaine de caractère encodée en base64 d'une taille de 28 caractères.
Format
dsScore
Chemin: authenticationDetails.dsScore
Score de l'authentification spécifié par le DS, uniquement pour le réseau CB. Voir : Guide d'intégration.
Format
authValueAlgorithm
Chemin: authenticationDetails.authValueAlgorithm
Algorithme utilisé pour calculer le champ authenticationValue. Ce champ concerne uniquement le réseau CB. Voir : Guide d'intégration.
Format
requestorName
Chemin: authenticationDetails.requestorName
RequestorName utilisé lors de l'authentification initiale. En général ce champ correspond au nom du marchand. Ce champ concerne uniquement le réseau CB. Voir : Guide d'intégration.
Format
dsTransID
Chemin: authenticationDetails.dsTransID
Identifiant de transaction du DS.
Format
acsTransID
Chemin: authenticationDetails.acsTransID
Identifiant de transaction de l'ACS.
Ce champ concerne uniquement le réseau CB. Voir : Guide d'intégration
Format
xid
Chemin: authenticationDetails.xid
Identifiant unique de la transaction.
Format
exemption
Chemin: authenticationDetails.exemption
Indique la raison justifiant l'absence d'authentification forte. (Requis en cas de statut DISABLED, ou en cas d'authentification FRICTIONLESS).
Valeurs possibles
valeurs | Description |
---|---|
LOW_VALUE | Transaction de faible montant (ex: montant inférieur à 30€ en Europe) |
ACQUIRER_TRA | Analyse de risques effectuée au préalable par l'acquéreur |
ISSUER_TRA | Analyse de risques effectuée au préalable par l'émetteur |
LOW_RISK_MERCHANT | Commerçant inscrit dans le programme LOW RISK MERCHANT CB |
OUT_OF_SCOPE | Authentification non requise car hors du scope RTS SCA |
DELEGATED_SCA | Authentification forte déléguée à un tiers. |
FIXED_RECURRING_PAYMENT | Paiement récurrent à montant fixe et durée déterminée |
TRUSTED_BENEFICIARY | Bénéficiaire de confiance |
AUTOMATIC_PAYMENT_MACHINES | Automate de paiement |
CORPORATE | Procédure de paiement sécurisé pour les entreprises |
OTHER_EXEMPTION | Autres cas d'usages exemptés d'authentification |
TECHNICAL_ERROR | Problème technique rendant impossible l'authentification |
Format
challengeCancelationIndicator
Chemin: authenticationDetails.challengeCancelationIndicator
Indicateur d'annulation de challenge reçu dans le RReq. (Valeur retournée par le DS en cas d'annulation de l'authentification).
Format
transactionStatusReason
Chemin: authenticationDetails.transactionStatusReason
Indique la raison de l'échec d'authentification. (Valeur retournée par le DS en cas d'échec d'authentification).
Format
companyType
Chemin: subMerchantDetails.companyType
Type de société du sous-marchand. Transmis par le facilitateur de paiement.
Des règles différentes peuvent s’appliquer selon l’acquéreur.
Ce champ sert souvent à préciser le type de Legal Number
de l'acheteur.
Format
legalNumber
Chemin: subMerchantDetails.legalNumber
Número légal du sous-marchand en fonction du champ companyType
. Transmis par le facilitateur de paiement.
Format
name
Chemin: subMerchantDetails.name
Raison sociale du sous-marchand. Transmis par le facilitateur de paiement.
Format
url
Chemin: subMerchantDetails.url
URL du sous-marchand. Transmis par le facilitateur de paiement.
Format
phoneNumber
Chemin: subMerchantDetails.phoneNumber
Numéro de téléphone du sous-marchand. Transmis par le facilitateur de paiement.
Format
address1
Chemin: subMerchantDetails.address1
Adresse du sous-marchand. Transmis par le facilitateur de paiement.
Format
address2
Chemin: subMerchantDetails.address2
Complément de l'adresse du sous-marchand. Transmis par le facilitateur de paiement.
Format
zip
Chemin: subMerchantDetails.zip
Code postal du sous-marchand. Transmis par le facilitateur de paiement.
Format
city
Chemin: subMerchantDetails.city
Ville du sous-marchand. Transmis par le facilitateur de paiement.
Format
country
Chemin: subMerchantDetails.country
Code pays de l'adresse du sous-marchand (norme ISO 3166 alpha-2). Transmis par le facilitateur de paiement.
Format
mcc
Chemin: subMerchantDetails.mcc
Code MCC du sous-marchand. Transmis par le facilitateur de paiement.
Format
mid
Chemin: subMerchantDetails.mid
Numéro de contrat (MID) du sous-marchand. Transmis par le facilitateur de paiement.
Format
softDescriptor
Chemin: subMerchantDetails.softDescriptor
Libellé (soft-descriptor) du sous-marchand qui apparaît sur le relevé d'opérations bancaires de l'acheteur. Transmis par le facilitateur de paiement.
Format
state
Chemin: subMerchantDetails.state
Région de l'adresse du sous-marchand. Transmis par le facilitateur de paiement.
Format
facilitatorId
Chemin: subMerchantDetails.facilitatorId
Identifiant du facilitateur de paiement. Transmis par le facilitateur de paiement.
Format
Référence de la réponse
Plusieurs réponses sont possibles en fonction du contexte:
Réponse | Contexte |
---|---|
Payment | Objet contenant la transaction générée. Cet objet est directement retourné lors d'un paiement par alias simple |
AuthenticationResponseData | Objet retourné si une authentification 3DS est nécéssaire |
Voir la référence des réponses pour plus de détails.