DP - Utilisateur du 3DSecure en mode direct

S’abonner





Introduction

Pré-requis bancaire et de connexion 3DSecure

Ce programme repose sur la mise en place d'un contrôle supplémentaire lors d'un achat en ligne : en complément des données bancaires, l'acheteur validera son paiement en saisissant une donnée secrète que lui aura fourni sa banque.
Ce dispositif s'accompagne d'une évolution réglementaire appelée "liability shift" ou "transfert de responsabilité" dont le principe est de faire supporter le risque d'impayé émis pour contestation du porteur à la banque du porteur et non plus au commerçant, si le porteur a validé son paiement en renseignant les données 3D Secure et que le commerçant a respecté les mesures de sécurité énoncées dans les conditions générales de vente de son contrat de commerce électronique souscrit auprès de sa banque.
La solution de paiement Payline a déroulé une certification 3DSecure avec les banques, ainsi qu'avec Visa et MCI.

Souscription 

Le commerçant doit souscrire auprès de sa banque à un contrat VADS.
Le commerçant informe Payline qu'il a souscrit à un contrat VADS avec 3DSecure, et le client souhaite souscrire à l'option 3DSecure.
L'équipe Payline, doit procéder à l'enregistrement du commerçant auprès de Visa et MCI, « un délai de 10 jours est nécessaire »
Dès confirmation des réseaux Visa et MCI, l'équipe Payline informe le client qu'il va procéder à l'activation du contrat VADS.
Dès activation du contrat VADS, tous les flux transitant sur ce contrat seront des transactions 3DS.

Pre-requis d'utilisation de la solution de paiement Payline

La solution 3D Secure en mode interface Direct assure le transfert sécurisé des données sensibles et traite les demandes d'authentification, d'autorisation. Un point d'intégration supplémentaire (verifyEnrollment) est nécessaire pour assurer l'authentification, en plus du point d'intégration réalisant l'autorisation et (doAuthorization) et récupérant le résultat de la transaction (gettransactionDetails).
Avant de pouvoir utiliser les « webservice » VerifyEnrolment et doAuthorization de Payline, les informations nécessaires à votre authentification et à la mise en œuvre du flux HTTPS sécurisé par SSL V3 sont requises. De plus, un point de vente et un contrat doivent être correctement configurés sur le centre d'administration Payline. Si vous n'avez pas de point de vente, ni de contrat configuré sur le centre d'administration, vous devez vous rendre sur le centre d'administration Payline : https://homologation-admin.payline.com.

Les informations suivantes sont les données indispensables à l'utilisation des « webservice » verifyEnrolment et doAuthorization :

  • L'identifiant commerçant : MerchantID
  • La clé d'accès au service Payline : Accesskey


Lorsque vous réalisez des appels aux services web Payline, l'identifiant de compte commerçant (Merchand ID) et la clé d'accès (Merchant Access Key) doivent être obligatoirement présentés pour réaliser une authentification http. Les appels web services ne seront pas acceptés s'ils ne sont pas correctement authentifiés.

La méthode d'authentification utilisée s'appelle http Basic Authentification. Si l'identifiant de compte commerçant est 1234567890 et votre clé d'accès est DJMESHXYou6LmjQFdH, vous devez encoder en base64 la valeur de
1234567890:DJMESHXYou6LmjQFdH. La chaîne obtenue est à ajouter à l'entête HTTP comme dans l'exemple ci-dessous :
Authorization : Basic MTIzNDU2Nzg5MdpESk1FU0hYWW91NkxtalFGZEg=
Ne communiquez jamais votre clé d'accès (Merchant Access Key) à une tierce personne.
Payline utilise votre clé d'accès pour vous identifier en tant qu'expéditeur de vos demandes de paiement.
Aucun interlocuteur chez Payline ne la connaît et ne vous demandera cette information.
L'utilisation d'iframe n'est pas compatible avec une utilisation optimale et sécuritaire de Payline.

Exemple

Dans l'entête du message HTTP, il est nécessaire de préciser la valeur du champ Authorization. Dans cet exemple, lavaleurduchamp'Authorization'estBasic MTExMTExMTExOkFGanU5WEhwbFF6dmFtZmZPNzJM.
Si l'on décode MTExMTExMTExOkFGanU5WEhwbFF6dmFtZmZPNzJM (qui est encodé en base64), nous obtenons la valeur suivante : 111111111:AFju9XHplQzvamffO72L (merchantID : AccessKey).L'ajout de la valeur authorization dans l'entête de la trame dépend de la technologie utilisée. Si vous utilisez un client web service, il est préférable d'opérer de la manière suivante :

 La variable login prend la valeur du merchantID 
 La variable password prend la valeur de l'accessKey
 //Construction de la requête verifyEnrolment avec les objets payment, card et orderRef
 $verifyEnrollmentRequest = array (
 'payment' => $this->payment($array['payment']),
 'card' => $this->card($array['card']),
 'orderRef' => $array['orderRef']
 );
 //Construction de l'entete du message public $header_soap;
 $this->header_soap = array();
 $this->header_soap['proxy_host'] = $this->proxy_host = PROXY_HOST;
 $this->header_soap['proxy_port'] = $this->proxy_port = PROXY_PORT;
 $this->header_soap['proxy_login'] = $this->proxy_login = PROXY_LOGIN;
 $this->header_soap['proxy_password'] = $this->proxy_password = PROXY_PASSWORD;
 $this->header_soap['login'] = $this->login = MERCHANT_ID;
 $this->header_soap['password'] = $this->password = ACCESS_KEY;
 $this->header_soap['style'] = SOAP_DOCUMENT;
 $this->header_soap['use'] = SOAP_LITERAL; 
 // Creation de l'instance SoapClient qui va permettre l'appel du WebService
 //Déclaration du endPoint ainsi que du header
 $client = new SoapClient('https://services.payline.com/V4/services/DirectPaymentAPI
 ', $this->header_soap); 
 //Appel du WebService
 $verifyEnrollmentResponse = $client->verifyEnrollment($verifyEnrollmentRequest); 


Si vous n'utilisez pas de client services web, il faut alors ajouter dans l'entête la valeur en brut comme dans l'impression écran : Authorization : Basic MTExMTExMTExOkFGanU5WEhwbFF6dmFtZmZPNzJM

3D-Secure en mode interface direct avec un paiement

Ce paragraphe présente les deux web services « verifyEnrollment et doAuthorization » permettant d'effectuer une transaction 3DSecure en utilisant le mode interface direct de la solution de paiement Payline.

Étape 1 : verifyEnrollment

Ce premier appel web service permet de vérifier l'éligibilité du porteur au dispositif 3DSecure, et donc de savoir si le porteur de la carte est bien enregistré auprès d'un Directory Server VISA ou Mastercard.
Voici un exemple de requête / réponse pour le web services verifyEnrollment :

verifyEnrollmentRequest

verifyEnrollmentResponse

<impl:verifyEnrollmentRequest>
<impl:card>
<obj:number>4970100000325734</obj:number>
<obj:type>CB</obj:type>
<obj:expirationDate>0912</obj:expirationDate>
<obj:cvx>123</obj:cvx>
</impl:card>
<impl:payment>
<obj:amount>4050</obj:amount>
<obj:currency>978</obj:currency>
<obj:action>100</obj:action>
<obj:mode>CPT</obj:mode>
<obj:contractNumber>CB3DS</obj:contractNumber>
</impl:payment>
<impl:orderRef>REF0923847</impl:orderRef>
</impl:verifyEnrollmentRequest>

<verifyEnrollmentResponse>
<result>
<code>03000</code>
<shortMessage>ACCEPTED</shortMessage>
<longMessage>Operation Successfull</longMessage>
</result> <actionUrl>

https://acs.modirum.com/mdpayacs/pareq

</actionUrl>
<actionMethod>POST</actionMethod>
<pareqFieldName>PaReq</pareqFieldName>
<pareqFieldValue>
eJxVkdtuwjAMhl+l4gGaA21ZkcnEOGhIYzAYQ9rNFFoPKq
ClScvh7ZeUMrbcxJ9jx/ZveN8oxP4co1KhgDFqLdfoJHGnw
XgrpM2QNQRMuzPMBRxR6SRLBXOpy4Hc0GSpaCPTQoCM
8qfRq2C86fkBkBphj2rUF+x6gFwRUrlH0e1NnRiPQCqCKCv
TQl0E9ymQG0CpdmJTFIc2IafTyV1n2XqH7rciGqUp/Zh3TM
TXKiuLJC9RA7EJQO59TUtraVPgnMRivPgMJkt/uNoO5Xzrl
5OBz5eDj5fZ8K0DxEZALAsUnJp2KQ8cGrY5a3tmosoPcm8
7E4PFzPGoa1utPXCwhbpX8Kh9+esBo7LCNLqIsPVg5rsR4
PmQpWgijKy/NsSoIzNGfd1n6D1bpaPCiNiklIdBJXXF9qfES
MY4DauvLACxGaTeIqmXbKx/y/8Ba4usNQ==
</pareqFieldValue>
<termUrlName>TermUrl</termUrlName>
<termUrlValue> </termUrlValue>
<mdFieldName>MD</mdFieldName>
<mdFieldValue>1Fz9nEnAZJNn8NvXEKDT</mdFieldValue>
</verifyEnrollmentResponse>


Une fois le verifyEnrollment effectué, l'authentification auprès du serveur ACS doit être effectuée. Pour cela, il est nécessaire d'envoyer les informations du verifyEnrollment sur le serveur d'authentification. Les informations attendues par le MPI sont le MD (pour le suivi de session) et le paReq (requête d'authentification).

