WL SIPS DOCS

Release 23.1

aller directement au contenu

Rechercher par mots clés

Sips Office Batch XML

Pour rechercher dans la page utiliser Ctrl+F sur votre clavier

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.

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.

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.

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


diagramme montrant la cinématique de paiement via office batch

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.

  • 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.

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.

image montrant un remettant gérant les opérations de plusieurs commerçants dans un seul fichier

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

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

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 transaction, ou une opération de caisse sur une transaction, ou une fonction satellite (comme la gestion du wallet ou encore la gestion de la fraude).

  • Exemple de structure principale du fichier de requêtes ou de réponses :
<?xml version="1.0" encoding="utf-8"?>
<file type="…" format="…" version="…">
<header …   >
    <remitterId>023101122334455</remitterId>
    <date>2012-06-08+01:00</date>
    <time>15:35:00+01:00</time>
    <sequence>86</sequence>
</header>
<body>
   <operation1 …   />
   <operation2 …   />
    …
</body>
<end nbRecord="nn" />
</file>
Note: les diagrammes XML sont fournis en annexes afin de vous permettre de valider les fichiers de requêtes et de réponses.

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.
  • 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 sur 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.

Merci de vous rapprocher de votre contact habituel dans le cas où la limite des 100 Mo ou 100 000 enregistrements entraîne une contrainte dans votre intégration.

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 19 Acceptation des transactions et des opérations de caisse.
token Doit valoir 1 Tokenisation et détokenisation des PAN.
fraud Doit valoir 2 Gestion de la fraude.
wallet Doit valoir 3 Gestion des coordonnées de paiement dans le wallet utilisée dans le cas du OneClick et de l’abonnement.
  • Exemple de type de fichier :
<file type="request" format="office" version="19">
   ...
</file>

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

Champs Présence Format Description
Le nom de la balise est header Obligatoire ANS20 Indique un enregistrement d'en-tête
remitterId Obligatoire N15 Identifiant du remettant
date Obligatoire XML Date Date à laquelle le fichier a été créé dans le fuseau horaire du commerçant (AAAA-MM-JJ+hh:mm)
time Obligatoire XML Time Heure à laquelle le fichier a été créé dans le fuseau horaire du commerçant (hh:mm:ss+hh:mm)
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).
  • Exemple d’en-tête :
<header>
    <remitterId>023101122334455</remitterId>
    <date>2012-06-11+02:00</date>
    <time>14:28:00+01:00</time>
    <sequence>86</sequence>
  </header>

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.

  • Exemple de partie « corps » pour le service « office »
<body>
…
    <cardOrder  recordSequence=”2”>
      …
    </cardOrder>
…
</body>

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

Champs Présence Format Description
Le nom de la balise est end Obligatoire ANS20 Indique la fin de l'enregistrement.
nbRecord Obligatoire N6 Nombres d'opérations dans la partie « body ».
  • Exemple d’élément « end »
<end nbRecord="227" />

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 de requête.

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

Avec :

  • SOB : fichier de 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.

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

Champs Format Description
Le nom de la balise est header ANS20 Indique un enregistrement d'en-tête
remitterId N15 Identifiant du remettant
date XML Date Date de création du fichier dans le fuseau horaire du commerçant (YYYY-MM-DD+hh:mm)
time XML Time Heure de création du fichier dans le fuseau horaire du commerçant (hh:mm:ss+hh:mm)
sequence N6 Numéro de séquence du fichier
processingResponseCode AN2 Code réponse de traitement
beginProcessTime

ANS25

ISO8601

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

ANS25

ISO8601

Horodatage de fin du traitement du fichier dans le fuseau horaire du commerçant
  • Exemple d’en-tête :
<header>
    <remitterId>023101122334455</remitterId>
    <date>2012-06-11+02:00</date>
    <time>14:28:00+01:00</time>
    <sequence>86</sequence>
    <processingResponseCode>00</processingResponseCode>
    <beginProcessTime>2012-06-07T11:30:47+02:00</beginProcessTime>
    <endProcessTime>2012-06-07T11:31:43+02:00</endProcessTime>
  </header>

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 :
…
<error-details>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]</error-details>
…

A chaque opération du fichier de requêtes correspond un élément du fichier de réponses 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éponses est similaire à celle du fichier de requêtes et comporte les champs suivants :

Champs Format Description
Le nom de la balise est end ANS20 Indique la fin de l'enregistrement
nbRecord N6 Nombres d'opérations dans la partie « body »
  • Exemple d’élément « end » :
<end nbRecord="227" />

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.

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

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.

Les différentes fonctions possibles font l’objet de requêtes spécifiques. La liste des fonctions et les détails des requêtes et réponses sont disponibles sur cette page.

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.

Les containers regroupent fonctionnellement les données. Ils peuvent contenir des listes, dans ce cas, les éléments des listes doivent être fournis de la manière suivante :

<elementList>
<elementName>value1</elementName>
<elementName>value2</elementName>
…
</elementList>

