PCI/Charge/VerifyPaymentMethod (PCI)
L’opération PCI/Charge/VerifyPaymentMethod est un Web Service de l’API REST. Il permet aux marchands certifiés PCI-DSS de vérifier la validité d'une carte. Si la carte est enrôlée, une authentification 3D Secure est réalisée.
Ce Web Service accepte en entrée les données de la carte et retourne le détail de la transaction de vérification.
Ce Web Service permet de réaliser une authentification 3D Secure lors de la vérification du moyen de paiement. 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 vérification de carte PCI
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: "EUR" pour l'euro.
Format
Valeurs possibles
Les valeurs possibles sont les suivantes:
Devise | CODIFICATION ISO 4217 | Unité fractionnaire |
---|---|---|
Dollar australien (036) | AUD | 2 |
Dollar canadien (124) | CAD | 2 |
Franc suisse (756) | CHF | 2 |
Couronne danoise (208) | DKK | 2 |
Euro (978) | EUR | 2 |
Livre Sterling (826) | GBP | 2 |
Yen (392) | JPY | 0 |
Couronne norvégienne (578) | NOK | 2 |
Couronne suédoise (752) | SEK | 2 |
Dollar des États-Unis (840) | USD | 2 |
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
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.
Une authentification forte est requise, lors de l'enregistrement d'une carte. Utilisez le champ formAction avec les valeurs suivantes:
- REGISTER_PAY : pour effectuer un paiement avec l'enregistrement du moyen de paiement.
- ASK_REGISTER_PAY: pour effectuer un paiement avec une demande d'enregistrement du moyen de paiement.
- CUSTOMER_WALLET : pour enregistrer le moyen de paiement.
Dans ce cas, le champ strongAuthentication prend automatiquement la valeur CHALLENGE_MANDATE.
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 |
|
|
Tableau des exemptions (valeur DISABLED)
Exemption | Description |
---|---|
Transactions à faible montant | Pour les paiements en euro, vous pouvez demander
une exemption à l'authentification forte :
|
LRM (Low Risk Merchant) |
Le programme LRM (Low Risk Merchant) de CB a pour objectif de répondre aux attentes des marchands à très faible risque et à la volumétrie importante (120.000 transactions CB / an). Vous pouvez demander une exemption à l'authentification forte : |
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
- Pour MB WAY:
Seul, le format international est accepté.
Par exemple, +351 est l'indicatif international du Portugal. Le numéro portugais 21 031 27 00 devient +351210312700.
Si le champ ne respecte pas ce format ou est absent, une nouvelle saisie sera proposée à l'acheteur.
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
address
Chemin: customer.shippingDetails.address
Adresse de livraison.
Attention : Les caractères > et < ne sont pas autorisés.
Format
address2
Chemin: customer.shippingDetails.address2
Deuxième ligne d'adresse de livraison.
Attention : Les caractères > et < ne sont pas autorisés.
Format
category
Chemin: customer.shippingDetails.category
Type de client.
Format
Valeurs possibles
valeurs | Description |
---|---|
PRIVATE | Client de type Particulier |
COMPANY | Client de type Société |
city
Chemin: customer.shippingDetails.city
Ville de livraison.
Format
country
Chemin: customer.shippingDetails.country
Pays de livraison (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 |
deliveryCompanyName
Chemin: customer.shippingDetails.deliveryCompanyName
Nom de la société qui délivre le produit.
Format
district
Chemin: customer.shippingDetails.district
Quartier de l'adresse de facturation.
Format
firstName
Chemin: customer.shippingDetails.firstName
Prénom du destinataire.
Format
identityCode
Chemin: customer.shippingDetails.identityCode
Identifiant national. Permet d'identifier de façon unique chaque citoyen au sein d'un pays.
Format
lastName
Chemin: customer.shippingDetails.lastName
Nom de l'acheteur.
Format
legalName
Chemin: customer.shippingDetails.legalName
Raison sociale en cas de livraison en entreprise.
Format
phoneNumber
Chemin: customer.shippingDetails.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
shippingMethod
Chemin: customer.shippingDetails.shippingMethod
Mode de livraison.
Format
Valeurs possibles
Valeur | Description |
---|---|
RECLAIM_IN_SHOP | Retrait de marchandise en magasin. |
RELAY_POINT | Utilisation d'un réseau de points de retrait tiers (Kiala, Alveol, etc). |
RECLAIM_IN_STATION | Retrait dans un aéroport, une gare ou une agence de voyage. |
PACKAGE_DELIVERY_COMPANY | Livraison par transporteur (Colissimo, UPS, etc). |
ETICKET | Emission d'un billet électronique, téléchargement de produit virtuel. |
CARD_HOLDER_ADDRESS | Livraison chez l'acheteur. Réservé à un usage futur. |
VERIFIED_ADDRESS | Livraison à une adresse vérifiée. Réservé à un usage futur. |
NOT_VERIFIED_ADDRESS | Livraison à une adresse non vérifiée. Réservé à un usage futur. |
SHIP_TO_STORE | Livraison en magasin. Réservé à un usage futur. |
DIGITAL_GOOD | Livraison digitale. Réservé à un usage futur. |
ETRAVEL_OR_ETICKET | Billet électronique. Réservé à un usage futur. |
OTHER | Autre: Réservé à un usage futur. |
PICKUP_POINT | Retrait en point relais. Réservé à un usage futur. |
AUTOMATED_PICKUP_POINT | Retrait en point relais automatique. Réservé à un usage futur. |
shippingSpeed
Chemin: customer.shippingDetails.shippingSpeed
Délai de livraison.
Format
Valeurs possibles
Exemples de valeurs possibles:
Valeur | Description |
---|---|
STANDARD | Livraison standard |
EXPRESS | Livraison en moins de 24h |
PRIORITY | Livraison Prioritaire (Click & Collect) |
state
Chemin: customer.shippingDetails.state
Région de l'adresse de facturation.
Format
streetNumber
Chemin: customer.shippingDetails.streetNumber
Numéro de rue de l'adresse de livraison.
Caractères acceptés:
- Caractères alphabétiques (de "A" à "Z" et de "a" à "z")
- Espace
Format
zipCode
Chemin: customer.shippingDetails.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 (le centime pour l'euro).
Exemple: 30050 pour 300,50 EUR.
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 (le centime pour l'euro).
Exemple: 30050 pour 300,50 EUR.
Format
taxAmount
Chemin: customer.shoppingCart.taxAmount
Montant des taxes pour l’ensemble de la commande exprimé dans sa plus petite unité monétaire (le centime pour l'euro).
Exemple: 30050 pour 300,50 EUR.
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 (le centime pour l'euro).
Exemple: 30050 pour 300,50 EUR.
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 12,34 EUR). |
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
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 (1 par défaut).
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 de type VERIFICATION générée. |
AuthenticationResponseData | Objet retourné si une authentification 3DS est nécéssaire |
Voir la référence des réponses pour plus de détails.