Envoi des informations

Pour envoyer ces informations, il suffit de créer un formulaire HTML regroupant les champs MD et paReq et pointant vers le serveur d'authentification.
Exemple de formulaire HTML :

Formulaire HTML

<form name="downloadForm" action="https://acs.modirum.com/mdpayacs/pareq" method="POST">
<input type="hidden" name="TermUrl" value="http://127.0.0.1/3DSecure/receive_form.php">
PAREQ : <input type="text" name="PaReq">
<br />
MD : <input type="text" name="MD">
<br />
<input type="submit" name="submit" value="Submit">
</form>


Les informations devant être envoyées au serveur d'authentification à travers le formulaire ci-dessus :

  • MD : suivi de la session : valeur à récupérer dans la réponse du verifyEnrollment
  • PaReq : requête d'authentification : valeur à récupérer dans le verifyEnrollment
  • TermURL : adresse où le serveur d'authentification envoie la réponse de l'authentification. Concrètement cette adresse doit être capable de récupérer un formulaire envoyé en « POST » et contenant la réponse de l'authentification de l'utilisateur.

Envoi Réception des informations retournées lors de l'authentification :des informations

Le serveur d'authentification envoi son message sur l'URL renseignée dans le paramètre TermURL (envoyé dans le formulaire précédent). Dans le formulaire de réponse, deux champs doivent être récupérés pour poursuivre la transaction en mode 3DSecure :

  • Le champ MD : toujours le même champ permettant le suivi de la session
  • le champ PaRes : Payer Authentication Response : chaine de caractères cryptée contenant la réponse du serveur d'authentification. La valeur du champ PaRes va permettre de valider ou non la transaction comme une transaction 3DSecure.


Ces deux champs sont récupérés et permettent de compléter le doAuthorizationRequest en mode 3DSecure

Exemple de script (ici écrit en PHP) permettant de récupérer la réponse à l'authentification :

Script PHP : receive_form.php

<?php
$pares = $_POST['PaRes'];
$md = $_POST['MD'];

echo "MD : ".$md."<br />PARES : ".$pares;
?>


Remarque : ce script doit être placé sur un serveur web démarré et dans un dossier correspondant à l'adresse envoyé via le champ TermURL.
Exemple : si le serveur est en local il est tout à fait possible de mettre comme valeur :
TemrURL = http://127.0.0.1/3DSecure/receive_form.php

Étape 2 : doAuthorization avec les parametres 3DSecure

L'appel web service de la méthode doAuthorization permet d'effectuer directement la transaction avec les paramètres 3DSecure. Les paramètres renseignés : md / pares permettent de vérifier l'authentification et donc l'identité de l'utilisateur avant d'effectuer la transaction.

Si les paramètres sont corrects, la transaction est alors directement effectuée comme pour le doAuthorization classique.

doAuthorizationRequest

doAuthorizationResponse

<impl:doAuthorizationRequest>
<impl:payment>
<obj:amount>4150</obj:amount>
<obj:currency>978</obj:currency>
<obj:action>100</obj:action>
<obj:mode>CPT</obj:mode>
<obj:contractNumber>CB3DS</obj:contractNumber>
</impl:payment>
<impl:card>
<obj:number>4970105512345674</obj:number>
<obj:type>CB</obj:type>
<obj:expirationDate>0912</obj:expirationDate>
<obj:cvx>123</obj:cvx>
</impl:card>
<impl:order>
<obj:ref>REF023493</obj:ref>
<obj:country>FR</obj:country>
<obj:taxes>100</obj:taxes>
<obj:amount>1400</obj:amount>
<obj:currency>978</obj:currency>
<obj:date>28/01/2009 09:32</obj:date>
</impl:order>
<impl:buyer>
<obj:lastName>Dupond</obj:lastName>
<obj:firstName>Wilfried</obj:firstName>
<obj:email>wilfried.dupond@yahoo.fr</obj:email>
</impl:buyer>
<impl:authentication3DSecure>
<obj:md>xRtMifcy975D2EB3Zs8e</obj:md>
<obj:pares>
eJzFV2mTokoW/Ssd/T4a3ewKHZQq8LT8uWh9v0X8C9X
9dnSvZpwiZxtkQnR4/vcxQo0vM1a4/lI9R/BFjkEQryXL4
NU12Tb4MZVE1L1+PbVv/QJC+77/3xPfzNUWmgFEEZZ
k6R9fX0cle6U6nJcsH1bnKovDIruH7bTYMGmP5/2X9wl
2H14xxBT5b5PbbzFGVt8eCEo8aYT83umHcP/OLJ8Dvzb
YYYo8JPjlasmZySB7LnHxxTOXl6x8fSC1kadK0/86Mb7N
Dmzw2LW7JsXdOgDbKqGt0MWzXUzHgfeTiJHYyXt3Gvli
LP+N9W4D2XV0MrIQkUn+/iOLJrhOdX5t6je0MVLvrO6/
+UWyynOS9H7sYGAZ5U3lbmDcT3ZMMEcjDfJb20VXhTw
bWgWEOt2Ix04i1tmBAuFHx2aEgzgEtcaJzH8TLbsXbpj4r
…………
</obj:pares>
<obj:xid/>
<obj:eci/>
<obj:cavv/>
<obj:cavvAlgorithm/>
<obj:vadsResult/>
</impl:authentication3DSecure>
</impl:doAuthorizationRequest>

<doAuthorizationResponse>
<result>
<code>00000</code>
<shortMessage>ACCEPTED</shortMessage>
<longMessage>Transaction approved</longMessage>
</result>
<transaction>
<id>90217095220928</id>
<date>17/02/09 09:52</date>
<isDuplicated>0</isDuplicated>
<isPossibleFraud>0</isPossibleFraud>
<fraudResult/>
<explanation/>
<threeDSecure>Y</threeDSecure>
<score/>
</transaction>
<authorization>
<number>A55A</number>
<date>17/02/09 09:52</date>
</authorization>
</doAuthorizationResponse>


3D-Secure en mode interface direct avec la possibilité ou pas d'effectuer un paiement

Il est possible d'utiliser la fonction 3DSecure implémentée sur la solution de paiement Payline, sans utiliser la fonction standard de Payline « effectuer un paiement », donc vous utiliserez uniquement les deux premières étapes décrites ci-dessous.
En effet l'Etape 3, permet d'effectuer une transaction de paiement en vous appuyant de la solution de paiement 3DSecure.

Étape 1 : appel du web service verifyEnrollment

Comme expliqué précédemment, cette première action permet de vérifier l'enrôlement de la carte de l'utilisateur. Les éléments obligatoires de la méthode verifyEnrollment sont :

  • card : numéro de carte / type / date d'expiration / cvx
  • payment : montant / devise / action / mode / numéro contrat
  • orderRef


Voici des données de test permettant d'obtenir un résultat positif : 03000 – Operation successfull :

  • amount = 1000
  • currency = 978
  • action = 101
  • mode = CPT
  • orderRef = RefTest01
  • number = 4970100000000238
  • type = CB
  • expirationDate = 0610
  • CVx : 123


Exemple de requête verifyEnrollment :

verifyEnrollmentRequest

verifyEnrollmentResponse

<impl:verifyEnrollmentRequest>
<impl:card>
<obj:number>4970100000325734</obj:number>
<obj:type>CB</obj:type>
<obj:expirationDate>0610</obj:expirationDate>
<obj:cvx>123</obj:cvx>
</impl:card>
<impl:payment>
<obj:amount>1000</obj:amount>
<obj:currency>978</obj:currency>
<obj:action>100</obj:action>
<obj:mode>CPT</obj:mode>
<obj:contractNumber>CB3DS</obj:contractNumber>
</impl:payment>
<impl:orderRef>RefTest01</impl:orderRef>
</impl:verifyEnrollmentRequest>

<verifyEnrollmentResponse>
<result>
<code>03000</code>
<shortMessage>ACCEPTED</shortMessage>
<longMessage>Operation Successfull</longMessage>
</result> <actionUrl>

https://acs.modirum.com/mdpayacs/pareq