Tous ces champs sont facultatifs.

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.

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 (100 000 opérations. Cette limite peut être inférieure si vous n'utilisez pas la dernière version du connecteur).
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.
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.

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
64 order context field error
65 travel context field error
66 Delivery data field error
67 Address field error
68 Contact field error
69 cardAuthPolicy error
70 Shopping Cart Detail field error
71 merchantExternalId error
72 paymentMeanBrandSelectionStatus error
73 settlementArchivingReference error
74 settlementMerchantSpecificData error
75 fromTransactionAcceptor error
76 initialAuthenticationCavv error
77 bancontactMerchantCustomerAuthenticationMethod error
78 invoiceReference error
79 subMerchantCategoryCode error
80 Commerçant non enregistré pour Sips Office Batch/non lié au remettant déclaré dans l'en-tête
81 subMerchantLegalId error
82 subMerchantShortName error
83 subMerchantContractNumber error
84 subMerchantUrl error
85 subMerchantAddress error
86 subMerchantId error

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.

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.

Vous trouverez ci-dessous les schémas XML correspondant à chaque service disponible dans Sips Office Batch.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

<xs:element name="file">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="header" />
        <xs:element ref="body" />
        <xs:element ref="end" />
      </xs:sequence>
      <xs:attribute name="type" type="xs:string" use="required" fixed="request" />
      <xs:attribute name="format" type="xs:string" use="required"/>
      <xs:attribute name="version" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>

<xs:element name="header">
    <xs:complexType>
      <xs:all>
        <xs:element name="remitterId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="date" type="xs:date" maxOccurs="1" minOccurs="1"/>
        <xs:element name="time" type="xs:time" maxOccurs="1" minOccurs="1"/>
        <xs:element name="sequence" type="xs:string" maxOccurs="1" minOccurs="1"/>
      </xs:all>
    </xs:complexType>
  </xs:element>

<xs:element name="body">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="validate" />
        <xs:element ref="refund" />
        <xs:element ref="duplicate" />
        <xs:element ref="cardOrder" />
        <xs:element ref="directDebitOrder" />
        <xs:element ref="cancel" />
        <xs:element ref="credit" />
        <xs:element ref="walletOrder" />
        <xs:element ref="acceptChallenge" />
        <xs:element ref="refuseChallenge" />
        <xs:element ref="walletCredit" />
      </xs:choice>
    </xs:complexType>
  </xs:element>

  <xs:element name="end">
    <xs:complexType>
      <xs:attribute name="nbRecord" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>

<xs:element name="cardOrder">
<xs:complexType>
      <xs:all>
        <xs:element name="amount" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="captureDay" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="captureMode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="cardCSCValue" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="cardEffectiveDate" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="cardExpiryDate" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="cardNumber" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="cardSeqNumber" type="xs:short" maxOccurs="1" minOccurs="0"/>
        <xs:element name="currencyCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="customerEmail" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerIpAddress" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="fraudData" maxOccurs="1" minOccurs="0"/>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="merchantTransactionDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="orderChannel" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="orderId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentPattern" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="returnContext" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="statementReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="panType" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="paymentMeanData" maxOccurs="1" minOccurs="0" />
        <xs:element name="holderData" type="holderData" maxOccurs="1" minOccurs="0" />
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" />
        <xs:element ref="riskManagementCustomDataList" maxOccurs="1" minOccurs="0" />
        <xs:element ref="shoppingCartDetail" maxOccurs="1" minOccurs="0" />
        <xs:element name="paymentMeanBrand" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentMeanBrandSelectionStatus" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="orderContext" maxOccurs="1" minOccurs="0" />
        <xs:element ref="travelContext" maxOccurs="1" minOccurs="0" />
        <xs:element name="deliveryContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="deliveryAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element name="deliveryData" type="DeliveryData" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="billingContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="billingAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="authenticationData" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element name="initialSchemeTransactionIdentifier" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="settlementArchivingReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="settlementMerchantSpecificData" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="invoiceReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="subMerchantId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="subMerchantCategoryCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="subMerchantLegalId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="subMerchantName" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="subMerchantAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element name="subMerchantUrl" type="xs:string" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

<xs:element name="directDebitOrder">
    <xs:complexType>
      <xs:all>
        <xs:element name="amount" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="captureDay" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="captureMode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="currencyCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="customerId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerIpAddress" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="fraudData" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="instalmentData" minOccurs="0" maxOccurs="1" />
        <xs:element name="mandateId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="merchantTransactionDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentPattern" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="orderChannel" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="orderId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="returnContext" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="statementReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="valueDate" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" />
        <xs:element ref="riskManagementCustomDataList" maxOccurs="1" minOccurs="0" />
        <xs:element ref="shoppingCartDetail" maxOccurs="1" minOccurs="0" />
        <xs:element name="settlementArchivingReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="settlementMerchantSpecificData" type="xs:string" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

<xs:element name="credit">
    <xs:complexType>
      <xs:all>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="amount" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="cardEffectiveDate" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="cardExpiryDate" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="cardNumber" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="cardCSCValue" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="cardSeqNumber" type="xs:short" maxOccurs="1" minOccurs="0"/>
        <xs:element name="currencyCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="customerEmail" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerIpAddress" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="orderChannel" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="orderId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentMeanBrand" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="returnContext" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="panType" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" />
        <xs:element name="statementReference" type="xs:string" maxOccurs="1" minOccurs="0" />
        <xs:element name="settlementArchivingReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="settlementMerchantSpecificData" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="shoppingCartDetail" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="orderContext" maxOccurs="1" minOccurs="0"/>
        <xs:element name="invoiceReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderContact" type="Contact" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

<xs:element name="cancel">
    <xs:complexType>
      <xs:all>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="amount" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="currencyCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="operationOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" />
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

<xs:element name="refund">
    <xs:complexType>
      <xs:all>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="operationAmount" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="currencyCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="operationOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" />
        <xs:element ref="shoppingCartDetail" maxOccurs="1" minOccurs="0" />
        <xs:element name="settlementArchivingReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="settlementMerchantSpecificData" type="xs:string" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

<xs:element name="duplicate">
    <xs:complexType>
      <xs:all>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="amount" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="currencyCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="captureDay" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="captureMode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerEmail" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerIpAddress" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="fraudData" maxOccurs="1" minOccurs="0"/>
        <xs:element name="fromTransactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="merchantTransactionDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="orderChannel" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="orderId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="returnContext" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="fromMerchantId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="statementReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" />
        <xs:element ref="s10FromTransactionReference" maxOccurs="1" minOccurs="0" />
        <xs:element ref="orderContext" maxOccurs="1" minOccurs="0" />
        <xs:element ref="travelContext" maxOccurs="1" minOccurs="0" />
        <xs:element name="deliveryContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="deliveryAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element name="deliveryData" type="DeliveryData" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="billingContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="billingAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="authenticationData" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="shoppingCartDetail" maxOccurs="1" minOccurs="0" />
        <xs:element name="paymentMeanData" minOccurs="0" maxOccurs="1" />
            <xs:complexType>
                <xs:all>
                    <xs:element name="paypal" type="duplicate.paymentMeanData.paypal" minOccurs="0" maxOccurs="1"/>
                    <xs:element name="bcacup" type="duplicate.paymentMeanData.bcacup" minOccurs="0" maxOccurs="1"/>
                </xs:all>
            </xs:complexType>
        </xs:element>
        <xs:element name="settlementArchivingReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="settlementMerchantSpecificData" type="xs:string" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

	<xs:complexType name="duplicate.paymentMeanData.paypal">
		<xs:all>
			<xs:element name="invoiceId" type="xs:string" minOccurs="0" />
		</xs:all>
	</xs:complexType>
	<xs:complexType name="duplicate.paymentMeanData.bcacup">
		<xs:all>
			<xs:element name="settlementMode" type="xs:string" minOccurs="0" />
		</xs:all>
	</xs:complexType>

<xs:element name="validate">
    <xs:complexType>
      <xs:all>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="operationAmount" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="currencyCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="operationOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" />
        <xs:element name="lastRecoveryIndicator" type="xs:string" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

<xs:element name="walletOrder">
   <xs:complexType>
     <xs:all>
        <xs:element name="amount" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="captureDay" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="captureMode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="currencyCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="customerEmail" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerIpAddress" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="fraudData" maxOccurs="1" minOccurs="0"/>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="merchantTransactionDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="orderChannel" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="orderId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentMeanId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="returnContext" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="statementReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="merchantWalletId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="transactionOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="cardCSCValue" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentPattern" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" />
        <xs:element ref="orderContext" maxOccurs="1" minOccurs="0" />
        <xs:element ref="travelContext" maxOccurs="1" minOccurs="0" />
        <xs:element name="deliveryContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="deliveryAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element name="deliveryData" type="DeliveryData" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="billingContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="billingAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="authenticationData" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element name="initialSchemeTransactionIdentifier" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentMeanBrand" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="settlementArchivingReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="settlementMerchantSpecificData" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentMeansBrandSelectionStatus" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentMeanData" type="walletOrder.paymentMeanData" maxOccurs="1" minOccurs="0"/>
        <xs:element name="subMerchantId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="subMerchantCategoryCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="subMerchantLegalId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="subMerchantName" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="subMerchantAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element name="subMerchantUrl" type="xs:string" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

  <xs:element name="walletCredit">
    <xs:complexType>
      <xs:all>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="amount" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="merchantWalletId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="paymentMeanId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="currencyCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="customerEmail" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerIpAddress" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="orderChannel" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="orderId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="returnContext" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" />
        <xs:element name="statementReference" type="xs:string" maxOccurs="1" minOccurs="0" />
        <xs:element name="settlementArchivingReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="settlementMerchantSpecificData" type="xs:string" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

  <xs:element name="acceptChallenge">
    <xs:complexType>
      <xs:all>
        <xs:element name="comment" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="operationOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="validationIndicator" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" />
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

<xs:element name="refuseChallenge">
    <xs:complexType>
      <xs:all>
        <xs:element name="comment" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="operationOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" />
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

  <xs:element name="fraudData">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="bypass3DS" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="bypassCtrlList" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="ctrl"
                type="xs:string" maxOccurs="unbounded" minOccurs="1">
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="bypassInfoList" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="info"
                type="xs:string" maxOccurs="unbounded" minOccurs="1">
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:choice maxOccurs="1" minOccurs="0">
          <xs:element name="allowedCardCountryList"
            type="CountryList">
          </xs:element>
          <xs:element name="deniedCardCountryList"
            type="CountryList">
          </xs:element>
        </xs:choice>
        <xs:choice maxOccurs="1" minOccurs="0">
          <xs:element name="allowedCardArea"
            type="xs:string">
          </xs:element>
          <xs:element name="deniedCardArea"
            type="xs:string">
          </xs:element>
        </xs:choice>
        <xs:choice maxOccurs="1" minOccurs="0">
          <xs:element name="allowedIpCountryList"
            type="CountryList">
          </xs:element>
          <xs:element name="deniedIpCountryList"
            type="CountryList">
          </xs:element>
        </xs:choice>
        <xs:choice maxOccurs="1" minOccurs="0">
          <xs:element name="allowedIpArea" type="xs:string"></xs:element>
          <xs:element name="deniedIpArea" type="xs:string"></xs:element>
        </xs:choice>
        <xs:element minOccurs="0" name="riskManagementDynamicSettingList">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" minOccurs="0" name="riskManagementDynamicSetting" type="RiskManagementDynamicSetting"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

<xs:complexType name="CountryList">
    <xs:sequence>
      <xs:element name="country" type="xs:string" maxOccurs="unbounded" minOccurs="1"></xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="RiskManagementDynamicSetting">
    <xs:sequence>
      <xs:element name="riskManagementDynamicParam" type="xs:string" maxOccurs="1" minOccurs="1"></xs:element>
      <xs:element name="riskManagementDynamicValue" type="xs:string" maxOccurs="1" minOccurs="1"></xs:element>
    </xs:sequence>
  </xs:complexType>

<xs:complexType name="Contact">
    <xs:all>
      <xs:element name="email" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="firstName" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="lastName" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="gender" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="phone" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="mobile" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="title" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="initials" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
    </xs:all>
  </xs:complexType>

<xs:complexType name="Address">
    <xs:all>
      <xs:element name="additionalAddress1" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="additionalAddress2" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="additionalAddress3" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="city" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="country" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="streetName" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="streetNumber" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="zipCode" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="state" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="postbox" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="DeliveryData">
    <xs:all>
      <xs:element name="deliveryMethod" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
    </xs:all>
  </xs:complexType>

  <xs:element name="instalmentData">
    <xs:complexType>
      <xs:all>
        <xs:element name="number" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="datesList" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="date"
                type="xs:string" maxOccurs="unbounded" minOccurs="1">
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="transactionReferencesList" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="transactionReference"
                type="xs:string" maxOccurs="unbounded" minOccurs="1">
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="amountsList" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="amount"
                type="xs:string" maxOccurs="unbounded" minOccurs="1">
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="s10TransactionIdsList" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="s10TransactionId"
                type="xs:string" maxOccurs="unbounded" minOccurs="1">
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>

<xs:element name="paymentMeanData">
    <xs:complexType>
      <xs:all>
        <xs:element name="accord" type="accord" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="cofinoga" type="cofinoga" maxOccurs="1" minOccurs="0"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="accord">
    <xs:all>
      <xs:element name="settlementMode" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="cofinoga">
    <xs:all>
      <xs:element name="settlementMode" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="holderData">
    <xs:all>
      <xs:element name="birthDate" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
    </xs:all>
  </xs:complexType>

  <xs:element name="s10TransactionReference">
    <xs:complexType>
      <xs:all>
        <xs:element name="s10TransactionId" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="s10TransactionIdDate" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>

<xs:element name="s10FromTransactionReference">
    <xs:complexType>
      <xs:all>
        <xs:element name="s10FromTransactionId" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="s10FromTransactionIdDate" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>

<xs:element name="riskManagementCustomDataList">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="riskManagementCustomData" maxOccurs="unbounded" minOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

<xs:element name="riskManagementCustomData">
    <xs:complexType>
      <xs:all>
        <xs:element name="riskManagementCustomSequence" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="riskManagementCustomValue" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>

<xs:element name="shoppingCartDetail">
    <xs:complexType>
      <xs:all>
        <xs:element name="shoppingCartTotalAmount" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="shoppingCartTotalQuantity" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="shoppingCartTotalTaxAmount" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="mainProduct" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="ShoppingCartItemList" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element ref="shoppingCartItem" maxOccurs="unbounded" minOccurs="1"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>

  <xs:element name="shoppingCartItem">
    <xs:complexType>
      <xs:all>
        <xs:element name="productName" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="productDescription" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="productCode" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="productSKU" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="productUnitAmount" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="productQuantity" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="productTaxRate" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="productUnitTaxAmount" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="productCategory" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="productTaxCategory" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element ref="travelData" maxOccurs="1" minOccurs="0"/>
      </xs:all>
    </xs:complexType>
  </xs:element>

  <xs:element name="travelData">
    <xs:complexType>
      <xs:all>
        <xs:element name="numberOfTravelers" type="xs:long" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="travelStartDateTime" type="xs:dateTime" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="travelEndDateTime" type="xs:dateTime" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="travelReason" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="travelCardPeriod" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="travelCardType" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="PassportDataList" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element ref="passportData" maxOccurs="unbounded" minOccurs="1"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="StayDataList" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element ref="stayData" maxOccurs="unbounded" minOccurs="1"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="JourneyDataList" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element ref="journeyData" maxOccurs="unbounded" minOccurs="1"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="travelingPayerIndicator" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element ref="bookingData" maxOccurs="1" minOccurs="0"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>

  <xs:element name="passportData">
    <xs:complexType>
      <xs:all>
        <xs:element name="passportExpirationDate" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="passportIssueCountry" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>

  <xs:element name="stayData">
    <xs:complexType>
      <xs:all>
        <xs:element name="stayLocation" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="stayArrivalDateTime" type="xs:dateTime" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="stayDepartureDateTime" type="xs:dateTime" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="numberOfNights" type="xs:long" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="numberOfPeopleStaying" type="xs:long" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="roomServiceLevel" type="xs:long" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="stayNumberOfRooms" type="xs:long" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="stayCategory" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="stayCompany" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="stayInsurance" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="stayInsuranceIndicator" type="xs:boolean" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="stayRentalCarIndicator" type="xs:boolean" maxOccurs="1" minOccurs="0"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>

  <xs:element name="journeyData">
    <xs:complexType>
      <xs:all>
        <xs:element name="departureLocation" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="arrivalLocation" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="destinationCountry" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="departureDateTime" type="xs:dateTime" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="numberOfTickets" type="xs:long" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="ticketIssuerName" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="ticketReference" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="ticketIssueCity" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="ticketIssueDate" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="fareBasis" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="carrierIdentifier" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="carrierName" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="classLevel" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="journeyModality" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="journeyMode" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="journeyStage" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="journeySequence" type="xs:long" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="journeyInsurance" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="journeyInsuranceIndicator" type="xs:boolean" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="journeyCancellableIndicator" type="xs:boolean" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="luggageSupplementIndicator" type="xs:boolean" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="ticketExchangeabilityIndicator" type="xs:boolean" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="journeyAmount" type="xs:long" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="journeyNature" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>

  <xs:element name="bookingData">
    <xs:complexType>
      <xs:all>
        <xs:element name="bookingPlatform" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="bookingPlatformOrderId" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="bookingId" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="bookerFirstName" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="bookerLastName" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>

  <xs:element name="orderContext">
    <xs:complexType>
      <xs:all>
        <xs:element name="customerHostName" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="customerBrowserType" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="customerANI" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="customerANIInformationIdentifier" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>

  <xs:element name="travelContext">
    <xs:complexType>
      <xs:all>
        <xs:element name="departureDate" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="passengerName" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="originAirport" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="numberOfRoutingCities" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="routingCityList" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="routingCity" type="xs:string" maxOccurs="unbounded" minOccurs="1">
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="numberOfAirlineCarriers" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="airlineCarrierList" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="airlineCarrier" type="xs:string" maxOccurs="unbounded" minOccurs="1">
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="fareBasis" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="numberOfPassengers" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="destinationAirport" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="reservationCode" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>

  <xs:element name="authenticationData">
    <xs:complexType>
      <xs:all>
        <xs:element name="cardAuthPolicy" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:all>
              <xs:element name="checkAVS" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
              <xs:element name="ignoreCSCCheckResult" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
              <xs:element name="ignorePostcodeCheckResult" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
              <xs:element name="ignoreAddressCheckResult" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
              <xs:element name="automaticReverse" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
            </xs:all>
          </xs:complexType>
        </xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>
</xs:schema>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

  <xs:element name="file">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="header" />
        <xs:element ref="error-details" minOccurs="0" />
        <xs:element ref="body" minOccurs="0" />
        <xs:element ref="end" />
      </xs:sequence>
      <xs:attribute name="type" type="xs:string" use="required" fixed="response" />
      <xs:attribute name="format" type="xs:string" use="required"/>
      <xs:attribute name="version" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>
  
  <xs:element name="header">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="remitterId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="date" type="xs:date" maxOccurs="1" minOccurs="1"/>
        <xs:element name="time" type="xs:time" maxOccurs="1" minOccurs="1"/>
        <xs:element name="sequence" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="processingResponseCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="beginProcessTime" type="xs:dateTime" maxOccurs="1" minOccurs="1"/>
        <xs:element name="endProcessTime" type="xs:dateTime" maxOccurs="1" minOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  
  <xs:element name="body">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="validate" />
        <xs:element ref="refund" />
        <xs:element ref="duplicate" />
        <xs:element ref="cardOrder" />
        <xs:element ref="directDebitOrder" />
        <xs:element ref="cancel" />
        <xs:element ref="credit" />
        <xs:element ref="walletOrder" />
        <xs:element ref="acceptChallenge" />
        <xs:element ref="refuseChallenge" />
        <xs:element ref="walletCredit" />
      </xs:choice>
    </xs:complexType>
  </xs:element>
  
  <!-- Error details for error response file -->
  <xs:element name="error-details" type="xs:string" />
  
  <xs:element name="end">
    <xs:complexType>
      <xs:attribute name="nbRecord" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>  

  
  <xs:element name="cardOrder">
    <xs:complexType>
      <xs:all>
        <!-- REQUEST -->
        <xs:element name="amount" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="captureDay" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="captureMode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="currencyCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="customerEmail" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerIpAddress" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="fraudData" maxOccurs="1" minOccurs="0"/>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="merchantTransactionDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="orderChannel" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="orderId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentPattern" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="returnContext" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="statementReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="panType" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="paymentMeanData" maxOccurs="1" minOccurs="0" />
        <xs:element name="holderData" type="holderData" maxOccurs="1" minOccurs="0" />
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" />
        <xs:element ref="orderContext" maxOccurs="1" minOccurs="0" />
        <xs:element ref="travelContext" maxOccurs="1" minOccurs="0" />
        <xs:element name="deliveryContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="deliveryAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element name="deliveryData" type="DeliveryData" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="billingContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="billingAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="authenticationData" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element name="initialSchemeTransactionIdentifier" type="xs:string" maxOccurs="1" minOccurs="0"/>

        <!-- RESPONSE -->
        <xs:element name="acquirerResponseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="authorisationId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="complementaryCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="complementaryInfo" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="guaranteeIndicator" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderAuthentRelegation" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderAuthentStatus" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="maskedPan" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="officeBatchResponseCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="responseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="tokenPan" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="authorMessageReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="acquirerResponseMessage" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentMeanTradingName" type="xs:string" maxOccurs="1" minOccurs="0"/>
      
        <xs:element ref="riskManagementCustomDataList" maxOccurs="1" minOccurs="0" />
        <xs:element ref="shoppingCartDetail" maxOccurs="1" minOccurs="0" />
        <xs:element ref="cardData" maxOccurs="1" minOccurs="0" />
        
        <xs:element name="recurringResponseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <!-- RMS fields -->
        <xs:element name="preAuthorisationProfile" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="preAuthorisationProfileValue" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element minOccurs="0" name="preAuthorisationRuleResultList">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" minOccurs="0" name="ruleResult" type="RuleResult"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="paymentMeanBrand" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentMeanBrandSelectionStatus" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionPlatform" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="cardCSCResultCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="avsPostcodeResponseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="avsAddressResponseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="authorisationTypeLabel" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="schemeTransactionIdentifier" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentAccountReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="virtualCardIndicator" type="xs:string" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>
  
  <xs:element name="directDebitOrder">
    <xs:complexType>
      <xs:all>
        <!-- REQUEST -->
        <xs:element name="amount" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="captureDay" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="captureMode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="currencyCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="customerId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerIpAddress" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="fraudData" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="instalmentData" minOccurs="0" maxOccurs="1" />
        <xs:element name="mandateId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="merchantTransactionDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentPattern" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="orderChannel" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="orderId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="returnContext" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="statementReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="valueDate" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" />
        
        <!-- RESPONSE -->
        <xs:element name="acquirerResponseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="authorisationId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="captureLimitDate" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="creditorId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="guaranteeIndicator" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderAuthentRelegation" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderAuthentStatus" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="maskedPan" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="officeBatchResponseCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="responseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionActors" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
        
        <xs:element ref="riskManagementCustomDataList" maxOccurs="1" minOccurs="0" />
        <xs:element ref="shoppingCartDetail" maxOccurs="1" minOccurs="0" />
                <!-- RMS fields -->
                <xs:element name="preAuthorisationProfile" type="xs:string" maxOccurs="1" minOccurs="0"/>
                <xs:element name="preAuthorisationProfileValue" type="xs:string" maxOccurs="1" minOccurs="0"/>
                <xs:element minOccurs="0" name="preAuthorisationRuleResultList">
                    <xs:complexType>
                        <xs:sequence>
                            <xs:element maxOccurs="unbounded" minOccurs="0" name="ruleResult" type="RuleResult"/>
                        </xs:sequence>
                    </xs:complexType>
                </xs:element>
        <xs:element name="transactionPlatform" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="secureReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

  <xs:element name="credit">
    <xs:complexType>
      <xs:all>
        <!-- REQUEST -->
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="amount" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="currencyCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="customerEmail" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerIpAddress" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="orderId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentMeanBrand" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="returnContext" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="panType" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" />
        <xs:element name="statementReference" type="xs:string" maxOccurs="1" minOccurs="0" />
        
        <!-- RESPONSE -->
        <xs:element name="responseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="acquirerResponseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="authorisationId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="maskedPan" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="newStatus" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="operationDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="officeBatchResponseCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="transactionPlatform" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="virtualCardIndicator" type="xs:string" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>
  
  <xs:element name="cancel">
    <xs:complexType>
      <xs:all>
        <!-- REQUEST -->
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="amount" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="currencyCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="operationOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" />
        
        <!-- RESPONSE -->
        <xs:element name="operationDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="responseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="newStatus" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="newAmount" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="officeBatchResponseCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="schemeTransactionIdentifier" type="xs:string" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>
  
  <xs:element name="refund">
    <xs:complexType>
      <xs:all>
        <!-- REQUEST -->
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="operationAmount" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="currencyCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="operationOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" />
        <xs:element ref="shoppingCartDetail" maxOccurs="1" minOccurs="0" />

        <!-- RESPONSE -->
        <xs:element name="operationDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="responseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="newStatus" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="newAmount" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="authorisationId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="acquirerResponseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="officeBatchResponseCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>
  
  <xs:element name="duplicate">
    <xs:complexType>
      <xs:all>
        <!-- REQUEST -->
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="amount" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="currencyCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="captureDay" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="captureMode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerEmail" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerIpAddress" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="fraudData" maxOccurs="1" minOccurs="0"/>
        <xs:element name="fromTransactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="merchantTransactionDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="orderChannel" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="orderId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="returnContext" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="fromMerchantId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="statementReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" />
        <xs:element ref="s10FromTransactionReference" maxOccurs="1" minOccurs="0" />
        <xs:element ref="orderContext" maxOccurs="1" minOccurs="0" />
        <xs:element ref="travelContext" maxOccurs="1" minOccurs="0" />
        <xs:element name="deliveryContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="deliveryAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element name="deliveryData" type="DeliveryData" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="billingContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="billingAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="authenticationData" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="shoppingCartDetail" maxOccurs="1" minOccurs="0" />

        <!-- RESPONSE -->
        <xs:element name="authorisationId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="acquirerResponseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="complementaryCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="complementaryInfo" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="responseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="scoreColor" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="scoreInfo" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="scoreProfile" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="scoreThreshold" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="scoreValue" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="officeBatchResponseCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="maskedPan" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="panExpiryDate" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentMeanBrand" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="cardData" maxOccurs="1" minOccurs="0" />
        <xs:element name="avsPostcodeResponseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="avsAddressResponseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="schemeTransactionIdentifier" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentAccountReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <!-- RMS fields -->
        <xs:element name="preAuthorisationProfile" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="preAuthorisationProfileValue" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element minOccurs="0" name="preAuthorisationRuleResultList">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" minOccurs="0" name="ruleResult" type="RuleResult"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="paymentMeanBrandSelectionStatus" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionPlatform" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentAccountReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="virtualCardIndicator" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="tokenPan" type="xs:string" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>
  
  <xs:element name="validate">
    <xs:complexType>
      <xs:all>
        <!-- REQUEST -->
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="operationAmount" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="currencyCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="operationOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" />
        <xs:element name="lastRecoveryIndicator" type="xs:string" maxOccurs="1" minOccurs="0"/>
        
        <!-- RESPONSE -->
        <xs:element name="operationDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="responseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="newStatus" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="newAmount" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="authorisationId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="acquirerResponseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="officeBatchResponseCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="captureLimitDate" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="schemeTransactionIdentifier" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentAccountReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>
  
  <xs:element name="walletOrder">
    <xs:complexType>
      <xs:all>
        <!-- REQUEST -->
        <xs:element name="amount" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="captureDay" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="captureMode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="currencyCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="customerEmail" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerIpAddress" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="fraudData" maxOccurs="1" minOccurs="0"/>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="merchantTransactionDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="orderChannel" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="orderId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentMeanId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="returnContext" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="statementReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="merchantWalletId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="transactionOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentPattern" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" />
        <xs:element ref="orderContext" maxOccurs="1" minOccurs="0" />
        <xs:element ref="travelContext" maxOccurs="1" minOccurs="0" />
        <xs:element name="deliveryContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="deliveryAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element name="deliveryData" type="DeliveryData" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="billingContact" type="Contact" maxOccurs="1" minOccurs="0"/>
        <xs:element name="billingAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="authenticationData" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderAddress" type="Address" maxOccurs="1" minOccurs="0"/>
        <xs:element name="initialSchemeTransactionIdentifier" type="xs:string" maxOccurs="1" minOccurs="0"/>

        <!-- RESPONSE -->
        <xs:element name="acquirerResponseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="authorisationId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="complementaryCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="complementaryInfo" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="guaranteeIndicator" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderAuthentRelegation" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="holderAuthentStatus" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="maskedPan" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="officeBatchResponseCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="responseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="tokenPan" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="cardData" maxOccurs="1" minOccurs="0" />
        <xs:element name="cardCSCResultCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="avsPostcodeResponseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="avsAddressResponseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <!-- RMS fields -->
        <xs:element name="preAuthorisationProfile" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="preAuthorisationProfileValue" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element minOccurs="0" name="preAuthorisationRuleResultList">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" minOccurs="0" name="ruleResult" type="RuleResult"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="transactionPlatform" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="authorMessageReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="authorisationTypeLabel" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="schemeTransactionIdentifier" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentAccountReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="virtualCardIndicator" type="xs:string" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

  <xs:element name="walletCredit">
    <xs:complexType>
      <xs:all>
        <!-- REQUEST -->
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="amount" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="merchantWalletId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="paymentMeanId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="currencyCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="customerEmail" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerIpAddress" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="orderChannel" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="orderId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="returnContext" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" /> 
        <xs:element name="statementReference" type="xs:string" maxOccurs="1" minOccurs="0" /> 

        <!-- RESPONSE -->
        <xs:element name="responseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="acquirerResponseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="authorisationId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="maskedPan" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentMeanBrand" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="newStatus" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="operationDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="officeBatchResponseCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="transactionPlatform" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="virtualCardIndicator" type="xs:string" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

  <xs:element name="acceptChallenge">
    <xs:complexType>
      <xs:all>
        <!-- REQUEST -->
        <xs:element name="comment" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="operationOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="validationIndicator" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" />
        <xs:element ref="orderContext" maxOccurs="1" minOccurs="0" />
        <xs:element ref="travelContext" maxOccurs="1" minOccurs="0" />
        
        <!-- RESPONSE -->
        <xs:element name="acquirerResponseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="authorisationId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="captureLimitDate" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="newStatus" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="operationDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="responseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="officeBatchResponseCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="schemeTransactionIdentifier" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentAccountReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>
  
  <xs:element name="refuseChallenge">
    <xs:complexType>
      <xs:all>
        <!-- REQUEST -->
        <xs:element name="comment" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="operationOrigin" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element ref="s10TransactionReference" maxOccurs="1" minOccurs="0" />
        
        <!-- RESPONSE -->
        <xs:element name="newStatus" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="operationDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="responseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="officeBatchResponseCode" type="xs:string" maxOccurs="1" minOccurs="1"/>        
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

  <xs:element name="fraudData">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="bypass3DS" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="bypassCtrlList" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="ctrl"
                type="xs:string" maxOccurs="unbounded" minOccurs="1">
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="bypassInfoList" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="info"
                type="xs:string" maxOccurs="unbounded" minOccurs="1">
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:choice maxOccurs="1" minOccurs="0">
          <xs:element name="allowedCardCountryList"
            type="CountryList">
          </xs:element>
          <xs:element name="deniedCardCountryList"
            type="CountryList">
          </xs:element>
        </xs:choice>
        <xs:choice maxOccurs="1" minOccurs="0">
          <xs:element name="allowedCardArea"
            type="xs:string">
          </xs:element>
          <xs:element name="deniedCardArea"
            type="xs:string">
          </xs:element>
        </xs:choice>
        <xs:choice maxOccurs="1" minOccurs="0">
          <xs:element name="allowedIpCountryList"
            type="CountryList">
          </xs:element>
          <xs:element name="deniedIpCountryList"
            type="CountryList">
          </xs:element>
        </xs:choice>
        <xs:choice maxOccurs="1" minOccurs="0">
          <xs:element name="allowedIpArea" type="xs:string"></xs:element>
          <xs:element name="deniedIpArea" type="xs:string"></xs:element>
        </xs:choice>
        <xs:element minOccurs="0" name="riskManagementDynamicSettingList">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" minOccurs="0" name="riskManagementDynamicSetting" type="RiskManagementDynamicSetting"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  
  <xs:complexType name="CountryList">
    <xs:sequence>
      <xs:element name="country" type="xs:string" maxOccurs="unbounded" minOccurs="1"></xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="RiskManagementDynamicSetting">
    <xs:sequence>
      <xs:element name="riskManagementDynamicParam" type="xs:string" maxOccurs="1" minOccurs="1"></xs:element>
      <xs:element name="riskManagementDynamicValue" type="xs:string" maxOccurs="1" minOccurs="1"></xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Contact">
    <xs:all>
      <xs:element name="email" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="firstName" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="lastName" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="gender" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="phone" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="mobile" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="Address">
    <xs:all>
      <xs:element name="additionalAddress1" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="additionalAddress2" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="additionalAddress3" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="city" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="country" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="streetName" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="streetNumber" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="zipCode" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="state" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="postbox" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="DeliveryData">
    <xs:all>
      <xs:element name="deliveryMethod" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
    </xs:all>
  </xs:complexType>

  <xs:element name="instalmentData">
    <xs:complexType>
      <xs:all>
        <xs:element name="number" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="datesList" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="date"
                type="xs:string" maxOccurs="unbounded" minOccurs="1">
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="transactionReferencesList" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="transactionReference"
                type="xs:string" maxOccurs="unbounded" minOccurs="1">
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="amountsList" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="amount"
                type="xs:string" maxOccurs="unbounded" minOccurs="1">
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="s10TransactionIdsList" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="s10TransactionId"
                type="xs:string" maxOccurs="unbounded" minOccurs="1">
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>


  <xs:element name="paymentMeanData">
    <xs:complexType>
      <xs:all>
        <xs:element name="accord" type="accord" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="cofinoga" type="cofinoga" maxOccurs="1" minOccurs="0"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="accord">
    <xs:all>
      <xs:element name="additionalAuthorisationNumber" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="settlementMode" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="cofinoga">
    <xs:all>
      <xs:element name="settlementMode" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
    </xs:all>
  </xs:complexType>
  
  <xs:complexType name="holderData">
    <xs:all>
      <xs:element name="birthDate" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
    </xs:all>
  </xs:complexType>


  <xs:element name="s10TransactionReference">
    <xs:complexType>
      <xs:all>
        <xs:element name="s10TransactionId" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="s10TransactionIdDate" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>

  <xs:element name="s10FromTransactionReference">
    <xs:complexType>
      <xs:all>
        <xs:element name="s10FromTransactionId" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="s10FromTransactionIdDate" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>


  <xs:element name="riskManagementCustomDataList">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="riskManagementCustomData"
          type="xs:string" maxOccurs="unbounded" minOccurs="1">
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="riskManagementCustomData">
    <xs:complexType>
      <xs:all>
        <xs:element name="riskManagementCustomSequence" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="riskManagementCustomValue" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>

  <xs:element name="shoppingCartDetail">
    <xs:complexType>
      <xs:all>
        <xs:element name="shoppingCartTotalAmount" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="shoppingCartTotalQuantity" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="shoppingCartTotalTaxAmount" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="mainProduct" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="ShoppingCartItemList" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="shoppingCartItem"
                type="xs:string" maxOccurs="unbounded" minOccurs="1">
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>

  <xs:element name="shoppingCartItem">
    <xs:complexType>
      <xs:all>
        <xs:element name="productName" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="productDescription" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="productCode" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="productSKU" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="productUnitAmount" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="productQuantity" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="productTaxRate" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="productUnitTaxAmount" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="productCategory" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>  

  <xs:element name="cardData">
    <xs:complexType>
      <xs:all>
        <xs:element name="cardProductCode" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="cardProductName" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="cardProductProfile" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="cardScheme" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="issuerCode" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="issuerCountryCode" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
<xs:element name="cardProductUsageLabel" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="RuleResult">
    <xs:sequence>
      <xs:element name="ruleCode" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="ruleType" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="ruleWeight" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="ruleSetting" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="ruleResultIndicator" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="ruleDetailedInfo" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:element name="orderContext">
    <xs:complexType>
      <xs:all>
        <xs:element name="customerHostName" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="customerBrowserType" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="customerANI" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="customerANIInformationIdentifier" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>  

  <xs:element name="travelContext">
    <xs:complexType>
      <xs:all>
        <xs:element name="departureDate" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="passengerName" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="originAirport" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="numberOfRoutingCities" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="routingCityList" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="routingCity" type="xs:string" maxOccurs="unbounded" minOccurs="1">
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="numberOfAirlineCarriers" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="airlineCarrierList" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="airlineCarrier" type="xs:string" maxOccurs="unbounded" minOccurs="1">
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="fareBasis" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="numberOfPassengers" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="destinationAirport" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="reservationCode" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>  

  <xs:element name="authenticationData">
    <xs:complexType>
      <xs:all>
        <xs:element name="cardAuthPolicy" maxOccurs="1" minOccurs="0">
          <xs:complexType>
            <xs:all>
              <xs:element name="checkAVS" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
              <xs:element name="ignoreCSCCheckResult" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
              <xs:element name="ignorePostcodeCheckResult" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
              <xs:element name="ignoreAddressCheckResult" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
              <xs:element name="automaticReverse" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
            </xs:all>
          </xs:complexType>
        </xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>

</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

  <xs:element name="file">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="header"/>
        <xs:element ref="body"/>
        <xs:element ref="end"/>
      </xs:sequence>
      <xs:attribute fixed="request" name="type" type="xs:string" use="required"/>
      <xs:attribute name="format" type="xs:string" use="required"/>
      <xs:attribute name="version" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>

<xs:element name="header">
    <xs:complexType>
      <xs:all>
        <xs:element maxOccurs="1" minOccurs="1" name="remitterId" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="date" type="xs:date"/>
        <xs:element maxOccurs="1" minOccurs="1" name="time" type="xs:time"/>
        <xs:element maxOccurs="1" minOccurs="1" name="sequence" type="xs:string"/>
      </xs:all>
    </xs:complexType>
  </xs:element>

<xs:element name="body">
    <xs:complexType>
      <xs:choice maxOccurs="unbounded" minOccurs="0">
        <xs:element ref="panToToken"/>
        <xs:element ref="transactionToToken"/>
      </xs:choice>
    </xs:complexType>
  </xs:element>

<xs:element name="panToToken">
    <xs:complexType>
      <xs:all>
        <xs:element maxOccurs="1" minOccurs="1" name="merchantId" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="userId" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="pan" type="xs:string"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>

<xs:element name="transactionToToken">
    <xs:complexType>
      <xs:all>
        <xs:element maxOccurs="1" minOccurs="1" name="merchantId" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="0" name="fromTransactionReference" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="0" name="fromMerchantId" type="xs:string"/>
        <xs:element ref="s10FromTransactionReference" maxOccurs="1" minOccurs="0" />
        <xs:element maxOccurs="1" minOccurs="0" name="merchantExternalId" type="xs:string"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="s10FromTransactionReference">
    <xs:complexType>
      <xs:all>
        <xs:element name="s10FromTransactionId" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="s10FromTransactionIdDate" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>

<xs:element name="end">
    <xs:complexType>
      <xs:attribute name="nbRecord" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>
  
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

<xs:element name="file">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="header"/>
        <xs:element minOccurs="0" ref="error-details"/>
        <xs:element minOccurs="0" ref="body"/>
        <xs:element ref="end"/>
      </xs:sequence>
      <xs:attribute fixed="response" name="type" type="xs:string" use="required"/>
      <xs:attribute name="format" type="xs:string" use="required"/>
      <xs:attribute name="version" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="header">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="1" minOccurs="1" name="remitterId" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="date" type="xs:date"/>
        <xs:element maxOccurs="1" minOccurs="1" name="time" type="xs:time"/>
        <xs:element maxOccurs="1" minOccurs="1" name="sequence" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="processingResponseCode" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="beginProcessTime" type="xs:dateTime"/>
        <xs:element maxOccurs="1" minOccurs="1" name="endProcessTime" type="xs:dateTime"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

<xs:element name="body">
    <xs:complexType>
      <xs:choice maxOccurs="unbounded" minOccurs="0">
        <xs:element ref="panToToken"/>
        <xs:element ref="transactionToToken"/>
      </xs:choice>
    </xs:complexType>
  </xs:element>

<!-- Error details for error response file -->
  <xs:element name="error-details" type="xs:string"/>

<xs:element name="end">
    <xs:complexType>
      <xs:attribute name="nbRecord" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>  

<xs:element name="panToToken">
    <xs:complexType>
      <xs:all>
        <xs:element maxOccurs="1" minOccurs="1" name="merchantId" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="0" name="responseCode" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="0" name="tokenPan" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="officeBatchResponseCode" type="xs:string"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="transactionToToken">
    <xs:complexType>
      <xs:all>
        <xs:element maxOccurs="1" minOccurs="1" name="merchantId" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="0" name="fromTransactionReference" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="0" name="fromMerchantId" type="xs:string"/>
        <xs:element ref="s10FromTransactionReference" maxOccurs="1" minOccurs="0" />
        <xs:element maxOccurs="1" minOccurs="1" name="responseCode" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="tokenPan" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="paymentMeanBrand" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="cardExpiryDate" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="officeBatchResponseCode" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="0" name="merchantExternalId" type="xs:string"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>

<xs:element name="s10FromTransactionReference">
    <xs:complexType>
      <xs:all>
        <xs:element name="s10FromTransactionId" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
        <xs:element name="s10FromTransactionIdDate" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      </xs:all>
    </xs:complexType>
  </xs:element>

</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

<xs:element name="file">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="header"/>
        <xs:element ref="body"/>
        <xs:element ref="end"/>
      </xs:sequence>
      <xs:attribute fixed="request" name="type" type="xs:string" use="required"/>
      <xs:attribute name="format" type="xs:string" use="required"/>
      <xs:attribute name="version" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>

<xs:element name="header">
    <xs:complexType>
      <xs:all>
        <xs:element maxOccurs="1" minOccurs="1" name="remitterId" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="date" type="xs:date"/>
        <xs:element maxOccurs="1" minOccurs="1" name="time" type="xs:time"/>
        <xs:element maxOccurs="1" minOccurs="1" name="sequence" type="xs:string"/>
      </xs:all>
    </xs:complexType>
  </xs:element>

<xs:element name="body">
    <xs:complexType>
      <xs:choice maxOccurs="unbounded" minOccurs="0">
        <xs:element ref="addToFraudList"/>
        <xs:element ref="removeFromFraudList"/>
      </xs:choice>
    </xs:complexType>
  </xs:element>

<xs:element name="addToFraudList">
    <xs:complexType>
      <xs:all>
        <xs:element maxOccurs="1" minOccurs="1" name="merchantId" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="0" name="fraudListReasonCode" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="fraudListType" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="fraudListLevel" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="fraudListElementType" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="fraudListElementValue" type="xs:string"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>

<xs:element name="removeFromFraudList">
    <xs:complexType>
      <xs:all>
        <xs:element maxOccurs="1" minOccurs="1" name="merchantId" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="fraudListType" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="fraudListLevel" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="fraudListElementType" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="fraudListElementValue" type="xs:string"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="end">
    <xs:complexType>
      <xs:attribute name="nbRecord" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

  <xs:element name="file">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="header"/>
        <xs:element minOccurs="0" ref="error-details"/>
        <xs:element minOccurs="0" ref="body"/>
        <xs:element ref="end"/>
      </xs:sequence>
      <xs:attribute fixed="response" name="type" type="xs:string" use="required"/>
      <xs:attribute name="format" type="xs:string" use="required"/>
      <xs:attribute name="version" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="header">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="1" minOccurs="1" name="remitterId" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="date" type="xs:date"/>
        <xs:element maxOccurs="1" minOccurs="1" name="time" type="xs:time"/>
        <xs:element maxOccurs="1" minOccurs="1" name="sequence" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="processingResponseCode" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="beginProcessTime" type="xs:dateTime"/>
        <xs:element maxOccurs="1" minOccurs="1" name="endProcessTime" type="xs:dateTime"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

<xs:element name="body">
    <xs:complexType>
      <xs:choice maxOccurs="unbounded" minOccurs="0">
        <xs:element ref="addToFraudList"/>
        <xs:element ref="removeFromFraudList"/>
      </xs:choice>
    </xs:complexType>
  </xs:element>

<!-- Error details for error response file -->
  <xs:element name="error-details" type="xs:string"/>

<xs:element name="end">
    <xs:complexType>
      <xs:attribute name="nbRecord" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>  

<xs:element name="addToFraudList">
    <xs:complexType>
      <xs:all>
        <xs:element maxOccurs="1" minOccurs="1" name="merchantId" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="fraudListType" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="fraudListLevel" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="fraudListElementType" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="fraudListElementValue" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="officeBatchResponseCode" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="0" name="responseCode" type="xs:string"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>

  
  <xs:element name="removeFromFraudList">
    <xs:complexType>
      <xs:all>
        <xs:element maxOccurs="1" minOccurs="1" name="merchantId" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="fraudListType" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="fraudListLevel" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="fraudListElementType" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="fraudListElementValue" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="1" name="officeBatchResponseCode" type="xs:string"/>
        <xs:element maxOccurs="1" minOccurs="0" name="responseCode" type="xs:string"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>

</xs:schema>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

<xs:element name="file">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="header" />
        <xs:element ref="body" />
        <xs:element ref="end" />
      </xs:sequence>
      <xs:attribute name="type" type="xs:string" use="required" fixed="request" />
      <xs:attribute name="format" type="xs:string" use="required"/>
      <xs:attribute name="version" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>

<xs:element name="header">
    <xs:complexType>
      <xs:all>
        <xs:element name="remitterId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="date" type="xs:date" maxOccurs="1" minOccurs="1"/>
        <xs:element name="time" type="xs:time" maxOccurs="1" minOccurs="1"/>
        <xs:element name="sequence" type="xs:string" maxOccurs="1" minOccurs="1"/>
      </xs:all>
    </xs:complexType>
  </xs:element>

  <xs:element name="body">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="addCard" />
        <xs:element ref="addDirectDebit" />
        <xs:element ref="deletePaymentMean" />
        <xs:element ref="updatePaymentMean" />
        <xs:element ref="signOff" />
        <xs:element ref="addIssuerWallet" />
      </xs:choice>
    </xs:complexType>
  </xs:element>

<xs:element name="addCard">
    <xs:complexType>
      <xs:all>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="merchantWalletId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="paymentMeanAlias" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="cardExpiryDate" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="cardNumber" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="paymentMeanBrand" type="xs:string" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

<xs:element name="addDirectDebit">
    <xs:complexType>
      <xs:all>
        <xs:element name="customerAccount" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="customerBankCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="mandateId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="merchantWalletId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="paymentMeanAlias" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentMeanBrand" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionActors" type="xs:string" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

<xs:element name="deletePaymentMean">
    <xs:complexType>
      <xs:all>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="merchantWalletId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="paymentMeanId" type="xs:string" maxOccurs="1" minOccurs="1"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

<xs:element name="updatePaymentMean">
    <xs:complexType>
      <xs:all>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="merchantWalletId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="paymentMeanAlias" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentMeanId" type="xs:string" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

<xs:element name="signOff">
    <xs:complexType>
      <xs:all>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="merchantWalletId" type="xs:string" maxOccurs="1" minOccurs="1"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

<xs:element name="addIssuerWallet">
 <xs:complexType>
  <xs:all>
   <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
   <xs:element name="merchantWalletId" type="xs:string" maxOccurs="1" minOccurs="1"/>
   <xs:element name="paymentMeanAlias" type="xs:string" maxOccurs="1" minOccurs="1"/>
   <xs:element name="issuerWalletId" type="xs:string" maxOccurs="1" minOccurs="1"/>
   <xs:element name="issuerWalletType" type="xs:string" maxOccurs="1" minOccurs="1"/>
  </xs:all>
  <xs:attribute name="recordSequence" type="xs:string" use="required" />
 </xs:complexType>
</xs:element>

  <xs:element name="end">
    <xs:complexType>
      <xs:attribute name="nbRecord" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>

</xs:schema>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">

<xs:element name="file">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="header" />
        <xs:element ref="error-details" minOccurs="0" />
        <xs:element ref="body" minOccurs="0" />
        <xs:element ref="end" />
      </xs:sequence>
      <xs:attribute name="type" type="xs:string" use="required" fixed="response" />
      <xs:attribute name="format" type="xs:string" use="required"/>
      <xs:attribute name="version" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>

<xs:element name="header">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="remitterId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="date" type="xs:date" maxOccurs="1" minOccurs="1"/>
        <xs:element name="time" type="xs:time" maxOccurs="1" minOccurs="1"/>
        <xs:element name="sequence" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="processingResponseCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="beginProcessTime" type="xs:dateTime" maxOccurs="1" minOccurs="1"/>
        <xs:element name="endProcessTime" type="xs:dateTime" maxOccurs="1" minOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="body">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element ref="addCard" />
        <xs:element ref="addDirectDebit" />
        <xs:element ref="deletePaymentMean" />
        <xs:element ref="updatePaymentMean" />
        <xs:element ref="signOff" />
        <xs:element ref="addIssuerWallet" />
      </xs:choice>
    </xs:complexType>
  </xs:element>

  <!-- Error details for error response file -->
  <xs:element name="error-details" type="xs:string" />

<xs:element name="end">
    <xs:complexType>
      <xs:attribute name="nbRecord" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>  

<xs:element name="addCard">
    <xs:complexType>
      <xs:all>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="merchantWalletId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="paymentMeanAlias" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="cardExpiryDate" type="xs:string" maxOccurs="1" minOccurs="1"/>

<xs:element name="maskedPan" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentMeanId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="officeBatchResponseCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="responseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="walletCreationDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

  <xs:element name="addDirectDebit">
    <xs:complexType>
      <xs:all>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="merchantWalletId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="paymentMeanAlias" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentMeanBrand" type="xs:string" maxOccurs="1" minOccurs="0"/>

        <xs:element name="maskedPan" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentMeanId" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="officeBatchResponseCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="responseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="transactionActors" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="walletCreationDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

<xs:element name="deletePaymentMean">
    <xs:complexType>
      <xs:all>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="merchantWalletId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="paymentMeanId" type="xs:string" maxOccurs="1" minOccurs="1"/>

<xs:element name="officeBatchResponseCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="responseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="walletActionDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>        
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

<xs:element name="updatePaymentMean">
    <xs:complexType>
      <xs:all>
        <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="merchantWalletId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="paymentMeanAlias" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="paymentMeanId" type="xs:string" maxOccurs="1" minOccurs="0"/>


        <xs:element name="officeBatchResponseCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="responseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="walletActionDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>  
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

<xs:element name="signOff">
      <xs:complexType>
        <xs:all>
         <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="merchantWalletId" type="xs:string" maxOccurs="1" minOccurs="1"/>

<xs:element name="officeBatchResponseCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
        <xs:element name="responseCode" type="xs:string" maxOccurs="1" minOccurs="0"/>
        <xs:element name="walletActionDateTime" type="xs:string" maxOccurs="1" minOccurs="0"/>  
      </xs:all>
      <xs:attribute name="recordSequence" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

  <xs:complexType name="walletPaymentMeanData">
    <xs:all>
      <xs:element name="maskedPan" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="panExpiryDate" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="paymentMeanAlias" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="paymentMeanBrand" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="paymentMeanId" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
      <xs:element name="transactionActors" type="xs:string" maxOccurs="1" minOccurs="0"></xs:element>
    </xs:all>
  </xs:complexType>

<xs:element name="addIssuerWallet">
<xs:complexType>
  <xs:all>
   <!-- REQUEST -->
         <xs:element name="merchantId" type="xs:string" maxOccurs="1" minOccurs="1"/>
         <xs:element name="merchantWalletId" type="xs:string" maxOccurs="1" minOccurs="1"/>
         <xs:element name="paymentMeanAlias" type="xs:string" maxOccurs="1" minOccurs="1"/>
         <xs:element name="issuerWalletId" type="xs:string" maxOccurs="1" minOccurs="1"/>
         <xs:element name="issuerWalletType" type="xs:string" maxOccurs="1" minOccurs="1"/>
   <!-- RESPONSE -->
         <xs:element name="paymentMeanId" type="xs:string" maxOccurs="1" minOccurs="0"/>
         <xs:element name="officeBatchResponseCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
         <xs:element name="responseCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
         <xs:element name="walletCreationDateTime" type="xs:string" maxOccurs="1" minOccurs="1"/>        
  </xs:all>
  <xs:attribute name="recordSequence" type="xs:string" use="required" />
</xs:complexType>
</xs:element>

</xs:schema>

Ce site utilise des traceurs pour améliorer votre expérience de navigation, effectuer des analyses et des recherches sur votre utilisation du site web de documentation WL Sips.
En fermant ce bandeau vous refusez notre utilisation des traceurs sur votre appareil.

Paramètres