Introduction

WL Sips est une solution de paiement de commerce électronique multicanale sécurisée conforme à la norme PCI DSS. Elle vous permet d’accepter et de gérer des transactions de paiement en prenant en compte les règles métiers liées à votre activité (paiement à la livraison, paiement différé, paiement récurrent, paiement en plusieurs fois , …).

L’objectif du présent document est d’expliquer la mise en œuvre de la solution Sips Office Batch et des tests initiaux relatifs au paiement ou à la gestion de caisse.

A qui s’adresse ce document

Sips Office Batch a pour but d'offrir aux commerçants les fonctions de Sips Office en mode Batch. Ces fonctions sont basées sur l'échange hors-ligne de fichiers. Certaines options du mode en ligne ne sont pas disponibles comme par exemple l’authentification 3-D Secure.

C’est un guide d’implémentation qui s’adresse à l’équipe technique du commerçant.

Pour avoir une vue d’ensemble de la solution WL Sips , nous vous conseillons de consulter les documents suivants :

  • Présentation fonctionnelle,
  • Guide de Configuration des fonctionnalités.

Prérequis

Une connaissance des protocoles de transfert des fichiers ainsi qu’une connaissance des standards relatifs aux langages de programmation pratiqués aujourd’hui, tels que Java, PHP ou .Net, est nécessaire pour développer la connexion à Sips Office Batch .

Note: toutes les portions de code de ce document sont fournies à titre d’exemple , il convient de les adapter à votre site Web afin qu’elles soient pleinement exploitables.

Comprendre le paiement avec Sips Office Batch

Le traitement des fichiers par Sips Office Batch se décompose en plusieurs étapes :

1. Le commerçant dépose des fichiers de requêtes sur un compte FTPS ou SFTP externe fourni par Worldline .

2. La passerelle de transfert de fichiers Worldline reçoit les fichiers de requêtes et les envoie au moteur Sips Office Batch .

3. Le moteur Sips Office Batch traite les fichiers de requêtes un par un et génère un fichier de réponses par fichier de requêtes.

4. Le moteur Sips Office Batch envoie le fichier de réponses au compte FTPS ou SFTP externe via la passerelle de transfert de fichiers.

5. Le commerçant récupère le fichier de réponses depuis le compte FTPS ou SFTP externe fourni par Worldline .

6. Le moteur Sips Office Batch , via la passerelle de transfert de fichier, détruit le fichier de réponses après le premier téléchargement réussi par le commerçant.