</actionUrl>
<actionMethod>POST</actionMethod>
<pareqFieldName>PaReq</pareqFieldName>
<pareqFieldValue>
eJxVkdtygjAQhl/F8QHcJAUBZ90Zj4MXbdHaXvSOC
TuVTkEM0OrU9ir7bfb4L253hnn+wro1TPjIdZ1+cC/Pxn3
lh0J4fcJksuED4TebOt+XJAdioBCuaHOM3qVlQ5jq
QCnnQ/fz1olTNc6hNFQWhnvxLysdqXbCOsWDcbM661X
aN77jvMYqefbqw4SoSRcrU6dpVyK4e0o59LOUBwG
dDdBrrDWevfQX8B2heclQ==
</pareqFieldValue>
<termUrlName>TermUrl</termUrlName>
<termUrlValue>

http://www.experian.fr

</termUrlValue>
<mdFieldName>MD</mdFieldName>
<mdFieldValue>8FPL0ihqQtuqr1GzmOCL</mdFieldValue>
</verifyEnrollmentResponse>



Dans la réponse du verifyEnrollment on distinguera deux parties d'éléments XML : l'élément result permet de récupérer la réponse concernant l'enrôlement ou non de la carte utilisée. Le résultat de la vérification est visible à travers les différents codes retour ainsi qu'avec les shortMessage et longMessage apportant un complément d'information au code retour. Le verifyEnrollment peut renvoyer les codes retours suivants :

  • 02101 - Internal Error - Internal Error
  • 02303 – Invalid Transaction – Invalid Contract Number
  • 02305 – Invalid Transaction - Invalid field format
  • 03000 - Operation Successfull – Operation Successfull
  • 03001- Operation Refused – Not Enrolled
  • 03002 - Operation Refused - Not participating
  • 03021 – Transaction Refused - Enrollment verification failed
  • 09201 - Access Refused - You do not have permissions to make this API call


La deuxième partie dans la réponse du verifyEnrollment sont les éléments renvoyés par le Directory Server et permettant le suivi de la transaction à venir :

  • PAReq : Payer Authentication Request : suite de caractères regroupant la requête à envoyer au serveur d'authentification, permet d'identifier la carte et son le titulaire.
  • MD : Merchant Date : identifiant permettant d'identifier le commerçant et de simuler une session entre les requêtes d'enrôlement et d'authentification sur les serveurs Access Control Server (ACS) et Merchant Plug-in (ou MPI).
  • actionURL : URL indiquant où doivent être envoyées les informations permettant de vérifier l'authentification de l'utilisateur (voir ci-dessous).
  • actionMethod : méthode devant être utilisée pour envoyée les informations au serveur d'authentification (voir ci-dessous).



Pour chaque élément, on trouve le nom du champ et la valeur du champ.
Exemple : paresFieldName / paresFieldValue.

Étape 1 : appel du web service verifyEnrollment

Suivi technique des appels « webservice » :




Détail du verifyEnrollment




Étape 2 : authentification

Une fois le verifyEnrollment effectué, l'authentification auprès du serveur ACS doit être effectuée. Pour cela, il est nécessaire d'envoyer les informations du verifyEnrollment sur le serveur d'authentification. Les informations attendues par le MPI sont le MD (pour le suivi de session) et le paReq (requête d'authentification).

Envoi des informations

Pour envoyer ces informations, il suffit de créer un formulaire HTML regroupant les champs MD et paReq et pointant vers le serveur d'authentification.
Exemple de formulaire HTML :

Formulaire HTML

<form name="downloadForm" action="https://acs.modirum.com/mdpayacs/pareq" method="POST">
<input type="hidden" name="TermUrl" value="http://127.0.0.1/3DSecure/receive_form.php">
PAREQ : <input type="text" name="PaReq">
<br />
MD : <input type="text" name="MD">
<br />
<input type="submit" name="submit" value="Submit">
</form>



Les informations devant être envoyées au serveur d'authentification à travers le formulaire ci-dessus :

  • MD : suivi de la session : valeur à récupérer dans la réponse du verifyEnrollment
  • PaReq : requête d'authentification : valeur à récupérer dans le verifyEnrollment
  • TermURL : adresse où le serveur d'authentification envoie la réponse de l'authentification. Concrètement cette adresse doit être capable de récupérer un formulaire envoyé en « POST » et contenant la réponse de l'authentification de l'utilisateur.

Réception des informations retournées lors de l'authentification


Le serveur d'authentification envoi son message sur l'URL renseignée dans le paramètre TermURL (envoyé dans le formulaire précédent). Dans le formulaire de réponse, deux champs doivent être récupérés pour poursuivre la transaction en mode 3DSecure :
le champ MD : toujours le même champ permettant le suivi de la session
le champ PaRes : Payer Authentication Response : chaine de caractères cryptée contenant la réponse du serveur d'authentification. La valeur du champ PaRes va permettre de valider ou non la transaction comme une transaction 3DSecure.
Ces deux champs sont récupérés et permettent de compléter le doAuthorizationRequest en mode 3DSecure
(Voir Etape 3 : doAuthorization).

Exemple de script (ici écrit en PHP) permettant de récupérer la réponse à l'authentification :

Script PHP : receive_form.php

<?php
$pares = $_POST['PaRes'];
$md = $_POST['MD'];

echo "MD : ".$md."<br />PARES : ".$pares;
?>


Remarque : ce script doit être placé sur un serveur web démarré et dans un dossier correspondant à l'adresse envoyé via le champ TermURL.
Exemple : si le serveur est en local il est tout à fait possible de mettre comme valeur :
TemrURL = http://127.0.0.1/3DSecure/receive_form.php


Visualisation sur le centre administration



Étape 3 : doAutorization

La dernière étape dans le cadre d'une transaction 3DSecure via l'interface Payline DIRECT est l'envoi d'une requête doAuthorization. Comme dans le cadre d'une transaction classique, le doAuthorization contiendra les champs obligatoires suivant :

  • payment : informations sur la transaction : montant, devise, contrat, etc.
  • card : informations sur la carte de paiement : numéro, type, date d'expiration, etc.
  • order : information sur la commande : référence, montant, pays, etc.
    Et donc dans le cadre d'un paiement 3DSecure, la requête doAuthorization devra être complétée avec les informations renvoyées par le serveur d'authentification :
  • MD : suivi de session 3DSecure.
  • PaRes : résultat de l'authentification.


Ces deux éléments seront placés dans l'élément : <authentication3DSecure> comme indiqué dans l'exemple doAuthorization suivant :


doAuthorizationRequest

doAuthorizationResponse

<doAuthorizationRequest>
<payment>
<amount>1000</amount>
<currency>978</currency>
<action>100</action>
<mode>CPT</mode>
<contractNumber>CB3DS</contractNumber>
</payment>
<card>
<number>4970100000325734</number>
<type>CB</type>
<expirationDate>1212</expirationDate>
<cvx>123</cvx>
</card>
<order>
<ref>REF0989</ref>
<amount>1000</amount>
<currency>978</currency>
<date>24/02/2008 09:28</date>
</order>
<authentication3DSecure>
<md>2vS6uabMBUzx9LrEDS9c</md>
<pares>eJzFV2mvosoW/Sudvh9NN7NKhzYpRlEL
avfp887t93Lz8gYSYtV216q9qbV2VTFmcosi3ojC+y1
i888rZg/0qH6aCopcLGiCnoxtdKvTS7nCvqJfcQb52Z
pjJMYgP7pMEd1kfkUvF3OKQV4dBvk1an9/tOoplj49
RLN1UHfmeQhwdz9JtohaMojeI4+QkjvmHUN4pmk
CntW1....................

</pares>
</authentication3DSecure>
</doAuthorizationRequest>

<doAuthorizationResponse>
<result>
<code>00000</code>
<shortMessage>ACCEPTED</shortMessage>
<longMessage>Transaction approved</longMessage>
</result>
<transaction>
<id>90224141650893</id>
<date>24/02/09 14:16</date>
<isDuplicated>0</isDuplicated>
<isPossibleFraud>0</isPossibleFraud>
<fraudResult/>
<explanation/>
<threeDSecure>Y</threeDSecure>
<score xsi:nil="true" />
</transaction>
<authorization>
<number>A55A</number>
<date>24/02/09 14:16</date>
</authorization>
</doAuthorizationResponse>

Visualisation du centre d'administration


Le résultat de la transaction 3DSecure est alors visible dans le centre d'administration Payline : sur les résultats d'une recherche et dans le détail de la transaction onglet 3DSecure :

Ecran recherche des transactions :



Détail de la transaction 3DSecure




Annexe

Paramétrage de SOAP UI

Téléchargement de SOAP UI :
SOAP UI est une application permettant de faire des appels web services. Dans l'environnement Payline, ce client web services va vous permettre d'envoyer des requêtes à l'API Payline de façon à créer des transactions de test, vérifier le format des réponses de l'API ou tout simplement vérifier le format des informations que vous envoyées à Payline.
SOAP UI 2.5 est disponible en version gratuite ou en version professionnelle, vous pouvez le télécharger sur le site http://www.soapui.org/


