Bicis Doc
Bicis Doc
Bicis Doc
Guide d'implémentation
8. EXEMPLES EN PHP.......................................................................................................................217
8.1. createPayment.......................................................................................................................................... 229
8.2. findPayments............................................................................................................................................234
8.3. createToken..............................................................................................................................................236
8.4. createSubscription....................................................................................................................................238
8.5. cancelSubscription................................................................................................................................... 241
1. HISTORIQUE DU DOCUMENT
Version Auteur Date Commentaire
2.6 BNPP IRB 27/05/2019
Les méthodes suivantes seront dépréciées avec la mise en
place du 3DSv2: createPayment, verifyThreeDSEnrollment,
checkThreeDSAuthentication.
Ajout du champ paymentResponse.wallet.
Page - 5 / 256
API Webservices SOAP v5 - V 2.6
Page - 6 / 256
API Webservices SOAP v5 - V 2.6
Ce document et son contenu sont strictement confidentiels. Il n’est pas contractuel. Toute reproduction
et/ou distribution de ce document ou de toute ou partie de son contenu à une entité tierce sont
strictement interdites ou sujettes à une autorisation écrite préalable de BNPP IRB. Tous droits réservés.
Page - 7 / 256
API Webservices SOAP v5 - V 2.6
Pour toute question technique ou demande d'assistance, nos services sont disponibles du lundi au
vendredi, de 9h à 18h
par téléphone au :
25 30 85 85 si vous appelez du Burkina Faso
Pour faciliter le traitement de vos demandes, il vous sera demandé de communiquer votre identifiant de
boutique (numéro à 8 chiffres) .
Cette information est disponible dans l'e-mail d'inscription de votre boutique ou dans le Back Office
Marchand (menu Paramétrage > Boutique > Configuration).
Page - 8 / 256
API Webservices SOAP v5 - V 2.6
3.1. Sécurité
L'intégration de nos API Web Services SOAP requiert l'utilisation des dernières versions des protocoles de
communication TLS (Transport Layer Security) et HTTP.
L'utilisation de TLS version 1.2 ou supérieure est requise pour toutes les connexions HTTPS à destination
de la plateforme de paiement.
https://e-paiement-securite-bici.com/vads-ws/v5?wsdl
Remarque : si vous passez par un proxy pour vous connecter à Internet depuis un serveur applicatif,
veuillez-vous rapprochez de votre service informatique pour savoir s'il est nécessaire de configurer l'accès
à cette URL.
Page - 9 / 256
API Webservices SOAP v5 - V 2.6
Page - 10 / 256
API Webservices SOAP v5 - V 2.6
<soap:Header xmlns:soapHeader="http://v5.ws.vads.lyra.com/Header">
<soapHeader:shopId>12345678</soapHeader:shopId>
<soapHeader:requestId>04967dae-af01-43ff-a7d8-f3f228b9b1c2</soapHeader:requestId>
<soapHeader:timestamp>2014-10-31T16:38:19Z</soapHeader:timestamp>
<soapHeader:mode>TEST</soapHeader:mode>
<soapHeader:authToken>NxoFUSsTqmMjwaDzTXyCN4nNpMOVJKb5UxHdS9TBuTg=</soapHeader:authToken>
</soap:Header>
Le corps (Body)
Le corps du message SOAP est contenu dans une balise <Body> obligatoire.
Il contient les données échangées entre le client et le service sous la forme d'un fragment de document
XML. Ces données correspondent à la requête ou à la réponse.
Les messages échangés entre le marchand et la plateforme de paiement sont élaborés en respectant une
syntaxe précise (voir chapitre Spécifier les types de données).
Exemple de BODY :
Requête
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:v5="http://
v5.ws.vads.lyra.com/">
<soap:Header xmlns:soapHeader="http://v5.ws.vads.lyra.com/Header">
...
</soap:Header>
<soap:Body>
<myOperationRequest>
...
</myOperationRequest>
</soap:Body>
</soap:Envelope>
Page - 11 / 256
API Webservices SOAP v5 - V 2.6
Réponse
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
...
</env:Header>
<soap:Body>
<myOperationResponse>
<return>
...
<commonResponse>
<responseCode>0</responseCode>
<responseCodeDetail>Action successfully completed</responseCodeDetail>
...
</commonResponse>
...
</return>
</myOperationResponse>
</soap:Body>
</soap:Envelope>
Page - 12 / 256
API Webservices SOAP v5 - V 2.6
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope"/>
<soap:Body>
<soap:Fault>
<soap:Code>
<soap:Value xmlns:ns1="http://www.w3.org/2003/05/soap-envelope">ns1:Sender</soap:Value>
</soap:Code>
<soap:Reason>
<soap:Text xml:lang="en">CreateRequest.customerRequest.billingDetails.email: Adresse email mal
formée</soap:Text>
</soap:Reason>
<soap:Detail>
<requestId>43a61cf4-e467-490e-871e-d61604577cb0</requestId>
</soap:Detail>
</soap:Fault>
</soap:Body>
</soap:Envelope>
Ce mécanisme de gestion des exceptions permet d'identifier et corriger des données dont le format est
incorrect avant d'exécuter une opération.
Page - 13 / 256
API Webservices SOAP v5 - V 2.6
Le tableau ci-dessous récapitule les codes d'erreurs susceptibles d'être retournés dans l'attribut
responseCode :
Code d'erreur responseCodeDetail Description
0 Action successfully completed Le format de la requête est valide. Ne traduit pas pour
autant un paiement accepté.
1 Unauthorized request Action non autorisée.
2 Bad Parameter Attribut invalide.
3 Bad Request La requête n'a pu être traitée.
10 Transaction was not found Transaction non trouvée.
11 Bad transaction status Statut de la transaction incorrect.
12 Transaction already exists Transaction existe déjà.
13 Date is too far from current UTC date Mauvaise date (la valeur de l'attribut 'submissionDate' est
trop loin de la date actuelle).
14 Nothing has changed Aucun changement.
15 Too much results Trop de résultats.
16 Duplicate forbidden La transaction initiale a été refusée pour un motif interdisant
la duplication. Demandez au porteur de payer avec un autre
moyen de paiement.
20 Bad amount Montant invalide dans l'attribut 'amount'.
21 Unknown currency Devise invalide dans l'attribut 'currency'.
22 Unknown card type Type de carte inconnu.
23 Invalid Expiration Date Date invalide dans les attributs 'expiryMonth' et/ou
'expiryYear'.
24 CVV Mandatory Le 'cvv' est obligatoire.
25 Contract not found Numéro de contrat inconnu.
26 Invalid card number Le numéro de carte est invalide.
30 Payment token not found L'alias n'est pas trouvé.
31 Invalid payment token (cancelled, …) L'alias est invalide (Résilié, vide…).
32 SubscriptionID was not found Attribut 'subscriptionId' non trouvé.
33 Invalid Subscription Attribut 'rrule' invalide
ou
Abonnement déjà résilié
34 Payment token already exists L'alias existe déjà.
35 Payment token creation declined Création de l'alias refusé.
36 Payment token purged Attribut 'paymentToken' purgé.
40 Amount not authorized Attribut 'amount' non autorisé
41 Card range not found Plage de carte non trouvée
42 Not enough credit Le solde du moyen de paiement n'est pas suffisant.
43 No credit Le remboursement n'est pas autorisé pour ce contrat.
50 Brand not found Aucune brand localisée.
51 Merchant not enrolled Marchand non enrôlé.
52 Invalid ACS Signature Signature de l'ACS invalide.
53 Technical error 3DS Erreur technique 3DS.
54 Wrong Parameter 3DS Paramètre 3DS incorrect.
55 3DS Disabled 3DS désactivé.
56 PAN not found PAN non trouvé.
Page - 14 / 256
API Webservices SOAP v5 - V 2.6
ATTENTION: Même si responseCode est valorisé à 0, vous devez analyser les champs suivants afin de
déterminer si le paiement est réussi:
1. commonResponse.transactionStatusLabel pour connaître le statut de la transaction,
2. authorizationResponse.result pour connaître la raison du refus de la demande d'autorisation,
3. paymentResponse.paymentError pour connaître les autres raison du refus.
2 - Paramètre invalide
Ce code d'erreur est retourné lorsqu'un attribut est invalide. Il est accompagné d'une erreur de type
param qui fournit un complément d'informations sur l'attribut posant problème.
Code
Description Explication
d'erreur
33 Paramètre 'paymentSource' invalide dans Origine de la transaction invalide pour un abonnement.
le cas d'un abonnement Les valeurs possibles sont "EC", "MOTO", "CC" ou "OTHER".
34 Paramètre 'scheme' invalide dans le cas Type de carte invalide lors de la création d'un alias.
d'une création d'un alias
35 Paramètre phoneNumber' invalide Numéro de téléphone de l'acheteur invalide.
36 Paramètre 'email' invalide E-mail de l'acheteur invalide.
37 Paramètre 'zipCode' invalide Code postal de l'acheteur invalide.
38 Paramètre 'cellPhoneNumber' invalide Numéro de téléphone mobile de l'acheteur invalide.
Page - 15 / 256
API Webservices SOAP v5 - V 2.6
Code
Description Explication
d'erreur
50 Paramètre 'shopId' invalide Identifiant boutique mal renseigné.
51 Paramètre 'submissionDate' invalide Date et heure UTC de la transaction non renseignées.
66 Paramètre 'contractNumber' invalide Numéro de contract commerçant invalide.
82 Paramètre 'initialAmount' invalide Montant initial de l'abonnement invalide (inférieur à 0).
83 Paramètre 'initialAmountNumber' Nombre d’échéances auxquelles il faut appliquer le montant
invalide initialAmount.
Cet attribut est obligatoire si initialAmount est valorisé.
84 Paramètre effectDate' invalide Date d'effet de l'abonnement invalide. La date ne peut pas être dans
le passé.
85 Paramètre commission' invalide Paramètre non renseigné et obligatoire pour le Boleto au Brésil.
90 Paramètre 'enrolled' invalide Statut de l'enrôlement du porteur est invalide
92 Paramètre 'eci' invalide Indicateur de commerce electronique invalide
93 Paramètre 'xid' invalide Numéro de transaction 3DS invalide
94 Paramètre 'cavv' invalide Certificat de l'ACS invalide
95 Paramètre 'cavvAlgorithm' invalide Algorithme de vérification de l'authentification du porteur (cavv)
invalide
96 Paramètre 'brand' invalide Réseau de la carte invalide
101 Paramètre 'paymentOptionCode' invalide Code de l'option invalide.
102 Paramètre 'paymentOptionCode (invalid Date de validité de l'option de paiement invalide.
date)' invalide
103 Paramètre 'amount/optionCode Code de l'option de paiement incohérent vis-à-vis du montant.
(inconsistency)' invalide
104 Paramètre 'optionCode (not found) ' Code de l'option de paiement inconnu.
invalide
Exemple : Adresse e-mail manquante pour une opération où elle doit être renseignée.
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<shopId xmlns="http://v5.ws.vads.lyra.com/Header/">12345678</shopId>
<requestId xmlns="http://v5.ws.vads.lyra.com/Header/">222e970d-9c8b-466f-b672-7d830af18a8c</
requestId>
<timestamp xmlns="http://v5.ws.vads.lyra.com/Header/">2015-04-01T09:41:11Z</timestamp>
<mode xmlns="http://v5.ws.vads.lyra.com/Header/">TEST</mode>
<authToken xmlns="http://v5.ws.vads.lyra.com/
Header/">HW4+kJDlErT3g2z5KnUEjFxBPsg9NTjR6QOsXjfsKvk=</authToken>
</env:Header>
<soap:Body>
<ns2:createTokenResponse xmlns:ns2="http://v5.ws.vads.lyra.com/">
<createTokenResult>
<requestId>222e970d-9c8b-466f-b672-7d830af18a8c</requestId>
<commonResponse>
<responseCode>2</responseCode>
<responseCodeDetail>Error param 36: email</responseCodeDetail>
</commonResponse>
<authorizationResponse/>
</createTokenResult>
</ns2:createTokenResponse>
</soap:Body>
</soap:Envelope>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope"/>
<soap:Body>
<ns2:updatePaymentDetailsResponse xmlns:ns2="http://v5.ws.vads.lyra.com/">
<updatePaymentDetailsResult>
<requestId>024a5593-8537-46cf-afc3-fabb7c76bc97</requestId>
<commonResponse>
<responseCode>3</responseCode>
Page - 16 / 256
API Webservices SOAP v5 - V 2.6
Page - 17 / 256
API Webservices SOAP v5 - V 2.6
Au delà de 15 mois de non utilisation d'un alias, les données du titulaire du moyen de paiement sont
purgées (référentiel de sécurité PCI DSS - sécurité et protection des données bancaires).
99 - Erreur technique
Ce code d'erreur est retourné en cas d'une erreur technique interne.
Pour plus de renseignements, veuillez contacter le support technique.
Exemple : Adresse e-mail manquante pour une opération où elle doit être renseignée.
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<shopId xmlns="http://v5.ws.vads.lyra.com/Header/">12345678</shopId>
<requestId xmlns="http://v5.ws.vads.lyra.com/Header/">ca3d38d5-0344-461c-9f52-192482e09bda</
requestId>
<timestamp xmlns="http://v5.ws.vads.lyra.com/Header/">2015-04-01T09:47:58Z</timestamp>
<mode xmlns="http://v5.ws.vads.lyra.com/Header/">TEST</mode>
<authToken xmlns="http://v5.ws.vads.lyra.com/
Header/">d3W/6dtIebGUpReqzrS40KHEImEway6ixrpn05pSGLY=</authToken>
</env:Header>
<soap:Body>
<ns2:createTokenResponse xmlns:ns2="http://v5.ws.vads.lyra.com/">
<createTokenResult>
<requestId>ca3d38d5-0344-461c-9f52-192482e09bda</requestId>
<commonResponse>
<responseCode>99</responseCode>
</commonResponse>
<authorizationResponse>
<result>96</result>
</authorizationResponse>
</createTokenResult>
</ns2:createTokenResponse>
</soap:Body>
</soap:Envelope>
Page - 18 / 256
API Webservices SOAP v5 - V 2.6
3.4. Enchaîner des requêtes Web service (maintenir une même session
HTTP)
L’architecture de la plateforme de paiement repose sur un ensemble de serveurs avec répartition de
charge.
Pour assurer la continuité du processus, chaque requête associée à un même paiement dans un laps de
temps très court doit être réalisée avec la même session HTTP.
Pour cela, à chaque requête, une session est créée coté serveur. L’ID de la session est renvoyé dans l’en-
tête HTTP de la réponse. Il devra être retourné dans les requêtes suivantes afin que la requête soit traitée
par le même serveur, évitant ainsi à votre requête d’être rejetée car la transaction ne serait pas encore
disponible sur les autres serveurs.
Exemple d'application :
Vous souhaitez créer un paiement à remettre dans 30 jours en mode de validation manuelle.
Une fois le paiement accepté, vous décidez de changer la date de remise pour le lendemain et de valider
la transaction.
Pour réaliser cette opération :
Vous devez appeler le web service de création de paiement (createPayment).
La plateforme vérifie la présence d’un ID de session dans l’en-tête HTTP de votre requête.
Comme rien n’a été précisé, une nouvelle session et un nouvel ID sont créés.
La plateforme de paiement procède ensuite au traitement de votre requête et envoie sa réponse en
indiquant dans l’en-tête HTTP l’identifiant de session attribué ainsi que le nom du serveur ayant traité
la requête :
HTTP/1.1 200 OK
Date: Tue, 24 Feb 2015 11:37:06 GMT
Server: Apache
Set-Cookie: JSESSIONID=6qeoRHaVgOGr5avgh6lHnzEm.vadpayment01bdx;
Path=/vads-ws; Secure
Content-Length: 2711
Vary: Accept-Encoding,User-Agent Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Type: text/xml;charset=UTF-8
Page - 19 / 256
API Webservices SOAP v5 - V 2.6
La plateforme vérifie la présence d’un ID de session dans l’en-tête HTTP de votre requête.
La requête est ensuite envoyée au serveur ayant généré la session.
Si la session existe, elle est réutilisée, sinon une nouvelle session et un nouvel identifiant seront créés.
La plateforme de paiement procède au traitement de la requête et envoie sa réponse.
Remarque :
L’ID de session sera renvoyé dans l’en-tête HTTP de la réponse uniquement dans le cas où une nouvelle
session a été créée.
Il est donc conseillé de tester systématiquement la présence du cookie dans l’en-tête HTTP de la réponse
et d’utiliser l’ID de session présent avant d’enchainer un autre appel (getPaymentDetails par exemple).
Page - 20 / 256
API Webservices SOAP v5 - V 2.6
Un incident peut survenir à chaque étape et augmenter le temps du traitement (et donc implicitement le
temps d’attente pour l’acheteur).
Selon les délais d'attente paramétrés, vous pouvez ne pas recevoir de réponse alors que le traitement
asynchrone continue à s’exécuter côté plateforme de paiement.
Un temps de traitement long ne doit pas être considéré comme un paiement refusé.
Pour cette raison, vous devez configurer votre code pour gérer les problèmes potentiels pouvant survenir
avec la connexion à l'API SOAP.
Conseils
Le temps moyen de traitement d'une demande de paiement par la plateforme est inférieur à 5 secondes.
Vous devez définir un délai d'attente de 20 à 30 secondes côté acheteur.
Page - 21 / 256
API Webservices SOAP v5 - V 2.6
Les données véhiculées dans les messages peuvent être de différents types:
Types de données Description
boolean Un booléen ne peut avoir que deux réponses: true ou false.
Une réponse true peut aussi être yes ou 1.
Une réponse false peut aussi être no ou 0.
dateTime Représente un instant, généralement exprimé sous la forme d'une date ou d'une heure.
Contient une année, un mois, un jour, une heure, des minutes, des secondes et des millisecondes.
La valeur est exprimée en temps universel coordonné (UTC) et ISO 8601 - W3C.
Contrairement à l'heure locale, une date et une heure donnée en UTC est la même partout en même
temps.
Exemple : 2016-07-16T19:20Z
int Représente un nombre entier (integer) c'est-à-dire sans décimale.
long Représente un nombre entier (integer) codé sur 64 bits.
Ce type de données est utilisé lorsque le type de données int n'est pas assez grand (pour spécifier le
montant d'une transaction par exemple).
string Peut contenir des caractères, des sauts de lignes, des retours chariots et des tabulations.
Tableau 2 : Description des données véhiculées dans les messages
Page - 22 / 256
API Webservices SOAP v5 - V 2.6
Remarque : nous vous conseillons de stocker ces informations dans un fichier de configuration.
Page - 23 / 256
API Webservices SOAP v5 - V 2.6
2. Le site marchand calcule la valeur du jeton d'authentification et l'ajoute dans l'en-tête SOAP HEADER.
Voir chapitre Construire l'en tête SOAP HEADER de la requête.
7. Si les valeurs diffèrent, la requête est rejetée et renvoie une exception SOAP Fault exception de type
"bad.authToken: Invalid authentication token".
Sinon, la plateforme traite la requête.
10.Le site marchand réceptionne les données. Il calcule la valeur du jeton d'authentification en utilisant
les valeurs contenues dans le HEADER de la réponse.
Il compare la valeur du jeton d'authentification calculée avec celle transmise dans le HEADER de la
réponse.
Remarque : le requestId transmis dans l'en-tête de la réponse sera identique à celui transmis dans la
requête par le site marchand.
11.Si les valeurs diffèrent, le marchand analyse l'origine de l'erreur (erreur, tentative de faude...).
Sinon, le site marchand procède à l'analyse de la réponse.
Page - 24 / 256
API Webservices SOAP v5 - V 2.6
Résultat : 2014-10-31T16:38:19Z
Page - 25 / 256
API Webservices SOAP v5 - V 2.6
b. Appliquez l'algorithme HMAC_SHA256 sur la chaîne obtenue en utilisant la valeur de la clé de test
ou de production (en fonction de la valeur de mode) comme clé partagée.
hmacsha256("04967dae-af01-43ff-a7d8-f3f228b9b1c22014-10-31T16:38:19Z", "1234567887654321")
Page - 26 / 256
API Webservices SOAP v5 - V 2.6
Résultat :
<soapHeader:authToken>NxoFUSsTqmMjwaDzTXyCN4nNpMOVJKb5UxHdS9TBuTg=</soapHeader:authToken>
//Génération du header
$ns = 'http://v5.ws.vads.lyra.com/Header/';
$shopId = "12345678";
$requestId = gen_uuid();
$timestamp = gmdate("Y-m-d\TH:i:s\Z");
$mode = "TEST";
$authToken = base64_encode(hash_hmac('sha256',$requestId.$timestamp, $key, true));
$headers = array(
$headerShopId,
$headerRequestId,
$headerTimestamp,
$headerMode,
$headerAuthToken
);
$client->__setSoapHeaders($headers);
Des exemples dans des langages de programmation différents sont disponibles sur Internet.
En JAVA
http://www.mkyong.com/webservices/jax-ws/jax-ws-soap-handler-in-client-side/
En Visual Basic .NET
https://msdn.microsoft.com/en-fr/library/vstudio/whew6x7f(v=vs.100).aspx
http://forums.asp.net/t/1137408.aspx?Adding+information+to+the+SOAP+Header
Page - 27 / 256
API Webservices SOAP v5 - V 2.6
3. Appliquez l'algorithme HMAC_SHA256 sur la chaîne obtenue en utilisant la valeur de la clé de test ou
de production (en fonction de la valeur de mode) comme clé partagée.
5. Comparez la valeur de authToken présent dans l'en-tête SOAP HEADER avec celle calculée.
Résultat :
Si les valeurs diffèrent, le marchand analyse l'origine de l'erreur (erreur dans le calcul, fraude...).
Remarque : le requestId transmis dans l'en-tête de la réponse sera identique à celui transmis dans la
requête par le site marchand.
Exemple de code PHP pour récupérer les en-têtes SOAP dans la réponse
Ci-dessous un exemple pour vous aider à récupérer les en-têtes SOAP HEADER dans la réponse :
//Récupération du SOAP Header de la réponse afin de stocker
// les en-têtes dans un tableau (ici $responseHeader)
$responseHeader = array();
foreach($headers as $headerItem) {
$responseHeader[$headerItem->nodeName] = $headerItem->nodeValue;
}
Page - 28 / 256
API Webservices SOAP v5 - V 2.6
Dans cette version, seul l'attribut uuid (référence unique de la transaction) est nécesssaire.
Il est utilisé pour remplacer les anciens attributs et simplifier les requêtes.
Il est généré par la plateforme de paiement suite à la création d'une transaction de paiement. Cet
identifiant unique offre une garantie d'unicité.
La valeur de cet attribut est retournée dans l'objet paymentResponse de l'opération createPayment.
Ainsi, pour toute requête impliquant une transaction spécifique, l'attribut uuid sera demandé au sein de
l'objet queryRequest.
Cependant, pour des raisons de retrocompatibilité, cette version des Web Services permet de récupérer
l'uuid d'une transaction (référence unique de la transaction) à partir de son ancienne identification.
Pour cela, l'operation getPaymentUuid est mise à disposition.
BODY
L'opération getPaymentUuid prend en entrée un objet de type getPaymentUuid.
Le type getPaymentUuid est composé du paramètre suivant :
Objet Format Requis
legacyTransactionKeyRequest legacyTransactionKeyRequest
Page - 29 / 256
API Webservices SOAP v5 - V 2.6
legacyTransactionKeyRequest
L'objet legacyTransactionKeyRequest permet de traduire les anciens attributs transactionId,
sequenceNumber et transmissionDate en transactionUuid (référence unique de transaction).
Les attributs à valoriser pour obtenir la valeur de transactionUuid sont les suivants :
legacyTransactionKeyRequest
Attribut Requis Format
transactionId
string
Identifiant de la transaction à rechercher.
sequenceNumber
Numéro de séquence de la transaction à rechercher.
Vaut "1" pour un paiement unitaire. n..3
Prend la valeur du numéro d’échéance dans le cas d’un paiement en plusieurs fois créé à partir du
formulaire de paiement.
creationDate
Date de création de la transaction au format ISO 8601 définit par W3C. dateTime
Si aucune date est renseignée, la date du jour sera valorisée par défaut. ans..40
Exemple : 2016-07-16T19:20:00Z
Tableau 3 : Objet legacyTransactionKeyRequest
Page - 30 / 256
API Webservices SOAP v5 - V 2.6
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Attribut Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
paymentResponse
L'objet paymentResponse renvoie l'attribut transactionUuid.
paymentResponse Format
transactionUuid string
Référence unique de la transaction générée par la plateforme de paiement. ans32
Tableau 4 : Objet paymentResponse
Page - 31 / 256
API Webservices SOAP v5 - V 2.6
Le service "Accès à l'acquisition sur site marchand via web service" permet la création des transactions
via l'opération :
Le service "3DS MPI" permet de réaliser des authentifications 3D Secure v1 via les méthodes suivantes:
Page - 32 / 256
API Webservices SOAP v5 - V 2.6
requiert la souscription au service "Transmission des données de paiement chiffrées par Web Services
SOAP".
Le partage d'alias
Il est possible de partager des alias (token) entre plusieurs entités juridiques.
Les alias partagés entre plusieurs entités juridiques doivent être uniques et doivent être impérativement
générés par la plateforme de paiement (en d'autres termes l'attribut paymentToken de l'objet
cardRequest ne doit pas être renseigné).
Cependant, cette fonctionnalité est soumise à des conditions particulières. Veuillez contacter
l'interlocuteur de votre plateforme de paiement pour en prendre connaissance.
Page - 33 / 256
API Webservices SOAP v5 - V 2.6
Requête à envoyer
La requête createPayment est constituée d'un HEADER et d'un BODY.
HEADER
Valorisez le HEADER afin de transmettre la valeur des attributs shopId, requestId, timestamp, mode et
authToken (voir chapitre Construire l'en-tête SOAP HEADER).
BODY
L'opération createPayment prend en entrée un objet de type createPayment.
Le type createPayment est constitué des paramètres suivants :
Objet Format Requis
commonRequest commonRequest
threeDSRequest threeDSRequest
paymentRequest paymentRequest
orderRequest orderRequest
cardRequest cardRequest
customerRequest customerRequest
techRequest techRequest
shoppingCartRequest shoppingCartRequest
extendedResponseRequest extendedResponseRequest
commonRequest
L'objet commonRequest permet de transmettre des informations générales sur une opération.
Attribut Requis Format
paymentSource
Origine de la transaction. Les valeurs possibles sont :
EC pour le commerce électronique.
Paramètre utilisé par défaut si aucune valeur est renseignée ou si différente des valeurs
possibles.
MOTO pour une commande par courrier ou téléphone.
string
CC pour un centre d'appel.
L' attribut comment n'est pas aujourd'hui pris en considération pour cette opération.
Page - 34 / 256
API Webservices SOAP v5 - V 2.6
threeDSRequest
L'objet threeDSRequest permet de :
déterminer si un paiement est réalisé avec ou sans authentification 3D Secure,
transmettre des informations liées à 3D Secure.
Si aucune valeur n'est renseignée pour cet objet, un paiement sans authentification 3D Secure sera
effectué par défaut.
Les objets et attributs de l'objet threeDSRequest diffèrent selon le type de paiement.
Remarque : tous les autres attributs ne sont pas pris en considération pour créer un paiement sans 3D
Secure.
Remarque : tous les autres attributs ne sont pas pris en considération pour créer un paiement avec
3D Secure.
Page - 35 / 256
API Webservices SOAP v5 - V 2.6
Remarque : tous les autres attributs ne sont pas pris en considération pour créer un paiement avec
3D Secure.
status
Statut de l'authentification du porteur. Les valeurs possibles sont :
Y pour un statut authentifié 3 DS.
eci
Indicateur de commerce Electronique.
La valeur eci est fonction du statut de l’authentification 3DS et du type de
carte. Les valeurs possibles sont :
xid
Numéro de transaction 3DS. Si status est valorisé à string
Y
cavv
Certificat de l’ACS. Si status est valorisé à string
Y ou A
algorithm
Algorithme de vérification de l’authentification du porteur (CAVV). Les
valeurs possibles sont :
0 pour HMAC.
Si status est valorisé à string
1 pour CVV.
Y ou A
2 pour CVV_ATN.
Page - 36 / 256
API Webservices SOAP v5 - V 2.6
paymentRequest
L'objet paymentRequest permet de transmettre des informations liées au paiement.
Il possède les attributs suivants :
Attribut Requis Format
transactionId
Identifiant de la transaction lors de la création ou la modification d'une transaction de paiement.
Sa valeur est unique sur une même journée.
Soit cet identifiant est généré par la plateforme. Dans ce cas, ce paramètre ne doit pas être
renseigné.
an..6
Soit cet identifiant est généré par le site marchand. Dans ce cas, ce paramètre doit être
renseigné avec la valeur de l’identifiant souhaité. Attention, il incombe au site marchand
de s’assurer de l’unicité des identifiants. Toute demande d'enregistrement contenant un
identifiant déjà existant, sera rejetée, et retournera un code d’erreur 12.
Remarque : cet attribut ne peut être envoyé à vide.
retryUuid
Permet de spécifier l'identifiant unique de la transaction afin de réitérer la demande du paiement
refusée. string
Pour effectuer ce rejeu, veillez à récupérer la valeur de la référence unique de la transaction
refusée véhiculée par l'attribut transactionUuid de l'objet paymentResponse.
amount
Montant de la transaction dans sa plus petite unité monétaire .
Remarque :
n..12
Ne doit pas être envoyé à vide ou être à 0.
currency
Code de la devise de la transaction (norme ISO 4217). n3
Ex : 952 pour le Franc CFA (XOF) ou 324 pour le Franc guinéen (GNF)
expectedCaptureDate
Date de remise demandée exprimée au format ISO 8601 définit par W3C.
Exemple : 2016-07-16T19:20:00Z.
Ce paramètre est utilisé pour effectuer un paiement différé.
Si le nombre de jours entre la date de remise demandée et la date actuelle est supérieur à la durée
de validité de l'autorisation , une autorisation de 1000 XOF sera réalisée le jour de la transaction.
Ceci afin de vérifier la validité de la carte.
L’autorisation pour le montant total sera effectuée :
fonctionnement par défaut : le jour de la date de remise en banque souhaitée, dateTime
ans..40
fonctionnement avec autorisation anticipée : selon le moyen de paiement sélectionné, à J- le
nombre de jours correspondant à la durée de validité d'une autorisation avant la date de remise
en banque souhaitée.
Si vous souhaitez être notifié du résultat de cette demande d’autorisation, vous devez configurer la
règle de notification URL de notification sur autorisation par Batch dans le Back Office Marchand
(Paramétrage > Règles de notifications).
Remarque : si le délai avant remise est supérieur à 365 jours dans la requête de paiement, il est
automatiquement repositionné à 365 jours.
manualValidation
Permet de valider manuellement une transaction tant que la date de remise en banque souhaitée
n’est pas dépassée. n1
Pour cela, cet attribut doit être valorisé à 1 (validation manuelle).
Valorisé à 0, la validation sera automatique.
paymentOptionCode.
Permet de définir le code de l'option de paiement à utiliser.
acquirerTransientData
Permet de transmettre des informations utiles à l'acquéreur pour réaliser des contrôles anti-fraude:
URL de la boutique, nom de la boutique, numéro de commande, frais de port, méthode de livraison, json
etc..
Exemple :
Page - 37 / 256
API Webservices SOAP v5 - V 2.6
Page - 38 / 256
API Webservices SOAP v5 - V 2.6
orderRequest
L'objet orderRequest permet de transmettre des informations liées à la commande.
Il est composé de l'attribut suivant :
Attribut Requis Format
orderId string
Référence de la commande. an..64
extInfo
Champs personnalisables permettant d'ajouter des données supplémentaires (champ
supplémentaire qui sera persisté dans la transaction et sera retourné dans la réponse).
L'attribut extInfo est composé de sous objets :
extInfo
key : nom de la donnée. Son format est "string".
Exemple : <extInfo><key>keyData</key><value>valuedata</value></extInfo>
Page - 39 / 256
API Webservices SOAP v5 - V 2.6
cardRequest
L'objet cardRequest permet de transmettre les informations sur la carte de paiement.
Selon le type de paiement (paiement avec saisie des données bancaires ou paiement par alias), un ou
plusieurs attributs sont requis.
Paiement avec saisie des données bancaires :
Attribut Requis Format
number
Numéro de la carte. string
requiert la souscription au service "Accès à l'acquisition sur site marchand via Web Services"
scheme
Type de carte choisi par l'acheteur.
string
Exemple de valeurs possibles: , MASTERCARD, VISA, VISA_ELECTRON, VPAY, MAESTRO, JCB.
Pour plus de détails, consultez la Liste des types de carte supportés.
expiryMonth
n..2
Mois d’expiration de la carte, entre 1 et 12.
expiryYear
Année d’expiration de la carte sur 4 digits. n4
Exemple : 2016
cardSecurityCode
Cryptogramme visuel à 3 chiffres (ou 4 pour Amex).
Ce champ est obligatoire lorsque la carte dispose d’un code cryptogramme visuel. Si le CVV n’est pas string
transmis, la banque émettrice refusera le paiement.
En revanche, ce champ est facultatif lorsque l'origine de la transaction est valorisée à MOTO.
cardHolderBirthday Requis
Date de naissance du porteur au format YYYY-MM-DD. selon le dateTime
moyen de ans..64
paiement
cardHolderName Requis string
Nom du porteur. selon le
Ce champ correspond au nom du porteur de carte. moyen de
Obligatoire pour DECIDIR et VISANET, acquéreurs d'Amérique en Sud. paiement
proofOfIdType Requis string
Type de pièce d'identité. selon le
Valeurs possibles : moyen de
paiement
DNI (= Documento Nacional de Identidad) Obligatoire pour DECIDIR.
Page - 40 / 256
API Webservices SOAP v5 - V 2.6
Remarque :
Pour qu'un paiement utilisant un alias existant (paiement en un clic) soit garanti, le marchand doit
demander à l'acheteur :
la saisie du cryptogramme visuel
une authentification 3D Secure
customerRequest
L'objet customerRequest permet de transmettre des informations liées à la livraison, à la facturation et
des données techniques liées à l'acheteur.
Format Sous-objet Requis
billingDetails billingDetailsRequest
Données de facturation de l'acheteur.
shippingDetails shippingDetailsRequest
Données de livraison de l'acheteur.
extraDetails extraDetailsRequest
Données techniques liées à l'acheteur.
Tableau 5 : Sous-objets de customerRequest
billingDetails
Attribut Requis Format
reference string
Référence de l'acheteur. n..80
title
string
Civilité de l'acheteur.
n..80
Exemples de valeurs possibles : Monsieur, Madame, etc..
type
Type d'acheteur.
Les valeurs possibles sont : string
PRIVATE pour un particulier. (enum)
firstName string
Nom de l'acheteur. ans..128
lastName string
Prénom de l'acheteur. ans..128
phoneNumber string
Numéro de téléphone de l'acheteur. ans..32
email string
E-mail de l'acheteur. ans..150
streetNumber
string
Numéro de rue de l'acheteur.
an..5
Remarque : si cet attribut est présent dans la requête, il ne peut être envoyé vide.
Page - 41 / 256
API Webservices SOAP v5 - V 2.6
billingDetails
Attribut Requis Format
address string
Adresse de l'acheteur. ans..255
address2 string
Complément d'adresse de livraison. ans..255
district string
Quartier de l'acheteur. ans..127
zipCode string
Code postal de l'acheteur. ans..64
city string
Ville de l'acheteur. ans..128
state string
Etat/Région de l'acheteur. ans..128
country
Pays de l'acheteur selon la norme ISO 3166.
Exemples de valeurs possibles :
language
Langue de l'acheteur selon la norme ISO 639-1.
Exemples de valeurs possibles :
tr pour le turc
cellPhoneNumber string
Numéro de téléphone mobile ans..32
identityCode
Permet d'identifier de façon unique chaque citoyen au sein d'un pays. string
Par exemple, au Brésil, ClearSale impose que ce champ soit valorisé avec le CPF/ CNPJ (format ans..255
numérique, de longueur comprise entre 11 et 20 digits).
Tableau 6 : Objet billingDetails
Page - 42 / 256
API Webservices SOAP v5 - V 2.6
firstName string
Nom de l'acheteur. ans..128
lastName string
Prénom de l'acheteur. ans..128
phoneNumber string
Numéro de téléphone de l'acheteur. ans..32
streetNumber
string
Numéro de rue pour la livraison.
an..5
Remarque : si cet attribut est présent dans la requête, il ne peut être envoyé vide.
address string
Adresse de livraison. ans..255
address2 string
Complément d'adresse de livraison. ans..255
district string
Quartier de livraison. ans..127
zipCode string
Code postal de livraison. ans..64
city string
Ville de livraison. ans..128
state string
Etat/Région de livraison. ans..128
country
string - a2
Pays de livraison.
deliveryCompanyName string
Informations sur le transporteur. ans..128
shippingSpeed
Mode de livraison sélectionné.
Les valeurs possibles sont : string
STANDARD pour une livraison standard. (enum)
shippingMethod
Méthode de livraison utilisée.
Les valeurs possibles sont :
RECLAIM_IN_SHOP pour le retrait de la marchandise en magasin.
RELAY_POINT pour l'utilisation d'un réseau de points de retrait tiers (Kiala, Alveol, etc). string
(enum)
RECLAIM_IN_STATION pour le retrait dans un aéroport, une garde ou une agence de voyage.
legalName string
Raison sociale de la société. ans..128
identityCode
Permet d'identifier de façon unique chaque citoyen au sein d'un pays. string
Par exemple, au Brésil, ClearSale impose que ce champ soit valorisé avec le CPF/ CNPJ (format ans..255
numérique, de longueur comprise entre 11 et 20 digits).
Page - 43 / 256
API Webservices SOAP v5 - V 2.6
techRequest
Page - 44 / 256
API Webservices SOAP v5 - V 2.6
shoppingCartRequest
L'objet shoppingCartRequest permet de transmettre le contenu du panier.
Attribut Requis Format
insuranceAmount
n..3
Montant de l'assurance
shippingAmount
n..3
Frais d'expédition.
taxAmount
n..3
Montant des taxes.
cartItemInfo
Champs personnalisables permettant d'ajouter les éléments du panier.
L'attribut cartItemInfo est composé de sous objets :
productLabel : nom du produit. Son format est "string".
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 cartItemInfo
CLOTHING_AND_ACCESSORIES Vêtements et accessoires
TRAVEL Voyage
HOME_AUDIO_PHOTO_VIDEO Son, image et vidéo
TELEPHONY Téléphonie
Tableau 7 : Valeurs associées à productType
productRef : référence produit. Son format est "string".
Exemple :
<cartItemInfo>
<productLabel>CHIPS</productLabel>
<productType>FOOD_AND_GROCERY</productType>
<productRef>188545</productRef>
<productQty>10</productQty>
<productAmount>10000</productAmount>
</cartItemInfo>
extendedResponseRequest
L'objet extendedResponseRequest permet de d'obtenir des informations spécifique dans la réponse.
Attribut Requis Format
isNsuRequested boolean
Permet d'obtenir le NSU (Numéro de Séquence Unique) dans la réponse (champ
paymentResponse.nsu) si valorisé à 1. Utilisé en Amérique Latine.
Page - 45 / 256
API Webservices SOAP v5 - V 2.6
Page - 46 / 256
API Webservices SOAP v5 - V 2.6
Réponse en retour
La réponse à l'opération createPayment est constituée d'un HEADER et d'un BODY de type
createPaymentResponse.
HEADER
Le HEADER est transmis par la plateforme de paiement.
Vérifiez la valeur du jeton d'authentification (voir chapitre Vérifier l'en-tête SOAP dans la réponse).
BODY
La structure du message createPaymentResponse est la suivante :
Nom Type
createPaymentResult createPaymentResult
Les données retournées dans la réponse dépendent des objets et attributs envoyés dans la requête.
Cependant, quelle que soit l'opération, l'attribut responseCode de l'objet CommonResponse doit avant
tout être analysé :
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
Remarque :
La valeur 0, indicateur de succès de l'opération, ne signifie pas pour autant que la transaction est validée.
Pour vérifier le statut de la transaction, il est necessaire d'analyser l'attribut transactionStatusLabel.
Page - 47 / 256
API Webservices SOAP v5 - V 2.6
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Attribut Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès (à ne pas confondre avec le statut de la
transaction).
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
transactionStatusLabel string
Libellé du statut de la transaction. Les valeurs possibles sont :
INITIAL
En traitement.
Ce statut est temporaire. Le statut définitif sera retourné aussitôt la synchronisation réalisée.
NOT_CREATED
La transaction n'est pas créée et n'est pas visible dans le Back Office Marchand.
AUTHORISED
En attente de remise.
La transaction est acceptée et sera remise en banque automatiquement à la date prévue.
AUTHORISED_TO_VALIDATE
A valider.
La transaction, créée en validation manuelle, est autorisée. Le marchand doit valider manuellement la
remise en banque. La transaction peut être validée tant que la date de remise n’est pas dépassée. Si cette
date est dépassée, le paiement prend le statut Expiré (statut définitif).
WAITING_AUTHORISATION
En attente d’autorisation.
La date de remise demandée est supérieure à la date de fin de validité d’une demande d’autorisation.
Une autorisation de 1000 XOF a été réalisée et acceptée par la banque émettrice. La demande d’autorisation
et la remise en banque seront déclenchées automatiquement.
WAITING_AUTHORISATION_TO_VALIDATE
A valider et à autoriser.
La date de remise demandée est supérieure à la date de fin de validité d’une demande d’autorisation.
Une autorisation de 1000 XOF a été réalisée et acceptée par la banque émettrice. La demande d’autorisation
sera déclenchée automatiquement à J-1 avant la date de remise en banque. Le paiement pourra être
accepté ou refusé. La remise en banque est automatique.
REFUSED
Refusée.
La transaction est refusée.
shopId n8
Identifiant de la boutique.
paymentSource string
Origine de la transaction. Les valeurs possibles sont : (enum)
EC pour le commerce électronique.
submissionDate dateTime
Date et heure UTC de la transaction exprimée au format W3C (exemple : 2016-07-16T19:20:00Z). ans..40
Page - 48 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
contractNumber string
Numéro de contrat commerçant utilisé.
paymentToken string
Alias (token).
paymentResponse
L'objet paymentResponse détaille les informations sur la transaction.
Attribut Format
transactionUuid string
Référence unique de la transaction générée par la plateforme de paiement. ans32
transactionId
Identifiant de la transaction lors de la création ou la modification d'une transaction de paiement.
Sa valeur est unique sur une même journée.
an..6
Soit cet identifiant est généré par la plateforme.
amount
n..12
Montant de la transaction dans sa plus petite unité monétaire .
currency
Code de la devise de la transaction (norme ISO 4217). n3
Ex : 952 pour le Franc CFA (XOF) ou 324 pour le Franc guinéen (GNF)
effectiveAmount n..12
Montant de la transaction dans la devise réellement utilisée pour effectuer la remise en banque.
effectiveCurrency n3
Devise réellement utilisée pour effectuer la remise en banque.
expectedCaptureDate
Date de remise en banque souhaitée. dateTime
Remarque : si le délai avant remise est supérieur à 365 jours dans la requête de paiement, il est ans..40
automatiquement repositionné à 365 jours.
operationType n1
Type d'opération.
Les valeurs possibles sont :
0 pour une opération de débit.
creationDate dateTime
Date et heure de l’enregistrement de la transaction exprimée au format W3C. ans..40
externalTransactionId string
Référence fournie par un tiers : numéro de transaction pour PayPal, Boleto, RRN pour Prism, etc…
liabilityShift string
Transfert de responsabilité.
Les valeurs possibles sont :
YES lorsque le paiement est garanti.
paymentType string
Type de paiement. (enum)
Les valeurs possibles sont :
SINGLE
Paiement en une seule fois.
INSTALLMENT
Paiement en plusieurs fois.
SPLIT
Page - 49 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
Paiement effectué avec plusieurs moyens de paiement.
SUBSCRIPTION
Paiement par alias ou paiement récurrent. S'applique aussi aux transactions de type Vérification (création et
mise à jour d'un alias).
RETRY
Lors d'un paiement refusé, il est possible de réitérer la demande de paiement. Pour toute(s) réitération(s), le
paiement est valorisé avec cette valeur.
Remarque :
Les valeurs INSTALLMENT et SPLIT peuvent être retournées uniquement si des paiements ont été créés via le
formulaire de paiement.
sequenceNumber n..3
Numéro de séquence de la transaction. Sa valeur est fonction du contexte du paiement :
Est valorisé à "1" pour un paiement unitaire.
Prend la valeur du numéro d’échéance dans le cas d’un paiement en plusieurs fois créé à partir du formulaire
de paiement.
paymentError n..3
Complément d’information en cas d’erreur technique. Retourne un code d'erreur associé à l'erreur technique
(voir chapitre Codes d'erreurs pouvant survenir durant le paiement).
nsu string
Numéro de Séquence Unique. Utilisé par certains acquéreurs d'Amérique Latine.
Retourné lorsque extendedResponseRequest.isNsuRequested est valorisé à 1 dans la requête.
wallet string
Nom du wallet (Google Pay, Masterpass etc.).
Retourné lorsque extendedResponseRequest.isWalletRequested est valorisé à 1 dans la requête.
orderResponse
L'objet orderResponse détaille la commande.
Attribut Format
orderId string
Référence de la commande. an..64
extInfo
Données personnalisées retournées en fonction des besoins.
Exemple : extInfo.key, extInfo.value
extInfo
key : nom de la donnée (son format est "string").
cardResponse
L'objet cardResponse détaille les informations du moyen de paiement utilisé.
Attribut Format
number string
Numéro de carte masqué. Contient les 6 premiers chiffres du numéro, suivi par “XXXXXX” et enfin les 4
derniers chiffres.
IBAN et BIC utilisés pour le paiement, séparés par un « _ » dans le cas d’un paiement par prélèvement.
scheme string
Type de la carte.
brand string
Marque de la carte utilisée pour la transaction
country ISO 3166
Code pays du pays d’émission de la carte (Code numérique ISO 3166).
Page - 50 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
productCode an..3
Code produit de la carte.
bankCode n..5
Code banque de la banque émettrice.
bankLabel string
Nom de la banque émettrice.
Retourné uniquement si extendedResponseRequest.isBankLabel est valorisé à 1 dans la requête.
expiryMonth n..2
Mois d’expiration entre 1 et 12 (ex: 3 pour mars, 10 pour octobre).
expiryYear n4
Année d’expiration sur 4 chiffres (ex : 2023).
Page - 51 / 256
API Webservices SOAP v5 - V 2.6
authorizationResponse
L'objet authorizationResponse permet d'obtenir des informations sur la demande d'autorisation.
Attribut Format
mode string
Spécifie de quelle manière est réalisée la demande d’autorisation. Deux valeurs possibles :
MARK
Une autorisation de 1000 XOF a été réalisée afin de vérifier la validité de la carte.
Ce cas se présente lorsque la date de remise dépasse la période de validité d'une autorisation .
FULL
Autorisation pour le montant total demandé dans la requête.
amount n..12
Montant de l’autorisation dans la plus petite unité monétaire dans le cas où mode vaut FULL.
currency n3
Code de la monnaie utilisée lors de la demande d’autorisation (suivant la norme ISO 4217) dans le cas où mode
vaut FULL.
date dateTime
Date et heure de la demande d’autorisation dans le cas où mode vaut FULL. ans..40
number an..12
Numéro de la demande d’autorisation dans le cas où mode vaut FULL.
result an..12
Code retour de la demande d’autorisation retourné par la banque émettrice en cas de refus.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour d'une demande d'autorisation.
captureResponse
L'objet captureResponse permet d'obtenir des informations à propos de la remise dans le cas où la
transaction est remisée.
Attribut Format
date dateTime
Date et heure de remise. ans..40
number n3
Numéro de remise.
reconciliationStatus n1
Statut du rapprochement bancaire de la transaction.
refundAmount n..12
Montant ayant déjà fait l’objet d’un remboursement dans sa plus petite unité monétaire.
refundCurrency n3
Devise du montant ayant déjà fait l’objet d’un remboursement (Code monnaie ISO 4217 Ex : 952 pour le Franc CFA
(XOF) ou 324 pour le Franc guinéen (GNF) .
chargeback boolean
Litige, impayé. Les valeurs possibles sont :
0 : transaction ne faisant pas l'objet d'un litige.
Page - 52 / 256
API Webservices SOAP v5 - V 2.6
customerResponse
L'objet customerResponse détaille de nombreuses informations à propos de l'acheteur.
La réponse se décompose en l'analyse de :
billingDetails
Données de facturation de l'acheteur.
shippingDetails
Données de livraison de l'acheteur. Les valeurs présentes dans cet objet seront identiques à celles de
l'objet billingDetails.
extraDetails
Données techniques liées à l'acheteur.
6.1.3.7.1. Objet billingDetails
Attribut Format
reference
string n..80
Référence de l'acheteur.
title
Civilité de l'acheteur. string n..80
Exemples de valeurs possibles : Monsieur, Madame, etc..
type
Type d'acheteur.
Les valeurs possibles sont :
string (enum)
PRIVATE pour un particulier.
firstName string
Nom de l'acheteur. ans..128
lastName string
Prénom de l'acheteur. ans..128
phoneNumber
string ans..32
Numéro de téléphone de l'acheteur.
email
string
E-mail de l'acheteur.
ans..150
Paramètre obligatoire lors de la création d'un alias.
streetNumber
Numéro de rue de l'acheteur. string an..5
Remarque : si cet attribut est présent dans la requête, il ne peut être envoyé vide.
address string
Adresse de l'acheteur. ans..255
district string
Quartier de l'acheteur. ans..127
zipCode
string ans..64
Code postal de l'acheteur.
city string
Ville de l'acheteur. ans..128
state string
Etat/Région de l'acheteur. ans..128
country
Pays de l'acheteur selon la norme ISO 3166.
Exemples de valeurs possibles :
string - a2
DE pour l'Allemagne IT pour l'Italie PT pour le Portugal
Page - 53 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
language
Langue de l'acheteur selon la norme ISO 639-1.
Exemples de valeurs possibles :
tr pour le turc
cellPhoneNumber
string ans..32
Numéro de téléphone mobile
legalName string
Raison sociale de la société. ans..128
Attribut Format
type
Type d'acheteur.
Les valeurs possibles sont : string
PRIVATE pour un particulier. (enum)
firstName string
Nom de l'acheteur. ans..128
lastName string
Prénom de l'acheteur. ans..128
phoneNumber string
Numéro de téléphone de l'acheteur. ans..32
streetNumber
Numéro de rue pour la livraison. string an..5
Remarque : si cet attribut est présent dans la requête, il ne peut être envoyé vide.
address string
Adresse de livraison. ans..255
address2 string
Complément d'adresse de livraison. ans..255
district string
Quartier de livraison. ans..127
zipCode string
Code postal de livraison. ans..64
city string
Ville de livraison. ans..128
state string
Etat/Région de livraison. ans..128
country string - a2
Page - 54 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
Pays de livraison.
deliveryCompanyName string
Informations sur le transporteur. ans..128
shippingSpeed
Mode de livraison sélectionné.
Les valeurs possibles sont : string
STANDARD pour une livraison standard. (enum)
shippingMethod
Méthode de livraison utilisée.
Les valeurs possibles sont :
RECLAIM_IN_SHOP pour le retrait de la marchandise en magasin.
RELAY_POINT pour l'utilisation d'un réseau de points de retrait tiers (Kiala, Alveol, etc). string
(enum)
RECLAIM_IN_STATION pour le retrait dans un aéroport, une garde ou une agence de voyage.
legalName string
Raison sociale de la société. ans..128
identityCode
Permet d'identifier de façon unique chaque citoyen au sein d'un pays. string
Par exemple, au Brésil, ClearSale impose que ce champ soit valorisé avec le CPF/ CNPJ (format numérique, de ans..255
longueur comprise entre 11 et 20 digits).
markResponse
L'objet markResponse permet d'obtenir des informations sur la demande d'autorisation à 1000 XOF .
Attribut Format
amount n..12
Montant utilisé pour vérifier la validité de la carte, dans la plus petite unité monétaire .
currency n3
Code de la monnaie utilisée pour vérifier la validité de la carte (suivant la norme ISO 4217) Ex : 952 pour le Franc
CFA (XOF) ou 324 pour le Franc guinéen (GNF) .
date
dateTime
Date et heure de la demande d’autorisation réalisée dans le cas où l'attribut mode de l'objet
ans..40
authorizationResponse vaut MARK.
number
dateTime
Numéro d’autorisation de la demande d’autorisation dans le cas où l'attribut mode de l'objet
ans..40
authorizationResponse vaut MARK.
result n..2
Résultat de la demande d’autorisation réalisée dans le cas où l'attribut mode de l'objet authorizationResponse
vaut MARK.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour d'une demande d'autorisation.
Page - 55 / 256
API Webservices SOAP v5 - V 2.6
threeDSResponse
L'objet threeDSResponse permet d'obtenir des informations à propos de l'authentification 3D Secure v1.
Il contient un attribut authenticationResultData qui décrit le résultat de l’authentification 3D Secure v1.
Il est composé des attributs suivants :
Attribut Format
transactionCondition string
Statut de l'authentification 3D Secure. Les valeurs possibles sont :
COND_3D_SUCCESS
Succès de l'authentification.
Le marchand et le porteur de la carte sont inscrits au programme 3D Secure et le porteur s’est authentifié
correctement.
COND_3D_FAILURE
Echec de l’authentification.
Le marchand et le porteur de la carte sont inscrits au programme 3D Secure mais l’acheteur n’a pas réussi
à s’authentifier (mauvais mot de passe).
COND_3D_ERROR
Authentification en erreur.
Le marchand participe au programme 3D Secure mais le serveur de la plateforme de paiement a rencontré
un problème technique durant le processus d’authentification (lors de la vérification de l’inscription de la
carte au programme 3D ou de l’authentification du porteur).
COND_3D_NOTENROLLED
Porteur non enrôlé.
Le marchand participe au programme 3D Secure mais la carte du porteur n’est pas enrôlée.
COND_3D_ATTEMPT
Tentative d'authentification.
Le marchand et le porteur de la carte sont inscrits au programme 3D Secure mais l’acheteur n’a pas eu
à s’authentifier (le serveur de contrôle d’accès de la banque qui a émis la carte n’implémente que la
génération d’une preuve de tentative d’authentification).
COND_SSL
3D Secure non applicable.
Le marchand n’est pas enrôlé à 3D Secure ou le canal de vente n’est pas couvert par cette garantie.
enrolled
Statut enrôlement du porteur. Les valeurs possibles sont :
Y pour un statut enrôlé.
string
N pour un statut non enrôlé.
status a1
Statut de l'authentification du porteur. Les valeurs possibles sont :
Y pour un statut authentifié 3 DS.
eci string
Indicateur de commerce Electronique.
La valeur eci est fonction du statut de l’authentification 3DS et du type de carte. Les valeurs possibles sont :
xid string
Page - 56 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
Numéro de transaction 3DS.
cavvAlgorithm n1
Algorithme de vérification de l’authentification du porteur (CAVV). Les valeurs possibles sont :
0 pour HMAC.
1 pour CVV.
2 pour CVV_ATN.
cavv string
Certificat de l’ACS.
signValid string
Signature de l’authentification 3DS.
brand string
Réseau de la carte.
extraResponse
L'objet extraResponse permet d'obtenir des informations supplémentaires à propos du paiement.
Attribut Format
paymentOptionCode string
Code de l'option de paiement utilisée lors du paiement.
paymentOptionOccNumb n..2
Nombre d'échéances lors d'un paiement en plusieurs fois.
Par exemple, pour un paiement en trois fois, cet attribut sera valorisé à 3.
fraudManagementResponse
L'objet fraudManagementResponse permet d'obtenir les résultats des contrôles de gestion de risques.
La réponse se décompose en l'analyse des attributs :
riskControl
Retourne le résultat du contrôle de gestion de risques effectué.
riskAnalysis
Retourne le résultat de l'analyse de gestion de risques effectué par un système externe (Konduto,
ClearSale, CyberSource,...).
riskAssessment
Retourne le résultat de l'analyse de gestion des risques avancée effectuée par la plateforme de
paiement.
L'attribut riskControl
Le format est le suivant : name1=result1;name2=result2
Nom Format Description
name string Nom de la règle de gestion de risque.
result string Résultat du contrôle.
Page - 57 / 256
API Webservices SOAP v5 - V 2.6
L'attribut riskAnalysis
Attribut Format
score string
Score attribué à chaque transaction permettant d'évaluer le risque qui lui est associé.
resultCode string
Code renvoyé par un analyseur de risque externe.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour renvoyés par l'analyseur de risque
externe.
status string
Statut de l'analyse de risque. Les valeurs possibles sont les suivantes :
P_SEND_OK, "Sent to clearsale and successfully processed"
Succès
P_TO_SEND, "Transaction analysis is scheduled to be sent to risk analyzer"
L'envoi est programmé
P_TO_SEND_KO, "Problem when tried to send to risk analyzer"
Erreur de traitement
P_PENDING_AT_ANALYZER, "Analysis result is still being processed by the risk analyzer. We should keep
checking/waiting for the analysis result"
En cours de traitement par l'analyseur
P_MANUAL, "Analysis should be requested through user request (not automatically)"
Attente d'envoi manuel
P_SKIPPED, "Analysis request discarded by current transaction status/problem"
Ecarté
P_SEND_EXPIRED, "Analysis request expired"
Expiré
requestId string
Identifiant de l’analyse chez l’analyseur de risque.
extraInfo extInfo
Pas de valorisation pour ClearSale.
Pour CyberSource, cet attribut retourne tous les codes renvoyés par le DecisionManager.
key : nom de la donnée (son format est "string").
Exemple :
COR-BA=Adresse de facturation corrigée ou corrigeable
A=Changements d'adresse excessifs. L'acheteur a changé d'adresse de facturation au moins deux fois au
cours des six derniers mois.
etc.
L'attribut riskAssessment
Page - 58 / 256
API Webservices SOAP v5 - V 2.6
Valeurs Description
ENABLE_3DS 3D Secure activé.
DISABLE_3DS 3D Secure désactivé.
MANUAL_VALIDATION La transaction est créée en validation manuelle.
La remise du paiement est bloquée temporairement pour permettre au marchand de
procéder à toutes les vérifications souhaitées.
REFUSE La transaction est refusée.
RUN_RISK_ANALYSIS Appel à un analyseur de risques externes sous condition que le marchand possède un
contrat.
Se référer à la description du champ vads_risk_analysis_result pour identifier la liste
des valeurs possibles et leur description.
INFORM Une alerte est remontée.
Le marchand est averti qu’un risque est identifié.
Le marchand est informé via une ou plusieurs des règles du centre de notification (URL
de notification, e-mail ou SMS).
shoppingCartResponse
L'objet shoppingCartResponse détaille le contenu du panier.
Attribut Format
cartItemInfo
Champs personnalisables permettant d'ajouter les éléments du panier.
L'attribut cartItemInfo est composé de sous objets :
productLabel : nom du produit. Son format est "string".
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
cartItemInfo
SPORTS Sports
CLOTHING_AND_ACCESSORIES Vêtements et accessoires
TRAVEL Voyage
HOME_AUDIO_PHOTO_VIDEO Son, image et vidéo
TELEPHONY Téléphonie
Tableau 8 : Valeurs associées à productType
productRef : référence produit. Son format est "string".
Exemple :
<cartItemInfo>
<productLabel>CHIPS</productLabel>
<productType>FOOD_AND_GROCERY</productType>
<productRef>188545</productRef>
<productQty>10</productQty>
<productAmount>10000</productAmount>
Page - 59 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
</cartItemInfo>
Page - 60 / 256
API Webservices SOAP v5 - V 2.6
1. L’acheteur valide sa commande et saisit les données de sa carte sur le site marchand pour procéder
au paiement.
2. Le site marchand contacte la plateforme de paiement.
Il appelle l'opération createPayment.
Pour un paiement sans authentification 3D Secure il peut, au choix, :
ne pas valoriser l'attribut mode de l'objet threeDSRequest (sans valorisation, la valeur DISABLED
est affectée à l'attribut par défaut),
valoriser l'attribut mode de l'objet threeDSRequest à DISABLED.
3. La plateforme de paiement procède à la demande d'autorisation et retourne le résultat du paiement
au site marchand.
Page - 61 / 256
API Webservices SOAP v5 - V 2.6
<currency>952</currency>
</paymentRequest>
<orderRequest>
<orderId>TEST-01</orderId>
</orderRequest>
<cardRequest>
<number>4970100000000000</number>
<scheme>VISA</scheme>
<expiryMonth>12</expiryMonth>
<expiryYear>2015</expiryYear>
<cardSecurityCode>123</cardSecurityCode>
<cardHolderBirthDay>1976-04-18</cardHolderBirthDay>
</cardRequest>
<customerRequest>
<billingDetails>
<email>mail@example.com</email>
</billingDetails>
<extraDetails>
<ipAddress>127.0.0.1</ipAddress>
</extraDetails>
</customerRequest>
</v5:createPayment>
</soap:Body>
</soap:Envelope>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<shopId xmlns="http://v5.ws.vads.lyra.com/Header/">12345678</shopId>
<requestId xmlns="http://v5.ws.vads.lyra.com/Header/">9a4bf6ef-af95-4078-b791-4e9e87888eaa</
requestId>
<timestamp xmlns="http://v5.ws.vads.lyra.com/Header/">2015-04-01T12:07:34Z</timestamp>
<mode xmlns="http://v5.ws.vads.lyra.com/Header/">TEST</mode>
<authToken xmlns="http://v5.ws.vads.lyra.com/
Header/">BmIP5CNeLyAQQDuzrFjvfoSWEZlCa5OidTV3WNqUXL4=</authToken>
</env:Header>
<soap:Body>
<ns2:createPaymentResponse xmlns:ns2="http://v5.ws.vads.lyra.com/">
<createPaymentResult>
<requestId>9a4bf6ef-af95-4078-b791-4e9e87888eaa</requestId>
<commonResponse>
<responseCode>0</responseCode>
<responseCodeDetail>Action successfully completed</responseCodeDetail>
<transactionStatusLabel>AUTHORISED</transactionStatusLabel>
<shopId>12345678</shopId>
<paymentSource>EC</paymentSource>
<submissionDate>2015-04-01T14:05:42+02:00</submissionDate>
<contractNumber>5785350</contractNumber>
</commonResponse>
<paymentResponse>
<transactionId>124478</transactionId>
<amount>1</amount>
<currency>952</currency>
<expectedCaptureDate>2015-04-01T14:07:54.396+02:00</expectedCaptureDate>
<operationType>0</operationType>
<creationDate>2015-04-01T14:07:54.387+02:00</creationDate>
<liabilityShift>NO</liabilityShift>
<transactionUuid>a27d1907d7f74be1843318dce5875b99</transactionUuid>
</paymentResponse>
<orderResponse>
<orderId>TEST-01</orderId>
</orderResponse>
<cardResponse>
<number>497010XXXXXX0000</number>
<scheme>CB</scheme>
<brand>CB</brand>
<country>CI</country>
<productCode>A</productCode>
<bankCode>17807</bankCode>
<expiryMonth>12</expiryMonth>
<expiryYear>2015</expiryYear>
</cardResponse>
<authorizationResponse>
<mode>FULL</mode>
<amount>1</amount>
<currency>952</currency>
<date>2015-04-01T14:07:54.387+02:00</date>
<number>3fe19a</number>
<result>0</result>
</authorizationResponse>
<captureResponse/>
Page - 62 / 256
API Webservices SOAP v5 - V 2.6
<customerResponse>
<billingDetails>
<email>mail@example.com</email>
<language>_CI</language>
</billingDetails>
<shippingDetails/>
<extraDetails>
<ipAddress>127.0.0.1</ipAddress>
</extraDetails>
</customerResponse>
<markResponse/>
<threeDSResponse>
<authenticationResultData>
<transactionCondition>COND_SSL</transactionCondition>
</authenticationResultData>
</threeDSResponse>
<extraResponse/>
<fraudManagementResponse>
<riskControl>
<name>CARD_FRAUD</name>
<result>OK</result>
</riskControl>
<riskControl>
<name>COMMERCIAL_CARD</name>
<result>OK</result>
</riskControl>
</fraudManagementResponse>
</createPaymentResult>
</ns2:createPaymentResponse>
</soap:Body>
</soap:Envelope>
Page - 63 / 256
API Webservices SOAP v5 - V 2.6
1. L’acheteur valide sa commande et saisit les données de sa carte sur le site marchand pour procéder
au paiement.
2. Le site marchand contacte la plateforme de paiement.
Il appelle l'opération createPayment. Il valorise l'attribut mode de l'objet threeDSRequest à
ENABLED_CREATE.
3. La plateforme de paiement, via son MPI, interroge le directory serveur VISA, Mastercard ou AMEX
(SafeKey).
Si la carte n’est pas enrôlée, la plateforme de paiement procède à la demande d’autorisation et
retourne le résultat du paiement au site marchand.
l'attribut threeDSEnrolled de l'objet authenticationRequestData de threeDSResponse est
valorisé à N.
Si la carte est enrôlée :
la plateforme de paiement renvoie au marchand les informations suivantes :
l'attribut threeDSEnrolled de l'objet authenticationRequestData de threeDSResponse est
valorisé à Y,
l’URL du site internet de la banque du porteur (ACS) vers laquelle le marchand devra rediriger
l’acheteur,
le message PAReq encodé (threeDSEncodedPareq),
l’identifiant de la requête (threeDSRequestId).
4. Le site marchand sauvegarde dans le champ MD :
l’identifiant de session contenu dans l’en-tête HTTP de la réponse (JSESSIONID ),
Page - 64 / 256
API Webservices SOAP v5 - V 2.6
Page - 65 / 256
API Webservices SOAP v5 - V 2.6
<cardHolderBirthDay>1976-04-18</cardHolderBirthDay>
</cardRequest>
</v5:createPayment>
</soap:Body>
</soap:Envelope>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<shopId xmlns="http://v5.ws.vads.lyra.com/Header/">12345678</shopId>
<requestId xmlns="http://v5.ws.vads.lyra.com/Header/">09016abd-2869-40cc-b32f-
a467bd541e42</requestId>
<timestamp xmlns="http://v5.ws.vads.lyra.com/Header/">2015-04-01T12:09:44Z</timestamp>
<mode xmlns="http://v5.ws.vads.lyra.com/Header/">TEST</mode>
<authToken xmlns="http://v5.ws.vads.lyra.com/
Header/">3fRs8IRBhkPvomIoILJmP/4sdfWg4V5AbppfGEN7PW0=</authToken>
</env:Header>
<soap:Body>
<ns2:createPaymentResponse xmlns:ns2="http://v5.ws.vads.lyra.com/">
<createPaymentResult>
<requestId>09016abd-2869-40cc-b32f-a467bd541e42</requestId>
<commonResponse>
<responseCode>0</responseCode>
<responseCodeDetail>Action successfully completed</responseCodeDetail>
</commonResponse>
<paymentResponse/>
<orderResponse/>
<cardResponse/>
<authorizationResponse/>
<captureResponse/>
<customerResponse/>
<markResponse/>
<threeDSResponse>
<authenticationRequestData>
<threeDSAcctId>98b7b83c590d4aaabab3667b4ec2</threeDSAcctId>
<threeDSAcsUrl>https://[ACS-URL]</threeDSAcsUrl>
<threeDSBrand>VISA</threeDSBrand>
<threeDSEncodedPareq>eJxVUstu2zAQ/BVBd5kPiaZkrBgkNYqka[...]</
threeDSEncodedPareq>
<threeDSEnrolled>Y</threeDSEnrolled>
<threeDSRequestId>_a7c5c935-24d1-4d6c-873e-7e29f4e5dec1</
threeDSRequestId>
</authenticationRequestData>
</threeDSResponse>
<extraResponse/>
<fraudManagementResponse/>
</createPaymentResult>
</ns2:createPaymentResponse>
</soap:Body>
</soap:Envelope>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<shopId xmlns="http://v5.ws.vads.lyra.com/Header/">12345678</shopId>
<requestId xmlns="http://v5.ws.vads.lyra.com/Header/">c63b5e8e-
e6b9-47f1-8890-98ff62f4d018</requestId>
<timestamp xmlns="http://v5.ws.vads.lyra.com/Header/">2015-09-17T09:19:44Z</timestamp>
<mode xmlns="http://v5.ws.vads.lyra.com/Header/">TEST</mode>
<authToken xmlns="http://v5.ws.vads.lyra.com/
Header/">BKlVnOafVsEJTtdQRvYgHvHVTjlt68CFKefT0s8sikk=</authToken>
</SOAP-ENV:Header>
<soap:Body>
<ns2:createPaymentResponse xmlns:ns2="http://v5.ws.vads.lyra.com/">
<createPaymentResult><requestId>c63b5e8e-e6b9-47f1-8890-98ff62f4d018</requestId>
<commonResponse>
<responseCode>0</responseCode>
<responseCodeDetail>Action successfully completed</responseCodeDetail>
<transactionStatusLabel>AUTHORISED</transactionStatusLabel>
<shopId>12345678</shopId>
<paymentSource>EC</paymentSource>
<submissionDate>2015-09-17T11:19:44+02:00</submissionDate>
<contractNumber>5555555</contractNumber>
</commonResponse>
Page - 66 / 256
API Webservices SOAP v5 - V 2.6
<paymentResponse>
<transactionId>962003</transactionId>
<amount>2990</amount>
<currency>952</currency>
<expectedCaptureDate>2015-09-17T11:19:44.732+02:00</expectedCaptureDate>
<operationType>0</operationType>
<creationDate>2015-09-17T11:19:44.702+02:00</creationDate>
<transactionUuid>04474adae6c24b688d4892a1a80833c3</transactionUuid>
<sequenceNumber>1</sequenceNumber>
<paymentType>SINGLE</paymentType>
</paymentResponse>
<orderResponse>
<orderId>myOder</orderId>
</orderResponse>
<cardResponse>
<number>497010XXXXXX0001</number>
<scheme>CB</scheme>
<brand>CB</brand>
<country>CI</country>
<productCode>F</productCode>
<expiryMonth>12</expiryMonth>
<expiryYear>2023</expiryYear>
</cardResponse>
<authorizationResponse>
<mode>FULL</mode>
<amount>2990</amount>
<currency>952</currency>
<date>2015-09-17T11:19:44.702+02:00</date>
<number>3fc075</number>
<result>0</result>
</authorizationResponse>
<captureResponse/>
<customerResponse>
<billingDetails>
<email>test@exemple.com</email>
<language>_CI</language>
</billingDetails>
<shippingDetails/>
<extraDetails/>
</customerResponse>
<markResponse/>
<threeDSResponse>
<authenticationRequestData/>
<authenticationResultData>
<brand>VISA</brand>
<enrolled>N</enrolled>
<transactionCondition>COND_3D_NOTENROLLED</transactionCondition>
</authenticationResultData>
</threeDSResponse>
<extraResponse/>
<fraudManagementResponse>
<riskControl>
<name>COMMERCIAL_CARD</name>
<result>OK</result>
</riskControl>
<riskControl>
<name>SYSTEMATIC_AUTO</name>
<result>OK</result>
</riskControl>
<riskAssesments/>
</fraudManagementResponse>
</createPaymentResult>
</ns2:createPaymentResponse>
</soap:Body>
</soap:Envelope>
Page - 67 / 256
API Webservices SOAP v5 - V 2.6
Maintenir une même session HTTP pour un paiement avec authentification 3D Secure
Maintenir une même session HTTP pour un paiement avec authentification 3D Secure
L’architecture de la plateforme de paiement repose sur un ensemble de serveurs avec répartition de
charge.
Pour assurer la continuité du processus, chaque requête associée à un même paiement doit être réalisée
avec la même session HTTP.
Ainsi pour chaque requête createPayment avec authentification 3D Secure (threeDSRequest), une session
côté serveur est créée.
L’ID de cette session doit être renvoyé dans l’en-tête HTTP de la réponse et devra être retourné dans la
requête createPayment en mode ENABLED_FINALIZE.
Selon le language utilisé, ci-dessous deux exemples pour réaliser cette opération :
En JAVA
Utilisez la propriété SESSION_MAINTAIN_PROPERTY en vous assurant qu'elle soit définie à True pour
récupérer automatiquement les informations de session associées à la requête HTTP et maintenir un
cookie avec l'ID de session (Standard Java , JAX-WS).
((BindingProvider)port).getRequestContext().put(BindingProvider.SESSION_MAINTAIN_PROPERTY,true);
En PHP
Voici un exemple de code pour récupérer l’id de session et le transmettre :
/* La méthode ci-dessous permet de récupérer l’entête HTTP de la réponse
$/$header= $client -> __getLastResponseHeaders ();
/* Dans la chaîne de caractère obtenue, nous recherchons la présence de l’ID de la session
HTTP, stockée dans l’élément "JSESSIONID" : */
if(!preg_match("#JSESSIONID=([A-Za-z0-9\.]+)#",$header, $matches)){
return " Aucun ID de Session Renvoyé. " ; //Cas d’erreur technique
}
$cookie= $matches[1] ) ;
/*La méthode ci-dessous permet de spécifier un cookie qui sera envoyé dans chaque entête http
*/
$client ->__setCookie ("JSESSIONID",$cookie );
Cette méthode permet au serveur de récupérer le contenu du header et le transmettre en tant que cookie
dans la requête HTTP.
Page - 68 / 256
API Webservices SOAP v5 - V 2.6
L'url de l'ACS est utilisée comme action du POST. Sa valeur est celle retournée dans le champ
threeDSAcsUrl.
Il faut également disposer d’une URL de retour sur le serveur pour récupérer la réponse de l'ACS retournée
par POST.
Page - 69 / 256
API Webservices SOAP v5 - V 2.6
Exemple :
PaRes:eJzNWVmPo0i2frfk/1CqeXRXsZjFtJw5YjVgg81mlpcrdjCrzWr/+gln1pLdqjvqOz0PN6UUcIg4ceIs33cCb/
85V+WnMb51eVO/fEa+wp8/xXXYRHmdvny2TOHL5vM/X7dmdotjzojD4Ra/bpW46/w0/pRHL5//hyBQHEsI/
EuyJsMvGBmvv1BUsPlCUlQUUFiAoQH5+XV7ovW4e5vR5WkdR1//6sRvtr0C076iW+j7IzDiFmZ+3b9u/
[...]
MD:pcpSryKqB0NynWVHj8LQj0uz+_66254f65-f37c-47e3-99b8-799db94b42b7
Dans cet exemple, le champ MD est composé de l’identifiant de la session et de l’identifiant de la requête,
séparés par le caractère « + » :
JSESSIONID: pcpSryKqB0NynWVHj8LQj0uz
requestId:_66254f65-f37c-47e3-99b8-799db94b42b7
Page - 70 / 256
API Webservices SOAP v5 - V 2.6
</soap:Envelope>
Page - 71 / 256
API Webservices SOAP v5 - V 2.6
</riskControl>
<riskControl>
<name>COMMERCIAL_CARD</name>
<result>OK</result>
</riskControl>
</fraudManagementResponse>
</createPaymentResult>
</ns2:createPaymentResponse>
</soap:Body>
</soap:Envelope>
2. Renseignez, dans la requête suivante, au niveau de l'objet paymentRequest, l'attribut retryUuid avec
la valeur de l'attribut transactionUuid comme suit :
<paymentRequest>
<amount>10101</amount>
<currency>952</currency>
<expectedCaptureDate>2017-01-10T16:32:09Z</expectedCaptureDate>
<retryUuid>2c9b916d95b6464aa4a0848bd4a4fd0a</retryUuid>
</paymentRequest>
Page - 72 / 256
API Webservices SOAP v5 - V 2.6
updatePayment permet de :
Modifier le montant d’une transaction (à la baisse)
Modifier la date de remise souhaitée
Les transactions pouvant faire l’objet d’une modification possèdent l’un des statuts suivants :
A valider
A valider et autoriser
En attente d’autorisation
En attente de remise
Remarque : si aucune information n'est modifiée, la requête sera rejetée avec un code erreur.
Requête à envoyer
La requête updatePayment est constituée d'un HEADER et d'un BODY.
HEADER
Valorisez le HEADER afin de transmettre la valeur des attributs shopId, requestId, timestamp, mode et
authToken (voir chapitre L'en-tête).
BODY
L'opération updatePayment prend en entrée un objet de type updatePayment.
Le type updatePayment est constitué des paramètres suivants :
Objet Format Requis
commonRequest commonRequest
queryRequest queryRequest
paymentRequest paymentRequest
Page - 73 / 256
API Webservices SOAP v5 - V 2.6
commonRequest
L'objet commonRequest permet de transmettre des informations générales sur une opération.
Un seul attribut peut être valorisé si besoin :
Attribut Requis Format
comment
string
Commentaire libre.
Le commentaire sera affiché dans l'historique de la transaction visible depuis le Back Office Marchand.
paymentRequest
L'objet paymentRequest permet de transmettre des informations liées au paiement.
Il possède les attributs suivants :
Attribut Requis Format
amount
Montant de la transaction dans sa plus petite unité monétaire .
Remarque :
n..12
Ne doit pas être envoyé à vide ou être à 0.
currency
Code de la devise de la transaction (norme ISO 4217). n3
Ex : 952 pour le Franc CFA (XOF) ou 324 pour le Franc guinéen (GNF)
expectedCaptureDate
Date de remise demandée exprimée au format ISO 8601 définit par W3C.
Exemple : 2016-07-16T19:20:00Z.
Ce paramètre est utilisé pour effectuer un paiement différé.
Si le nombre de jours entre la date de remise demandée et la date actuelle est supérieur à la durée
de validité de l'autorisation , une autorisation de 1000 XOF sera réalisée le jour de la transaction.
Ceci afin de vérifier la validité de la carte.
L’autorisation pour le montant total sera effectuée :
fonctionnement par défaut : le jour de la date de remise en banque souhaitée, dateTime
ans..40
fonctionnement avec autorisation anticipée : selon le moyen de paiement sélectionné, à J- le
nombre de jours correspondant à la durée de validité d'une autorisation avant la date de remise
en banque souhaitée.
Si vous souhaitez être notifié du résultat de cette demande d’autorisation, vous devez configurer la
règle de notification URL de notification sur autorisation par Batch dans le Back Office Marchand
(Paramétrage > Règles de notifications).
Remarque : si le délai avant remise est supérieur à 365 jours dans la requête de paiement, il est
automatiquement repositionné à 365 jours.
manualValidation
Permet de valider manuellement une transaction préalablement créée avec une validation
manuelle tant que la date de remise en banque souhaitée n’est pas dépassée.
Pour cela, cet attribut doit être valorisé à 1 (validation manuelle).
Remarques : n1
Si le paiement a été créé en validation automatique, l'attibut manualValidation n'a aucune
utilité.
Si manualValidation est valorisé à 0, l'action demandée ne sera pas prise en considération.
acquirerTransientData
Permet de transmettre des informations utiles à l'acquéreur pour réaliser des contrôles anti-fraude:
URL de la boutique, nom de la boutique, numéro de commande, frais de port, méthode de livraison,
etc.. json
Exemple :
acquirerTransientData = {VISANET={ "field91": "10XXXXXXX", "field92": "Lyra
Peru", "field93": "specific data" }}
Page - 74 / 256
API Webservices SOAP v5 - V 2.6
queryRequest
L'objet queryRequest permet d’interroger une transaction pour en connaître ses différents attributs.
L'attribut à valoriser est le suivant :
Attribut Requis Format
uuid
string
Référence unique de la transaction.
Les attributs orderId, subscriptionId et paymentToken ne sont pas aujourd'hui pris en considération pour
cette opération.
Page - 75 / 256
API Webservices SOAP v5 - V 2.6
Réponse en retour
La réponse à l'opération updatePayment est constituée d'un HEADER et d'un BODY de type
updatePaymentResponse.
HEADER
Le HEADER est transmis par la plateforme de paiement.
Vérifiez la valeur du jeton d'authentification (voir chapitre Vérifier l'en-tête SOAP dans la réponse).
BODY
La structure du message updatePaymentResponse est la suivante :
Nom Type
updatePaymentResult updatePaymentResult
Les données retournées dans la réponse dépendent des objets et attributs envoyés dans la requête.
Cependant, quelle que soit l'opération, l'attribut responseCode de l'objet CommonResponse doit avant
tout être analysé :
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
Page - 76 / 256
API Webservices SOAP v5 - V 2.6
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Attribut Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès (à ne pas confondre avec le statut de la
transaction).
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
transactionStatusLabel string
Libellé du statut de la transaction. Les valeurs possibles sont :
AUTHORISED
En attente de remise.
La transaction est acceptée et sera remise en banque automatiquement à la date prévue.
AUTHORISED_TO_VALIDATE
A valider.
La transaction, créée en validation manuelle, est autorisée. Le marchand doit valider manuellement la
remise en banque. La transaction peut être validée tant que la date de remise n’est pas dépassée. Si cette
date est dépassée, le paiement prend le statut Expiré (statut définitif).
WAITING_AUTHORISATION
En attente d’autorisation.
La date de remise demandée est supérieure à la date de fin de validité d’une demande d’autorisation.
Une autorisation de 1000 XOF a été réalisée et acceptée par la banque émettrice. La demande d’autorisation
et la remise en banque seront déclenchées automatiquement.
WAITING_AUTHORISATION_TO_VALIDATE
A valider et à autoriser.
La date de remise demandée est supérieure à la date de fin de validité d’une demande d’autorisation.
Une autorisation de 1000 XOF a été réalisée et acceptée par la banque émettrice. La demande d’autorisation
sera déclenchée automatiquement à J-1 avant la date de remise en banque. Le paiement pourra être
accepté ou refusé. La remise en banque est automatique.
REFUSED
Refusée.
La transaction est refusée.
shopId n8
Identifiant de la boutique.
paymentSource string
Origine de la transaction. Les valeurs possibles sont : (enum)
EC pour le commerce électronique.
submissionDate dateTime
Date et heure UTC de la transaction exprimée au format W3C (exemple : 2016-07-16T19:20:00Z). ans..40
contractNumber string
Numéro de contrat commerçant utilisé.
Page - 77 / 256
API Webservices SOAP v5 - V 2.6
paymentResponse
L'objet paymentResponse détaille les informations sur la transaction.
Attribut Format
transactionUuid string
Référence unique de la transaction générée par la plateforme de paiement. ans32
transactionId
Identifiant de la transaction lors de la création ou la modification d'une transaction de paiement.
Sa valeur est unique sur une même journée.
an..6
Soit cet identifiant est généré par la plateforme.
amount
n..12
Montant de la transaction dans sa plus petite unité monétaire .
currency
Code de la devise de la transaction (norme ISO 4217). n3
Ex : 952 pour le Franc CFA (XOF) ou 324 pour le Franc guinéen (GNF)
effectiveAmount n..12
Montant de la transaction dans la devise réellement utilisée pour effectuer la remise en banque.
effectiveCurrency n3
Devise réellement utilisée pour effectuer la remise en banque.
expectedCaptureDate
Date de remise en banque souhaitée. dateTime
Remarque : si le délai avant remise est supérieur à 365 jours dans la requête de paiement, il est ans..40
automatiquement repositionné à 365 jours.
operationType n1
Type d'opération.
Les valeurs possibles sont :
0 pour une opération de débit.
creationDate dateTime
Date et heure de l’enregistrement de la transaction exprimée au format W3C. ans..40
externalTransactionId string
Référence fournie par un tiers : numéro de transaction pour PayPal, Boleto, RRN pour Prism, etc…
liabilityShift string
Transfert de responsabilité.
Les valeurs possibles sont :
YES lorsque le paiement est garanti.
paymentType string
Type de paiement. (enum)
Les valeurs possibles sont :
SINGLE
Paiement en une seule fois.
INSTALLMENT
Paiement en plusieurs fois.
SPLIT
Paiement effectué avec plusieurs moyens de paiement.
SUBSCRIPTION
Paiement par alias ou paiement récurrent. S'applique aussi aux transactions de type Vérification (création et
mise à jour d'un alias).
RETRY
Page - 78 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
Lors d'un paiement refusé, il est possible de réitérer la demande de paiement. Pour toute(s) réitération(s), le
paiement est valorisé avec cette valeur.
Remarque :
Les valeurs INSTALLMENT et SPLIT peuvent être retournées uniquement si des paiements ont été créés via le
formulaire de paiement.
sequenceNumber n..3
Numéro de séquence de la transaction. Sa valeur est fonction du contexte du paiement :
Est valorisé à "1" pour un paiement unitaire.
Prend la valeur du numéro d’échéance dans le cas d’un paiement en plusieurs fois créé à partir du formulaire
de paiement.
paymentError n..3
Complément d’information en cas d’erreur technique. Retourne un code d'erreur associé à l'erreur technique
(voir chapitre Codes d'erreurs pouvant survenir durant le paiement).
nsu string
Numéro de Séquence Unique. Utilisé par certains acquéreurs d'Amérique Latine.
Retourné lorsque extendedResponseRequest.isNsuRequested est valorisé à 1 dans la requête.
wallet string
Nom du wallet (Google Pay, Masterpass etc.).
Retourné lorsque extendedResponseRequest.isWalletRequested est valorisé à 1 dans la requête.
orderResponse
L'objet orderResponse détaille la commande.
Attribut Format
orderId string
Référence de la commande. an..64
extInfo
Données personnalisées retournées en fonction des besoins.
Exemple : extInfo.key, extInfo.value
extInfo
key : nom de la donnée (son format est "string").
cardResponse
L'objet cardResponse détaille les informations du moyen de paiement utilisé.
Attribut Format
number string
Numéro de carte masqué. Contient les 6 premiers chiffres du numéro, suivi par “XXXXXX” et enfin les 4
derniers chiffres.
IBAN et BIC utilisés pour le paiement, séparés par un « _ » dans le cas d’un paiement par prélèvement.
scheme string
Type de la carte.
brand string
Marque de la carte utilisée pour la transaction
country ISO 3166
Code pays du pays d’émission de la carte (Code numérique ISO 3166).
productCode an..3
Code produit de la carte.
bankCode n..5
Code banque de la banque émettrice.
bankLabel string
Nom de la banque émettrice.
Page - 79 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
Retourné uniquement si extendedResponseRequest.isBankLabel est valorisé à 1 dans la requête.
expiryMonth n..2
Mois d’expiration entre 1 et 12 (ex: 3 pour mars, 10 pour octobre).
expiryYear n4
Année d’expiration sur 4 chiffres (ex : 2023).
authorizationResponse
L'objet authorizationResponse permet d'obtenir des informations sur la demande d'autorisation.
Attribut Format
mode string
Spécifie de quelle manière est réalisée la demande d’autorisation. Deux valeurs possibles :
MARK
Une autorisation de 1000 XOF a été réalisée afin de vérifier la validité de la carte.
Ce cas se présente lorsque la date de remise dépasse la période de validité d'une autorisation .
FULL
Autorisation pour le montant total demandé dans la requête.
amount n..12
Montant de l’autorisation dans la plus petite unité monétaire dans le cas où mode vaut FULL.
currency n3
Code de la monnaie utilisée lors de la demande d’autorisation (suivant la norme ISO 4217) dans le cas où mode
vaut FULL.
date dateTime
Date et heure de la demande d’autorisation dans le cas où mode vaut FULL. ans..40
number an..12
Numéro de la demande d’autorisation dans le cas où mode vaut FULL.
result an..12
Code retour de la demande d’autorisation retourné par la banque émettrice en cas de refus.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour d'une demande d'autorisation.
captureResponse
L'objet captureResponse permet d'obtenir des informations à propos de la remise dans le cas où la
transaction est remisée.
Attribut Format
date dateTime
Date et heure de remise. ans..40
number n3
Numéro de remise.
reconciliationStatus n1
Statut du rapprochement bancaire de la transaction.
refundAmount n..12
Montant ayant déjà fait l’objet d’un remboursement dans sa plus petite unité monétaire.
refundCurrency n3
Devise du montant ayant déjà fait l’objet d’un remboursement (Code monnaie ISO 4217 Ex : 952 pour le Franc CFA
(XOF) ou 324 pour le Franc guinéen (GNF) .
chargeback boolean
Litige, impayé. Les valeurs possibles sont :
0 : transaction ne faisant pas l'objet d'un litige.
customerResponse
L'objet customerResponse détaille de nombreuses informations à propos de l'acheteur.
Page - 80 / 256
API Webservices SOAP v5 - V 2.6
firstName string
Nom de l'acheteur. ans..128
lastName string
Prénom de l'acheteur. ans..128
phoneNumber
string ans..32
Numéro de téléphone de l'acheteur.
email
string
E-mail de l'acheteur.
ans..150
Paramètre obligatoire lors de la création d'un alias.
streetNumber
Numéro de rue de l'acheteur. string an..5
Remarque : si cet attribut est présent dans la requête, il ne peut être envoyé vide.
address string
Adresse de l'acheteur. ans..255
district string
Quartier de l'acheteur. ans..127
zipCode
string ans..64
Code postal de l'acheteur.
city string
Ville de l'acheteur. ans..128
state string
Etat/Région de l'acheteur. ans..128
country
Pays de l'acheteur selon la norme ISO 3166.
Exemples de valeurs possibles :
Page - 81 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
language
Langue de l'acheteur selon la norme ISO 639-1.
Exemples de valeurs possibles :
tr pour le turc
cellPhoneNumber
string ans..32
Numéro de téléphone mobile
legalName string
Raison sociale de la société. ans..128
Attribut Format
type
Type d'acheteur.
Les valeurs possibles sont : string
PRIVATE pour un particulier. (enum)
firstName string
Nom de l'acheteur. ans..128
lastName string
Prénom de l'acheteur. ans..128
phoneNumber string
Numéro de téléphone de l'acheteur. ans..32
streetNumber
Numéro de rue pour la livraison. string an..5
Remarque : si cet attribut est présent dans la requête, il ne peut être envoyé vide.
address string
Adresse de livraison. ans..255
address2 string
Complément d'adresse de livraison. ans..255
district string
Quartier de livraison. ans..127
zipCode string
Code postal de livraison. ans..64
city string
Ville de livraison. ans..128
state string
Etat/Région de livraison. ans..128
country
string - a2
Pays de livraison.
Page - 82 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
deliveryCompanyName string
Informations sur le transporteur. ans..128
shippingSpeed
Mode de livraison sélectionné.
Les valeurs possibles sont : string
STANDARD pour une livraison standard. (enum)
shippingMethod
Méthode de livraison utilisée.
Les valeurs possibles sont :
RECLAIM_IN_SHOP pour le retrait de la marchandise en magasin.
RELAY_POINT pour l'utilisation d'un réseau de points de retrait tiers (Kiala, Alveol, etc). string
(enum)
RECLAIM_IN_STATION pour le retrait dans un aéroport, une garde ou une agence de voyage.
legalName string
Raison sociale de la société. ans..128
identityCode
Permet d'identifier de façon unique chaque citoyen au sein d'un pays. string
Par exemple, au Brésil, ClearSale impose que ce champ soit valorisé avec le CPF/ CNPJ (format numérique, de ans..255
longueur comprise entre 11 et 20 digits).
markResponse
L'objet markResponse permet d'obtenir des informations sur la demande d'autorisation à 1000 XOF .
Attribut Format
amount n..12
Montant utilisé pour vérifier la validité de la carte, dans la plus petite unité monétaire .
currency n3
Code de la monnaie utilisée pour vérifier la validité de la carte (suivant la norme ISO 4217) Ex : 952 pour le Franc
CFA (XOF) ou 324 pour le Franc guinéen (GNF) .
date
dateTime
Date et heure de la demande d’autorisation réalisée dans le cas où l'attribut mode de l'objet
ans..40
authorizationResponse vaut MARK.
number
dateTime
Numéro d’autorisation de la demande d’autorisation dans le cas où l'attribut mode de l'objet
ans..40
authorizationResponse vaut MARK.
result n..2
Résultat de la demande d’autorisation réalisée dans le cas où l'attribut mode de l'objet authorizationResponse
vaut MARK.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour d'une demande d'autorisation.
threeDSResponse
L'objet threeDSResponse permet d'obtenir des informations à propos de l'authentification 3D Secure v1.
Il contient un attribut authenticationResultData qui décrit le résultat de l’authentification 3D Secure v1.
Il est composé des attributs suivants :
Page - 83 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
transactionCondition string
Statut de l'authentification 3D Secure. Les valeurs possibles sont :
COND_3D_SUCCESS
Succès de l'authentification.
Le marchand et le porteur de la carte sont inscrits au programme 3D Secure et le porteur s’est authentifié
correctement.
COND_3D_FAILURE
Echec de l’authentification.
Le marchand et le porteur de la carte sont inscrits au programme 3D Secure mais l’acheteur n’a pas réussi
à s’authentifier (mauvais mot de passe).
COND_3D_ERROR
Authentification en erreur.
Le marchand participe au programme 3D Secure mais le serveur de la plateforme de paiement a rencontré
un problème technique durant le processus d’authentification (lors de la vérification de l’inscription de la
carte au programme 3D ou de l’authentification du porteur).
COND_3D_NOTENROLLED
Porteur non enrôlé.
Le marchand participe au programme 3D Secure mais la carte du porteur n’est pas enrôlée.
COND_3D_ATTEMPT
Tentative d'authentification.
Le marchand et le porteur de la carte sont inscrits au programme 3D Secure mais l’acheteur n’a pas eu
à s’authentifier (le serveur de contrôle d’accès de la banque qui a émis la carte n’implémente que la
génération d’une preuve de tentative d’authentification).
COND_SSL
3D Secure non applicable.
Le marchand n’est pas enrôlé à 3D Secure ou le canal de vente n’est pas couvert par cette garantie.
enrolled
Statut enrôlement du porteur. Les valeurs possibles sont :
Y pour un statut enrôlé.
string
N pour un statut non enrôlé.
status a1
Statut de l'authentification du porteur. Les valeurs possibles sont :
Y pour un statut authentifié 3 DS.
eci string
Indicateur de commerce Electronique.
La valeur eci est fonction du statut de l’authentification 3DS et du type de carte. Les valeurs possibles sont :
xid string
Numéro de transaction 3DS.
cavvAlgorithm n1
Algorithme de vérification de l’authentification du porteur (CAVV). Les valeurs possibles sont :
0 pour HMAC.
1 pour CVV.
Page - 84 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
2 pour CVV_ATN.
cavv string
Certificat de l’ACS.
signValid string
Signature de l’authentification 3DS.
brand string
Réseau de la carte.
fraudManagementResponse
L'objet fraudManagementResponse permet d'obtenir les résultats des contrôles de gestion de risques.
La réponse se décompose en l'analyse des attributs :
riskControl
Retourne le résultat du contrôle de gestion de risques effectué.
riskAnalysis
Retourne le résultat de l'analyse de gestion de risques effectué par un système externe (Konduto,
ClearSale, CyberSource,...).
riskAssessment
Retourne le résultat de l'analyse de gestion des risques avancée effectuée par la plateforme de
paiement.
L'attribut riskControl
Le format est le suivant : name1=result1;name2=result2
Nom Format Description
name string Nom de la règle de gestion de risque.
result string Résultat du contrôle.
L'attribut riskAnalysis
Page - 85 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
score string
Score attribué à chaque transaction permettant d'évaluer le risque qui lui est associé.
resultCode string
Code renvoyé par un analyseur de risque externe.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour renvoyés par l'analyseur de risque
externe.
status string
Statut de l'analyse de risque. Les valeurs possibles sont les suivantes :
P_SEND_OK, "Sent to clearsale and successfully processed"
Succès
P_TO_SEND, "Transaction analysis is scheduled to be sent to risk analyzer"
L'envoi est programmé
P_TO_SEND_KO, "Problem when tried to send to risk analyzer"
Erreur de traitement
P_PENDING_AT_ANALYZER, "Analysis result is still being processed by the risk analyzer. We should keep
checking/waiting for the analysis result"
En cours de traitement par l'analyseur
P_MANUAL, "Analysis should be requested through user request (not automatically)"
Attente d'envoi manuel
P_SKIPPED, "Analysis request discarded by current transaction status/problem"
Ecarté
P_SEND_EXPIRED, "Analysis request expired"
Expiré
requestId string
Identifiant de l’analyse chez l’analyseur de risque.
extraInfo extInfo
Pas de valorisation pour ClearSale.
Pour CyberSource, cet attribut retourne tous les codes renvoyés par le DecisionManager.
key : nom de la donnée (son format est "string").
Exemple :
COR-BA=Adresse de facturation corrigée ou corrigeable
A=Changements d'adresse excessifs. L'acheteur a changé d'adresse de facturation au moins deux fois au
cours des six derniers mois.
etc.
L'attribut riskAssessment
Valeurs Description
ENABLE_3DS 3D Secure activé.
DISABLE_3DS 3D Secure désactivé.
MANUAL_VALIDATION La transaction est créée en validation manuelle.
La remise du paiement est bloquée temporairement pour permettre au marchand de
procéder à toutes les vérifications souhaitées.
REFUSE La transaction est refusée.
RUN_RISK_ANALYSIS Appel à un analyseur de risques externes sous condition que le marchand possède un
contrat.
Se référer à la description du champ vads_risk_analysis_result pour identifier la liste
des valeurs possibles et leur description.
INFORM Une alerte est remontée.
Le marchand est averti qu’un risque est identifié.
Le marchand est informé via une ou plusieurs des règles du centre de notification (URL
de notification, e-mail ou SMS).
Page - 86 / 256
API Webservices SOAP v5 - V 2.6
extraResponse
L'objet extraResponse permet d'obtenir des informations supplémentaires à propos du paiement.
Attribut Format
paymentOptionCode string
Code de l'option de paiement utilisée lors du paiement.
paymentOptionOccNumb n..2
Nombre d'échéances lors d'un paiement en plusieurs fois.
Par exemple, pour un paiement en trois fois, cet attribut sera valorisé à 3.
updatePaymentDetails est uniquement disponible pour les transactions Klarna pour le moment, sous
condition que celles-ci :
possèdent un panier
possèdent l’un des statuts suivants :
A valider et autoriser
A valider
A autoriser
En attente de remise
Remisé
soient d'un montant global à la baisse ou constant (pas d'augmentation)
Requête à envoyer
La requête updatePaymentDetails est constituée d'un HEADER et d'un BODY.
HEADER
Valorisez le HEADER afin de transmettre la valeur des attributs shopId, requestId, timestamp, mode et
authToken (voir chapitre L'en-tête).
BODY
L'opération updatePaymentDetails prend en entrée un objet de type updatePaymentDetails.
Le type updatePaymentDetails est constitué des paramètres suivants :
Objet Format Requis
queryRequest queryRequest
shoppingCartRequest shoppingCartRequest
Page - 87 / 256
API Webservices SOAP v5 - V 2.6
queryRequest
L'objet queryRequest permet d’interroger une transaction pour en connaître ses différents attributs.
L'attribut à valoriser est le suivant :
Attribut Requis Format
uuid
string
Référence unique de la transaction.
Les attributs orderId, subscriptionId et paymentToken ne sont pas aujourd'hui pris en considération pour
cette opération.
shoppingCartRequest
L'objet shoppingCartRequest permet de transmettre le contenu du panier modifié.
Il doit contenir la totalité des attributs qui permettront de définir le panier définitif.
Remarque :
Si un attribut est supprimé dans la requête, il est supprimé définitivement. Pour pallier à toute erreur ou
omission, tous les champs sont requis. Nous vous conseillons de les envoyer dans la requête même si l'un
d'entre eux est valorisé à 0 ou vide.
Attribut Requis Format
insuranceAmount
n..3
Montant de l'assurance
shippingAmount
n..3
Frais d'expédition.
cartItemInfo
Champs personnalisables permettant d'ajouter les éléments du panier.
L'attribut cartItemInfo est composé de sous objets :
productLabel : nom du produit. Son format est "string".
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 cartItemInfo
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
Tableau 9 : Valeurs associées à productType
productRef : référence produit. Son format est "string".
Page - 88 / 256
API Webservices SOAP v5 - V 2.6
Exemple :
<cartItemInfo>
<productLabel>CHIPS</productLabel>
<productType>FOOD_AND_GROCERY</productType>
<productRef>188545</productRef>
<productQty>10</productQty>
<productAmount>10000</productAmount>
</cartItemInfo>
L'attribut taxAmount n'est pas aujourd'hui pris en considération pour cette opérartion.
Réponse en retour
La réponse à l'opération updatePaymentDetails est constituée d'un HEADER et d'un BODY de type
updatePaymentDetailsResponse.
HEADER
Le HEADER est transmis par la plateforme de paiement.
Vérifiez la valeur du jeton d'authentification (voir chapitre Vérifier l'en-tête SOAP dans la réponse).
BODY
La structure du message updatePaymentDetailsResponse est la suivante :
Nom Type
updatePaymentDetailsResult updatePaymentDetailsResult
Remarque : l'objet subscriptionResponse est retourné mais n'est pas valorisé dans la réponse.
Les données retournées dans la réponse dépendent des objets et attributs envoyés dans la requête.
Cependant, quelle que soit l'opération, l'attribut responseCode de l'objet CommonResponse doit avant
tout être analysé :
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Page - 89 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès (à ne pas confondre avec le statut de la
transaction).
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
transactionStatusLabel string
Libellé du statut de la transaction. Les valeurs possibles sont :
AUTHORISED
En attente de remise.
La transaction est acceptée et sera remise en banque automatiquement à la date prévue.
AUTHORISED_TO_VALIDATE
A valider.
La transaction, créée en validation manuelle, est autorisée. Le marchand doit valider manuellement la
remise en banque. La transaction peut être validée tant que la date de remise n’est pas dépassée. Si cette
date est dépassée, le paiement prend le statut Expiré (statut définitif).
WAITING_AUTHORISATION
En attente d’autorisation.
La date de remise demandée est supérieure à la date de fin de validité d’une demande d’autorisation.
Une autorisation de 1000 XOF a été réalisée et acceptée par la banque émettrice. La demande d’autorisation
et la remise en banque seront déclenchées automatiquement.
WAITING_AUTHORISATION_TO_VALIDATE
A valider et à autoriser.
La date de remise demandée est supérieure à la date de fin de validité d’une demande d’autorisation.
Une autorisation de 1000 XOF a été réalisée et acceptée par la banque émettrice. La demande d’autorisation
sera déclenchée automatiquement à J-1 avant la date de remise en banque. Le paiement pourra être
accepté ou refusé. La remise en banque est automatique.
CAPTURED
La transaction est remise en banque.
shopId n8
Identifiant de la boutique.
paymentSource string
Origine de la transaction. Les valeurs possibles sont : (enum)
EC pour le commerce électronique.
submissionDate dateTime
Date et heure UTC de la transaction exprimée au format W3C (exemple : 2016-07-16T19:20:00Z). ans..40
contractNumber string
Numéro de contrat commerçant utilisé.
Page - 90 / 256
API Webservices SOAP v5 - V 2.6
paymentResponse
L'objet paymentResponse détaille les informations sur la transaction.
Attribut Format
transactionUuid string
Référence unique de la transaction générée par la plateforme de paiement. ans32
transactionId
Identifiant de la transaction lors de la création ou la modification d'une transaction de paiement.
Sa valeur est unique sur une même journée.
an..6
Soit cet identifiant est généré par la plateforme.
amount
n..12
Montant de la transaction dans sa plus petite unité monétaire .
currency
Code de la devise de la transaction (norme ISO 4217). n3
Ex : 952 pour le Franc CFA (XOF) ou 324 pour le Franc guinéen (GNF)
effectiveAmount n..12
Montant de la transaction dans la devise réellement utilisée pour effectuer la remise en banque.
effectiveCurrency n3
Devise réellement utilisée pour effectuer la remise en banque.
expectedCaptureDate
Date de remise en banque souhaitée. dateTime
Remarque : si le délai avant remise est supérieur à 365 jours dans la requête de paiement, il est ans..40
automatiquement repositionné à 365 jours.
operationType n1
Type d'opération.
Les valeurs possibles sont :
0 pour une opération de débit.
creationDate dateTime
Date et heure de l’enregistrement de la transaction exprimée au format W3C. ans..40
externalTransactionId string
Référence fournie par un tiers : numéro de transaction pour PayPal, Boleto, RRN pour Prism, etc…
liabilityShift string
Transfert de responsabilité.
Les valeurs possibles sont :
YES lorsque le paiement est garanti.
paymentType string
Type de paiement. (enum)
Les valeurs possibles sont :
SINGLE
Paiement en une seule fois.
INSTALLMENT
Paiement en plusieurs fois.
SPLIT
Paiement effectué avec plusieurs moyens de paiement.
SUBSCRIPTION
Paiement par alias ou paiement récurrent. S'applique aussi aux transactions de type Vérification (création et
mise à jour d'un alias).
RETRY
Page - 91 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
Lors d'un paiement refusé, il est possible de réitérer la demande de paiement. Pour toute(s) réitération(s), le
paiement est valorisé avec cette valeur.
Remarque :
Les valeurs INSTALLMENT et SPLIT peuvent être retournées uniquement si des paiements ont été créés via le
formulaire de paiement.
sequenceNumber n..3
Numéro de séquence de la transaction. Sa valeur est fonction du contexte du paiement :
Est valorisé à "1" pour un paiement unitaire.
Prend la valeur du numéro d’échéance dans le cas d’un paiement en plusieurs fois créé à partir du formulaire
de paiement.
paymentError n..3
Complément d’information en cas d’erreur technique. Retourne un code d'erreur associé à l'erreur technique
(voir chapitre Codes d'erreurs pouvant survenir durant le paiement).
nsu string
Numéro de Séquence Unique. Utilisé par certains acquéreurs d'Amérique Latine.
Retourné lorsque extendedResponseRequest.isNsuRequested est valorisé à 1 dans la requête.
wallet string
Nom du wallet (Google Pay, Masterpass etc.).
Retourné lorsque extendedResponseRequest.isWalletRequested est valorisé à 1 dans la requête.
orderResponse
L'objet orderResponse détaille la commande.
Attribut Format
orderId string
Référence de la commande. an..64
extInfo
Données personnalisées retournées en fonction des besoins.
Exemple : extInfo.key, extInfo.value
extInfo
key : nom de la donnée (son format est "string").
cardResponse
L'objet cardResponse détaille les informations du moyen de paiement utilisé.
Attribut Format
number string
Numéro de carte masqué. Contient les 6 premiers chiffres du numéro, suivi par “XXXXXX” et enfin les 4
derniers chiffres.
IBAN et BIC utilisés pour le paiement, séparés par un « _ » dans le cas d’un paiement par prélèvement.
scheme string
Type de la carte.
brand string
Marque de la carte utilisée pour la transaction
country ISO 3166
Code pays du pays d’émission de la carte (Code numérique ISO 3166).
productCode an..3
Code produit de la carte.
bankCode n..5
Code banque de la banque émettrice.
bankLabel string
Nom de la banque émettrice.
Page - 92 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
Retourné uniquement si extendedResponseRequest.isBankLabel est valorisé à 1 dans la requête.
expiryMonth n..2
Mois d’expiration entre 1 et 12 (ex: 3 pour mars, 10 pour octobre).
expiryYear n4
Année d’expiration sur 4 chiffres (ex : 2023).
authorizationResponse
L'objet authorizationResponse permet d'obtenir des informations sur la demande d'autorisation.
Attribut Format
mode string
Spécifie de quelle manière est réalisée la demande d’autorisation. Deux valeurs possibles :
MARK
Une autorisation de 1000 XOF a été réalisée afin de vérifier la validité de la carte.
Ce cas se présente lorsque la date de remise dépasse la période de validité d'une autorisation .
FULL
Autorisation pour le montant total demandé dans la requête.
amount n..12
Montant de l’autorisation dans la plus petite unité monétaire dans le cas où mode vaut FULL.
currency n3
Code de la monnaie utilisée lors de la demande d’autorisation (suivant la norme ISO 4217) dans le cas où mode
vaut FULL.
date dateTime
Date et heure de la demande d’autorisation dans le cas où mode vaut FULL. ans..40
number an..12
Numéro de la demande d’autorisation dans le cas où mode vaut FULL.
result an..12
Code retour de la demande d’autorisation retourné par la banque émettrice en cas de refus.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour d'une demande d'autorisation.
captureResponse
L'objet captureResponse permet d'obtenir des informations à propos de la remise dans le cas où la
transaction est remisée.
Attribut Format
date dateTime
Date et heure de remise. ans..40
number n3
Numéro de remise.
reconciliationStatus n1
Statut du rapprochement bancaire de la transaction.
refundAmount n..12
Montant ayant déjà fait l’objet d’un remboursement dans sa plus petite unité monétaire.
refundCurrency n3
Devise du montant ayant déjà fait l’objet d’un remboursement (Code monnaie ISO 4217 Ex : 952 pour le Franc CFA
(XOF) ou 324 pour le Franc guinéen (GNF) .
chargeback boolean
Litige, impayé. Les valeurs possibles sont :
0 : transaction ne faisant pas l'objet d'un litige.
customerResponse
L'objet customerResponse détaille de nombreuses informations à propos de l'acheteur.
Page - 93 / 256
API Webservices SOAP v5 - V 2.6
firstName string
Nom de l'acheteur. ans..128
lastName string
Prénom de l'acheteur. ans..128
phoneNumber
string ans..32
Numéro de téléphone de l'acheteur.
email
string
E-mail de l'acheteur.
ans..150
Paramètre obligatoire lors de la création d'un alias.
streetNumber
Numéro de rue de l'acheteur. string an..5
Remarque : si cet attribut est présent dans la requête, il ne peut être envoyé vide.
address string
Adresse de l'acheteur. ans..255
district string
Quartier de l'acheteur. ans..127
zipCode
string ans..64
Code postal de l'acheteur.
city string
Ville de l'acheteur. ans..128
state string
Etat/Région de l'acheteur. ans..128
country
Pays de l'acheteur selon la norme ISO 3166.
Exemples de valeurs possibles :
Page - 94 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
language
Langue de l'acheteur selon la norme ISO 639-1.
Exemples de valeurs possibles :
tr pour le turc
cellPhoneNumber
string ans..32
Numéro de téléphone mobile
legalName string
Raison sociale de la société. ans..128
Attribut Format
type
Type d'acheteur.
Les valeurs possibles sont : string
PRIVATE pour un particulier. (enum)
firstName string
Nom de l'acheteur. ans..128
lastName string
Prénom de l'acheteur. ans..128
phoneNumber string
Numéro de téléphone de l'acheteur. ans..32
streetNumber
Numéro de rue pour la livraison. string an..5
Remarque : si cet attribut est présent dans la requête, il ne peut être envoyé vide.
address string
Adresse de livraison. ans..255
address2 string
Complément d'adresse de livraison. ans..255
district string
Quartier de livraison. ans..127
zipCode string
Code postal de livraison. ans..64
city string
Ville de livraison. ans..128
state string
Etat/Région de livraison. ans..128
country
string - a2
Pays de livraison.
Page - 95 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
deliveryCompanyName string
Informations sur le transporteur. ans..128
shippingSpeed
Mode de livraison sélectionné.
Les valeurs possibles sont : string
STANDARD pour une livraison standard. (enum)
shippingMethod
Méthode de livraison utilisée.
Les valeurs possibles sont :
RECLAIM_IN_SHOP pour le retrait de la marchandise en magasin.
RELAY_POINT pour l'utilisation d'un réseau de points de retrait tiers (Kiala, Alveol, etc). string
(enum)
RECLAIM_IN_STATION pour le retrait dans un aéroport, une garde ou une agence de voyage.
legalName string
Raison sociale de la société. ans..128
identityCode
Permet d'identifier de façon unique chaque citoyen au sein d'un pays. string
Par exemple, au Brésil, ClearSale impose que ce champ soit valorisé avec le CPF/ CNPJ (format numérique, de ans..255
longueur comprise entre 11 et 20 digits).
markResponse
L'objet markResponse permet d'obtenir des informations sur la demande d'autorisation à 1000 XOF .
Attribut Format
amount n..12
Montant utilisé pour vérifier la validité de la carte, dans la plus petite unité monétaire .
currency n3
Code de la monnaie utilisée pour vérifier la validité de la carte (suivant la norme ISO 4217) Ex : 952 pour le Franc
CFA (XOF) ou 324 pour le Franc guinéen (GNF) .
date
dateTime
Date et heure de la demande d’autorisation réalisée dans le cas où l'attribut mode de l'objet
ans..40
authorizationResponse vaut MARK.
number
dateTime
Numéro d’autorisation de la demande d’autorisation dans le cas où l'attribut mode de l'objet
ans..40
authorizationResponse vaut MARK.
result n..2
Résultat de la demande d’autorisation réalisée dans le cas où l'attribut mode de l'objet authorizationResponse
vaut MARK.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour d'une demande d'autorisation.
threeDSResponse
L'objet threeDSResponse permet d'obtenir des informations à propos de l'authentification 3D Secure v1.
Il contient un attribut authenticationResultData qui décrit le résultat de l’authentification 3D Secure v1.
Il est composé des attributs suivants :
Page - 96 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
transactionCondition string
Statut de l'authentification 3D Secure. Les valeurs possibles sont :
COND_3D_SUCCESS
Succès de l'authentification.
Le marchand et le porteur de la carte sont inscrits au programme 3D Secure et le porteur s’est authentifié
correctement.
COND_3D_FAILURE
Echec de l’authentification.
Le marchand et le porteur de la carte sont inscrits au programme 3D Secure mais l’acheteur n’a pas réussi
à s’authentifier (mauvais mot de passe).
COND_3D_ERROR
Authentification en erreur.
Le marchand participe au programme 3D Secure mais le serveur de la plateforme de paiement a rencontré
un problème technique durant le processus d’authentification (lors de la vérification de l’inscription de la
carte au programme 3D ou de l’authentification du porteur).
COND_3D_NOTENROLLED
Porteur non enrôlé.
Le marchand participe au programme 3D Secure mais la carte du porteur n’est pas enrôlée.
COND_3D_ATTEMPT
Tentative d'authentification.
Le marchand et le porteur de la carte sont inscrits au programme 3D Secure mais l’acheteur n’a pas eu
à s’authentifier (le serveur de contrôle d’accès de la banque qui a émis la carte n’implémente que la
génération d’une preuve de tentative d’authentification).
COND_SSL
3D Secure non applicable.
Le marchand n’est pas enrôlé à 3D Secure ou le canal de vente n’est pas couvert par cette garantie.
enrolled
Statut enrôlement du porteur. Les valeurs possibles sont :
Y pour un statut enrôlé.
string
N pour un statut non enrôlé.
status a1
Statut de l'authentification du porteur. Les valeurs possibles sont :
Y pour un statut authentifié 3 DS.
eci string
Indicateur de commerce Electronique.
La valeur eci est fonction du statut de l’authentification 3DS et du type de carte. Les valeurs possibles sont :
xid string
Numéro de transaction 3DS.
cavvAlgorithm n1
Algorithme de vérification de l’authentification du porteur (CAVV). Les valeurs possibles sont :
0 pour HMAC.
1 pour CVV.
Page - 97 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
2 pour CVV_ATN.
cavv string
Certificat de l’ACS.
signValid string
Signature de l’authentification 3DS.
brand string
Réseau de la carte.
fraudManagementResponse
L'objet fraudManagementResponse permet d'obtenir les résultats des contrôles de gestion de risques.
La réponse se décompose en l'analyse des attributs :
riskControl
Retourne le résultat du contrôle de gestion de risques effectué.
riskAnalysis
Retourne le résultat de l'analyse de gestion de risques effectué par un système externe (Konduto,
ClearSale, CyberSource,...).
riskAssessment
Retourne le résultat de l'analyse de gestion des risques avancée effectuée par la plateforme de
paiement.
L'attribut riskControl
Le format est le suivant : name1=result1;name2=result2
Nom Format Description
name string Nom de la règle de gestion de risque.
result string Résultat du contrôle.
L'attribut riskAnalysis
Page - 98 / 256
API Webservices SOAP v5 - V 2.6
Attribut Format
score string
Score attribué à chaque transaction permettant d'évaluer le risque qui lui est associé.
resultCode string
Code renvoyé par un analyseur de risque externe.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour renvoyés par l'analyseur de risque
externe.
status string
Statut de l'analyse de risque. Les valeurs possibles sont les suivantes :
P_SEND_OK, "Sent to clearsale and successfully processed"
Succès
P_TO_SEND, "Transaction analysis is scheduled to be sent to risk analyzer"
L'envoi est programmé
P_TO_SEND_KO, "Problem when tried to send to risk analyzer"
Erreur de traitement
P_PENDING_AT_ANALYZER, "Analysis result is still being processed by the risk analyzer. We should keep
checking/waiting for the analysis result"
En cours de traitement par l'analyseur
P_MANUAL, "Analysis should be requested through user request (not automatically)"
Attente d'envoi manuel
P_SKIPPED, "Analysis request discarded by current transaction status/problem"
Ecarté
P_SEND_EXPIRED, "Analysis request expired"
Expiré
requestId string
Identifiant de l’analyse chez l’analyseur de risque.
extraInfo extInfo
Pas de valorisation pour ClearSale.
Pour CyberSource, cet attribut retourne tous les codes renvoyés par le DecisionManager.
key : nom de la donnée (son format est "string").
Exemple :
COR-BA=Adresse de facturation corrigée ou corrigeable
A=Changements d'adresse excessifs. L'acheteur a changé d'adresse de facturation au moins deux fois au
cours des six derniers mois.
etc.
L'attribut riskAssessment
Valeurs Description
ENABLE_3DS 3D Secure activé.
DISABLE_3DS 3D Secure désactivé.
MANUAL_VALIDATION La transaction est créée en validation manuelle.
La remise du paiement est bloquée temporairement pour permettre au marchand de
procéder à toutes les vérifications souhaitées.
REFUSE La transaction est refusée.
RUN_RISK_ANALYSIS Appel à un analyseur de risques externes sous condition que le marchand possède un
contrat.
Se référer à la description du champ vads_risk_analysis_result pour identifier la liste
des valeurs possibles et leur description.
INFORM Une alerte est remontée.
Le marchand est averti qu’un risque est identifié.
Le marchand est informé via une ou plusieurs des règles du centre de notification (URL
de notification, e-mail ou SMS).
Page - 99 / 256
API Webservices SOAP v5 - V 2.6
extraResponse
L'objet extraResponse permet d'obtenir des informations supplémentaires à propos du paiement.
Attribut Format
paymentOptionCode string
Code de l'option de paiement utilisée lors du paiement.
paymentOptionOccNumb n..2
Nombre d'échéances lors d'un paiement en plusieurs fois.
Par exemple, pour un paiement en trois fois, cet attribut sera valorisé à 3.
shoppingCartResponse
L'objet shoppingCartResponse détaille le contenu du panier.
Attribut Format
cartItemInfo
Champs personnalisables permettant d'ajouter les éléments du panier.
L'attribut cartItemInfo est composé de sous objets :
productLabel : nom du produit. Son format est "string".
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 cartItemInfo
CLOTHING_AND_ACCESSORIES Vêtements et accessoires
TRAVEL Voyage
HOME_AUDIO_PHOTO_VIDEO Son, image et vidéo
TELEPHONY Téléphonie
Tableau 10 : Valeurs associées à productType
productRef : référence produit. Son format est "string".
Exemple :
<cartItemInfo>
<productLabel>CHIPS</productLabel>
<productType>FOOD_AND_GROCERY</productType>
<productRef>188545</productRef>
<productQty>10</productQty>
<productAmount>10000</productAmount>
</cartItemInfo>
Requête à envoyer
La requête cancelPayment est constituée d'un HEADER et d'un BODY.
HEADER
Valorisez le HEADER afin de transmettre la valeur des attributs shopId, requestId, timestamp, mode et
authToken (voir chapitre L'en-tête).
BODY
L'opération cancelPayment prend en entrée un objet de type cancelPayment.
Le type cancelPayment est constitué des paramètres suivants :
Objet Format Requis
commonRequest commonRequest
queryRequest queryRequest
commonRequest
L'objet commonRequest permet de transmettre des informations générales sur une opération.
Un seul attribut peut être valorisé si besoin :
Attribut Requis Format
comment
string
Commentaire libre.
Le commentaire sera affiché dans l'historique de la transaction visible depuis le Back Office Marchand.
queryRequest
L'objet queryRequest permet d’interroger une transaction pour en connaître ses différents attributs.
L'attribut à valoriser est le suivant :
Attribut Requis Format
uuid
string
Référence unique de la transaction.
Réponse en retour
La réponse à l'opération cancelPayment est faite par la plateforme de paiement suite à une demande
d'annulation d'un paiement.
Elle est constituée d'un HEADER et d'un BODY de type cancelPaymentResponse.
HEADER
Les données retournées dans la réponse dépendent des objets et attributs envoyés dans la requête.
Cependant, quelle que soit l'opération, l'attribut responseCode de l'objet CommonResponse doit avant
tout être analysé :
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
commonResponse Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès (à ne pas confondre avec le statut de la
transaction).
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
transactionStatusLabel string
Libellé du statut de la transaction. Les valeurs possibles sont :
CANCELLED
Annulée.
La transaction est annulée par le marchand.
shopId n8
Identifiant de la boutique.
paymentSource string
Origine de la transaction. Les valeurs possibles sont : (enum)
EC pour le commerce électronique.
submissionDate dateTime
Date et heure UTC de la transaction exprimée au format W3C (exemple : 2016-07-16T19:20:00Z). ans..40
contractNumber string
Numéro de contrat commerçant utilisé.
commonResponse Format
paymentToken string
Alias (token).
Requête à envoyer
L'opération findPayments est utilisée pour rechercher un ou plusieurs paiements.
BODY
L'opération findPayments prend en entrée un objet de type findPayments.
Le type findPayments est constitué du paramètre suivant :
Objet Format Requis
queryRequest queryRequest
queryRequest
L'objet queryRequest permet d’interroger une transaction pour en connaître ses différents attributs.
Seul l'attribut orderId doit être valorisé afin de trouver une liste de paiements.
Attribut Requis Format
orderId
ans..64
Référence de la commande.
Les attributs paymentToken, subscriptionId et uuid ne sont pas aujourd'hui pris en considération pour
cette opération.
Réponse en retour
La réponse à l'opération findPayments est faite par la plateforme de paiement suite à une recherche de
un ou plusieurs paiements.
Elle est constituée d'un HEADER et d'un BODY de type findPaymentsResponse.
HEADER
Le HEADER est transmis par la plateforme de paiement.
Vérifiez la valeur du jeton d'authentification (voir chapitre Vérifier l'en-tête SOAP dans la réponse).
BODY
La structure du message findPaymentsResponse est la suivante :
Nom Type
findPaymentsResult findPaymentsResult
Les données retournées dans la réponse dépendent des objets et attributs envoyés dans la requête.
Cependant, quelle que soit l'opération, l'attribut responseCode de l'objet CommonResponse doit avant
tout être analysé :
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Les attributs contenant une valeur dans la réponse sont les suivants :
Attribut Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès (à ne pas confondre avec le statut de la
transaction).
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
shopId n8
Identifiant de la boutique.
orderResponse
L'objet orderResponse détaille la commande.
Attribut Format
orderId string
Référence de la commande. an..64
extInfo
Données personnalisées retournées en fonction des besoins.
Exemple : extInfo.key, extInfo.value
extInfo
key : nom de la donnée (son format est "string").
transactionItem
L'objet transactionItem détaille les informations de la transaction recherchée pour laquelle vous souhaitez
des informations.
Attribut Format
transactionUuid string
Référence unique de la transaction générée par la plateforme de paiement. ans32
transactionStatusLabel string
Libellé du statut de la transaction. Les valeurs possibles sont :
INITIAL
En traitement.
Ce statut est temporaire. Le statut définitif sera retourné aussitôt la synchronisation réalisée.
AUTHORISED
En attente de remise.
La transaction est acceptée et sera remise en banque automatiquement à la date prévue.
AUTHORISED_TO_VALIDATE
A valider.
La transaction, créée en validation manuelle, est autorisée. Le marchand doit valider manuellement la remise
en banque. La transaction peut être validée tant que la date de remise n’est pas dépassée. Si cette date est
dépassée, le paiement prend le statut Expiré (statut définitif).
WAITING_AUTHORISATION
En attente d’autorisation.
La date de remise demandée est supérieure à la date de fin de validité d’une demande d’autorisation.
Une autorisation de 1000 XOF a été réalisée et acceptée par la banque émettrice. La demande d’autorisation
et la remise en banque seront déclenchées automatiquement.
WAITING_AUTHORISATION_TO_VALIDATE
A valider et à autoriser.
La date de remise demandée est supérieure à la date de fin de validité d’une demande d’autorisation.
Une autorisation de 1000 XOF a été réalisée et acceptée par la banque émettrice. La demande d’autorisation
sera déclenchée automatiquement à J-1 avant la date de remise en banque. Le paiement pourra être accepté
ou refusé. La remise en banque est automatique.
REFUSED
Refusée.
La transaction est refusée.
CAPTURED
La transaction est remise en banque.
CANCELLED
Annulée.
La transaction est annulée par le marchand.
EXPIRED
Expirée.
La date de remise est atteinte mais le marchand n’a pas validé la transaction.
Attribut Format
UNDER_VERIFICATION
Pour les transactions PayPal, cette valeur signifie que PayPal retient la transaction pour suspicion de fraude.
Le paiement restera dans l’onglet Transactions en cours jusqu'à ce que les vérifications soient achevées. La
transaction prendra alors l'un des statuts suivants: AUTHORISED ou CANCELED.
Une notification sera envoyée au marchand pour l'avertir du changement de statut (Notification sur
modification par batch).
amount
Montant de la transaction dans sa plus petite unité monétaire .
Remarque :
Ne doit pas être envoyé à vide ou être à 0. n..12
Si vous ne souhaitez pas modifier le statut de la transaction, vous devez valoriser l'attribut amount avec la valeur
initiale.
Si aucune information n'est modifiée, la requête sera rejetée avec un code erreur.
currency
Code de la devise de la transaction (norme ISO 4217). n3
Ex : 952 pour le Franc CFA (XOF) ou 324 pour le Franc guinéen (GNF)
expectedCaptureDate
Date de remise en banque souhaitée. dateTime
Remarque : si le délai avant remise est supérieur à 365 jours dans la requête de paiement, il est ans..40
automatiquement repositionné à 365 jours.
Exemple de réponse
Exemple de réponse :
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<shopId xmlns="http://v5.ws.vads.lyra.com/Header/">12345678</shopId>
<requestId xmlns="http://v5.ws.vads.lyra.com/Header/">1d37acc0-c5a7-4e32-b3df-168b9e2617e0</
requestId>
<timestamp xmlns="http://v5.ws.vads.lyra.com/Header/">2015-04-01T12:21:09Z</timestamp>
<mode xmlns="http://v5.ws.vads.lyra.com/Header/">TEST</mode>
<authToken xmlns="http://v5.ws.vads.lyra.com/Header/">m2+EUcE2+4OLrPe/
zpmo0W9BXqxAnTsA77OdesXCkiY=</authToken>
</env:Header>
<soap:Body>
<ns2:findPaymentsResponse xmlns:ns2="http://v5.ws.vads.lyra.com/">
<findPaymentsResult>
<requestId>1d37acc0-c5a7-4e32-b3df-168b9e2617e0</requestId>
<commonResponse>
<responseCode>0</responseCode>
<responseCodeDetail>Action successfully completed</responseCodeDetail>
<shopId>12345678</shopId>
</commonResponse>
<orderResponse>
<orderId>TEST-01</orderId>
</orderResponse>
<transactionItem>
<transactionUuid>a27d1907d7f74be1843318dce5875b99</transactionUuid>
<transactionStatusLabel>AUTHORISED</transactionStatusLabel>
<amount>1</amount>
<currency>952</currency>
<expectedCaptureDate>2015-04-01T14:07:54+02:00</expectedCaptureDate>
</transactionItem>
<transactionItem>
<transactionUuid>170fd39a02c847feb5a5f750e8b320d2</transactionUuid>
<transactionStatusLabel>AUTHORISED_TO_VALIDATE</transactionStatusLabel>
<amount>1</amount>
<currency>952</currency>
<expectedCaptureDate>2015-04-01T14:18:58+02:00</expectedCaptureDate>
</transactionItem>
</findPaymentsResult>
</ns2:findPaymentsResponse>
</soap:Body>
</soap:Envelope>
Requête à envoyer
L'opération refundPayment est utilisée pour effectuer un remboursement sur une transaction dont le
statut est Remisé.
BODY
L'opération refundPayment prend en entrée un objet de type refundPayment.
Le type refundPayment est constitué des paramètres suivants :
Objet Format Requis
commonRequest commonRequest
paymentRequest paymentRequest
queryRequest queryRequest
Remarque :
Si la carte est expirée lors de la demande de remboursement, une transaction refusée pour motif carte
expirée sera créée.
La réponse contiendra les valeurs suivantes :
responseCode : 0
transactionStatusLabel : REFUSED
commonRequest
L'objet commonRequest permet de transmettre des informations générales sur une opération.
Un seul attribut peut être valorisé si besoin :
Attribut Requis Format
comment
string
Commentaire libre.
Le commentaire sera affiché dans l'historique de la transaction visible depuis le Back Office Marchand.
paymentRequest
L'objet paymentRequest permet de transmettre des informations liées au paiement.
Il possède les attributs suivants :
Attribut Requis Format
transactionId
Identifiant de la transaction lors de la création ou la modification d'une transaction de paiement.
Sa valeur est unique sur une même journée.
Soit cet identifiant est généré par la plateforme. Dans ce cas, ce paramètre ne doit pas être
renseigné.
an..6
Soit cet identifiant est généré par le site marchand. Dans ce cas, ce paramètre doit être
renseigné avec la valeur de l’identifiant souhaité. Attention, il incombe au site marchand
de s’assurer de l’unicité des identifiants. Toute demande d'enregistrement contenant un
identifiant déjà existant, sera rejetée, et retournera un code d’erreur 12.
Remarque : cet attribut ne peut être envoyé à vide.
amount
Montant de la transaction dans sa plus petite unité monétaire .
Remarque :
n..12
Ne doit pas être envoyé à vide ou être à 0.
currency
Code de la devise de la transaction (norme ISO 4217). n3
Ex : 952 pour le Franc CFA (XOF) ou 324 pour le Franc guinéen (GNF)
expectedCaptureDate
Date de remise demandée exprimée au format ISO 8601 définit par W3C.
Exemple : 2016-07-16T19:20:00Z.
Ce paramètre est utilisé pour effectuer un paiement différé.
Si le nombre de jours entre la date de remise demandée et la date actuelle est supérieur à la durée
de validité de l'autorisation , une autorisation de 1000 XOF sera réalisée le jour de la transaction.
Ceci afin de vérifier la validité de la carte.
L’autorisation pour le montant total sera effectuée :
fonctionnement par défaut : le jour de la date de remise en banque souhaitée, dateTime
ans..40
fonctionnement avec autorisation anticipée : selon le moyen de paiement sélectionné, à J- le
nombre de jours correspondant à la durée de validité d'une autorisation avant la date de remise
en banque souhaitée.
Si vous souhaitez être notifié du résultat de cette demande d’autorisation, vous devez configurer la
règle de notification URL de notification sur autorisation par Batch dans le Back Office Marchand
(Paramétrage > Règles de notifications).
Remarque : si le délai avant remise est supérieur à 365 jours dans la requête de paiement, il est
automatiquement repositionné à 365 jours.
manualValidation
Permet de valider manuellement une transaction tant que la date de remise en banque souhaitée
n’est pas dépassée. n1
Pour cela, cet attribut doit être valorisé à 1 (validation manuelle).
Valorisé à 0, la validation sera automatique.
queryRequest
L'objet queryRequest permet d’interroger une transaction pour en connaître ses différents attributs.
L'attribut à valoriser est le suivant :
Attribut Requis Format
uuid
string
Référence unique de la transaction.
Réponse en retour
La réponse à l'opération refundPayment est faite par la plateforme de paiement suite à une demande de
remboursement.
Elle est constituée d'un HEADER et d'un BODY de type refundPaymentResponse.
HEADER
Le HEADER est transmis par la plateforme de paiement.
Vérifiez la valeur du jeton d'authentification (voir chapitre Vérifier l'en-tête SOAP dans la réponse).
BODY
La structure du message refundPaymentResponse est la suivante :
Nom Type
refundPaymentResult refundPaymentResult
Les données retournées dans la réponse dépendent des objets et attributs envoyés dans la requête.
Cependant, quelle que soit l'opération, l'attribut responseCode de l'objet CommonResponse doit avant
tout être analysé :
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Attribut Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès (à ne pas confondre avec le statut de la
transaction).
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
transactionStatusLabel string
Libellé du statut de la transaction. Les valeurs possibles sont :
INITIAL
En traitement.
Ce statut est temporaire. Le statut définitif sera retourné aussitôt la synchronisation réalisée.
NOT_CREATED
La transaction n'est pas créée et n'est pas visible dans le Back Office Marchand.
AUTHORISED
En attente de remise.
La transaction est acceptée et sera remise en banque automatiquement à la date prévue.
AUTHORISED_TO_VALIDATE
A valider.
La transaction, créée en validation manuelle, est autorisée. Le marchand doit valider manuellement la
remise en banque. La transaction peut être validée tant que la date de remise n’est pas dépassée. Si cette
date est dépassée, le paiement prend le statut Expiré (statut définitif).
WAITING_AUTHORISATION
En attente d’autorisation.
La date de remise demandée est supérieure à la date de fin de validité d’une demande d’autorisation.
Une autorisation de 1000 XOF a été réalisée et acceptée par la banque émettrice. La demande d’autorisation
et la remise en banque seront déclenchées automatiquement.
WAITING_AUTHORISATION_TO_VALIDATE
A valider et à autoriser.
La date de remise demandée est supérieure à la date de fin de validité d’une demande d’autorisation.
Une autorisation de 1000 XOF a été réalisée et acceptée par la banque émettrice. La demande d’autorisation
sera déclenchée automatiquement à J-1 avant la date de remise en banque. Le paiement pourra être
accepté ou refusé. La remise en banque est automatique.
REFUSED
Refusée.
La transaction est refusée.
shopId n8
Identifiant de la boutique.
paymentSource string
Origine de la transaction. Les valeurs possibles sont : (enum)
EC pour le commerce électronique.
submissionDate dateTime
Date et heure UTC de la transaction exprimée au format W3C (exemple : 2016-07-16T19:20:00Z). ans..40
Attribut Format
contractNumber string
Numéro de contrat commerçant utilisé.
paymentToken string
Alias (token).
paymentResponse
L'objet paymentResponse détaille les informations sur la transaction.
Attribut Format
transactionUuid string
Référence unique de la transaction générée par la plateforme de paiement. ans32
transactionId
Identifiant de la transaction lors de la création ou la modification d'une transaction de paiement.
Sa valeur est unique sur une même journée.
an..6
Soit cet identifiant est généré par la plateforme.
amount
n..12
Montant de la transaction dans sa plus petite unité monétaire .
currency
Code de la devise de la transaction (norme ISO 4217). n3
Ex : 952 pour le Franc CFA (XOF) ou 324 pour le Franc guinéen (GNF)
effectiveAmount n..12
Montant de la transaction dans la devise réellement utilisée pour effectuer la remise en banque.
effectiveCurrency n3
Devise réellement utilisée pour effectuer la remise en banque.
expectedCaptureDate
Date de remise en banque souhaitée. dateTime
Remarque : si le délai avant remise est supérieur à 365 jours dans la requête de paiement, il est ans..40
automatiquement repositionné à 365 jours.
operationType n1
Type d'opération.
Les valeurs possibles sont :
0 pour une opération de débit.
creationDate dateTime
Date et heure de l’enregistrement de la transaction exprimée au format W3C. ans..40
externalTransactionId string
Référence fournie par un tiers : numéro de transaction pour PayPal, Boleto, RRN pour Prism, etc…
liabilityShift string
Transfert de responsabilité.
Les valeurs possibles sont :
YES lorsque le paiement est garanti.
paymentType string
Type de paiement. (enum)
Les valeurs possibles sont :
SINGLE
Paiement en une seule fois.
INSTALLMENT
Paiement en plusieurs fois.
SPLIT
Attribut Format
Paiement effectué avec plusieurs moyens de paiement.
SUBSCRIPTION
Paiement par alias ou paiement récurrent. S'applique aussi aux transactions de type Vérification (création et
mise à jour d'un alias).
RETRY
Lors d'un paiement refusé, il est possible de réitérer la demande de paiement. Pour toute(s) réitération(s), le
paiement est valorisé avec cette valeur.
Remarque :
Les valeurs INSTALLMENT et SPLIT peuvent être retournées uniquement si des paiements ont été créés via le
formulaire de paiement.
sequenceNumber n..3
Numéro de séquence de la transaction. Sa valeur est fonction du contexte du paiement :
Est valorisé à "1" pour un paiement unitaire.
Prend la valeur du numéro d’échéance dans le cas d’un paiement en plusieurs fois créé à partir du formulaire
de paiement.
paymentError n..3
Complément d’information en cas d’erreur technique. Retourne un code d'erreur associé à l'erreur technique
(voir chapitre Codes d'erreurs pouvant survenir durant le paiement).
nsu string
Numéro de Séquence Unique. Utilisé par certains acquéreurs d'Amérique Latine.
Retourné lorsque extendedResponseRequest.isNsuRequested est valorisé à 1 dans la requête.
wallet string
Nom du wallet (Google Pay, Masterpass etc.).
Retourné lorsque extendedResponseRequest.isWalletRequested est valorisé à 1 dans la requête.
orderResponse
L'objet orderResponse détaille la commande.
Attribut Format
orderId string
Référence de la commande. an..64
extInfo
Données personnalisées retournées en fonction des besoins.
Exemple : extInfo.key, extInfo.value
extInfo
key : nom de la donnée (son format est "string").
cardResponse
L'objet cardResponse détaille les informations du moyen de paiement utilisé.
Attribut Format
number string
Numéro de carte masqué. Contient les 6 premiers chiffres du numéro, suivi par “XXXXXX” et enfin les 4
derniers chiffres.
IBAN et BIC utilisés pour le paiement, séparés par un « _ » dans le cas d’un paiement par prélèvement.
scheme string
Type de la carte.
brand string
Marque de la carte utilisée pour la transaction
country ISO 3166
Code pays du pays d’émission de la carte (Code numérique ISO 3166).
Attribut Format
productCode an..3
Code produit de la carte.
bankCode n..5
Code banque de la banque émettrice.
bankLabel string
Nom de la banque émettrice.
Retourné uniquement si extendedResponseRequest.isBankLabel est valorisé à 1 dans la requête.
expiryMonth n..2
Mois d’expiration entre 1 et 12 (ex: 3 pour mars, 10 pour octobre).
expiryYear n4
Année d’expiration sur 4 chiffres (ex : 2023).
authorizationResponse
L'objet authorizationResponse permet d'obtenir des informations sur la demande d'autorisation.
Attribut Format
mode string
Spécifie de quelle manière est réalisée la demande d’autorisation. Deux valeurs possibles :
MARK
Une autorisation de 1000 XOF a été réalisée afin de vérifier la validité de la carte.
Ce cas se présente lorsque la date de remise dépasse la période de validité d'une autorisation .
FULL
Autorisation pour le montant total demandé dans la requête.
amount n..12
Montant de l’autorisation dans la plus petite unité monétaire dans le cas où mode vaut FULL.
currency n3
Code de la monnaie utilisée lors de la demande d’autorisation (suivant la norme ISO 4217) dans le cas où mode
vaut FULL.
date dateTime
Date et heure de la demande d’autorisation dans le cas où mode vaut FULL. ans..40
number an..12
Numéro de la demande d’autorisation dans le cas où mode vaut FULL.
result an..12
Code retour de la demande d’autorisation retourné par la banque émettrice en cas de refus.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour d'une demande d'autorisation.
captureResponse
L'objet captureResponse permet d'obtenir des informations à propos de la remise dans le cas où la
transaction est remisée.
Attribut Format
date dateTime
Date et heure de remise. ans..40
number n3
Numéro de remise.
reconciliationStatus n1
Statut du rapprochement bancaire de la transaction.
refundAmount n..12
Montant ayant déjà fait l’objet d’un remboursement dans sa plus petite unité monétaire.
refundCurrency n3
Devise du montant ayant déjà fait l’objet d’un remboursement (Code monnaie ISO 4217 Ex : 952 pour le Franc CFA
(XOF) ou 324 pour le Franc guinéen (GNF) .
chargeback boolean
Litige, impayé. Les valeurs possibles sont :
0 : transaction ne faisant pas l'objet d'un litige.
customerResponse
L'objet customerResponse détaille de nombreuses informations à propos de l'acheteur.
La réponse se décompose en l'analyse de :
billingDetails
Données de facturation de l'acheteur.
shippingDetails
Données de livraison de l'acheteur. Les valeurs présentes dans cet objet seront identiques à celles de
l'objet billingDetails.
extraDetails
Données techniques liées à l'acheteur.
6.6.2.7.1. Objet billingDetails
Attribut Format
reference
string n..80
Référence de l'acheteur.
title
Civilité de l'acheteur. string n..80
Exemples de valeurs possibles : Monsieur, Madame, etc..
type
Type d'acheteur.
Les valeurs possibles sont :
string (enum)
PRIVATE pour un particulier.
firstName string
Nom de l'acheteur. ans..128
lastName string
Prénom de l'acheteur. ans..128
phoneNumber
string ans..32
Numéro de téléphone de l'acheteur.
email
string
E-mail de l'acheteur.
ans..150
Paramètre obligatoire lors de la création d'un alias.
streetNumber
Numéro de rue de l'acheteur. string an..5
Remarque : si cet attribut est présent dans la requête, il ne peut être envoyé vide.
address string
Adresse de l'acheteur. ans..255
district string
Quartier de l'acheteur. ans..127
zipCode
string ans..64
Code postal de l'acheteur.
city string
Ville de l'acheteur. ans..128
state string
Etat/Région de l'acheteur. ans..128
country
Pays de l'acheteur selon la norme ISO 3166.
Exemples de valeurs possibles :
string - a2
DE pour l'Allemagne IT pour l'Italie PT pour le Portugal
Attribut Format
language
Langue de l'acheteur selon la norme ISO 639-1.
Exemples de valeurs possibles :
tr pour le turc
cellPhoneNumber
string ans..32
Numéro de téléphone mobile
legalName string
Raison sociale de la société. ans..128
Attribut Format
type
Type d'acheteur.
Les valeurs possibles sont : string
PRIVATE pour un particulier. (enum)
firstName string
Nom de l'acheteur. ans..128
lastName string
Prénom de l'acheteur. ans..128
phoneNumber string
Numéro de téléphone de l'acheteur. ans..32
streetNumber
Numéro de rue pour la livraison. string an..5
Remarque : si cet attribut est présent dans la requête, il ne peut être envoyé vide.
address string
Adresse de livraison. ans..255
address2 string
Complément d'adresse de livraison. ans..255
district string
Quartier de livraison. ans..127
zipCode string
Code postal de livraison. ans..64
city string
Ville de livraison. ans..128
state string
Etat/Région de livraison. ans..128
country string - a2
Attribut Format
Pays de livraison.
deliveryCompanyName string
Informations sur le transporteur. ans..128
shippingSpeed
Mode de livraison sélectionné.
Les valeurs possibles sont : string
STANDARD pour une livraison standard. (enum)
shippingMethod
Méthode de livraison utilisée.
Les valeurs possibles sont :
RECLAIM_IN_SHOP pour le retrait de la marchandise en magasin.
RELAY_POINT pour l'utilisation d'un réseau de points de retrait tiers (Kiala, Alveol, etc). string
(enum)
RECLAIM_IN_STATION pour le retrait dans un aéroport, une garde ou une agence de voyage.
legalName string
Raison sociale de la société. ans..128
identityCode
Permet d'identifier de façon unique chaque citoyen au sein d'un pays. string
Par exemple, au Brésil, ClearSale impose que ce champ soit valorisé avec le CPF/ CNPJ (format numérique, de ans..255
longueur comprise entre 11 et 20 digits).
markResponse
L'objet markResponse permet d'obtenir des informations sur la demande d'autorisation à 1000 XOF .
Attribut Format
amount n..12
Montant utilisé pour vérifier la validité de la carte, dans la plus petite unité monétaire .
currency n3
Code de la monnaie utilisée pour vérifier la validité de la carte (suivant la norme ISO 4217) Ex : 952 pour le Franc
CFA (XOF) ou 324 pour le Franc guinéen (GNF) .
date
dateTime
Date et heure de la demande d’autorisation réalisée dans le cas où l'attribut mode de l'objet
ans..40
authorizationResponse vaut MARK.
number
dateTime
Numéro d’autorisation de la demande d’autorisation dans le cas où l'attribut mode de l'objet
ans..40
authorizationResponse vaut MARK.
result n..2
Résultat de la demande d’autorisation réalisée dans le cas où l'attribut mode de l'objet authorizationResponse
vaut MARK.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour d'une demande d'autorisation.
threeDSResponse
L'objet threeDSResponse permet d'obtenir des informations à propos de l'authentification 3D Secure v1.
Il contient un attribut authenticationResultData qui décrit le résultat de l’authentification 3D Secure v1.
Il est composé des attributs suivants :
Attribut Format
transactionCondition string
Statut de l'authentification 3D Secure. Les valeurs possibles sont :
COND_3D_SUCCESS
Succès de l'authentification.
Le marchand et le porteur de la carte sont inscrits au programme 3D Secure et le porteur s’est authentifié
correctement.
COND_3D_FAILURE
Echec de l’authentification.
Le marchand et le porteur de la carte sont inscrits au programme 3D Secure mais l’acheteur n’a pas réussi
à s’authentifier (mauvais mot de passe).
COND_3D_ERROR
Authentification en erreur.
Le marchand participe au programme 3D Secure mais le serveur de la plateforme de paiement a rencontré
un problème technique durant le processus d’authentification (lors de la vérification de l’inscription de la
carte au programme 3D ou de l’authentification du porteur).
COND_3D_NOTENROLLED
Porteur non enrôlé.
Le marchand participe au programme 3D Secure mais la carte du porteur n’est pas enrôlée.
COND_3D_ATTEMPT
Tentative d'authentification.
Le marchand et le porteur de la carte sont inscrits au programme 3D Secure mais l’acheteur n’a pas eu
à s’authentifier (le serveur de contrôle d’accès de la banque qui a émis la carte n’implémente que la
génération d’une preuve de tentative d’authentification).
COND_SSL
3D Secure non applicable.
Le marchand n’est pas enrôlé à 3D Secure ou le canal de vente n’est pas couvert par cette garantie.
enrolled
Statut enrôlement du porteur. Les valeurs possibles sont : string
Y pour un statut enrôlé.
Attribut Format
N pour un statut non enrôlé.
status a1
Statut de l'authentification du porteur. Les valeurs possibles sont :
Y pour un statut authentifié 3 DS.
eci string
Indicateur de commerce Electronique.
La valeur eci est fonction du statut de l’authentification 3DS et du type de carte. Les valeurs possibles sont :
xid string
Numéro de transaction 3DS.
cavvAlgorithm n1
Algorithme de vérification de l’authentification du porteur (CAVV). Les valeurs possibles sont :
0 pour HMAC.
1 pour CVV.
2 pour CVV_ATN.
cavv string
Certificat de l’ACS.
signValid string
Signature de l’authentification 3DS.
brand string
Réseau de la carte.
fraudManagementResponse
L'objet fraudManagementResponse permet d'obtenir les résultats des contrôles de gestion de risques.
La réponse se décompose en l'analyse des attributs :
riskControl
Retourne le résultat du contrôle de gestion de risques effectué.
riskAnalysis
Retourne le résultat de l'analyse de gestion de risques effectué par un système externe (Konduto,
ClearSale, CyberSource,...).
riskAssessment
Retourne le résultat de l'analyse de gestion des risques avancée effectuée par la plateforme de
paiement.
L'attribut riskControl
Le format est le suivant : name1=result1;name2=result2
L'attribut riskAnalysis
Attribut Format
score string
Score attribué à chaque transaction permettant d'évaluer le risque qui lui est associé.
resultCode string
Code renvoyé par un analyseur de risque externe.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour renvoyés par l'analyseur de risque
externe.
status string
Statut de l'analyse de risque. Les valeurs possibles sont les suivantes :
P_SEND_OK, "Sent to clearsale and successfully processed"
Succès
P_TO_SEND, "Transaction analysis is scheduled to be sent to risk analyzer"
L'envoi est programmé
P_TO_SEND_KO, "Problem when tried to send to risk analyzer"
Erreur de traitement
P_PENDING_AT_ANALYZER, "Analysis result is still being processed by the risk analyzer. We should keep
checking/waiting for the analysis result"
En cours de traitement par l'analyseur
P_MANUAL, "Analysis should be requested through user request (not automatically)"
Attente d'envoi manuel
P_SKIPPED, "Analysis request discarded by current transaction status/problem"
Ecarté
P_SEND_EXPIRED, "Analysis request expired"
Expiré
requestId string
Identifiant de l’analyse chez l’analyseur de risque.
extraInfo extInfo
Pas de valorisation pour ClearSale.
Pour CyberSource, cet attribut retourne tous les codes renvoyés par le DecisionManager.
key : nom de la donnée (son format est "string").
Attribut Format
value : valeur de la donnée (son format est "string").
Exemple :
COR-BA=Adresse de facturation corrigée ou corrigeable
A=Changements d'adresse excessifs. L'acheteur a changé d'adresse de facturation au moins deux fois au
cours des six derniers mois.
etc.
L'attribut riskAssessment
Valeurs Description
ENABLE_3DS 3D Secure activé.
DISABLE_3DS 3D Secure désactivé.
MANUAL_VALIDATION La transaction est créée en validation manuelle.
La remise du paiement est bloquée temporairement pour permettre au marchand de
procéder à toutes les vérifications souhaitées.
REFUSE La transaction est refusée.
RUN_RISK_ANALYSIS Appel à un analyseur de risques externes sous condition que le marchand possède un
contrat.
Se référer à la description du champ vads_risk_analysis_result pour identifier la liste
des valeurs possibles et leur description.
INFORM Une alerte est remontée.
Le marchand est averti qu’un risque est identifié.
Le marchand est informé via une ou plusieurs des règles du centre de notification (URL
de notification, e-mail ou SMS).
extraResponse
L'objet extraResponse permet d'obtenir des informations supplémentaires à propos du paiement.
Attribut Format
paymentOptionCode string
Code de l'option de paiement utilisée lors du paiement.
paymentOptionOccNumb n..2
Nombre d'échéances lors d'un paiement en plusieurs fois.
Par exemple, pour un paiement en trois fois, cet attribut sera valorisé à 3.
Les transactions pouvant faire l’objet d’une duplication doivent posséder un des statuts suivants :
Remisé
Expiré
Annulé
Refusé
La duplication de transactions refusées, réalisées avec des cartes Mastercard (Mastercard, Maestro,
Mastercard Debit), est interdite lorsque le motif du refus est compris dans la liste ci-dessous:
Requête à envoyer
L'opération duplicatePayment est utilisée pour créer une nouvelle transaction ayant exactement les
mêmes caractéristiques que la transaction qui a servi de base à la duplication.
BODY
L'opération duplicatePayment prend en entrée un objet de type duplicatePayment.
Le type duplicatePayment est constitué des paramètres suivants :
Objet Format Requis
commonRequest commonRequest
paymentRequest paymentRequest
queryRequest queryRequest
orderRequest orderRequest
commonRequest
L'objet commonRequest permet de transmettre des informations générales sur une opération.
Un seul attribut peut être valorisé si besoin :
Attribut Requis Format
comment
string
Commentaire libre.
Le commentaire sera affiché dans l'historique de la transaction visible depuis le Back Office Marchand.
queryRequest
L'objet queryRequest permet d’interroger une transaction pour en connaître ses différents attributs.
L'attribut à valoriser est le suivant :
Attribut Requis Format
uuid
string
Référence unique de la transaction.
paymentRequest
L'objet paymentRequest permet de transmettre des informations liées au paiement.
Il possède les attributs suivants :
Attribut Requis Format
transactionId
Identifiant de la transaction lors de la création ou la modification d'une transaction de paiement.
Sa valeur est unique sur une même journée.
Soit cet identifiant est généré par la plateforme. Dans ce cas, ce paramètre ne doit pas être
renseigné.
an..6
Soit cet identifiant est généré par le site marchand. Dans ce cas, ce paramètre doit être
renseigné avec la valeur de l’identifiant souhaité. Attention, il incombe au site marchand
de s’assurer de l’unicité des identifiants. Toute demande d'enregistrement contenant un
identifiant déjà existant, sera rejetée, et retournera un code d’erreur 12.
Remarque : cet attribut ne peut être envoyé à vide.
amount
Montant de la transaction dans sa plus petite unité monétaire .
Remarque :
n..12
Ne doit pas être envoyé à vide ou être à 0.
currency
Code de la devise de la transaction (norme ISO 4217). n3
Ex : 952 pour le Franc CFA (XOF) ou 324 pour le Franc guinéen (GNF)
expectedCaptureDate
Date de remise demandée exprimée au format ISO 8601 définit par W3C.
Exemple : 2016-07-16T19:20:00Z.
Ce paramètre est utilisé pour effectuer un paiement différé.
Si le nombre de jours entre la date de remise demandée et la date actuelle est supérieur à la durée
de validité de l'autorisation , une autorisation de 1000 XOF sera réalisée le jour de la transaction.
Ceci afin de vérifier la validité de la carte.
L’autorisation pour le montant total sera effectuée :
fonctionnement par défaut : le jour de la date de remise en banque souhaitée, dateTime
ans..40
fonctionnement avec autorisation anticipée : selon le moyen de paiement sélectionné, à J- le
nombre de jours correspondant à la durée de validité d'une autorisation avant la date de remise
en banque souhaitée.
Si vous souhaitez être notifié du résultat de cette demande d’autorisation, vous devez configurer la
règle de notification URL de notification sur autorisation par Batch dans le Back Office Marchand
(Paramétrage > Règles de notifications).
Remarque : si le délai avant remise est supérieur à 365 jours dans la requête de paiement, il est
automatiquement repositionné à 365 jours.
manualValidation
Permet de valider manuellement une transaction tant que la date de remise en banque souhaitée
n’est pas dépassée. n1
Pour cela, cet attribut doit être valorisé à 1 (validation manuelle).
Valorisé à 0, la validation sera automatique.
orderRequest
L'objet orderRequest permet de transmettre des informations liées à la commande.
Exemple : <extInfo><key>keyData</key><value>valuedata</value></extInfo>
Réponse en retour
La réponse à l'opération duplicatePayment est faite par la plateforme de paiement suite à une demande
de duplication d'une transaction.
BODY
La structure du message duplicatePaymentResponse est la suivante :
Nom Type
duplicatePaymentResult duplicatePaymentResult
Les données retournées dans la réponse dépendent des objets et attributs envoyés dans la requête.
Cependant, quelle que soit l'opération, l'attribut responseCode de l'objet CommonResponse doit avant
tout être analysé :
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Attribut Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès (à ne pas confondre avec le statut de la
transaction).
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
transactionStatusLabel string
Libellé du statut de la transaction. Les valeurs possibles sont :
INITIAL
En traitement.
Ce statut est temporaire. Le statut définitif sera retourné aussitôt la synchronisation réalisée.
NOT_CREATED
La transaction n'est pas créée et n'est pas visible dans le Back Office Marchand.
AUTHORISED
En attente de remise.
La transaction est acceptée et sera remise en banque automatiquement à la date prévue.
AUTHORISED_TO_VALIDATE
A valider.
La transaction, créée en validation manuelle, est autorisée. Le marchand doit valider manuellement la
remise en banque. La transaction peut être validée tant que la date de remise n’est pas dépassée. Si cette
date est dépassée, le paiement prend le statut Expiré (statut définitif).
WAITING_AUTHORISATION
En attente d’autorisation.
La date de remise demandée est supérieure à la date de fin de validité d’une demande d’autorisation.
Une autorisation de 1000 XOF a été réalisée et acceptée par la banque émettrice. La demande d’autorisation
et la remise en banque seront déclenchées automatiquement.
WAITING_AUTHORISATION_TO_VALIDATE
A valider et à autoriser.
La date de remise demandée est supérieure à la date de fin de validité d’une demande d’autorisation.
Une autorisation de 1000 XOF a été réalisée et acceptée par la banque émettrice. La demande d’autorisation
sera déclenchée automatiquement à J-1 avant la date de remise en banque. Le paiement pourra être
accepté ou refusé. La remise en banque est automatique.
REFUSED
Refusée.
La transaction est refusée.
shopId n8
Identifiant de la boutique.
paymentSource string
Origine de la transaction. Les valeurs possibles sont : (enum)
EC pour le commerce électronique.
submissionDate dateTime
Date et heure UTC de la transaction exprimée au format W3C (exemple : 2016-07-16T19:20:00Z). ans..40
Attribut Format
contractNumber string
Numéro de contrat commerçant utilisé.
paymentToken string
Alias (token).
paymentResponse
L'objet paymentResponse détaille les informations sur la transaction.
Attribut Format
transactionUuid string
Référence unique de la transaction générée par la plateforme de paiement. ans32
transactionId
Identifiant de la transaction lors de la création ou la modification d'une transaction de paiement.
Sa valeur est unique sur une même journée.
an..6
Soit cet identifiant est généré par la plateforme.
amount
n..12
Montant de la transaction dans sa plus petite unité monétaire .
currency
Code de la devise de la transaction (norme ISO 4217). n3
Ex : 952 pour le Franc CFA (XOF) ou 324 pour le Franc guinéen (GNF)
effectiveAmount n..12
Montant de la transaction dans la devise réellement utilisée pour effectuer la remise en banque.
effectiveCurrency n3
Devise réellement utilisée pour effectuer la remise en banque.
expectedCaptureDate
Date de remise en banque souhaitée. dateTime
Remarque : si le délai avant remise est supérieur à 365 jours dans la requête de paiement, il est ans..40
automatiquement repositionné à 365 jours.
operationType n1
Type d'opération.
Les valeurs possibles sont :
0 pour une opération de débit.
creationDate dateTime
Date et heure de l’enregistrement de la transaction exprimée au format W3C. ans..40
externalTransactionId string
Référence fournie par un tiers : numéro de transaction pour PayPal, Boleto, RRN pour Prism, etc…
liabilityShift string
Transfert de responsabilité.
Les valeurs possibles sont :
YES lorsque le paiement est garanti.
paymentType string
Type de paiement. (enum)
Les valeurs possibles sont :
SINGLE
Paiement en une seule fois.
INSTALLMENT
Paiement en plusieurs fois.
SPLIT
Attribut Format
Paiement effectué avec plusieurs moyens de paiement.
SUBSCRIPTION
Paiement par alias ou paiement récurrent. S'applique aussi aux transactions de type Vérification (création et
mise à jour d'un alias).
RETRY
Lors d'un paiement refusé, il est possible de réitérer la demande de paiement. Pour toute(s) réitération(s), le
paiement est valorisé avec cette valeur.
Remarque :
Les valeurs INSTALLMENT et SPLIT peuvent être retournées uniquement si des paiements ont été créés via le
formulaire de paiement.
sequenceNumber n..3
Numéro de séquence de la transaction. Sa valeur est fonction du contexte du paiement :
Est valorisé à "1" pour un paiement unitaire.
Prend la valeur du numéro d’échéance dans le cas d’un paiement en plusieurs fois créé à partir du formulaire
de paiement.
paymentError n..3
Complément d’information en cas d’erreur technique. Retourne un code d'erreur associé à l'erreur technique
(voir chapitre Codes d'erreurs pouvant survenir durant le paiement).
nsu string
Numéro de Séquence Unique. Utilisé par certains acquéreurs d'Amérique Latine.
Retourné lorsque extendedResponseRequest.isNsuRequested est valorisé à 1 dans la requête.
wallet string
Nom du wallet (Google Pay, Masterpass etc.).
Retourné lorsque extendedResponseRequest.isWalletRequested est valorisé à 1 dans la requête.
orderResponse
L'objet orderResponse détaille la commande.
Attribut Format
orderId string
Référence de la commande. an..64
extInfo
Données personnalisées retournées en fonction des besoins.
Exemple : extInfo.key, extInfo.value
extInfo
key : nom de la donnée (son format est "string").
cardResponse
L'objet cardResponse détaille les informations du moyen de paiement utilisé.
Attribut Format
number string
Numéro de carte masqué. Contient les 6 premiers chiffres du numéro, suivi par “XXXXXX” et enfin les 4
derniers chiffres.
IBAN et BIC utilisés pour le paiement, séparés par un « _ » dans le cas d’un paiement par prélèvement.
scheme string
Type de la carte.
brand string
Marque de la carte utilisée pour la transaction
country ISO 3166
Code pays du pays d’émission de la carte (Code numérique ISO 3166).
Attribut Format
productCode an..3
Code produit de la carte.
bankCode n..5
Code banque de la banque émettrice.
bankLabel string
Nom de la banque émettrice.
Retourné uniquement si extendedResponseRequest.isBankLabel est valorisé à 1 dans la requête.
expiryMonth n..2
Mois d’expiration entre 1 et 12 (ex: 3 pour mars, 10 pour octobre).
expiryYear n4
Année d’expiration sur 4 chiffres (ex : 2023).
authorizationResponse
L'objet authorizationResponse permet d'obtenir des informations sur la demande d'autorisation.
Attribut Format
mode string
Spécifie de quelle manière est réalisée la demande d’autorisation. Deux valeurs possibles :
MARK
Une autorisation de 1000 XOF a été réalisée afin de vérifier la validité de la carte.
Ce cas se présente lorsque la date de remise dépasse la période de validité d'une autorisation .
FULL
Autorisation pour le montant total demandé dans la requête.
amount n..12
Montant de l’autorisation dans la plus petite unité monétaire dans le cas où mode vaut FULL.
currency n3
Code de la monnaie utilisée lors de la demande d’autorisation (suivant la norme ISO 4217) dans le cas où mode
vaut FULL.
date dateTime
Date et heure de la demande d’autorisation dans le cas où mode vaut FULL. ans..40
number an..12
Numéro de la demande d’autorisation dans le cas où mode vaut FULL.
result an..12
Code retour de la demande d’autorisation retourné par la banque émettrice en cas de refus.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour d'une demande d'autorisation.
captureResponse
L'objet captureResponse permet d'obtenir des informations à propos de la remise dans le cas où la
transaction est remisée.
Attribut Format
date dateTime
Date et heure de remise. ans..40
number n3
Numéro de remise.
reconciliationStatus n1
Statut du rapprochement bancaire de la transaction.
refundAmount n..12
Montant ayant déjà fait l’objet d’un remboursement dans sa plus petite unité monétaire.
refundCurrency n3
Devise du montant ayant déjà fait l’objet d’un remboursement (Code monnaie ISO 4217 Ex : 952 pour le Franc CFA
(XOF) ou 324 pour le Franc guinéen (GNF) .
chargeback boolean
Litige, impayé. Les valeurs possibles sont :
0 : transaction ne faisant pas l'objet d'un litige.
customerResponse
L'objet customerResponse détaille de nombreuses informations à propos de l'acheteur.
La réponse se décompose en l'analyse de :
billingDetails
Données de facturation de l'acheteur.
shippingDetails
Données de livraison de l'acheteur. Les valeurs présentes dans cet objet seront identiques à celles de
l'objet billingDetails.
extraDetails
Données techniques liées à l'acheteur.
6.7.2.7.1. Objet billingDetails
Attribut Format
reference
string n..80
Référence de l'acheteur.
title
Civilité de l'acheteur. string n..80
Exemples de valeurs possibles : Monsieur, Madame, etc..
type
Type d'acheteur.
Les valeurs possibles sont :
string (enum)
PRIVATE pour un particulier.
firstName string
Nom de l'acheteur. ans..128
lastName string
Prénom de l'acheteur. ans..128
phoneNumber
string ans..32
Numéro de téléphone de l'acheteur.
email
string
E-mail de l'acheteur.
ans..150
Paramètre obligatoire lors de la création d'un alias.
streetNumber
Numéro de rue de l'acheteur. string an..5
Remarque : si cet attribut est présent dans la requête, il ne peut être envoyé vide.
address string
Adresse de l'acheteur. ans..255
district string
Quartier de l'acheteur. ans..127
zipCode
string ans..64
Code postal de l'acheteur.
city string
Ville de l'acheteur. ans..128
state string
Etat/Région de l'acheteur. ans..128
country
Pays de l'acheteur selon la norme ISO 3166.
Exemples de valeurs possibles :
string - a2
DE pour l'Allemagne IT pour l'Italie PT pour le Portugal
Attribut Format
language
Langue de l'acheteur selon la norme ISO 639-1.
Exemples de valeurs possibles :
tr pour le turc
cellPhoneNumber
string ans..32
Numéro de téléphone mobile
legalName string
Raison sociale de la société. ans..128
Attribut Format
type
Type d'acheteur.
Les valeurs possibles sont : string
PRIVATE pour un particulier. (enum)
firstName string
Nom de l'acheteur. ans..128
lastName string
Prénom de l'acheteur. ans..128
phoneNumber string
Numéro de téléphone de l'acheteur. ans..32
streetNumber
Numéro de rue pour la livraison. string an..5
Remarque : si cet attribut est présent dans la requête, il ne peut être envoyé vide.
address string
Adresse de livraison. ans..255
address2 string
Complément d'adresse de livraison. ans..255
district string
Quartier de livraison. ans..127
zipCode string
Code postal de livraison. ans..64
city string
Ville de livraison. ans..128
state string
Etat/Région de livraison. ans..128
country string - a2
Attribut Format
Pays de livraison.
deliveryCompanyName string
Informations sur le transporteur. ans..128
shippingSpeed
Mode de livraison sélectionné.
Les valeurs possibles sont : string
STANDARD pour une livraison standard. (enum)
shippingMethod
Méthode de livraison utilisée.
Les valeurs possibles sont :
RECLAIM_IN_SHOP pour le retrait de la marchandise en magasin.
RELAY_POINT pour l'utilisation d'un réseau de points de retrait tiers (Kiala, Alveol, etc). string
(enum)
RECLAIM_IN_STATION pour le retrait dans un aéroport, une garde ou une agence de voyage.
legalName string
Raison sociale de la société. ans..128
identityCode
Permet d'identifier de façon unique chaque citoyen au sein d'un pays. string
Par exemple, au Brésil, ClearSale impose que ce champ soit valorisé avec le CPF/ CNPJ (format numérique, de ans..255
longueur comprise entre 11 et 20 digits).
markResponse
L'objet markResponse permet d'obtenir des informations sur la demande d'autorisation à 1000 XOF .
Attribut Format
amount n..12
Montant utilisé pour vérifier la validité de la carte, dans la plus petite unité monétaire .
currency n3
Code de la monnaie utilisée pour vérifier la validité de la carte (suivant la norme ISO 4217) Ex : 952 pour le Franc
CFA (XOF) ou 324 pour le Franc guinéen (GNF) .
date
dateTime
Date et heure de la demande d’autorisation réalisée dans le cas où l'attribut mode de l'objet
ans..40
authorizationResponse vaut MARK.
number
dateTime
Numéro d’autorisation de la demande d’autorisation dans le cas où l'attribut mode de l'objet
ans..40
authorizationResponse vaut MARK.
result n..2
Résultat de la demande d’autorisation réalisée dans le cas où l'attribut mode de l'objet authorizationResponse
vaut MARK.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour d'une demande d'autorisation.
threeDSResponse
L'objet threeDSResponse permet d'obtenir des informations à propos de l'authentification 3D Secure v1.
Il contient un attribut authenticationResultData qui décrit le résultat de l’authentification 3D Secure v1.
Il est composé des attributs suivants :
Attribut Format
transactionCondition string
Statut de l'authentification 3D Secure. Les valeurs possibles sont :
COND_3D_SUCCESS
Succès de l'authentification.
Le marchand et le porteur de la carte sont inscrits au programme 3D Secure et le porteur s’est authentifié
correctement.
COND_3D_FAILURE
Echec de l’authentification.
Le marchand et le porteur de la carte sont inscrits au programme 3D Secure mais l’acheteur n’a pas réussi
à s’authentifier (mauvais mot de passe).
COND_3D_ERROR
Authentification en erreur.
Le marchand participe au programme 3D Secure mais le serveur de la plateforme de paiement a rencontré
un problème technique durant le processus d’authentification (lors de la vérification de l’inscription de la
carte au programme 3D ou de l’authentification du porteur).
COND_3D_NOTENROLLED
Porteur non enrôlé.
Le marchand participe au programme 3D Secure mais la carte du porteur n’est pas enrôlée.
COND_3D_ATTEMPT
Tentative d'authentification.
Le marchand et le porteur de la carte sont inscrits au programme 3D Secure mais l’acheteur n’a pas eu
à s’authentifier (le serveur de contrôle d’accès de la banque qui a émis la carte n’implémente que la
génération d’une preuve de tentative d’authentification).
COND_SSL
3D Secure non applicable.
Le marchand n’est pas enrôlé à 3D Secure ou le canal de vente n’est pas couvert par cette garantie.
enrolled
Statut enrôlement du porteur. Les valeurs possibles sont : string
Y pour un statut enrôlé.
Attribut Format
N pour un statut non enrôlé.
status a1
Statut de l'authentification du porteur. Les valeurs possibles sont :
Y pour un statut authentifié 3 DS.
eci string
Indicateur de commerce Electronique.
La valeur eci est fonction du statut de l’authentification 3DS et du type de carte. Les valeurs possibles sont :
xid string
Numéro de transaction 3DS.
cavvAlgorithm n1
Algorithme de vérification de l’authentification du porteur (CAVV). Les valeurs possibles sont :
0 pour HMAC.
1 pour CVV.
2 pour CVV_ATN.
cavv string
Certificat de l’ACS.
signValid string
Signature de l’authentification 3DS.
brand string
Réseau de la carte.
extraResponse
L'objet extraResponse permet d'obtenir des informations supplémentaires à propos du paiement.
Attribut Format
paymentOptionCode string
Code de l'option de paiement utilisée lors du paiement.
paymentOptionOccNumb n..2
Nombre d'échéances lors d'un paiement en plusieurs fois.
Par exemple, pour un paiement en trois fois, cet attribut sera valorisé à 3.
fraudManagementResponse
L'objet fraudManagementResponse permet d'obtenir les résultats des contrôles de gestion de risques.
La réponse se décompose en l'analyse des attributs :
riskControl
Retourne le résultat du contrôle de gestion de risques effectué.
riskAnalysis
Retourne le résultat de l'analyse de gestion de risques effectué par un système externe (Konduto,
ClearSale, CyberSource,...).
riskAssessment
Retourne le résultat de l'analyse de gestion des risques avancée effectuée par la plateforme de
paiement.
L'attribut riskControl
Le format est le suivant : name1=result1;name2=result2
Nom Format Description
name string Nom de la règle de gestion de risque.
result string Résultat du contrôle.
L'attribut riskAnalysis
Attribut Format
score string
Score attribué à chaque transaction permettant d'évaluer le risque qui lui est associé.
resultCode string
Code renvoyé par un analyseur de risque externe.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour renvoyés par l'analyseur de risque
externe.
status string
Statut de l'analyse de risque. Les valeurs possibles sont les suivantes :
P_SEND_OK, "Sent to clearsale and successfully processed"
Succès
P_TO_SEND, "Transaction analysis is scheduled to be sent to risk analyzer"
L'envoi est programmé
P_TO_SEND_KO, "Problem when tried to send to risk analyzer"
Erreur de traitement
P_PENDING_AT_ANALYZER, "Analysis result is still being processed by the risk analyzer. We should keep
checking/waiting for the analysis result"
En cours de traitement par l'analyseur
P_MANUAL, "Analysis should be requested through user request (not automatically)"
Attente d'envoi manuel
P_SKIPPED, "Analysis request discarded by current transaction status/problem"
Ecarté
P_SEND_EXPIRED, "Analysis request expired"
Attribut Format
Expiré
requestId string
Identifiant de l’analyse chez l’analyseur de risque.
extraInfo extInfo
Pas de valorisation pour ClearSale.
Pour CyberSource, cet attribut retourne tous les codes renvoyés par le DecisionManager.
key : nom de la donnée (son format est "string").
Exemple :
COR-BA=Adresse de facturation corrigée ou corrigeable
A=Changements d'adresse excessifs. L'acheteur a changé d'adresse de facturation au moins deux fois au
cours des six derniers mois.
etc.
L'attribut riskAssessment
Valeurs Description
ENABLE_3DS 3D Secure activé.
DISABLE_3DS 3D Secure désactivé.
MANUAL_VALIDATION La transaction est créée en validation manuelle.
La remise du paiement est bloquée temporairement pour permettre au marchand de
procéder à toutes les vérifications souhaitées.
REFUSE La transaction est refusée.
RUN_RISK_ANALYSIS Appel à un analyseur de risques externes sous condition que le marchand possède un
contrat.
Se référer à la description du champ vads_risk_analysis_result pour identifier la liste
des valeurs possibles et leur description.
INFORM Une alerte est remontée.
Le marchand est averti qu’un risque est identifié.
Le marchand est informé via une ou plusieurs des règles du centre de notification (URL
de notification, e-mail ou SMS).
Requête à envoyer
L'opération validatePayment est utilisée pour valider un paiement.
La requête validatePayment est constituée d'un HEADER et d'un BODY.
HEADER
Valorisez le HEADER afin de transmettre la valeur des attributs shopId, requestId, timestamp, mode et
authToken (voir chapitre L'en-tête).
BODY
L'opération validatePayment prend en entrée un objet de type validatePayment.
Le type validatePayment est constitué des paramètres suivants :
Objet Format Requis
commonRequest commonRequest
queryRequest queryRequest
commonRequest
L'objet commonRequest permet de transmettre des informations générales sur une opération.
Un seul attribut peut être valorisé si besoin :
Attribut Requis Format
comment
string
Commentaire libre.
Le commentaire sera affiché dans l'historique de la transaction visible depuis le Back Office Marchand.
queryRequest
L'objet queryRequest permet d’interroger une transaction pour en connaître ses différents attributs.
L'attribut à valoriser est le suivant :
Attribut Requis Format
uuid
string
Référence unique de la transaction.
Réponse en retour
La réponse à l'opération validatePayment est faite par la plateforme de paiement suite à une validation
d'un paiement. Elle est constituée d'un HEADER et d'un BODY de type validatePaymentResponse.
HEADER
Le HEADER est transmis par la plateforme de paiement.
Vérifiez la valeur du jeton d'authentification (voir chapitre Vérifier l'en-tête SOAP dans la réponse).
BODY
La structure du message validatePaymentResponse est la suivante :
Nom Type
validatePaymentResult validatePaymentResult
Les données retournées dans la réponse dépendent des objets et attributs envoyés dans la requête.
Cependant, quelle que soit l'opération, l'attribut responseCode de l'objet CommonResponse doit avant
tout être analysé :
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Attribute Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès (à ne pas confondre avec le statut de la
transaction).
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
transactionStatusLabel string
Libellé du statut de la transaction. Les valeurs possibles sont :
AUTHORISED
En attente de remise.
La transaction est acceptée et sera remise en banque automatiquement à la date prévue.
WAITING_AUTHORISATION
En attente d’autorisation.
La date de remise demandée est supérieure à la date de fin de validité d’une demande d’autorisation.
Une autorisation de 1000 XOF a été réalisée et acceptée par la banque émettrice. La demande d’autorisation
et la remise en banque seront déclenchées automatiquement.
REFUSED
Refusée.
La transaction est refusée.
Attribute Format
shopId n8
Identifiant de la boutique.
paymentSource string
Origine de la transaction. Les valeurs possibles sont :
EC pour le commerce électronique.
submissionDate dateTime
Date et heure UTC de la transaction exprimée au format W3C (exemple : 2016-07-16T19:20:00Z). ans..40
contractNumber string
Numéro de contrat commerçant utilisé.
paymentToken string
Alias (token).
Toute tentative de capture manuelle d'une transaction, réalisée sur un réseau ne supportant pas la capture
manuelle, sera refusée avec un code retour responseCode 81.
Requête à envoyer
La requête capturePayment est constituée d'un HEADER et d'un BODY.
HEADER
Valorisez le HEADER afin de transmettre la valeur des attributs shopId, requestId, timestamp, mode et
authToken (voir chapitre L'en-tête).
BODY
L'opération capturePayment prend en entrée un objet de type capturePayment.
Le type capturePayment est composé d'un seul objet :
Objet Format Requis
settlementRequest settlementRequest
settlementRequest
L'objet settlementRequest permet de remiser une transaction par carte ou Boleto (Bresil).
Attribut Requis Format
transactionUuids
string
Liste de transactions sur lesquelles une remise est demandée.
commission
Réservé à un usage spécifique (Brésil).
n2
Cet attribut est obligatoire pour Boleto.
Commission payée à la banque pour le service de facturation.
date
Réservé à un usage spécifique (Brésil).
dateTime
Date de remise en banque exprimée au format ISO 8601 définit par W3C.
ans..40
Exemple : 2016-07-16T00:00:00Z. Les heures, minutes et secondes seront égales à zéro pour cet
attribut.
Réponse en retour
La réponse à l'opération capturePayment est faite par la plateforme de paiement suite à la remise d'un
paiement.
Elle est constituée d'un HEADER et d'un BODY de type capturePaymentResponse.
HEADER
Le HEADER est transmis par la plateforme de paiement.
Vérifiez la valeur du jeton d'authentification (voir chapitre Vérifier l'en-tête SOAP dans la réponse).
BODY
La structure du message capturePaymentResponse est la suivante :
Nom Type
capturePaymentResult capturePaymentResult
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Attribut Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès (à ne pas confondre avec le statut de la
transaction).
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
Requête à envoyer
La requête getPaymentDetails est constituée d'un HEADER et d'un BODY.
HEADER
Valorisez le HEADER afin de transmettre la valeur des attributs shopId, requestId, timestamp, mode et
authToken (voir chapitre L'en-tête).
BODY
L'opération getPaymentDetails prend en entrée un objet de type getPaymentDetails.
queryRequest
L'objet queryRequest permet d’interroger une transaction pour en connaître ses différents attributs.
L'attribut à valoriser est le suivant :
Attribut Requis Format
uuid
string
Référence unique de la transaction.
extendedResponseRequest
L'objet extendedResponseRequest permet de d'obtenir des informations spécifique dans la réponse.
Attribut Requis Format
isNsuRequested boolean
Permet d'obtenir le NSU (Numéro de Séquence Unique) dans la réponse (champ
paymentResponse.nsu) si valorisé à 1. Utilisé en Amérique Latine.
isWalletRequested boolean
Permet d'obtenir le nom du wallet (Masterpass, Google Pay etc..) dans la réponse (champ
paymentResponse.wallet) si valorisé à 1.
isBankLabelRequested boolean
Permet d'obtenir le nom de la banque émettrice dans la réponse (champ
cardResponse.bankLabel)si valorisé à 1
Réponse en retour
La réponse à l'opération getPaymentDetails est faite par la plateforme de paiement suite à une demande
d'information sur un paiement.
Elle est constituée d'un HEADER et d'un BODY de type getPaymentDetailsResponse.
HEADER
Le HEADER est transmis par la plateforme de paiement.
Vérifiez la valeur du jeton d'authentification (voir chapitre Vérifier l'en-tête SOAP dans la réponse).
BODY
La structure du message getPaymentDetailsResponse est la suivante :
Nom Type
getPaymentDetailsResult getPaymentDetailsResult
Les données retournées dans la réponse dépendent des objets et attributs envoyés dans la requête.
Cependant, quelle que soit l'opération, l'attribut responseCode de l'objet CommonResponse doit avant
tout être analysé :
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
Remarque : les objets subscriptionResponse et tokenResponse ne sont pas valorisés dans la réponse.
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Attribut Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès (à ne pas confondre avec le statut de la
transaction).
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Attribut Format
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
transactionStatusLabel string
Libellé du statut de la transaction. Les valeurs possibles sont :
AUTHORISED
En attente de remise.
La transaction est acceptée et sera remise en banque automatiquement à la date prévue.
AUTHORISED_TO_VALIDATE
A valider.
La transaction, créée en validation manuelle, est autorisée. Le marchand doit valider manuellement la
remise en banque. La transaction peut être validée tant que la date de remise n’est pas dépassée. Si cette
date est dépassée, le paiement prend le statut Expiré (statut définitif).
WAITING_AUTHORISATION
En attente d’autorisation.
La date de remise demandée est supérieure à la date de fin de validité d’une demande d’autorisation.
Une autorisation de 1000 XOF a été réalisée et acceptée par la banque émettrice. La demande d’autorisation
et la remise en banque seront déclenchées automatiquement.
WAITING_AUTHORISATION_TO_VALIDATE
A valider et à autoriser.
La date de remise demandée est supérieure à la date de fin de validité d’une demande d’autorisation.
Une autorisation de 1000 XOF a été réalisée et acceptée par la banque émettrice. La demande d’autorisation
sera déclenchée automatiquement à J-1 avant la date de remise en banque. Le paiement pourra être
accepté ou refusé. La remise en banque est automatique.
REFUSED
Refusée.
La transaction est refusée.
CAPTURED
La transaction est remise en banque.
CANCELLED
Annulée.
La transaction est annulée par le marchand.
EXPIRED
Expirée.
La date de remise est atteinte mais le marchand n’a pas validé la transaction.
UNDER_VERIFICATION
Pour les transactions PayPal, cette valeur signifie que PayPal retient la transaction pour suspicion de fraude.
Le paiement restera dans l’onglet Transactions en cours jusqu'à ce que les vérifications soient achevées. La
transaction prendra alors l'un des statuts suivants: AUTHORISED ou CANCELED.
Une notification sera envoyée au marchand pour l'avertir du changement de statut (Notification sur
modification par batch).
ACCEPTED
Statut d'une transaction de type vérification (création ou mise à jour d'un alias).
La demande d'autorisation ou de renseignement a été acceptée.
shopId n8
Identifiant de la boutique.
paymentSource string
Origine de la transaction. Les valeurs possibles sont :
EC pour le commerce électronique.
submissionDate dateTime
Date et heure UTC de la transaction exprimée au format W3C (exemple : 2016-07-16T19:20:00Z). ans..40
Attribut Format
contractNumber string
Numéro de contrat commerçant utilisé.
paymentToken string
Alias (token).
paymentResponse
L'objet paymentResponse détaille les informations sur la transaction.
Attribut Format
transactionUuid string
Référence unique de la transaction générée par la plateforme de paiement. ans32
transactionId
Identifiant de la transaction lors de la création ou la modification d'une transaction de paiement.
Sa valeur est unique sur une même journée.
an..6
Soit cet identifiant est généré par la plateforme.
amount
n..12
Montant de la transaction dans sa plus petite unité monétaire .
currency
Code de la devise de la transaction (norme ISO 4217). n3
Ex : 952 pour le Franc CFA (XOF) ou 324 pour le Franc guinéen (GNF)
effectiveAmount n..12
Montant de la transaction dans la devise réellement utilisée pour effectuer la remise en banque.
effectiveCurrency n3
Devise réellement utilisée pour effectuer la remise en banque.
expectedCaptureDate
Date de remise en banque souhaitée. dateTime
Remarque : si le délai avant remise est supérieur à 365 jours dans la requête de paiement, il est ans..40
automatiquement repositionné à 365 jours.
operationType n1
Type d'opération.
Les valeurs possibles sont :
0 pour une opération de débit.
creationDate dateTime
Date et heure de l’enregistrement de la transaction exprimée au format W3C. ans..40
externalTransactionId string
Référence fournie par un tiers : numéro de transaction pour PayPal, Boleto, RRN pour Prism, etc…
liabilityShift string
Transfert de responsabilité.
Les valeurs possibles sont :
YES lorsque le paiement est garanti.
paymentType string
Type de paiement. (enum)
Les valeurs possibles sont :
SINGLE
Paiement en une seule fois.
INSTALLMENT
Paiement en plusieurs fois.
SPLIT
Paiement effectué avec plusieurs moyens de paiement.
SUBSCRIPTION
Paiement par alias ou paiement récurrent. S'applique aussi aux transactions de type Vérification (création et
mise à jour d'un alias).
RETRY
Attribut Format
Lors d'un paiement refusé, il est possible de réitérer la demande de paiement. Pour toute(s) réitération(s), le
paiement est valorisé avec cette valeur.
Remarque :
Les valeurs INSTALLMENT et SPLIT peuvent être retournées uniquement si des paiements ont été créés via le
formulaire de paiement.
sequenceNumber n..3
Numéro de séquence de la transaction. Sa valeur est fonction du contexte du paiement :
Est valorisé à "1" pour un paiement unitaire.
Prend la valeur du numéro d’échéance dans le cas d’un paiement en plusieurs fois créé à partir du formulaire
de paiement.
paymentError n..3
Complément d’information en cas d’erreur technique. Retourne un code d'erreur associé à l'erreur technique
(voir chapitre Codes d'erreurs pouvant survenir durant le paiement).
nsu string
Numéro de Séquence Unique. Utilisé par certains acquéreurs d'Amérique Latine.
Retourné lorsque extendedResponseRequest.isNsuRequested est valorisé à 1 dans la requête.
wallet string
Nom du wallet (Google Pay, Masterpass etc.).
Retourné lorsque extendedResponseRequest.isWalletRequested est valorisé à 1 dans la requête.
orderResponse
L'objet orderResponse détaille la commande.
Attribut Format
orderId string
Référence de la commande. an..64
extInfo
Données personnalisées retournées en fonction des besoins.
Exemple : extInfo.key, extInfo.value
extInfo
key : nom de la donnée (son format est "string").
cardResponse
L'objet cardResponse détaille les informations du moyen de paiement utilisé.
Attribut Format
number string
Numéro de carte masqué. Contient les 6 premiers chiffres du numéro, suivi par “XXXXXX” et enfin les 4
derniers chiffres.
IBAN et BIC utilisés pour le paiement, séparés par un « _ » dans le cas d’un paiement par prélèvement.
scheme string
Type de la carte.
brand string
Marque de la carte utilisée pour la transaction
country ISO 3166
Code pays du pays d’émission de la carte (Code numérique ISO 3166).
productCode an..3
Code produit de la carte.
bankCode n..5
Code banque de la banque émettrice.
bankLabel string
Nom de la banque émettrice.
Attribut Format
Retourné uniquement si extendedResponseRequest.isBankLabel est valorisé à 1 dans la requête.
expiryMonth n..2
Mois d’expiration entre 1 et 12 (ex: 3 pour mars, 10 pour octobre).
expiryYear n4
Année d’expiration sur 4 chiffres (ex : 2023).
authorizationResponse
L'objet authorizationResponse permet d'obtenir des informations sur la demande d'autorisation.
Attribut Format
mode string
Spécifie de quelle manière est réalisée la demande d’autorisation. Deux valeurs possibles :
MARK
Une autorisation de 1000 XOF a été réalisée afin de vérifier la validité de la carte.
Ce cas se présente lorsque la date de remise dépasse la période de validité d'une autorisation .
FULL
Autorisation pour le montant total demandé dans la requête.
amount n..12
Montant de l’autorisation dans la plus petite unité monétaire dans le cas où mode vaut FULL.
currency n3
Code de la monnaie utilisée lors de la demande d’autorisation (suivant la norme ISO 4217) dans le cas où mode
vaut FULL.
date dateTime
Date et heure de la demande d’autorisation dans le cas où mode vaut FULL. ans..40
number an..12
Numéro de la demande d’autorisation dans le cas où mode vaut FULL.
result an..12
Code retour de la demande d’autorisation retourné par la banque émettrice en cas de refus.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour d'une demande d'autorisation.
captureResponse
L'objet captureResponse permet d'obtenir des informations à propos de la remise dans le cas où la
transaction est remisée.
Attribut Format
date dateTime
Date et heure de remise. ans..40
number n3
Numéro de remise.
reconciliationStatus n1
Statut du rapprochement bancaire de la transaction.
refundAmount n..12
Montant ayant déjà fait l’objet d’un remboursement dans sa plus petite unité monétaire.
refundCurrency n3
Devise du montant ayant déjà fait l’objet d’un remboursement (Code monnaie ISO 4217 Ex : 952 pour le Franc CFA
(XOF) ou 324 pour le Franc guinéen (GNF) .
chargeback boolean
Litige, impayé. Les valeurs possibles sont :
0 : transaction ne faisant pas l'objet d'un litige.
customerResponse
L'objet customerResponse détaille de nombreuses informations à propos de l'acheteur.
La réponse se décompose en l'analyse de :
billingDetails
Données de facturation de l'acheteur.
shippingDetails
Données de livraison de l'acheteur. Les valeurs présentes dans cet objet seront identiques à celles de
l'objet billingDetails.
extraDetails
Données techniques liées à l'acheteur.
6.10.2.7.1. Objet billingDetails
Attribut Format
reference
string n..80
Référence de l'acheteur.
title
Civilité de l'acheteur. string n..80
Exemples de valeurs possibles : Monsieur, Madame, etc..
type
Type d'acheteur.
Les valeurs possibles sont :
string (enum)
PRIVATE pour un particulier.
firstName string
Nom de l'acheteur. ans..128
lastName string
Prénom de l'acheteur. ans..128
phoneNumber
string ans..32
Numéro de téléphone de l'acheteur.
email
string
E-mail de l'acheteur.
ans..150
Paramètre obligatoire lors de la création d'un alias.
streetNumber
Numéro de rue de l'acheteur. string an..5
Remarque : si cet attribut est présent dans la requête, il ne peut être envoyé vide.
address string
Adresse de l'acheteur. ans..255
district string
Quartier de l'acheteur. ans..127
zipCode
string ans..64
Code postal de l'acheteur.
city string
Ville de l'acheteur. ans..128
state string
Etat/Région de l'acheteur. ans..128
country
Pays de l'acheteur selon la norme ISO 3166.
Exemples de valeurs possibles :
string - a2
DE pour l'Allemagne IT pour l'Italie PT pour le Portugal
Attribut Format
language
Langue de l'acheteur selon la norme ISO 639-1.
Exemples de valeurs possibles :
tr pour le turc
cellPhoneNumber
string ans..32
Numéro de téléphone mobile
legalName string
Raison sociale de la société. ans..128
Attribut Format
type
Type d'acheteur.
Les valeurs possibles sont : string
PRIVATE pour un particulier. (enum)
firstName string
Nom de l'acheteur. ans..128
lastName string
Prénom de l'acheteur. ans..128
phoneNumber string
Numéro de téléphone de l'acheteur. ans..32
streetNumber
Numéro de rue pour la livraison. string an..5
Remarque : si cet attribut est présent dans la requête, il ne peut être envoyé vide.
address string
Adresse de livraison. ans..255
address2 string
Complément d'adresse de livraison. ans..255
district string
Quartier de livraison. ans..127
zipCode string
Code postal de livraison. ans..64
city string
Ville de livraison. ans..128
state string
Etat/Région de livraison. ans..128
country string - a2
Attribut Format
Pays de livraison.
deliveryCompanyName string
Informations sur le transporteur. ans..128
shippingSpeed
Mode de livraison sélectionné.
Les valeurs possibles sont : string
STANDARD pour une livraison standard. (enum)
shippingMethod
Méthode de livraison utilisée.
Les valeurs possibles sont :
RECLAIM_IN_SHOP pour le retrait de la marchandise en magasin.
RELAY_POINT pour l'utilisation d'un réseau de points de retrait tiers (Kiala, Alveol, etc). string
(enum)
RECLAIM_IN_STATION pour le retrait dans un aéroport, une garde ou une agence de voyage.
legalName string
Raison sociale de la société. ans..128
identityCode
Permet d'identifier de façon unique chaque citoyen au sein d'un pays. string
Par exemple, au Brésil, ClearSale impose que ce champ soit valorisé avec le CPF/ CNPJ (format numérique, de ans..255
longueur comprise entre 11 et 20 digits).
markResponse
L'objet markResponse permet d'obtenir des informations sur la demande d'autorisation à 1000 XOF .
Attribut Format
amount n..12
Montant utilisé pour vérifier la validité de la carte, dans la plus petite unité monétaire .
currency n3
Code de la monnaie utilisée pour vérifier la validité de la carte (suivant la norme ISO 4217) Ex : 952 pour le Franc
CFA (XOF) ou 324 pour le Franc guinéen (GNF) .
date
dateTime
Date et heure de la demande d’autorisation réalisée dans le cas où l'attribut mode de l'objet
ans..40
authorizationResponse vaut MARK.
number
dateTime
Numéro d’autorisation de la demande d’autorisation dans le cas où l'attribut mode de l'objet
ans..40
authorizationResponse vaut MARK.
result n..2
Résultat de la demande d’autorisation réalisée dans le cas où l'attribut mode de l'objet authorizationResponse
vaut MARK.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour d'une demande d'autorisation.
threeDSResponse
L'objet threeDSResponse permet d'obtenir des informations à propos de l'authentification 3D Secure v1.
Il contient un attribut authenticationResultData qui décrit le résultat de l’authentification 3D Secure v1.
Il est composé des attributs suivants :
Attribut Format
transactionCondition string
Statut de l'authentification 3D Secure. Les valeurs possibles sont :
COND_3D_SUCCESS
Succès de l'authentification.
Le marchand et le porteur de la carte sont inscrits au programme 3D Secure et le porteur s’est authentifié
correctement.
COND_3D_FAILURE
Echec de l’authentification.
Le marchand et le porteur de la carte sont inscrits au programme 3D Secure mais l’acheteur n’a pas réussi
à s’authentifier (mauvais mot de passe).
COND_3D_ERROR
Authentification en erreur.
Le marchand participe au programme 3D Secure mais le serveur de la plateforme de paiement a rencontré
un problème technique durant le processus d’authentification (lors de la vérification de l’inscription de la
carte au programme 3D ou de l’authentification du porteur).
COND_3D_NOTENROLLED
Porteur non enrôlé.
Le marchand participe au programme 3D Secure mais la carte du porteur n’est pas enrôlée.
COND_3D_ATTEMPT
Tentative d'authentification.
Le marchand et le porteur de la carte sont inscrits au programme 3D Secure mais l’acheteur n’a pas eu
à s’authentifier (le serveur de contrôle d’accès de la banque qui a émis la carte n’implémente que la
génération d’une preuve de tentative d’authentification).
COND_SSL
3D Secure non applicable.
Le marchand n’est pas enrôlé à 3D Secure ou le canal de vente n’est pas couvert par cette garantie.
enrolled
Statut enrôlement du porteur. Les valeurs possibles sont :
Y pour un statut enrôlé.
string
N pour un statut non enrôlé.
status a1
Statut de l'authentification du porteur. Les valeurs possibles sont :
Y pour un statut authentifié 3 DS.
eci string
Indicateur de commerce Electronique.
La valeur eci est fonction du statut de l’authentification 3DS et du type de carte. Les valeurs possibles sont :
xid string
Attribut Format
Numéro de transaction 3DS.
cavvAlgorithm n1
Algorithme de vérification de l’authentification du porteur (CAVV). Les valeurs possibles sont :
0 pour HMAC.
1 pour CVV.
2 pour CVV_ATN.
cavv string
Certificat de l’ACS.
signValid string
Signature de l’authentification 3DS.
brand string
Réseau de la carte.
fraudManagementResponse
L'objet fraudManagementResponse permet d'obtenir les résultats des contrôles de gestion de risques.
La réponse se décompose en l'analyse des attributs :
riskControl
Retourne le résultat du contrôle de gestion de risques effectué.
riskAnalysis
Retourne le résultat de l'analyse de gestion de risques effectué par un système externe (Konduto,
ClearSale, CyberSource,...).
riskAssessment
Retourne le résultat de l'analyse de gestion des risques avancée effectuée par la plateforme de
paiement.
L'attribut riskControl
Le format est le suivant : name1=result1;name2=result2
Nom Format Description
name string Nom de la règle de gestion de risque.
result string Résultat du contrôle.
L'attribut riskAnalysis
Attribut Format
score string
Score attribué à chaque transaction permettant d'évaluer le risque qui lui est associé.
resultCode string
Code renvoyé par un analyseur de risque externe.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour renvoyés par l'analyseur de risque
externe.
status string
Statut de l'analyse de risque. Les valeurs possibles sont les suivantes :
P_SEND_OK, "Sent to clearsale and successfully processed"
Succès
P_TO_SEND, "Transaction analysis is scheduled to be sent to risk analyzer"
L'envoi est programmé
P_TO_SEND_KO, "Problem when tried to send to risk analyzer"
Erreur de traitement
P_PENDING_AT_ANALYZER, "Analysis result is still being processed by the risk analyzer. We should keep
checking/waiting for the analysis result"
En cours de traitement par l'analyseur
P_MANUAL, "Analysis should be requested through user request (not automatically)"
Attente d'envoi manuel
P_SKIPPED, "Analysis request discarded by current transaction status/problem"
Ecarté
P_SEND_EXPIRED, "Analysis request expired"
Expiré
requestId string
Identifiant de l’analyse chez l’analyseur de risque.
extraInfo extInfo
Pas de valorisation pour ClearSale.
Pour CyberSource, cet attribut retourne tous les codes renvoyés par le DecisionManager.
key : nom de la donnée (son format est "string").
Exemple :
COR-BA=Adresse de facturation corrigée ou corrigeable
A=Changements d'adresse excessifs. L'acheteur a changé d'adresse de facturation au moins deux fois au
cours des six derniers mois.
etc.
L'attribut riskAssessment
Valeurs Description
ENABLE_3DS 3D Secure activé.
DISABLE_3DS 3D Secure désactivé.
MANUAL_VALIDATION La transaction est créée en validation manuelle.
La remise du paiement est bloquée temporairement pour permettre au marchand de
procéder à toutes les vérifications souhaitées.
REFUSE La transaction est refusée.
Valeurs Description
RUN_RISK_ANALYSIS Appel à un analyseur de risques externes sous condition que le marchand possède un
contrat.
Se référer à la description du champ vads_risk_analysis_result pour identifier la liste
des valeurs possibles et leur description.
INFORM Une alerte est remontée.
Le marchand est averti qu’un risque est identifié.
Le marchand est informé via une ou plusieurs des règles du centre de notification (URL
de notification, e-mail ou SMS).
extraResponse
L'objet extraResponse permet d'obtenir des informations supplémentaires à propos du paiement.
Attribut Format
paymentOptionCode string
Code de l'option de paiement utilisée lors du paiement.
paymentOptionOccNumb n..2
Nombre d'échéances lors d'un paiement en plusieurs fois.
Par exemple, pour un paiement en trois fois, cet attribut sera valorisé à 3.
Avec la mise en place du 3D Secure v2, cette fonctionnalité ne sera plus disponible.
Requête à envoyer
La requête verifyThreeDSEnrollement est constituée d'un HEADER et d'un BODY.
HEADER
Valorisez le HEADER afin de transmettre la valeur des attributs shopId, requestId, timestamp, mode et
authToken (voir chapitre L'en-tête).
BODY
L'opération verifyThreeDSEnrollement prend en entrée un objet de type verifyThreeDSEnrollement.
commonRequest
L'objet commonRequest permet de transmettre des informations générales sur une opération.
Il possède les attributs suivants :
Attribut Requis Format
contractNumber
string
Numéro de contrat commerçant utilisé.
paymentRequest
L'objet paymentRequest permet de transmettre des informations liées au paiement.
Il possède les attributs suivants :
Attribut Requis Format
amount
Montant pour lequel une authentification forte est demandée (sera visible sur la page
d'authentification).
Doit être exprimé dans sa plus petite unité monétaire . n..12
Remarque :
Peut être envoyé à "0", notamment lorsque la méthode verifyThreeDSEnrollment est appelée
préalablement à la création d'un alias.
currency
Code de la devise de la transaction (norme ISO 4217). n3
Ex : 952 pour le Franc CFA (XOF) ou 324 pour le Franc guinéen (GNF)
cardRequest
L'objet cardRequest permet de transmettre les informations sur la carte de paiement.
techRequest
threeDSRequest
L'objet threeDSRequest permet de transmettre des informations liées à 3D Secure.
Dans l'opération verifyThreeDSEnrollment, threeDSRequest est spécifique à l'Inde.
En Inde, des informations complémentaires sont requises pour procéder à l'authentification (exemple :
numéro de téléphone de l'acheteur).
Pour cela, un attribut doit être envoyé :
Attribut Format
mpiExtension
Données complémentaires suite à la vérification effectuée par le MPI du marchand.
Est composé d'un sous objet extensionData de type extInfo.
Exemple: extensionData.key, extensionData.value extensionData
key: nom de la donnée (son format est "string").
Exemple :
<threeDSRequest>
<mpiExtension>
<extensionData>
<key>extensionType</key>
<value>npc356</value>
</extensionData>
<extensionData>
<key>phoneid</key>
<value>91000000000</value>
</extensionData>
</mpiExtension>
</threeDSRequest>
Réponse en retour
La réponse à l'opération verifyThreeDSEnrollement est faite par la plateforme de paiement suite à une
vérification de l'enrôlement de la carte de l'acheteur à 3D Secure.
BODY
La structure du message verifyThreeDSEnrollementResponse est la suivante :
Nom Type
verifyThreeDSEnrollementResult verifyThreeDSEnrollementResult
Les données retournées dans la réponse dépendent des objets et attributs envoyés dans la requête.
Cependant, quelle que soit l'opération, l'attribut responseCode de l'objet CommonResponse doit avant
tout être analysé :
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Les attributs contenant une valeur dans la réponse sont les suivants :
Attribut Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
threeDSResponse
L'objet threeDSResponse permet d'obtenir des informations à propos de l'authentification 3D Secure.
Il contient un attribut authenticationRequestData qui donne le statut d’enrôlement ainsi que le message
encodé qui sera transmis par le navigateur de l'acheteur à l’ACS.
Il est composé des attributs suivants:
Attribut Format
threeDSAcctId string
Certificat renvoyé par le Directory Server.
threeDSAcsUrl string
Url de l’ACS à contacter.
threeDSBrand string
Réseau de la carte.
threeDSEncodedPareq string
Message PAReq encodé, prêt à envoyer à l’ACS.
threeDSEnrolled a1
Statut enrôlement du porteur.
Les valeurs possibles sont :
Y pour un statut enrôlé.
threeDSRequestId string
Numéro de requête, à rappeler dans l’appel ENABLED_FINALIZE de l'attribut mode de l'objet threeDSRequest.
Avec la mise en place du 3D Secure v2, cette fonctionnalité ne sera plus disponible.
Requête à envoyer
La requête checkThreeDSAuthentication est constituée d'un HEADER et d'un BODY.
HEADER
Valorisez le HEADER afin de transmettre la valeur des attributs shopId, requestId, timestamp, mode et
authToken (voir chapitre L'en-tête).
BODY
L'opération checkThreeDSAuthentication prend en entrée un objet de type checkThreeDSAuthentication.
Le type checkThreeDSAuthentication est constitué des paramètres suivants :
Objet Format Requis
commonRequest commonRequest
threeDSRequest threeDSRequest
commonRequest
L'objet commonRequest permet de transmettre des informations générales sur une opération.
Il possède les attributs suivants :
Attribut Requis Format
contractNumber
string
Numéro de contrat commerçant utilisé.
threeDSRequest
L'objet threeDSRequest permet de transmettre des informations liées à 3D Secure.
Deux attributs doivent obligatoirement être envoyés :
Attribut Requis Format
requestId
Doit contenir la valeur retournée dans l'attribut threeDSRequestId de l'objet string
authenticationRequestData dans l'opération verifyThreeDSEnrollment.
pares
string
Message PaRes (Payer Authentication Response) renvoyé par l'ACS.
Réponse en retour
La réponse à l'opération checkThreeDSAuthentication est faite par la plateforme de paiement suite à une
vérification du statut de l'authentification 3D Secure.
Elle est constituée d'un HEADER et d'un BODY de type checkThreeDSAuthenticationResponse.
HEADER
Le HEADER est transmis par la plateforme de paiement.
Vérifiez la valeur du jeton d'authentification (voir chapitre Vérifier l'en-tête SOAP dans la réponse).
BODY
La structure du message checkThreeDSAuthenticationResponse est la suivante :
Nom Type
checkThreeDSAuthenticationResult checkThreeDSAuthenticationResult
Les données retournées dans la réponse dépendent des objets et attributs envoyés dans la requête.
Cependant, quelle que soit l'opération, l'attribut responseCode de l'objet CommonResponse doit avant
tout être analysé :
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Attribut Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès (à ne pas confondre avec le statut de la
transaction).
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
threeDSResponse
L'objet threeDSResponse permet d'obtenir des informations à propos de l'authentification 3D Secure.
Il contient un attribut authenticationResultData qui décrit les détails de l’authentification 3D-Secure.
Il est composé des attributs suivants:
Attribut Format
enrolled
Statut enrôlement du porteur. Les valeurs possibles sont :
Y pour un statut enrôlé.
string
N pour un statut non enrôlé.
status a1
Statut de l'authentification du porteur. Les valeurs possibles sont :
Y pour un statut authentifié 3 DS.
eci string
Indicateur de commerce Electronique.
La valeur eci est fonction du statut de l’authentification 3DS et du type de carte. Les valeurs possibles sont :
xid string
Numéro de transaction 3DS.
cavvAlgorithm n1
Algorithme de vérification de l’authentification du porteur (CAVV). Les valeurs possibles sont :
0 pour HMAC.
1 pour CVV.
2 pour CVV_ATN.
cavv string
Certificat de l’ACS.
signValid string
Signature de l’authentification 3DS.
brand string
Réseau de la carte.
Le service "Accès à l'acquisition sur site marchand via web service" permet la création des transactions
via l'opération :
Le traitement d'un appel createToken donne lieu à la création d'une transaction de type VERIFICATION
(operationType=5), visible dans le Back Office Marchand et possédant les caractéristiques suivantes:
son montant est de 1000 XOF,
son statut est soit "Accepté" (transactionStatusLabel=ACCEPTED) soit
"Refusé" (transactionStatusLabel=REFUSED),
elle n'est jamais remise en banque et reste dans l'onglet "Transactions en cours".
Attention :
L'alias (token) ne sera pas créé si la demande d'autorisation est refusée.
Le partage d'alias
Il est possible de partager des alias (token) entre plusieurs entités juridiques.
Les alias partagés entre plusieurs entités juridiques doivent être uniques et doivent être impérativement
générés par la plateforme de paiement (en d'autres termes l'attribut paymentToken de l'objet
cardRequest ne doit pas être renseigné).
Cependant, cette fonctionnalité est soumise à des conditions particulières. Veuillez contacter
l'interlocuteur de votre plateforme de paiement pour en prendre connaissance.
Requête à envoyer
La requête createToken est constituée d'un HEADER et d'un BODY.
HEADER
Valorisez le HEADER afin de transmettre la valeur des attributs shopId, requestId, timestamp, mode et
authToken (voir chapitre L'en-tête).
BODY
L'opération createToken prend en entrée un objet de type createToken.
Le type createToken est constitué des paramètres suivants :
Objet Format Requis
commonRequest commonRequest
cardRequest cardRequest
customerRequest customerRequest
tokenRequest tokenRequest
Note :
L'objet shippingDetails contenu dans le customerRequest n'est pas pris en compte lors de la création d'un
alias.
commonRequest
L'objet commonRequest permet de transmettre des informations générales sur une opération.
Il possède les attributs suivants :
Attribut Requis Format
paymentSource
Origine de la transaction. Les valeurs possibles sont :
EC pour le commerce électronique.
Paramètre utilisé par défaut si aucune valeur est renseignée ou si différente des valeurs
possibles.
MOTO pour une commande par courrier ou téléphone.
string
CC pour un centre d'appel.
cardRequest
L'objet cardRequest permet de transmettre les informations sur la carte de paiement.
Pour créer un alias, plusieurs attributs sont requis :
Attribut Requis Format
number
Numéro de la carte. string
requiert la souscription au service "Accès à l'acquisition sur site marchand via Web Services"
scheme
Types de cartes.
string
Les valeurs possibles sont AMEX, CB, MASTERCARD, VISA, VISA_ELECTRON, VPAY, MAESTRO, E-
CARTEBLEUE ou JCB.
expiryMonth
n..2
Mois d’expiration de la carte, entre 1 et 12.
expiryYear
Année d’expiration de la carte sur 4 digits. n4
Exemple : 2016
cardSecurityCode
Cryptogramme visuel à 3 chiffres (ou 4 pour Amex).
Ce champ est obligatoire lorsque la carte dispose d’un code cryptogramme visuel. Si le CVV n’est string
pas transmis, la banque émettrice refusera le paiement.
En revanche, ce champ est facultatif lorsque l'origine de la transaction est valorisée à MOTO.
cardHolderBirthday Requis
Date de naissance du porteur au format YYYY-MM-DD. selon le dateTime
moyen de ans..64
paiement
paymentToken
Identifiant unique (alias) associé à un moyen de paiement.
Soit cet identifiant est généré par la plateforme.
Dans ce cas, ce paramètre ne doit pas être renseigné.
Soit cet identifiant est généré par le site marchand. string
Dans ce cas, ce paramètre doit être renseigné avec la valeur de l’identifiant souhaité. Attention, ans..64
il incombe au site marchand de s’assurer de l’unicité des identifiants. Toute demande
d'enregistrement contenant un identifiant déjà existant, sera rejetée, et provoquera l’affichage
d’un message d’erreur.
Requiert la souscription au service "Gestion des alias par Web Services".
customerRequest
L'objet customerRequest permet de transmettre des informations liées à la livraison, à la facturation et
des données techniques liées à l'acheteur
Cet objet doit obligatoirement être envoyé dans la requête.
Il est composé des sous-objets suivants :
Format Sous-objet Requis
billingDetails billingDetailsRequest
Données de facturation de l'acheteur.
shippingDetails shippingDetailsRequest
Données de livraison de l'acheteur.
extraDetails extraDetailsRequest
Données techniques liées à l'acheteur.
Tableau 13 : Sous-objets de customerRequest
firstName string
Nom de l'acheteur. ans..128
lastName string
Prénom de l'acheteur. ans..128
phoneNumber string
Numéro de téléphone de l'acheteur. ans..32
email
string
E-mail de l'acheteur. pour la création d'un ans..150
Paramètre obligatoire lors de la création d'un alias. alias
streetNumber
string
Numéro de rue de l'acheteur.
an..5
Remarque : si cet attribut est présent dans la requête, il ne peut être envoyé vide.
address string
Adresse de l'acheteur. ans..255
district string
Quartier de l'acheteur. ans..127
zipCode string
Code postal de l'acheteur. ans..64
city string
Ville de l'acheteur. ans..128
state string
Etat/Région de l'acheteur. ans..128
country
Pays de l'acheteur selon la norme ISO 3166.
Exemples de valeurs possibles :
language
Langue de l'acheteur selon la norme ISO 639-1.
Exemples de valeurs possibles :
tr pour le turc
cellPhoneNumber string
Numéro de téléphone mobile ans..32
identityCode
Permet d'identifier de façon unique chaque citoyen au sein d'un pays. string
Par exemple, au Brésil, ClearSale impose que ce champ soit valorisé avec le CPF/ CNPJ ans..255
(format numérique, de longueur comprise entre 11 et 20 digits).
firstName string
Nom de l'acheteur. ans..128
lastName string
Prénom de l'acheteur. ans..128
phoneNumber string
Numéro de téléphone de l'acheteur. ans..32
streetNumber
string
Numéro de rue pour la livraison.
an..5
Remarque : si cet attribut est présent dans la requête, il ne peut être envoyé vide.
address string
Adresse de livraison. ans..255
address2 string
Complément d'adresse de livraison. ans..255
district string
Quartier de livraison. ans..127
zipCode string
Code postal de livraison. ans..64
city string
Ville de livraison. ans..128
state string
Etat/Région de livraison. ans..128
country
string - a2
Pays de livraison.
deliveryCompanyName string
Informations sur le transporteur. ans..128
shippingSpeed
Mode de livraison sélectionné.
Les valeurs possibles sont : string
STANDARD pour une livraison standard. (enum)
shippingMethod
Méthode de livraison utilisée. string
Les valeurs possibles sont : (enum)
RECLAIM_IN_SHOP pour le retrait de la marchandise en magasin.
RECLAIM_IN_STATION pour le retrait dans un aéroport, une garde ou une agence de voyage.
legalName string
Raison sociale de la société. ans..128
identityCode
Permet d'identifier de façon unique chaque citoyen au sein d'un pays. string
Par exemple, au Brésil, ClearSale impose que ce champ soit valorisé avec le CPF/ CNPJ (format ans..255
numérique, de longueur comprise entre 11 et 20 digits).
tokenRequest
L'objet tokenRequest permet de choisir la devise de référence utilisée lors de la vérification du moyen de
paiement. L'alias pourra être utilisé dans n'importe quelle devise supportée par le contrat du marchand.
<commonRequest>
<submissionDate>2015-04-01T12:24:56Z</submissionDate>
</commonRequest>
<cardRequest>
<number>4970100000000003</number>
<scheme>VISA</scheme>
<expiryMonth>12</expiryMonth>
<expiryYear>2018</expiryYear>
<cardSecurityCode>123</cardSecurityCode>
</cardRequest>
<customerRequest>
<billingDetails>
<title>Mr</title>
<type>PRIVATE</type>
<firstName>Jean</firstName>
<lastName>Dupont</lastName>
<phoneNumber>123456789</phoneNumber>
<email>jean.dupont@example.com</email>
<streetNumber>15</streetNumber>
<address>test address</address>
<district>district</district>
<zipCode>31000</zipCode>
<city>TOULOUSE</city>
<state>state</state>
<country>France</country>
<cellPhoneNumber>0612345678</cellPhoneNumber>
<legalName>Jean Dupont</legalName>
</billingDetails>
<shippingDetails>
<type>PRIVATE</type>
<firstName>Jean</firstName>
<lastName>Dupont</lastName>
<phoneNumber>123456789</phoneNumber>
<streetNumber>1234</streetNumber>
<address>street</address>
<address2>street2</address2>
<district>district</district>
<zipCode>1234</zipCode>
<city>City</city>
<state>State</state>
<country>France</country>
<deliveryCompanyName>DELIVERYCOMP</deliveryCompanyName>
<shippingSpeed>STANDARD</shippingSpeed>
<shippingMethod>PACKAGE_DELIVERY_COMPANY</shippingMethod>
<legalName>Jean Dupont</legalName>
</shippingDetails>
</customerRequest>
</v5:createToken>
</soap:Body>
</soap:Envelope>
Réponse en retour
La réponse à l'opération createToken est retournée par la plateforme de paiement lors de la création d'un
alias (token) afin d'effectuer des paiements en un clic.
BODY
La structure du message createTokenResponse est la suivante :
Nom Type
createTokenResult createTokenResult
Les données retournées dans la réponse dépendent des objets et attributs envoyés dans la requête.
Cependant, quelle que soit l'opération, l'attribut responseCode de l'objet CommonResponse doit avant
tout être analysé :
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
Remarque :
Les objets orderResponse, cardResponse, captureResponse, customerResponse,
markResponse, threeDSResponse, extraResponse, subscriptionResponse, shoppingCartResponse et
fraudManagementResponse ne sont pas valorisés dans la réponse.
Remarque :
Pour obtenir les détails du moyen de paiement utilisé, utilisez l'opération getTokenDetails. L'objet
cardResponse est retourné dans la réponse.
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Attribut Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
paymentToken string
Alias (token).
transactionStatusLabel string
Libellé du statut de la transaction de type VERIFICATION.
Les valeurs possibles sont:
ACCEPTED
La demande d'autorisation ou de renseignement a été acceptée.
L'alias est créé et visible dans le Back Office Marchand.
REFUSED
La demande d'autorisation ou de renseignement a été refusée.
L'alias n'est pas créé.
authorizationResponse
L'objet authorizationResponse permet d'obtenir des informations sur la demande d'autorisation.
Un seul attribut est retourné dans la réponse :
Attribut Format
result an..12
Code retour de la demande d’autorisation retourné par la banque émettrice en cas de refus.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour d'une demande d'autorisation.
paymentResponse
L'objet paymentResponse permet d'obtenir des informations générales sur la transaction de vérification.
Attribut Format
transactionUuid string
Référence unique de la transaction générée par la plateforme de paiement. ans32
amount
Montant de la demande d'autorisation. n..12
Sa valeur est: 1000
currency
Code de la devise de la transaction (norme ISO 4217). n3
Ex : 952 pour le Franc CFA (XOF) ou 324 pour le Franc guinéen (GNF)
operationType n1
Type d'opération.
Sa valeur est :
5: transaction de type VERIFICATION
transactionId
Identifiant de la transaction de type VERIFICATION.
Sa valeur est unique sur une même journée.
an..6
Soit cet identifiant est généré par la plateforme.
Exemple de réponse
Exemple de réponse :
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<shopId xmlns="http://v5.ws.vads.lyra.com/Header/">12345678</shopId>
<requestId xmlns="http://v5.ws.vads.lyra.com/Header/">78c944ce-511b-4e5a-b9cb-312e79666ed8</
requestId>
<timestamp xmlns="http://v5.ws.vads.lyra.com/Header/">2015-04-01T12:24:56Z</timestamp>
<mode xmlns="http://v5.ws.vads.lyra.com/Header/">TEST</mode>
<authToken xmlns="http://v5.ws.vads.lyra.com/Header/">padDTG41Q1UEh560px
+dwKl3bgtjkkv6d2c4ahoQPJs=</authToken>
</env:Header>
<soap:Body>
<ns2:createTokenResponse xmlns:ns2="http://v5.ws.vads.lyra.com/">
<createTokenResult>
<requestId>78c944ce-511b-4e5a-b9cb-312e79666ed8</requestId>
<commonResponse>
<responseCode>0</responseCode>
<responseCodeDetail>Action successfully completed</responseCodeDetail>
<paymentToken>cb059d56f8564674bc139a373a8daebb</paymentToken>
<transactionStatusLabel>ACCEPTED</transactionStatusLabel>
</commonResponse>
<paymentResponse>
<transactionId>1641 </transactionId>
<amount>0 </amount>
<currency>978 </currency>
<operationType>5 </operationType>
<transactionUuid>245a5b28ec93489dbd872d192f3e721d </transactionUuid>
</paymentResponse>
<authorizationResponse/>
</createTokenResult>
</ns2:createTokenResponse>
</soap:Body>
</soap:Envelope>
Pour lutter contre les impayés, avant la création de l'alias, la validité du moyen de paiement utilisé pour la
transaction d'origine est vérifiée sur la dernière transaction effectuée avec ce moyen de paiement.
Ainsi, il est possible que depuis une transaction de paiement valide, l'opération
createTokenFromTransaction échoue dû à une transaction invalide plus récente.
Les données de facturation et de livraison de la transaction initiale ne seront par utilisées pour créer l'alias.
Requête à envoyer
La requête createTokenFromTransaction est constituée d'un HEADER et d'un BODY.
HEADER
Valorisez le HEADER afin de transmettre la valeur des attributs shopId, requestId, timestamp, mode et
authToken (voir chapitre L'en-tête).
BODY
L'opération createTokenFromTransaction prend en entrée un objet de type
createTokenFromTransaction.
Le type createTokenFromTransaction est constitué des paramètres suivants :
Objet Format Requis
commonRequest commonRequest
queryRequest queryRequest
cardRequest cardRequest
commonRequest
L'objet commonRequest permet de transmettre des informations générales sur une opération.
Il possède les attributs suivants :
Attribut Requis Format
paymentSource
Origine de la transaction. Les valeurs possibles sont :
EC pour le commerce électronique.
Paramètre utilisé par défaut si aucune valeur est renseignée ou si différente des valeurs
possibles.
MOTO pour une commande par courrier ou téléphone.
string
CC pour un centre d'appel.
queryRequest
L'objet queryRequest permet d’interroger un alias (identifiant de compte) pour en connaître ses différents
attributs.
Seul l'attribut uuid est indispensable pour cette opération.
Attribut Requis Format
uuid
string
Référence unique de la transaction.
cardRequest
L'objet cardRequest permet de transmettre les informations sur la carte de paiement.
Seul l'attribut paymentToken peut être valorisé pour personnaliser l'alias.
Attribut Requis Format
paymentToken
Identifiant unique (alias) associé à un moyen de paiement.
Soit cet identifiant a été généré par la plateforme. string ans..64
Soit cet identifiant a été généré par le site marchand.
Réponse en retour
La réponse à l'opération createTokenFromTransaction est faite par la plateforme de paiement lors de la
création d'un alias (Identifiant) lors d'un paiement.
BODY
La structure du message createTokenFromTransactionResponse est la suivante :
Nom Type
createTokenFromTransactionResult createTokenFromTransactionResult
Les données retournées dans la réponse dépendent des objets et attributs envoyés dans la requête.
Cependant, quelle que soit l'opération, l'attribut responseCode de l'objet CommonResponse doit avant
tout être analysé :
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
Remarque :
Les objets orderResponse, cardResponse, captureResponse, customerResponse,
markResponse, threeDSResponse, extraResponse, subscriptionResponse, shoppingCartResponse et
fraudManagementResponse ne sont pas valorisés dans la réponse.
Remarque :
Pour obtenir les détails du moyen de paiement utilisé, utilisez l'opération getTokenDetails. L'objet
cardResponse est retourné dans la réponse.
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Attribut Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
paymentToken string
Attribut Format
Alias (token).
authorizationResponse
L'objet authorizationResponse permet d'obtenir des informations sur la demande d'autorisation.
Un seul attribut est retourné dans la réponse :
Attribut Format
result an..12
Code retour de la demande d’autorisation retourné par la banque émettrice en cas de refus.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour d'une demande d'autorisation.
Pour vous aider à comprendre le motif du refus, voici une liste des codes fréquemment retournés :
0 : Action réalisée avec succès
2 : Attribut invalide (l’identifiant de la boutique doit être le même que celui de la transaction)
10 : Transaction non trouvée
35 : Création de l’alias refusée (la transaction utilisée pour créer l'alias doit être réalisée avec succès et
autorisée par la banque)
56 : PAN non trouvé (PAN de la transaction d’origine non trouvé)
Requête à envoyer
La requête updateToken est constituée d'un HEADER et d'un BODY.
HEADER
Valorisez le HEADER afin de transmettre la valeur des attributs shopId, requestId, timestamp, mode et
authToken (voir chapitre L'en-tête).
BODY
L'opération updateToken prend en entrée un objet de type updateToken.
Le type updateToken est constitué des paramètres suivants :
Note:
L'objet shippingDetails contenu dans le customerRequest n'est pas pris en compte.
Note:
L'objet shippingDetails contenu dans le customerRequest n'est pas pris en compte.
commonRequest
L'objet commonRequest permet de transmettre des informations générales sur une opération.
Il possède les attributs facultatifs suivants :
Attribut Requis Format
paymentSource
Origine de la transaction. Les valeurs possibles sont :
EC pour le commerce électronique.
Paramètre utilisé par défaut si aucune valeur est renseignée ou si différente des valeurs possibles.
MOTO pour une commande par courrier ou téléphone.
string
CC pour un centre d'appel.
queryRequest
L'objet queryRequest permet d’interroger un alias (identifiant de compte) pour en connaître ses différents
attributs.
Seul l'attribut paymentToken est indispensable pour cette opération.
Attribut Requis Format
paymentToken string
Alias (token). ans..64
cardRequest
L'objet cardRequest permet de transmettre les informations sur la carte de paiement.
Selon le type de paiement (paiement par alias ou paiement avec saisie des données bancaires), un ou
plusieurs attributs sont requis:
customerRequest
L'objet customerRequest permet de transmettre des informations liées à la livraison, à la facturation et
des données techniques liées à l'acheteur
Cet objet doit obligatoirement être envoyé dans la requête.
Il est composé des sous-objets suivants :
Format Sous-objet Requis
billingDetails billingDetailsRequest
Données de facturation de l'acheteur.
shippingDetails shippingDetailsRequest
Données de livraison de l'acheteur.
extraDetails extraDetailsRequest
Données techniques liées à l'acheteur.
Tableau 14 : Sous-objets de customerRequest
firstName string
Nom de l'acheteur. ans..128
lastName string
Prénom de l'acheteur. ans..128
phoneNumber string
Numéro de téléphone de l'acheteur. ans..32
email
string
E-mail de l'acheteur. pour la création d'un ans..150
Paramètre obligatoire lors de la création d'un alias. alias
streetNumber
string
Numéro de rue de l'acheteur.
an..5
Remarque : si cet attribut est présent dans la requête, il ne peut être envoyé vide.
address string
Adresse de l'acheteur. ans..255
district string
Quartier de l'acheteur. ans..127
zipCode string
Code postal de l'acheteur. ans..64
city string
Ville de l'acheteur. ans..128
state string
Etat/Région de l'acheteur. ans..128
country
Pays de l'acheteur selon la norme ISO 3166. string - a2
Exemples de valeurs possibles :
language
Langue de l'acheteur selon la norme ISO 639-1.
Exemples de valeurs possibles :
tr pour le turc
cellPhoneNumber string
Numéro de téléphone mobile ans..32
identityCode
Permet d'identifier de façon unique chaque citoyen au sein d'un pays. string
Par exemple, au Brésil, ClearSale impose que ce champ soit valorisé avec le CPF/ CNPJ ans..255
(format numérique, de longueur comprise entre 11 et 20 digits).
firstName string
Nom de l'acheteur. ans..128
lastName string
Prénom de l'acheteur. ans..128
phoneNumber string
Numéro de téléphone de l'acheteur. ans..32
streetNumber
string
Numéro de rue pour la livraison.
an..5
Remarque : si cet attribut est présent dans la requête, il ne peut être envoyé vide.
address string
Adresse de livraison. ans..255
address2 string
Complément d'adresse de livraison. ans..255
district string
Quartier de livraison. ans..127
zipCode string
ans..64
shippingMethod
Méthode de livraison utilisée.
Les valeurs possibles sont :
RECLAIM_IN_SHOP pour le retrait de la marchandise en magasin.
RELAY_POINT pour l'utilisation d'un réseau de points de retrait tiers (Kiala, Alveol, etc). string
(enum)
RECLAIM_IN_STATION pour le retrait dans un aéroport, une garde ou une agence de voyage.
legalName string
Raison sociale de la société. ans..128
identityCode
Permet d'identifier de façon unique chaque citoyen au sein d'un pays. string
Par exemple, au Brésil, ClearSale impose que ce champ soit valorisé avec le CPF/ CNPJ (format ans..255
numérique, de longueur comprise entre 11 et 20 digits).
tokenRequest
L'objet tokenRequest permet de choisir la devise de référence utilisée lors de la vérification du moyen de
paiement. L'alias pourra être utilisé dans n'importe quelle devise supportée par le contrat du marchand.
Réponse en retour
La réponse à l'opération updateToken est faite par la plateforme de paiement à une demande de
modification sur un alias/identifiant compte acheteur.
Les données retournées dans la réponse dépendent des objets et attributs envoyés dans la requête.
Cependant, quelle que soit l'opération, l'attribut responseCode de l'objet CommonResponse doit avant
tout être analysé :
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Attribut Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
paymentToken string
Alias (token).
transactionStatusLabel string
Libellé du statut de la transaction de type VERIFICATION.
Les valeurs possibles sont:
ACCEPTED
La demande d'autorisation ou de renseignement a été acceptée.
L'alias est créé et visible dans le Back Office Marchand.
REFUSED
La demande d'autorisation ou de renseignement a été refusée.
L'alias n'est pas créé.
authorizationResponse
result an..12
Code retour de la demande d’autorisation retourné par la banque émettrice en cas de refus.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour d'une demande d'autorisation.
paymentResponse
L'objet paymentResponse permet d'obtenir des informations générales sur la transaction de vérification.
Attribut Format
transactionUuid string
Référence unique de la transaction générée par la plateforme de paiement. ans32
amount
Montant de la demande d'autorisation. n..12
Sa valeur est: 1000
currency
Code de la devise de la transaction (norme ISO 4217). n3
Ex : 952 pour le Franc CFA (XOF) ou 324 pour le Franc guinéen (GNF)
operationType n1
Type d'opération.
Sa valeur est :
5: transaction de type VERIFICATION
transactionId
Identifiant de la transaction de type VERIFICATION. an..6
Sa valeur est unique sur une même journée.
Attribut Format
Soit cet identifiant est généré par la plateforme.
Requête à envoyer
La requête getTokenDetails est constituée d'un HEADER et d'un BODY.
HEADER
Valorisez le HEADER afin de transmettre la valeur des attributs shopId, requestId, timestamp, mode et
authToken (voir chapitre L'en-tête).
BODY
L'opération getTokenDetails prend en entrée un objet de type getTokenDetails.
Le type getTokenDetails est composé d'un seul objet :
Objet Format Requis
queryRequest queryRequest
queryRequest
L'objet queryRequest permet d’interroger un alias (identifiant de compte) pour en connaître ses différents
attributs.
Seul l'attribut paymentToken est indispensable pour cette opération.
Attribut Requis Format
paymentToken string
Alias (token). ans..64
Réponse en retour
La réponse à l'opération getTokenDetails est faite par la plateforme de paiement suite à une demande
d'information sur un token.
BODY
La structure du message getTokenDetailsResponse est la suivante :
Nom Type
getTokenDetailsResult getTokenDetailsResult
Les données retournées dans la réponse dépendent des objets et attributs envoyés dans la requête.
Cependant, quelle que soit l'opération, l'attribut responseCode de l'objet CommonResponse doit avant
tout être analysé :
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Attribut Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
cardResponse
L'objet cardResponse détaille les informations du moyen de paiement utilisé.
Attribut Format
number string
Numéro de carte masqué. Contient les 6 premiers chiffres du numéro, suivi par “XXXXXX” et enfin les 4
derniers chiffres.
IBAN et BIC utilisés pour le paiement, séparés par un « _ » dans le cas d’un paiement par prélèvement.
scheme string
Type de la carte.
brand string
Marque de la carte utilisée pour la transaction
country ISO 3166
Code pays du pays d’émission de la carte (Code numérique ISO 3166).
productCode an..3
Code produit de la carte.
bankCode n..5
Code banque de la banque émettrice.
bankLabel string
Nom de la banque émettrice.
Retourné uniquement si extendedResponseRequest.isBankLabel est valorisé à 1 dans la requête.
expiryMonth n..2
Mois d’expiration entre 1 et 12 (ex: 3 pour mars, 10 pour octobre).
expiryYear n4
Année d’expiration sur 4 chiffres (ex : 2023).
authorizationResponse
L'objet authorizationResponse permet d'obtenir des informations sur la demande d'autorisation.
Attribut Format
date dateTime
Date et heure de la demande d’autorisation dans le cas où mode vaut FULL. ans..40
number an..6
Numéro de la demande d’autorisation dans le cas où mode vaut FULL.
result an..12
Code retour de la demande d’autorisation retourné par la banque émettrice en cas de refus.
Les valeurs possibles sont listées dans le chapitre Gérer les codes de retour d'une demande d'autorisation.
customerResponse
L'objet customerResponse détaille de nombreuses informations à propos de l'acheteur.
La réponse se décompose en l'analyse de :
billingDetails
Données de facturation de l'acheteur.
shippingDetails
Données de livraison de l'acheteur. Les valeurs présentes dans cet objet seront identiques à celles de
l'objet billingDetails.
extraDetails
Données techniques liées à l'acheteur.
7.4.2.4.1. Objet billingDetails
Attribut Format
reference
string n..80
Référence de l'acheteur.
title
Civilité de l'acheteur. string n..80
Exemples de valeurs possibles : Monsieur, Madame, etc..
type
Type d'acheteur.
Les valeurs possibles sont :
string (enum)
PRIVATE pour un particulier.
firstName string
Nom de l'acheteur. ans..128
lastName string
Prénom de l'acheteur. ans..128
phoneNumber
string ans..32
Numéro de téléphone de l'acheteur.
email
string
E-mail de l'acheteur.
ans..150
Paramètre obligatoire lors de la création d'un alias.
streetNumber
Numéro de rue de l'acheteur. string an..5
Remarque : si cet attribut est présent dans la requête, il ne peut être envoyé vide.
address string
Adresse de l'acheteur. ans..255
district string
Quartier de l'acheteur. ans..127
zipCode
string ans..64
Code postal de l'acheteur.
city string
Ville de l'acheteur. ans..128
state string
Etat/Région de l'acheteur. ans..128
country
Pays de l'acheteur selon la norme ISO 3166.
Exemples de valeurs possibles :
string - a2
DE pour l'Allemagne IT pour l'Italie PT pour le Portugal
Attribut Format
language
Langue de l'acheteur selon la norme ISO 639-1.
Exemples de valeurs possibles :
tr pour le turc
cellPhoneNumber
string ans..32
Numéro de téléphone mobile
legalName string
Raison sociale de la société. ans..128
Attribut Format
type
Type d'acheteur.
Les valeurs possibles sont : string
PRIVATE pour un particulier. (enum)
firstName string
Nom de l'acheteur. ans..128
lastName string
Prénom de l'acheteur. ans..128
phoneNumber string
Numéro de téléphone de l'acheteur. ans..32
streetNumber
Numéro de rue pour la livraison. string an..5
Remarque : si cet attribut est présent dans la requête, il ne peut être envoyé vide.
address string
Adresse de livraison. ans..255
address2 string
Complément d'adresse de livraison. ans..255
district string
Quartier de livraison. ans..127
zipCode string
Code postal de livraison. ans..64
city string
Ville de livraison. ans..128
state string
Etat/Région de livraison. ans..128
country string - a2
Attribut Format
Pays de livraison.
deliveryCompanyName string
Informations sur le transporteur. ans..128
shippingSpeed
Mode de livraison sélectionné.
Les valeurs possibles sont : string
STANDARD pour une livraison standard. (enum)
shippingMethod
Méthode de livraison utilisée.
Les valeurs possibles sont :
RECLAIM_IN_SHOP pour le retrait de la marchandise en magasin.
RELAY_POINT pour l'utilisation d'un réseau de points de retrait tiers (Kiala, Alveol, etc). string
(enum)
RECLAIM_IN_STATION pour le retrait dans un aéroport, une garde ou une agence de voyage.
legalName string
Raison sociale de la société. ans..128
identityCode
Permet d'identifier de façon unique chaque citoyen au sein d'un pays. string
Par exemple, au Brésil, ClearSale impose que ce champ soit valorisé avec le CPF/ CNPJ (format numérique, de ans..255
longueur comprise entre 11 et 20 digits).
tokenResponse
L'objet tokenResponse permet d'obtenir des informations sur la date de création et/ou de résiliation d'un
alias.
Attribut Format
creationDate dateTime
Date de création de l'alias. ans..40
cancellationDate dateTime
Date de résiliation de l'alias. ans..40
Requête à envoyer
La requête cancelToken est constituée d'un HEADER et d'un BODY.
HEADER
Valorisez le HEADER afin de transmettre la valeur des attributs shopId, requestId, timestamp, mode et
authToken (voir chapitre L'en-tête).
BODY
L'opération cancelToken prend en entrée un objet de type cancelToken.
Le type cancelToken est constitué des paramètres suivants :
Objet Format Requis
commonRequest commonRequest
queryRequest queryRequest
commonRequest
L'objet commonRequest permet de transmettre des informations générales sur une opération.
Seul l'attribut submissionDate peut être valorisé si besoin. Cet attribut est facultatif.
Attribut Requis Format
submissionDate
Date et heure UTC de la résiliation exprimée au format ISO 8601 définit par W3C.
dateTime
Exemple : 2016-07-16T19:20:00Z
ans..40
Si la valeur de cet attribut est trop éloignée de l’heure actuelle, la requête sera rejetée (code
d'erreur 13).
Les attributs paymentSource, contractNumber et comment ne sont pas aujourd'hui pris en considération
pour cette opération.
queryRequest
L'objet queryRequest permet d’interroger un alias (identifiant de compte) pour en connaître ses différents
attributs.
Seul l'attribut paymentToken est indispensable pour cette opération.
Attribut Requis Format
paymentToken string
Alias (token). ans..64
Réponse en retour
La réponse à l'opération cancelToken est faite par la plateforme de paiement suite à une demande de
désactivation d'un identifiant (token en anglais) permettant d'effectuer des paiements.
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Attribut Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
Requête à envoyer
La requête reactivateToken est constituée d'un HEADER et d'un BODY.
HEADER
Valorisez le HEADER afin de transmettre la valeur des attributs shopId, requestId, timestamp, mode et
authToken (voir chapitre L'en-tête).
BODY
L'opération reactivateToken prend en entrée un objet de type reactivateToken.
Le type reactivateToken est composé de l'objet suivant :
Objet Format Requis
queryRequest queryRequest
queryRequest
L'objet queryRequest permet d’interroger un alias (identifiant de compte) pour en connaître ses différents
attributs.
Seul l'attribut paymentToken est indispensable pour cette opération.
Attribut Requis Format
paymentToken string
Alias (token). ans..64
Réponse en retour
La réponse à l'opération reactivateToken est faite par la plateforme de paiement suite à une réactivation
d'un identifiant/alias (token en anglais).
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Attribut Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
Requête à envoyer
La requête createSubscription est constituée d'un HEADER et d'un BODY.
HEADER
Valorisez le HEADER afin de transmettre la valeur des attributs shopId, requestId, timestamp, mode et
authToken (voir chapitre L'en-tête).
BODY
L'opération createSubscription prend en entrée un objet de type createSubscription.
Le type createSubscription est constitué des paramètres suivants :
Objet Format Requis
commonRequest commonRequest
orderRequest orderRequest
subscriptionRequest subscriptionRequest
cardRequest cardRequest
commonRequest
L'objet commonRequest permet de transmettre des informations générales sur une opération.
Il possède les attributs suivants :
Attribut Requis Format
paymentSource
Origine de la transaction. Les valeurs possibles sont :
EC pour le commerce électronique.
Paramètre utilisé par défaut si aucune valeur est renseignée ou si différente des valeurs
possibles.
MOTO pour une commande par courrier ou téléphone.
string
CC pour un centre d'appel.
orderRequest
L'objet orderRequest permet de transmettre des informations liées à la commande.
Il est composé de l'attribut suivant :
Attribut Requis Format
orderId string
Référence de la commande. an..64
extInfo
Champs personnalisables permettant d'ajouter des données supplémentaires (champ
supplémentaire qui sera persisté dans la transaction et sera retourné dans la réponse).
L'attribut extInfo est composé de sous objets :
extInfo
key : nom de la donnée. Son format est "string".
Exemple : <extInfo><key>keyData</key><value>valuedata</value></extInfo>
subscriptionRequest
L'objet subscriptionRequest permet de transmettre des informations liées à l'abonnement.
Il possède les attributs suivants :
Attribut Requis Format
effectDate
Date d'effet au format W3C. dateTime
Exemple : 2016-07-16T19:20Z ans..40
La date ne peut pas être dans le passé.
amount
n..12
Montant de l'abonnement dans sa plus petite unité monétaire.
currency
Code de la devise (Code monnaie ISO 4217 Ex : 952 pour le Franc CFA (XOF) ou 324 pour le Franc n3
guinéen (GNF) ).
initialAmount
Montant des échéances de l’abonnement (dans sa plus petite unité monétaire) pour la ou les n..12
premières échéances si ces dernières sont différentes du montant de l'abonnement amount.
initialAmountNumber
Nombre d’échéances auxquelles il faut appliquer le montant initialAmount. int
Cet attribut devient obligatoire si initialAmount est valorisé.
rrule
Description de la règle de l'abonnement.
La valeur attendue dans cet attribut est une chaîne de caractères suivant la spécification iCalendar,
ou Internet Calendar, décrite dans la RFC5545 (voir http://tools.ietf.org/html/rfc5545).
Pour des raisons techniques, il n’est pas possible de définir des périodes d’abonnement inférieures
à une journée.
Les mots clés "SECONDLY" / "MINUTELY" / "HOURLY" ne sont donc pas pris en compte.
Exemples :
Pour définir des échéances de paiement ayant lieu le dernier jour de chaque mois, pendant 12
mois, la règle s’écrit :
RRULE:FREQ=MONTHLY;BYMONTHDAY=28,29,30,31;BYSETPOS=-1;COUNT=12
Cette règle signifie que si le mois courant ne contient pas de 31, alors le moteur prendra en string
compte le 30. Si le 30 n’existe pas, alors il prendra en compte le 29 et ainsi de suite jusqu’au 28.
Une autre version de cette règle : RRULE:FREQ=MONTHLY;COUNT=5;BYMONTHDAY=-1
Pour définir des échéances de paiement ayant lieu le 10 de chaque mois,
pendant 12 mois, alors la règle d’abonnement s’écrit de la manière suivante :
RRULE:FREQ=MONTHLY;COUNT=12;BYMONTHDAY=10
Pour définir des échéances de paiement ayant lieu chaque trimestre, jusqu’au 31/12/2016 :
RRULE:FREQ=YEARLY;BYMONTHDAY=-1;BYMONTH=1,4,7,10;UNTIL=20161231
Les échéances auront lieu chaque 1er de janvier, avril, juillet et octobre. Leur nombre total
dépend de la date d’effet de l’abonnement (voir paramètre vads_sub_effect_date).
Pour plus de détails et d'exemples vous pouvez consulter le site http://
recurrance.sourceforge.net/.
subscriptionId string
Identifiant de l'abonnement
description
string
Description de l'abonnement.
cardRequest
L'objet cardRequest permet de transmettre les informations sur la carte de paiement.
Seul l'attribut paymentToken doit être valorisé.
Attribut Requis Format
paymentToken
Identifiant unique (alias) associé à un moyen de paiement.
Soit cet identifiant a été généré par la plateforme. string ans..64
pour le paiement par
Soit cet identifiant a été généré par le site marchand. alias
Réponse en retour
La réponse à l'opération createSubscription est faite par la plateforme de paiement à une demande de
création d'un abonnement.
Les données retournées dans la réponse dépendent des objets et attributs envoyés dans la requête.
Cependant, quelle que soit l'opération, l'attribut responseCode de l'objet CommonResponse doit avant
tout être analysé :
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Les attributs contenant une valeur dans la réponse sont les suivants :
Attribut Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
subscriptionResponse
L'objet subscriptionResponse détaille l'ensemble des informations constituant un abonnement. Dans
cette opération, seul l'attribut subscriptionId est retourné si ce dernier a été envoyé dans la requête.
Attribut Format
subscriptionId string
Identifiant de l'abonnement
Exemple de réponse
Exemple de réponse :
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
<env:Header xmlns:env="http://www.w3.org/2003/05/soap-envelope">
<shopId xmlns="http://v5.ws.vads.lyra.com/Header/">12345678</shopId>
<requestId xmlns="http://v5.ws.vads.lyra.com/Header/">4e977101-9551-4dd8-9296-
a4fdad0b5fe4</requestId>
<timestamp xmlns="http://v5.ws.vads.lyra.com/Header/">2015-04-01T12:28:49Z</timestamp>
<mode xmlns="http://v5.ws.vads.lyra.com/Header/">TEST</mode>
<authToken xmlns="http://v5.ws.vads.lyra.com/
Header/">cOS5ykWUf7lerOaIrAmkfmNFD7ZbqvEWHiqUEmlngUU=</authToken>
</env:Header>
<soap:Body>
<ns2:createSubscriptionResponse xmlns:ns2="http://v5.ws.vads.lyra.com/">
<createSubscriptionResult>
<requestId>4e977101-9551-4dd8-9296-a4fdad0b5fe4</requestId>
<commonResponse>
<responseCode>0</responseCode>
<responseCodeDetail>Action successfully completed</responseCodeDetail>
</commonResponse>
<authorizationResponse/>
</createSubscriptionResult>
</ns2:createSubscriptionResponse>
</soap:Body>
</soap:Envelope>
Requête à envoyer
La requête updateSubscription est constituée d'un HEADER et d'un BODY.
HEADER
Valorisez le HEADER afin de transmettre la valeur des attributs shopId, requestId, timestamp, mode et
authToken (voir chapitre L'en-tête).
BODY
L'opération updateSubscription prend en entrée un objet de type updateSubscription.
Le type updateSubscription est constitué des paramètres suivants :
Objet Format Requis
commonRequest commonRequest
queryRequest queryRequest
subscriptionRequest subscriptionRequest
paymentRequest paymentRequest
commonRequest
L'objet commonRequest permet de transmettre des informations générales sur une opération.
Plusieurs attributs, facultatifs, peuvent être spécifiés dans la requête.
Attribut Requis Format
paymentSource
Origine de la transaction. Les valeurs possibles sont :
EC pour le commerce électronique.
Paramètre utilisé par défaut si aucune valeur est renseignée ou si différente des valeurs
possibles.
MOTO pour une commande par courrier ou téléphone.
string
CC pour un centre d'appel.
L' attribut comment n'est pas pas aujourd'hui pris en considération pour cette opération.
queryRequest
L'objet queryRequest permet d’interroger une transaction pour en connaître ses différents attributs.
Il possède les attributs suivants :
Attribut Requis Format
paymentToken string
Alias (token). ans..64
subscriptionId
string
Identifiant de l'abonnement.
subscriptionRequest
L'objet subscriptionRequest permet de transmettre des informations liées à l'abonnement.
Il possède les attributs suivants :
Attribut Requis Format
effectDate
Date d'effet au format W3C. dateTime
Exemple : 2016-07-16T19:20Z ans..40
La date ne peut pas être dans le passé.
amount
n..12
Montant de l'abonnement dans sa plus petite unité monétaire.
currency
Code de la devise (Code monnaie ISO 4217 Ex : 952 pour le Franc CFA (XOF) ou 324 pour le Franc n3
guinéen (GNF) ).
initialAmount
Montant des échéances de l’abonnement (dans sa plus petite unité monétaire) pour la ou les n..12
premières échéances si ces dernières sont différentes du montant de l'abonnement amount.
initialAmountNumber
Nombre d’échéances auxquelles il faut appliquer le montant initialAmount. int
Cet attribut devient obligatoire si initialAmount est valorisé.
rrule
Description de la règle de l'abonnement.
La valeur attendue dans cet attribut est une chaîne de caractères suivant la spécification iCalendar,
ou Internet Calendar, décrite dans la RFC5545 (voir http://tools.ietf.org/html/rfc5545).
Pour des raisons techniques, il n’est pas possible de définir des périodes d’abonnement inférieures
à une journée.
Les mots clés "SECONDLY" / "MINUTELY" / "HOURLY" ne sont donc pas pris en compte.
Exemples :
Pour définir des échéances de paiement ayant lieu le dernier jour de chaque mois, pendant 12
mois, la règle s’écrit :
RRULE:FREQ=MONTHLY;BYMONTHDAY=28,29,30,31;BYSETPOS=-1;COUNT=12
Cette règle signifie que si le mois courant ne contient pas de 31, alors le moteur prendra en string
compte le 30. Si le 30 n’existe pas, alors il prendra en compte le 29 et ainsi de suite jusqu’au 28.
Une autre version de cette règle : RRULE:FREQ=MONTHLY;COUNT=5;BYMONTHDAY=-1
Pour définir des échéances de paiement ayant lieu le 10 de chaque mois,
pendant 12 mois, alors la règle d’abonnement s’écrit de la manière suivante :
RRULE:FREQ=MONTHLY;COUNT=12;BYMONTHDAY=10
Pour définir des échéances de paiement ayant lieu chaque trimestre, jusqu’au 31/12/2016 :
RRULE:FREQ=YEARLY;BYMONTHDAY=-1;BYMONTH=1,4,7,10;UNTIL=20161231
Les échéances auront lieu chaque 1er de janvier, avril, juillet et octobre. Leur nombre total
dépend de la date d’effet de l’abonnement (voir paramètre vads_sub_effect_date).
Pour plus de détails et d'exemples vous pouvez consulter le site http://
recurrance.sourceforge.net/.
subscriptionId string
Identifiant de l'abonnement
description
string
Description de l'abonnement.
Réponse en retour
La réponse à l'opération updateSubscription est faite par la plateforme de paiement à une demande de
modification sur un abonnement.
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Attribut Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
paymentToken string
Alias (token).
Requête à envoyer
La requête getSubscriptionDetails est constituée d'un HEADER et d'un BODY.
HEADER
Valorisez le HEADER afin de transmettre la valeur des attributs shopId, requestId, timestamp, mode et
authToken (voir chapitre L'en-tête).
BODY
L'opération getSubscriptionDetails prend en entrée un objet de type getSubscriptionDetails.
Le type getSubscriptionDetails est composé de l'objet suivant :
Objet Format Requis
queryRequest queryRequest
queryRequest
L'objet queryRequest permet d’interroger une transaction pour en connaître ses différents attributs.
Il possède les attributs suivants :
Attribut Requis Format
paymentToken string
Alias (token). ans..64
subscriptionId
string
Identifiant de l'abonnement.
Réponse en retour
La réponse à l'opération getSubscriptionDetails est faite par la plateforme de paiement suite à une
demande d'information sur un abonnement.
Les données retournées dans la réponse dépendent des objets et attributs envoyés dans la requête.
Cependant, quelle que soit l'opération, l'attribut responseCode de l'objet CommonResponse doit avant
tout être analysé :
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Les attributs contenant une valeur dans la réponse sont les suivants :
Attribut Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
shopId n8
Identifiant de la boutique.
paymentSource string
Origine de la transaction. Les valeurs possibles sont : (enum)
Attribut Format
EC pour le commerce électronique.
submissionDate dateTime
Date et heure UTC de la transaction exprimée au format W3C (exemple : 2016-07-16T19:20:00Z). ans..40
contractNumber string
Numéro de contrat commerçant utilisé.
paymentToken string
Alias (token).
orderResponse
L'objet orderResponse détaille la commande.
Attribut Format
orderId string
Référence de la commande. an..64
extInfo
Données personnalisées retournées en fonction des besoins.
Exemple : extInfo.key, extInfo.value
extInfo
key : nom de la donnée (son format est "string").
subscriptionResponse
L'objet subscriptionResponse détaille l'ensemble des informations constituant un abonnement.
Attribut Format
subscriptionId string
Identifiant de l'abonnement
effectDate dateTime
Date d'effet au format W3C. ans..40
Exemple : 2016-07-16T19:20Z
La date ne peut pas être dans le passé.
cancelDate dateTime
Date d'annulation d'une échéance de paiement. ans..40
initialAmount
Montant des échéances de l’abonnement (dans sa plus petite unité monétaire) pour la ou les premières
échéances si ces dernières sont différentes du montant de l'abonnement amount.
rrule string
Description de la règle de l'abonnement.
Exemple:
RRULE:FREQ=MONTHLY;COUNT=12;BYMONTHDAY=10
Echéances de paiement ayant lieu le 10 de chaque mois, pendant 12 mois.
description string
Description de l'abonnement.
initialAmountNumber int
Numéro de l'échéance du montant initial de l'abonnement.
Cet attribut devient obligatoire si initialAmount est valorisé.
pastPaymentsNumber int
Nombre de versements antérieurs.
totalPaymentsNumber int
Nombre total de paiements.
Attribut Format
amount
n..12
Montant de l'abonnement dans sa plus petite unité monétaire.
currency
n3
Code de la devise (Code monnaie ISO 4217 Ex : 952 pour le Franc CFA (XOF) ou 324 pour le Franc guinéen (GNF) ).
Requête à envoyer
La requête cancelSubscription est constituée d'un HEADER et d'un BODY.
HEADER
Valorisez le HEADER afin de transmettre la valeur des attributs shopId, requestId, timestamp, mode et
authToken (voir chapitre L'en-tête).
BODY
L'opération cancelSubscription prend en entrée un objet de type cancelSubscription.
Le type cancelSubscription est constitué des paramètres suivants :
Objet Format Requis
commonRequest commonRequest
queryRequest queryRequest
commonRequest
L'objet commonRequest permet de transmettre des informations générales sur une opération.
Seul l'attribut submissionDate peut être valorisé si besoin. Cet attribut est facultatif.
Attribut Requis Format
submissionDate
Date et heure UTC de la résiliation exprimée au format ISO 8601 définit par W3C.
dateTime
Exemple : 2016-07-16T19:20:00Z
ans..40
Si la valeur de cet attribut est trop éloignée de l’heure actuelle, la requête sera rejetée (code
d'erreur 13).
Les attributs paymentSource, contractNumber et comment ne sont pas aujourd'hui pris en considération
pour cette opération.
queryRequest
L'objet queryRequest permet d’interroger une transaction pour en connaître ses différents attributs.
Il possède les attributs suivants :
Attribut Requis Format
paymentToken string
Alias (token). ans..64
subscriptionId
string
Identifiant de l'abonnement.
Réponse en retour
La réponse à l'opération cancelSubscription est faite par la plateforme de paiement suite à une demande
de désactivation d'un abonnement.
commonResponse
L'objet commonResponse permet d'obtenir des informations générales sur une opération.
Attribut Format
responseCode n..2
Référez-vous au chapitre Gérer les erreurs applicatives.
Premier attribut à analyser quelle que soit l'opération.
La valeur 0 indique que l'opération s'est déroulée avec succès.
Une valeur différente de 0 implique une analyse de l'attribut responseCodeDetails. Ce dernier précise
l'origine de l'erreur.
responseCodeDetail string
Détail de l’erreur si l'attribut responseCode est différent de 0.
Reportez-vous au chapitre Gérer les erreurs applicatives pour plus d'informations.
8. EXEMPLES EN PHP
Pour tous les exemples en PHP proposés ci-après, deux fichiers doivent être créés en amont pour être
utilisés dans les requêtes. Ils sont communs à toutes les opérations.
Un fichier "v5.php" pour la définition des objets :
<?php
class commonRequest {
public $paymentSource; // string
public $submissionDate; // dateTime
public $contractNumber; // string
public $comment; // string
}
class commonResponse {
public $responseCode; // int
public $responseCodeDetail; // string
public $transactionStatusLabel; // string
public $shopId; // string
public $paymentSource; // string
public $submissionDate; // dateTime
public $contractNumber; // string
public $paymentToken; // string
}
class cardRequest {
public $number; // string
public $scheme; // string
public $expiryMonth; // int
public $expiryYear; // int
public $cardSecurityCode; // string
public $cardHolderBirthDay; // dateTime
public $paymentToken; // string
}
class customerRequest {
public $billingDetails; // billingDetailsRequest
public $shippingDetails; // shippingDetailsRequest
public $extraDetails; // extraDetailsRequest
}
class billingDetailsRequest {
public $reference; // string
public $title; // string
public $type; // custStatus
public $firstName; // string
public $lastName; // string
public $phoneNumber; // string
public $email; // string
public $streetNumber; // string
public $address; // string
public $district; // string
public $zipCode; // string
public $city; // string
public $state; // string
public $country; // string
public $language; // string
public $cellPhoneNumber; // string
public $legalName; // string
public $identityCode; // string
}
class shippingDetailsRequest {
public $type; // custStatus
public $firstName; // string
public $lastName; // string
public $phoneNumber; // string
public $streetNumber; // string
public $address; // string
public $address2; // string
public $district; // string
public $zipCode; // string
public $city; // string
public $state; // string
public $country; // string
public $deliveryCompanyName; // string
public $shippingSpeed; // deliverySpeed
public $shippingMethod; // deliveryType
public $legalName; // string
public $identityCode; // string
class extraDetailsRequest {
public $ipAddress; // string
public $fingerPrintId; // string
}
class shoppintCartRequest {
public $insuranceNumber; // long
public $shippingAmount; // long
public $taxAmount; // long
public $cartItemInfo; // cartItemInfo
}
class cartItemInfo {
public $productLabel; // string
public $productType; // productType
public $productRef; // string
public $productQty ; // int
public $productAmount; // string
public $productVat; // string
}
class paymentRequest {
public $transactionId; // string
public $amount; // long
public $currency; // int
public $expectedCaptureDate; // dateTime
public $manualValidation; // int
public $paymentOptionCode; // string
public $retryUuid; // string
}
class paymentResponse {
public $transactionId; // string
public $amount; // long
public $currency; // int
public $effectiveAmount; // long
public $effectiveCurrency; // int
public $expectedCaptureDate; // dateTime
public $manualValidation; // int
public $operationType; // int
public $creationDate; // dateTime
public $externalTransactionId; // string
public $liabilityShift; // string
public $sequenceNumber; // int
public $paymentType; // paymentType
public $paymentError; // int
}
class orderResponse {
public $orderId; // string
public $extInfo; // extInfo
}
class extInfo {
public $key; // string
public $value; // string
}
class cardResponse {
public $number; // string
public $scheme; // string
public $brand; // string
public $country; // string
public $productCode; // string
public $bankCode; // string
public $expiryMonth; // int
public $expiryYear; // int
}
class authorizationResponse {
public $mode; // string
public $amount; // long
public $currency; // int
public $date; // dateTime
public $number; // string
public $result; // int
}
class captureResponse {
public $date; // dateTime
public $number; // int
public $reconciliationStatus; // int
public $refundAmount; // long
public $refundCurrency; // int
public $chargeback; // boolean
class customerResponse {
public $billingDetails; // billingDetailsResponse
public $shippingDetails; // shippingDetailsResponse
public $extraDetails; // extraDetailsResponse
}
class billingDetailsResponse {
public $reference; // string
public $title; // string
public $type; // custStatus
public $firstName; // string
public $lastName; // string
public $phoneNumber; // string
public $email; // string
public $streetNumber; // string
public $address; // string
public $district; // string
public $zipCode; // string
public $city; // string
public $state; // string
public $country; // string
public $language; // string
public $cellPhoneNumber; // string
public $legalName; // string
}
class shippingDetailsResponse {
public $type; // custStatus
public $firstName; // string
public $lastName; // string
public $phoneNumber; // string
public $streetNumber; // string
public $address; // string
public $address2; // string
public $district; // string
public $zipCode; // string
public $city; // string
public $state; // string
public $country; // string
public $deliveryCompanyName; // string
public $shippingSpeed; // deliverySpeed
public $shippingMethod; // deliveryType
public $legalName; // string
public $identityCode; // string
}
class extraDetailsResponse {
public $ipAddress; // string
}
class markResponse {
public $amount; // long
public $currency; // int
public $date; // dateTime
public $number; // string
public $result; // int
}
class threeDSResponse {
public $authenticationRequestData; // authenticationRequestData
public $authenticationResultData; // authenticationResultData
}
class authenticationRequestData {
public $threeDSAcctId; // string
public $threeDSAcsUrl; // string
public $threeDSBrand; // string
public $threeDSEncodedPareq; // string
public $threeDSEnrolled; // string
public $threeDSRequestId; // string
}
class authenticationResultData {
public $brand; // string
public $enrolled; // string
public $status; // string
public $eci; // string
public $xid; // string
public $cavv; // string
public $cavvAlgorithm; // string
public $signValid; // string
public $transactionCondition; // string
}
class extraResponse {
class fraudManagementResponse {
public $riskControl; // riskControl
public $riskAnalysis; // riskAnalysis
public $riskAssessments; // riskAssessments
}
class shoppingCartResponse {
public $cartItemInfo; // cartItemInfo
}
class riskControl {
public $name; // string
public $result; // string
}
class riskAnalysis {
public $score; // string
public $resultCode; // string
public $status; // vadRiskAnalysisProcessingStatus
public $requestId; // string
public $extraInfo; // extInfo
}
class riskAssessments {
public $results; // string
}
class techRequest {
public $browserUserAgent; // string
public $browserAccept; // string
}
class orderRequest {
public $orderId; // string
public $extInfo; // extInfo
}
class createPayment {
public $commonRequest; // commonRequest
public $threeDSRequest; // threeDSRequest
public $paymentRequest; // paymentRequest
public $orderRequest; // orderRequest
public $cardRequest; // cardRequest
public $customerRequest; // customerRequest
public $techRequest; // techRequest
public $shoppingCartRequest; // shoppingCartRequest
}
class threeDSRequest {
public $mode; // threeDSMode
public $requestId; // string
public $pares; // string
public $brand; // string
public $enrolled; // string
public $status; // string
public $eci; // string
public $xid; // string
public $cavv; // string
public $algorithm; // string
}
class createPaymentResponse {
public $createPaymentResult; // createPaymentResult
}
class createPaymentResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
public $orderResponse; // orderResponse
public $cardResponse; // cardResponse
public $authorizationResponse; // authorizationResponse
public $captureResponse; // captureResponse
public $customerResponse; // customerResponse
public $markResponse; // markResponse
public $threeDSResponse; // threeDSResponse
public $extraResponse; // extraResponse
public $subscriptionResponse; // subscriptionResponse
public $fraudManagementResponse; // fraudManagementResponse
public $shoppingCartResponse; // shoppingCartResponse
}
class cancelToken {
public $commonRequest; // commonRequest
class cancelTokenResponse {
public $cancelTokenResult; // cancelTokenResult
}
class cancelTokenResult {
public $commonResponse; // commonResponse
}
class queryRequest {
public $uuid; // string
public $orderId; // string
public $subscriptionId; // string
public $paymentToken; // string
}
class wsResponse {
public $requestId; // string
}
class createToken {
public $commonRequest; // commonRequest
public $cardRequest; // cardRequest
public $customerRequest; // customerRequest
}
class createTokenResponse {
public $createTokenResult; // createTokenResult
}
class createTokenResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
public $orderResponse; // orderResponse
public $cardResponse; // cardResponse
public $authorizationResponse; // authorizationResponse
public $captureResponse; // captureResponse
public $customerResponse; // customerResponse
public $markResponse; // markResponse
public $threeDSResponse; // threeDSResponse
public $extraResponse; // extraResponse
public $subscriptionResponse; // subscriptionResponse
public $fraudManagementResponse; // fraudManagementResponse
public $shoppingCartResponse; // shoppingCartResponse
}
class subscriptionResponse {
public $subscriptionId; // string
public $effectDate; // dateTime
public $cancelDate; // dateTime
public $initialAmount; // long
public $rrule; // string
public $description; // string
public $initialAmountNumber; // int
public $pastPaymentNumber; // int
public $totalPaymentNumber; // int
public $amount; // long
public $currency; // int
}
class getTokenDetails {
public $queryRequest; // queryRequest
}
class getTokenDetailsResponse {
public $getTokenDetailsResult; // getTokenDetailsResult
}
class getTokenDetailsResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
public $orderResponse; // orderResponse
public $cardResponse; // cardResponse
public $authorizationResponse; // authorizationResponse
public $captureResponse; // captureResponse
public $customerResponse; // customerResponse
public $markResponse; // markResponse
public $subscriptionResponse; // subscriptionResponse
public $extraResponse; // extraResponse
public $fraudManagementResponse; // fraudManagementResponse
public $threeDSResponse; // threeDSResponse
public $tokenResponse; // tokenResponse
}
class updateSubscription {
class subscriptionRequest {
public $subscriptionId; // string
public $effectDate; // dateTime
public $amount; // long
public $currency; // int
public $initialAmount; // long
public $initialAmountNumber; // int
public $rrule; // string
public $description; // string
}
class updateSubscriptionResponse {
public $updateSubscriptionResult; // updateSubscriptionResult
}
class updateSubscriptionResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
public $orderResponse; // orderResponse
public $cardResponse; // cardResponse
public $authorizationResponse; // authorizationResponse
public $captureResponse; // captureResponse
public $customerResponse; // customerResponse
public $markResponse; // markResponse
public $threeDSResponse; // threeDSResponse
public $extraResponse; // extraResponse
public $subscriptionResponse; // subscriptionResponse
public $fraudManagementResponse; // fraudManagementResponse
}
class capturePayment {
public $settlementRequest; // settlementRequest
}
class settlementRequest {
public $transactionUuids; // string
public $commission; // double
public $date; // dateTime
}
class capturePaymentResponse {
public $capturePaymentResult; // capturePaymentResult
}
class capturePaymentResult {
public $commonResponse; // commonResponse
}
class findPayments {
public $queryRequest; // queryRequest
}
class findPaymentsResponse {
public $findPaymentsResult; // findPaymentsResult
}
class findPaymentsResult {
public $commonResponse; // commonResponse
public $orderResponse; // orderResponse
public $transactionItem; // transactionItem
}
class transactionItem {
public $transactionUuid; // string
public $transactionStatusLabel; // string
public $amount; // long
public $currency; // int
public $expectedCaptureDate; // dateTime
}
class refundPayment {
public $commonRequest; // commonRequest
public $paymentRequest; // paymentRequest
public $queryRequest; // queryRequest
}
class refundPaymentResponse {
public $refundPaymentResult; // refundPaymentResult
}
class refundPaymentResult {
public $commonResponse; // commonResponse
class verifyThreeDSEnrollment {
public $commonRequest; // commonRequest
public $paymentRequest; // paymentRequest
public $cardRequest; // cardRequest
public $techRequest; // techRequest
}
class verifyThreeDSEnrollmentResponse {
public $verifyThreeDSEnrollmentResult; // verifyThreeDSEnrollmentResult
}
class verifyThreeDSEnrollmentResult {
public $commonResponse; // commonResponse
public $threeDSResponse; // threeDSResponse
}
class reactivateToken {
public $queryRequest; // queryRequest
}
class reactivateTokenResponse {
public $reactivateTokenResult; // reactivateTokenResult
}
class reactivateTokenResult {
public $commonResponse; // commonResponse
}
class createSubscription {
public $commonRequest; // commonRequest
public $orderRequest; // orderRequest
public $subscriptionRequest; // subscriptionRequest
public $cardRequest; // cardRequest
}
class createSubscriptionResponse {
public $createSubscriptionResult; // createSubscriptionResult
}
class createSubscriptionResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
public $orderResponse; // orderResponse
public $cardResponse; // cardResponse
public $authorizationResponse; // authorizationResponse
public $captureResponse; // captureResponse
public $customerResponse; // customerResponse
public $markResponse; // markResponse
public $threeDSResponse; // threeDSResponse
public $extraResponse; // extraResponse
public $subscriptionResponse; // subscriptionResponse
public $fraudManagementResponse; // fraudManagementResponse
public $shoppingCartResponse; // shoppingCartResponse
}
class cancelSubscription {
public $commonRequest; // commonRequest
public $queryRequest; // queryRequest
}
class cancelSubscriptionResponse {
public $cancelSubscriptionResult; // cancelSubscriptionResult
}
class cancelSubscriptionResult {
public $commonResponse; // commonResponse
}
class updatePayment {
public $commonRequest; // commonRequest
public $queryRequest; // queryRequest
public $paymentRequest; // paymentRequest
}
class updatePaymentResponse {
class updatePaymentResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
public $orderResponse; // orderResponse
public $cardResponse; // cardResponse
public $authorizationResponse; // authorizationResponse
public $captureResponse; // captureResponse
public $customerResponse; // customerResponse
public $markResponse; // markResponse
public $threeDSResponse; // threeDSResponse
public $extraResponse; // extraResponse
public $subscriptionResponse; // subscriptionResponse
public $fraudManagementResponse; // fraudManagementResponse
}
class validatePayment {
public $commonRequest; // commonRequest
public $queryRequest; // queryRequest
}
class validatePaymentResponse {
public $validatePaymentResult; // validatePaymentResult
}
class validatePaymentResult {
public $commonResponse; // commonResponse
}
class cancelPayment {
public $commonRequest; // commonRequest
public $queryRequest; // queryRequest
}
class cancelPaymentResponse {
public $cancelPaymentResult; // cancelPaymentResult
}
class cancelPaymentResult {
public $commonResponse; // commonResponse
}
class checkThreeDSAuthentication {
public $commonRequest; // commonRequest
public $threeDSRequest; // threeDSRequest
}
class checkThreeDSAuthenticationResponse {
public $checkThreeDSAuthenticationResult; // checkThreeDSAuthenticationResult
}
class checkThreeDSAuthenticationResult {
public $commonResponse; // commonResponse
public $threeDSResponse; // threeDSResponse
}
class getPaymentDetails {
public $queryRequest; // queryRequest
}
class getPaymentDetailsResponse {
public $getPaymentDetailsResult; // getPaymentDetailsResult
}
class getPaymentDetailsResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
public $orderResponse; // orderResponse
public $cardResponse; // cardResponse
public $authorizationResponse; // authorizationResponse
public $captureResponse; // captureResponse
public $customerResponse; // customerResponse
public $markResponse; // markResponse
public $subscriptionResponse; // subscriptionResponse
public $extraResponse; // extraResponse
public $fraudManagementResponse; // fraudManagementResponse
public $threeDSResponse; // threeDSResponse
public $tokenResponse; // tokenResponse
}
class duplicatePayment {
public $commonRequest; // commonRequest
public $paymentRequest; // paymentRequest
public $orderRequest; // orderRequest
public $queryRequest; // queryRequest
class duplicatePaymentResponse {
public $duplicatePaymentResult; // duplicatePaymentResult
}
class duplicatePaymentResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
public $orderResponse; // orderResponse
public $cardResponse; // cardResponse
public $authorizationResponse; // authorizationResponse
public $captureResponse; // captureResponse
public $customerResponse; // customerResponse
public $markResponse; // markResponse
public $threeDSResponse; // threeDSResponse
public $extraResponse; // extraResponse
public $fraudManagementResponse; // fraudManagementResponse
}
class updateToken {
public $commonRequest; // commonRequest
public $queryRequest; // queryRequest
public $cardRequest; // cardRequest
public $customerRequest; // customerRequest
}
class updateTokenResponse {
public $updateTokenResult; // updateTokenResult
}
class updateTokenResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
public $orderResponse; // orderResponse
public $cardResponse; // cardResponse
public $authorizationResponse; // authorizationResponse
public $captureResponse; // captureResponse
public $customerResponse; // customerResponse
public $markResponse; // markResponse
public $threeDSResponse; // threeDSResponse
public $extraResponse; // extraResponse
public $subscriptionResponse; // subscriptionResponse
public $fraudManagementResponse; // fraudManagementResponse
}
class getPaymentUuid {
public $legacyTransactionKeyRequest; // legacyTransactionKeyRequest
}
class legacyTransactionKeyRequest {
public $transactionId; // string
public $sequenceNumber; // int
public $creationDate; // dateTime
}
class getPaymentUuidResponse {
public $legacyTransactionKeyResult; // legacyTransactionKeyResult
}
class legacyTransactionKeyResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
}
class getSubscriptionDetails {
public $queryRequest; // queryRequest
}
class getSubscriptionDetailsResponse {
public $getSubscriptionDetailsResult; // getSubscriptionDetailsResult
}
class getSubscriptionDetailsResult {
public $commonResponse; // commonResponse
public $paymentResponse; // paymentResponse
public $orderResponse; // orderResponse
public $cardResponse; // cardResponse
public $authorizationResponse; // authorizationResponse
public $captureResponse; // captureResponse
public $customerResponse; // customerResponse
public $markResponse; // markResponse
public $subscriptionResponse; // subscriptionResponse
public $extraResponse; // extraResponse
public $fraudManagementResponse; // fraudManagementResponse
public $threeDSResponse; // threeDSResponse
public $tokenResponse; // tokenResponse
class paymentType {
const SINGLE = 'SINGLE';
const INSTALLMENT = 'INSTALLMENT';
const SPLIT = 'SPLIT';
const SUBSCRIPTION = 'SUBSCRIPTION';
const RETRY = 'RETRY';
}
class custStatus {
const _PRIVATE = 'PRIVATE';
const COMPANY = 'COMPANY';
}
class deliverySpeed {
const STANDARD = 'STANDARD';
const EXPRESS = 'EXPRESS';
}
class deliveryType {
const RECLAIM_IN_SHOP = 'RECLAIM_IN_SHOP';
const RELAY_POINT = 'RELAY_POINT';
const RECLAIM_IN_STATION = 'RECLAIM_IN_STATION';
const PACKAGE_DELIVERY_COMPANY = 'PACKAGE_DELIVERY_COMPANY';
const ETICKET = 'ETICKET';
}
class vadRiskAnalysisProcessingStatus {
const P_TO_SEND = 'P_TO_SEND';
const P_SEND_KO = 'P_SEND_KO';
const P_PENDING_AT_ANALYZER = 'P_PENDING_AT_ANALYZER';
const P_SEND_OK = 'P_SEND_OK';
const P_MANUAL = 'P_MANUAL';
const P_SKIPPED = 'P_SKIPPED';
const P_SEND_EXPIRED = 'P_SEND_EXPIRED';
}
class threeDSMode {
const DISABLED = 'DISABLED';
const ENABLED_CREATE = 'ENABLED_CREATE';
const ENABLED_FINALIZE = 'ENABLED_FINALIZE';
const MERCHANT_3DS = 'MERCHANT_3DS';
}
class productType {
const FOOD_AND_GROCERY = 'FOOD_AND_GROCERY';
const AUTOMOTIVE = 'AUTOMOTIVE';
const ENTERTAINMENT = 'ENTERTAINMENT';
const HOME_AND_GARDEN = 'HOME_AND_GARDEN';
const HOME_APPLIANCE = 'HOME_APPLIANCE';
const AUCTION_AND_GROUP_BUYING = 'AUCTION_AND_GROUP_BUYING';
const FLOWERS_AND_GIFTS = 'FLOWERS_AND_GIFTS';
const COMPUTER_AND_SOFTWARE = 'COMPUTER_AND_SOFTWARE';
const HEALTH_AND_BEAUTY = 'HEALTH_AND_BEAUTY';
const SERVICE_FOR_INDIVIDUAL = 'SERVICE_FOR_INDIVIDUAL';
const SERVICE_FOR_BUSINESS = 'SERVICE_FOR_BUSINESS';
const SPORTS = 'SPORTS';
const CLOTHING_AND_ACCESSORIES = 'CLOTHING_AND_ACCESSORIES';
const TRAVEL = 'TRAVEL';
const HOME_AUDIO_PHOTO_VIDEO = 'HOME_AUDIO_PHOTO_VIDEO';
const TELEPHONY = 'TELEPHONY';
}
?>
function gen_uuid() {
if (function_exists('random_bytes')) {
// PHP 7
$data = random_bytes(16);
} elseif (function_exists('openssl_random_pseudo_bytes')) {
// PHP 5.3, Open SSL required
$data = openssl_random_pseudo_bytes(16);
} else {
return sprintf(
'%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
mt_rand(0, 0xffff),
mt_rand(0, 0xffff),
mt_rand(0, 0xffff),
mt_rand(0, 0x0fff) | 0x4000,
mt_rand(0, 0x3fff) | 0x8000,
mt_rand(0, 0xffff),
mt_rand(0, 0xffff),
mt_rand(0, 0xffff)
);
}
$client->__setSoapHeaders ( $headers );
}
function setJsessionId($client){
$cookie=$_SESSION['JSESSIONID'];
$client->__setCookie('JSESSIONID', $cookie);
return $cookie;
}
/**
*
*
* @param $client
* @return string $JSESSIONID
*/
function getJsessionId($client){
//récupération de l'entête de la réponse
$header=($client->__getLastResponseHeaders());
if(!preg_match("#JSESSIONID=([A-Za-z0-9\._]+)#",$header, $matches)){
return "Aucun ID de Session Renvoyé." ; //Ce cas ne devrait jamais se présenter;
die;
}
$JSESSIONID = $matches[1];
$_SESSION['JSESSIONID'] = $JSESSIONID;
//print_r($JSESSIONID);
return $JSESSIONID;
}
$msg= ('
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
<title>3DS</title>
<script type="text/javascript">
<!--
function submitForm(){
document.redirectForm.submit();
}
-->
</script>
</head>
<hr class="ensureDivHeight"/>
<br/>
<br/>
<br/>
<br/>
<br/>
<form name="redirectForm" action="'.$threeDsAcsUrl.'" method="POST">
<input type="hidden" name="PaReq" value="'.$threeDsEncodedPareq.'"/>
<input type="hidden" name="TermUrl" value="'.$threeDsServerResponseUrl.'"/>
<input type="hidden" name="MD" value="'.$threeDSrequestId.'"/>
echo $msg;
?>
8.1. createPayment
Création d'une transaction de paiement avec authentification 3D Secure
Quatre fichiers sont requis pour créer une transaction de paiement avec authentification 3D Secure :
le fichier pour les fonctions "function.php".
//Génération du header
$requestId = gen_uuid ();
$timestamp = gmdate ( "Y-m-d\TH:i:s\Z" );
$authToken = base64_encode(hash_hmac('sha256',$requestId.$timestamp, $key, true));
setHeaders ($shopId, $requestId, $timestamp, $mode, $authToken, $key, $client);
//Génération du body
$commonRequest = new commonRequest;
$commonRequest->paymentSource = 'EC';
$commonRequest->submissionDate = new DateTime('now',new DateTimeZone('UTC'));
/* Affichage des logs XML à remplacer par une écriture dans un fichier de log.
*
* ATTENTION VOUS NE DEVEZ PAS ENREGISTRER LES NUMEROS DE CARTE DANS VOS LOGS
*/
echo "<hr> [Request Header] <br/>", htmlspecialchars($client->__getLastRequestHeaders()),
"<br/>";
echo "<hr> [Request] <br/>", htmlspecialchars($client->__getLastRequest()), "<br/>";
echo "<hr> [Response Header]<br/>", htmlspecialchars($client->__getLastResponseHeaders()),
"<br/>";
echo "<hr> [Response]<br/>", htmlspecialchars($client->__getLastResponse()), "<br/>";
echo '<hr>';
echo "<hr> [Response SOAP Headers]<br/>";
//Analyse de la réponse
//Récupération du SOAP Header de la réponse afin de stocker les en-têtes dans un tableau
(ici $responseHeader)
$dom = new DOMDocument;
$dom->loadXML($client->__getLastResponse(), LIBXML_NOWARNING);
$path = new DOMXPath($dom);
$headers = $path->query('//*[local-name()="Header"]/*');
$responseHeader = array();
foreach($headers as $headerItem) {
$responseHeader[$headerItem->nodeName] = $headerItem->nodeValue;
}
// On stocke l'identifiant de session dans le champ MD. Ce champ sera renvoyé inchangé
par l'ACS
$MD=setJsessionId($client)."+".$createPaymentResponse->createPaymentResult-
>threeDSResponse->authenticationRequestData->threeDSRequestId;
//ATTENTION en mode TEST, l'identifiant de session doit être ajouté à l'URL de l'ACS
pour maintenir la session HTTP
$JSESSIONID=setJsessionId($client);
if ($mode == "TEST"){
$threeDsAcsUrl = $threeDsAcsUrl.";jsessionid=".$JSESSIONID;
}
formConstructor ($threeDsAcsUrl,$MD,$threeDsEncodedPareq,$threeDsServerResponseUrl);
}
}
}
?>
//Génération du header
$requestId = gen_uuid ();
$timestamp = gmdate ( "Y-m-d\TH:i:s\Z" );
$authToken = base64_encode(hash_hmac('sha256',$requestId.$timestamp, $key, true));
//Génération du body
$commonRequest = new commonRequest;
$commonRequest->submissionDate = new DateTime('now',new DateTimeZone('UTC'));
$createPaymentRequest->commonRequest->submissionDate = $createPaymentRequest-
>commonRequest->submissionDate->format(dateTime::W3C);
try {
//Maintien de la session HTTP
$client->__setCookie('JSESSIONID', $JSESSIONID);
/*
* Affichage des logs XML à remplacer par une écriture dans un fichier de log.
*/
echo "<hr> [Request Header] <br/>", htmlspecialchars($client->__getLastRequestHeaders()),
"<br/>";
echo "<hr> [Request] <br/>", htmlspecialchars($client->__getLastRequest()), "<br/>";
echo "<hr> [Response Header]<br/>", htmlspecialchars($client-
>__getLastResponseHeaders()), "<br/>";
echo "<hr> [Response]<br/>", htmlspecialchars($client->__getLastResponse()), "<br/>";
echo '<hr>';
//Analyse de la réponse
//Récupération du SOAP Header de la réponse afin de stocker les en-têtes dans un tableau
(ici $responseHeader)
$dom = new DOMDocument;
$dom->loadXML($client->__getLastResponse(), LIBXML_NOWARNING);
$path = new DOMXPath($dom);
$headers = $path->query('//*[local-name()="Header"]/*');
$responseHeader = array();
foreach($headers as $headerItem) {
$responseHeader[$headerItem->nodeName] = $headerItem->nodeValue;
}
$authTokenResponse = base64_encode(hash_hmac('sha256',$responseHeader['timestamp'].
$responseHeader['requestId'], $key, true));
if ($authTokenResponse !== $responseHeader['authToken']){
//process error
echo 'erreur interne';
}
else{
//Process terminé avec succès
//test de la présence du transactionStatusLabel:
if (isset ($createPaymentResponse->createPaymentResult->commonResponse-
>transactionStatusLabel)){
8.2. findPayments
Recherche d'un paiement
Trois fichiers sont requis pour rechercher un paiement :
le fichier pour les fonctions "function.php".
//Génération du header
$requestId = gen_uuid ();
$timestamp = gmdate ( "Y-m-d\TH:i:s\Z" );
$authToken = base64_encode(hash_hmac('sha256',$requestId.$timestamp, $key, true));
setHeaders ($shopId, $requestId, $timestamp, $mode, $authToken, $key, $client);
//Génération du body
$queryRequest = new queryRequest;
$queryRequest->orderId ="myOrder";
try {
$findPaymentsRequest->queryRequest = $queryRequest;
$findPaymentsResponse = $client->findPayments($findPaymentsRequest);
} catch (SoapFault $fault) {
/* Affichage des logs XML à remplacer par une écriture dans un fichier de log.
*
* ATTENTION VOUS NE DEVEZ PAS ENREGISTRER LES NUMEROS DE CARTE DANS VOS LOGS
*/
echo "<hr> [Request Header] <br/>", htmlspecialchars($client->__getLastRequestHeaders()),
"<br/>";
//Analyse de la réponse
//Récupération du SOAP Header de la réponse afin de stocker les en-têtes dans un tableau
(ici $responseHeader)
$dom = new DOMDocument;
$dom->loadXML($client->__getLastResponse(), LIBXML_NOWARNING);
$path = new DOMXPath($dom);
$headers = $path->query('//*[local-name()="Header"]/*');
$responseHeader = array();
foreach($headers as $headerItem) {
$responseHeader[$headerItem->nodeName] = $headerItem->nodeValue;
}
//Analyse de la réponse
if ($findPaymentsResponse->findPaymentsResult->commonResponse->responseCode != "0"){
//process error
}
else{
//Process terminé avec succès
//test de la présence du transactionStatusLabel:
if (isset ($findPaymentsResponse->findPaymentsResult->commonResponse-
>transactionStatusLabel)){
//la carte est non enrôlée ou 3DS Désactivé
case "AUTHORISED":
echo "paiement accepté";
break;
case "WAITING_AUTORISATION":
echo "paiement accepté";
break;
case "AUTHORISED_TO_VALIDATE":
echo "paiement accepté";
break;
case "WAITING_AUTORISATION_TO_VALIDATE":
echo "paiement accepté";
break;
// Le paiement est refusé
default:
echo "paiement refusé";
break;
}
else{
// si absent = la transaction n'est pas créée, on est donc dans le cas d'une carte
enrôlée
// on procède alors à la génération du formulaire de redirection 3DS
//On récupère l'identifiant de session afin de maintenir la session lors de l'analyse de
la réponse de l'acs
$cookie = getJsessionId($client);
}
}
}
8.3. createToken
Création d'un alias
Trois fichiers sont requis pour créer un alias :
le fichier pour les fonctions "function.php".
//Génération du header
$requestId = gen_uuid ();
$timestamp = gmdate ( "Y-m-d\TH:i:s\Z" );
$authToken = base64_encode(hash_hmac('sha256',$requestId.$timestamp, $key, true));
setHeaders ($shopId, $requestId, $timestamp, $mode, $authToken, $key, $client);
//Génération du body
$commonRequest = new commonRequest;
$commonRequest->submissionDate = new DateTime('now',new DateTimeZone('UTC'));
$createTokenRequest->commonRequest->submissionDate = $createTokenRequest->commonRequest-
>submissionDate->format(dateTime::W3C);
$createTokenResponse = $client->createToken($createTokenRequest);
} catch (SoapFault $fault) {
/* Affichage des logs XML à remplacer par une écriture dans un fichier de log.
*
* ATTENTION VOUS NE DEVEZ PAS ENREGISTRER LES NUMEROS DE CARTE DANS VOS LOGS
*/
echo "<hr> [Request Header] <br/>", htmlspecialchars($client->__getLastRequestHeaders()),
"<br/>";
echo "<hr> [Request] <br/>", htmlspecialchars($client->__getLastRequest()), "<br/>";
echo "<hr> [Response Header]<br/>", htmlspecialchars($client-
>__getLastResponseHeaders()), "<br/>";
echo "<hr> [Response]<br/>", htmlspecialchars($client->__getLastResponse()), "<br/>";
echo '<hr>';
echo "<hr> [Response SOAP Headers]<br/>";
//Analyse de la réponse
//Récupération du SOAP Header de la réponse afin de stocker les en-têtes dans un tableau
(ici $responseHeader)
$dom = new DOMDocument;
$dom->loadXML($client->__getLastResponse(), LIBXML_NOWARNING);
$path = new DOMXPath($dom);
$headers = $path->query('//*[local-name()="Header"]/*');
$responseHeader = array();
foreach($headers as $headerItem) {
$responseHeader[$headerItem->nodeName] = $headerItem->nodeValue;
}
//Analyse de la réponse
if ($createTokenResponse->createTokenResult->commonResponse->responseCode != "0"){
//process error
}
else{
//Process terminé avec succès
//Test de la présence du transactionStatusLabel:
if (isset ($createTokenResponse->createTokenResult->commonResponse-
>transactionStatusLabel)){
//La carte est non enrôlée ou 3DS Désactivé
switch ($createTokenResponse->createTokenResult->commonResponse-
>transactionStatusLabel) {
case "AUTHORISED":
echo "paiement accepté";
break;
case "WAITING_AUTORISATION":
echo "paiement accepté";
break;
case "AUTHORISED_TO_VALIDATE":
echo "paiement accepté";
break;
case "WAITING_AUTORISATION_TO_VALIDATE":
echo "paiement accepté";
break;
// Le paiement est refusé
default:
echo "paiement refusé";
break;
}
}
}
}
?>
8.4. createSubscription
L'opération createSubscription permet de réaliser des paiements récurrents (abonnements).
Elle nécessite l'utilisation d'un alias déjà existant et valide.
Cet alias peut être créé via :
l'opération createToken,
ou
par formulaire (voir Guide d'implémentation API Formulaire)
Trois fichiers sont requis pour créer un alias :
le fichier pour les fonctions "function.php".
//Génération du header
$requestId = gen_uuid ();
$timestamp = gmdate ( "Y-m-d\TH:i:s\Z" );
$authToken = base64_encode(hash_hmac('sha256',$requestId.$timestamp, $key, true));
setHeaders ($shopId, $requestId, $timestamp, $mode, $authToken, $key, $client);
//Génération du body
$subscriptionRequest->rrule = "RRULE:FREQ=MONTHLY;COUNT=12;BYMONTHDAY=10";
$createSubscriptionRequest->commonRequest->submissionDate = $createSubscriptionRequest-
>commonRequest->submissionDate->format(dateTime::W3C);
$createSubscriptionResponse = $client->createSubscription($createSubscriptionRequest);
} catch (SoapFault $fault) {
/* Affichage des logs XML à remplacer par une écriture dans un fichier de log.
*
* ATTENTION VOUS NE DEVEZ PAS ENREGISTRER LES NUMEROS DE CARTE DANS VOS LOGS
*/
echo "<hr> [Request Header] <br/>", htmlspecialchars($client->__getLastRequestHeaders()),
"<br/>";
echo "<hr> [Request] <br/>", htmlspecialchars($client->__getLastRequest()), "<br/>";
echo "<hr> [Response Header]<br/>", htmlspecialchars($client-
>__getLastResponseHeaders()), "<br/>";
echo "<hr> [Response]<br/>", htmlspecialchars($client->__getLastResponse()), "<br/>";
echo '<hr>';
echo "<hr> [Response SOAP Headers]<br/>";
///Analyse de la réponse
//Récupération du SOAP Header de la réponse afin de stocker les en-têtes dans un tableau
(ici $responseHeader)
$dom = new DOMDocument;
$dom->loadXML($client->__getLastResponse(), LIBXML_NOWARNING);
$path = new DOMXPath($dom);
$headers = $path->query('//*[local-name()="Header"]/*');
$responseHeader = array();
foreach($headers as $headerItem) {
$responseHeader[$headerItem->nodeName] = $headerItem->nodeValue;
}
//Analyse de la réponse
if ($createSubscriptionResponse->createSubscriptionResult->commonResponse->responseCode !
= "0"){
//process error
}
else{
switch ($createPaymentResponse->createPaymentResult->commonResponse-
>transactionStatusLabel){
case "AUTHORISED":
echo "paiement accepté";
break;
case "WAITING_AUTHORISATION":
echo "paiement accepté";
break;
case "AUTHORISED_TO_VALIDATE":
echo "paiement accepté";
break;
case "WAITING_AUTHORISATION_TO_VALIDATE":
echo "paiement accepté";
break;
// Le paiement est refusé
default:
echo "paiement refusé";
break;
}
}
}
}
?>
8.5. cancelSubscription
//Génération du header
$requestId = gen_uuid ();
$timestamp = gmdate ( "Y-m-d\TH:i:s\Z" );
$authToken = base64_encode(hash_hmac('sha256',$requestId.$timestamp, $key, true));
setHeaders ($shopId, $requestId, $timestamp, $mode, $authToken, $key, $client);
//Génération du body
$cancelSubscriptionResponse = $client->cancelSubscription($cancelSubscriptionRequest);
} catch (SoapFault $fault) {
/* Affichage des logs XML à remplacer par une écriture dans un fichier de log.
*
* ATTENTION VOUS NE DEVEZ PAS ENREGISTRER LES NUMEROS DE CARTE DANS VOS LOGS
*/
echo "<hr> [Request Header] <br/>", htmlspecialchars($client->__getLastRequestHeaders()),
"<br/>";
echo "<hr> [Request] <br/>", htmlspecialchars($client->__getLastRequest()), "<br/>";
echo "<hr> [Response Header]<br/>", htmlspecialchars($client-
>__getLastResponseHeaders()), "<br/>";
echo "<hr> [Response]<br/>", htmlspecialchars($client->__getLastResponse()), "<br/>";
echo '<hr>';
echo "<hr> [Response SOAP Headers]<br/>";
///Analyse de la réponse
//Récupération du SOAP Header de la réponse afin de stocker les en-têtes dans un tableau
(ici $responseHeader)
$dom = new DOMDocument;
$dom->loadXML($client->__getLastResponse(), LIBXML_NOWARNING);
$path = new DOMXPath($dom);
$headers = $path->query('//*[local-name()="Header"]/*');
$responseHeader = array();
foreach($headers as $headerItem) {
$responseHeader[$headerItem->nodeName] = $headerItem->nodeValue;
}
//Analyse de la réponse
if ($cancelSubscriptionResponse->cancelSubscriptionResult->commonResponse->responseCode !
= "0"){
//process error
}
else{
switch ($cancelSubscriptionResponse->cancelSubscriptionResult->commonResponse-
>transactionStatusLabel){
case "AUTHORISED":
echo "paiement accepté";
break;
case "WAITING_AUTHORISATION":
echo "paiement accepté";
break;
case "AUTHORISED_TO_VALIDATE":
echo "paiement accepté";
break;
case "WAITING_AUTHORISATION_TO_VALIDATE":
echo "paiement accepté";
break;
// Le paiement est refusé
default:
echo "paiement refusé";
break;
}
}
}
}
?>
9. DICTIONNAIRE DE DONNÉES
Motif Motif
Valeur Description Valeur Description
frauduleux frauduleux
0 Transaction approuvée ou traitée 38 Date de validité de la carte dépassée
avec succès
2 Contacter l’émetteur de carte 41 Carte perdue OUI
3 Accepteur invalide OUI 43 Carte volée OUI
4 Conserver la carte OUI 51 Provision insuffisante ou crédit
dépassé
5 Ne pas honorer OUI 54 Date de validité de la carte dépassée OUI
7 Conserver la carte, conditions OUI 55 Code confidentiel erroné
spéciales
8 Approuver après identification 56 Carte absente du fichier OUI
12 Transaction invalide OUI 57 Transaction non permise à ce OUI
porteur
13 Montant invalide OUI 58 Transaction non permise à ce
porteur
14 Numéro de porteur invalide OUI 59 Suspicion de fraude OUI
15 Emetteur de carte inconnu OUI 60 L’accepteur de carte doit contacter
l’acquéreur
17 Annulation acheteur 61 Montant de retrait hors limite
19 Répéter la transaction 63 Règles de sécurité non respectées OUI
ultérieurement
20 Réponse erronée (erreur dans le 68 Réponse non parvenue ou reçue trop
domaine serveur) tard
24 Mise à jour de fichier non supportée 75 Nombre d’essais code confidentiel
dépassé
25 Impossible de localiser 76 Porteur déjà en opposition, ancien OUI
l’enregistrement dans le fichier enregistrement conservé
26 Enregistrement dupliqué, ancien 90 Arrêt momentané du système
enregistrement remplacé
27 Erreur en « edit » sur champ de liste 91 Émetteur de cartes inaccessible
à jour fichier
28 Accès interdit au fichier 94 Transaction dupliquée
29 Mise à jour impossible 96 Mauvais fonctionnement du système
30 Erreur de format 97 Échéance de la temporisation de
surveillance globale
31 Identifiant de l’organisme acquéreur OUI 98 Serveur indisponible routage réseau
inconnu demandé à nouveau
33 Date de validité de la carte dépassée OUI 99 Incident domaine initiateur
34 Suspicion de fraude OUI
Tableau 15 : Codes retour spécifiques au réseau CB2A
Code Message
44 Cette action n'est pas autorisée pour les transactions de proximité.
45 Devise invalide pour la modification.
46 Le montant est supérieur au montant autorisé.
47 La date de présentation souhaitée est postérieure à la date de validité de l'autorisation.
48 La modification requise est invalide.
49 Définition du paiement multiple invalide.
50 Boutique inconnue.
51 Cours inconnu.
52 Le contrat est clos depuis le {0}.
53 La boutique {0} est close depuis le {1}.
54 Paramètre rejeté pouvant contenir des données sensibles {0}.
55 Suite à un incident technique, nous ne sommes pas en mesure de traiter votre demande.
57 Erreur lors de la récupération de l'alias.
58 Le statut de l'alias n'est pas compatible avec cette opération.
59 Erreur lors de la récupération de l'alias.
60 Alias existant.
61 Alias invalide
62 Création d'un alias refusée.
63 Abonnement déjà existant.
64 Cet abonnement est déjà résilié.
65 Cet abonnement est invalide.
66 La règle de récurrence n'est pas valide.
67 Création de l'abonnement refusée.
68 Annulation refusée.
69 Suite à un incident technique, nous ne sommes pas en mesure de traiter votre demande.
70 Code pays invalide.
71 Paramètre du service web invalide.
72 Refus d'autorisation par Cofinoga.
73 Refus de l'autorisation à 1000 XOF.
74 Configuration de paiement invalide.
75 L'opération a été refusée par PayPal.
76 Le nom du porteur est absent.
77 Suite à un incident technique, nous ne sommes pas en mesure de traiter votre demande.
78 Identifiant de transaction non défini.
79 Identifiant de transaction déjà utilisé.
80 Identifiant de transaction expiré.
81 Contenu du thème config invalide.
82 Le remboursement n'est pas autorisé.
83 Montant de transaction en dehors des valeurs permises.
85 Suite à un incident technique, nous ne sommes pas en mesure de traiter votre demande.
87 Suite à un incident technique, nous ne sommes pas en mesure de traiter votre demande.
88 Remboursement impossible : le remboursement des transactions est interdit par PayPal au-delà de 60 jours.
89 La modification n'est pas autorisée.
90 Une erreur est apparue lors du remboursement de cette transaction.
91 Aucune option de paiement activée pour ce contrat.
92 Une erreur est survenue lors du calcul du canal de paiement.
93 Une erreur est survenue lors du retour de l'acheteur sur la page de finalisation de paiement.
94 Une erreur technique est survenue.
96 Une erreur est apparue lors de la remise de cette transaction.
97 Date de remise trop éloignée.
98 Date de transaction invalide.
99 Une erreur est survenue lors du calcul de l'origine du paiement.
Code Message
100 Contrôle carte commerciale en échec.
101 Refusé car première échéance refusée.
103 Le statut de la transaction n'a pas pu être synchronisé avec le système externe.
104 Une erreur est apparue lors de la remise de cette transaction.
105 Une erreur de sécurité est apparue lors du processus 3DS de cette transaction.
106 Devise non supportée pour ce contrat et/ou cette boutique.
107 La carte associée à l'alias n'est plus valide.
108 Suite à un incident technique, nous ne sommes pas en mesure de traiter votre demande.
109 Délai d'attente dépassé lors de la redirection de l'acheteur.
110 Carte de paiement non supportée par le contrat.
111 Refus des transactions sans Transfert de responsabilité.
112 L'annulation n'est pas autorisée.
113 La duplication n'est pas autorisée.
115 Le remboursement n'est pas autorisé.
116 Paiement manuel non autorisé pour cette carte.
118 Paiement manuel en plusieurs fois non autorisé pour cette carte.
119 La date soumise est invalide.
120 L'option de paiement de la transaction initiale n'est pas applicable.
124 Carte inactive.
125 Paiement refusé par l'acquéreur.
126 Cette action n'est pas possible car la séquence de paiement n'est pas terminée.
128 Moyen de paiement invalide.
129 Code PIN invalide.
130 Solde épuisé
131 Solde insuffisant
136 Refus des transactions dérivées, sans Transfert de responsabilité sur la transaction primaire.
137 La transaction est un doublon.
138 Le remboursement partiel n'est pas possible sur cette transaction.
139 Remboursement refusé.
140 Un problème technique est survenu lors du paiement.
141 L'analyseur de risque a rejeté cette transaction.
142 Le type de carte utilisé n'est pas valide pour le mode de paiement demandé.
143 Suite à un incident technique, nous ne sommes pas en mesure de traiter votre demande.
144 Une transaction en mode production a été marquée en mode test chez l'acquéreur.
145 Une transaction en mode test a été marquée en mode production chez l'acquéreur.
146 Code sms invalide.
147 Le module de gestion de fraudes a demandé le refus de cette transaction.
148 Suite à un incident technique, nous ne sommes pas en mesure de traiter votre demande. La transaction n'a pas
été créée.
149 La durée de la session de paiement a expiré (cas de l'acheteur qui est redirigé vers l'ACS et qui ne finalise pas
l'authentification 3D Secure).
150 Suite à un incident technique, nous ne sommes pas en mesure de traiter votre demande. La transaction n'a pas
été créée.
151 Une transaction Facily Pay ne peut pas être annulée/modifiée/remboursée entre 23h30 et 5h30.
152 Suite à un incident technique, nous ne sommes pas en mesure de traiter votre demande.
153 Une erreur technique est survenue lors de l'appel au service Banque Accord.
155 La transaction Facily Pay n'a pu être annulée/modifiée/remboursée : l'état de la transaction ne permet pas de
réaliser l'action demandée. Rappel concernant une transaction Facily Pay : un remboursement doit respecter un
délai de deux jours après la remise, le délai entre deux remboursements est d'un jour, un remboursement partiel
est limité à 20 jours, un remboursement total est limité à 6 mois.
156 Opération non supportée.
158 Suite à un incident technique, nous ne sommes pas en mesure de traiter votre demande.
159 Le montant est inférieur au montant minimum autorisé (minimum={0} {1}).
160 Il est impossible de rembourser une transaction impayée.
Code Message
164 Option de paiement invalide.
165 Le type de document d'identité est présent, mais son numéro est absent.
166 Le numéro de document d'identité est présent, mais son type est absent.
167 Le type du document d'identité est inconnu.
168 Le numéro du document d'identité est invalide.
169 Les données spécifiques devant être transmises à l'acquéreur sont invalides.
170 Le paiement différé n'est pas autorisé.
171 Le nombre de mois pour le paiement différé n'est pas autorisé.
172 La cinématique de paiement sélectionnée est invalide.
173 Erreur sur le service Express Checkout de PayPal.
174 Emetteur de carte non disponible.
175 Annulation impossible, veuillez tenter un remboursement.
176 Remboursement impossible, veuillez tenter une annulation.
177 Aucune réponse à la demande d'autorisation n'a été reçue dans le délai imparti.
178 Annulation impossible, la transaction a déjà été annulée.
179 Le status de la transaction est inconnue.
182 L'identifiant national du client est absent.
183 Le format de l'identifiant national du client est incorrect.
VISA Désignation
Q5 PRIVATE LABEL SPECIALIZED
Q6 PRIVATE LABEL PREMIUM
MASTERCARD Désignation
BPD BUSINESS PREMIUM DEBIT
CIR CIRRUS
DAG GOLD DEBIT MASTERCARD SALARY
DAP PLATINUM DEBIT MASTERCARD SALARY
DAS STANDARD DEBIT MASTERCARD SALARY
DDB DOMESTIC DEBIT BRAND
DLG DEBIT GOLD DELAYED DEBIT
DLH DEBIT WORLD EMBOSSED DELAYED DEBIT
DLP DEBIT PLATINUM DELAYED DEBIT
DLS MASTERCARD CARD-DELAYED DEBIT
DOS STANDARD DEBIT MASTERCARD SOCIAL
DWF DEBIT MASTERCARD HUMANITARIAN PREPAID
M MASTERCARD
MAB WORLD ELITE MASTERCARD
MAC MASTERCARD CORPORATE WORLD ELITE
MBB MASTERCARD PREPAID CONSUMER
MBC MASTERCARD PREPAID VOUCHER
MBD MASTERCARD PROFESSIONAL DEBIT BUSINESS CARD
MBE MASTERCARD ELECTRONIC BUSINESS CARD
MBK MASTERCARD BLACK
MBP MASTERCARD UNKNOWN PRODUCT
MBS MASTERCARD B2B PRODUCT
MBT MASTERCARD CORPORATE PREPAID TRAVEL
MBW WORLD MASTERCARD BLACK EDITION – DEBIT
MCB MASTERCARD BUSINESS CARD
MCC MASTERCARD CREDIT MIXED BIN CARD
MCD MASTERCARD DEBIT CARD
MCE MASTERCARD ELECTRONIC CARD
MCF MASTERCARD FLEET CARD
MCG MASTERCARD GOLD CARD
MCH MASTERCARD PREMIUM CHARGE
MCO MASTERCARD CORPORATE CARD
MCP MASTERCARD PURCHASING CARD
MCS MASTERCARD STANDARD CARD
MCT TITANIUM MASTERCARD CARD
MCV MERCHANT BRANDED PROGRAM
MCW WORLD MASTERCARD CARD
MDB DEBIT MASTERCARD BUSINESSCARD CARD
MDG DEBIT GOLD MASTERCARD CARD
MDH DEBIT OTHER EMBOSSED
MDJ DEBIT OTHER 2 EMBOSSED
MDL BUSINESS DEBIT OTHER EMBOSSED
MDN BUSINESS DEBIT OTHER 2 EMBOSSED
MDO DEBIT OTHER CARD
MDP DEBIT PLATINUM CARD
MDR DEBIT BROKERAGE CARD
MDS DEBIT MASTERCARD CARD
MDT MASTERCARD BUSINESS DEBIT
MDW WORLD ELITE DEBIT MASTERCARD / MASTERCARD BLACK DEBIT
MASTERCARD Désignation
MEB MASTERCARD EXECUTIVE BUSINESS CARD
MEC MASTERCARD ELECTRONIC COMMERCIAL CARD
MEF ELECTRONIC PAYMENT ACCOUNT
MEO MASTERCARD CORPORATE EXECUTIVE CARD
MET TITANIUM DEBIT MASTERCARD
MFB FLEX WORLD ELITE
MFD FLEX PLATINUM
MFE FLEX CHARGE WORLD ELITE
MFH FLEX WORLD
MFL FLEX CHARGE PLATINUM
MFW FLEX CHARGE WORLD
MGF MASTERCARD GOUVERNMENT COMMERCIAL CARD
MHA MASTERCARD HEALTHCARE PREPAID NON-TAX
MHB MASTERCARD HSA SUBSTANTIATED
MHD HELOC DEBIT STANDARD
MHH MASTERCARD HSA NON-SUBSTANTIATED
MHL HELOC DEBIT GOLD
MHM HELOC DEBIT PLATINUM
MHN HELOC DEBIT PREMIUM
MIA PREPAID MASTERCARD UNEMBOSSED STUDENT CARD
MIP PREPAID DEBIT MASTERCARD STUDENT CARD
MIU DEBIT MASTERCARD UNEMBOSSED
MLA MASTERCARD CENTRAL TRAVEL SOLUTIONS AIR CARD
MLD MASTERCARD DISTRIBUTION CARD
MLL MASTERCARD CENTRAL TRAVEL SOLUTIONS LAND CARD
MNF MASTERCARD PUBLIC SECTOR COMMERCIAL CARD
MNW MASTERCARD NEW WORLD
MOC MASTERCARD UNKNOWN PRODUCT
MOG MAESTRO GOLD
MOP MAESTRO PLATINIUM
MOW MAESTRO WORLD
MPA MASTERCARD PREPAID DEBIT STANDARD-PAYROLL
MPB PREFERRED BUSINESS CARD
MPC MPC
MPF MASTERCARD PREPAID DEBIT STANDARD-GIFT
MPG MASTERCARD UNEMBOSSED PREPAID STUDENT CARD
MPH MASTERCARD CASH PREPAID
MPJ PREPAID DEBIT MASTERCARD CARD GOLD
MPK PREPAID MASTERCARD GOUVERNMENT COMMERCIAL CARD
MPL PLATINIUM MASTERCARD CARD
MPM MASTERCARD PREPAID DEBIT STANDARD-CONSUMER INCENTIVE
MPN MASTERCARD PREPAID DEBIT STANDARD-INSURANCE
MPO MASTERCARD PREPAID DEBIT STANDARD-OTHER
MPP PRE-PAID CARD
MPR MASTERCARD PREPAID DEBIT STANDARD-TRAVEL
MPT MASTERCARD PREPAID DEBIT STANDARD-TEEN
MPV MASTERCARD PREPAID DEBIT STANDARD-GOVERNMENT
MPW DEBIT MASTERCARD BUSINESS CARD PREPAID WORK B2B
MPX MASTERCARD PREPAID DEBIT STANDARD-FLEX BENEFIT
MPY MASTERCARD PREPAID DEBIT STANDARD-EMPLOYEE INCENTIVE
MPZ MASTERCARD PREPAID DEBIT STANDARD – GOVERNMENT CONSUMER
MRC MASTERCARD ELECTRONIC CONSUMER PREPAID
MASTERCARD Désignation
MRF STANDARD DEFERRED
MRG MASTERCARD STANDARD PREPAID
MRH MASTERCARD UNKNOWN PRODUCT
MRJ PREPAID MASTERCARD GOLD CARD
MRK PREPAID MASTERCARD PUBLIC SECTOR COMMERCIAL CARD
MRL MASTERCARD PREPAID BUSINESS PREFERRED
MRO MASTERCARD REWARDS ONLY
MRP STANDARD RETAILER CENTRIC PAYMENTS
MRW MASTERCARD CREDIT BUSINESS CARD PREPAID
MSA PREPAID MAESTRO PAYROLL CARD
MSB MAESTRO SMALL BUSINESS CARD
MSF PREPAID MAESTRO GIFT CARD
MSG PREPAID MAESTRO CONSUMER RELOADABLE CARD
MSI MAESTRO
MSJ PREPAID MAESTRO GOLD
MSM PREPAID MAESTRO CONSUMER PROMOTION CARD
MSN PREPAID MAESTRO INSURANCE CARD
MSO PREPAID MAESTRO OTHER CARD
MSQ RESERVED FOR FUTURE USE
MSR PREPAID MAESTRO TRAVEL CARD
MST PREPAID MAESTRO TEEN CARD
MSV PREPAID MAESTRO GOVERNMENT BENEFIT CARD
MSW PREPAID MAESTRO CORPORATE CARD
MSX PREPAID MAESTRO FLEX BENEFIT CARD
MSY PREPAID MAESTRO EMPLOYEE INSENTIVE CARD
MSZ PREPAID MAESTRO EMERGENCY ASSISTANCE CARD
MTP MASTERCARD PLATINUM PREPAID TRAVEL CARD
MUW WORLD DOMESTIC AFFLUENT
MWB WORLD MASTERCARD FOR BUSINESS
MWD WORLD DEFERRED
MWE MASTERCARD WORLD ELITE
MWF MASTERCARD HUMANITARIAN PREPAID
MWO MASTERCARD CORPORATE WORLD
MWR WORLD RETAILER CENTRIC PAYMENTS
OLB MAESTRO SMALL BUSINESS DELAYED DEBIT
OLG MAESTRO GOLD DELAYED DEBIT
OLP MAESTRO PLATINUM DELAYED DEBIT
OLS MAESTRO-DELAYED DEBIT
OLW MAESTRO WORLD DELAYED DEBIT
PVA PRIVATE LABEL A
PVB PRIVATE LABEL B
PVC PRIVATE LABEL C
PVD PRIVATE LABEL D
PVE PRIVATE LABEL E
PVF PRIVATE LABEL F
PVG PRIVATE LABEL G
PVH PRIVATE LABEL H
PVI PRIVATE LABEL I
PVJ PRIVATE LABEL J
PVL PRIVATE LABEL CARD
SAG GOLD MASTERCARD SALARY–IMMEDIATE DEBIT
SAL STANDARD MAESTRO SALARY
MASTERCARD Désignation
SAP PLATINUM MASTERCARD SALARY–IMMEDIATE DEBIT
SAS STANDARD MASTERCARD SALARY–IMMEDIATE DEBIT
SOS STANDARD MASTERCARD SOCIAL–IMMEDIATE DEBIT
SUR PREPAID MASTERCARD UNEMBOSSED (NON-US)
TBE MASTERCARD ELECTRONIC BUSINESS IMMEDIATE DEBIT
TCB MASTERCARD BUSINESS CARD-IMMEDIATE DEBIT
TCC MASTERCARD MIXED BIN-IMMEDIATE DEBIT
TCE MASTERCARD ELECTRONIC IMMEDIATE DEBIT
TCF MASTERCARD FLEET CARD IMMEDIATE DEBIT
TCG LD MASTERCARD CARD-IMMEDIATE DEBIT
TCO MASTERCARD CORPORATE IMMEDIATE DEBIT
TCP MASTERCARD PURCHASING CARD IMMEDIATE DEBIT
TCS MASTERCARD STANDARD CARD-IMMEDIATE DEBIT
TCW WORLD SIGNIA MASTERCARD CARD-IMMEDIATE DEBIT
TEB MASTERCARD EXECUTIVE BUSINESS CARD IMMEDIATE DEBIT
TEC MASTERCARD ELECTRONIC COMMERCIAL IMMEDIATE DEBIT
TEO MASTERCARD CORPORATE EXECUTIVE IMMEDIATE DEBITCARD
TIU TIU
TNF MASTERCARD PUBLIC SECTOR COMMERCIAL CARD IMMEDIATE DE
TNW MASTERCARD NEW WORLD-IMMEDIATE DEBIT
TPB PREFERRED BUSINESS CARD IMMEDIATE DEBIT
TPL PLATINUM MASTERCARD IMMEDIATE DEBIT
TWB WORLD MASTERCARD BLACK EDITION – IMMEDIATE DEBIT
WBE MASTERCARD UNKNOWN PRODUCT
WDR WORLD DEBIT MASTERCARD REWARDS
WMR WORLD MASTERCARD REWARDS