Sips Office Batch XML
Introduction
WL Sips is a secure multi-channel e-commerce payment solution that complies with the PCI DSS standard. It allows you to accept and manage payment transactions by taking into account business rules related to your activity (payment on despatch, deferred payment, recurring payment, payment in instalments, etc.).
The purpose of this document is to explain the implementation steps of the Sips Office Batch solution and of initial payment and cash management tests.
Who does this document target?
Sips Office Batch aims to provide you with Sips Office functions in Batch mode. These functions are bases on offline file exchanges. Some of the online mode options are not available, e.g. 3-D Secure authentication.
This implementation guide is intended for your technical team.
To get an overview of the WL Sips solution, we advise you to consult the following documents:
- Functional presentation
- Functionality set-up guide
Prerequisites
Knowledge of file transfer protocols and standards for programming languages used today, such as Java, PHP or .Net, is necessary to develop a connection to Sips Office Batch .
Understanding payments with Sips Office Batch
The processing of files by Sips Office Batch can be divided into several steps:

1. The merchant uploads request files to an external FTPS or SFTP account supplied by Worldline .
2. Worldline 's file transfer gateway receives the request files and sends them to the Sips Office Batch engine.
3. The Sips Office Batch engine processes the request files one by one and generates one response file per request file.
4. The Sips Office Batch engine sends the response files to the external FTPS or SFTP account through the file transfer gateway.
5. The merchant retrieves the response files from the external FTPS or SFTP account supplied by Worldline .
6. The Sips Office Batch engine, via the file transfer gateway, destroys the response files after a first successful download by the merchant.
General rules about transfers
- The merchant can choose either FTPS or SFTP as transfer method.
- Worldline provides a dedicated merchant account (with a username and password). The Worldline account must be the same for request files and response files; however some file name restrictions apply.
- Worldline 's SFTP and FTPS servers also verify the merchant’s IP address in addition to their username and password.
- Worldline gives the response file a name that differs from that of the request file.
- After a given period (1 week), response files are deleted from the FTPS or SFTP accounts even if they were not downloaded.
Managing the operations from several merchants
The remitter is a partner who acts as a technical operator managing the file exchanges with the WL Sips payment platform. A remitter can send the operations from several merchants in the same file provided these operations are declared in the name of this remitter during the registration step.