Ajout d'un projet Payline : dans SOAP UI, créer un nouveau projet : File / New SOAP UI Project avec les propriétés suivantes :


La création du projet génère l'ensemble des APIs Payline : DirectPaymentAPI, ExtendedAPI, WebPaymentAPI, MassPaymentAPI, ainsi que les services de chaque API : exemple : doAuthorization, doCapture, doWebPayment, etc.
Pour chaque service, une requête, nommée « Request 1 », a automatiquement été générée.
Configuration des requêtes SOAP : chaque requête générée pour les services Payline doit être configurées de façon à atteindre l'application Payline.
Configuration du « endpoint » : ouvrir une requête, par exemple le doAuthorization, en effectuant un double clic sur « Request 1 ».
Puis dans la barre d'adresse cliquer sur « Add new end point » (voir screenshot ci-dessous) et ajouter l'adresse : https://homologation.payline.com/V4/services/DirectPaymentAPI


Effectuer la même opération pour les autres API en ajoutant les « end point » suivant :


Configuration de l'autorisation commerçant : pour pouvoir communiquer avec l'API Payline, une autorisation est obligatoire. Cette autorisation permet de vous identifier avec votre compte commerçant sur l'API Payline.
Pour cela, cliquez sur Auth (en bas à droite dans la fenêtre de la requête) et entrer vos informations de connexions à l'environnement Payline :

  • Username : votre identifiant commerçant
  • Password : votre clé d'accès

Configuration de la requête : compléter les champs de la requête en remplaçant les « ? » par les vos valeurs : numéro de contrat, montant, informations de la carte bancaire, informations sur la commande, etc.
Lancer la requête : pour cela cliquez sur Play (la flèche verte) en haut à gauche dans la fenêtre de la requête SOAP. La réponse de l'API Payline s'affiche alors dans le cadre de droite.

Schéma récapitulatif : paiement 3DSecure

Données entrées / sorties du service web verifyEnrollment




Élément

Description

Requis

Type

Exemple

Conditions

version

Version des web services Payline

oui

N2

A valoriser avec la dernière version : voir le tableau des versions.


card Information sur la carte oui Object card Voir les éléments ci-dessous
payment Information sur le paiement oui Object payment Voir les éléments ci-dessous Le montant peut être 0 si la carte est 3DS.
orderRef

L’identifiant de la commande chez le commerçant

oui AN50 12345678
mdFieldValue Valeur du merchantData (Cette valeur doit être unique). L’utilisation de champ n’est pas recommandée. non AN20 Ex : OS0hZDbJH75NiDrAo0yo
userAgent

UserAgent du terminal de paiement. Pour connaitre l’origine de la demande de paiement, il sera transmis lors de la demande 3DS au MPI.

non AN255
Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko

walletId L’identifiant du portefeuille de l’acheteur. La balise version doit être remplie avec la valeur égale ou supérieure à 10. non AN50

walletCardInd L’index de la carte de l’acheteur enregistré dans le portefeuille. La balise version doit être remplie avec la valeur égale ou supérieure à 10. non AN5

generateVirtualCvx Demande de génération d’un CVV virtuel avec le service VerifyEnrollment non Boolean True Version 16 ou supérieure
merchantName Nom affiché sur la page d'authentification de l'ACS non AN25 Votre nom d'enseigne Version 16 ou supérieure

Les références

Object card


Élément

Description

Requis

Format

Exemple

Condition

encryptionKeyId

Identifiant de la clé RSA Payline de chiffrement. Ne pas tenir compte de ce champ.

non

N4



encryptedData

Les données carte chiffrées. Ne pas tenir compte de ce champ.

non

AN400



number

Numéro de carte masqué, conforme à PCI DSS

non

 AN19

4970102121041646 en entrée de notre API.
En sortie, le numéro est masqué : 497010XXXXXX1646

Si le champ token est renseigné, le champ number doit être vide.

type

Type de la carte : CB, VISA, MASTERCARD, MAESTRO, AMEX.

oui

AN

CB


expirationDate

Date d’expiration de la carte

non N4

0311


cvx

Cryptogramme visuel au dos de la carte de crédit

non

N10



ownerBirthdayDate

Date d’anniversaire du porteur

non

N6

Format à respecter :ddmmyy


password

Mot de passe crypté

non

AN16



cardPresent

Ce service est utilisée uniquement si vous faites du Mail Order ou Telephone Order ou alors dans le cas où l’internaute est présent physiquement

non

N1

0 ou 1 (présent)


cardholder

Titulaire de la carte

non

AN20

Pierre Dupont


token

Alias du numéro de carte.

La version doit être supérieure ou égale à 3

non

AN19

1111gPNzHtyu4444

Vous devez utilisez l’option de token PAN et la version doit être supérieure ou égale à 3.

paymentData Object en entrée du service pour véhiculer les données du moyen de paiement ApplePay non Object PaymentData


Object payment


Élément

Description

Prérequis

Format

Exemple

Condition

amount

Informations transmises lors de l’appel de la fonction doWebPayment

oui

N12

100

La valeur 100 correspond à 1 €

currency

Devise du paiement

oui

N3

978


action

Code action

oui

N3

100

code 100 et 101 = paiement
code 421 = remboursement

voir la table

mode

Mode du paiement

oui

AN3

CPT

voir la table

contractNumber

Numéro de contrat

oui

AN50

1234567

doWebPayment (défini le point de vente), doCapture/doRefund (contractNumber retourné par le getPaymentDetails/getWebPaymentDetails).

differedActionDate

Date à laquelle le paiement sera réalisé

non

AN8

07/04/2016

Format : dd/mm/yy

Si le champ mode = DIF, alors la date DifferedActionDate est obligatoire sinon ce champ doit être vide.

method

Nom de l’émetteur de la carte

non

AN20

CB

version 10 ou supérieure

Ex : CB, PAYSAFECARD

softDescriptor

Information affichée sur le relevé de compte de l'acheteur, limite avec certains moyens de paiement. Cette information sera affichée sur le ticket de paiement.
Les caractères spéciaux (non A..Z et 1..9) sont spécifiques à chaque acquéreur/moyen de paiement.

non AN64 www.boutique.fr version 13 ou supérieure
cardBrand

Indique la marque utilisée pour l'opération, voir les valeurs.
Il n’est pris en compte que si le moyen de paiement permet le choix de la marque.

non AN 15

version 15 ou supérieure

voir table

registrationToken

Jeton utilisé en réponse dans les services.
Il permet au partenaire de retourner un jeton afin d'identifier un consommateur et retrouve ces données lors d'une demande de paiement.
non AN
version 18 ou supérieure RELEASE 4.53

Réponse en retour

Élément

Description

Requis

Type

Exemple

Condition
result Informations sur le résultat de la vérification d'enrollement :

00000 : Transaction approved
01xxx : Transaction refused
021xx : Internal Error

oui Object result

Voir les éléments ci-dessous


actionUrl

URL de l’ACS

non

AN255

actionMethod

Méthode d’envoi .Retourne une valeur POST ou GET. Post par défaut.

non

AN255

pareqFieldName

Nom du champ “Pareq à Poster

non

AN5

pareqFieldValue

Contient la Valeur du champ PaReq

non

AN400

termurlFieldName

Contient  le nom du champ  "TermUrl" à Poster

non

AN50

termurlFieldValue

Contient  la valeur du champ  "TermUrl".

non

AN255

mdFieldName

Contient  le nom du champ  "MD field"

non AN50

mdFieldValue

Contient  la valeur du champ  "MD field" à Poster

non

AN20

 


mpiResult

Renvoie un indicateur concernant le résultat de l’enrôlement

Y = Succès lors de l’enrôlement
N = Echec lors de l’enrôlement
U = enrôlement indisponible

non

AN1  

authentication3DSecure

Informations sur l'autentification 3D-Secure

non

Object authentication3DSecure

Voir les éléments ci-dessous


virtualCvx CVV virtuel calculé par Payline non AN

Version 16 ou supérieure.

Si la version >=16,  si un CVV est donné en entrée et qu’une demande de virtualisation (card.generateVirtualCvx)  est demandée alors la valeur du CVV virtuel est retournée.

token TokenPAN de Payline non AN19
Si la version >=16,  si un PAN et d’une date d’expiration sont donnés en entrée alors un TokenPAN est généré. Dans tous les autres cas, aucun TokenPAN n’est généré.

Les éléments de références

Object result

Élément

Description

Format

Exemple

code

Le code de retour du web service :

Opération acceptée : 00000, 02400, 02500, 02501, 02517, 02520 ,02616, 03000, 04000.

Autre code : Transaction non acceptée

N5

Voir le détail des Codes retour Payline

shortMessage

Message court du résultat de la transaction

AN50


longMessage

Message du résultat de la transaction

AN255


partnerCode Code retour issu du partenaire (moyen de paiement) AN50 à partir de la version 14
partnerCodeLabel Libellé du partenaire AN255 à partir de la version 14


