Merchant Integration VPOS API - V2.4.3 - SemiFinal
Merchant Integration VPOS API - V2.4.3 - SemiFinal
API integration
Release n. 2.4.3
February 2021
The information contained in this document is CONFIDENTIAL. Use, transfer or
reproduction of this information, in whole or in part, is subject to the prior written consent of
SIA.
1.1 Summary
1. SUMMARY ....................................................................................................................................................... 3
1.1 SUMMARY .................................................................................................................................................... 3
1.2 TABLE OF SCHEMES ...................................................................................................................................... 5
1.3 TABLE OF PICTURES ...................................................................................................................................... 5
1.4 REVISIONS.................................................................................................................................................... 6
1.5 GLOSSARY ................................................................................................................................................... 8
2 INTRODUCTION ............................................................................................................................................10
3 API SIA VPOS INTEGRATION .....................................................................................................................11
3.1 INTEGRATION ..............................................................................................................................................11
3.2 API SIA VPOS............................................................................................................................................11
3.3 RESPONSE MESSAGES IN XML......................................................................................................................13
3.3.1 Element <BPWXmlResponse> .............................................................................................................14
3.3.2 Element <Header>..............................................................................................................................15
3.3.3 Element <Authorization> ....................................................................................................................16
3.3.4 Element <Operation> .........................................................................................................................20
3.3.5 Element <PanAliasData> ...................................................................................................................22
3.4 AUTHORIZATION REQUEST...........................................................................................................................23
3.4.1 Online authorization request................................................................................................................23
3.4.2 IBAN authorization request .................................................................................................................30
3.5 3DS 1.X AUTHORIZATIONS (VERIFIED BY VISA, SECURECODE AND SAFEKEY EXTENSION) ............................36
3.5.1 3DS authorization request ...................................................................................................................39
3.5.2 3DS authorization request step 2 .........................................................................................................50
3.6 3DS 2.X AUTHORIZATIONS ..........................................................................................................................54
3.6.1 3DS 2.x Authorization Request Step 0 ..................................................................................................54
3.6.2 3DS 2.x Authorization Request Step 1 ..................................................................................................65
3.6.3 3DS 2.x Authorization Request Step 2 ..................................................................................................69
3.7 3DS VERSIONING REQUEST ..........................................................................................................................72
3.7.1 3DS Versioning request .......................................................................................................................72
3.8 TRANSACTIONS ON IMMEDIATE AUTHORIZATIONS .........................................................................................74
3.8.1 Booking request...................................................................................................................................75
3.8.2 Cancellation of booking request...........................................................................................................79
3.8.3 Payment reversal request.....................................................................................................................83
3.9 CONSULTATION OPERATIONS .......................................................................................................................87
3.9.1 List of operations on transactions ........................................................................................................87
3.9.2 List of authorizations ...........................................................................................................................92
3.9.3 Request of order status ........................................................................................................................97
3.10 OPERATIONS ON PAN ALIAS ....................................................................................................................... 102
3.10.1 Pan alias recovery request................................................................................................................. 102
3.10.2 Pan alias revocation .......................................................................................................................... 105
3.10.3 List of information on PAN ALIAS operations ................................................................................... 108
3.10.4 Request to generate PAN ALIAS ........................................................................................................ 112
3.11 PAY-BY-LINK TRANSACTIONS ................................................................................................................... 115
3.11.1 Request to create link ........................................................................................................................ 115
3.11.2 Request of list of links created............................................................................................................ 123
3.11.3 Request to revoke a link ..................................................................................................................... 127
4 SIA VPOS APPENDICES .............................................................................................................................. 130
4.1 REFERENCES ............................................................................................................................................. 130
4.2 APPENDIX D GENERATING MACS FOR API SIA VPOS ............................................................................... 131
1.5 Glossary
Back office Used for making reference to the management functions of a store: statements, lists,
queries, instructions, etc.
CC Credit Card
Booking Transaction creating the accounting effects of a previously authorized transaction
Credit Accounting transaction for the repayment of a monetary sum to a customer
GET HTTP protocol communication transaction
Hash All the N bits (i.e. 128, 160) obtained from a string through a mathematical process
in a way that a different result is invariably obtained from a different string
HTTP Application protocol used for transmitting web pages. Standard RFC 2068
MAC Message authentication code
MD5 Algorithm for generating a unique 16 byte message identifier. Defined in RFC 1321
Merchant system Virtual store management software system. Virtual store
SIA FrontEnd Processor: SIA Spa
POST HTTP protocol communication transaction
SHA-1 Secure Hash Algorithm. Algorithm for generating hashes. Standard NIST FIPS 180-
1
Split Transaction for subdividing/reducing a payment already effected.
SSL Secure Socket Layer standard transport protocol created by Netscape
Communication
Reversal Transaction for the cancellation of a granted authorization with repayment of the
sum and/or limit of expenditure to the cardholder
URL Universal resource locator
VBV Visa Secure, formerly Verified By Visa: Visa security system for authenticating
credit cardholders during their purchases online
SecureCode MasterCard ID Check, formerly SecureCode: Mastercard and Maestro security
system for authenticating credit cardholders during their purchases online
SafeKey Security system for authenticating AMEX credit cardholders during their purchases
online (equivalent to VBV)
This document provides a description of the API Internet interface of the SIA VPOS system and of the related
integration with the order management systems on the merchant side.
SIA VPOS is an Internet virtual POS provided directly by SIA to sellers. It enables merchants to carry out transactions
online with their credit card using a PC and an Internet connection. The system can be used both to substitute the physical
“box” of the traditional POS and as a customizable gateway for credit card transactions. For a general description of its
functionalities, see the related document.
The SIA VPOS service is complemented by the functionalities of a back office graphic interface.
As regards the security of the Internet communication route, the degree of reliability offered is equivalent to that of the
TLS 1.2 protocol with 256-bit encryption.
For backoffice and redirect integration see “Merchant Integration VPOS REDIRECT”.
3.1 Integration
Integration shall refer to the use by a software application of the functionalities offered by the SIA VPOS system in the
form of APIs.
URLs of the web APIs for the ISO-8859-1 name-value pair requests:
URLs of the web APIs for the UTF-8 name-value pair requests:
This chapter provides a description of the procedures for integrating an application with the API system of the SIA VPOS
payment service. The use of the API SIA VPOS is entirely optional.
API Authorization: After having authenticated himself through userid and password, the back office administrator
may request authorization to use the SIA VPOS APIs by accessing the store profile, in
particular, the store details.
The API is provided in the form of a web application accepting calls in POST HTTP format generated by a merchant
application. Using this mechanism, the following transactions can be carried out:
- authorization request,
- reversal of payment,
- booking of authorized transaction,
- check status of transaction,
- questioning of transactions carried out by a merchant in a given period,
- etc.
Version no 1.4.0 of the SIA VPOS API also permits to send requests in XML format. These must be sent via the following
means:
POST with a parameter called data filled in with the XML message in urlencoded format.
The functionalities made available to the merchant systems are the following:
Function Description
Online authorization request It permits to forward authorizations to the authorization circuits.
Request of payment reversal The reversal request is applied by the SIA VPOS system to a payment
(authorization), regardless of its state.
Booking request It permits to forward requests to SIA VPOS for the booking of a credit card
authorization previously granted through a deferred booking.
Cancellation of booking request It cancels a booking request and enables the credit card authorization to be
booked again.
List of accounting transactions It obtains the list of accounting transactions.
It contains those requested and those already sent to the acquirers,
differentiated by state.
List of authorization requests The following authorization requests forwarded to the system are displayed:
1. those with positive outcome
2. those with negative outcome
3. reversed authorizations
4. all of them
Order status request It returns the current status of an order including all the authorization
operations connected thereto.
1. the merchant system retrieves from its database all the information necessary to perform the transaction, for
example: transaction ID, amount, etc.
2. the merchant system formats an http message containing all the fields specified as compulsory for the desired
transaction, and sends it via GET or POST to SIA. The message also contains the authentication information;
3. the SIA SSL server processes the request data, transmits them to the legacy systems and replies with an xml
document;
4. the merchant system processes the outcome message and, if necessary, updates its database.
The full lists of the fields of the various messages are provided in the related dedicated paragraphs.
The reply messages to the requests are formatted in XML. These contain all the request and reply data.
The next chapter contains a description of the format used for replies; the chapters following that provide a detailed
description of the various functions available, grouped as follows:
Scheme 1 – BPWXmlResponse
As can be seen, all messages have a single root element: BPWXmlResponse. Each message contains the most relevant
data of the request and the data provided in the reply. The reply elements are present only if no errors occur.
As already said, many reply messages share common elements. In particular, the elements <BPWXmlResponse>,
<Header>, <Authorization> and <Operation> are illustrated below
<BPWXmlResponse>
Code Description
00 Success
01 Order or ReqRefNum not found
02 ReqRefNum duplicated or not valid
03 Incorrect message format, missing or incorrect field
04 Incorrect API authentication, incorrect MAC or timestamp
exceeding the limit range
05 Incorrect date, or period indicated is empty
06 Unforeseen error in the circuit during processing of request
07 TransactionID not found
08 Operator indicated not found
09 TRANSACTIONID indicated does not make reference to
the entered ORDERID
10 Amount indicated exceeds maximum amount permitted
11 Incorrect status. Transaction not possible in the current
status
12 Circuit disabled
13 Duplicated order
16 Currency not supported or not available for the merchant
17 Exponent not supported for the chosen currency
20 The card is VBV/SecureCode/SafeKey-enabled; the reply
contains the data for redirection to ACS website
21 Maximum time-limit for forwarding VBV request step 2
expired
25 A call to 3DS method must be performed by the Requestor
26 A challenge flow must be initiated by the Requestor
In case of unexpected application crash (outcome 98), the tag <Data> will not be present and the value of MAC will be
NULL:
Scheme 2 - Header
<Header>
<ShopID>000000000000003</ShopID>
<OperatorID> AD456123</OperatorID>
<ReqRefNum>20150501901234567890123452289000</ ReqRefNum >
</Header>
Scheme 3 - Authorization
<Authorization>
<PaymentType>03</PaymentType>
<AuthorizationType>I</AuthorizationType>
<TransactionID> C355645658457564564565636</TransactionID>
<Network>01</Network>
<OrderID>A398459</OrderID>
<TransactionAmount>10000</TransactionAmount>
<AuthorizedAmount>10000</AuthorizedAmount>
<Currency>978</Currency> use 3 digits ISO 4217 code
<Exponent>2</Exponent> present with OPTION “x” or currency not euro
<AccountedAmount>10000</AccountedAmount>
<RefundedAmount>100</RefundedAmount> present if RELEASE=02 in the request
<TransactionResult>00</TransactionResult>
<Timestamp>2015-07-09T21:05:44</Timestamp>
<AuthorizationNumber>A93485</AuthorizationNumber>
<AcquirerBIN>123450943</AcquirerBIN>
<MerchantID>0983473569324509</MerchantID>
<TransactionStatus>01</TransactionStatus>
<ResponseCodeISO>00</ResponseCodeISO> present if the store is SV53 enabled
<PanTail>2025</PanTail> present if the store is SV64 enabled
<PanExpiryDate>2408</PanExpiryDate> present if the store is SV64 enabled
<IbanCode>IT37Z0760101600000028426203</IbanCode> only for iban transactions
<PaymentTypePP>0</PaymentTypePP> present if the store is SV73 enabled
<Authorization>
Code Description
03 SSL
04 VBV : merchant and customer adhering to VBV
05 SecureCode : merchant and customer adhering to SecureCode
06 Merchant VBV: merchant adhering to VBV and customer not adhering
07 Merchant SecureCode: merchant adhering to SecureCode and customer not adhering
08 VBV Owner not authenticated: merchant adhering to VBV; the customer has not authenticated
himself correctly
09 Mail order/Telephone order
13 SafeKey: merchant and customer adhering to SafeKey
14 SafeKey Merchant: merchant adhering to SafeKey and customer not adhering
15 SafeKey Owner not authenticated: merchant adhering to SafeKey; the customer has not
authenticated himself correctly
16 ProtectBuy: merchant and customer adhering to ProtectBuy
17 ProtectBuy Merchant: merchant adhering to ProtectBuy and customer not adhering
18 ProtectBuy Owner not authenticated: merchant adhering to ProtectBuy; the customer has not
authenticated himself correctly
Code Description
01 Visa
02 Mastercard
03 Dina
04 Maestro
06 American Express
07 Diners
08 JCB
80 IBAN
81 AmazonPay
82 EnelX
84 Satispay
91 BancomatPay (Jiffy)
94 Postepay (deprecated)
96 MyBank
97 PayPal
Code Description
00 Success
01 Denied due to problems in the request message
02 Denied due to problems in the store registry
03 Denied due to communication problems with the
authorization circuits
04 Denied by card issuer
05 Denied due to incorrect card number
06 Unforeseen error during processing of request
45 Denied authorization due to failed antifraud check.
10 Card not eligible for Installments
51 Installment number out of bounds (acquirer side)
99 Authorization underway with MyBank or BancomatPay
If the store is SV67 service enabled (explicit outcomes of antifraud checks from API) instead of the generic transaction
45 outcome, the following outcomes will be returned, for transactions carried out with active explicit outcome service
(SV67 from API or SV54 from Redirect).
Code Description
60 Denied due to failed antifraud check Riskshield
61 Denied due to failed antifraud check AmexPan
62 Denied due to failed antifraud check AmexPanIP
63 Denied due to failed antifraud check H3GPan
64 Denied due to failed antifraud check ItaPanCountry
65 Denied due to failed antifraud check PaypalCountry
66 Denied due to failed antifraud check CardEnrolledAuthenticate
67 Denied due to failed antifraud check PanBlackList
68 Denied due to failed antifraud check CountryPan
69 Denied due to failed antifraud check PrepaidPan
70 Denied due to failed antifraud check DebitPan
71 Denied due to failed antifraud check VirtualPan
Immediate
Code Description
00 Authorization granted, bookable
01 Authorization denied
02 Booked authorization to be processed
03 Booked authorization processed by clearing
04 Reversed authorization
21 Authorization to be reversed due to transaction error
99 Authorization underway with MyBank or BancomatPay
Deferred
Code Description
10 Deferred authorization open
11 Deferred authorization closed
<ResponseCodeISO> Information present only for the sections Authorization in response to an authorization
message (Online, Deferred or VBV Authorization) and for stores adhering to the "SV53
- Provide ResponseCodeISO in authorizations with APIs" service. It contains the
outcome code received from the relevant circuit.
<PanTail> last four digit of the card number (only if the shop is SV64 enabled)
<PanExpiryDate> expiry date of the card (only if the shop is SV64 enabled)
<IbanCode> iban (for iban transactions)
<PaymentTypePP> “2” for PagaConPostepay transactions by Wallet; “4” for PagaConPostepay
transactions by Card; “0” otherwise (only if the shop is SV73 enabled).
<RRN> unique identifier of the transaction in the iso authorization message (only if the shop is
SV71 enabled).
<CardType> C for Credit; D for Debit; P for prepaid (only if the shop is SV82 enabled and the
information is available).
<CardHolderInfo> This field can contain an occasional message from the cardholder issuer to be provided
to the cardholder
<MAC> Message authentication code: signature of authorization (see appendix 4.2.9)
Note: Please note that some of above elements/values subject to regional usage, please contact your Bank for further
details.
Scheme 4 - Operation
<Operation>
<TransactionID>C5555358794</TransactionID>
<TimestampReq>2015-07-04T22:02:55</TimestampReq>
<TimestampElab>NULL</TimestampElab>
<SrcType>01</SrcType>
<Amount>10000</Amount>
<Result>00</Result>
<Status>00</Status>
<OpDescr>OrderRefundA398459Attempt1</OpDescr>
<!-- This MAC signs operation data -->
<MAC>12334c3a4ab34c3a4ab34c3a4ab3ffa1</MAC>
<Authorization>
…………………………….
</Authorization>
</Operation>
<Operation>
The element contains all the data relating to the accounting transaction consisting of the following elements:
Code Description
01 Reversal of authorization
02 Credit transaction
03 Cancellation of booking
04 Booking transaction
Code Description
00 Success
01 Expired time-limits
02 Denied due to problems with store registered data
03 Denied due to communication problems with authorization
circuits
04 Denied by card issuer
05 Ceiling not restored
06 Unexpected error during processing of request
Code Description
00 Completed successfully
01 Failed
Scheme 5 - PanAliasData
<PanAliasData>
<PanAlias>0000197412081271677</PanAlias>
<PanAliasRev></PanAliasRev>
<PanAliasExpDate>2911</PanAliasExpDate>
<PanAliasTail>0003</PanAliasTail>
<Crecurr>PST581426946</Crecurr>
<MAC>E61612E0C0F71A2FE838BC0736B396E6</MAC>
</PanAliasData>
<PanAliasData>
The PanAliasRev field is always present and shows a value only if the alias created replaces one for the same pan
(typically with service SV34 – single alias pan).
The fields PanAliasExpDate and PanAliasTail are present only if the store has subscribed to the service SV45 or
the service SV88.
The CRecurr field is present only for recurring authorizations or authorizations with CREATEPANALIAS = “S” (if
SVA4 is not active).
The response message to the authorization request is formatted in XML. The data section is described on the following
scheme.
As can be noted, the response to an authorization request is essentially composed of an Authorization-type element.
In the case where an authentication error occurs or there is a formal error in the request, the Authorization element will
not be created.
Here below is an example of a file generated by the response to the online authorization request:
<BPWXmlResponse>
This is the root element of the document, there is only one element of this type in the message, which consists of the
following elements:
Code Description
00 Success
02 ReqRefNum duplicated or incorrect
03 Incorrect message format, missing or incorrect field
04 Incorrect API authentication, incorrect MAC
06 Unforeseen error during processing of request
37 Missing CVV2
40 Empty Xml or missing ‘data’ parameter
41 Xml not parsable
50 Installments not available
51 Installment number out of bounds (client side)
98 Application error
99 Transaction failed, see specific outcome enclosed in the
element <Data> of the response.
<MAC> message authentication code: signature of timestamp and result (see appendix 4.2.10)
<Data> data relating to the authorization request and response message
<Data>
There is only one element of this type in the message, containing all the data relating to the authorization request and
response message and consisting of the following elements:
<AuthorizationRequest>
There is only one element of this type in the message, containing all the data relating to the authorization request and
consisting of the following elements:
<Header>
There is only one element of this type in the message, which includes the date relating to the request sent. For the related
description see paragraph 3.3.2 in the chapter "Response messages in XML".
<Authorization>
There is only one element of this type in the message, which includes the authorization data. For the related description
see paragraph 3.3.3 in the chapter “Response messages in XML”
<PanAliasData>
There is only one element of this type in the message, which includes the card alias data. For the related description see
paragraph 3.3.5 in the chapter “Response messages in XML”
AMOUNT Y Min. 2 N Amount expressed in the smallest currency unit (EUR cents).
Max. 8 The amount must not be preceded by zeros.
Minimum length 1 maximum length 8.
The response message to the iban authorization request is formatted in XML. The data section is described on the
following scheme.
As can be noted, the response to an authorization request is essentially composed of an Authorization-type element.
In the case where an authentication error occurs or there is a formal error in the request, the Authorization element will
not be created.
Here below is an example of a file generated by the response to the iban authorization request:
<BPWXmlResponse>
This is the root element of the document, there is only one element of this type in the message, which consists of the
following elements:
Code Description
00 Success
02 ReqRefNum duplicated or incorrect
03 Incorrect message format, missing or incorrect field
04 Incorrect API authentication, incorrect MAC
06 Unforeseen error during processing of request
40 Empty Xml or missing ‘data’ parameter
41 Xml not parsable
98 Application error
99 Transaction failed, see specific outcome enclosed in the
element <Data> of the response.
<MAC> message authentication code: signature of timestamp and result (see appendix 4.2.10)
<Data> data relating to the authorization request and response message
<Data>
There is only one element of this type in the message, containing all the data relating to the iban authorization request and
response message and consisting of the following elements:
<IbanAuthorizationRequest>
There is only one element of this type in the message, containing all the data relating to the iban authorization request and
consisting of the following elements:
<Header>
<Authorization>
There is only one element of this type in the message, which includes the authorization data. For the related description
see the appropriate paragraph in the chapter “Response messages in XML”
Here below is a diagram showing the operation of the system in the two possible scenarios.
1. The user is connected to the store website and enters his credit card data.
1.1. The store initiates the authorization request process, regardless of the card, simply by forwarding a
AUTHORIZATION3DSSTEP1 message to the SIA VPOS system
1.2. If it is indicated that the card is a Visa/MasterCard/Maestro/Amex, SIA VPOS connects to the appropriate
directories and verifies whether the card is VBV enabled
1.3. If the card is not VBV enabled (or if it is not a Visa/MasterCard/Maestro/Amex VBV or the request is of the
MASTERPASS type) SIA VPOS sends an authorization message directly to the international circuits. The
response given to the store website contains the transaction outcome. This completes the scenario.
1.3. If the card is VBV enabled, the response to the message of 1.1 will not contain the transaction results, but rather,
the data for redirecting the user to the ACS website of the card issuer. The store creates the MD (merchant data)
and TermURL (return URL) parameters and redirects the user
2. The user, while connected to the ACS website, enters his password and is redirected again to the store website
bringing with him the MD and PaRes parameters.
2.1. Once the data are received from ACS, the store fills in a message of the AUTHORIZATION3DSSTEP2 type
and sends it to the SIA VPOS system. The message 2.1 must be received within 8 minutes from message 1.1
2.2. SIA VPOS decodes the ACS data, sends the authorization request to the international circuits, and then provides
the transaction outcome as a response to the AUTHORIZATION3DSSTEP2 message
In essence, the store must forward the authorization requests with the AUTHORIZATION3DSSTEP1 messages and
verify the outcome of the response. If the response is of the “VBV enabled card” type, it must undertake the VBV
workflow and redirect the user to the ACS website.
The redirection in question must be performed via POST with the appropriate parameters.
A simple HTML/Javascript example is provided in the following page.
The names PaReq, TermUrl and MD are part of the VBV standard and must be specified as such. The values included
between ${} are the values transmitted by the SIA VPOS system.
TermUrl is the URL to which the user is redirected after VBV authentication is performed by the card issuer’s ACS
website. It cannot contain parameters or attributes.
MD stands for Merchant Data. The merchant can fill it in at will, ACS will return whatever it has received. The field is
considered in Base64, hence only the characters which are part of said code are accepted.
The detailed specifications of the SIA VPOS messages and of the related responses are set out in the following paragraphs.
The full VBV process requires that the credit cardholder is present online; consequently, it is not possible to grant
authorizations of this type in automated “batches”. Notwithstanding the foregoing, the SIA VPOS interface permits to
indicate that the user is unavailable. In that case, the transaction will be completed only if the card is not
VBV/SecureCode/SafeKey enabled or if the card is not a Visa/MasterCard/Maestro/Amex VBV.
In the case where the card indicated in the request is not VBV enabled (or if it is not a Visa/MasterCard/Maestro/Amex
VBV or in the case of MASTERPASS requests), the system immediately forwards the transaction to the circuits. In that
case the response will contain the actual results of the authorization request.
If the card is VBV enabled, the response of the system will consist of an element containing all the data necessary to the
merchant’s website for redirecting the acquirer to the related card issuer’s ACS website for authentication.
Here below is an example of a file generated by the response to an online authorization request for a transaction carried
out on a card that is not VBV enabled or which is not a Visa/Mastercard/Maestro/Amex VBV:
As can be noted, the response to an authorization request is essentially composed of an Authorization-type element.
The response message to the authorization request is formatted in XML. The data section is described on the following
scheme.
<BPWXmlResponse>
This is the root element of the document, there is only one element of this type in the message, consisting of the following
elements:
<Timestamp> date and time of response message
<Result> outcome of the requested transaction. Possible outcomes:
Code Description
00 Success
02 ReqRefNum duplicated or incorrect
03 Incorrect message format, missing or incorrect field
04 Incorrect API authentication, incorrect MAC
06 Unforeseen error during processing of request
20 The card is VBV enabled; the response contains the data
for redirecting to the ACS website
40 Empty xml or missing ‘data’ parameter
41 Xml not parsable
50 Installments not available
51 Installment number out of bounds (client side)
99 Transaction failed, see specific outcome enclosed in the
element <Data> of the response.
<MAC> message authentication code: signature of timestamp and result (see appendix 4.2.7)
<Data> data relating to the authorization request and response message
<Data>
There is only one element of this type in the message, containing all the data relating to the authorization request and
consisting of the following elements:
<AuthorizationRequest>
There is only one element of this type in the message, containing all the data relating to the authorization request and
consisting of the following elements:
<Header>
There is only one element of this type in the message, which includes the date relating to the request sent. For the related
description see paragraph 3.3.2 in the chapter "Response messages in XML".
<Authorization>
There is only one element of this type in the message, containing all the authorization data. For the related description see
the appropriate paragraph in the chapter “Response messages in XML”
As set out above, the response in the case where the card entered is VBV enabled contains all the data for redirecting to
the card issuer’s ACS website. More specifically:
<VBVRedirect>
This element contains all the data relating to the VBV redirection:
<PaReq> These are the VBV data in Base64 to be sent via POST to the card issuer’s ACS website
<AcsURL> this is the URL of the card issuer’s ACS website. The user must be redirected to this URL
according to the procedures set out above.
<MAC> message authentication code: signature of the VBVRedirect element (see appendix 4.2.17)
<PanAliasData>
There is only one element of this type in the message, which includes the card alias data. For the related description see
paragraph 3.3.5 in the chapter “Response messages in XML”
The fields to be specified in the HTTP request message are the following:
PARES Y This is the PARES returned by the card issuer’s ACS website after
user authentication.
OPTIONS N Min 0 AN The field OPTIONS permits to activate various additional options
Max 26 for the ongoing message.
MAC Y 32, 40, AN Message Authentication Code. For the related calculation see
64 appendix 4.2.12
<PaRes>Ssdfljlkj45098asdkgr09adsflkj9v26sfaheu73tags52gq7asgdhsdhvadghasags</PaRes>
</Authorization3DS>
</Data>
</BPWXmlRequest>
The response to the message VBV step 2 is identical to the response that would be obtained from an online authorization
request message for which an authorization request message has been forwarded to the circuits.
Here below is an example of a file generated by the response to the VBV online authorization request step 2:
The value of 07 is added for the element Result of BPWXmlResponse, so as to obtain the following final result.
Code Description
00 Success
02 ReqRefNum duplicated or incorrect
03 Incorrect message format, missing or incorrect field
04 Incorrect API authentication, incorrect MAC
06 Unforeseen error during processing of request
07 OriginalReqRefNum not found: it does not make reference
to a VBV authorization request or too much time has
passed from the original request
21 Maximum time-limit for forwarding the VBV step 2
request expired
40 Empty xml or missing ‘data’ parameter
41 Xml not parsable
For a description of <Authorization> see the appropriate paragraph in the chapter “Response messages in XML”.
The input of this step is the whole set of data required for a 3DS2.0 authorization.
In the first scenario the user has to be redirected to the url provided. Then the flow follows to the step 2.
In the second scenario the user has to be redirected to the url provided. The the flow follows to the step 3.
The input of this step is the 3ds transaction id and the output of the method url redirect.
In the first scenario the user have to be redirected to the url provided.
4) THREEDSVERSIONING
This is an optional API the merchant can use to know which 3DS flow is available for the customer’s credit card.
Please refer to chapter 4.4Error! Reference source not found. for more details about ThreeDSDATA field.
The response message to the authorization request is formatted in XML. The data section is described on the following
scheme.
Here below is an example of a file generated by the response to the 3DS 2.x authorization request step 0 for all the tree
cases:
In this case, the Requestor is supposed to submit a parameter named threeDSMethodData, via a form in a HTML
iframe within the Cardholder browser, using an HTTP POST method to the 3DS Method URL received in the
ThreeDSAuthorizationRequest0 message. If the 3DS Method does not complete within 10 seconds, merchant
A lightweight JavaScript library (nca-3ds-web-sdk.js) allows Requestors to easily invoke 3DS Method messages for
browser-based transactions. nca-3ds-web-sdk.js library can be found at the following path under API address:
/editor/nca-3ds-web-sdk.js
Challenge Requested
<?xml version="1.0" encoding="ISO-8859-1" ?>
<BPWXmlResponse>
<Timestamp>2015-04-09T12:02:38</Timestamp>
<Result>26</Result>
<!-- This MAC signs timestamp and result -->
<MAC>8A74330BA1A1A085581EAA2409D8DC68FCC4395E</MAC>
<Data>
<!-- This element contains request data -->
<ThreeDSAuthorizationRequest0>
<Header>
<ShopID>000000000000003</ShopID>
<OperatorID>AD456123</OperatorID>
<ReqRefNum>20150501901234567890123452289000</ReqRefNum>
</Header>
<OrderID>p91</OrderID>
<Pan>999850xxxxxx0015</Pan>
<CVV2>000</CVV2>
<CreatePanAlias>S</CreatePanAlias>
<ExpDate>0409</ExpDate>
<Amount>4450</Amount>
<Currency>978</Currency>
<Exponent>2</Exponent>
<AccountingMode>I</AccountingMode>
<Network>01</Network>
<EmailCH>[email protected]</EmailCH>
<Userid>user1</Userid>
<OpDescr>CallCenterRequest1037</OpDescr>
<ProductRef>12345678</ProductRef>
<Name>Jon</Name>
<Surname>Snow</Surname>
<TaxID>SNWJNO96A01F205L</TaxID>
<ThreeDSData>BASE64ENCODED3DSDATA=</ThreeDSData>
<NotifUrl>https://mydomain.com/challengeNotification</NotifUrl>
<ThreeDSMtdNotifUrl></ThreeDSMtdNotifUrl>
<ChallengeWinSize></ChallengeWinSize>
<TRecurr>C</TRecurr>
<CRecurr>PST581426946</CRecurr>
<InstallmentsNumber></InstallmentsNumber>
</ThreeDSAuthorizationRequest0>
<ThreeDSChallenge>
<!-- 3DS Server Transaction ID -->
<ThreeDSTransId>df4b3490-db44-4a88-9619-ab173ff76fbe</ThreeDSTransId>
<!-- base 64 encoded challenge request -->
<CReq>BASE64ENCODEDCHALLENGEREQUEST=</CReq>
<!-- ACS challenge url -->
<ACSUrl>http://acsdomain.com/challenge</ACSUrl>
<MAC>115025d5a5b65df687790867bdece136</MAC>
</ThreeDSChallenge>
</Data>
</BPWXmlResponse>
In this case, the Requestor is supposed to submit a parameter named creq, via a form in a HTML iframe within the
Cardholder browser, using an HTTP POST method to the ACS URL that was received in the response of the
ThreeDSAuthorizationRequest0 message.
A lightweight JavaScript library (nca-3ds-web-sdk.js) allows Requestors to easily invoke Challenge Request messages
for browser-based transactions. nca-3ds-web-sdk.js library can be found at the following path under API address:
/editor/nca-3ds-web-sdk.js
Authorized
<BPWXmlResponse>
This is the root element of the document, there is only one element of this type in the message, consisting of the following
elements:
<Timestamp> date and time of response message
<Result> outcome of the requested transaction. Possible outcomes:
Code Description
00 Success
02 ReqRefNum duplicated or incorrect
03 Incorrect message format, missing or incorrect field
04 Incorrect API authentication, incorrect MAC
06 Unforeseen error during processing of request
20 The card is VBV enabled; the response contains the data
for redirecting to the ACS website
25 A call to 3DS method must be performed by the Requestor
26 A challenge flow must be initiated by the Requestor
40 Empty xml or missing ‘data’ parameter
41 Xml not parsable
50 Installments not available
51 Installment number out of bounds (client side)
99 Transaction failed, see specific outcome enclosed in the
element <Data> of the response.
<MAC> message authentication code: signature of timestamp and result (see appendix 4.2.7)
<Data> data relating to the authorization request and response message
<Data>
There is only one element of this type in the message, containing all the data relating to the authorization request and
consisting of the following elements:
<AuthorizationRequest>
There is only one element of this type in the message, containing all the data relating to the authorization request and
consisting of the following elements:
<Header>
There is only one element of this type in the message, which includes the date relating to the request sent. For the related
description see paragraph 3.3.2 in the chapter "Response messages in XML".
<Authorization>
There is only one element of this type in the message, containing all the authorization data. For the related description see
the appropriate paragraph in the chapter “Response messages in XML”
Please note that, in this case, a further field named <CardholderInfo> could be present in the <Authorization>
element. <CardholderInfo> is a text provided by the ACS/Issuer to Cardholder during a Frictionless or Decoupled
<ThreeDSMethod>
There is only one element of this type in the message, containing all the 3DS method data.
<ThreeDSChallenge>
There is only one element of this type in the message, containing all the challenge data.
<PanAliasData>
There is only one element of this type in the message, which includes the card alias data. For the related description see
paragraph 3.3.5 in the chapter “Response messages in XML”
The response to the 3DS 2.x authorization message step 1 can lead to two different scenarios:
A challenge request
A 3DS 2.x authorized transaction
Challenge Requested
In this case, the Requestor is supposed to submit a parameter named creq, via a form in a HTML iframe within the
Cardholder browser, using an HTTP POST method to the ACS URL that was received in the response of the
ThreeDSAuthorizationRequest0 message.
At the end of challenge process, the url submitted in the NotifUrl field of the ThreeDSAuthorizationRequest0
message will be called through an HTTP POST: the Requestor is supposed to invoke the final
ThreeDSAuthorizationRequest2 message.
A lightweight JavaScript library (nca-3ds-web-sdk.js) allows Requestors to easily invoke Challenge Request messages
for browser-based transactions. nca-3ds-web-sdk.js library can be found at the following path under API address:
/editor/nca-3ds-web-sdk.js
Authorized
Please refer to chapter “Request of 3DS 2.x authorization step 0 in XML format” for more details about
<ThreeDSChallenge> and <Authorization> elements.
The value of 07 is added for the element Result of BPWXmlResponse, so as to obtain the following final result.
Code Description
00 Success
02 ReqRefNum duplicated or incorrect
03 Incorrect message format, missing or incorrect field
04 Incorrect API authentication, incorrect MAC
06 Unforeseen error during processing of request
07 ThreeDSTransID not found: it does not make reference to
a VBV authorization request or too much time has passed
from the original request
21 Maximum time-limit for forwarding the VBV step 1
request expired
26 A challenge flow must be initiated by the Requestor
40 Empty xml or missing ‘data’ parameter
41 Xml not parsable
99 Transaction failed, see specific outcome enclosed in the
element <Data> of the response.
The response message to the authorization request is formatted in XML. The data section is described on the following
scheme.
The response to the message is identical to the response that would be obtained from an online authorization request
message for which an authorization request message has been forwarded to the circuits.
Here below is an example of a file generated by the response to the 3DS 2.x authorization request step 2:
Please refer to chapter “Request of 3DS 2.x authorization step 0 in XML format” for more details about <Authorization>
element.
The value of 07 is added for the element Result of BPWXmlResponse, so as to obtain the following final result.
Code Description
00 Success
02 ReqRefNum duplicated or incorrect
03 Incorrect message format, missing or incorrect field
04 Incorrect API authentication, incorrect MAC
06 Unforeseen error during processing of request
07 ThreeDSTransID not found: it does not make reference to
a VBV authorization request or too much time has passed
from the original request
21 Maximum time-limit for forwarding the VBV step 2
request expired
40 Empty xml or missing ‘data’ parameter
41 Xml not parsable
99 Transaction failed, see specific outcome enclosed in the
element <Data> of the response.
Usually a merchant does not need to use this message as vpos 3DS 2.0 messages are able to switch to the supported card
authentication method by themselves.
The fields to be specified in the HTTP request message are the following:
The response message to the versioning request is formatted in XML. The data section is described on the following
scheme.
Here below is an example of a file generated by the response to the 3DS versioning request:
For ASI card verification transactions the booking request cannot be submitted.
The fields to be specified in the HTTP request message are the following:
OPTIONS N Min 0 AN The field OPTIONS permits to activate various additional options for
Max 26 the ongoing message.
MAC Y 32, 40, AN Message Authentication Code. For the related calculation see
64 appendix 4.2.2
The response message to the booking request is formatted in XML. The data section is described on the following scheme.
The response to a booking request consists of an Operation-type element containing the data relating to the effected
transaction.
If the TRANSACTIONID of the original transaction does not exist, or if an authentication error occurs, the element
Operation will not be created.
<BPWXmlResponse>
This is the root element of the document, there is only one element of this type in the message, which consists of the
following elements:
<Timestamp> date and time of response message
<Result> outcome of transaction requested
Code Description
00 Success
02 ReqRefNum duplicated or incorrect
03 Incorrect message format, missing or incorrect field
04 Incorrect API authentication, incorrect MAC
06 Unforeseen error during processing of request
07 TransactionID not found
40 Empty xml or missing ‘data’ parameter
41 Xml not parsable
<MAC> message authentication code: signature of timestamp and result. See appendix 4.2.7
<Data> data relating to the authorization request and response message
<Data>
There is only one element of this type in the message, containing all the data relating to the booking request and to the
response message and consisting of the following elements:
<Accounting>
There is only one element of this type in the message, containing all the data relating to the booking request and consisting
of the following elements:
<Header>
There is only one element of this type in the message, which includes the date relating to the request sent. For the related
description see paragraph 3.3.2 in the chapter "Response messages in XML".
<Operation>
This element contains all the data relating to the accounting transaction carried out. For a detailed description see the
chapter “Response messages in XML”
For ASI card verification transactions the request of cancellation of booking cannot be submitted.
The fields to be specified in the HTTP request message are the following:
OPTIONS N Min 0 AN The field OPTIONS permits to activate various additional options for
Max 26 the ongoing message.
MAC Y 32, 40, AN Message Authentication Code. For the related calculation see
64 appendix 4.2.3
The response to a booking request consists of a Operation element, containing the data of the transaction carried out.
If the TRANSACTIONID of the original transaction does not exist, or if an authentication error occurs, the Operation
element will not be created.
Here below is an example of a file generated by the response to a booking cancellation request:
<BPWXmlResponse>
This is the root element of the document, there is only one element of this type in the message, which consists of the
following elements:
Code Description
00 Success
02 ReqRefNum duplicated or incorrect
03 Incorrect message format, missing or incorrect field
04 Incorrect API authentication, incorrect MAC
05 Incorrect date or indicated period is empty
06 Unforeseen error during processing of request
07 TransactionID not found
40 Empty xml or missing ‘data’ parameter
41 Xml not parsable
99 Transaction failed, see specific outcome enclosed in the
element <Data> of the response.
<MAC> message authentication code: signature of timestamp and result. See appendix 4.2.7
<Data> data relating to authorization request and response message
<Data>
There is only one element of this type in the message, containing all the data relating to the authorization request and
response message and consisting of the following elements:
<ReverseAccounting>
<Header>
There is only one element of this type in the message, which includes the date relating to the request sent. For the related
description see paragraph 3.3.2 in the chapter "Response messages in XML".
<Operation>
This element includes all the data relating to the booking transaction carried out. For a detailed description see the chapter
“Response messages in XML”
For ASI card verification transactions the refund request only updates the internal state of the transaction on the virtual
pos. No other actions will be taken.
The fields to be specified in the HTTP request message are the following:
OPTIONS N Min 0 AN The field OPTIONS permits to activate various additional options for
Max 26 the ongoing message.
MAC Y 32, 40, AN Message Authentication Code. For the related calculation see
64 appendix 4.2.1
The response message to the payment reversal request is formatted in XML. The data section is described on the following
scheme.
As can be noted the response to a payment reversal request consists of two elements: the outcome of the ceiling restoration
transaction and any accounting transaction carried out in order to repay the amount to the cardholder.
If the TRANSACTIONID of the original transaction does not exist, or if an authentication error occurs, the response
elements contained in Data will not be created.
Here below is an example of a file generated by the response to a previously booked authorization reversal request:
<BPWXmlResponse>
This is the root element of the document, there is only one element of this type in the message, which consists of the
following elements:
Code Description
In case of multiple reversals (that is, reversal requests on already partially reversed authorizations) special emphasis
should be placed on the following circumstances:
- reversal with unspecified amount: the result will be 03 (that is, full reversals after partial reversals are not
accepted).
- Reversal on an already fully reversed authorization: the result will be 00.
<MAC> message authentication code: signature of timestamp and result. See appendix 4.2.7
<Data> data relating to the reversal request and response message
<Data>
There is only one element of this type in the message, containing all the data of the reversal request and of the response
message and consisting of the following elements:
<Refund>
There is only one element of this type in the message, containing all the data of the reversal request and of the response
message and consisting of the following elements:
<Header>
There is only one element of this type in the message, which includes the date relating to the request sent. For the related
description see paragraph 3.3.2 in the chapter "Response messages in XML".
<Operation>
This element is optional: it is present only if, to perform the reversal, an accounting transaction is required. If it is present,
it will contain all the data relating to the accounting transaction performed. For a detailed description see the chapter
“Response messages in XML”
The fields to be specified in the HTTP request message are the following:
OPTIONS N Min 0 AN The field OPTIONS permits to activate various additional options for
Max 26 the ongoing message.
SRCTYPE N 2 AN Type of transaction to be extracted. The possible values are: 01 02 03
04, which make reference to the field <SrcType> of the element
<Operation>. See the chapter “Response messages in XML”
OPDESCR N 100 AN The resulting list includes only the operations with the optional
description (see refund message)
MAC Y 32, 40, AN Message Authentication Code. For the related calculation see
64 appendix 4.2.4
The response message to the request of list of accounting transactions is formatted in XML. The data section is described
on the following scheme.
The response to a request of accounting list consists of a series of elements of the Operation type.
If an error occurs, the element OperationList will not be created.
Here below is an example of a file generated by the response to a request of list of accounting transactions:
<BPWXmlResponse>
This is the root element of the document, there is only one element of this type in the message, which is composed of the
following elements:
Code Description
00 Success
02 ReqRefNum duplicated or incorrect
03 Incorrect message format, missing or incorrect field
04 Incorrect API authentication, incorrect MAC
05 Incorrect date, or period indicated empty
06 Unforeseen error during processing of request
07 TransactionID not found
40 Empty xml or missing ‘data’ parameter
41 Xml not parsable
<MAC> message authentication code: signature of timestamp and result. See appendix 4.2.7
<Data> data relating to the request of list of accounting transactions and to the response message
<Data>
There is only one element of this type in the message, containing all the data relating to the request of list of accounting
transactions and of the response message and consisting of the following elements:
<ListOperation>
There is only one element of this type in the message, containing all the data relating to the request of list of accounting
transactions and consisting of the following elements:
<Header>
There is only one element of this type in the message, which includes the date relating to the request sent. For the related
description see paragraph 3.3.2 in the chapter "Response messages in XML".
<NumberOfItems>
This element contains the number of elements constituting the requested list
<Operation>
The fields to be specified in the HTTP request message are the following:
OPTIONS N Min 0 AN The field OPTIONS permits to activate various additional options for
Max 26 the ongoing message.
MAC Y 32, 40, AN Message Authentication Code. For the related calculation see
64 appendix 4.2.5
The response message to the request of list of authorizations is formatted in XML. The data section is described on the
following scheme.
The response to a request of list of authorizations consists of a series of elements of the Authorization type.
If an error occurs the element Authorization will not be created.
Here below is an example of a file generated by the response to a request of list of authorizations:
<BPWXmlResponse>
This is the root element of the document, there is only one element of this type in the message, which is composed of the
following elements:
Code Description
00 Success
<MAC> message authentication code: signature of timestamp and result. See appendix 4.2.7
<Data> data relating to the request of list of authorizations and to the response message
<Data>
There is only one element of this type in the message, containing all the data relating to the request of list of authorizations
and to the response message and consisting of the following elements:
<ListAuthorization>
There is only one element of this type in the message, containing all the data relating to the request of list of authorizations
and consisting of the following elements:
<Header>
There is only one element of this type in the message, which includes the date relating to the request sent. For the related
description see paragraph 3.3.2 in the chapter "Response messages in XML".
<NumberOfItems>
This element, if present, contains the number of authorizations set out in the attribute NumberOfItems.
<Authorization>
There are N occurrences of this element. Each one of them contains all the data relating to an authorization of the list. For
a detailed description see chapter “Response messages in XML”
If the store is pan tail return service (SV64) enabled, the authorization will contain also the <PanTail> and
<PanExpiryDate> elements.
The fields to be specified in the HTTP request message are the following:
OPTIONS N Min 0 AN The field OPTIONS permits to activate various additional options for
Max 26 the ongoing message.
MAC Y 32, 40, AN Message Authentication Code. For the related calculation see
64 appendix 4.2.6
The response message to an order status request is formatted in XML. The data section is described on the following
scheme.
The response to an order status request consists of a series of elements of the Authorization type: these consist of the
various authorizations connected to the indicated order number. If the order has been processed with immediate
authorization, only one authorization will appear.
If an error occurs, no Authorization element will appear.
Here below is an example of a file generated by the response to an order status request:
<BPWXmlResponse>
Code Description
00 Success
01 Order or ReqRefNum not found
02 ReqRefNum duplicated or incorrect
03 Incorrect message format, missing or incorrect field
04 Incorrect API authentication, incorrect MAC
06 Unforeseen error during processing of request
07 TransactionID not found
40 Empty xml or missing ‘data’ parameter
41 Xml not parsable
99 Transaction failed, see specific outcome enclosed in the
element <Data> of the response.
<MAC> message authentication code: signature of timestamp and result. See appendix 4.2.7
<Data> data relating to the order status request and to the response message
<Data>
There is only one element of this type in the message, containing all the data relating to the order status request and
response message and consisting of the following elements:
<OrderStatus
>
There is only one element of this type in the message, containing all the data relating to the order status request and
consisting of the following elements:
<Header>
There is only one element of this type in the message, which includes the date relating to the request sent. For the related
description see paragraph 3.3.2 in the chapter "Response messages in XML".
<Authorization>
There may be more than one element of this type. Each element consists of an authorization connected to the selected
order.
For a detailed description see the chapter “Response messages in XML”
There is only one element of this type in the message, which includes the card alias data. For the related description see
paragraph 3.3.5 in the chapter “Response messages in XML”
The fields to be specified in the HTTP request message are the following:
The response, which is in XML format, will include the element <PanAliasData> (present if and only if the authorization
request and the creation of the alias pan have a positive outcome).
Example of API XML response in which the pan alias code is returned:
<BPWXmlResponse>
This is the root element of the document, there is only one element of this type in the message, which is composed of the
following elements:
<Timestamp> date and time of response message
<Result> outcome of transaction requested
Code Description
00 Success
02 ReqRefNum duplicated or incorrect
03 Incorrect message format, missing or incorrect field
04 Incorrect API authentication, incorrect MAC
06 Unforeseen error during processing of request
38 Order not found or alias revoked
40 Empty xml or missing ‘date’ parameter
<Data>
There is only one element of this type in the message, containing all the data relating to the alias recovery request and to
the response message and consisting of the following elements:
< PanAliasRecoveryRequest>
There is only one element of this type in the message, containing all the data relating to the alias pan recovery request
and consisting of the following elements:
<Header>
There is only one element of this type in the message, which includes the date relating to the request sent. For the related
description see paragraph 3.3.2 in the chapter "Response messages in XML".
<PanAliasData>
There is only one element of this type in the message, which includes the card alias data. For the related description see
paragraph 3.3.5 in the chapter “Response messages in XML”
The following cases may arise for the indicated alias pan:
1) No record found: an attempt is being made to revoke a non-existent alias the revocation request is denied by
the system with outcome 38 (Alias Pan non-existent or not active).
2) Record found but with alias not active this means an attempt is being made to revoke a previously revoked
alias the system replies with outcome 00.
3) Found a record precisely with active alias the system revokes the alias and replies with outcome 00.
The fields to be specified in the HTTP request message are the following:
OPTIONS N Min 0 AN The field OPTIONS permits to activate various additional options for
Max 26 the ongoing message.
MAC Y 32, 40, AN Message Authentication Code. For the related calculation see
64 appendix 4.2.20
<BPWXmlResponse>
This is the root element of the document, there is only one element of this type in the message, which is composed of the
following elements:
Code Description
00 Success
02 ReqRefNum duplicated or incorrect
03 Incorrect message format, missing or incorrect field
04 Incorrect API authentication, incorrect MAC
06 Unforeseen error during processing of request
38 Alias Pan non-existent or not active
40 Empty xml or missing ‘date’ parameter
41 Xml not parsable
98 Application error
99 Transaction failed, see specific outcome enclosed in the
element <Data> of the response.
<Data>
There is only one element of this type in the message, containing all the data relating to the revocation request and
response message and consisting of the following elements:
< PanAliasRevocation>
There is only one element of this type in the message, containing all the data relating to the revocation request and
consisting of the following elements:
< Header>
< PanAlias>
<Header>
There is only one element of this type in the message, which includes the date relating to the request sent. For the related
description see paragraph 3.3.2 in the chapter "Response messages in XML".
OPTIONS N Min 0 AN The field OPTIONS permits to activate various additional options for
Max 26 the ongoing message.
MAC Y 32, 40, AN Message Authentication Code. For the related calculation see
64 appendix 4.2.22
The API XML LISTPANALIASINFO extracts, within a period of time, the data concerning the two possible actions that
may concern an alias: create or revoke.
The format used for presenting the information on one create alias action is the following:
<AliasCreated>
<PanAliasRevHash />
<PanAliasHash />
<Timestamp />
<OperatorId />
<MAC />
</AliasCreated>
The action for the revocation of an alias can be the result of a revocation request or a creation request (automatic
revocation of previous alias). In case of automatic revocation, the details of the revoked element will in any case be
included in the list, given that the revocation timestamp of the revoked element matches the creation timestamp of the
created element.
The format used for presenting the information on one revoke alias action is the following:
<AliasRevoked>
<PanAliasHash />
<Timestamp />
<OperatorId />
<TimestampRev />
<OperatorIdRev />
<MAC />
</AliasRevoked>
For calculating the MAC in the request message see appendix 4.2.22.
<BPWXmlResponse>
This is the root element of the document, there is only one element of this type in the message, which is composed of the
following elements:
<Timestamp> date and time of response message
<Result> outcome of transaction requested (“00” = list performed)
Code Description
00 Success
02 ReqRefNum duplicated or incorrect
03 Incorrect message format, missing or incorrect field
04 Incorrect API authentication, incorrect MAC
05 Incorrect date, or period indicated is empty
06 Unforeseen error during processing of request
40 Empty xml or missing ‘date’ parameter
41 Xml not parsable
98 Application error
99 Transaction failed, see specific outcome enclosed in the
element <Data> of the response.
There is only one element of this type in the message, containing all the data relating to the request of a list and the
response message and consisting of the following elements:
<ListPanAliasInfoRequest>
There is only one element of this type in the message and it includes the data concerning the request of a list of alias pan
represented by the following elements:
<Header>
There is only one element of this type in the message, which includes the date relating to the request sent. For the related
description see paragraph 3.3.2 in the chapter "Response messages in XML".
< ListPanAliasInfo>
< AliasCreated>
< AliasRevoked>
OPTIONS N Min 0 AN The field OPTIONS permits to activate various additional options for
Max 26 the ongoing message.
MAC Y 32, 40 o AN Message Authentication Code. For the related calculation see
64 appendix 4.2.27
The response message to a pan alias generation request is formatted in XML. The data section is described on the
following scheme.
<BPWXmlResponse>
This is the root element of the document, there is only one element of this type in the message, which is composed of the
following elements:
<Timestamp> date and time of response message
Code Description
00 Success
02 ReqRefNum duplicated or incorrect
03 Incorrect message format, missing or incorrect field
04 Incorrect API authentication, incorrect MAC
05 Incorrect date, or period indicated is empty
06 Unforeseen error during processing of request
40 Empty xml or missing ‘date’ parameter
41 Xml not parsable
98 Application error
99 Transaction failed, see specific outcome enclosed in the
element <Data> of the response.
<Data>
There is only one element of this type in the message, containing all the data relating to the creation request and the
response message and consisting of the following elements:
< PanAliasGeneration>
There is only one element of this type in the message, containing all the data relating to the request to create alias pan and
consisting of the following elements:
<Header>
There is only one element of this type in the message, which includes the date relating to the request sent. For the related
description see paragraph 3.3.2 in the chapter "Response messages in XML".
< PanAliasData>
There is only one element of this type in the message, which includes the card alias data. For the related description see
paragraph 3.3.5 in the chapter “Response messages in XML”
LINKURLMS Y 254 AN URL of the merchant system toward which SIA carries out the GET
or POST confirming the effected payment (it may contain any
LINKAUTHORMO Y 1 A Immediate authorization only is available. The field must have the
DE value of I.
LINKLANG Y 3 A Language in which the messages of interaction with the final user
must be shown. The field is optional; the default language is Italian.
The following are currently available:
ITA Italian
EN English
The result of the request to create a link is a complete link in the following form:
https://atpos.ssb.it/atpos/pagamenti/main?PAGE=PBL&TOKEN=1qwpt99pslotul1budkx3f712
<BPWXmlResponse>
This is the root element of the document, there is only one element of this type in the message, which is composed of the
following elements:
<Timestamp> date and time of response message
<Result> outcome of transaction requested
<Data>
There is only one element of this type in the message, containing all the data relating to the request of a list and the
response message and consisting of the following elements:
<CreateLink>
There is only one element of this type in the message and it includes the data related to the request to create a link
represented by the following elements:
For the details for all the "Link" fields see the integration specifications of the Redirect mode.
<Header>
There is only one element of this type in the message, which includes the date relating to the request sent. For the related
description see paragraph 3.3.2 in the chapter "Response messages in XML".
<LinkCreated>
The element <Status> can have the following values and meanings:
Note: when having issues with URLMS, please check URLMSHEADER primarily
OPTIONS N Min 0 AN The field OPTIONS permits to activate various additional options for
Max 26 the ongoing message.
MAC Y 32, 40 o AN Request signature field: it makes the data sent unchangeable by third
64 parties. For the calculation see appendix 4.2.24.
STARTDATE Y 10 AN Search start date, yyyy-MM-dd format
ENDDATE Y 10 AN Search end date, yyyy-MM-dd format
LINKSTATUS N 2 N Link status
ORDERID N 50 AN ID of the order associated with the link
TOKEN N 25 AN Token associated with the payment transaction stored during the
creation stage
<BPWXmlResponse>
This is the root element of the document, there is only one element of this type in the message, which is composed of the
following elements:
<Timestamp> date and time of response message
<Result> outcome of transaction requested (“00” = list performed)
Code Description
00 Success
02 ReqRefNum duplicated or incorrect
03 Incorrect message format, missing or incorrect field
04 Incorrect API authentication, incorrect MAC
06 Unforeseen error during processing of request
40 Empty xml or missing ‘date’ parameter
41 Xml not parsable
52 No link found with the preset search criteria
98 Application error
99 Transaction failed, see specific outcome enclosed in the
element <Data> of the response.
<Data>
There is only one element of this type in the message, containing all the data relating to the request of a list and the
response message and consisting of the following elements:
<ListLink>
There is only one element of this type in the message and it includes the data concerning the request of a list of links
represented by the following elements:
<Header>
There is only one element of this type in the message, which includes the date relating to the request sent. For the related
description see paragraph 3.3.2 in the chapter "Response messages in XML".
The response will contain the list of the elements <LinkCreated> corresponding to the specified search parameters. Each
<LinkCreated> element will contain the related signature. If the indicated search parameters do not correspond to any
request, there will be no <LinkCreated> element.
For the values and meanings assigned to the <Status> element, see the chapter on Request to create link.
The link revocation process brings the link indicated in the REVOKED status and marks the date on which the revocation
has been carried out.
It is possible to request the revocation of the link only if in a status other than PAID and REVOKED. If a request is made
to revoke an order in the PAID or already REVOKED status, the request will be denied with an error message.
The revocation process has no effect on the links for which the cardholder has started the payment process: if the link is
valid when the cardholder is redirected to the payment interface, it will be possible to complete the payment
<BPWXmlResponse>
This is the root element of the document, there is only one element of this type in the message, which is composed of the
following elements:
<Timestamp> date and time of response message
<Result> outcome of transaction requested
Code Description
00 Success
02 ReqRefNum duplicated or incorrect
03 Incorrect message format, missing or incorrect field
04 Incorrect API authentication, incorrect MAC
06 Unforeseen error during processing of request
40 Empty xml or missing ‘date’ parameter
41 Xml not parsable
50 Token not found
51 Status of link not valid (link cannot be revoked)
52 No link found with the preset search criteria
98 Application error
99 Transaction failed, see specific outcome enclosed in the
element <Data> of the response.
There is only one element of this type in the message, containing all the data relating to the request to revoke a link and
consisting of the following elements:
<RevokeLink>
There is only one element of this type in the message, containing all the data relating to the request to revoke a link and
consisting of the following elements:
<Header>
There is only one element of this type in the message, which includes the date relating to the request sent. For the related
description see paragraph 3.3.2 in the chapter "Response messages in XML".
4.1 References
Here below is a list of useful sources to which reference can be made for merchant system integration purposes.
SIA S.p.A. does not provide any type of warranty or support for the third party products set out
below.
To obtain the hash MD5 or hash SHA-1 constituting the MAC, the SIA server makes use of the object Java MessageDigest
of JDK Oracle. To calculate the HMAC-256, it makes use of the javax.crypto.Mac class with the HmacSHA256
algorithm, also provided by JDK.
We discourage the use of MD5 and SHA-1 algorithm as they are obsolete and are still supported only for backward
compatibility.
For a definition of the HMAC-256 standard and examples of implementation in various languages, see:
https://en.wikipedia.org/wiki/Hash-based_message_authentication_code
https://www.supermind.org/blog/1102/generating-hmac-md5-sha1-sha256-etc-in-java
https://www.jokecamp.com/blog/examples-of-creating-base64-hashes-using-hmac-sha256-in-different-languages
https://en.wikipedia.org/wiki/ISO_4217
The operator may choose as it sees fit from among three standard algorythms: SHA-1 (also called SHA), MD5 and
HMAC-256 (recommended). Given that the three algorythms produce a varying number of bits (160 the first, 128 the
second, 256 the third) the system is capable of automatically recognising the type of function used for generating the
MAC. The store site may vary the algorythm used at its will.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
For the REFUND messages the text to be signed must contain the following fields:
OPERATION
TIMESTAMP
SHOPID
OPERATORID
REQREFNUM
TRANSACTIONID
ORDERID
AMOUNT
CURRENCY
EXPONENT (if present)
OPDESCR (if present)
OPTIONS (if present)
MAC=Hash(OPERATION=REFUND&TIMESTAMP=<timestamp>&SHOPID=<shopid>&OPER
ATORID=<OperatorID>&REQREFNUM=<requestnumber>&TRANSACTIONID=<transactionI
D>&ORDERID=<orderId>&AMOUNT=<Amount>&CURRENCY=<Currency>&OPDESCR=<
OpDescr>&<secret string>)
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
OPERATION=REFUND&TIMESTAMP=2015-04-08T13:04:21.852&SHOPID=12345678901&
OPERATORID=KR839H&REQREFNUM=20150501496204690934584305834564&TRANSACTIONID=HK84HL2
G&ORDERID=A4845b2&AMOUNT=100&CURRENCY=978&Absd830923fk32..
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The operator may choose as it sees fit from among three standard algorythms: SHA-1 (also called SHA), MD5 and
HMAC-256 (recommended). Given that the three algorythms produce a varying number of bits (160 the first, 128 the
second, 256 the third) the system is capable of automatically recognising the type of function used for generating the
MAC. The store site may vary the algorythm used at its will.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
For the ACCOUNTING messages, the text to be signed must contain the following fields:
OPERATION
TIMESTAMP
SHOPID
OPERATORID
REQREFNUM
TRANSACTIONID
ORDERID
AMOUNT
CURRENCY
EXPONENT (if present)
OPDESCR (if present)
OPTIONS (if present)
MAC=Hash(OPERATION=ACCOUNTING&TIMESTAMP=<timestamp>&SHOPID=<shopid>&O
PERATORID=<OperatorID>&REQREFNUM=<requestnumber>&TRANSACTIONID=<transactio
nID>&ORDERID=<orderId>&AMOUNT=<Amount>&CURRENCY=<Currency>&OPDESCR=<O
pDescr>&<secret string> )
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
OPERATION=ACCOUNTING&TIMESTAMP=2015-04-08T13:04:21.852&SHOPID=123456789012345&
OPERATORID=KR839H&REQREFNUM=20150501496204690934584305834564&TRANSACTIONID=HK84HL2
G&ORDERID=A4845b2&AMOUNT=100&CURRENCY=978&Absd830923fk32..
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The operator may choose as it sees fit from among three standard algorythms: SHA-1 (also called SHA), MD5 and
HMAC-256 (recommended). Given that the three algorythms produce a varying number of bits (160 the first, 128 the
second, 256 the third) the system is capable of automatically recognising the type of function used for generating the
MAC. The store site may vary the algorythm used at its will.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
For the REVERSEACCOUNTING messages, the text to be signed must contain the following fields:
OPERATION
TIMESTAMP
SHOPID
OPERATORID
REQREFNUM
TRANSACTIONID
ORDERID
OPTIONS (if present)
MAC=Hash(OPERATION=REVERSEACCOUNTING&TIMESTAMP=<timestamp>&SHOPI
D=<shopid>&OPERATORID=<OperatorID>&REQREFNUM=<requestnumber>&TRANSAC
TIONID=<transactionID>&ORDERID=<orderId>&<secret string> )
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
OPERATION=REVERSEACCOUNTING&TIMESTAMP=2015-04-8T13:04:21.852
&SHOPID=123456789012345&OPERATORID=KR839H&REQREFNUM=20150501496204690934584305834564&
TRANSACTIONID=HK84HL2G&ORDERID=A4845b2&Absd830923fk32..
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The operator may choose as it sees fit from among three standard algorythms: SHA-1 (also called SHA), MD5 and
HMAC-256 (recommended). Given that the three algorythms produce a varying number of bits (160 the first, 128 the
second, 256 the third) the system is capable of automatically recognising the type of function used for generating the
MAC. The store site may vary the algorythm used at its will.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
For the LISTOPERATION messages, the text to be signed must contain the following fields:
OPERATION
TIMESTAMP
SHOPID
OPERATORID
REQREFNUM
STARTDATE
ENDDATE
OPDESCR (if present)
OPTIONS (if present)
MAC=Hash(OPERATION=LISTOPERATION&TIMESTAMP=<timestamp>&SHOPID=<sho
pid>&OPERATORID=<OperatorID>&REQREFNUM=<requestnumber>&STARTDATE=<st
artdate>&ENDDATE=<enddate>&<secret string> )
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
OPERATION=LISTOPERATION&TIMESTAMP=2015-04-08T13:04:21.852&SHOPID=123456789012345&
OPERATORID=KR839H&REQREFNUM=20150501496204690934584305834564&STARTDATE=2015-04-
04&ENDDATE=2015-04-04&Absd830923fk32..
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The operator may choose as it sees fit from among three standard algorythms: SHA-1 (also called SHA), MD5 and
HMAC-256 (recommended). Given that the three algorythms produce a varying number of bits (160 the first, 128 the
second, 256 the third) the system is capable of automatically recognising the type of function used for generating the
MAC. The store site may vary the algorythm used at its will.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
For the LISTAUTHORIZATION messages, the text to be signed must contain the following fields:
OPERATION
TIMESTAMP
SHOPID
OPERATORID
REQREFNUM
STARTDATE (if present)
ENDDATE (if present)
FILTER
TRANSACTIONID (if present)
STARTTIME (if present)
ENDTIME (if present)
OPTIONS (if present)
MAC=Hash(OPERATION=LISTAUTHORIZATION&TIMESTAMP=<timestamp>&SHOPID
=<shopid>&OPERATORID=<OperatorID>&REQREFNUM=<requestnumber>&STARTDAT
E=<startdate>&ENDDATE=<enddate>&FILTER=<filter>&TRANSACTIONID=<transactionI
d>&STARTTIME=<starttime>&ENDTIME=<endTime>&<secret string> )
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
If the search is not performed on the basis of the TRANSACTIONID, said field shall in any case be taken into account in
calculating the MAC as: TRANSACTIONID=. If the search is performed by date, but not by hour, the fields STARTTIME
and ENDTIME must not be taken into account in calculating the MAC.
OPERATION=LISTAUTHORIZATION&TIMESTAMP=2015-04-08T13:04:21.852&SHOPID=123456789012345&
OPERATORID=KR839H&REQREFNUM=20150501496204690934584305834564&STARTDATE=2015-04-
04&ENDDATE=2015-04-
04&FILTER=1&TRANSACTIONID=HK84HL2G&STARTTIME=10.00&ENDTIME=18.30&Absd830923fk32..
The operator may choose as it sees fit from among three standard algorythms: SHA-1 (also called SHA), MD5 and
HMAC-256 (recommended). Given that the three algorythms produce a varying number of bits (160 the first, 128 the
second, 256 the third) the system is capable of automatically recognising the type of function used for generating the
MAC. The store site may vary the algorythm used at its will.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
For the ORDERSTATUS messages, the text to be signed must contain the following fields:
OPERATION
TIMESTAMP
SHOPID
OPERATORID
REQREFNUM
ORDERID
OPTIONS (if present)
PRODUCTREF (if present)
MAC=Hash(OPERATION=ORDERSTATUS&TIMESTAMP=<timestamp>&SHOPID=<shopi
d>&OPERATORID=<OperatorID>&REQREFNUM=<requestnumber>&ORDERID=<orderI
d>&<secret string>)
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
OPERATION=ORDERSTATUS&TIMESTAMP=2015-04-08T13:04:21.852&SHOPID=123456789012345&
OPERATORID=KR839H&ORDERID=A4845b2&Absd830923fk32..
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string..
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
The hash function used by the system for generating the MAC is the same as that used by the merchant for generating the
MAC of the request message. Given that the algorythms SHA1, MD5 and HMAC256 produce a varying number of bits
(160 the first, 128 the second, 256 the third) the system is capable of automatically recognising the type of function used
for generating the MAC of the request and, in turn, use the same algorithm for the reply.
In essence, if the MAC of the request message is calculated using MD5, the MAC of the reply will also be calculated
using MD5. If the MAC of the request message is calculated using SHA-1, the MAC of the reply will also be calculated
using SHA-1. If the request message is in HMAC256, so will be the reply message.
For the BPWXmlResponse element, the signed text will contain the value of the following subelements:
Timestamp
Result
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
2015-07-04T12:02:55&00&Absd830923fk32h7de23r..
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The MAC is not case sensitive. The SIA server uses capital letters.
NOTE: The names of the XML elements are not used for calculating the MAC. Only the values are used.
NOTE: If the outcome of the request is an authentication error the MAC will not be calculated and it will have the value
of “NULL”.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
The hash function used by the system for generating the MAC is the same as that used by the merchant for generating the
MAC of the request message. Given that the algorythms SHA1, MD5 and HMAC256 produce a varying number of bits
(160 the first, 128 the second, 256 the third) the system is capable of automatically recognising the type of function used
for generating the MAC of the request and, in turn, use the same algorithm for the reply.
In essence, if the MAC of the request message is calculated using MD5, the MAC of the reply will also be calculated
using MD5. If the MAC of the request message is calculated using SHA-1, the MAC of the reply will also be calculated
using SHA-1. If the request message is in HMAC256, so will be the reply message.
For the XML <Operation> elements, the signed text will contain the values of the following subelements:
TransactionID
TimestampReq
TimestampElab
SrcType
Amount
Result
Status
OpDescr (if present)
MAC=Hash(<TransactionID>&<TimestampReq>&<TimestampElab>&<SrcType>&<Amount>
&<Result>&<Status>&<secret string> )
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
CC8424&2015-07-04T12:02:54&2015-07-07T12:03:02&CTO05&100&00&SGN03&Absd830923fk32..
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
NOTE: The names of the XML elements are not used for calculating the MAC. Only the values are used.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
The hash function used by the system for generating the MAC is the same as that used by the merchant for generating the
MAC of the request message. Given that the algorythms SHA1, MD5 and HMAC256 produce a varying number of bits
(160 the first, 128 the second, 256 the third) the system is capable of automatically recognising the type of function used
for generating the MAC of the request and, in turn, use the same algorithm for the reply.
In essence, if the MAC of the request message is calculated using MD5, the MAC of the reply will also be calculated
using MD5. If the MAC of the request message is calculated using SHA-1, the MAC of the reply will also be calculated
using SHA-1. If the request message is in HMAC256, so will be the reply message.
For the XML elements <Authorization>, the signed text will contain the values of the following subelements:
AuthorizationType
TransactionID
Network
OrderId
TransactionAmount
AuthorizedAmount
Currency
AccountedAmount
RefundedAmount (only if the parameter RELEASE=02 is specified in the request)
TransactionResult
Timestamp
AuthorizationNumber
AcquirerBIN
MerchantID
Status
ResponseCodeISO (if present)
PanTail (if present)
PanExpiryDate (if present)
PaymentTypePP (if present)
RRN (if present)
IbanCode (only for iban transactions)
CardType (if present)
CardholderInfo (if present)
MAC=Hash(<authorizationType>&<transactionID>&<Network>&<orderId>&<transactionAmo
unt>&<authorizedAmount>&<currency>&<accountedAmount>&<refundedAmount>&<transact
ionResult>&<timestamp>&<authorizationNumber>&<aquirerBIN>&<merchantID>&<status>&
<responsecodeiso>&<cardholderInfo>&<secret string> )
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
I&8032180310wieeuejjwerrrrr&01&order1&10000&10000&978&10000&0&00&2015-07-
06T13:04:34&123456&234569&05423956754389&02&Absd830923fk32..
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used by the SIA server.
The result of said conversion is a 32-character string, if the hash function used is MD5. If, on the other hand, SHA-1 is
used, the result will be a 40-character string. If HMAC-256 is used, the result will be a 64-character string.
NOTE: The names of the XML elements are not used for calculating the MAC. Only the values are used.
The operator may choose as it sees fit from among three standard algorythms: SHA-1 (also called SHA), MD5 and
HMAC-256 (recommended). Given that the three algorythms produce a varying number of bits (160 the first, 128 the
second, 256 the third) the system is capable of automatically recognising the type of function used for generating the
MAC. The store site may vary the algorythm used at its will.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
For the AUTHORIZATION messages, the text to be signed must contain the following fields:
OPERATION
TIMESTAMP
SHOPID
ORDERID
OPERATORID
REQREFNUM
PAN
CVV2 (if present)
EXPDATE
AMOUNT
CURRENCY
EXPONENT (if present)
ACCOUNTINGMODE
NETWORK
EMAILCH (if present)
USERID (if present)
ACQUIRER (if present)
IPADDRESS (if present)
OPDESCR (if present)
USRAUTHFLAG (if present)
OPTIONS (if present)
ANTIFRAUD (if present)
PRODUCTREF (if present)
NAME (if present)
SURNAME (if present)
TAXID (if present)
TRECURR (if present)
CRECURR (if present)
INSTALLMENTSNUMBER (if present)
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
OPERATION=AUTHORIZATION&TIMESTAMP=2015-04-08T13:04:21.852&SHOPID=123456789012345&
ORDERID=ord1&OPERATORID=KR839H&REQREFNUM=20150501496204690934584305834564&PAN=123456
7812345678&EXPDATE=0317&AMOUNT=100&CURRENCY=978&ACCOUNTINGMODE=I&NETWORK=01&
Absd830923fk32..
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The operator may choose as it sees fit from among three standard algorythms: SHA-1 (also called SHA), MD5 and
HMAC-256 (recommended). Given that the three algorythms produce a varying number of bits (160 the first, 128 the
second, 256 the third) the system is capable of automatically recognising the type of function used for generating the
MAC. The store site may vary the algorythm used at its will.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
For the AUTHORIZATION3DSSTEP1 messages, the text to be signed must contain the following fields:
OPERATION
TIMESTAMP
SHOPID
ORDERID
OPERATORID
REQREFNUM
PAN
CVV2 (if present)
EXPDATE
AMOUNT
CURRENCY
EXPONENT (if present)
ACCOUNTINGMODE
NETWORK
EMAILCH (if present)
USERID (if present)
ACQUIRER (if present)
IPADDRESS (if present)
OPDESCR (if present)
USRAUTHFLAG (if present)
OPTIONS (if present)
ANTIFRAUD (if present)
PRODUCTREF (if present)
NAME (if present)
SURNAME (if present)
TAXID (if present)
TRECURR (if present)
CRECURR (if present)
INPERSON (if present)
MERCHANTURL (if present)
SERVICE (if present)
XID (if present)
CAVV (if present)
ECI (if present)
MAC=Hash(OPERATION=AUTHORIZATION3DSSTEP1&TIMESTAMP=<timestamp>&SHOPID
=<shopid>&ORDERID=<OrderID>&OPERATORID=<OperatorID>&REQREFNUM=<requestnum
ber>&PAN=<pan>&CVV2=<cvv2>&EXPDATE=<expirydate>&AMOUNT=<Amount>&CURREN
CY=<Currency>&ACCOUNTINGMODE=<accountingmode>&NETWORK=<network>&EMAILC
H=<cardHolderEmail>USERID=<userid>&IPADDRESS=<ipaddress>&OPDESCR=<OpDescr>&U
SRAUTHFLAG=<UsrAuthFlag>&OPTIONS=<Options>&ANTIFRAUD=<AntiFraud>&PRODUCT
REF=<ProductRef>&NAME=<Name>&SURNAME=<Surname>&TAXID=<TaxID>&TRECURR=
<TRecurr>&CRECURR=<CRecurr>&INSTALLMENTNUMBER=<InstallmentsNumber>&INPERS
ON=<inperson>&MERCHANTURL=<url>&SERVICE=<service>&XID=<xid>&CAVV=<cavv>&
ECI=<>&PP_AUTHENTICATEMETHOD=<PP_AuthenticateMethod>&PP_CARDENROLLMETH
OD=<PP_CardEnrollMethod>&PARESSTATUS=<ParesStatus>&SCENROLLSTATUS=<ScenRoll
Status>&SIGNATUREVERIFICATION=<SignatureVerification>&<secret string>)
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
Any optional fields that have not been filled in must be completely removed from the string determining the MAC.
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The operator may choose as it sees fit from among three standard algorythms: SHA-1 (also called SHA), MD5 and
HMAC-256 (recommended). Given that the three algorythms produce a varying number of bits (160 the first, 128 the
second, 256 the third) the system is capable of automatically recognising the type of function used for generating the
MAC. The store site may vary the algorythm used at its will.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
For the AUTHORIZATION3DSSTEP2 messages, the text to be signed must contain the following fields:
OPERATION
TIMESTAMP
SHOPID
OPERATORID
REQREFNUM
ORIGINALREQREFNUM
PARES
ACQUIRER (if present)
MAC=Hash(OPERATION=AUTHORIZATION3DSSTEP2&TIMESTAMP=<timestamp>&SH
OPID=<shopid>&OPERATORID=<OperatorID>&REQREFNUM=<requestnumber>&
ORIGINALREQREFNUM=<originalreqrefnum>&PARES=<pares>&<secret string > )
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
Any optional fields that have not been filled in must be completely removed from the string determining the MAC.
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The operator may choose as it sees fit from among three standard algorythms: SHA-1 (also called SHA), MD5 and
HMAC-256 (recommended). Given that the three algorythms produce a varying number of bits (160 the first, 128 the
second, 256 the third) the system is capable of automatically recognising the type of function used for generating the
MAC. The store site may vary the algorythm used at its will.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
For the THREEDSAUTHORIZATION0 messages, the text to be signed must contain the following fields:
OPERATION
TIMESTAMP
SHOPID
ORDERID
OPERATORID
REQREFNUM
PAN
CVV2 (if present)
EXPDATE
AMOUNT
CURRENCY
EXPONENT (if present)
ACCOUNTINGMODE
NETWORK
EMAILCH (if present)
USERID (if present)
ACQUIRER (if present)
IPADDRESS (if present)
USRAUTHFLAG (if present)
OPDESCR (if present)
OPTIONS (if present)
ANTIFRAUD (if present)
PRODUCTREF (if present)
NAME (if present)
SURNAME (if present)
TAXID (if present)
THREEDSDATA
NAMECH
NOTIFURL (if present)
THREEDSMTDNOTIFURL (if present)
CHALLENGEWINSIZE (if present)
TRECURR (if present)
CRECURR (if present)
INSTALLMENTSNUMBER (if present)
MAC=Hash(OPERATION=THREEDSAUTHORIZATION0&TIMESTAMP=<timestamp>&SHOPI
D=<shopid>&ORDERID=<OrderID>&OPERATORID=<OperatorID>&
REQREFNUM=<requestnumber>&PAN=<pan>&CVV2=<cvv2>&EXPDATE=<expiry
date>&AMOUNT=<Amount>&CURRENCY=<Currency>&ACCOUNTINGMODE=<accounting
mode>&NETWORK=<network>&EMAILCH=<card holder email>USERID=<userid>&
IPADDRESS=<ipaddress>&OPDESCR=<OpDescr>&THREEDSDATA=<threedsdata>&NOTIFUR
L=<notifurl>&THREEDSMTDNOTIFURL=<threedsmtdnotifurl>&CHALLENGEWINSIZE=<chall
engewinsize>&TRECURR=<TRecurr>&CRECURR=<CRecurr>&INSTALLMENTSNUMBER=<in
stallmentsnumber>&<secret string>)
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
Any optional fields that have not been filled in must be completely removed from the string determining the MAC.
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The operator may choose as it sees fit from among three standard algorythms: SHA-1 (also called SHA), MD5 and
HMAC-256 (recommended). Given that the three algorythms produce a varying number of bits (160 the first, 128 the
second, 256 the third) the system is capable of automatically recognising the type of function used for generating the
MAC. The store site may vary the algorythm used at its will.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
For the THREEDSAUTHORIZATION1 messages, the text to be signed must contain the following fields:
OPERATION
TIMESTAMP
SHOPID
OPERATORID
REQREFNUM
THREEDSTRANSID
THREEDSMTDCOMPLIND
MAC=Hash(OPERATION=THREEDSAUTHORIZATION1&TIMESTAMP=<timestamp>&S
HOPID=<shopid>&OPERATORID=<OperatorID>&
REQREFNUM=<requestnumber>&THREEDSTRANSID=<threedstransid>&THREEDSMTD
COMPLIND=<threedsmtdcomplind>&<secret string>)
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
Any optional fields that have not been filled in must be completely removed from the string determining the MAC.
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The operator may choose as it sees fit from among three standard algorythms: SHA-1 (also called SHA), MD5 and
HMAC-256 (recommended). Given that the three algorythms produce a varying number of bits (160 the first, 128 the
second, 256 the third) the system is capable of automatically recognising the type of function used for generating the
MAC. The store site may vary the algorythm used at its will.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
For the THREEDSAUTHORIZATION2 messages, the text to be signed must contain the following fields:
OPERATION
TIMESTAMP
SHOPID
OPERATORID
REQREFNUM
THREEDSTRANSID
MAC=Hash(OPERATION=3DSAUTHORIZATION2&TIMESTAMP=<timestamp>&SHOPID
=<shopid>&OPERATORID=<OperatorID>&
REQREFNUM=<requestnumber>&THREEDSTRANSID=<threedstransid>&<secret string>)
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
Any optional fields that have not been filled in must be completely removed from the string determining the MAC.
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The operator may choose as it sees fit from among three standard algorythms: SHA-1 (also called SHA), MD5 and
HMAC-256 (recommended). Given that the three algorythms produce a varying number of bits (160 the first, 128 the
second, 256 the third) the system is capable of automatically recognising the type of function used for generating the
MAC. The store site may vary the algorythm used at its will.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
For the THREEDSVERSIONING messages, the text to be signed must contain the following fields:
OPERATION
TIMESTAMP
SHOPID
OPERATORID
REQREFNUM
NETWORK
PAN
MAC=Hash(OPERATION=THREEDSVERSIONING&TIMESTAMP=<timestamp>&SHOPI
D=<shopid>&OPERATORID=<OperatorID>&REQREFNUM=<requestnumber>&NETWOR
K=<network>&PAN=<pan>&<secret string>)
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
Any optional fields that have not been filled in must be completely removed from the string determining the MAC.
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
The hash function used by the system for generating the MAC is the same as that used by the merchant for generating the
MAC of the request message. Given that the algorythms SHA1, MD5 and HMAC256 produce a varying number of bits
(160 the first, 128 the second, 256 the third) the system is capable of automatically recognising the type of function used
for generating the MAC of the request and, in turn, use the same algorithm for the reply.
In essence, if the MAC of the request message is calculated using MD5, the MAC of the reply will also be calculated
using MD5. If the MAC of the request message is calculated using SHA-1, the MAC of the reply will also be calculated
using SHA-1. If the request message is in HMAC256, so will be the reply message.
For the XML elements <VBVRedirect>, the signed text will contain the values of the following subelements:
PaReq
URLAcs
MAC=Hash(<PaReq>&<URLAcs>&<secret string>)
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
Any optional fields that have not been filled in must be completely removed from the string determining the MAC.
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
NOTE: The names of the XML elements are not used for calculating the MAC. Only the values are used.
NOTE: If the outcome of the request is an authentication error, the MAC will not be calculated and its value will be
“NULL”.
The operator may choose as it sees fit from among three standard algorythms: SHA-1 (also called SHA), MD5 and
HMAC-256 (recommended). Given that the three algorythms produce a varying number of bits (160 the first, 128 the
second, 256 the third) the system is capable of automatically recognising the type of function used for generating the
MAC. The store site may vary the algorythm used at its will.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
For the PANALIASRECOVERY messages, the text to be signed must contain the following fields:
OPERATION
TIMESTAMP
SHOPID
OPERATORID
REQREFNUM
ORDERID
OPTIONS (if present)
MAC=Hash(OPERATION=PANALIASRECOVERY&TIMESTAMP=<timestamp>&SHOPID
=<shopid>&OPERATORID=<OperatorID>&REQREFNUM=<requestnumber>&
ORDERID=<orderid>&<secret string > )
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
Any optional fields that have not been filled in must be completely removed from the string determining the MAC.
OPERATION=PANALIASRECOVERY&TIMESTAMP=2015-04-08T13:04:21.852&SHOPID=123456789012345&
OPERATORID=KR839H&REQREFNUM=20150501496204690934584305834564&ORDERID=ord1&Absd830923f
k32..
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
The hash function used by the system for generating the MAC is the same as that used by the merchant for generating the
MAC of the request message. Given that the algorythms SHA1, MD5 and HMAC256 produce a varying number of bits
(160 the first, 128 the second, 256 the third) the system is capable of automatically recognising the type of function used
for generating the MAC of the request and, in turn, use the same algorithm for the reply.
In essence, if the MAC of the request message is calculated using MD5, the MAC of the reply will also be calculated
using MD5. If the MAC of the request message is calculated using SHA-1, the MAC of the reply will also be calculated
using SHA-1. If the request message is in HMAC256, so will be the reply message.
For the XML <PanAliasData> elements, the signed text will contain the values of the following subelements:
<PanAliasRev>, <PanAlias>, <PanAliasExpDate>, <PanAliasTail>, <CRecurr>
NOTES
- PanAliasExpDate and PanAliasTail are present only if the store subscribes to the service SV45 – Payments with Single
Alias Pan for Card no automatic revocation and return or to the service SV88 – Tokenizer pan alias.
- CRecurr element is present in authorization panalias section only if the store substribes to the service SVA8 – Recurring
payments and the request has CREATEPANALIAS = ‘S’ or TRecurr field is present.
- For recurring payments without the request of pan alias, only the CRecurr element will be present in pan alias data.
With PanAliasRev
MAC = Hash (<PanAliasRev>&<PanAlias>&<PanAliasExpDate>&<PanAliasTail>&<CRecurr>&<secret
string>)
Without PanAliasRev
MAC = Hash (&<PanAlias>&<PanAliasExpDate>&<PanAliasTail>&<secret string>)
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
Note that the names of the XML elements are not used for calculating the MAC. Only the values are used.
&0000197412081271677&2911&0003&--8-rhXuVB56wckRc-EnCTRBa-n-UbJPD-74-mRPk-wPbqvXE4
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The MAC is not case sensitive. The SIA server uses capital letters.
The operator may choose as it sees fit from among three standard algorythms: SHA-1 (also called SHA), MD5 and
HMAC-256 (recommended). Given that the three algorythms produce a varying number of bits (160 the first, 128 the
second, 256 the third) the system is capable of automatically recognising the type of function used for generating the
MAC. The store site may vary the algorythm used at its will.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
For the PANALIASREVOCATION messages, the text to be signed must contain the following fields:
OPERATION
TIMESTAMP
SHOPID
OPERATORID
REQREFNUM
PANALIAS
OPTIONS (if present)
MAC=Hash(“OPERATION=PANALIASREVOCATION&TIMESTAMP=<timestamp>&SHOPID=<
shopid>&OPERATORID=<operatorid>&REQREFNUM=<reqrefnum>&PANALIAS=<panalias>&<
secret string>” )
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
Any optional fields that have not been filled in must be completely removed from the string determining the MAC.
OPERATION=PANALIASREVOCATION&TIMESTAMP=2009-02-
11T15:32:58.484&SHOPID=negozio1&OPERATORID=operatore1&REQREFNUM=45434356788987661234343546
547654&PANALIAS=0001110001112223322&12345678901234567890123456789012345678901234567890
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
The hash function used by the system for generating the MAC is the same as that used by the merchant for generating the
MAC of the request message. Given that the algorythms SHA1, MD5 and HMAC256 produce a varying number of bits
(160 the first, 128 the second, 256 the third) the system is capable of automatically recognising the type of function used
for generating the MAC of the request and, in turn, use the same algorithm for the reply.
In essence, if the MAC of the request message is calculated using MD5, the MAC of the reply will also be calculated
using MD5. If the MAC of the request message is calculated using SHA-1, the MAC of the reply will also be calculated
using SHA-1. If the request message is in HMAC256, so will be the reply message.
For the AliasCreated element the signed text will contain the following values:
<PanAliasRevHash>,<PanAliasHash> ,<Timestamp> e <OperatorId>
In particular cases where the alias is created for the first time, the MAC will be:
MAC = Hash(“&< PanAliasHash>&<Timestamp>&<OperatorId>&<secret string>”)
For the AliasRevoked element the signed text will contain the following values:
<PanAliasHash> , <Timestamp>, <OperatorId> , <TimestampRev> e <OperatorRev>
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
NOTE: Note that the names of the XML elements are not used for calculating the MAC. Only the values are used.
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The MAC is not case sensitive. The SIA server uses capital letters.
The MAC to be sent as attachment to the LISTPANALIASINFO messages can be obtained through the following
procedure.
The operator may choose as it sees fit from among three standard algorythms: SHA-1 (also called SHA), MD5 and
HMAC-256 (recommended). Given that the three algorythms produce a varying number of bits (160 the first, 128 the
second, 256 the third) the system is capable of automatically recognising the type of function used for generating the
MAC. The store site may vary the algorythm used at its will.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed
For the LISTALIASPANINFO messages, the text to be signed must contain the following fields:
OPERATION
TIMESTAMP
SHOPID
OPERATORID
REQREFNUM
STARTDATE
ENDDATE
STARTTIME (if present)
ENDTIME(if present)
OPTIONS (if present)
MAC=Hash(“OPERATION=LISTPANALIASINFO&TIMESTAMP=<timestamp>&SHOPID=<shop
id>&OPERATORID=<operatorid>&REQREFNUM=<reqrefnum>&STARTDATE=<startdate>&EN
DDATE=<enddate>&<secret string>” )
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
Any optional fields that have not been filled in must be completely removed from the string determining the MAC.
OPERATION=LISTPANALIASINFO&TIMESTAMP=2009-02-
11T15:32:58.484&SHOPID=negozio1&OPERATORID=operatore1&REQREFNUM=45434356788987661234343546
547654&STARTDATE=2009-04-10&ENDDATE=2009-04-
10&12345678901234567890123456789012345678901234567890
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The operator may choose as it sees fit from among three standard algorythms: SHA-1 (also called SHA), MD5 and
HMAC-256 (recommended). Given that the three algorythms produce a varying number of bits (160 the first, 128 the
second, 256 the third) the system is capable of automatically recognising the type of function used for generating the
MAC. The store site may vary the algorythm used at its will.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
For the CREATELINK messages, the text to be signed must contain the following fields:
OPERATION
TIMESTAMP
REQREFNUM
SHOPID
OPERATORID
SENDMAIL
LINKEXPIRATIONDATE (if present)
LINKAMOUNT
LINKCURRENCY
LINKEXPONENT (if present)
LINKORDERID
LINKURLDONE (if present)
LINKURLMS
LINKACCOUNTINGMODE
LINKAUTHORMODE
LINKLANG
LINKSHOPEMAIL(if present)
LINKOPTIONS (if present)
LINKCOMMIS (if present)
LINKEMAIL (if present)
LINKNAME
LINKSURNAME
LINKORDDESCR (if present)
LINKOPDESCR (if present)
LINKPHONENUMBER (if present)
LINKREMAININGDURATION (if present)
LINKUSERID (if present)
LINKPRODUCTREF (if present)
LINKTRECURR (if present)
LINKCRECURR (if present)
THREEDSDATA (if present)
OPTIONS (if present)
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
Any optional fields that have not been filled in must be completely removed from the string determining the MAC.
OPERATION=CREATELINK&TIMESTAMP=2017-04-
07T13:26:14.639&REQREFNUM=20170407132523000000000000000000&SHOPID=129280509999998&OPERAT
ORID=AF06TSTAPI1&SENDMAIL=Y&LINKEXPIRATIONDATE=2017-09-
08T09:02:12.191&LINKAMOUNT=9900&LINKCURRENCY=978&LINKORDERID=PayBy01OrderIH&LINKURL
DONE=http://linkdone&LINKURLMS=http://osv-
sviluppo.office.corp.sia.it/atpos/pagamenti/main?PAGE&LINKACCOUNTINGMODE=I&LINKAUTHORMODE=I&
LINKLANG=ITA&[email protected]&LINKOPTIONS=V&LINKCOMMIS=99&LINKEMAIL=user@
mail.com&LINKNAME=Andrea&LINKSURNAME=Aiello&LINKORDDESCR=ordedescr&LINKOPDESCR=OpDe
sc&LINKPHONENUMBER=123456789123&LINKREMAININGDURATION=9&LINKUSERID=User
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
Note:Please note tha OPTIONS (unlike in Redirection) are currently not supported in API.
The operator may choose as it sees fit from among three standard algorythms: SHA-1 (also called SHA), MD5 and
HMAC-256 (recommended). Given that the three algorythms produce a varying number of bits (160 the first, 128 the
second, 256 the third) the system is capable of automatically recognising the type of function used for generating the
MAC. The store site may vary the algorythm used at its will.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed
For the LISTLINK messages, the text to be signed must contain the following fields:
OPERATION
TIMESTAMP
REQREFNUM
SHOPID
OPERATORID
STARTDATE
ENDDATE
LINKSTATUS (if present)
ORDERID (if present)
TOKEN (if present)
OPTIONS (if present)
MAC=Hash(OPERATION=LISTLINK&TIMESTAMP=<timestamp>&REQREFNUM=<reqrefnum>
&SHOPID=<shopid>&OPERATORID=<operatorid>&STARTDATE=<startdate>&ENDDATE=<endd
ate>&TOKEN=<token> &<secretstring>)
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
Any optional fields that have not been filled in must be completely removed from the string determining the MAC.
OPERATION=LISTLINK&TIMESTAMP=2017-04-
07T13:26:14.639&REQREFNUM=20170407132523000000000000000000&SHOPID=129280509999998&OPERAT
ORID=AF06TSTAPI1&STARTDATE=2017-03-01&ENDDATE=2017-04-01&TOKEN=1qwpt99pslotul1budkx3f712
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The operator may choose as it sees fit from among three standard algorythms: SHA-1 (also called SHA), MD5 and
HMAC-256 (recommended). Given that the three algorythms produce a varying number of bits (160 the first, 128 the
second, 256 the third) the system is capable of automatically recognising the type of function used for generating the
MAC. The store site may vary the algorythm used at its will.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed
For the REVOKELINK messages, the text to be signed must contain the following fields:
OPERATION
TIMESTAMP
REQREFNUM
SHOPID
OPERATORID
TOKEN
OPTIONS (if present)
MAC=Hash(OPERATION=REVOKELINK&TIMESTAMP=<timestamp>&REQREFNUM=<re
qrefnum>&SHOPID=<shopid>&OPERATORID=<operatorid>&TOKEN=<token>&<secretstrin
g>)
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
Any optional fields that have not been filled in must be completely removed from the string determining the MAC.
OPERATION=REVOKELINK&TIMESTAMP=2017-04-
07T13:26:14.639&REQREFNUM=20170407132523000000000000000000&SHOPID=129280509999998&OPERAT
ORID=AF06TSTAPI1&TOKEN=1qwpt99pslotul1budkx3f712
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
The hash function used by the system for generating the MAC is the same as that used by the merchant for generating the
MAC of the request message. Given that the algorythms SHA1, MD5 and HMAC256 produce a varying number of bits
(160 the first, 128 the second, 256 the third) the system is capable of automatically recognising the type of function used
for generating the MAC of the request and, in turn, use the same algorithm for the reply.
In essence, if the MAC of the request message is calculated using MD5, the MAC of the reply will also be calculated
using MD5. If the MAC of the request message is calculated using SHA-1, the MAC of the reply will also be calculated
using SHA-1. If the request message is in HMAC256, so will be the reply message.
For the XML <LinkCreated> elements, the text to be signed must contain the following fields:
CompleteLink
Token
CreationDate
Status
LastUseDate (if present)
ExpirationDate
RevokeDate (if present)
OrderId
MAC=Hash(“<CompleteLink>&<Token>&<CreationDate>&<Status>&<LastUseDate>&<Expira
tionDate>&<RevokeDate>&<OrderId>&<secretstring>”)
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
Any optional fields that have not been filled in must be completely removed from the string determining the MAC.
NOTE: Note that the names of the XML elements are not used for calculating the MAC. Only the values are used.
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The MAC is not case sensitive. The SIA server uses capital letters.
The operator may choose as it sees fit from among three standard algorythms: SHA-1 (also called SHA), MD5 and
HMAC-256 (recommended). Given that the three algorythms produce a varying number of bits (160 the first, 128 the
second, 256 the third) the system is capable of automatically recognising the type of function used for generating the
MAC. The store site may vary the algorythm used at its will.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed
For the PANALIASGENERATION messages, the text to be signed must contain the following fields:
OPERATION
TIMESTAMP
SHOPID
OPERATORID
REQREFNUM
PANID
EXPDATE (if present)
NETWORK
OPTIONS (if present)
MAC=Hash(OPERATION=PANALIASGENERATION&TIMESTAMP=<timestamp>&SHOPID=
<shopid>&OPERATORID=<operatorid>&REQREFNUM=<reqrefnum>&PANID=<panid>&EXP
DATE=<expdate>&NETWORK=<network>&<secretscring>)
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
Any optional fields that have not been filled in must be completely removed from the string determining the MAC.
OPERATION=PANALIASGENERATION&TIMESTAMP=2017-04-
07T15:51:45.552&SHOPID=129280505050505&OPERATORID=000286AD&REQREFNUM=20170407155145000000
000000000000&PANID=B-7FB31251F28061234&EXPDATE=9912&NETWORK=97
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
The hash function used by the system for generating the MAC is the same as that used by the merchant for generating the
MAC of the request message. Given that the algorythms SHA1, MD5 and HMAC256 produce a varying number of bits
(160 the first, 128 the second, 256 the third) the system is capable of automatically recognising the type of function used
for generating the MAC of the request and, in turn, use the same algorithm for the reply.
In essence, if the MAC of the request message is calculated using MD5, the MAC of the reply will also be calculated
using MD5. If the MAC of the request message is calculated using SHA-1, the MAC of the reply will also be calculated
using SHA-1. If the request message is in HMAC256, so will be the reply message.
For the XML elements <PaResData>, the signed text will contain the values of the following subelements:
Xid
Cavv
Eci
Status
MAC=Hash(<Xid>&<Cavv>&<Eci>&<Status>&secret string>)
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
Any optional fields that have not been filled in must be completely removed from the string determining the MAC.
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
NOTE: The names of the XML elements are not used for calculating the MAC. Only the values are used.
NOTE: If the outcome of the request is an authentication error, the MAC will not be calculated and its value will be
“NULL”.
The operator may choose as it sees fit from among three standard algorythms: SHA-1 (also called SHA), MD5 and
HMAC-256 (recommended). Given that the three algorythms produce a varying number of bits (160 the first, 128 the
second, 256 the third) the system is capable of automatically recognising the type of function used for generating the
MAC. The store site may vary the algorythm used at its will.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
For the IBANAUTHORIZATION messages, the text to be signed must contain the following fields:
OPERATION
TIMESTAMP
SHOPID
ORDERID
OPERATORID
REQREFNUM
IBAN
AMOUNT
CURRENCY
EXPONENT (if present)
ACCOUNTINGMODE
NETWORK
EMAILCH (if present)
USERID (if present)
IPADDRESS (if present)
OPDESCR (if present)
USRAUTHFLAG (if present)
OPTIONS (if present)
ANTIFRAUD (if present)
PRODUCTREF (if present)
NAME (if present)
SURNAME (if present)
TAXID (if present)
MAC=Hash(OPERATION=IBANAUTHORIZATION&TIMESTAMP=<timestamp>&SHOPI
D=<shopid>&ORDERID=<OrderID>&OPERATORID=<OperatorID>&REQREFNUM=<req
uestnumber>&PAN=<pan>&CVV2=<cvv2>&EXPDATE=<expirydate>&AMOUNT=<Amount
>&CURRENCY=<Currency>&ACCOUNTINGMODE=<accountingmode>&NETWORK=<net
work>&EMAILCH=<cardholderemail>USERID=<userid>&IPADDRESS=<ipaddress>&OPD
ESCR=<OpDescr>&<secret string > )
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
OPERATION=IBANAUTHORIZATION&TIMESTAMP=2019-04-08T13:04:21.852&SHOPID=123456789012345&
ORDERID=ord1&OPERATORID=KR839H&REQREFNUM=20190501496204690934584305834564&PAN=123456
7812345678&EXPDATE=0317&AMOUNT=100&CURRENCY=978&ACCOUNTINGMODE=I&NETWORK=01&
Absd830923fk32..
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used. The result of said conversion is a 32-character string, if the hash function used is
MD5. If, on the other hand, SHA-1 is used, the result will be a 40-character string. If HMAC-256 is used, the result will
be a 64-character string.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
The hash function used by the system for generating the MAC is the same as that used by the merchant for generating the
MAC of the request message. Given that the algorythms SHA1, MD5 and HMAC256 produce a varying number of bits
(160 the first, 128 the second, 256 the third) the system is capable of automatically recognising the type of function used
for generating the MAC of the request and, in turn, use the same algorithm for the reply.
In essence, if the MAC of the request message is calculated using MD5, the MAC of the reply will also be calculated
using MD5. If the MAC of the request message is calculated using SHA-1, the MAC of the reply will also be calculated
using SHA-1. If the request message is in HMAC256, so will be the reply message.
For the XML elements <ThreeDSMethod>, the signed text will contain the values of the following subelements:
ThreeDSTransId
ThreeDSMethodData
ThreeDSMethodUrl
MAC=Hash(<ThreeDSTransId>&<ThreeDSMethodData>&<ThreeDSMethodUrl>&<secret
string> )
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
I&8032180310wieeuejjwerrrrr&01&order1&10000&10000&978&10000&0&00&2015-07-
06T13:04:34&123456&234569&05423956754389&02&Absd830923fk32..
The MAC, which is the result of a hash, must be coded appropriately for it to be trasmitted in HTTP. To that end, an
exadecimal conversion must be used by the SIA server.
The result of said conversion is a 32-character string, if the hash function used is MD5. If, on the other hand, SHA-1 is
used, the result will be a 40-character string. If HMAC-256 is used, the result will be a 64-character string.
NOTE: The names of the XML elements are not used for calculating the MAC. Only the values are used.
The merchant and SIA share a secret string of 50 or 100 characters. To produce the MAC of the data, a hash of the
connection between text to be signed and secret string is performed (SHA-1 and MD5). Otherwise, an HMAC-256 is
calculated using the secret string as key for the text to be signed.
The hash function used by the system for generating the MAC is the same as that used by the merchant for generating the
MAC of the request message. Given that the algorythms SHA1, MD5 and HMAC256 produce a varying number of bits
(160 the first, 128 the second, 256 the third) the system is capable of automatically recognising the type of function used
for generating the MAC of the request and, in turn, use the same algorithm for the reply.
In essence, if the MAC of the request message is calculated using MD5, the MAC of the reply will also be calculated
using MD5. If the MAC of the request message is calculated using SHA-1, the MAC of the reply will also be calculated
using SHA-1. If the request message is in HMAC256, so will be the reply message.
For the XML elements <ThreeDSChallenge>, the signed text will contain the values of the following subelements:
ThreeDSTransId
CReq
ACSUrl
MAC=Hash(<ThreeDSTransId>&<CReq>&<ACSUrl>&<secret string> )
NOTE: in case of signature with HMAC-256 the secret key must not be queued to the string, but rather, it must be used
as a calculation key.
The wording in < > indicates the field values. The order in which the fields appear is clearly fundamental. The MAC is
not case sensitive. Capital and lowercase letters can be used without distinction.
I&8032180310wieeuejjwerrrrr&01&order1&10000&10000&978&10000&0&00&2015-07-
06T13:04:34&123456&234569&05423956754389&02&Absd830923fk32..
NOTE: The names of the XML elements are not used for calculating the MAC. Only the values are used.
4.3.1 AUTHORMODE
Immediate authorization I
The immediate authorization procedure provides that during the online payment phase the authorization request is sent
immediately to the international circuits. Once the transaction has been successfully completed, the merchant is certain
that what is owed by the customer has been “booked” from his ceiling.
Unless very special exceptions, this is the value to be preferred for this field.
Deferred authorization D
The deferred authorization procedure provides that during the online payment phase the transactions are accepted but not
forwarded to the circuits (the card’s validity is in any case verified at the issuer’s).
The merchant who follows this payment acceptance procedure will eventually be able to have the pending authorization
requests processed. The vpos may receive deferred authorization requests for an amount lower than the original; the
merchant may forward as many deferred authorizations up to the original total amount.
Unless very special exceptions, this is not the value to be preferred for this field.
4.3.2 ACCOUNTINGMODE
Immediate booking I
The immediate booking procedure permits the merchant to make any authorized transactions automatically bookable.
Without merchant’s intervention, the same evening of the day on which the transaction took place, the front end processor
automatically performs a clearing of the transactions for the full authorized amount.
This procedure can be adopted, for example, in the case where the goods/services sold can be used immediately by the
acquirer (software, music, online services, etc.).
For ASI card verification transactions the accounting mode must be set to D and this option is not available.
Deferred booking D
The deferred booking procedure provides that authorized transactions are explicitly made bookable by the merchant. The
merchant has a preset number of days from the time authorization is granted to book a transaction.
For ASI card verification transactions the accounting mode must be set to D and this option is the only one available.
The following table lists all the fields that can be used in the JSON object for the 3DSDATA. The JSON object is a simple
unordered set of name/value pairs. All strings are UTF-8 encoded.
Note that the fields descriptions and the related references reported in the table are directly extracted from the EMVco
standard defining 3DS 2.
Short
Field Name Description Values API
Description
browserAcceptHeader Browser Exact content of the Length: Variable, maximum 2048
Accept HTTP accept headers characters
Headers as sent to the 3DS JSON Data Type: String
Requestor from the Value accepted:
Cardholder’s browser. If the total length of the accept header
R
sent by the browser exceeds 2048
characters, the 3DS Server truncates the
excess portion.
Refer to Section A.5.2 for additional
detail.
browserIP Browser IP IP address of the Length: Variable, maximum 45
Address browser as returned characters
by the HTTP headers JSON Data Type: String
to the 3DS Requestor. Value accepted:
• IPv4 address is represented in the
dotted decimal format of 4 sets of
decimal numbers separated by dots. The
decimal number in each and every set is
in the range 0 to 255. Example IPv4
address: 1.12.123.255 R
• IPv6 address is represented as eight
groups of four hexadecimal digits, each
group representing 16 bits (two octets.
The groups are separated by colons (:).
Example IPv6
address:2011:0db8:85a3:0101:0101:8a2e
:0370:7334
Refer to Section A.5.2 for additional
detail.
browserJavaEnabled Browser Boolean that JSON Data Type: Boolean
Java represents the ability Values accepted:
Enabled of the cardholder • true
browser to execute • false
Java. R
Value is returned
from the
navigator.javaEnabled
property.
Code example
The following Java code is provided just as a mean to clarify the encryption process to be applied to produce the
3DSDATA field.
import java.security.InvalidAlgorithmParameterException;
import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import javax.xml.bind.DatatypeConverter;
// Initialization vector
byte[] iv = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
// Encrypt
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivParameterSpec);
byte[] encrypted = cipher.doFinal(toEncrypt);
// Convert to base64
return DatatypeConverter.printBase64Binary(encrypted);
}
}