Règles générales concernant les transferts

  • Le commerçant peut choisir entre FTPS ou SFTP comme méthode de transfert.
  • Worldline fournit un compte commerçant dédié (avec nom d'utilisateur et mot de passe), et le compte Worldline doit être le même pour les fichiers de requêtes et les fichiers de réponses, mais des restrictions s'appliquent quant au nom du fichier.
  • En plus des vérifications de nom d'utilisateur et de mot de passe, les serveurs SFTP et FTPS de Worldline exécutent une vérification de l'adresse IP du commerçant.
  • Worldline donne au fichier de réponses un nom différent de celui du fichier de requêtes.
  • Après une période donnée (1 semaine), les fichiers de réponse sont supprimés des comptes FTPS ou SFTP, même s'ils n'ont pas été téléchargés.

Gérer les opérations de plusieurs commerçants

Le remettant est un partenaire qui joue le rôle d'un opérateur technique gérant les échanges de fichiers avec la plate-forme de paiement WL Sips . Un remettant peut envoyer des opérations de plusieurs commerçants dans le même fichier à condition qu'elles soient déclarées au nom de ce remettant lors de l'étape d’inscription.

Note: WL Sips attribue un numéro de remettant durant l’inscription. Ce numéro est fourni dans le champ remitterId de l’entête du fichier de requêtes.

Il est intéressant de noter qu'un remettant peut également être lui-même un commerçant.

Comprendre le format des fichiers échangés

Les fichiers de requête et de réponse échangés avec Sips Office Batch sont au format CSV.

Chaque fichier est constitué de quatre parties successives :

  • FILE TYPE correspondant au type de fichier (voir le chapitre suivant pour les explications des différents types) ;
  • HEADER contenant l’en-tête du fichier ;
  • BODY contenant toutes les opérations ;
  • END indiquant la fin du fichier.

L'en-tête du fichier contient un identifiant sous la forme d’un numéro de séquence. Ce numéro de séquence doit être :

  • numérique ;
  • unique pour tous vos fichiers (sans limite de temps) ;
  • croissant et il doit commencer à 1 et augmenter de 1 en 1.

Le corps du fichier contient plusieurs enregistrements. Un enregistrement correspond à une opération liée à une transaction WL Sips (création ou mise à jour).

  • Exemple de structure principale du fichier de requête ou de réponse :
      FILE;…
HEADER;…
<OPERATION>;value1;value2;…
<OPERATION>;value1;value2;…
END;…
    
Note: la structure de l'élément OPERATION dépend du type d'opération.

<OPERATION> contient le nom de l'opération (AUTHOR, VALIDATE, etc.).

Dans le format CSV, chaque enregistrement est préfixé par le nom du type d’élément écrit en majuscules.

Les valeurs des champs de chaque élément sont écrites l'une après l'autre et séparées par un point-virgule, sans espace et sans être préfixées de leur nom. L'ordre de ces champs doit être respecté.

Plusieurs fichiers de requête peuvent être traités en une journée. Lorsque plusieurs fichiers de requête sont disponibles sur le compte FTPS externe, Sips Office Batch les traite un par un successivement (et non simultanément et par ordre d’arrivée sur le compte FTPS).

Il y a un fichier de réponse pour chaque fichier de requête même si le traitement du fichier génère des erreurs.

Note: à l'exception de cas très spécifiques, un fichier de réponse ajoute les champs de réponse aux informations du fichier de requête. Voir le chapitre 'Rapprochement des fichiers de requête et de réponse' ci dessous.

Règles générales concernant les fichiers échangés

  • La taille des fichiers ne doit pas dépasser 100 Mo ou 100 000 enregistrements d'opérations.
  • Les fichiers sont dédiés à un seul remettant.
  • Un fichier de requête ne peut pas contenir plusieurs opérations qui concernent la même transaction. Par exemple, il n'est pas possible de créer une transaction et de l'annuler dans le même fichier de requête.
  • L'ordre des opérations dans le corps du fichier de réponse peut être différent de l'ordre des opérations dans le fichier de requête.

La grammaire CSV contient des fonctions spécifiques qui seront détaillées tout au long de ce document. Avec cette grammaire, l'ordre des champs doit être respecté.

Comprendre le format du fichier de requête

Le type de fichier est basé sur le service utilisé.

Tous les champs de l’élément file type de la requête sont obligatoires et en format ANS20. Ils sont retournés à l’identique dans la réponse.

  • Le nom de la balise est file .
  • Le champ type doit valoir 'request' pour la requête et 'response' pour la réponse.
  • Les champs format et version dépendent du type de service appelé.
Format Version Description du service
office Doit valoir 11 Acceptation des transactions et des opérations de caisse.
token Doit valoir 1 Tokenisation et détokenisation des PAN.
  • Exemple de type de fichier :
      ...
FILE;request;office;10
...
    

L’entête est basé sur un enregistrement contenant les champs suivants :

Champs Présence Format Description Numéro de champ CSV
Le nom de la balise est header Obligatoire ANS20 Indique un enregistrement d'en-tête 1
remitterId Obligatoire N15 Identifiant du remettant 2
date Obligatoire XML Date Date à laquelle le fichier a été créé dans le fuseau horaire du commerçant (AAAA-MM-JJ+hhmm). 3
time Obligatoire XML Time Heure à laquelle le fichier a été créé dans le fuseau horaire du commerçant (hh:mm:ss+hhmm). 4
sequence Obligatoire N6 Numéro de séquence du fichier. Vous pouvez utiliser un remplissage à base de « 0 » sur la gauche (par exemple : 000001 pour le numéro de la première séquence). 5
  • Exemple d’entête :
      ...
HEADER;023101122334455;2012-06-11+0200;14:28:00+0100;86
...
    

Le corps contient des opérations en fonction du service déclaré dans l'élément file . Il faut se reporter au chapitre suivant pour connaître le détail des champs suivant l’opération souhaitée.

Dans le format CSV, il n'y a pas de balise particulière pour la partie « corps » du fichier : toutes les opérations sont détaillées directement après la partie « header ».

  • Exemple de partie « corps » pour le service « office » :
      …
CARDORDER;1;012323232323231;SIM201206810160;1000;0;VALIDATION;470;
201201;209910;4975497549754975;1;978;test@worldline.com;123;127.0.0.1;
2012-11-29T17:04:30Z;INTERNET;123456;;context;;origin;all;;;;;;;;;FRA 
;;PAN;;;;;;VISA;APPLIED_DEFAULT;;;;;;
...
    

La partie finale est basée sur un enregistrement contenant les champs suivants :

Champs Présence Format Description Numéro de champ CSV
Le nom de la balise est end Obligatoire ANS20 Indique la fin de l'enregistrement 1
nbRecord Obligatoire N6 Nombres d'opérations dans la partie « body » 2
  • Exemple d’élément « end » :
      END;227
    

Nommage du fichier de requête

Le fichier de requête doit être transmis dans une archive au format ZIP. L’archive doit se nommer OFBREQxx.ZIP où xx désigne un nombre compris entre 01 et 99.

Une archive ne doit contenir qu’un seul fichier requête.

Le nom du fichier requête est libre mais nous vous conseillons de respecter le nommage suivant : SOB.Alias.Date-Heure.cs v

Avec :

  • SOB : fichier requête à destination de «  Sips Office Batch  » ;
  • Alias : alias/merchantId WL Sips de la boutique remettante ;
  • Date : date du fichier sous le format AAMMJJ ;
  • Heure : heure du fichier sous le format HHMMSS.

Comprendre le format du fichier de réponse

L'en-tête est basé sur un enregistrement contenant les champs suivants :

Champs Format Description Numéro de champ CSV
Le nom de la balise est header . ANS20 Indique un enregistrement d'en-tête 1
remitterId N15 Identifiant du remettant 2
date XML Date Date de création du fichier dans le fuseau horaire du commerçant, le format de la date est YYYY-MM-DD+hhmm. 3
time XML Time Heure de création du fichier dans le fuseau horaire du commerçant, le format de l'heure est hh:mm:ss+hhmm. 4
sequence N6 Numéro de séquence du fichier. 5
processingResponseCode AN2 Code réponse de traitement. 6
beginProcessTime ANS25

ISO8601

Horodatage de début du traitement du fichier dans le fuseau horaire du commerçant. 7
endProcessTime ANS25

ISO8601

Horodatage de fin du traitement du fichier dans le fuseau horaire du commerçant. 8
  • Exemple d’en-tête :
      ...
HEADER;023101122334455;2012-06-11+0200;14:28:00+0100;86;00;
2012-06-07T11:30:47+02:00;2012-06-07T11:31:43+02:00
...
    

L’élément “error-details” n’est renvoyé que lorsqu’une erreur intervient lors du contrôle du fichier requête. « error-details » est une chaîne de caractère décrivant l’erreur.

  • Exemple d’en-tête :
      ...
ERRORDETAILS;ERROR_FILE_ALREADY_PROCESSED: processing_response_code = [02] : Error in the file sequence number. The file has already been processed.
Expected sequence number [2] - Request file sequence number [1]
...
    

A chaque opération du fichier de requête correspond un élément du fichier de réponse dont les attributs ont été remplis lors du renvoi. Les champs retournés sont décrits au chapitre suivant.

La fin du fichier de réponse est similaire à celle du fichier de requête et comporte les champs suivants :

Champs Format Description Numéro de champ CSV
Le nom de la balise est end. ANS20 Indique la fin de l'enregistrement. 1
nbRecord N6 Nombres d'opérations dans la partie « body ». 2
  • Exemple d’élément « end » :
      END;227
    

Nommage du fichier de réponse

Le fichier de réponse est transmis dans une archive au format ZIP. Le nom de cette archive est s******.OFBREP**.zip.

Où :

  • s****** est un numéro de séquence unique et non paramétrable ;
  • OFBREP** un nombre compris entre 01 et 99 identique au fichier requête.

Le nom du fichier de réponse contenu dans l’archive a pour formalisme : OFFUBZ.OFFBAREP.$alias.$date (exemple : OFFUBZ.OFFBAREP.MM20LEQUIPE0861.181216).

Où :

  • $alias est l’alias WL Sips de la boutique ;
  • $date est la date du traitement du ficher, au format AAMMJJ.

Rapprochement des fichiers de requête et de réponse

Afin d'aider au rapprochement des fichiers de requête et de réponse, chaque fichier de requête est identifiée par un numéro de séquence qui est également retourné avec la réponse.

Tous les champs du fichier de requête sont également retournés dans le fichier de réponse à l'exception des champs suivants en raison de la conformité avec PCI DSS :

  • cardNumber peut être retourné masqué dans le champ maskedPan  ;
  • cardEffectiveDate (date de début de validité de la carte) ;
  • cardExpiryDate (date d'expiration de la carte) ;
  • cardSeqNumber (numéro de séquence de la carte si présent) ;
  • cardCSCValue (cryptogramme visuel de la carte).

WL Sips peut modifier la valeur du champ suivant si la création de la transaction est suivie d'une autorisation bancaire :

  • transactionDate

Démarrer avec Sips Office Batch en 4 étapes

Étape 1 : demander la création d’un compte FTPS

Pour cela, vous devez renvoyer le formulaire d’inscription à Sips Office Batch remis par votre interlocuteur technique Worldline . La création du compte FTPS prend environ 12 jours à réception du formulaire correctement rempli.

Des échanges par mail ont ensuite lieu pour tester le compte FTPS en recette avant mise en place en environnement de production.

Étape 2 : utiliser les fonctions disponibles

Les différentes fonctions possibles font l’objet de requêtes spécifiques.

Une requête est composée de champs génériques et de champs de type container.

Un container est une structure de données utilisée afin de regrouper fonctionnellement les données.

Si le champ est un champ d'un container, il est désigné <nom du container>.<nom du champ>.

Tip: avant d’utiliser une fonction, vérifiez que vous avez bien les droits pour utiliser cette fonction sur votre boutique en contactant l’assistance technique WL Sips .
Note: dans les réponses, en fonction de l’état de la transaction et du moyen de paiement choisi, certains champs peuvent être nuls, vides ou non renseignés. Veuillez consulter les documentations des moyens de paiement pour connaître les champs attendus dans les réponses.

Fonction cardOrder du service office

Cette fonction vous permet d'effectuer un paiement carte si vous disposez des informations bancaires d'un client.

Format de la requête cardOrder

Tous les enregistrements de la partie « body » doivent contenir les informations suivantes :

Champs Présence Commentaires Numéro de champ CSV
Le nom de la balise est cardOrder . Obligatoire Nom de la fonction 1
recordSequence Obligatoire N6 – attribut qui indique le numéro de ligne, ce qui vous permet de rapprocher la réponse de la requête. 2
merchantId Obligatoire 3
transactionReference Obligatoire Facultatif si vous utilisez le S10TransactionReference . 4
amount Obligatoire 5
captureDay Facultatif 6
captureMode Facultatif 7
cardCSCValue Facultatif 8
cardEffectiveDate Facultatif 9
cardExpiryDate Facultatif 10
cardNumber Obligatoire 11
cardSeqNumber Obligatoire 12
currencyCode Facultatif 13
customerEmail Obligatoire 14
customerId Facultatif 15
customerIpAddress Facultatif 16
merchantTransactionDateTime Facultatif 17
orderChannel Facultatif 18
orderId Obligatoire 19
paymentPattern Facultatif 20
returnContext Facultatif 21
statementReference Facultatif 22
transactionOrigin Facultatif 23
fraudData.bypass3DS Facultatif 24
fraudData.bypassCtrlList Facultatif 25
fraudData.bypassInfoList Facultatif 26
fraudData.allowedCardCountryList Facultatif 27
fraudData.deniedCardCountryList Facultatif 28
fraudData.allowedCardArea Facultatif 29
fraudData.deniedCardArea Facultatif 30
fraudData.allowedIpCountryList Facultatif 31
fraudData.deniedIpCountryList Facultatif 32
fraudData.allowedIpArea Facultatif 33
fraudData.deniedIpArea Facultatif 34
panType Facultatif Valorisé à TOKEN_PAN si paiement via un token. 35
paymentMeanData.accord.settlementMode Facultatif 36
paymentMeanData.cofinoga.settlementMode Facultatif 37
holderData Facultatif 38
s10TransactionReference.s10TransactionId Obligatoire Facultatif si vous utilisez le transactionReference . 39
s10TransactionReference.s10TransactionIdDate Facultatif Ce champ est calculé par notre serveur. Il est donc inutile de le valoriser (il sera ignoré si valorisé). 40
paymentMeanBrand Facultatif 41
PaymentMeanBrandSelectionStatus Facultatif 42
  • Exemple de requête cardOrder
      …
CARDORDER;1;012323232323231;SIM201206810160;1000;0;VALIDATION;470;
201201;209910;4975497549754975;1;978;test@worldline.com;123;127.0.0.1;
2012-11-29T17:04:30Z;INTERNET;123456;;context;;origin;all;;;;;;;;;FRA 
;;PAN;;;;;;VISA;APPLIED_DEFAULT;;;;;;
...
    

Format de la réponse à la requête cardOrder

La réponse contient tous les champs de la requête (à l'exception des champs cardCSCValue, cardEffectiveDate, cardExpiryDate, cardNumber, cardSeqNumber ), ainsi que les champs présentés ci-dessous :

Champs Commentaires Numéro de champ CSV
Le nom de la balise est cardOrder . Nom de la fonction 1
recordSequence N6 – attribut qui indique le numéro de ligne, ce qui vous permet de rapprocher la réponse de la requête. 2
merchantId 3
transactionReference 4
amount 5
captureDay 6
captureMode 7
currencyCode 8
customerEmail 9
customerId 10
customerIpAddress 11
merchantTransactionDateTime 12
orderChannel 13
orderId 14
paymentPattern 15
returnContext 16
statementReference 17
transactionOrigin 18
fraudData.bypass3DS 19
fraudData.bypassCtrlList 20
fraudData.bypassInfoList 21
fraudData.allowedCardCountryList 22
fraudData.deniedCardCountryList 23
fraudData.allowedCardArea 24
fraudData.deniedCardArea 25
fraudData.allowedIpCountryList 26
fraudData.deniedIpCountryList 27
fraudData.allowedIpArea 28
fraudData.deniedIpArea 29
panType 30
paymentMeanData.accord.settlementMode 31
paymentMeanData.accord.additionalAuthorisationNumber 32
paymentMeanData.cofinoga.settlementMode 33
holderData 34
s10TransactionReference.s10TransactionId 35
s10TransactionReference.s10TransactionIdDate 36
acquirerResponseCode 37
authorisationId 38
complementaryCode 39
complementaryInfo 40
guaranteeIndicator 41
holderAuthentRelegation 42
holderAuthentStatus 43
maskedPan 44
officeBatchResponseCode 45
responseCode 46
transactionDateTime 47
tokenPan 48
authorMessageReference 49
acquirerResponseMessage 50
paymentMeanTradingName 51
cardData.cardProductCode 52
cardData.cardProductName 53
cardData.cardProductProfile 54
cardData.cardScheme 55
cardData.issuerCode 56
cardData.issuerCountryCode 57
cardData.cardProductUsageLabel 58
recurringResponseCode 59
paymentMeanBrand 60
paymentMeanBrandSelectionStatus 61
transactionPlatform Systématiquement valorisé à ‘PROD’ 62
cardCSCResultCode 63
avsPostcodeResponseCode 64
avsAddressResponseCode 65
authorisationTypeLabel Non valorisé 66
  • Exemple de réponse à une requête cardOrder
              ...
CARDORDER;1;012323232323231;SIM201206810160;1000;0;VALIDATION;978;
test@worldline.com;123;127.0.0.1;20121129T17:04:30Z;INTERNET;123456;;context;;
origin;all;;;;;;;;;FRA;;;;;;;;00;1234569654656;;;;;;160000.47;00;00;2012-06-
14T16:00:00+02:00;;;;;F,VISA CLASSIC,C,VISA,00000,GRC;;;;PROD ;;;;
...
    

Fonction refund du service office

Cette opération vous permet de rembourser une transaction en créditant le compte du client et en débitant votre compte.

Note: veuillez consulter le guide de configuration des fonctionnalités, partie 'gestion de caisse > remboursement', pour savoir dans quels cas vous pouvez effectuer une opération de remboursement.

Format de la requête refund

Tous les enregistrements de la partie « body » doivent contenir les informations suivantes :

Champs Présence Commentaires Numéro de champ CSV
Le nom de la balise est refund Obligatoire Nom de la fonction 1
recordSequence Obligatoire N6 – attribut qui indique le numéro de ligne, ce qui vous permet de rapprocher la réponse de la requête. 2
merchantId Obligatoire 3
transactionReference Obligatoire Référence de la transaction à rembourser. Facultatif vous utilisez le s10TransactionReference. 4
operationAmount Obligatoire 5
currencyCode Obligatoire 6
operationOrigin Facultatif 7
s10TransactionReference.s10TransactionId Obligatoire Référence de la transaction à rembourser. Facultatif si vous utilisez le transactionReference . 8
s10TransactionReference.s10TransactionIdDate Obligatoire Référence de la transaction à rembourser. Facultatif si vous utilisez le transactionReference . 9
  • Exemple de requête refund
      ...
REFUND;1;012323232323231;SIM201206810160;1000;978;operationOrigin;;
...
    

Format de la réponse à la requête refund

La réponse contient tous les champs de la requête ainsi que les champs suivants :

Champs Commentaires Numéro de champ CSV
Le nom de la balise est refund Nom de la fonction 1
operationDateTime 10
transactionDateTime 11
responseCode 12
newStatus 13
newAmount 14
authorisationId 15
acquirerResponseCode 16
officeBatchResponseCode 17
  • Exemple de réponse à une requête refund
      ...
REFUND;1;012323232323231;SIM201206810160;1000;978;operationOrigin;;;
2012-06-14T16:00:00+02:00;2012-06-14T16:00:00+02:00;00;TO_CREDIT;0;
956798798534;00;00
...
    

Fonction validate du service office

Cette fonction permet de déclencher la remise en paiement d’une transaction. Elle vous permet de faire du paiement différé en débitant votre client à l’expédition des produits achetés.

Format de la requête validate

Tous les enregistrements de la partie « body » doivent contenir les informations suivantes :

Champs Présence Commentaires Numéro de champ CSV
Le nom de la balise est validate Obligatoire Nom de la fonction 1
recordSequence Obligatoire N6 – attribut qui indique le numéro de ligne, ce qui vous permet de rapprocher la réponse de la requête. 2
merchantId Obligatoire 3
transactionReference Obligatoire Référence de la transaction à valider. Facultatif si vous utilisez le s10TransactionReference . 4
operationAmount Obligatoire 5
currencyCode Obligatoire 6
operationOrigin Facultatif 7
s10TransactionReference.s10TransactionId Obligatoire Référence de la transaction à valider. Facultatif si vous utilisez le transactionReference . 8
s10TransactionReference.s10TransactionIdDate Obligatoire Référence de la transaction à valider. Facultatif si vous utilisez le transactionReference . 9
lastRecoveryIndicator Facultatif 10
  • Exemple de requête validate
      ...
VALIDATE;1;012323232323231;SIM201206810160;1000;978;operationOrigin;;;TRUE
...
    

Format de la réponse à la requête validate

La réponse contient tous les champs de la requête ainsi que les champs suivants :

Champs Commentaires Numéro de champ CSV
Le nom de la balise est validate . Nom de la fonction 1
operationDateTime 11
responseCode 12
newStatus 13
newAmount 14
authorisationId 15
acquirerResponseCode 16
officeBatchResponseCode 17
captureLimitDate 18
  • Exemple de réponse à une requête validate
      ...
VALIDATE;1;012323232323231;SIM201206810160;1000;978;operationOrigin;;;;
2012-06-14T16:00:00+02:00;2012-06-14T16:00:00+02:00;00;TO_CREDIT;
0;956798798534;00;00;2012-06-14T21:00:00+02:00
...
    

Fonction duplicate du service office

Cette fonction permet de créer une nouvelle transaction à partir des données d'une transaction précédente. À titre d'exemple, si une transaction n'a, par erreur ou omission, pu être validée dans le délai de capture que vous avez renseigné, elle a expiré et ne sera donc pas envoyée en remise en paiement. Vous pouvez alors rattraper cette transaction en la dupliquant.

Format de la requete duplicate

Tous les enregistrements de la partie « body » doivent contenir les informations suivantes :

Champs Présence Commentaires Numéro de champ CSV
Le nom de la balise est duplicate . Obligatoire Nom de la fonction 1
recordSequence Obligatoire N6 – attribut qui indique le numéro de ligne, ce qui vous permet de rapprocher la réponse de la requête. 2
merchantId Obligatoire 3
transactionReference Obligatoire Facultatif si vous utilisez le S10TransactionReference . 4
amount Obligatoire 5
currencyCode Obligatoire 6
captureDay Facultatif 7
captureMode Facultatif 8
customerEmail Facultatif 9
customerId Facultatif 10
customerIpAddress Facultatif 11
fromTransactionReference Obligatoire Référence de la transaction à dupliquer. Facultatif si vous utilisez le S10FromTransactionReference 12
merchantTransactionDateTime Facultatif 13
orderChannel Obligatoire 14
orderId Facultatif 15
returnContext Facultatif 16
transactionOrigin Facultatif 17
fromMerchantId Facultatif 18
fraudData.bypass3DS Facultatif 19
fraudData.bypassCtrlList Facultatif 20
fraudData.bypassInfoList Facultatif 21
fraudData.allowedCardCountryList Facultatif 22
fraudData.deniedCardCountryList Facultatif 23
fraudData.allowedCardArea Facultatif 24
fraudData.deniedCardArea Facultatif 25
fraudData.allowedIpCountryList Facultatif 26
fraudData.deniedIpCountryList Facultatif 27
fraudData.allowedIpArea Facultatif 28
fraudData.deniedIpArea Facultatif 29
statementReference Facultatif 30
s10TransactionReference.s10TransactionId Obligatoire Facultatif si vous utilisez le transactionReference . 31
s10TransactionReference.s10TransactionIdDate Facultatif Ce champ est calculé par notre serveur. Il est donc inutile de le valoriser (il sera ignoré si valorisé). 32
s10FromTransactionReference.s10TransactionId Obligatoire Référence de la transaction à dupliquer. Facultatif si vous utilisez le fromTransactionReference . 33
s10FromTransactionReference.s10TransactionIdDate Obligatoire Référence de la transaction à dupliquer. Facultatif si vous utilisez le fromTransactionReference . 34
paymentMeanData.paypal.invoiceId Facultatif Numéro de commande PayPal; Voir guide d'intégration PayPal . 35
paymentMeanData.bcacup.settlementMode Facultatif Modalité de paiement; Voir guide d’intégration BCACUP. 36
  • Exemple de requête duplicate
      ...
DUPLICATE;1;012323232323231;SIM201206810160;1000;978;1;VALIDATION;your.email@email.com;12345;127.0.0.1;SIM2012068102311;2012-06-07T11:30:47+02:00;MOTO;order-id;mycontext;SOB;;;;;;;;;;ATG,FRA,DNK;;;;;;;;invoice-id;COMPTAN;
...
    

Format de la réponse à la requête duplicate

La réponse contient tous les champs de la requête ainsi que les champs suivants :

Champs Commentaires Numéro de champ CSV
Le nom de la balise est duplicate . Nom de la fonction 1
authorisationId 35
acquirerResponseCode 36
complementaryCode 37
complementaryInfo 38
responseCode 39
scoreColor 40
scoreInfo 41
scoreProfile 42
scoreThreshold 43
scoreValue 44
transactionDateTime 45
officeBatchResponseCode 46
maskedPan 47
panExpiryDate 48
paymentMeanBrand 49
cardData.cardProductCode 50
cardData.cardProductName 51
cardData.cardProductProfile 52
cardData.cardScheme 53
cardData.issuerCode 54
cardData.issuerCountryCode 55
cardData.cardProductUsageLabel 56
paymentMeanBrandSelectionStatus 57
transactionPlatform Systématiquement valorisé à ‘PROD’. 58
avsPostcodeResponseCode 59
avsAddressResponseCode 60
  • Exemple de réponse à une requête duplicate
      ...
DUPLICATE;1;012323232323231;SIM201206810160;1000;978;1;VALIDATION;
your.email@email.com;12345;127.0.0.1;SIM2012068102311;2012-06-07T11:
30:47+02:00;MOTO;123;mycontext;SOB;;;;;;;;;;ATG,FRA,DNK;;;;;;;;009588;
00;;;00;;;;;2013-10-30T16:40:00+02:00;00; 
4907##########00;201610;VISA;F,VISA CLASSIC,C,VISA,00000,GRC;;PROD
...
    

Fonction cancel du service office

Cette fonction permet d’annuler une transaction avant l’envoi en banque ou de modifier son montant.

Une opération d’annulation ne peut pas être annulée et on ne peut pas annuler un montant supérieur au montant d’origine de la transaction.

Note: veuillez consulter le guide de configuration des fonctionnalités, partie 'gestion de caisse > annulation', pour savoir dans quels cas vous pouvez effectuer une opération d'annulation.

Format de la requête cancel

Champs Présence Commentaires Numéro de champ CSV
Le nom de la balise est cancel . Obligatoire Nom de la fonction 1
recordSequence Obligatoire N6 – attribut qui indique le numéro de ligne, ce qui vous permet de rapprocher la réponse de la requête. 2
merchantId Obligatoire 3
transactionReference Obligatoire Référence de la transaction à annuler. Facultatif vous utilisez le s10TransactionReference . 4
amount Obligatoire 5
currencyCode Obligatoire 6
operationOrigin Facultatif 7
s10TransactionReference.s10TransactionId Obligatoire Référence de la transaction à valider. Facultatif si vous utilisez le transactionReference . 8
s10TransactionReference.s10TransactionIdDate Obligatoire Référence de la transaction à valider. Facultatif si vous utilisez le transactionReference . 9
  • Exemple de requête cancel
      ...
CANCEL;1;012323232323231;SIM201206810160;1000;978;operationOrigin;;
...
    

Format de la réponse à la requête cancel

La réponse contient tous les champs de la requête ainsi que les champs suivants :

Champs Commentaires Numéro de champ CSV
Le nom de la balise est cancel . Nom de l'opération 1
operationDateTime 10
responseCode 11
newStatus 12
newAmount 13
officeBatchResponseCode 14
  • Exemple de réponse à une requête cancel
      ...
CANCEL;1;012323232323231;SIM201206810160;1000;978;operationOrigin;;
...
    

Fonction credit du service office

Cette fonction vous permet de créditer le compte d’un client sans transaction d’origine référencée. Il est donc nécessaire de détenir les informations du moyen de paiement de votre client ou le token associé.

Note: cette fonction se nomme creditHolder si vous utilisez Sips Office .

Format de la requête credit

Tous les enregistrements de la partie « body » doivent contenir les informations suivantes :

Champs Présence Description Numéro de champ CSV
Le nom de la balise est credit . Obligatoire Nom de la fonction 1
recordSequence Obligatoire N6 – attribut qui indique le numéro de ligne, ce qui vous permet de rapprocher la réponse de la requête. 2
merchantId Obligatoire 3
transactionReference Obligatoire Facultatif si vous utilisez le S10TransactionReference . 4
amount Obligatoire 5
cardEffectiveDate Facultatif 6
cardExpiryDate Obligatoire 7
cardNumber Obligatoire 8
cardCSCValue Facultatif 9
cardSeqNumber Facultatif 10
currencyCode Obligatoire 11
customerEmail Facultatif 12
customerId Facultatif 13
customerIpAddress Facultatif 14
orderChannel Facultatif 15
orderId Facultatif 16
paymentMeanBrand Facultatif 17
returnContext Facultatif 18
transactionOrigin Facultatif 19
panType Facultatif 20
s10TransactionReference.s10TransactionId Obligatoire Référence de la transaction à valider. Facultatif si vous utilisez le transactionReference . 21
s10TransactionReference.s10TransactionIdDate Facultatif Ce champ est calculé par notre serveur. Il est donc inutile de le valoriser (il sera ignoré si valorisé). 22
statementReference Facultatif 23
  • Exemple de requête credit
      ...
CREDIT;1;012323232323231;SIM201206810160;124;201201;201212;1600000012331447;
470;1;978;test@worldline.net;123;127.0.0.1;MOTO;123456;VISA;context;
origin;;;RefC123
...
    

Format de la réponse à la requête credit

La réponse contient certains champs de la requête (à l'exception des champs de carte) ainsi que les champs suivants :

Champs Description Numéro de champ CSV
Le nom de la balise est credit . Nom de la fonction 1
recordSequence N6 – attribut qui indique le numéro de ligne, ce qui vous permet de rapprocher la réponse de la requête. 2
merchantId 3
transactionReference 4
amount 5
currencyCode 6
customerEmail 7
customerId 8
customerIpAddress 9
orderId 10
paymentMeanBrand 11
returnContext 12
transactionOrigin 13
panType 14
s10TransactionReference.s10TransactionId 15
s10TransactionReference.s10TransactionIdDate 16
responseCode 17
acquirerResponseCode 18
authorisationId 19
maskedPan 20
newStatus 21
operationDateTime 22
officeBatchResponseCode 23
transactionPlatform Usage futur (systématiquement valorisé à ‘PROD’ pour le moment). 24
statementReference 25
  • Exemple de réponse à une requête credit
      ...
CREDIT;1;012323232323231;SIM201206810160;124;978;test@worldline.net;
123;127.0.0.1;123456;VISA;
context;origin;;;;00;00;1234569654656;160000.47;TO_CAPTURE;2012-06-14T16:
00:00+02:00;00;PROD;RefC123
...
    

Fonction walletOrder du service office

Cette fonction vous permet d’effectuer des paiements en utilisant les informations contenues dans le wallet de vos clients.

Format de la requête walletOrder

Tous les enregistrements de la partie « body » doivent contenir les informations suivantes :

Champs Présence Commentaires Numéro de champ CSV
Le nom de la balise est walletOrder . Obligatoire Nom de la fonction 1
recordSequence Obligatoire N6 – attribut qui indique le numéro de ligne, ce qui vous permet de rapprocher la réponse de la requête. 2
merchantId Obligatoire 3
transactionReference Obligatoire Facultatif si vous utilisez le S10TransactionReference . 4
amount Obligatoire 5
captureDay Facultatif 6
captureMode Facultatif 7
currencyCode Obligatoire 8
customerEmail Facultatif 9
customerId Facultatif 10
customerIpAddress Facultatif 11
merchantTransactionDateTime Facultatif 12
orderChannel Obligatoire 13
orderId Facultatif 14
paymentMeanId Obligatoire 15
returnContext Facultatif 16
statementReference Facultatif 17
merchantWalletId Obligatoire 18
transactionOrigin Facultatif 19
cardCSCValue Facultatif 20
paymentPattern Facultatif 21
fraudData.bypass3DS Facultatif 22
fraudData.bypassCtrlList Facultatif 23
fraudData.bypassInfoList Facultatif 24
fraudData.allowedCardCountryList Facultatif 25
fraudData.deniedCardCountryList Facultatif 26
fraudData.allowedCardArea Facultatif 27
fraudData.deniedCardArea Facultatif 28
fraudData.allowedIpCountryList Facultatif 29
fraudData.deniedIpCountryList Facultatif 30
fraudData.allowedIpArea Facultatif 31
fraudData.deniedIpArea Facultatif 32
s10TransactionReference.s10TransactionId Obligatoire Facultatif si vous utilisez le transactionReference . 33
s10TransactionReference.s10TransactionIdDate Facultatif Ce champ est calculé par notre serveur. Il est donc inutile de le valoriser (il sera ignoré si valorisé). 34
  • Exemple de requête walletOrder au format CSV
      ...
WALLETORDER;1;012323232323231;SIM201206810160;1000;0;VALIDATION;978;
test@worldline.com;123;127.0.0.1;2012-11-29T17:04:30Z;INTERNET;123456;1;
context;;2;origin;all;;;;;;;;;FRA;;;;100 ;ONE_SHOT
...
    

Format de la réponse à la requête walletOrder

La réponse contient tous les champs de la requête excepté cardCSCValue ainsi que les champs suivants :

Champs Commentaires Numéro de champ CSV
Le nom de la balise est walletOrder . Nom de l'opération 1
recordSequence N6 – attribut qui indique le numéro de ligne, ce qui vous permet de rapprocher la réponse de la requête. 2
merchantId 3
transactionReference 4
amount 5
captureDay 6
captureMode 7
currencyCode 8
customerEmail 9
customerId 10
customerIpAddress 11
merchantTransactionDateTime 12
orderChannel 13
orderId 14
paymentMeanId 15
returnContext 16
statementReference 17
merchantWalletId 18
transactionOrigin 19
paymentPattern 20
fraudData.bypass3DS 21
fraudData.bypassCtrlList 22
fraudData.bypassInfoList 23
fraudData.allowedCardCountryList 24
fraudData.deniedCardCountryList 25
fraudData.allowedCardArea 26
fraudData.deniedCardArea 27
fraudData.allowedIpCountryList 28
fraudData.deniedIpCountryList 29
fraudData.allowedIpArea 30
fraudData.deniedIpArea 31
s10TransactionReference.s10TransactionId 32
s10TransactionReference.s10TransactionIdDate 33
acquirerResponseCode 34
authorisationId 35
complementaryCode 36
complementaryInfo 37
guaranteeIndicator 38
holderAuthentRelegation 39
holderAuthentStatus 40
maskedPan 41
officeBatchResponseCode 42
responseCode 43
transactionDateTime 44
tokenPan 45
cardData.cardProductCode 46
cardData.cardProductName 47
cardData.cardProductProfile 48
cardData.cardScheme 49
cardData.issuerCode 50
cardData.issuerCountryCode 51
cardData.cardProductUsageLabel 52
transactionPlatform Systématiquement valorisé à ‘PROD’ pour le moment. 53
cardCSCResultCode 54
avsPostcodeResponseCode 55
avsAddressResponseCode 56
authorMessageReference Non valorisé 57
authorisationTypeLabel Non valorisé 58
  • Exemple de réponse à une requête walletOrder
      ...
WALLETORDER;1;012323232323231;SIM201206810160;1000;0;VALIDATION;978;
test@worldline.com;123;127.0.0.1;20121129T17:04:30Z;INTERNET;123456;1;
context;;2;origin;ONE_SHOT;all;;;;;;;;;FRA;;;; 00;
1234569654656;;;;;;160000.47;00;00;2012-06-14T16:00:00+02:00;;;;;;;;PROD
...
    

Fonction walletCredit du service office

Cette fonction vous permet de créditer vos clients via leur wallet sans transaction préalable.

Format de la requête walletCredit

Tous les enregistrements de la partie « body » doivent contenir les informations suivantes :

Champs Présence Description Numéro de champ CSV
Le nom de la balise est walletCredit . Obligatoire Nom de la fonction 1
recordSequence Obligatoire N6 – attribut qui indique le numéro de ligne, ce qui vous permet de rapprocher la réponse de la requête. 2
merchantId Obligatoire 3
transactionReference Obligatoire Facultatif si vous utilisez le S10TransactionReference . 4
amount Obligatoire 5
merchantWalletId Obligatoire 6
paymentMeanId Obligatoire 7
currencyCode Obligatoire 8
customerEmail Facultatif 9
customerId Facultatif 10
customerIpAddress Facultatif 11
orderChannel Facultatif 12
orderId Facultatif 13
returnContext Facultatif 14
transactionOrigin Facultatif 15
s10TransactionReference.s10TransactionId Obligatoire Facultatif si vous utilisez le transactionReference . 16
s10TransactionReference.s10TransactionIdDate Facultatif Ce champ est calculé par notre serveur. Il est donc inutile de le valoriser (il sera ignoré si valorisé). 17
statementReference Facultatif 18
  • Exemple de requête walletCredit
      ...
WALLETCREDIT;1;012323232323231;SIM201206810160;124;A01;2;978;
test@worldline.net;123;127.0.0.1;MOTO;123456;VISA;context;origin;;;RefWN123
...
    

Format de la réponse à la requête walletCredit

La réponse contient tous les champs de la requête ainsi que les champs suivants :

Champs Description Numéro de champ CSV
Le nom de la balise est walletCredit . Nom de l’opération 1
recordSequence N6 – attribut qui indique le numéro de ligne, ce qui vous permet de rapprocher la réponse de la requête. 2
merchantId 3
transactionReference 4
amount 5
merchantWalletId 6
paymentMeanId 7
currencyCode 8
customerEmail 9
customerId 10
customerIpAddress 11
orderChannel 12
orderId 13
returnContext 14
transactionOrigin 15
s10TransactionReference.s10TransactionId Facultatif si vous utilisez le transactionReference . 16
s10TransactionReference.s10TransactionIdDate Facultatif si vous utilisez le transactionReference . 17
responseCode 18
acquirerResponseCode 19
authorisationId 20
maskedPan 21
paymentMeanBrand 22
newStatus 23
operationDateTime 24
officeBatchResponseCode 25
transactionPlatform Systématiquement valorisé à ‘PROD’. 26
statementReference 27
  • Exemple de réponse à une requête walletCredit
      ...
WALLETCREDIT;1;012323232323231;SIM201206810160;124;A01;2;978;
test@worldline.net;123;127.0.0.1;MOTO;123456;context;
origin;;;00;00;1234569654656;160000.47;VISA;
TO_CAPTURE;2012-06-14T16:00:00+02:00;00;PROD ;RefWN123
...
    

Fonction recycle du service office

Cette fonction permet de créer une nouvelle transaction à partir des données bancaires d'une transaction précédente. Cette opération est similaire à la duplication, mais avec des limites. Elle vous permet de recycler une transaction expirée ou refusée ou capturée partiellement (le montant n'a pas été entièrement réglé) sans dépasser le montant de la transaction initiale.

Format de la requête recycle

Tous les enregistrements de la partie « body » doivent contenir les informations suivantes :

Champs Présence Commentaires Numéro de champ CSV
Le nom de la balise est recycle . Obligatoire Nom de l'opération 1
recordSequence Obligatoire N6 – attribut qui indique le numéro de ligne, ce qui vous permet de rapprocher la réponse de la requête. 2
merchantId Obligatoire 3
transactionReference Obligatoire Facultatif si vous utilisez le S10TransactionReference . 4
amount Obligatoire 5
currencyCode Obligatoire 6
captureDay Facultatif 7
captureMode Facultatif 8
fromTransactionReference Obligatoire Référence de la transaction à recycler. Facultatif si vous utilisez le S10FromTransactionReference 9
merchantTransactionDateTime Facultatif 10
transactionOrigin Facultatif 11
statementReference Facultatif 12
s10TransactionReference.s10TransactionId Obligatoire Facultatif si vous utilisez le transactionReference . 13
s10TransactionReference.s10TransactionIdDate Facultatif Ce champ est calculé par notre serveur. Il est donc inutile de le valoriser (il sera ignoré si valorisé). 14
s10FromTransactionReference.s10TransactionId Obligatoire Référence de la transaction à recycler. Facultatif si vous utilisez le fromTransactionReference . 15
s10FromTransactionReference.s10TransactionIdDate Obligatoire Référence de la transaction à recycler. Facultatif si vous utilisez le fromTransactionReference . 16
lastRecoveryIndicator Facultatif 17
  • Exemple de requête recycle
      ...
RECYCLE;1;012323232323231;SIM201206810160;1000;978;1;VALIDATION;
SIM2012068102311;2012-06-07T11:30:47+02:00;SOB;REF1023540;;;;
...
    

Format de la réponse à la requête recycle

La réponse contient tous les champs de la requête ainsi que les champs suivants :

Champs Description Numéro de champ CSV
Le nom de la balise est recycle . Nom de la fonction 1
acquirerResponseCode 18
authorisationId 19
complementaryCode 20
complementaryInfo 21
maskedPan 22
officeBatchResponseCode 23
panExpiryDate 24
paymentMeanBrand 25
responseCode 26
scoreColor 27
scoreInfo 28
scoreProfile 29
scoreThreshold 30
scoreValue 31
transactionDateTime 32
cardData.cardProductCode 33
cardData.cardProductName 34
cardData.cardProductProfile 35
cardData.cardScheme 36
cardData.issuerCode 37
cardData.issuerCountryCode 38
cardData.cardProductUsageLabel 39
paymentMeanBrandSelectionStatus 40
transactionPlatform Systématiquement valorisé à ‘PROD’ pour le moment. 41
  • Exemple de réponse à une requête recycle
      ...
ECYCLE;1;012323232323231;SIM201206810160;1000;978;1;VALIDATION;
SIM2012068102311;2012-06-07T11:30:47+02:00;SOB;REF1023540;;;;;;00;
956798798534;;;4700.58;00;201408;VISA;00;;;;;;2013-10-30T16:40:
00+02:00;;;;;;;;PROD
...
    

Fonction directDebitOrder du service office

Si vous possédez les informations bancaires d'un client, cette fonction vous permet d'effectuer des paiements de type prélèvement (SDD).

Format de la requête directDebitOrder

Tous les enregistrements de la partie « body » doivent contenir les informations suivantes :

Champs Présence Commentaires Numéro de champ CSV
Le nom de la balise est directDebitOrder . Obligatoire 1
recordSequence Obligatoire 2
merchantId Obligatoire 3
transactionReference Obligatoire 4
amount Obligatoire 5
captureDay Facultatif 6
captureMode Facultatif 7
currencyCode Obligatoire 8
customerId Facultatif 9
customerIpAddress Facultatif 10
mandateId Obligatoire 11
merchantTransactionDateTime Facultatif 12
paymentPattern Facultatif 13
orderChannel Obligatoire 14
orderId Facultatif 15
returnContext Facultatif 16
statementReference Facultatif 17
transactionOrigin Facultatif 18
valueDate Facultatif 19
holderContact.firstName Facultatif 20
holderContact.lastName Facultatif 21
holderContact.gender Facultatif 22
holderContact.phone Facultatif 23
holderContact.email Facultatif 24
holderAddress.city Facultatif 25
holderAddress.country Facultatif 26
holderAddress.streetName Facultatif 27
holderAddress.streetNumber Facultatif 28
holderAddress.zipCode Facultatif 29
holderAddress.additionalAddress1 Facultatif 30
holderAddress.additionalAddress2 Facultatif 31
holderAddress.additionalAddress3 Facultatif 32
holderAddress.postbox Facultatif 33
holderAddress.state Facultatif 34
instalmentData.number Facultatif 35
instalmentData.datesList Facultatif 36
instalmentData.transactionReferencesList Facultatif 37
instalmentData.amountsList Facultatif 38
instalmentData.s10TransactionIdsList Facultatif 39
fraudData.bypass3DS Facultatif 40
fraudData.bypassCtrlList Facultatif 41
fraudData.bypassInfoList Facultatif 42
fraudData.allowedCardCountryList Facultatif 43
fraudData.deniedCardCountryList Facultatif 44
fraudData.allowedCardArea Facultatif 45
fraudData.deniedCardArea Facultatif 46
fraudData.allowedIpCountryList Facultatif 47
fraudData.deniedIpCountryList Facultatif 48
fraudData.allowedIpArea Facultatif 49
fraudData.deniedIpArea Facultatif 50
s10TransactionReference.s10TransactionId Obligatoire Référence de la transaction. Facultatif si vous utilisez le transactionReference . 51
s10TransactionReference.s10TransactionIdDate Facultatif Ce champ est calculé par notre serveur. Il est donc inutile de le valoriser (il sera ignoré si valorisé). 52
  • Exemple de requête directDebitOrder
      ...
DIRECTDEBITORDER;1;012323232323231;TIR20140904000004;1000;;
AUTHOR_CAPTURE;978;12300;127.0.0.1;000000000000004403;2014-09-04T14:
04:30Z;;INTERNET;8888;context;ref1000;
batch;20140905;;;;;;;;;;;;;;;;;;;;;;;;;;;;
...
    

Format de la réponse à la requête directDebitOrder

La réponse contient tous les champs de la requête ainsi que les champs suivants :

Champs Commentaires Numéro de champ CSV
Le nom de la balise est directDebitOrder . Nom de la fonction 1
recordSequence N6 – attribut qui indique le numéro de ligne, ce qui vous permet de rapprocher la réponse de la requête. 2
merchantId 3
transactionReference 4
amount 5
captureDay 6
captureMode 7
currencyCode 8
customerId 9
customerIpAddress 10
mandateId 11
merchantTransactionDateTime 12
paymentPattern 13
orderChannel 14
orderId 15
returnContext 16
statementReference 17
transactionOrigin 18
valueDate 19
holderContact.firstName 20
holderContact.lastName 21
holderContact.gender 22
holderContact.phone 23
holderContact.email 24
holderAddress.city 25
holderAddress.country 26
holderAddress.streetName 27
holderAddress.streetNumber 28
holderAddress.zipCode 29
holderAddress.additionalAddress1 30
holderAddress.additionalAddress2 31
holderAddress.additionalAddress3 32
holderAddress.postbox 33
holderAddress.state 34
instalmentData.number 35
instalmentData.datesList 36
instalmentData.transactionReferencesList 37
instalmentData.amountsList 38
instalmentData.s10TransactionIdsList 39
fraudData.bypass3DS 40
fraudData.bypassCtrlList 41
fraudData.bypassInfoList 42
fraudData.allowedCardCountryList 43
fraudData.deniedCardCountryList 44
fraudData.allowedCardArea 40
fraudData.deniedCardArea 41
fraudData.allowedIpCountryList 42
fraudData.deniedIpCountryList 43
fraudData.allowedIpArea 44
fraudData.deniedIpArea 45
s10TransactionReference.s10TransactionId 46
s10TransactionReference.s10TransactionIdDate 47
acquirerResponseCode 48
authorisationId 49
captureLimitDate 50
creditorId 51
guaranteeIndicator 52
holderAuthentRelegation 53
holderAuthentStatus 54
maskedPan 55
officeBatchResponseCode 56
responseCode 57
transactionActors 58
transactionDateTime 59
transactionPlatform Usage futur (systématiquement valorisé à ‘PROD’ pour le moment). 60
secureReference 61
  • Exemple de réponse à une requête directDebitOrder
      ...
DIRECTDEBITORDER;1;012323232323231;TIR20140904000024;1000;5;
AUTHOR_CAPTURE;978;123;127.0.0.1;000000000000004403;2014-
09-04T14:04:30Z;ONE_SHOT;INTERNET;8888;context;stateref;
batch;20140909;;;;;;;;;;;1;Thu Sep 04 00:00:00 CEST 
2014;TIR20140904000024;1000;;;;;;;;;;;;;;;00;
33105000010020140904;20140909;;;;;AGRIFRPP879/FR76
#####################48;00;00;B2C;2014-09-04T15:16:24+02:00
;PROD;SR12565459
...
    

Fonction acceptChallenge du service office

Cette fonction vous permet de vérifier et d’accepter le risque de fraude sur des transactions ayant un score de fraude orange. Une fois la transaction acceptée, elle reprend son cycle de vie normal.

Format de la requête acceptChallenge

Tous les enregistrements de la partie « body » doivent contenir les informations suivantes :

Champs Présence Commentaires Numéro de champ CSV
Le nom de la balise est acceptChallenge . Obligatoire Nom de la fonction 1
recordSequence Obligatoire N6 – attribut qui indique le numéro de ligne, ce qui vous permet de rapprocher la réponse de la requête. 2
merchantId Obligatoire 3
transactionReference Obligatoire Référence de la transaction. Facultatif si vous utilisez le S10TransactionReference . 4
validationIndicator Facultatif 5
operationOrigin Facultatif 6
comment Facultatif 7
s10TransactionReference.s10TransactionId Obligatoire Référence de la transaction. Facultatif si vous utilisez le transactionReference . 8
s10TransactionReference.s10TransactionIdDate Obligatoire Référence de la transaction. Facultatif si vous utilisez le transactionReference . 9
  • Exemple de requête acceptChallenge
      ...
ACCEPTCHALLENGE;1;012323232323231;SIM201206810160;Y;batch;client fidelity;;
...
    

Format de la réponse à la requête acceptChallenge

La réponse contient tous les champs de la requête ainsi que les champs suivants :

Champs Description Numéro de champ CSV
Le nom de la balise est acceptChallenge . Nom de la fonction 1
acquirerResponseCode 10
authorisationId 11
captureLimitDate 12
newStatus 13
officeBatchResponseCode 14
operationDateTime 15
responseCode
  • Exemple de réponse à une requête acceptChallenge
      ...
ACCEPTCHALLENGE;1;012323232323231;SIM201206810160;Y;batch;client fidelity;;;00;956798798534; 
20150515;VALIDATED;00;2015-02-12T09:30:47+02:00;00
...
    

Fonction refuseChallenge du service office

Cette fonction vous permet de vérifier et de refuser le risque de fraude sur des transactions ayant un score de fraude orange. Dans le cas d’un refus, la transaction n’est pas envoyée en paiement.

Format de la requête refuseChallenge

Tous les enregistrements de la partie « body » doivent contenir les informations suivantes :

Champs Présence Commentaires Numéro de champ CSV
Le nom de la balise est refuseChallenge . Obligatoire Nom de la fonction 1
recordSequence Obligatoire N6 – attribut qui indique le numéro de ligne, ce qui vous permet de rapprocher la réponse de la requête. 2
merchantId Obligatoire 3
transactionReference Obligatoire Référence de la transaction. Facultatif si vous utilisez le S10TransactionReference . 4
operationOrigin Facultatif 5
comment Facultatif 6
s10TransactionReference.s10TransactionId Obligatoire Référence de la transaction. Facultatif si vous utilisez le transactionReference . 7
s10TransactionReference.s10TransactionIdDate Obligatoire Référence de la transaction. Facultatif si vous utilisez le transactionReference . 8
  • Exemple de requête refuseChallenge
      ...
REFUSECHALLENGE;1;012323232323231;SIM201206810160;batch;score warning;;
...
    

Format de la réponse à la requête refuseChallenge

La réponse contient tous les champs de la requête ainsi que les champs suivants :

Champs Description Numéro de champs CSV
Le nom de la balise est refuseChallenge . Nom de la fonction 1
newStatus 9
officeBatchResponseCode 10
operationDateTime 11
responseCode 12
  • Exemple de réponse à une requête refuseChallenge
      ...
REFUSECHALLENGE;1;012323232323231;SIM201206810160;batch;score warning;;;REFUSED;00;2015-02-12T09:30:47+02:00;00
...
    

Fonction panToToken du service token

Cette opération permet de tokéniser un numéro de carte.

Format de la requête panToToken

Tous les enregistrements de la partie « body » doivent contenir les informations suivantes :

Champs Présence Commentaires Numéro de champ CSV
Le nom de la balise est panToToken . Obligatoire Nom de l'opération 1
recordSequence Obligatoire N6 – attribut qui indique le numéro de ligne, ce qui vous permet de rapprocher la réponse de la requête. 2
merchantId Obligatoire 3
pan Obligatoire 4
userId Obligatoire 5
  • Exemple de requête panToToken
      ...
PANTOTOKEN;1;012323232323231;idofuser;4975497549754975
...
    

Format de la réponse à la requête panToToken

La réponse contient les champs suivants :

Champs Commentaires Numéro de champ CSV
Le nom de la balise est panToToken . Nom de l'opération 1
recordSequence N6 – attribut qui indique le numéro de ligne, ce qui vous permet de rapprocher la réponse de la requête. 2
merchantId 3
tokenPan 4
responseCode 5
officeBatchResponseCode 6
  • Exemple de réponse à une requête panToToken
      ...
PANTOTOKEN;1;012323232323231;497899AcDEF57631;00;00
...
    

Fonction transactionToToken du service token

Cette opération permet de transformer le PAN d’une transaction existante en token.

Format de la requête transactionToToken

Tous les enregistrements de la partie « body » doivent contenir les informations suivantes :

Champs Présence Commentaires Numéro de champ CSV
Le nom de la balise est transactionToToken . Obligatoire Nom de l'opération 1
recordSequence Obligatoire N6 – attribut qui indique le numéro de ligne, ce qui vous permet de rapprocher la réponse de la requête. 2
merchantId Obligatoire

3
fromMerchantId Facultatif

Identifiant du commerçant de la transaction d’origine.

Obligatoire si différent du merchantId .

4
fromTransactionReference Facultatif

Obligatoire si s10FromTransactionReference non renseigné.

5
s10FromTransactionReference.s10TransactionId Facultatif

Voir duplicate

Obligatoire si fromTransactionReference non renseigné.

6
s10FromTransactionReference.s10TransactionIdDate Facultatif

Voir duplicate

Obligatoire si fromTransactionReference non renseigné.

7
merchantExternalId Facultatif 8
  • Exemple de requête transactionToToken
      ...
TRANSACTIONTOTOKEN;1;024729465300101;024729465300006;SIM20170613140621;;;
myMerchantExternalId
...
    

Format de la réponse à la requête transactionToToken

La réponse contient les champs suivants :

Champs Commentaires Numéro de champ CSV
Le nom de la balise est transactionToToken. Nom de l'opération 1
recordSequence N6 – attribut qui indique le numéro de ligne, ce qui vous permet de rapprocher la réponse de la requête. 2
merchantId 3
fromMerchantId 4
fromTransactionReference 5
s10FromTransactionReference.s10TransactionId Voir duplicate 6
s10FromTransactionReference.s10TransactionIdDate Voir duplicate 7
merchantExternalId 8
responseCode 9
tokenPan 10
paymentMeanBrand 11
cardExpiryDate 12
officeBatchResponseCode 13
  • Exemple de réponse à une requête transactionToToken
      ...
TRANSACTIONTOTOKEN;1;024729465300101;024729465300006;SIM20170613140621;;;
myMerchantExternalId;;00;490700h719850600;VISA ;201802;00
...
    

Analyser les erreurs lors de la vérification du fichier

Il y a plusieurs niveaux de codes réponses lors du traitement d'un fichier par Sips Office Batch . Plusieurs vérifications globales sont effectuées avant que le fichier ne soit traité. Si l'une de ces vérifications échoue, le fichier est entièrement refusé ( processingResponseCode n'est égal ni à 00 ni à 01).

Le fichier de réponses retourné contient le code de résultat global du traitement dans le champ processingResponseCode présent dans l'en-tête du fichier.

Codes de resultat global du traitement

Code Signification
00 Fichier traité correctement . Le fichier contient la liste des opérations.
01 Fichier traité correctement. Une opération a été associée à un commerçant qui n'est pas lié à l'identifiant de remettant. Le champ officeBatchResponseCode sera valorisé à 80 par l'opération.
02 Fichier déjà traité . Le numéro de séquence du fichier est inférieur à ce qu’il devrait être. Le numéro correct est envoyé dans le message qui décrit l'erreur.
03 Rupture de séquence dans le numéro de séquence du fichier . Le numéro de séquence du fichier est supérieur à ce qu’il devrait être. Le numéro correct est envoyé dans le message qui décrit l'erreur.
04 Problème technique . Problème interne
05 Fichier trop grand
06 Le nombre d'opérations dépasse la quantité maximale autorisée . Le nombre maximal d'opérations a été atteint.
07 Le nombre d'opérations compté est différent du nombre indiqué dans le champ nbRecord.
08 Opération en double
09 Enregistrement invalide
10 Format de fichier invalide . Le format du fichier est invalide (la description de l'erreur sera retournée dans la balise « error details ».).
11 Remettant invalide . Le remettant déclaré dans l'en-tête est invalide. Fichier invalide (ces codes concernent les versions plus anciennes de Sips Office Batch .)
Autres codes Fichier invalide (ces codes concernent les versions plus anciennes de Sips Office Batch .)
Code réponse Cause Solution
Différent de 00 et 01 Redémarrage du traitement Le fichier de requêtes doit être renvoyé en intégralité avec le même numéro de séquence de fichier.
03 Rupture de numéro de séquence du fichier Le fichier a été complètement refusé. Si nécessaire, le numéro de séquence doit être corrigé et le fichier renvoyé.
04 Erreur technique Une opération a provoqué une erreur technique. Le traitement du fichier n'a pas été interrompu. Dans ce cas, le traitement peut être très rapide, car toutes les opérations avec le code 25 ou 90 seront refusées (champ responseCode ).

Pour l'heure, Worldline n'a pas fourni de mécanisme pour différer le traitement dans l'attente qu'une connexion soit de nouveau établie.

Aucun Erreur de format du fichier CSV Lorsqu’il n’est pas possible d’identifier le service de traitement par lot de la version du fichier, ou si ce dernier comporte une erreur de format (blanc dans le fichier, etc.), une réponse générique est envoyée au commerçant.

Cette réponse ressemble à ceci :

RESPONSE

FATAL_ERROR

END

Analyser les erreurs causées par une opération

Chaque opération est considérée comme indépendante. Chaque opération a son propre code de réponse stocké (champ officeBatchResponseCode ). Le code indique le champ qui est à l'origine du problème.

Si une opération échoue, le traitement n'est pas interrompu. L'opération est refusée avec le code-réponse WL Sips classique (champ responseCode ).

Codes Champs en question
00 Aucun (tous les champs sont corrects.)
01 merchantId error
03 transactionReference error
04 merchantTransactionDateTime error
05 amount error
06 captureDay error
07 captureMode error
08 operationAmount error
09 operationOrigin error
11 currencyCode error
12 customerIpAddress error
13 customerEmail error
14 customerId error
16 orderId error
17 orderChannel error
18 transactionOrigin error
19 returnContext error
20 fromTransactionReference error
21 cardExpiryDate error
22 cardNumber error
23 cardCSCValue error
24 cardEffectiveDate error
25 cardSeqNumber error
26 paymentMeanBrand error
27 authorisationId error
28 merchantWalletId error
29 paymentMeanId error
30 paymentPattern error
31 number error
32 statementReference error
33 panType error
34 mandateId error
35 valueDate error
36 paymentMeanAlias error
37 account error
38 bankCode error
39 transactionActors error
45 Date fields format error
46 settlementMode error
47 comment error
48 validationIndicator error
50 s10TransactionId error
51 s10TransactionIdDate error
52 s10FromTransactionId error
53 s10FromTransactionIdDate error
54 fraudData error
55 riskManagementDynamicParam error
56 riskManagementDynamicValue error
57 riskManagementDynamicSettingList error
58 fraudListReason error
59 fraudListType error
60 fraudListLevel error
61 fraudListElementType error
62 fraudListElementValue error
63 lastRecoveryIndicator error
80 Commerçant non enregistré pour Sips Office Batch /non lié au remettant déclaré dans l'en-tête.

Étape 3 : tester sur l’environnement de recette client

L’objectif est de valider que la structure du fichier et la syntaxe des requêtes sont correctes. Pour cette 1ère étape, vous n’avez pas besoin d’avoir un contrat d’acquisition car il n’y a pas de connexion vers l’acquéreur de paiement : les demandes d’autorisations carte sont simulées. Les transactions sont stockées dans le back office WL Sips et vous pouvez tester les opérations de caisse sur ces transactions.

Contactez l’assistance technique pour configurer une boutique sur l’environnement de recette et demander la mise en place d’un transfert de fichier entre votre site et WL Sips .

Étape 4 : valider le passage en production

Commencez par soumettre un fichier contenant un nombre limité d’opérations afin de valider le passage en production. Vérifiez dans le fichier réponse que toutes les opérations se sont bien déroulées :

  • Surveillez le taux d’acceptation (nombre de responseCode  00/nombre total d’opérations).
  • Vérifiez la nature des refus non bancaires.
    • Problème technique : responseCode  90, 97, 99,
    • Fraude acquéreur : responseCode  34.