Object authentication3DSecure

Élément

Description

Requis

Type

Exemple

Condition

md

Renvoyé en POST par l’ACS

non

AN20

 

 

pares

Renvoyé en POST par l’ACS

non

AN

 

 

xid

Identifiant de transaction Unique

non

AN20

 

 

eci

Electronic Commerce Indicator. A passer dans l’autorisation

non

AN2

 

 

cavv

Cardholder Authentication Verification Value déterminé par l’ACS.

non

AN28

 

 

cavvAlgorithm

Entier positif précisant l’algorithme utilisé pour la génération CAVV. Les valeurs possibles actuelles sont:

0 = HMAC (SET™ TransStain),
1 = CVV,
2 = CVV avec ATN,
3 = MasterCard AAV

non

N1

 

 

vadsResult

Résumé des opérations 3DSecure en hexadécimal. Ce champ n'est plus utilisé.

non

AN8

 

 
typeSecurisation Champ utilisé à titre d'information pour l'authentification. Ce champ n'est plus utilisé. non AN10 20 :  VADS
sinon 9 : VAD
 
PaResStatus

Pour utiliser un MPI non Payline, alors il faut renseigner ce champ.

Les valeurs sont :
Y : authentification réussie
N : authentification erronée
A : prévue de passage par l'ACS
U : appel à l'ACS effectué
vide : time out sur l'ACS

non AN1    
VeResStatus

Pour utiliser un MPI non Payline, alors il faut renseigner ce champ.

Les valeurs sont : Y/N/U ou vide

non AN1    






Élément

Description

Requis

Type

Exemple

Conditions

version

Version des web services Payline

oui

N2

A valoriser avec la dernière version : voir le tableau des versions.


card Information sur la carte oui Object card Voir les éléments ci-dessous
payment Information sur le paiement oui Object payment Voir les éléments ci-dessous Le montant peut être 0 si la carte est 3DS.
orderRef

L’identifiant de la commande chez le commerçant

oui AN50 12345678
mdFieldValue Valeur du merchantData (Cette valeur doit être unique). L’utilisation de champ n’est pas recommandée. non AN20 Ex : OS0hZDbJH75NiDrAo0yo
userAgent

UserAgent du terminal de paiement. Pour connaitre l’origine de la demande de paiement, il sera transmis lors de la demande 3DS au MPI.

non AN255
Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko

walletId L’identifiant du portefeuille de l’acheteur. La balise version doit être remplie avec la valeur égale ou supérieure à 10. non AN50

walletCardInd L’index de la carte de l’acheteur enregistré dans le portefeuille. La balise version doit être remplie avec la valeur égale ou supérieure à 10. non AN5

generateVirtualCvx Demande de génération d’un CVV virtuel avec le service VerifyEnrollment non Boolean True Version 16 ou supérieure
merchantName Nom affiché sur la page d'authentification de l'ACS non AN25 Votre nom d'enseigne Version 16 ou supérieure

Les références

Object card


Élément

Description

Requis

Format

Exemple

Condition

encryptionKeyId

Identifiant de la clé RSA Payline de chiffrement. Ne pas tenir compte de ce champ.

non

N4



encryptedData

Les données carte chiffrées. Ne pas tenir compte de ce champ.

non

AN400



number

Numéro de carte masqué, conforme à PCI DSS

non

 AN19

4970102121041646 en entrée de notre API.
En sortie, le numéro est masqué : 497010XXXXXX1646

Si le champ token est renseigné, le champ number doit être vide.

type

Type de la carte : CB, VISA, MASTERCARD, MAESTRO, AMEX.

oui

AN

CB


expirationDate

Date d’expiration de la carte

non N4

0311


cvx

Cryptogramme visuel au dos de la carte de crédit

non

N10



ownerBirthdayDate

Date d’anniversaire du porteur

non

N6

Format à respecter :ddmmyy


password

Mot de passe crypté

non

AN16



cardPresent

Ce service est utilisée uniquement si vous faites du Mail Order ou Telephone Order ou alors dans le cas où l’internaute est présent physiquement

non

N1

0 ou 1 (présent)


cardholder

Titulaire de la carte

non

AN20

Pierre Dupont


token

Alias du numéro de carte.

La version doit être supérieure ou égale à 3

non

AN19

1111gPNzHtyu4444

Vous devez utilisez l’option de token PAN et la version doit être supérieure ou égale à 3.

paymentData Object en entrée du service pour véhiculer les données du moyen de paiement ApplePay non Object PaymentData


Object payment


Élément

Description

Prérequis

Format

Exemple

Condition

amount

Informations transmises lors de l’appel de la fonction doWebPayment

oui

N12

100

La valeur 100 correspond à 1 €

currency

Devise du paiement

oui

N3

978


action

Code action

oui

N3

100

code 100 et 101 = paiement
code 421 = remboursement

voir la table

mode

Mode du paiement

oui

AN3

CPT

voir la table

contractNumber

Numéro de contrat

oui

AN50

1234567

doWebPayment (défini le point de vente), doCapture/doRefund (contractNumber retourné par le getPaymentDetails/getWebPaymentDetails).

differedActionDate

Date à laquelle le paiement sera réalisé

non

AN8

07/04/2016

Format : dd/mm/yy

Si le champ mode = DIF, alors la date DifferedActionDate est obligatoire sinon ce champ doit être vide.

method

Nom de l’émetteur de la carte

non

AN20

CB

version 10 ou supérieure

Ex : CB, PAYSAFECARD

softDescriptor

Information affichée sur le relevé de compte de l'acheteur, limite avec certains moyens de paiement. Cette information sera affichée sur le ticket de paiement.
Les caractères spéciaux (non A..Z et 1..9) sont spécifiques à chaque acquéreur/moyen de paiement.

non AN64 www.boutique.fr version 13 ou supérieure
cardBrand

Indique la marque utilisée pour l'opération, voir les valeurs.
Il n’est pris en compte que si le moyen de paiement permet le choix de la marque.

non AN 15

version 15 ou supérieure

voir table

registrationToken

Jeton utilisé en réponse dans les services.
Il permet au partenaire de retourner un jeton afin d'identifier un consommateur et retrouve ces données lors d'une demande de paiement.
non AN
version 18 ou supérieure RELEASE 4.53

Réponse en retour

Élément

Description

Requis

Type

Exemple

Condition
result Informations sur le résultat de la vérification d'enrollement :

00000 : Transaction approved
01xxx : Transaction refused
021xx : Internal Error

oui Object result

Voir les éléments ci-dessous


actionUrl

URL de l’ACS

non

AN255

actionMethod

Méthode d’envoi .Retourne une valeur POST ou GET. Post par défaut.

non

AN255

pareqFieldName

Nom du champ “Pareq à Poster

non

AN5

pareqFieldValue

Contient la Valeur du champ PaReq

non

AN400

termurlFieldName

Contient  le nom du champ  "TermUrl" à Poster

non

AN50

termurlFieldValue

Contient  la valeur du champ  "TermUrl".

non

AN255

mdFieldName

Contient  le nom du champ  "MD field"

non AN50

mdFieldValue

Contient  la valeur du champ  "MD field" à Poster

non

AN20

 


mpiResult

Renvoie un indicateur concernant le résultat de l’enrôlement

Y = Succès lors de l’enrôlement
N = Echec lors de l’enrôlement
U = enrôlement indisponible

non

AN1  

authentication3DSecure

Informations sur l'autentification 3D-Secure

non

Object authentication3DSecure

Voir les éléments ci-dessous


virtualCvx CVV virtuel calculé par Payline non AN

Version 16 ou supérieure.

Si la version >=16,  si un CVV est donné en entrée et qu’une demande de virtualisation (card.generateVirtualCvx)  est demandée alors la valeur du CVV virtuel est retournée.

token TokenPAN de Payline non AN19
Si la version >=16,  si un PAN et d’une date d’expiration sont donnés en entrée alors un TokenPAN est généré. Dans tous les autres cas, aucun TokenPAN n’est généré.

Les éléments de références

Object result

Élément

Description

Format

Exemple

code

Le code de retour du web service :

Opération acceptée : 00000, 02400, 02500, 02501, 02517, 02520 ,02616, 03000, 04000.

Autre code : Transaction non acceptée

N5

Voir le détail des Codes retour Payline

shortMessage

Message court du résultat de la transaction

AN50


longMessage

Message du résultat de la transaction

AN255


partnerCode Code retour issu du partenaire (moyen de paiement) AN50 à partir de la version 14
partnerCodeLabel Libellé du partenaire AN255 à partir de la version 14


Object authentication3DSecure

Élément

Description

Requis

Type

Exemple

Condition

md

Renvoyé en POST par l’ACS

non

AN20

 

 

pares

Renvoyé en POST par l’ACS

non

AN

 

 

xid

Identifiant de transaction Unique

non

AN20

 

 

eci

Electronic Commerce Indicator. A passer dans l’autorisation

non

AN2

 

 