It should be noted that a remitter can also be a merchant themselves.
Understanding the format of the exchanged files
The request and response files exchanged with Sips Office Batch are in XML format.
Each file consists of four successive sections:
- FILE TYPE corresponds to the file type (please read the next section for an explanation of the various types)
- HEADER contains the file header
- BODY contains all operations
- END marks the end of the file
The file header contains an ID in the form of a sequence number. This sequence number must be:
- numerical
- unique for all your files (with no time limit)
- ascending i.e. must start at 1 and increase from 1 to 1
The file body contains several records. A record corresponds to a transaction or cash management operation, or a related function (such as wallet management or fraud management).
- Sample request or response file main structure:
<?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>
Several response files can be processed over the same day. When several request files are available on the external FTPS account, Sips Office Batch processes them one by one successively (not simultaneously) and in their order of arrival on the FTPS account.
There is one response file for each request file even if the file processing generates errors.
General rules about the exchanged files
- The file size cannot exceed 100 Mb or 100,000 operation records.
- A file is dedicated to a single remitter.
- A request file cannot contain several operations on the same transaction. For instance, a transaction cannot be created and cancelled in the same request file.
- The order of operations in the body of the response file can differ from the order of operations in the request file.
Understanding the format of the request file
The file type is based on the service used.
All the fields of the “file type” element of the request are mandatory and in ANS20 format. They are returned unchanged in the response.
- The tag name is file.
- The type field must be request for the request and response for the response.
- The format and version fields depend on the type of service called.
Format | Version | Service description |
---|---|---|
office | The value must be 12 | Acceptance of transactions and cash management operations. |
token | The value must be 1 | PAN tokenisation and detokenisation. |
fraud | The value must be 2 | Fraud management. |
wallet | The value must be 3 | Management of the payment data in the wallet; used for OneClick and subscription-based payments. |
- Sample file type:
<file type="request" format="office" version="12">
...
</file>
The header is based on a record that contains the following fields:
Fields | Presence | Format | Description |
---|---|---|---|
The tag name is header | Mandatory | ANS20 | Indicates a header record. |
remitterId | Mandatory | N15 | Remitter's ID. |
date | Mandatory | XML Date | Date, in the merchant's time zone, on which the file was created (YYYY-MM-DD+hh:mm). |
time | Mandatory | XML Time | Time, in the merchant's time zone, on which the file was created (hh:mm:ss+hh:mm). |
sequence | Mandatory | N6 | File sequence number. You may add leading zeros on the left (e.g. 000001 for the first sequence number). |
- Sample header:
<header>
<remitterId>023101122334455</remitterId>
<date>2012-06-11+02:00</date>
<time>14:28:00+01:00</time>
<sequence>86</sequence>
</header>
The body contains operations according to the service declared in the file element. Please refer to the next section for details on the fields for every operation.
- Sample "body" section for the office service
<body>
…
<cardOrder recordSequence=”2”>
…
</cardOrder>
…
</body>
The final section is based on a single record that contains the following fields:
Fields | Presence | Format | Description |
---|---|---|---|
The tag name is end | Mandatory | ANS20 | Indicates the end of the record. |
nbRecord | Mandatory | N6 | Number of operations in the "body" section. |
- Sample "end" element
<end nbRecord="227" />
Request file naming scheme
The request file must be sent in a ZIP archive. The archive name must be OFBREQxx.ZIP , where "xx" is a number between 01 and 99.
An archive must only contain one request file.
You can name this request file freely; however we recommend you to comply with the following naming scheme: SOB.Alias.Date-Time.xml
Where:
- SOB is the request file to be sent to Sips Office Batch
- Alias is the WL Sips alias/merchantId of the remitting shop
- Date is the file date in YYMMDD format
- Time is the file time in HHMMSS format.
Understanding the format of the response file
The header is based on a record that contains the following fields:
Fields | Format | Description |
---|---|---|
The tag name is header | ANS20 | Indicates a header record. |
remitterId | N15 | Remitter's ID. |
date | XML Date | Date, in the merchant's time zone, on which the file was created (YYYY-MM-DD+hh:mm). |
time | XML Time | Time, in the merchant's time zone, on which the file was created (hh:mm:ss+hh:mm). |
sequence | N6 | File sequence number. |
processingResponseCode | AN2 | Processing response code |
beginProcessTime |
ANS25 ISO8601 |
File processing starting timestamp, in the merchant's time zone. |
endProcessTime |
ANS25 ISO8601 |
File processing ending timestamp, in the merchant's time zone. |
- Sample header:
<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>
The “error-details” element is only returned when an error occurs during the checking of the request file. “error-details” is a character string that describes the error.
- Sample header:
…
<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>
…
The response file contains one element for each operation of the request file. The attributes of this element are filled in during the return. The returned fields are described in the next section.
The end of the response file is similar to the end of the request file and contains the following fields:
Fields | Format | Description |
---|---|---|
The tag name is end | ANS20 | Indicates the end of the record |
nbRecord | N6 | Number of operations in the "body" section |
- Sample "end" element:
<end nbRecord="227" />
Response file naming scheme
The response file is sent in a ZIP archive. This archive is called s******.OFBREP**.zip.
Where:
- s****** is a unique and non-customisable sequence number.
- OFBREP** is a number between 01 and 99; this number is identical to that of the request file.
The name of the response file contained in the archive complies with the following naming scheme: OFFUBZ.OFFBAREP.$alias.$date (for instance OFFUBZ.OFFBAREP.MM20LEQUIPE0861.181216).
Where:
- $alias is the WL Sips alias of the webshop.
- $date is the file processing date in YYMMDD format.
Reconciliation of request and response files
To make it easier to reconcile request and response files, each request file is identified by a sequence number that is also returned with the response.
All the fields of the request file are also returned in the response file, except for the following fields because of compliance with the PCI DSS standard:
- cardNumber can be returned hidden in the maskedPan field.
- cardEffectiveDate (card effective date).
- cardExpiryDate (card expiry date),
- cardSeqNumber (card sequence number if present),
- cardCSCValue (card security code).
WL Sips can modify the value of the following field if the creation of the transaction is followed by a banking authorization:
- transactionDate
Getting started with Sips Office Batch in 4 steps
Step 1: requesting the creation of a FTPS account
To this end, you must return the Sips Office Batch registration form given to you by your Worldline technical contact. The creation of a FTPS account takes about 12 days from the receipt of the form if the latter has been filled in properly.
E-mails are then exchanged to test the FTPS account in validation mode before implementation in the production environment.
Step 2: using the available functions
The various possible functions are the subject of specific requests.
A request consists of generic fields and container-type fields.
A container is a data structure that groups data functionally.
If a field is that of a container, it is named <container name>.<field name>.
cardOrder function of the office service
This function will let you make a card payment if you have a customer’s banking information.
cardOrder request format
All the records of the “body” section must contain the following information:
Fields | Presence | Comments |
---|---|---|
The tag name is cardOrder | Mandatory | Function name |
recordSequence | Mandatory | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | Mandatory | |
transactionReference | Mandatory | Optional if you use the S10TransactionReference . |
s10TransactionReference | Mandatory | Optional if you use the transactionReference . |
amount | Mandatory | |
captureDay | Optional | |
captureMode | Optional | |
cardCSCValue | Optional | |
cardEffectiveDate | Optional | |
cardExpiryDate | Optional | |
cardNumber | Optional | |
cardSeqNumber | Optional | |
currencyCode | Mandatory | |
customerEmail | Optional | |
customerId | Optional | |
customerIpAddress | Optional | |
merchantTransactionDateTime | Optional | |
orderChannel | Mandatory | |
orderId | Optional | |
paymentPattern | Optional | |
returnContext | Optional | |
statementReference | Optional | |
transactionOrigin | Optional | |
fraudData | Optional | See the "Container" section |
panType | Optional | Value set to TOKEN_PAN if payment is made using a token |
paymentMeanData | Optional | See the "Container" section |
holderData | Optional | See the "Container" section |
riskManagementCustomDataList | Optional | See the "Container" section |
shoppingCartDetail | Optional | See the "Container" section |
paymentMeanBrand | Optional | |
paymentMeanBrandSelectionStatus | Optional | |
orderContext | Optional | See the "Container" section |
travelContext | Optional | See the "Container" section |
deliveryContact | Optional | See the "Container" section |
deliveryAddress | Optional | See the "Container" section |
deliveryData | Optional | See the "Container" section |
holderContact | Optional | See the "Container" section |
billingContact | Optional | See the "Container" section |
billingAddress | Optional | See the "Container" section |
authenticationData | Optional | See the "Container" section |
holderAddress | Optional | See the "Container" section |
initialSchemeTransactionIdentifier | Optional |
- Sample cardOrder request
<cardOrder recordSequence=”1”>
<amount>1000</amount>
<captureDay>0</captureDay>
<captureMode>VALIDATION</captureMode>
<cardCSCValue>470</cardCSCValue>
<cardEffectiveDate>201201</cardEffectiveDate>
<cardExpiryDate>209910</cardExpiryDate>
<cardNumber>4975497549754975</cardNumber>
<cardSeqNumber>1</cardSeqNumber>
<currencyCode>978</currencyCode>
<customerEmail>test@worldline.com</customerEmail>
<customerId>123</customerId>
<customerIpAddress>127.0.0.1</customerIpAddress>
<fraudData>
<bypass3DS>all</bypass3DS>
<allowedIpCountryList>
<country>fra</country>
</allowedIpCountryList>
</fraudData>
<merchantId>012323232323231</merchantId>
<merchantTransactionDateTime>2012-11-29T17:04:30Z</merchantTransactionDateTime>
<orderChannel>INTERNET</orderChannel>
<orderId>123456</orderId>
<returnContext>context</returnContext>
<transactionReference>201211218170401</transactionReference>
<transactionOrigin>origin</transactionOrigin>
</cardOrder>
Format of the response to the cardOrder request
The response contains all the fields of the request (except cardCSCValue, cardEffectiveDate, cardExpiryDate, cardNumber, cardSeqNumber, paymentMeanBrand, paymentMeanBrandSelectionStatus, initialSchemeTransactionIdentifier ) plus the fields listed below:
Fields | Comments |
---|---|
The tag name is cardOrder | |
acquirerResponseCode | |
authorisationId | |
complementaryCode | |
complementaryInfo | |
guaranteeIndicator | |
holderAuthentRelegation | |
holderAuthentStatus | |
maskedPan | |
officeBatchResponseCode | |
responseCode | |
transactionDateTime | |
tokenPan | |
authorMessageReference | |
acquirerResponseMessage | |
paymentMeanTradingName | |
cardData | See the "Container" section |
recurringResponseCode | |
preAuthorisationProfile | |
preAuthorisationProfileValue | |
preAuthorisationRuleResultList | See the "Container" section |
transactionPlatform | Always filled with ‘PROD’ |
cardCSCResultCode | |
avsPostcodeResponseCode | |
avsAddressResponseCode | |
authorisationTypeLabel | Not filled |
schemeTransactionIdentifier | |
paymentAccountReference |
- Sample response to a cardOrder request
<cardOrder recordSequence="1">
…
<acquirerResponseCode>00</acquirerResponseCode>
<authorisationId>1234569654656</authorisationId>
<maskedPan>160000.47</maskedPan>
<officeBatchResponseCode>00</officeBatchResponseCode>
<responseCode>00</responseCode>
<transactionDateTime>2012-06-14T16:00:00+02:00</transactionDateTime>
<cardData>
<cardProductCode>F</cardProductCode>
<cardProductName>VISA CLASSIC</cardProductName>
<cardProductProfile>C</cardProductProfile>
<cardScheme>VISA</cardScheme>
<issuerCode>00000</issuerCode>
<issuerCountryCode>GRC</issuerCountryCode>
</cardData>
<transactionPlatform>PROD</transactionPlatform>
</cardOrder>
refund function of the office service
This operation enables you to refund a transaction by crediting your customer’s account and debiting your own account.
refund request format
All the records of the “body” section must contain the following information:
Fields | Presence | Comments |
---|---|---|
The tag name is refund | Mandatory | Function name |
recordSequence | Mandatory | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | Mandatory | |
transactionReference | Mandatory | Reference of the transaction to be refunded. Optional if you use the s10TransactionReference . |
s10TransactionReference | Mandatory | Reference of the transaction to be refunded. Optional if you use the transactionReference . |
operationAmount | Mandatory | |
currencyCode | Mandatory | |
operationOrigin | Optional | |
shoppingCartDetail | Optional | See the "Containers" section |
- Sample refund request
<refund recordSequence="1">
<merchantId>012323232323231</merchantId>
<transactionReference>SIM201206810160</transactionReference>
<operationAmount>1000</operationAmount>
<currencyCode>978</currencyCode>
<operationOrigin>operationOrigin</operationOrigin>
</refund>
Format of the response to the refund request
The response contains all the fields of the request plus the following fields:
Fields | Comments |
---|---|
The tag name is refund | Function name |
operationDateTime | |
transactionDateTime | |
responseCode | |
newStatus | |
newAmount | |
authorisationId | |
acquirerResponseCode | |
officeBatchResponseCode |
- Sample response to a refund request
<refund recordSequence="1">
…
<operationDateTime>2012-06-14T16:00:00+02:00</operationDateTime>
<transactionDateTime>2012-06-14T16:00:00+02:00</transactionDateTime>
<responseCode>00</responseCode>
<newStatus>TO_CREDIT</newStatus>
<newAmount>0</newAmount>
<authorisationId>956798798534</authorisationId >
<acquirerResponseCode>00</acquirerResponseCode>
<officeBatchResponseCode>00</ officeBatchResponseCode >
</refund>
validate function of the office service
This function triggers the capture of a transaction. It enables you to provide deferred payment by debiting your customer’s account when the purchased goods are despatched.
validate request format
All the records of the "body" section must contain the following information:
Fields | Presence | Comments |
---|---|---|
The tag name is validate | Mandatory | Function name |
recordSequence | Mandatory | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | Mandatory | |
transactionReference | Mandatory | Reference of the transaction to be refunded. Optional if you use the s10TransactionReference . |
s10TransactionReference | Mandatory | Reference of the transaction to be refunded. Optional if you use the transactionReference . See the "Container" section. |
operationAmount | Mandatory | |
currencyCode | Mandatory | |
operationOrigin | Optional | |
lastRecoveryIndicator | Optional |
Sample validate request
<validate recordSequence="1">
<merchantId>012323232323231</merchantId>
<transactionReference>SIM201206810160</transactionReference>
<operationAmount>1000</operationAmount>
<currencyCode>978</currencyCode>
<operationOrigin>operationOrigin</operationOrigin>
<lastRecoveryIndicator>TRUE</lastRecoveryIndicator>
</validate>
Format of the response to the validate request
The response contains all the fields of the request plus the following fields:
Fields | Comments |
---|---|
The tag name is validate | Function name |
operationDateTime | |
responseCode | |
newStatus | |
newAmount | |
authorisationId | |
acquirerResponseCode | |
officeBatchResponseCode | |
captureLimitDate | |
schemeTransactionIdentifier | |
paymentAccountReference |
- Sample response to a validate request:
<validate recordSequence="1">
…
<merchantId>024729465300001</merchantId>
<transactionReference>17R2DBR2016101400000000</transactionReference>
<operationAmount>100</operationAmount>
<currencyCode>978</currencyCode>
<operationOrigin>batch</operationOrigin>
<operationDateTime>2017-05-26T11:05:36+02:00</operationDateTime>
<responseCode>00</responseCode>
<newStatus>CREDITED</newStatus>
<newAmount>1000</newAmount>
<officeBatchResponseCode>00</officeBatchResponseCode>
</validate>
duplicate function of the office service
This function makes it possible to create a new transaction from the data of a previous transaction. For instance, if the transaction could not be validated during the specified capture period because of an error or oversight, this transaction has expired and will not be captured. You can correct this by duplicating this transaction.
duplicate request format
All the records of the "body" section must contain the following information:
Fields | Presence | Comments |
---|---|---|
The tag name is duplicate | Mandatory | Function name |
recordSequence | Mandatory | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | Mandatory | |
transactionReference | Mandatory | Optional if you use the s10TransactionReference . |
s10TransactionReference | Mandatory | Optional if you use the transactionReference . |
amount | Mandatory | |
currencyCode | Mandatory | |
captureDay | Optional | |
captureMode | Optional | |
customerEmail | Optional | |
customerId | Optional | |
customerIpAddress | Optional | |
fromTransactionReference | Mandatory | Reference of the transaction to be duplicated Optional if you use the S10FromTransactionReference . See the "Container" section. |
s10FromTransactionReference | Mandatory | Reference of the transaction to be duplicated Optional if you use the fromTransactionReference . See the "Container" section. |
merchantTransactionDateTime | Optional | |
orderChannel | Mandatory | |
orderId | Optional | |
returnContext | Optional | |
transactionOrigin | Optional | |
fromMerchantId | Optional | |
fraudData | Optional | See the "Container" section. |
statementReference | Optional | |
orderContext | Optional | See the "Container" section. |
travelContext | Optional | See the "Container" section. |
deliveryContact | Optional | See the "Container" section. |
deliveryAddress | Optional | See the "Container" section. |
deliveryData | Optional | See the "Container" section. |
holderContact | Optional | See the "Container" section. |
billingContact | Optional | See the "Container" section. |
billingAddress | Optional | See the "Container" section. |
authenticationData | Optional | See the "Container" section. |
holderAddress | Optional | See the "Container" section. |
shoppingCartDetail | Optional | See the "Container" section. |
paymentMeanData | Optional | Optional configuration for means of payment. |
- duplicate request paymentMeanData container
Fields | Presence | Comments |
---|---|---|
The tag name is paymentMeanData. | Element name | |
paypal | Optional | Specific configuration for PayPal |
bcacup | Optional | Specific configuration for BCAUP |
Additional data for PayPal:
Fields | Presence | Comments |
---|---|---|
The tag name is paypal . | Nom de l'élément | |
invoiceId | Optional | PayPal Invoice reference; See PayPal integration guide . |
Additional data for BCACUP:
Fields | Presence | Comments |
---|---|---|
The tag name is paypal . | Nom de l'élément | |
settlementMode | Settlement mode; See BCACUP integration guide. |
- Sample duplicate request
<duplicate recordSequence
="1">
<merchantId>012323232323231</merchantId>
<transactionReference>SIM201206810160</transactionReference>
<amount>1000</amount>
<currencyCode>978</currencyCode>
<captureDay>1</captureDay>
<captureMode>VALIDATION</captureMode>
<customerEmail>your.email@email.com</customerEmail>
<customerId>12345</customerId>
<customerIpAddress>127.0.0.1</customerIpAddress>
<fromTransactionReference>SIM2012068102311</fromTransactionReference>
<merchantTransactionDateTime>2012-06-07T11:30:47+02:00</merchantTransactionDateTime>
<orderChannel>MOTO</orderChannel>
<orderId>123</orderId>
<returnContext>my context</returnContext>
<transactionOrigin>SOB</transactionOrigin>
<paymentMeanData>
<paypal>
<invoiceId>my invoice id</invoiceId>
</paypal>
<bcacup>
<settlementMode>COMPTAN</settlementMode>
</bcacup>
</paymentMeanData>
</duplicate>
Format of the response to the duplicate request
The response contains all the fields of the request plus the following fields:
Fields | Comments |
---|---|
The tag name is duplicate | Function name |
authorisationId | |
acquirerResponseCode | |
complementaryCode | |
complementaryInfo | |
responseCode | |
scoreColor | |
scoreInfo | |
scoreProfile | |
scoreThreshold | |
scoreValue | |
transactionDateTime | |
officeBatchResponseCode | |
maskedPan | |
panExpiryDate | |
paymentMeanBrand | |
cardData | See the "Container" section |
preAuthorisationProfile | |
preAuthorisationProfileValue | |
preAuthorisationRuleResultList | See the "Container" section |
paymentMeanBrandSelectionStatus | |
transactionPlatform | Always filled with ‘PROD’s |
avsPostcodeResponseCode | |
avsAddressResponseCode | |
schemeTransactionIdentifier | |
paymentAccountReference |
- Sample response in XML format to a duplicate response
<duplicate recordSequence="1">
…
<authorisationId>956798798534</authorisationId >
<acquirerResponseCode>00</acquirerResponseCode>
<responseCode>00</responseCode>
<transactionDateTime>2012-06-12T09:30:47+02:00</transactionDateTime>
<officeBatchResponseCode>00</officeBatchResponseCode>
<maskedPan>4907##########00</maskedPan>
<panExpiryDate>201610</panExpiryDate>
<paymentMeanBrand>VISA</paymentMeanBrand>
<cardData>
<cardProductCode>F</cardProductCode>
<cardProductName>VISA CLASSIC</cardProductName>
<cardProductProfile>C</cardProductProfile>
<cardScheme>VISA</cardScheme>
<issuerCode>00000</issuerCode>
<issuerCountryCode>GRC</issuerCountryCode>
</cardData>
<transactionPlatform>PROD</transactionPlatform>
</duplicate>
cancel function of the office service
This function makes it possible to cancel a transaction or modify its amount before it is captured.
A cancellation operation cannot be cancelled. It is impossible to cancel an amount that exceeds the original amount of the transaction.
cancel request format
Fields | Presence | Comments |
---|---|---|
The tag name is cancel | Mandatory | Function name |
recordSequence | Mandatory | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | Mandatory | |
transactionReference | Mandatory | Reference of the transaction to be cancelled. Optional if you use the s10TransactionReference . |
s10TransactionReference | Mandatory | Reference of the transaction to be cancelled. Optional if you use the transactionReference . |
amount | Mandatory | |
currencyCode | Mandatory | |
operationOrigin | Optional |
- Sample cancel request
<cancel recordSequence="1">
<merchantId>012323232323231</merchantId>
<transactionReference>SIM201206810160</transactionReference>
<amount>1000</amount>
<currencyCode>978</currencyCode>
<operationOrigin>operationOrigin</operationOrigin>
</cancel>
Format of the response to the cancel request
The response contains all the fields of the request plus the following fields:
Fields | Comments |
---|---|
The tag name is cancel | Function name |
operationDateTime | |
responseCode | |
newStatus | |
newAmount | |
officeBatchResponseCode |
- Sample response to a cancel request
<cancel recordSequence="1">
<merchantId>012323232323231</merchantId>
<transactionReference>DSU20150219070007</transactionReference>
<amount>010</amount>
<currencyCode>978</currencyCode>
<operationOrigin>batch</operationOrigin>
<operationDateTime>2015-02-27T20:19:57+01:00</operationDateTime>
<responseCode>00</responseCode>
<newStatus>TO_CAPTURE</newStatus>
<newAmount>920</newAmount>
<officeBatchResponseCode>00</officeBatchResponseCode>
</cancel>
credit function of the office service
This function enables you to credit a customer’s account without an original reference transaction. Therefore, you must have the information of your customer’s means of payment, or the associated token.
credit request format
All the records of the "body" section must contain the following information:
Fields | Presence | Comments |
---|---|---|
The tag name is credit | Mandatory | Function name |
recordSequence | Mandatory | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | Mandatory | |
transactionReference | Mandatory | Optional if you use the S10TransactionReference . |
s10TransactionReference | Mandatory | Optional if you use the transactionReference . |
amount | Mandatory | |
cardEffectiveDate | Optional | |
cardExpiryDate | Mandatory | |
cardNumber | Mandatory | |
cardCSCValue | Optional | |
cardSeqNumber | Optional | |
currencyCode | Mandatory | |
customerEmail | Optional | |
customerId | Optional | |
customerIpAddress | Optional | |
orderChannel | Optional | |
orderId | Optional | |
paymentMeanBrand | Optional | |
returnContext | Optional | |
transactionOrigin | Optional | |
panType | Optional | |
statementReference | Optional |
- Sample credit request
<credit recordSequence="1">
<merchantId>012323232323231</merchantId>
<transactionReference>SIM201206810160</transactionReference>
<amount>124</amount>
<cardEffectiveDate>201201</cardEffectiveDate>
<cardExpiryDate>201212</cardExpiryDate>
<cardNumber>1600000012331447</cardNumber>
<cardCSCValue>470</cardCSCValue>
<cardSeqNumber>1</cardSeqNumber>
<currencyCode>978</currencyCode>
<customerEmail>test@worldline.net</customerEmail>
<customerId>123</customerId>
<customerIpAddress>127.0.0.1</customerIpAddress>
<orderChannel>MOTO</orderChannel>
<orderId>123456</orderId>
<paymentMeanBrand>VISA</paymentMeanBrand>
<returnContext>context</returnContext>
<transactionOrigin>origin</transactionOrigin>
<statementReference>RefN123600</statementReference>
</credit>
Format of the response to the credit request
The request contains all the fields of the request (except the card fields) and the following fields:
Fields | Comments |
---|---|
The tag name is credit | Function name |
responseCode | |
acquirerResponseCode | |
authorisationId | |
maskedPan | |
newStatus | |
operationDateTime | |
officeBatchResponseCode | |
transactionPlatform | For future use (for now systematically set to ‘PROD’). |
- Sample response to a credit request
<credit recordSequence="1">
….
<responseCode>00</responseCode>
<acquirerResponseCode>00</acquirerResponseCode>
<authorisationId>1234569654656</authorisationId>
<maskedPan>160000.47</maskedPan>
<newStatus>TO_CAPTURE</newStatus>
<operationDateTime>2012-06-14T16:00:00+02:00</operationDateTime>
<officeBatchResponseCode>00</officeBatchResponseCode>
<transactionPlatform>PROD</transactionPlatform>
</credit>
walletOrder function of the office service
This function enables you to make payments using the information contained in your customers’ wallets.
walletOrder request format
All the records of the "body" section must contain the following information:
Fields | Presence | Comments |
---|---|---|
The tag name is walletOrder | Mandatory | Function name |
recordSequence | Mandatory | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | Mandatory | |
transactionReference | Mandatory | Optional if you use the S10TransactionReference . |
s10TransactionReference | Mandatory | Optional if you use the transactionReference . |
amount | Mandatory | |
captureDay | Optional | |
captureMode | Optional | |
currencyCode | Mandatory | |
customerEmail | Optional | |
customerId | Optional | |
customerIpAddress | Optional | |
merchantTransactionDateTime | Optional | |
orderChannel | Mandatory | |
orderId | Optional | |
paymentMeanId | Mandatory | |
returnContext | Optional | |
statementReference | Optional | |
merchantWalletId | Mandatory | |
transactionOrigin | Optional | |
cardCSCValue | Optional | |
paymentPattern | Optional | |
fraudData | Optional | See the "Container" section. |
orderContext | Optional | See the "Container" section. |
travelContext | Optional | See the "Container" section. |
deliveryContact | Optional | See the "Container" section. |
deliveryAddress | Optional | See the "Container" section. |
deliveryData | Optional | See the "Container" section. |
holderContact | Optional | See the "Container" section. |
billingContact | Optional | See the "Container" section. |
billingAddress | Optional | See the "Container" section. |
authenticationData | Optional | See the "Container" section. |
holderAddress | Optional | See the "Container" section. |
shoppingCartDetail | Optional | See the "Container" section. |
- Sample walletOrder request in XML format
<walletOrder recordSequence="1">
<amount>1000</amount>
<captureDay>0</captureDay>
<captureMode>VALIDATION</captureMode>
<currencyCode>978</currencyCode>
<customerEmail>test@worldline.com</customerEmail>
<customerId>123</customerId>
<customerIpAddress>127.0.0.1</customerIpAddress>
<fraudData>
<bypass3DS>all</bypass3DS>
<allowedIpCountryList>
<country>FRA</country>
</allowedIpCountryList>
</fraudData>
<merchantId>012323232323231</merchantId>
<merchantTransactionDateTime>2012-11-29T17:04:30Z</merchantTransactionDateTime>
<orderChannel>INTERNET</orderChannel>
<orderId>123456</orderId>
<paymentMeanId>1</paymentMeanId>
<returnContext>context</returnContext>
<transactionReference>20121218170402</transactionReference>
<merchantWalletId>2</merchantWalletId>
<transactionOrigin>origin</transactionOrigin>
<cardCSCValue>100</cardCSCValue>
<paymentPattern>ONE_SHOT</paymentPattern >
</walletOrder>
Format of the response to the walletOrder request
The response contains all the fields of the request (except cardCSCValue and initialSchemeTransactionIdentifier ) plus the following fields:
Fields | Comments |
---|---|
The tag name is walletOrder | Function name |
acquirerResponseCode | |
authorisationId | |
complementaryCode | |
complementaryInfo | |
guaranteeIndicator | |
holderAuthentRelegation | |
holderAuthentStatus | |
maskedPan | |
officeBatchResponseCode | |
responseCode | |
transactionDateTime | |
tokenPan | |
cardData | See the "Container" section |
preAuthorisationProfile | |
preAuthorisationProfileValue | |
preAuthorisationRuleResultList | |
transactionPlatform | |
cardCSCResultCode | |
avsPostcodeResponseCode | |
avsAddressResponseCode | |
authorMessageReference | Not filled |
authorisationTypeLabel | Not filled |
schemeTransactionIdentifier | |
paymentAccountReference |
- Sample response to a walletOrder request
<walletOrder recordSequence="1">
…
<acquirerResponseCode>00</acquirerResponseCode>
<authorisationId>1234569654656</authorisationId>
<maskedPan>160000.47</maskedPan>
<officeBatchResponseCode>00</officeBatchResponseCode>
<responseCode>00</responseCode>
<transactionDateTime>2012-06-14T16:00:00+02:00</transactionDateTime>
<transactionPlatform>PROD</transactionPlatform>
</walletOrder>
walletCredit function of the office service
This function enables you to credit your customers' accounts through their wallets without prior transaction.
Format of the walletCredit request
All the records of the "body"section must contain the following information:
Fields | Presence | Comments |
---|---|---|
The tag name is walletCredit | Mandatory | Function name |
recordSequence | Mandatory | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | Mandatory | |
transactionReference | Mandatory | Optional if you use the S10TransactionReference . |
s10TransactionReference | Mandatory | Optional if you use the transactionReference . See the "Container" section. |
amount | Mandatory | |
merchantWalletId | Mandatory | |
paymentMeanId | Mandatory | |
currencyCode | Mandatory | |
customerEmail | Optional | |
customerId | Optional | |
customerIpAddress | Optional | |
orderChannel | Optional | |
orderId | Optional | |
returnContext | Optional | |
transactionOrigin | Optional | |
statementReference | Optional |
- Sample walletCredit request
<walletCredit recordSequence="1">
<merchantId>012323232323231</merchantId>
<transactionReference>SIM201206810160</transactionReference>
<amount>124</amount>
<merchantWalletId>A01</ merchantWalletId >
<paymentMeanId>2</paymentMeanId>
<currencyCode>978</currencyCode>
<customerEmail>test@worldline.net</customerEmail>
<customerId>123</customerId>
<customerIpAddress>127.0.0.1</customerIpAddress>
<orderChannel>MOTO</orderChannel>
<orderId>123456</orderId>
<paymentMeanBrand>VISA</paymentMeanBrand>
<returnContext>context</returnContext>
<transactionOrigin>origin</transactionOrigin>
<statementReference>RefN123400</statementReference>
</walletCredit>
Format of the response to the walletCredit request
The response contains all the fields of the request plus the following fields:
Fields | Comments |
---|---|
Le nom de la balise est walletCredit | Function name |
responseCode | |
acquirerResponseCode | |
authorisationId | |
maskedPan | |
paymentMeanBrand | |
newStatus | |
operationDateTime | |
officeBatchResponseCode | |
transactionPlatform | Always filled with ‘PROD’. |
- Sample response to a walletCredit request
<walletCredit recordSequence="1">
….
<responseCode>00</responseCode>
<acquirerResponseCode>00</acquirerResponseCode>
<authorisationId>1234569654656</authorisationId>
<maskedPan>160000.47</maskedPan>
<paymentMeanBrand>VISA</paymentMeanBrand >
<newStatus>TO_CAPTURE</newStatus>
<operationDateTime>2012-06-14T16:00:00+02:00</operationDateTime>
<officeBatchResponseCode>00</officeBatchResponseCode>
<transactionPlatform>PROD</transactionPlatform>
</walletCredit>
recycle function of the office service
This function makes it possible to create a new transaction from the banking data of a previous transaction. This operation is similar to duplication, with some limitations. It enables you to recycle a transaction that has expired, has been refused or has been captured partially (i.e. the amount of which has not been fully paid) without exceeding the amount of the initial transaction.
recycle request format
All the records of the "body" section must contain the following information:
Fields | Presence | Comments |
---|---|---|
The tag name is recycle . | Mandatory | Function name |
recordSequence | Mandatory | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | Mandatory | |
transactionReference | Mandatory | Optional if you use the S10TransactionReference . |
s10TransactionReference | Mandatory | Optional if you use the transactionReference . See the "Container" section. |
amount | Mandatory | |
currencyCode | Mandatory | |
captureDay | Optional | |
captureMode | Optional | |
fromTransactionReference | Mandatory | Reference of the transaction to be recycled. Optional if you use the S10FromTransactionReference . See the "Container" section. |
s10FromTransactionReference | Mandatory | Reference of the transaction to be recycled. Optional if you use the fromTransactionReference . See the "Container" section. |
merchantTransactionDateTime | Optional | |
transactionOrigin | Optional | |
statementReference | Optional | |
lastRecoveryIndicator | Optional | |
orderContext | Optional | See the "Container" section. |
travelContext | Optional | See the "Container" section. |
deliveryContact | Optional | See the "Container" section. |
deliveryAddress | Optional | See the "Container" section. |
deliveryData | Optional | See the "Container" section. |
holderContact | Optional | See the "Container" section. |
billingContact | Optional | See the "Container" section. |
billingAddress | Optional | See the "Container" section. |
- Sample recycle request
<recycle recordSequence="1">
<merchantId>012323232323231</merchantId>
<transactionReference>SIM201206810160</transactionReference>
<amount>1000</amount>
<captureDay>1</captureDay>
<captureMode>VALIDATION</captureMode>
<currencyCode>978</currencyCode>
<fromTransactionReference>SIM2012068102311</fromTransactionReference>
<merchantTransactionDateTime>2012-06-07T11:30:47+02:00</merchantTransactionDateTime>
<transactionOrigin>SOB</transactionOrigin>
<statementReference>REF1023540</statementReference>
</recycle>
Format of the response to the recycle request
The response contains all the fields of the request plus the following fields:
Fields | Comments |
---|---|
The tag name is recycle | Function name |
acquirerResponseCode | |
authorisationId | |
complementaryCode | |
complementaryInfo | |
maskedPan | |
officeBatchResponseCode | |
panExpiryDate | |
paymentMeanBrand | |
responseCode | |
scoreColor | |
scoreInfo | |
scoreProfile | |
scoreThreshold | |
scoreValue | |
transactionDateTime | |
cardData | See the "Container" section. |
preAuthorisationProfile | |
preAuthorisationProfileValue | |
preAuthorisationRuleResultList | See the "Container" section. |
preAuthenticationColor | |
preAuthenticationInfo | |
preAuthenticationProfile | |
preAuthenticationProfileValue | |
preAuthenticationThreshold | |
preAuthenticationValue | |
preAuthenticationRuleResultList | See the "Container" section. |
paymentMeanBrandSelectionStatus | |
transactionPlatform | Always filled with ‘PROD’. |
schemeTransactionIdentifier | |
paymentAccountReference |
- Sample response to a recycle request
<recycle recordSequence="1">
…
<authorisationId>956798798534</authorisationId >
<acquirerResponseCode>00</acquirerResponseCode>
<responseCode>00</responseCode>
<transactionDateTime>2012-06-12T09:30:47+02:00</transactionDateTime>
<officeBatchResponseCode>00</officeBatchResponseCode>
<transactionPlatform>PROD</transactionPlatform>
</recycle>
directDebitOrder function of the office service
This function enables you to make debit-type payments (SDD) in case you have a customer's banking information.
directDebitOrder request format
All the records of the "body" must contain the following information:
Fields | Presence | Comments |
---|---|---|
The tag name is directDebitOrder | Mandatory | Function name |
recordSequence | Mandatory | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | Mandatory | |
transactionReference | Mandatory | Reference of the transaction. Optional if you use the S10TransactionReference . |
s10TransactionReference | Mandatory | Reference of the transaction. Optional if you use the transactionReference . See the "Container" section. |
amount | Mandatory | |
captureDay | Optional | |
captureMode | Optional | |
currencyCode | Mandatory | |
customerId | Optional | |
customerIpAddress | Optional | |
mandateId | Mandatory | |
merchantTransactionDateTime | Optional | |
paymentPattern | Optional | |
orderChannel | Mandatory | |
orderId | Optional | |
returnContext | Optional | |
statementReference | Optional | |
transactionOrigin | Optional | |
valueDate | Optional | |
holderContact | Optional | See the "Container" section. |
holderAddress | Optional | See the "Container" section. |
instalmentData | Optional | See the "Container" section. |
fraudData | Optional | See the "Container" section. |
riskManagementCustomDataList | Optional | See the "Container" section. |
shoppingCartDetail | Optional | See the "Container" section. |
- Sample directDebitOrder request
<directDebitOrder recordSequence="1">
<amount>1000</amount>
<captureMode>AUTHOR_CAPTURE</captureMode>
<currencyCode>978</currencyCode>
<customerId>12300</customerId>
<customerIpAddress>127.0.0.1</customerIpAddress>
<mandateId>000000000000004403</mandateId>
<merchantId>012323232323231</merchantId>
<merchantTransactionDateTime>2014-09-04T14:04:30Z</merchantTransactionDateTime>
<orderChannel>INTERNET</orderChannel>
<orderId>8888</orderId>
<returnContext>context</returnContext>
<statementReference>ref1000</statementReference>
<transactionReference>TIR20140904000004</transactionReference>
<transactionOrigin>batch</transactionOrigin>
<valueDate>20140905</valueDate>
</directDebitOrder>
Format of the response to the directDebitOrder request
The response contains all the fields of the request plus the following fields:
Fields | Comments |
---|---|
The tag name is directDebitOrder | Function name |
acquirerResponseCode | |
authorisationId | |
captureDay | |
captureLimitDate | |
creditorId | |
guaranteeIndicator | |
holderAuthentRelegation | |
holderAuthentStatus | |
mandateId | |
maskedPan | |
officeBatchResponseCode | |
responseCode | |
secureReference | |
transactionActors | |
transactionDateTime | |
preAuthorisationProfile | |
preAuthorisationProfileValue | |
preAuthorisationRuleResultList | See the "Container" section. |
transactionPlatform | For future use (for now systematically set to ‘PROD’). |
- Sample response to a directDebitOrder request
<directDebitOrder recordSequence="1">
<amount>1000</amount>
<captureDay>5</captureDay>
<captureMode>AUTHOR_CAPTURE</captureMode>
<currencyCode>978</currencyCode>
<customerId>123</customerId>
<customerIpAddress>127.0.0.1</customerIpAddress>
<instalmentData>
<number>1</number>
<datesList>
<date>Thu Sep 04 00:00:00 CEST 2014</date>
</datesList>
<transactionReferencesList>
<transactionReference>TIR20140904000024</transactionReference>
</transactionReferencesList>
<amountsList>
<amount>1000</amount>
</amountsList>
</instalmentData>
<mandateId>000000000000004403</mandateId>
<merchantId>012323232323231</merchantId>
<merchantTransactionDateTime>2014-09-04T14:04:30Z</merchantTransactionDateTime>
<paymentPattern>INSTALMENT</paymentPattern>
<orderChannel>INTERNET</orderChannel>
<orderId>8888</orderId>
<returnContext>context</returnContext>
<statementReference>stateref</statementReference>
<transactionReference>TIR20140904000024</transactionReference>
<transactionOrigin>batch</transactionOrigin>
<valueDate>20140909</valueDate>
<acquirerResponseCode>00</acquirerResponseCode>
<authorisationId>33105000010020140904</authorisationId>
<captureLimitDate>20140909</captureLimitDate>
<maskedPan>AGRIFRPP879/FR76#####################48</maskedPan>
<officeBatchResponseCode>00</officeBatchResponseCode>
<responseCode>00</responseCode>
<transactionActors>B2C</transactionActors>
<transactionDateTime>2014-09-04T15:16:24+02:00</transactionDateTime>
<transactionPlatform>PROD</transactionPlatform>
<secureReference>SF_16957</secureReference>
</directDebitOrder>
acceptChallenge function of the office service
This function enables you to check and accept the risk of fraud for transactions with an orange fraud score. Once the transaction is accepted, its normal life cycle resumes.
acceptChallenge request format
All the records of the "body" section must contain the following information:
Fields | Presence | Comments |
---|---|---|
The tag name is acceptChallenge | Mandatory | Function name |
recordSequence | Mandatory | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | Mandatory | |
transactionReference | Mandatory | Reference of the transaction. Optional if you use the S10TransactionReference . |
s10TransactionReference | Mandatory | Reference of the transaction. Optional if you use the transactionReference . See the "Container" section. |
validationIndicator | Optional | |
operationOrigin | Optional | |
comment | Optional |
- Sample acceptChallenge request
<acceptChallenge recordSequence="1">
<merchantId>012323232323231</merchantId>
<transactionReference>SIM201206810160</transactionReference>
<validationIndicator>Y</validationIndicator>
<operationOrigin>batch</operationOrigin>
<comment>client fidelity</comment>
</acceptChallenge>
Format of the response to the acceptChallenge request
The response contains all the fields of the request plus the following fields:
Fields | Comments |
---|---|
The tag name is acceptChallenge | Function name |
acquirerResponseCode | |
authorisationId | |
captureLimitDate | |
newStatus | |
officeBatchResponseCode | |
operationDateTime | |
responseCode | |
schemeTransactionIdentifier | |
paymentAccountReference |
- Sample response to a acceptChallenge request
<acceptChallenge recordSequence="1">
…
<acquirerResponseCode>00</acquirerResponseCode>
<authorisationId>956798798534</authorisationId >
<captureLimitDate>20150515</captureLimitDate>
<newStatus>VALIDATED</newStatus>
<responseCode>00</responseCode>
<operationDateTime>2015-02-12T09:30:47+02:00</operationDateTime>
<officeBatchResponseCode>00</officeBatchResponseCode>
</ acceptChallenge>
refuseChallenge function of the office service
This function enables you to check and refuse the risk of fraud for transactions with an orange fraud score. In the case of a refusal, the transaction is not captured.
refuseChallenge request format
All the records of the "body" section must contain the following information:
Fields | Presence | Comments |
---|---|---|
The tag name is refuseChallenge | Mandatory | Function name |
recordSequence | Mandatory | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | Mandatory | |
transactionReference | Mandatory | Reference of the transaction. Optional if you use the S10TransactionReference . |
s10TransactionReference | Mandatory | Reference of the transaction. Optional if you use the transactionReference . See the "Container" section. |
operationOrigin | Mandatory | |
comment | Mandatory |
- Sample refuseChallenge request
<refuseChallenge recordSequence="1">
<merchantId>012323232323231</merchantId>
<transactionReference>SIM201206810160</transactionReference>
<operationOrigin>batch</operationOrigin>
<comment>score warning</comment>
</refuseChallenge>
Format of the response to the refuseChallenge request
The response contains all the fields of the request plus the following fields:
Fields | Comments |
---|---|
The tag name is refuseChallenge | Function name |
newStatus | |
officeBatchResponseCode | |
operationDateTime | |
responseCode |
- Sample response to a refuseChallenge request
<refuseChallenge recordSequence="1">
…
<newStatus>REFUSED</newStatus>
<responseCode>05</responseCode>
<operationDateTime>2015-02-12T09:30:47+02:00</operationDateTime>
<officeBatchResponseCode>00</officeBatchResponseCode>
</refuseChallenge>
panToToken function of the token service
This function makes it possible to tokenise a card number.
panToToken request format
All the records of the "body" section must contain the following information:
Fields | Presence | Comments |
---|---|---|
The tag name is panToToken | Mandatory | Function name |
recordSequence | Mandatory | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | Mandatory | |
userId | Mandatory | |
pan | Mandatory |
- Sample panToToken request
<panToToken recordSequence="1">
<merchantId>012323232323231</merchantId>
<userid>idofuser</userid>
<pan>4975497549754975</pan>
</panToToken>
Format of the response to the panToToken request
The response contains the following fields:
Fields | Comments |
---|---|
The tag name is panToToken | Function name |
recordSequence | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | |
responseCode | |
tokenPan | |
officeBatchResponseCode |
- Sample response to a panToToken request
<panToToken recordSequence="1">
<merchantId>012323232323231</merchantId>
<responseCode>00</responseCode>
<tokenPan>497899AcDEF57631</tokenPan>
<officeBatchResponseCode>00</officeBatchResponseCode>
</panToToken>
transactionToToken function of the token service
This operation makes it possible to convert the PAN of an existing transaction into a token.
transactionToToken request format
All the records of the "body" section must contain the following information:
Fields | Presence | Comments |
---|---|---|
The tag name is transactionToToken . | Mandatory | Operation name. |
recordSequence | Mandatory | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | Mandatory |
ID of the merchant of the original transaction. Mandatory if differs from the merchantId . |
fromMerchantId | Optional | Mandatory if s10FromTransactionReference not specified. |
fromTransactionReference | Optional |
See duplicate. Mandatory if fromTransactionReference is not specified. |
s10FromTransactionReference | Optional | |
merchantExternalId | Optional |
- Sample transactionToToken request
<transactionToToken recordSequence="1">
<responseCode>00</responseCode>
<merchantId>024729465300101</merchantId>
<fromMerchantId>024729465300006</fromMerchantId>
<fromTransactionReference>SIM20170613140621</fromTransactionReference>
<merchantExternalId>myMerchantExternalId</merchantExternalId>
<tokenPan>490700h719850600</tokenPan>
<paymentMeanBrand>VISA</paymentMeanBrand>
<cardExpiryDate>201802</cardExpiryDate>
<officeBatchResponseCode>00</officeBatchResponseCode>
</transactionToToken>
Format of the response to the transactionToToken request
The response contains the following fields:
Fields | Comments |
---|---|
The tag name is transactionToToken . | Operation name |
recordSequence | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | |
fromMerchantId | |
fromTransactionReference | |
s10FromTransactionReference | See duplicate |
merchantExternalId | |
responseCode | |
tokenPan | |
paymentMeanBrand | |
cardExpiryDate | |
officeBatchResponseCode |
- Sample response to a transactiontoToken request
<transactionToToken recordSequence="1">
<responseCode>00</responseCode>
<merchantId>024729465300101</merchantId>
<fromMerchantId>024729465300006</fromMerchantId>
<fromTransactionReference>SIM20170613140621</fromTransactionReference>
<merchantExternalId>myMerchantExternalId</merchantExternalId>
<tokenPan>490700h719850600</tokenPan>
<paymentMeanBrand>VISA</paymentMeanBrand>
<cardExpiryDate>201802</cardExpiryDate>
<officeBatchResponseCode>00</officeBatchResponseCode>
</transactionToToken>
addToFraudList function of the fraud service
This operation makes it possible to add a card, token or transaction number (using the transactionIid/transactionDate or transactionIid/transactionReference combinations) to various types of fraud lists.
addToFraudList request format
All the records of the 'body" section must contain the following information:
Fields | Presence | Comments |
---|---|---|
The tag name is addToFraudList . | Mandatory | Function name |
recordSequence | Mandatory | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | Mandatory | |
fraudListReasonCode | Optional | |
fraudListType | Mandatory | |
fraudListLevel | Mandatory | |
fraudListElementType | Mandatory | |
fraudListElementValue | Mandatory | If the value of fraudListElementType is TRANSACTION_ID then the expected format in this data element is transactionId@transactionDate (e.g. 123@20180919) |
- Sample addToFraudList request
<addToFraudList recordSequence="1">
<merchantId>012323232323231</merchantId>
<fraudListReasonCode>FRAUD</fraudListReasonCode>
<fraudListType>CARD_LIST</fraudListType>
<fraudListLevel>BLACK</fraudListLevel>
<fraudListElementType>TRANSACTION_REF</fraudListElementType>
<fraudListElementValue>ARTE160728OHE050231655</fraudListElementValue>
</addToFraudList>
Format of the response to the addToFraudList request
The response contains the following fields:
Fields | Comments |
---|---|
The tag name is addToFraudList . | Function name |
merchantId | |
fraudListType | |
fraudListLevel | |
fraudListElementType | |
fraudListElementValue | |
officeBatchResponseCode | |
responseCode |
- Sample response to a addToFraudList request
<addToFraudList recordSequence="1">
<merchantId>012323232323231</merchantId>
<fraudListType>CARD_LIST</fraudListType>
<fraudListLevel>BLACK</fraudListLevel>
<fraudListElementType>PAN</fraudListElementType>
<fraudListElementValue>4975.75</fraudListElementValue>
<responseCode>00</responseCode>
<officeBatchResponseCode>00</officeBatchResponseCode>
</addToFraudList>
removeFromFraudList function of the fraud list
This operation makes it possible to delete a card, token or transaction number (using the transactionIid/transactionDate or transactionIid/transactionReference combinations) from various types of fraud lists.
removeFromFraudList request format
All the records of the "body" section must contain the following information:
Fields | Presence | Comments |
---|---|---|
The tag name is removeFromFraudList . | Mandatory | Function name |
recordSequence | Mandatory | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | Mandatory | |
fraudListType | Mandatory | |
fraudListLevel | Mandatory | |
fraudListElementType | Mandatory | |
fraudListElementValue | Mandatory |
- Sample removeFromFraudList request
<removeFromFraudList recordSequence="1">
<merchantId>012323232323231</merchantId>
<fraudListType>CARD_LIST</fraudListType>
<fraudListLevel>BLACK</fraudListLevel>
<fraudListElementType>PAN</fraudListElementType>
<fraudListElementValue>4975497549754975</fraudListElementValue>
</removeFromFraudList>
Format of the response to the removeFromFraudList request
The response contains the following fields:
Champs | Comments |
---|---|
The tag name is removeFromFraudList . | Function name |
merchantId | |
fraudListType | |
fraudListLevel | |
fraudListElementType | |
fraudListElementValue | |
responseCode | |
officeBatchResponseCode |
- Sample response to a removeFromFraudList request
<removeFromFraudList recordSequence="1">
<merchantId>012323232323231</merchantId>
<fraudListType>CARD_LIST</fraudListType>
<fraudListLevel>BLACK</fraudListLevel>
<fraudListElementType>PAN</fraudListElementType>
<fraudListElementValue>4975.75</fraudListElementValue>
<responseCode>00</responseCode>
<officeBatchResponseCode>00</officeBatchResponseCode>
</removeFromGreyList>
addCard function of the wallet service
This operation makes it possible to add a card to a wallet. If the wallet doesn't exist, it is created when adding the card.
Sensitive information (card number) can be handled via the panType set to encryption via the CSE mode (see the relevant documentation).
addCard request format
All the records of the "body" section must contain the following information:
Fields | Presence | Comments |
---|---|---|
The tag name is addCard . | Mandatory | Function name |
recordSequence | Mandatory | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | Mandatory | |
merchantWalletId | Mandatory | |
paymentMeanAlias | Optional | |
PaymentMeanBrand | Optional | |
cardExpiryDate | Mandatory | |
cardNumber | Mandatory | |
panType | Optional |
- Sample addCard request
<addCard recordSequence="1">
<merchantId>012323232323231</merchantId>
<merchantWalletId>TESTCLIENT</merchantWalletId>
<paymentMeanAlias>my VISA</paymentMeanAlias>
<paymentMeanbrand>VISA</paymentMeanBrand>
<cardExpiryDate>201910</cardExpiryDate>
<cardNumber>4975497549754975</cardNumber>
</addCard>
Format of the response to the addCard request
The response contains the following fields:
Fields | Comments |
---|---|
The tag name is addCard . | Function name |
merchantId | |
merchantWalletId | |
paymentMeanAlias | |
cardExpiryDate | |
maskedPan | |
paymentMeanId | |
officeBatchResponseCode | |
responseCode | |
walletCreationDateTime |
- Sample response in XML format
<addCard recordSequence="1">
<merchantId>012323232323231</merchantId>
<merchantWalletId>TESTCLIENT</merchantWalletId>
<paymentMeanAlias>my VISA</paymentMeanAlias>
<cardExpiryDate>202210</cardExpiryDate>
<maskedPan>4975.75</maskedPan>
<paymentMeanId>2</paymentMeanId>
<officeBatchResponseCode>00</officeBatchResponseCode>
<responseCode>00</responseCode>
<walletCreationDateTime>2014-06-14T16:00:00+02:00</walletCreationDateTime >
</addCard >
addDirectDebit function of the wallet service
This operation makes it possible to add a mandate to a wallet.
addDirectDebit request format
All the records of the "body" section must contain the following information:
Fields | Presence | Comments |
---|---|---|
The tag name is addDirectDebit . | Mandatory | Function name |
recordSequence | Mandatory | Function name |
customerAccount | Optional | |
customerBankCode | Optional | |
mandateId | Mandatory | |
merchantId | Mandatory | |
merchantWalletId | Mandatory | |
paymentMeanAlias | Optional | |
paymentMeanBrand | Optional | |
transactionActors | Optional |
- Sample addDirectDebit request
<addDirectDebit recordSequence="1">
<mandateId>00000127001</mandateId>
<merchantId>012323232323231</merchantId>
<merchantWalletId>TESTCLIENT</merchantWalletId>
<paymentMeanAlias>my SDD</paymentMeanAlias>
<paymentMeanBrand>SEPA_DIRECT_DEBIT</paymentMeanBrand>
<transactionActors>B2C</transactionActors>
</addDirectDebit >
Format of the response to the addDirectDebit request
The response contains the following fields:
Fields | Comments |
---|---|
The tag name is addDirectDebit | Function name |
merchantId | |
merchantWalletId | |
paymentMeanAlias | |
paymentMeanBrand | |
maskedPan | |
paymentMeanId | |
officeBatchResponseCode | |
responseCode | |
transactionActors | |
walletCreationDateTime |
- Sample response to a addDirectDebit request
<addDirectDebit recordSequence="1">
<merchantId>012323232323231</merchantId>
<merchantWalletId>TESTCLIENT</merchantWalletId>
<paymentMeanAlias>my SDD</paymentMeanAlias>
<paymentMeanBrand>SEPA_DIRECT_DEBIT</paymentMeanBrand>
<paymentMeanId>4</paymentMeanId>
<officeBatchResponseCode>00</officeBatchResponseCode>
<responseCode>00</responseCode>
<transactionActors>B2C</transactionActors>
<walletCreationDateTime>2014-06-14T16:00:00+02:00</walletCreationDateTime >
</addDirectDebit >
deletePaymentMean function of the wallet service
This operation makes it possible to delete a means of payment from a wallet.
deletePaymentMean request format
All the records of the "body" section must contain the following information:
Fields | Presence | Comments |
---|---|---|
The tag name is deletePaymentMean . | Mandatory | Function name |
recordSequence | Mandatory | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | Mandatory | |
merchantWalletId | Mandatory | |
paymentMeanId | Mandatory |
- Sample deletePaymentMean request
<deletePaymentMean recordSequence="1">
<merchantId>012323232323231</merchantId>
<merchantWalletId>TESTCLIENT</merchantWalletId>
<paymentMeanId>4</paymentMeanId>
</deletePaymentMean>
Format of the response to the deletePaymentMean request
The response contains the following fields:
Fields | Comments |
---|---|
The tag name is deletePaymentMean. | Function name |
merchantId | |
merchantWalletId | |
paymentMeanId | |
officeBatchResponseCode | |
responseCode | |
walletActionDateTime |
- Sample response to a deletePaymentMean request
<deletePaymentMean recordSequence="1">
<merchantId>012323232323231</merchantId>
<merchantWalletId>TESTCLIENT</merchantWalletId>
<paymentMeanId>4</paymentMeanId>
<officeBatchResponseCode>00</officeBatchResponseCode>
<responseCode>00</responseCode>
<walletActionDateTime>2014-06-14T16:00:00+02:00</walletActionDateTime>
</deletePaymentMean>
updatePaymentMean function of the wallet service
This function allows a merchant to update one of the payment means contained in the client's wallet.
updatePaymentMean request format
All the records of the "body" section must contain the following information:
Fields | Presence | Comments |
---|---|---|
The tag name is updatePaymentMean . | Mandatory | Function name |
recordSequence | Mandatory | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | Mandatory | |
merchantWalletId | Mandatory | |
paymentMeanId | Mandatory | |
paymentMeanAlias | Optional |
- Sample updatePaymentMean request
<updatePaymentMean recordSequence="1">
<merchantId>012323232323231</merchantId>
<merchantWalletId>TESTCLIENT</merchantWalletId>
<paymentMeanId>4</paymentMeanId>
<paymentMeanAlias>my SDD</paymentMeanAlias>
</updatePaymentMean>
Format of the response to the updatePaymentMean request
The response contains the following fields:
Fields | Comments |
---|---|
The tag name is updatePaymentMean . | Function name |
merchantId | |
merchantWalletId | |
paymentMeanAlias | |
paymentMeanId | |
officeBatchResponseCode | |
responseCode | |
walletActionDateTime |
- Sample response to a updatePaymentMean request
<updatePaymentMean recordSequence="1">
<merchantId>012323232323231</merchantId>
<merchantWalletId>TESTCLIENT</merchantWalletId>
<paymentMeanAlias>my SDD</paymentMeanAlias>
<paymentMeanId>4</paymentMeanId>
<officeBatchResponseCode>00</officeBatchResponseCode>
<responseCode>00</responseCode>
<walletActionDateTime>2014-06-14T16:00:00+02:00</walletActionDateTime>
</updatePaymentMean>
signOff function of the wallet service
This operation makes it possible to delete a wallet and all the means of payment contained in the wallet.
signOff request format
All the records of the "body" section must contain the following information:
Fields | Presence | Comments |
---|---|---|
The tag name is signOff. | Mandatory | Function name |
recordSequence | Mandatory | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | Mandatory | |
merchantWalletId | Mandatory |
- Sample signOff request
<signOff recordSequence="1">
<merchantId>012323232323231</merchantId>
<merchantWalletId>TESTCLIENT</merchantWalletId>
</signOff>
Format of the response to the signOff request
The response contains the following fields:
Fields | Comments |
---|---|
The tag name is signOff | Function name |
merchantId | |
merchantWalletId | |
officeBatchResponseCode | |
responseCode | |
walletActionDateTime |
- Sample response to a signOff request
<signOff recordSequence="1">
<merchantId>012323232323231</merchantId>
<merchantWalletId>TESTCLIENT</merchantWalletId>
<officeBatchResponseCode>00</officeBatchResponseCode>
<responseCode>00</responseCode>
<walletActionDateTime>2014-06-14T16:00:00+02:00</walletActionDateTime>
</signOff>
addIssuerWallet function of the wallet service
This operation makes it possible to add an issuer wallet (e.g. Paylib) to a WL Sips wallet.
addIssuerWallet request format
All the records of the "body" section must contain the following information:
Fields | Presence | Comments |
---|---|---|
the tag name is addIssuerWallet. | Mandatory | Function name |
recordSequence | Mandatory | N6 – This attribute indicates the line number, which allows you to reconcile the response with the request. |
merchantId | Mandatory | |
merchantWalletId | Mandatory | |
paymentMeanAlias | Mandatory | |
issuerWalletId | Mandatory | |
issuerWalletType | Mandatory |
- Sample addIssuerWallet request
<addIssuerWallet recordSequence="1">
<merchantId>012323232323231</merchantId>
<merchantWalletId>TESTCLIENT</merchantWalletId>
<paymentMeanAlias>my payment card</paymentMeanAlias>
<issuerWalletId>paylib-wallet-id</issuerWalletId>
<issuerWalletType>PAYLIB</issuerWalletType>
</addIssuerWallet>
Format of the response to the addIssuerWallet request
The response contains the following fiels:
Fields | Comments |
---|---|
The tag name is addIssuerWallet | Function name |
merchantId | |
merchantWalletId | |
paymentMeanAlias | |
issuerWalletId | |
issuerWalletType | |
paymentMeanId | |
officeBatchResponseCode | |
responseCode | |
walletCreationDateTime |
- Sample response to an addIssuerWallet request
<addIssuerWallet recordSequence="1">
<merchantId>012323232323231</merchantId>
<merchantWalletId>TESTCLIENT</merchantWalletId>
<paymentMeanAlias>my payment card</paymentMeanAlias>
<issuerWalletId>paylib-wallet-id</issuerWalletId>
<issuerWalletType>PAYLIB</issuerWalletType>
<paymentMeanId>pmid-1</paymentMeanId>
<officeBatchResponseCode>00</officeBatchResponseCode>
<responseCode>00</responseCode>
<walletCreationDateTime>2014-06-14T16:00:00+02:00</walletCreationDateTime>
</addIssuerWallet>
Containers
Containers group data functionally. They can contain lists, in which case list elements must be supplied in the following manner:
<elementList>
<elementName>value1</elementName>
<elementName>value2</elementName>
…
</elementList>
All these fields are optional.
s10TransactionReference
Fields | Comments |
---|---|
The tag name is s10TransactionReference | Element name |
s10TransactionId | |
s10TransactionIdDate | As part of transaction creation, this field is computed by
our server. There is no need to set a value in this field (as it
will be ignored if set), for the following methods:
|
- Sample refund/s10TransactionReference request
<refund …>
…
<s10TransactionReference>
<s10TransactionId>100206</s10TransactionId>
<s10TransactionIdDate>20150203</s10TransactionIdDate>
</s10TransactionReference>
…
</refund>
s10FromTransactionReference
Fields | Comments |
---|---|
The tag name is s10FromTransactionReference. | Element name |
s10FromTransactionId | |
s10FromTransactionIdDate |
- Sample duplicate/s10FromTransactionReference request
<duplicate …>
…
<s10FromTransactionReference>
<s10FromTransactionId>100206</s10FromTransactionId>
<s10FromTransactionIdDate>20150203</s10FromTransactionIdDate>
</s10FromTransactionReference>
…
</duplicate>
paymentMeanData
Fields | Comments |
---|---|
The tag name is paymentMeanData. | Element name |
cofinoga |
Additional data element for the Cofinoga means of payment:
Fields | Comments |
---|---|
The tag name is cofinoga | Element name |
settlementMode | Means of payment for Cofinoga. See the implementation guide for this means of payment. |
- Sample cardOrder/paymentMeanData request for Cofinoga
<cardOrder …>
…
<paymentMeanData>
<cofinoga>
<settlementMode>MR_COMP</settlementMode>
</cofinoga>
</paymentMeanData>
…
</cardOrder>
cardData
Fields | Comments |
---|---|
The tag name is cardData | Element name |
cardProductCode | |
cardProductName | |
cardProductProfile | |
cardScheme | |
issuerCode | |
issuerCountryCode | |
cardProductUsageLabel | For future use (MPADS) |
- Sample response to a duplicate/cardData request
<duplicate…>
…
<cardData>
<cardProductCode>2</cardProductCode>
<cardProductName>CARTE NATIONALE DE RETRAIT ET DE PAIEMENT</cardProductName>
<cardProductProfile>D</cardProductProfile>
<cardScheme>CB</cardScheme>
<issuerCode>10107</issuerCode>
<issuerCountryCode>FRA</issuerCountryCode>
</cardData>
…
</duplicate>
instalmentData
Fields | Comments |
---|---|
The tag name is instalmentData . | Element name |
number | |
datesList | |
transactionReferencesList | |
amountsList | |
s10TransactionIdsList |
- Sample directDebitOrder/instalmentData request
<directDebitOrder …>
…
<instalmentData>
<number>3</number>
<datesList>
<date>20140915</date>
<date>20141015</date>
<date>20141115</date>
</datesList>
<transactionReferencesList>
<transactionReference>TIR20140915A</transactionReference>
<transactionReference>TIR20141015A</transactionReference>
<transactionReference>TIR20141115A</transactionReference>
</transactionReferencesList>
<amountsList>
<amount>3100</amount>
<amount>3100</amount>
<amount>3100</amount>
</amountsList>
</instalmentData>
…
</directDebitOrder>
shoppingCartDetail
Fields | Comments |
---|---|
The tag name is shoppingCartDetail | Element name |
shoppingCartTotalAmount | |
shoppingCartTotalQuantity | |
shoppingCartTotalTaxAmount | |
mainProduct | |
ShoppingCartItemList |
Fields | Comments |
---|---|
The tag name is shoppingCartItemList | Element name |
shoppingCartItem |
Fields | Comments |
---|---|
The tag name is shoppingCartItem | Element name |
productName | |
productDescription | |
productCode | |
productSKU | |
productUnitAmount | |
productQuantity | |
productTaxRate | |
productUnitTaxAmount | |
productCategory |
- Sample cardOrder/shoppingCartDetail request
<cardOrder …>
…
<shoppingCartDetail>
<shoppingCartTotalAmount>12000</shoppingCartTotalAmount>
<shoppingCartTotalQuantity>3</shoppingCartTotalQuantity>
<shoppingCartTotalTaxAmount>21</shoppingCartTotalTaxAmount>
<mainProduct>wine</mainProduct>
<ShoppingCartItemList>
<shoppingCartItem>
<productName>Bordeaux</productName>
<productCode>BDX1546201</productCode>
<productUnitAmount>4000</productUnitAmount>
<productQuantity>1</productQuantity>
</shoppingCartItem>
<shoppingCartItem>
<productName>Bourgogne</productName>
<productCode>BGN0588201</productCode>
<productUnitAmount>5000</productUnitAmount>
<productQuantity>1</productQuantity>
</shoppingCartItem>
<shoppingCartItem>
<productName>Cognac</productName>
<productCode>CGC8541500</productCode>
<productUnitAmount>3000</productUnitAmount>
<productQuantity>1</productQuantity>
</shoppingCartItem>
</ShoppingCartItemList>
</shoppingCartDetail>
…
</cardOrder>
orderContext
Fields | Comments |
---|---|
The tag name is orderContext | Element name |
customerHostName | |
customerBrowserType | |
customerANI | |
customerANIInformationIdentifier |
- Sample duplicate/orderContext request
<duplicate …>
…
<orderContext>
<customerHostName>Pierre Durand</customerHostName>
<customerBrowserType> MOZILLA/4.0~(COMPATIBLE#059~MSIE~5.0#059~WINDOWS~95)</customerBrowserType>
<customerANI>17A00206</customerANI>
<customerANIInformationIdentifier>02</customerANIInformationIdentifier>
</orderContext>
…
</duplicate>
travelContext
Fields | Comments |
---|---|
The tag name is travelContext | Element name |
departureDate | |
passengerName | |
originAirport | |
numberOfRoutingCities | |
routingCityList | |
numberOfAirlineCarriers | |
airlineCarrierList | |
fareBasis | |
numberOfPassengers | |
destinationAirport | |
reservationCode |
The elements of the routingCityList and airlineCarrierList lists must be supplied in the following manner:
<routingCityList>
<routingCity>value1</routingCity>
<routingCity>value2</routingCity>
…
</ routingCityList
- Sample duplicate/travelContext request
<duplicate …>
…
<travelContext>
<departureDate>201702270</departureDate>
<passengerName>Arnaud Durand</passengerName>
<originAirport>ORLY1</originAirport>
<numberOfRoutingCities>2</numberOfRoutingCities>
<routingCityList>
<routingCity>PARIS</routingCity>
<routingCity>SEOUL</routingCity>
</routingCityList>
<numberOfAirlineCarriers>2</numberOfAirlineCarriers>
<airlineCarrierList>
<airlineCarrier>1234</airlineCarrier>
<airlineCarrier>KAL</airlineCarrier>
</airlineCarrierList>
<fareBasis>123456789</fareBasis>
<numberOfPassengers>1</numberOfPassengers>
<destinationAirport>LILLE</destinationAirport>
<reservationCode>RESERVATIONCODE</reservationCode>
</travelContext>
…
</duplicate>
deliveryData
Fields | Comments |
---|---|
The tag name is deliveryData | Element name |
method |
- Sample duplicate/deliveryData request
<duplicate …>
…
<deliveryData>
<method>A2</method>
</deliveryData>
…
</duplicate>
deliveryContact
Fields | Comments |
---|---|
The tag name is deliveryContact | Element name |
firstName | |
lastName | |
phone | |
mobile |
- Sample duplicate/deliveryContact request
<duplicate …>
…
<deliveryContact>
<firstName>Pierre</firstName>
<lastName>Dupont</lastName>
<mobile>06666666</mobile>
<phone>0521360011</phone>
</deliveryContact>
…
</duplicate>
deliveryAddress
Fields | Comments |
---|---|
The tag name is deliveryAddress | Element name |
additionalAddress1 | |
additionalAddress2 | |
additionalAddress3 | |
country | |
zipCode |
- Sample duplicate/deliveryAddress request
<duplicate …>
…
<deliveryAddress>
<additionalAddress1>80 Quai Voltaire, Bezons</additionalAddress1>
<country>FRA</country>
<zipCode>95870</zipCode>
</deliveryAddress>
…
</duplicate>
holderData
Fields | Comments |
---|---|
The tag name is holderData | Element name |
birthDate |
- Sample cardOrder/holderData request
<cardOrder …>
…
<holderData>
<birthdate>19450902</birthdate>
</holderData>
…
</cardOrder>
holderContact
Fields | Comments |
---|---|
The tag name is holderContact | Element name |
firstName | |
lastName | |
gender | Not used for the duplicate function. |
phone | Not used for the duplicate function. |
Not used for the duplicate function |
- Sample directDebitOrder/holderContact request
<directDebitOrder …>
…
<holderContact>
<firstName>Pierre</firstName>
<lastName>Dupont</lastName>
<gender>M</gender>
<phone>0123456789</phone>
<email>john.doe@mail.com</email>
</holderContact>
…
</directDebitOrder>
holderAddress
Fields | Comments |
---|---|
The tag name is holderAddress | Element name |
additionalAddress1 | |
additionalAddress2 | |
additionalAddress3 | |
city | |
country | |
streetName | |
streetNumber | |
postbox | |
state | |
zipCode |
- Sample directDebitOrder/holderAddress request
<directDebitOrder …>
…
<holderAddress>
<city>Bezons</city>
<country>FRA</country>
<streetName>Quai Voltaire</streetName>
<streetNumber>80</streetNumber>
<zipCode>95870</zipCode>
</holderAddress>
…
</directDebitOrder>
billingContact
Fields | Comments |
---|---|
The tag name is billingContact | Element name |
phone | |
mobile |
- Sample duplicate/billingContact request
<duplicate …>
…
<billingContact>
<phone>0521360011</phone>
<mobile>06666666</email>
</billingContact>
…
</duplicate>
billingAddress
Fields | Comments |
---|---|
The tag name is billingAddress | Element name |
additionalAddress1 | |
additionalAddress2 | |
additionalAddress3 | |
zipCode |
- Sample duplicate/billingAddress request
<duplicate …>
…
<billingAddress>
<additionalAddress1>80 Quai Voltaire, Bezons</additionalAddress1>
<zipCode>95870</zipCode>
</billingAddress>
…
</duplicate>
fraudData
Fields | Comments |
---|---|
The tag name is fraudData | Element name |
bypass3DS | |
bypassCtrlList | |
bypassInfoList | |
allowedCardCountryList | |
deniedCardCountryList | |
allowedCardArea | For future use |
deniedCardArea | For future use |
not implementedallowedIpCountryList | |
deniedIpCountryList | |
allowedIpArea | For future use |
deniedIpArea | For future use |
riskManagementDynamicSettingList |
- Sample duplicate/fraudData request
<duplicate …>
…
<fraudData>
<deniedIpCountryList>
<country>ATG</country>
<country>FRA</country>
<country>DNK</country>
</deniedIpCountryList>
</fraudData>
…
</duplicate>
riskManagementDynamicSettingList
Fields | Comments |
---|---|
The tag name is riskManagementDynamicSettingList | Element name |
riskManagementDynamicSetting |
Fields | Comments |
---|---|
The tag name is RiskManagementDynamicSetting | Element name |
riskManagementDynamicParam | |
riskManagementDynamicValue |
- Sample fraudData/riskManagementDynamicSettingList request
<duplicate>
…
<riskManagementDynamicSettingList>
<riskManagementDynamicSetting>
<riskManagementDynamicParam>AllowedIpCountryList</riskManagementDynamicParam>
<riskManagementDynamicValue>FRA,BEL</riskManagementDynamicValue>
</riskManagementDynamicSetting>
<riskManagementDynamicSetting>
<riskManagementDynamicParam>DeniedIpCountryList</riskManagementDynamicParam>
<riskManagementDynamicValue>DEU</riskManagementDynamicValue>
</riskManagementDynamicSetting>
</riskManagementDynamicSettingList>
</fraudData>
</duplicate>
riskManagementCustomDataList
Fields | Comments |
---|---|
The tag name is riskManagementCustomDataList | Element name |
riskManagementCustomData |
Fields | Comments |
---|---|
The tag name is riskManagementCustomData | Element name |
riskManagementCustomSequence | |
riskManagementCustomValue |
- Sample cardOrder/riskManagementCustomDataList request
<cardOrder …>
…
<riskManagementCustomDataList>
<riskManagementCustomData>
<riskManagementCustomSequence>1</riskManagementCustomSequence>
<riskManagementCustomValue>1</riskManagementCustomValue>
</riskManagementCustomData >
</riskManagementCustomDataList>
…
</cardOrder>
preAuthorisationRuleResultList
Fields | Comments |
---|---|
The tag name is preAuthorisationRuleResultList | Element name |
ruleResult |
- Sample preAuthorisationRuleResultList field response
<preAuthorisationRuleResultList>
<ruleResult>
…
</ruleResult>
<ruleResult>
…
</ruleResult>
</preAuthorisationRuleResultList>
Fields | Comments |
---|---|
The tag name is ruleResult | Element name |
ruleCode | |
ruleType | |
ruleWeight | |
ruleSetting | |
ruleResultIndicator | |
ruleDetailedInfo |
- Sample ruleResult element
<ruleResult>
<ruleCode>EC</ruleCode>
<ruleType>NG</ruleType>
<ruleWeight>D</ruleWeight>
<ruleSetting>N</ruleSetting>
<ruleResultIndicator>U</ruleResultIndicator>
<ruleDetailedInfo>MAX=2:2</ruleDetailedInf>
</ruleResult>
preAuthenticationRuleResultList
Fields | Comments |
---|---|
The tag name is preAuthenticationRuleResultList | Element name |
ruleResult | See ruleResult in the duplicate response 0. |
- Sample preAuthenticationRuleResultList field response
<preAuthenticationRuleResultList>
<ruleResult>
…
</ruleResult>
<ruleResult>
…
</ruleResult>
</preAuthenticationRuleResultList>
See the breakdown of the ruleResult element above.
authenticationData
Fields | Comments |
---|---|
The tag name is authenticationData | Element name |
CardAuthPolicy |
Fields | Comments |
---|---|
The tag name is CardAuthPolicy | Element name |
checkAVS | |
ignoreCSCCheckResult | |
ignorePostcodeCheckResult | |
ignoreAddressCheckResult | |
automaticReverse |
- Sample duplicate/authenticationData request
<duplicate …>
…
<authenticationData>
<CardAuthPolicy>
<checkAVS>Y</checkAVS>
<ignoreCSCCheckResult>N</ignoreCSCCheckResult>
<ignorePostcodeCheckResult>N</ignorePostcodeCheckResult>
<ignoreAddressCheckResult>N</ignoreAddressCheckResult>
<automaticReverse>Y</automaticReverse>
</CardAuthPolicy>
</authenticationData>
…
</duplicate>
Analysing errors when checking the file
There are several response code levels when Sips Office Batch processes a file. Several overall checks are carried out before the file is processed. If one of these checks fails, the file is completely rejected. (the processingResponseCode is neither 00 nor 01).
The returned response file contains the overall processing result code in the processingResponseCode field, in the file header.
Overall processing result codes
Code | Meaning |
---|---|
00 | File processed correctly . The file contains the list of operations. |
01 | File processed correctly. An operation has been associated with a merchant that is not related to the remitter ID. The operation will set the value of the officeBatchResponseCode field to 80. |
02 | File already processed The file sequence number is lower than it should be. The correct number is returned in the message that describes the error. |
03 | Sequence broken in the file sequence number . The file sequence number is higher than it should be. The correct number is returned in the message that describes the error. |
04 | Technical issue . Internal issue |
05 | File too big |
06 | The number of operations exceeds the maximum authorised amount. The maximum number of operations has been reached (100 000 operations maximum. This limit can be lower if you are not using the las version of the connector). |
07 | The number of operations counted is different from the number specified in the nbRecord field. |
08 | Duplicate operation |
09 | Incorrect record |
10 | Incorrect file format . The file format is not correct (the error description will be returned in the error-details tag). |
11 | Incorrect remitter. The remitter declared in the header is not correct. |
Autres codes | Incorrect file (these codes apply to older Sips Office Batch versions). |
Response code | Cause | Solution |
---|---|---|
Different from 00 and 01 | Restarting processing | The request file must be returned in its entirety with the same file sequence number. |
03 | File sequence number interruption | The file was completely refused. If necessary, the sequence number must be corrected and the file returned. |
04 | Technical error |
An operation caused a technical error. File processing was not interrupted. In this case, the processing can be very fast since all operations with code 25 or 90 will be refused ( responseCode field). For now, Worldline has not supplied any mechanism to defer the processing until a new connection is established. |
Analysing the errors caused by an operation
Each operation is considered as independent. Each operation has its own stored response code ( officeBatchResponseCode code). The code indicates the field that causes the issue.
If an operation fails, the processing is not interrupted. The operation is refused with the typical WL Sips response code ( responseCode field).
Codes | Fields in question |
---|---|
00 | None (all fields are correct) |
01 | merchantId error |
03 | transactionReference error |
04 | merchantTransactionDateTime error |
05 | amount error |
06 | captureDay error |
07 | captureMode error |
08 | operationAmount error |
09 | operationOrigin error |
11 | currencyCode error |
12 | customerIpAddress error |
13 | customerEmail error |
14 | customerId error |
16 | orderId error |
17 | orderChannel error |
18 | transactionOrigin error |
19 | returnContext error |
20 | fromTransactionReference error |
21 | cardExpiryDate error |
22 | cardNumber error |
23 | cardCSCValue error |
24 | cardEffectiveDate error |
25 | cardSeqNumber error |
26 | paymentMeanBrand error |
27 | authorisationId error |
28 | merchantWalletId error |
29 | paymentMeanId error |
30 | paymentPattern error |
31 | number error |
32 | statementReference error |
33 | panType error |
34 | mandateId error |
35 | valueDate error |
36 | paymentMeanAlias error |
37 | account error |
38 | bankCode error |
39 | transactionActors error |
45 | Date fields format error |
46 | settlementMode error |
47 | comment error |
48 | validationIndicator error |
50 | s10TransactionId error |
51 | s10TransactionIdDate error |
52 | s10FromTransactionId error |
53 | s10FromTransactionIdDate error |
54 | fraudData error |
55 | riskManagementDynamicParam error |
56 | riskManagementDynamicValue error |
57 | riskManagementDynamicSettingList error |
58 | fraudListReason error |
59 | fraudListType error |
60 | fraudListLevel error |
61 | fraudListElementType error |
62 | fraudListElementValue error |
63 | lastRecoveryIndicator error |
80 | Merchant not registered with Sips Office Batch or not associated with the remitter declared in the header |
Step 3: testing in the customer's validation environment
The objective is to validate that the file structure and query syntax are correct. For this first step, you do not need to have an acquiring contract since there is no connection to the payment acquirer: card authorisation requests are simulated. Transactions are stored in the WL Sips back office and you can test cash management operations on these transactions.
Contact the technical support to have a shop configured in the validation environement and request that file transfer be implemented between your site and WL Sips .
Step 4: validating the transition to live operation
First, submit a file containing a limited number of operations to validate the transition to live operation. Check the response file to make sure all operations were carried out correctly:
- Monitor the acceptance rate (number of responseCode 00/total number of operations).
- Check the nature of non-banking refusals:
- technical issue: responseCode 90, 97, 99,
- acquirer fraud: responseCode 34.
Appendix
Below are the XML schemas for each service available in Sips Office Batch .
office service XSD
Request file
<?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="recycle" />
<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: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: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: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: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: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="recycle">
<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="fromTransactionReference" type="xs:string" 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="statementReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
<xs:element name="transactionOrigin" 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:element ref="s10FromTransactionReference" maxOccurs="1" minOccurs="0" />
<xs:element name="lastRecoveryIndicator" 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:all>
<xs:attribute name="recordSequence" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<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: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: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: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: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>
Response file
<?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="recycle" />
<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: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: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: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: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: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:all>
<xs:attribute name="recordSequence" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="recycle">
<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="fromTransactionReference" type="xs:string" 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="statementReference" type="xs:string" maxOccurs="1" minOccurs="0"/>
<xs:element name="transactionOrigin" 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:element ref="s10FromTransactionReference" maxOccurs="1" minOccurs="0" />
<xs:element name="lastRecoveryIndicator" 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"/>
<!-- 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="maskedPan" type="xs:string" maxOccurs="1" minOccurs="0"/>
<xs:element name="officeBatchResponseCode" type="xs:string" maxOccurs="1" minOccurs="1"/>
<xs:element name="panExpiryDate" type="xs:string" maxOccurs="1" minOccurs="0"/>
<xs:element name="paymentMeanBrand" 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 ref="cardData" 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="preAuthenticationColor" type="xs:string" maxOccurs="1" minOccurs="0"/>
<xs:element name="preAuthenticationInfo" type="xs:string" maxOccurs="1" minOccurs="0"/>
<xs:element name="preAuthenticationProfile" type="xs:string" maxOccurs="1" minOccurs="0"/>
<xs:element name="preAuthenticationProfileValue" type="xs:string" maxOccurs="1" minOccurs="0"/>
<xs:element name="preAuthenticationThreshold" type="xs:string" maxOccurs="1" minOccurs="0"/>
<xs:element name="preAuthenticationValue" type="xs:string" maxOccurs="1" minOccurs="0"/>
<xs:element minOccurs="0" name="preAuthenticationRuleResultList">
<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: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>
token service XSD
Request file
<?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>
Response file
<?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>
fraud service XSD
Request file
<?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>
Response file
<?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>
wallet service XSD
Request file
<?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>
Response file
<?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>