cavv

Cardholder Authentication Verification Value déterminé par l’ACS.

non

AN28

 

 

cavvAlgorithm

Entier positif précisant l’algorithme utilisé pour la génération CAVV. Les valeurs possibles actuelles sont:

0 = HMAC (SET™ TransStain),
1 = CVV,
2 = CVV avec ATN,
3 = MasterCard AAV

non

N1

 

 

vadsResult

Résumé des opérations 3DSecure en hexadécimal. Ce champ n'est plus utilisé.

non

AN8

 

 
typeSecurisation Champ utilisé à titre d'information pour l'authentification. Ce champ n'est plus utilisé. non AN10 20 :  VADS
sinon 9 : VAD
 
PaResStatus

Pour utiliser un MPI non Payline, alors il faut renseigner ce champ.

Les valeurs sont :
Y : authentification réussie
N : authentification erronée
A : prévue de passage par l'ACS
U : appel à l'ACS effectué
vide : time out sur l'ACS

non AN1    
VeResStatus

Pour utiliser un MPI non Payline, alors il faut renseigner ce champ.

Les valeurs sont : Y/N/U ou vide

non AN1    





Données entrées / sorties du serviceweb doAutorization

La fonction « do Authorization» réalise une demande d'autorisation de débit au serveur d'autorisation de votre établissement bancaire.
Requête à envoyer
La requête « doAuthorizationRequest » doit avoir la structure suivante :

  • REQUEST
    • PAYMENT
    • CARD
    • ORDER
      • ORDER_DETAILS (occurrences 0 – 100)
    • BUYER
    • AUTHENTICATION3DSECURE
    • PRIVATE_DATA_LIST
      • PRIVATE_DATA (occurrences 0 – 100)



Élément

Description

Requis

Type

Exemple

version

Version des web services Payline

oui

N2

A valoriser avec la dernière version : voir le tableau des versions.

payment

Information sur le paiement

oui

Object payment

Voir les éléments ci-dessous

bankAccountData

Information sur le compte bancaire

oui

Object bankAccountData

Voir les éléments ci-dessous

card

Information sur la carte

oui

Object card

Voir les éléments ci-dessous

order

Information sur la commande

oui

Object order

12345678
Voir les éléments ci-dessous

buyer

Information sur l’acheteur

non

Object buyer

Voir les éléments ci-dessous

owner Information sur le titulaire non Object owner Voir les éléments ci-dessous

privateDataList

Information sur les informations personnelles

non

Object PrivateDataList

Voir les éléments ci-dessous

authentication3DSecure

Information sur les opérations 3DSecure

non

Object authentication3DSecure

Voir les éléments ci-dessous

media

Détection du média utilisé lors du paiement.

Les valeurs possibles de cette balise sont :

-       Computer
-       Mobile
-       Tablet
-       TV
-       Console
-       Undefined

non

AN25

Mobile

subMerchant Information du Payment Facilitator non object subMerchant voir les éléments ci-dessous

 

Les éléments de référence

Object payment


Élément

Description

Prérequis

Format

Exemple

Condition

amount

Informations transmises lors de l’appel de la fonction doWebPayment

oui

N12

100

La valeur 100 correspond à 1 €

currency

Devise du paiement

oui

N3

978


action

Code action

oui

N3

100

code 100 et 101 = paiement
code 421 = remboursement

voir la table

mode

Mode du paiement

oui

AN3

CPT

voir la table

contractNumber

Numéro de contrat

oui

AN50

1234567

doWebPayment (défini le point de vente), doCapture/doRefund (contractNumber retourné par le getPaymentDetails/getWebPaymentDetails).

differedActionDate

Date à laquelle le paiement sera réalisé

non

AN8

07/04/2016

Format : dd/mm/yy

Si le champ mode = DIF, alors la date DifferedActionDate est obligatoire sinon ce champ doit être vide.

method

Nom de l’émetteur de la carte

non

AN20

CB

version 10 ou supérieure

Ex : CB, PAYSAFECARD

softDescriptor

Information affichée sur le relevé de compte de l'acheteur, limite avec certains moyens de paiement. Cette information sera affichée sur le ticket de paiement.
Les caractères spéciaux (non A..Z et 1..9) sont spécifiques à chaque acquéreur/moyen de paiement.

non AN64 www.boutique.fr version 13 ou supérieure
cardBrand

Indique la marque utilisée pour l'opération, voir les valeurs.
Il n’est pris en compte que si le moyen de paiement permet le choix de la marque.

non AN 15

version 15 ou supérieure

voir table

registrationToken

Jeton utilisé en réponse dans les services.
Il permet au partenaire de retourner un jeton afin d'identifier un consommateur et retrouve ces données lors d'une demande de paiement.
non AN
version 18 ou supérieure RELEASE 4.53

 

Object  bankAccountData

Élément

Description

Requis

Format

Exemple

countryCode Code du pays non AN  

bankCode

Code du pays du numéro de compte

non

AN10

 
accountNumber

Numéro de la banque

non

AN

 

key IBAN du compte non AN  

 

Utilisé uniquement pour ELV

 

 

Object card


Élément

Description

Requis

Format

Exemple

Condition

encryptionKeyId

Identifiant de la clé RSA Payline de chiffrement. Ne pas tenir compte de ce champ.

non

N4



encryptedData

Les données carte chiffrées. Ne pas tenir compte de ce champ.

non

AN400



number

Numéro de carte masqué, conforme à PCI DSS

non

 AN19

4970102121041646 en entrée de notre API.
En sortie, le numéro est masqué : 497010XXXXXX1646

Si le champ token est renseigné, le champ number doit être vide.

type

Type de la carte : CB, VISA, MASTERCARD, MAESTRO, AMEX.

oui

AN

CB


expirationDate

Date d’expiration de la carte

non N4

0311


cvx

Cryptogramme visuel au dos de la carte de crédit

non

N10



ownerBirthdayDate

Date d’anniversaire du porteur

non

N6

Format à respecter :ddmmyy


password

Mot de passe crypté

non

AN16



cardPresent

Ce service est utilisée uniquement si vous faites du Mail Order ou Telephone Order ou alors dans le cas où l’internaute est présent physiquement

non

N1

0 ou 1 (présent)


cardholder

Titulaire de la carte

non

AN20

Pierre Dupont


token

Alias du numéro de carte.

La version doit être supérieure ou égale à 3

non

AN19

1111gPNzHtyu4444

Vous devez utilisez l’option de token PAN et la version doit être supérieure ou égale à 3.

paymentData Object en entrée du service pour véhiculer les données du moyen de paiement ApplePay non Object PaymentData

 

Object order


Élément

Description

Requis

Type

Exemple

Condition

ref

Référence de la commande. Cette référence doit être unique car elle est utilisée pour le contrôle dans demande en double.
Le caractères \ est interdit.

Oui

AN50

12345678


origin

Origine de la commande. Si vous avez souscrit à l’option Mail Order et Téléphone Order alors les valeurs sont MO ou TO.

Non

AN50

SVI_#12


country

Code du pays dans lequel la commande a été effectuée, voir la liste.

Oui

AN3

FR


taxes

Le montant des taxes sur la commande dans la plus petite unité de la devise.
Un montant de 1 € correspond à 100

Non

N12

100


amount

Le montant de la commande dans la plus petite unité de la devise. Généralement le même montant que payment.amount.
Un montant de 60 € correspond à

Oui

N12

6000


currency

Le code ISO de la devise du paiement :

978 : euros
840 : dollars US

cf. liste complète en annexe tableau « Liste des devises »

Oui

N3

978

date

La date de la commande chez le commerçant :

Format à respecter : dd/mm/yyyy HH24:MI

Oui

AN16

07/04/2016 11:00

details

Informations sur les articles commandés

Non

Object OrderDetails



deliveryTime

Délai de livraison :

1 = express
2 = standard

Non

N

1


deliveryMode

Mode de livraison :

1 : retrait de la marchandise chez le marchand
2 : Utilisation d'un réseau de points-retrait tiers (type kiala, alveol, etc.)
3 : Retrait dans un aéroport, une gare ou une agence de voyage
4 : Transporteur (La Poste, Colissimo, UPS, DHL... ou tout transporteur privé)
5 : Emission d’un billet électronique, téléchargements

Oui

N

4


deliveryCharge Montant des frais de livraison dans la plus petite unité de la devise : exemple 250 pour 2,50 euros Non AN
version 18 ou supérieure RELEASE 4.53
deliveryExpectedDate

Date prévue de livraison doit être supérieure à la date du jour. Format  : dd/mm/yyyy

Non AN18 07/04/2016 Transmis à Limonetik
deliveryExpectedDelay Délai prévu de livraison (en jours) Non N2 10 Transmis à Limonetik

 

Object orderdetail


Element

Comment

Required

Format

Example

ref

Item reference

No

AN50

 

price

Item price, in the smallest currency unit

No

N12

 

quantity

Number of Items

No

N5

 

comment

Comment

No

AN255

 

category

Category of item

No

AN50

See table values

brand

Product brand

No

AN50

E.g.: HERMES

subcategory1

Rank 1 subcategory

No

AN50

E.g.: Watches & Jewellery

subcategory2

Rank 2 subcategory

No

AN50

E.g.: Jewellery

additionalData

List of specifications required for certain payment methods

No

AN255

E.g.: LegalAge=18&Discount=0105

taxRate

Item tax rate (expressed in hundredths)

No

N4

E.g.: 1580 for 15.8%

 

Object buyer


Élément

Description

Requis

Type

Exemple

Condition
title titre non AN1

 

Voir la table des valeurs

lastName

Nom de l’acheteur

non

AN100

 

 

firstName

Prénom de l’acheteur

non

AN100

 

 

email

Adresse email de l’acheteur

non

AN150

 

Ne pas mettre plus de 12 chiffres consécutifs (ex.:test-123456789101@test.test)

shippingAdress

Adresse de livraison. Le paramètre doit bien être orthographié shippingAdress dans la trame d'appel.

non

Object Address

 

 

billingAddress

Adresse de facturation

non

Object Address

 

 

accountCreateDate

La date de création du compte de l’acheteur

non

AN10

01/04/16

Format à respecter : dd/mm/yy 

accountAverageAmount

Le montant moyen des achats de cet acheteur

non

N10

 

 

accountOrderCount

Le nombre de commande passé par cet acheteur

non

N10

 

 

walletId

L’identifiant du portefeuille virtuel de votre client.

Non

AN50

 

Obligatoire pour les paiements par portefeuille

walletDisplayed

Gestion de l’affichage des moyens de paiement de votre client.

Pour ne pas afficher les données de paiement client, saisir la valeur « none ».

Pour afficher les données de paiement client, la balise doit être vide ou absente

non

AN5



walletSecured

Nature du contrôle ajouté à la cinématique de paiement WEB.

non

AN12


Voir la table des valeurs

walletCardInd

Spécifie l’index de la carte à utiliser.

non

AN2

1

L’index de la carte, valeur par défaut « 1 » 

ip

L’adresse IP de l’acheteur

non

AN50


Format à respecter : IPv4 ou IPv6 

mobilePhone

Le numéro de mobile de l’acheteur

non

N15

0033691666666

 

 

customerId

Identifiant client

non

AN50

894492568

Clearsale : Cette donnée peut être un identifiant ou un email
legalStatus Type du status de l'acteur : personne ou entreprise non N1 1 Clearsale : voir la table de valeur.
legalDocument Numero d'identification du document officiel non AN100 X5446119U  
birthDate Date de naissance non AN10

2016-04-27

Format: yyyy-mm-dd 
fingerprintID ID Device fingerprint non AN50    
deviceFingerprint Information du DeviceFingerPrint. non AN   à partir de la version 15
isBot Information du DeviceFingerPrint. Valeur possible : Y ou N non AN1   à partir de la version 15
isIncognito Information du DeviceFingerPrint. Valeur possible : Y ou N non AN1   à partir de la version 15
isBehindProxy Information du DeviceFingerPrint. Valeur possible : Y ou N non AN1   à partir de la version 15
isFromTor Information du DeviceFingerPrint. Valeur possible : Y ou N non AN1   à partir de la version 15
isEmulator Information du DeviceFingerPrint. Valeur possible : Y ou N non AN1   à partir de la version 15
isRooted Information du DeviceFingerPrint. Valeur possible : Y ou N non AN1   à partir de la version 15
hasTimezoneMismatch Information du DeviceFingerPrint. Valeur possible : Y ou N non AN1   à partir de la version 15

 

Object owner

Elément

Description

Requis

Type

Exemple

 

lastName

Nom du titulaire

non

AN30

Pierre

Applicable uniquement pour AMEX

firstName

Prénom du titulaire

non

AN15

Paul

Applicable uniquement pour AMEX

billingAddress

Adresse de facturation

non

Object addressOwner

 

Applicable uniquement pour AMEX

issueCardDate

Date d’émission de la carte

non

AN4

Format : mmyy

Applicable uniquement pour AMEX

 

Object privateDataList

Élément

Description

Requis

Format

Exemple

privateData

Liste contenant les privateData

Nombre d'élément 0 à 100

oui

Object privateData

 

 

Object privateData

Élément

Description

Requis

Format

Exemple

key

Le nom de la clef de la valeur

oui

AN50

user

value

Valeur associée à la clef

oui

AN50

dupond or durand, etc.

 

Object authentication3DSecure

Élément

Description

Requis

Type

Exemple

Condition

md

Renvoyé en POST par l’ACS

non

AN20

 

 

pares

Renvoyé en POST par l’ACS

non

AN

 

 

xid

Identifiant de transaction Unique

non

AN20

 

 

eci

Electronic Commerce Indicator. A passer dans l’autorisation

non

AN2

 

 

cavv

Cardholder Authentication Verification Value déterminé par l’ACS.

non

AN28

 

 

cavvAlgorithm

Entier positif précisant l’algorithme utilisé pour la génération CAVV. Les valeurs possibles actuelles sont:

0 = HMAC (SET™ TransStain),
1 = CVV,
2 = CVV avec ATN,
3 = MasterCard AAV

non

N1

 

 

vadsResult

Résumé des opérations 3DSecure en hexadécimal. Ce champ n'est plus utilisé.

non

AN8

 

 
typeSecurisation Champ utilisé à titre d'information pour l'authentification. Ce champ n'est plus utilisé. non AN10 20 :  VADS
sinon 9 : VAD
 
PaResStatus

Pour utiliser un MPI non Payline, alors il faut renseigner ce champ.

Les valeurs sont :
Y : authentification réussie
N : authentification erronée
A : prévue de passage par l'ACS
U : appel à l'ACS effectué
vide : time out sur l'ACS

non AN1    
VeResStatus

Pour utiliser un MPI non Payline, alors il faut renseigner ce champ.

Les valeurs sont : Y/N/U ou vide

non AN1    


Object subMerchant

Object disponible en version 18 ou supérieure des web services

Élément

Description

Requis

Type

Amex

CB MSC VISA

subMerchantId

Identifiant du sous marchant (bénéficiaire final) défini par le fournisseur de paiement (Payment Facilitator)

oui

oui oui

AN

subMerchantName

Nom du sous marchand

oui

non

AN

subMerchantMCC

Code MCC

oui

oui oui

AN

subMerchantSIRET

Numéro de SIRET

non

oui non non

AN

subMerchantTaxCode

Tax : Obligatoire pour les pays : USA et CAN . C'est au Payment Facilitator de déterminer si cette information doit être fournie ou non.

non

non

AN

subMerchantStreet

Nom de rue

oui

non

AN

subMerchantCity

Ville

oui

non

AN

subMerchantZipCode

Code postal

oui

non

AN

subMerchantCountry

Pays, voir la liste des valeurs.

oui

non

AN2

subMerchantState

État

non

non

AN

subMerchantEmailAddress Email oui


ANS40
subMerchantPhoneNumber

Numéro de téléphone

oui


AN

Réponse en retour

Le message « doAuthorizationResponse » est la réponse faite par Payline à une demande d’autorisation de débit. Il vous permet d’obtenir, entre autres, le numéro unique de la transaction sur Payline et  le n° d’autorisation de débit délivré par votre établissement bancaire.

La requête « doAuthorizationResponse » doit avoir la structure suivante :

 

Élément

Description

Requis

Type

Exemple

result Information sur le résultat de la demande d'autorisation oui Object result Voir les éléments ci-dessous

transaction

Information sur la transaction

oui

Object transaction

Voir les éléments ci-dessous

authorization Information sur l'autorisation oui Object authorization Voir les éléments ci-dessous
card Information sur la carte non Object cardout Voir les éléments ci-dessous
extendedCard Information complémentaire sur la carte non Object extendedCardType Voir les éléments ci-dessous

privateDataList

Information sur les informations personnelles

non

Object privateDataList

Voir les éléments ci-dessous

contractNumber

Information sur les opérations 3DSecure

oui

AN

12345678

 

Les éléments de référence

Object result

Élément

Description

Format

Exemple

code

Le code de retour du web service :

Opération acceptée : 00000, 02400, 02500, 02501, 02517, 02520 ,02616, 03000, 04000.

Autre code : Transaction non acceptée

N5

Voir le détail des Codes retour Payline

shortMessage

Message court du résultat de la transaction

AN50


longMessage

Message du résultat de la transaction

AN255


partnerCode Code retour issu du partenaire (moyen de paiement) AN50 à partir de la version 14
partnerCodeLabel Libellé du partenaire AN255 à partir de la version 14

 

Object transaction


Élément Description Format Exemple Condition
id Identifiant unique de la transaction Payline N50

date Date et heure de la transaction Payline AN16 Format : dd/mm/yyyy HH24:MI
isDuplicated

Cet indicateur est retourné par Payline dans le cas de transaction en doublon :

1 = transaction en doublon
0 = pas de doublon détecté

AN1 1
isPossibleFraud

Cet indicateur est calculé en fonction des critères définis par le commerçant :

1 = Il existe un risque de fraude
0 = Aucun risque de fraude détecté

AN1 1
fraudResult Code de la fraude AN50

fraudResultDetails Details de la fraude Object fraudResultDetails

explanation Motif du refus en cas de fraude AN50

threeDSecure

Cet indicateur permet de savoir si la transaction est 3DSecure ou non :

Y = Transaction 3DS
N = Transaction non 3DS
D = cas de rétrogradation (version 14 ou supérieur)

AN1

softDescriptor

Information affichée sur le relevé de compte de l'acheteur, limite avec certains moyens de paiement. Cette information sera affichée sur le ticket de paiement.

Les caractères spéciaux (non A..Z et 1..9) sont spécifiques à chaque acquéreur/moyen de paiement.

AN64* www.boutique.fr

version 13 ou supérieure.

version 16 ou supérieure pour Paypal.

score Scoring de la possibilité de fraude : Score de 0 à 10 N5 2
externalWalletType Type de wallet utilisé lors de la transaction AN20 Ex : V.Me, Masterpass
externalWalletContractNumber Numéro du contrat VAD associé au paiement par Wallet AN50

PartnerAdditionalData

Informations retournées au commerçant et provenant des partenaires :

AN


version 16 ou supérieure


avs
Service de vérification des adresses AVS
object avs
version 17 ou supérieure

 

Object  authorization

Élément

Description

Requis

Format

Exemple

number

Numéro d’autorisation délivré par le serveur d’autorisation acquéreur. Ce champ est renseigné si la demande d’autorisation est accordée1.

oui

N6

123456

date

Date et heure de l’autorisation

oui

AN16

Format : dd/mm/yyyy HH24:MI

 

Object cardout


Élément

Description

Requis

Format

Exemple

Condition

number

Carte marqué conforme à PCI DSS

non

AN

111122XXXXXX4444

Si le champ token est renseigné, le champ number doit être vide.

type

Type de la carte : CB, VISA, MASTERCARD, MAESTRO, AMEX

non

AN

CB

 

expirationDate

Date d’expiration de la carte

non

AN

0311

 

cardholder

Titulaire de la carte

non

AN20

Pierre Dupont

 

token

Alias du numéro de carte.

La version doit être supérieure ou égale à 3

non

AN19

1111gPNzHtyu4444

 

 

Object extendedCardType


Élément

Commentaire

Requis

Exemple

country

Pays d’emission de la carte

AN2

CODE ISO : exemple FR

isCvd

La carte est elle une e carte bleu

AN1

Y OR N

bank

La banque de la carte utilisée pour le paiement

AN

Crédit Lyonnais

type

Le type de carte de paiement

AN20

MASTERCARD

network

Désigne le rattachement de la carte à une entité gérant l’acceptation de la carte à un niveau national ou international

AN20

MASTERCARD

product

Indique la catégorie à laquelle appartient le type de la carte : voir les codes produit

AN

Gold/Premier pour une carte type VISA


Object privateDataList

Élément

Description

Requis

Format

Exemple

privateData

Liste contenant les privateData

Nombre d'élément 0 à 100

oui

Object privateData

 

 

Object privateData

Élément

Description

Requis

Format

Exemple

key

Le nom de la clef de la valeur

oui

AN50

user

value

Valeur associée à la clef

oui

AN50

dupond or durand, etc.

 



Le message « doAuthorizationResponse » est la réponse faite par Payline à une demande d’autorisation de débit. Il vous permet d’obtenir, entre autres, le numéro unique de la transaction sur Payline et  le n° d’autorisation de débit délivré par votre établissement bancaire.

La requête « doAuthorizationResponse » doit avoir la structure suivante :

 

Élément

Description

Requis

Type

Exemple

result Information sur le résultat de la demande d'autorisation oui Object result Voir les éléments ci-dessous

transaction

Information sur la transaction

oui

Object transaction

Voir les éléments ci-dessous

authorization Information sur l'autorisation oui Object authorization Voir les éléments ci-dessous
card Information sur la carte non Object cardout Voir les éléments ci-dessous
extendedCard Information complémentaire sur la carte non Object extendedCardType Voir les éléments ci-dessous

privateDataList

Information sur les informations personnelles

non

Object privateDataList

Voir les éléments ci-dessous

contractNumber

Information sur les opérations 3DSecure

oui

AN

12345678

 

Les éléments de référence

Object result

Élément

Description

Format

Exemple

code

Le code de retour du web service :

Opération acceptée : 00000, 02400, 02500, 02501, 02517, 02520 ,02616, 03000, 04000.

Autre code : Transaction non acceptée

N5

Voir le détail des Codes retour Payline

shortMessage

Message court du résultat de la transaction

AN50


longMessage

Message du résultat de la transaction

AN255


partnerCode Code retour issu du partenaire (moyen de paiement) AN50 à partir de la version 14
partnerCodeLabel Libellé du partenaire AN255 à partir de la version 14

 

Object transaction


Élément Description Format Exemple Condition
id Identifiant unique de la transaction Payline N50

date Date et heure de la transaction Payline AN16 Format : dd/mm/yyyy HH24:MI
isDuplicated

Cet indicateur est retourné par Payline dans le cas de transaction en doublon :

1 = transaction en doublon
0 = pas de doublon détecté

AN1 1
isPossibleFraud

Cet indicateur est calculé en fonction des critères définis par le commerçant :

1 = Il existe un risque de fraude
0 = Aucun risque de fraude détecté

AN1 1
fraudResult Code de la fraude AN50

fraudResultDetails Details de la fraude Object fraudResultDetails

explanation Motif du refus en cas de fraude AN50

threeDSecure

Cet indicateur permet de savoir si la transaction est 3DSecure ou non :

Y = Transaction 3DS
N = Transaction non 3DS
D = cas de rétrogradation (version 14 ou supérieur)

AN1

softDescriptor

Information affichée sur le relevé de compte de l'acheteur, limite avec certains moyens de paiement. Cette information sera affichée sur le ticket de paiement.

Les caractères spéciaux (non A..Z et 1..9) sont spécifiques à chaque acquéreur/moyen de paiement.

AN64* www.boutique.fr

version 13 ou supérieure.

version 16 ou supérieure pour Paypal.

score Scoring de la possibilité de fraude : Score de 0 à 10 N5 2
externalWalletType Type de wallet utilisé lors de la transaction AN20 Ex : V.Me, Masterpass
externalWalletContractNumber Numéro du contrat VAD associé au paiement par Wallet AN50

PartnerAdditionalData

Informations retournées au commerçant et provenant des partenaires :

AN


version 16 ou supérieure


avs
Service de vérification des adresses AVS
object avs
version 17 ou supérieure

 

Object  authorization

Élément

Description

Requis

Format

Exemple

number

Numéro d’autorisation délivré par le serveur d’autorisation acquéreur. Ce champ est renseigné si la demande d’autorisation est accordée1.

oui

N6

123456

date

Date et heure de l’autorisation

oui

AN16

Format : dd/mm/yyyy HH24:MI

 

Object cardout


Élément

Description

Requis

Format

Exemple

Condition

number

Carte marqué conforme à PCI DSS

non

AN

111122XXXXXX4444

Si le champ token est renseigné, le champ number doit être vide.

type

Type de la carte : CB, VISA, MASTERCARD, MAESTRO, AMEX

non

AN

CB

 

expirationDate

Date d’expiration de la carte

non

AN

0311

 

cardholder

Titulaire de la carte

non

AN20

Pierre Dupont

 

token

Alias du numéro de carte.

La version doit être supérieure ou égale à 3

non

AN19

1111gPNzHtyu4444

 

 

Object extendedCardType


Élément

Commentaire

Requis

Exemple

country

Pays d’emission de la carte

AN2

CODE ISO : exemple FR

isCvd

La carte est elle une e carte bleu

AN1

Y OR N

bank

La banque de la carte utilisée pour le paiement

AN

Crédit Lyonnais

type

Le type de carte de paiement

AN20

MASTERCARD

network

Désigne le rattachement de la carte à une entité gérant l’acceptation de la carte à un niveau national ou international

AN20

MASTERCARD

product

Indique la catégorie à laquelle appartient le type de la carte : voir les codes produit

AN

Gold/Premier pour une carte type VISA


Object privateDataList

Élément

Description

Requis

Format

Exemple

privateData

Liste contenant les privateData

Nombre d'élément 0 à 100

oui

Object privateData

 

 

Object privateData

Élément

Description

Requis

Format

Exemple

key

Le nom de la clef de la valeur

oui

AN50

user

value

Valeur associée à la clef

oui

AN50

dupond or durand, etc.




Vous avez d’autres questions ? Envoyer une demande

Commentaires

Réalisé par Zendesk