GestPay Technical Specifications iFrame Payment Page

Transcript

GestPay Technical Specifications iFrame Payment Page
GestPay
Technical Specifications
iFrame Payment Page
Summary
About this Document..............................................................................................................4
About this version...................................................................................................................5
1. Introduction........................................................................................................................ 6
2. System Architecture........................................................................................................... 7
2.1 Architecture scheme ................................................................................................... 7
3. Process phases description...........................................................................................9
3.1 Transaction data encryption.................................................................................... 9
3.2 GestPay iFrame inclusion on the merchant checkout page ................................10
3.3 Hidden payment page call.....................................................................................12
3.3.1 Send the credit card data............................................................................... 12
3.3.2 Transaction results......................................................................................... 13
3.3.2.1 3D transactions (Verif ied by Visa, Mastercard SecurCode)...................13
3.3.2.1.1 Cardholder authentication............................................................... 14
3.3.2.1.2 Transaction end.............................................................................. 14
3.3.3 Javascript js_GestPay.js .............................................................................. 15
3.3.3.1 GestPay.CreatePaymentPage................................................................15
Arguments...................................................................................................... 15
Syntax:............................................................................................................ 15
Example:......................................................................................................... 15
3.3.3.2 Function: GestPay.SendPayment...........................................................16
Credit card authorization................................................................................ 16
Arguments...................................................................................................... 16
Syntax:............................................................................................................ 16
Example:......................................................................................................... 16
2nd call after 3D authentication...................................................................... 16
Arguments...................................................................................................... 16
Syntax:............................................................................................................ 16
Example:......................................................................................................... 17
3.3.3.3 Object: Result ........................................................................................ 18
Properties:...................................................................................................... 18
Examples:....................................................................................................... 18
3.3.3.3.1 Error Codes..........................................................................................19
3.3.4 Response to merchant................................................................................... 20
3.4 Default payment page call ....................................................................................21
3.4.1 Communication of transaction result..............................................................21
3.3.1 Response to merchant...............................................................................21
3.3.2 Response to Buyer.................................................................................... 21
3.5 Transaction result decryption................................................................................ 22
4. Server to Server Authentication....................................................................................... 23
5. Transaction Data structure...............................................................................................24
5.1 Transaction Data to Send to GestPay....................................................................... 24
5.2 Transaction data received by GestPay......................................................................26
6. Merchant’s Profile............................................................................................................ 28
6.1 Authentication configuration...................................................................................... 28
6.2 Configuration of response url and e-mail.................................................................. 29
6.3 Configuration of Fields & Parameters........................................................................ 30
7. Webservice.......................................................................................................................31
7.1 Instructions for the use of the encryption module with the WEBSERVICE interface 31
7.2 Generation of Proxy Class to use webservice functions from various languages....32
7.3 List of calls available with WSCryptDecrypt webservice........................................... 33
8. Software Requirements................................................................................................... 34
8.1 Buyer browser requirements..................................................................................... 34
8.2 Merchant server requirements...................................................................................34
9. Transaction Examples......................................................................................................35
9.1 Transaction # 1.......................................................................................................... 35
Phase I.................................................................................................................... 36
Phase II................................................................................................................... 36
Phase III.................................................................................................................. 36
Phase IV.................................................................................................................. 37
9.2 Transaction #2........................................................................................................... 38
Phase I.................................................................................................................... 38
Phase II................................................................................................................... 39
Phase III.................................................................................................................. 39
Phase IV.................................................................................................................. 39
10. Implementations Examples............................................................................................41
10.1 .Net C#.....................................................................................................................41
10.2 PHP..........................................................................................................................41
11 Errors Table..................................................................................................................... 42
12 Table of currency codes.................................................................................................. 50
13 Table of Language Codes............................................................................................... 51
14 Table of Verif ied by Visa Codes...................................................................................... 52
15 Payment Orders in Test Environment............................................................................. 53
16 Links................................................................................................................................ 53
About this Document
Project name
Document Title
Creation Date
Language
Company
GestPay iFrame Payment page
GestPay – Technical Specif ications – iFrame Payment
page
02.APR.2012
English
Easy Nolo S.p.A.
About this version
Version
1.0.0
Description
Initial Version
Date
Author
02.APR.2012 EasyNolo
5
1. Introduction
This document contains the instructions for GestPay iFrame payment page, which allows
merchants to process online credit card transactions with an hidden payment page within an
iFrame in the shop checkout page.
A GestPay Partecipating Merchant is recognisable by an identif ication code called "Shop_Login"
and is entitled to use the Back Office environment through one or more operators registered on
the Sella.it website (at least one operator, with Administrator status is a requirement for
activation of the service).
The adoption of the GestPay iFrame payment page will leave to the merchant the full control of
the form design, the credit card data will be sent by the merchant checkout form to a hidden
payment page (which will be on the GestPay servers) via javascript.
This solution will free the merchant by the need to comply with PCI Security Standards
(https://www.pcisecuritystandards.org/).
6
2. System Architecture
Within the system architecture, 3 components can be identif ied:
•
Customer's client
•
Merchant server
•
GestPay server
Communication between the various components use the http or https (1024-bit) protocols.
The payment process is split into communication steps in which the components interact,
exchanging the information needed to complete the transaction.
2.1 Architecture scheme
1. The customer selects the items to buy and decides to proceed with payment.
2. The merchant’s server contacts GestPay server via the Internet to encrypt the payment
transaction data.
3. GestPay performs the necessary controls to authenticate the merchant’s server and validate
the transaction data, returning, in the event of an affirmative response, an encrypted
parameter string that represents the payment transaction to be processed.
4. The encrypted parameter string is communicated to the customer’s browser. The shop
checkout will create the iFrame and load the hidden payment page passing the encrypted
parameter string and the code assigned to the merchant (Shop Login).
Data security checks are performed on the transaction: if the checks are passed, the
payment page can be loaded.
5. The customer's browser send to the hidden payment page within the iFrame the credit card
data and the transaction is processed.
The following steps describe the process by which the transaction result is communicated
both to the merchant and to the buyer.
6. GestPay communicates to the merchant’s server an encrypted parameter string which
returns the result of the transaction.
7a. The merchant’s server contacts the GestPay server via Internet to decrypt the encrypted
data string which returns the result of the transaction.
8a. GestPay decrypts the string and returns the parameters which return the result of the
transaction in unencrypted form.
7
7b. GestPay communicates the encrypted parameter string to the buyer’s browser within a
javascript object.
8b. The shop checkout page read the encrypted parameter string in javascript result object.
9. The merchant’s server contacts the GestPay server via Internet to decrypt the encrypted
data string that returns the transaction result.
10. GestPay decrypts the string and returns, in unencrypted form, the parameters that return
the transaction result, allowing the merchant to provide the buyer with the references
required to complete the purchase process.
The following scheme analyses the payment process, underlining the chronological order in
which the communication steps take place. Notice that in some cases (steps 7 and 8)
simultaneous communications are established between the components under consideration
when they implement the procedures that must manage the information exchanged between the
steps.
8
3. Process phases description
A payment transaction is made up of 4 basic phases in which there are one or more
communication steps. In each phase, the information necessary to process the transaction is
exchanged between the various components.
3.1 Transaction data encryption
The information required for the payment is previously communicated to GestPay to be
encrypted.
In this phase, the merchant’s server requests the encryption service from GestPay, obtaining the
encrypted string that represents the transaction to process.
Encryption can be handled thought the use of the webservice.
It does not require any installation on the server, but simply a call to the webservice using the
https protocol. The response is in the XML format.
If the merchant authentication checks and transaction data validation are passed, GestPay
returns the encrypted data string.
Otherwise, a specif ic error code will be returned.
The encrypted string will be use as a token to authenticate the customer in the hidden iFrame
page loaded from GestPay servers.
9
3.2 GestPay iFrame inclusion on the merchant checkout page
After obtaining the encrypted data string (as described in the preceding section), the buyer’s
browser will be redirected to the merchant checkout page which will include a remote javascript
file from the GestPay's servers
<script src="https://ecomm.sella.it/pagam/JavaScript/js_GestPay.js" type="text/javascript"></script>
The script will automatically perform a browser compatibility check to ensure that the HTML 5
postmessage function, which will be used to exchange data, is supported.
The result of the check will be the boolean value of the variable BrowserEnabled.
If (BrowserEnabled){
//The Browser is supported!
//Proceed to create the Payment page
}else{
//The browser is not supported
//Place here error handle code
}
To load the hidden iFrame page the checkout page must call the Javascript function
GestPay.CreatePaymentPage passing the Merchant code, the Encrypted string and a
callback object needed to read the security checks results.
<script>
GestPay.CreatePaymentPage(MerchantCode,EncryptedString,LocalObj.PaymentPageLoad);
</script>
The function will create an hidden iFrame into the body element and will load the payment page
passing the merchant code and the generated encrypted string from the previous phase.
<iframe src="https://ecomm.sella.it/Pagam/HiddeniFrame.aspx?
a=MerchantCode&b=EncryptedString" heigth="0" width="0"
style="position:absolute;top:0;left:0;width:0;height:0;visibility:hidden" ></iframe>
When the payment page is called, it will perform the security checks needed and will fire
the result in the Result object.
<script>
LocalObj. PaymentPageLoad = function(Result){
if(Result.ErrorCode != 10){
//An Error has occurred
//Result.ErrorCode will return the Error occurred
//Result.ErrorDescription will return the Error Description
//.... place here error handle code...
}else{
//the iFrame is correctly created and the payment page is loaded the user can
//proceed to insert the credi card data
}
}
</script>
10
If the browser compatibility check fails the iFrame will not be created
and the payment page will not be loaded!
Note.
The HTML 5 cross-document messaging is supported by:
Firefox 3+, Safari 4+, Chrome 8+, IE 8+, Opera 10+
11
3.3 Hidden payment page call
3.3.1 Send the credit card data.
To send the credit card data to the hidden iFrame the checkout page will assign a function to the
OnSubimt event of the credit card form, this function will retrieve the credit card data and will call
the GestPay.SendPayment method providing an array with the credit card number (CC), the
expiration month (EXPMM) and the expiration year (EXPYY), the CVV (CVV2) if enabled, and a
CallBack object (see chapter 3.3.2.2 Javascript Result object).
The credit card field must contain values between 13 and 19 digits.
The expiry month value and the expiry year value must contain 2 digits.
The Cvv2 field must contain values between 3 and 4 digits.
e.g.
<form name="myCCForm" action="" method="post" OnSubmit="return CheckCC();">
<fieldset>
<legend>Insert Credit Card Data</legend>
<label for "CC">Credit Card Number</label>
<input type="text" name="CC" value="" autocomplete="off" id="CC" />
<label for "ExpMM">Expiry Month</label>
<input type="text" name="ExpMM" id="ExpMM" value=""/>
<label for "ExpYY">Expiry Year</label>
<input type="text" name="ExpYY" id="ExpYY" value=""/>
<label for "CVV2">CVV2 / 4DBC</label>
<input type="text" name="CVV2" id="CVV2" value=""/>
</fieldset>
<fieldset>
<input type="submit" name="submit" value="Send Payment" id="submit" />
</fieldset>
</form>
<script>
function CheckCC(){
document.getElementById('submit').disabled=true;
GestPay.SendPayment ({
CC : document.getElementById('CC').value,
EXPMM : document.getElementById('ExpMM').value,
EXPYY : document.getElementById('ExpYY').value,
CVV2 : document.getElementById('CVV2').value
},LocalObj.CallBack);
return false;
}
</script>
To free the Shop from the need to comply with PCI Security standard the
OnSubmit event of the Credit card form must avoid to postback the
Credit Card data to the checkout page!
12
3.3.2 Transaction results
Gestpay will send the transaction result as javascript object and as notif ication which will be
forwarded with a server- to- server call to the page properly set on merchant’s server (the
notif ication page can be set in the [URL Server to Server] Response feature of the Configuration
> Environment section of the Merchant Back Office environment).
3.3.2.1 3D transactions (Verified by Visa, Mastercard SecurCode)
Transactions made by 3D credit cards require the cardholder authentication. The buyer will be
redirected to the card issuer web site and will have to fill a password which was released to him
by the issuer itself. In case the authentication process ends up positively the transaction may
end-up and generate a positive or negative result according to the reply from the credit card
companies.
If the card is recognized as 3D the outcome of the request is a specif ic error code (8006) which
is readable by means of the ErrorCode property of the Result object. The error description
(Verif ied By Visa) will be readable by means of the ErrorDescription property of the Result
object.
In this phase additional info are showed, that are necessary during the payment process and are
specif ic to 3D transactions. In particular it is necessary to acquire the transaction id readable by
means of the TransKey property of the Result object and a ciphered string to be used during the
subsequent phase readable by means of the VbVRisp property of the Result object.
e.g.
<script>
LocalObj.CallBack = function(Result){
if (Result.ErrorCode != 0){
if (Result.ErrorCode == 8006){
//3D Transaction - Card holder authorization required
//Get the TransKey
//NOTE you have to store this value in your server for
further use
var TransKey = Result.TransKey;
//Get the VBVRisp
var VBVRisp = Result.VBVRisp;
//place here the code to redirect the card holder to the
authentication website
}else{
//Call failed an error has occurred
//.... place here error handle code...
}
}else{
//Call went good proceed to decrypt the Result.EncryptedResponse
property
}
}
</script>
13
3.3.2.1.1 Cardholder authentication
If the credit card given result enrolled it is a prerequisite to allow the buyer authenticating
himself in front of his credit card Issuer. The buyer’s browser has to be redirected to a dedicated
GestPay's page which will act as an interface for the authentication and will address the buyer to
the Issuer’s site giving him all necessary info for the authentication.
The page to recall has the following URL:
https://ecomm.sella.it/pagam/pagam3d.aspxs
for test codes
https://testecomm.sella.it/pagam/pagam3d.aspx
The page is to be called through the following 3 parameters:
a
shop_login
b
a ciphered string acquired in the previous phase through the Result.VbVRisp property of
the Result object
c
URL on the merchant web site to which the buyer must be redirected after the
authentication procedure
At the end of the authentication process the buyer will be redirected on the merchant site to the
URL specif ied as redirection parameter c.
The merchant page for the buyer’s welcome back after authentication will be recalled by means
of a PARES parameter (a ciphered string containing the authentication result) which must be
acquired by the merchant and forwarded to GestPay during the following phase.
3.3.2.1.2 Transaction end
Once the card holder land to the merchant website after the authentication we have all
necessary info to end the transaction. A new authorization request must occur using the
GestPay.SendPayment method.
Before using such method, however it is necessary to include the GestPay given javascript and
call the Javascript function GestPay.CreatePaymentPage passing the Merchant code and the
Encrypted string created before the first authorization request.
Once the hidden iFrame is created the page can proceed to send the new authorization request
through the GestPay.SendPayment method, passing an array containing the TransKey
value(TransKey), the Pares value (PARes) and the CallBack object to handle the
asynchronous response and retrieve the encrypted string with the transaction results.
e.g.
<script>
GestPay.SendPayment({'TransKey':'//PLACE HERE THE TRANSKEY
VALUE','PARes':'//PLACE HERE THE PARES VALUE'},LocalObj.CallBack);
LocalObj.CallBack = function(Result){
if (Result.ErrorCode != 0){
//Call failed an error has occurred
//.... place here error handle code...
}else{
//Call went good
//place here the code to retreive the encrypted string
var responseString = Result.EncryptedResponse;
}
}
</script>
14
3.3.3 Javascript js_GestPay.js
3.3.3.1 GestPay.CreatePaymentPage
Arguments
1. Merchant code
(string)
2. EncryptedString
(string)
3. CallBackObject
(object)
Syntax:
GestPay.CreatePaymentPage (MerchantCode,EncryptedString,CallBackObj);
Example:
GestPay.SendPayment ('9000001',
'DcffrrnDNdjfnemfnermgnermNfdm,gnem/*ng',
function(Result){
if(Result.ErroCode == 10){
//iFrame created and payment page correctly loaded
}else{
//An error has occurred, check ErrorCode and ErrorDescription
//properties of the Result object
}
});
15
3.3.3.2 Function: GestPay.SendPayment
Credit card authorization
Arguments
4. CCData (Array)
1. CC
Credit card number (number)
length: min(13) - max(19)
2. EXPMM
Expiration Month (number)
length: 2
3. EXPYY
Expiration Year (number)
length: 2
4. CVV2
Cvv / 4DBC (number) [optional] length: min(3) - max(4)
5. CallBackObj (object)
Syntax:
GestPay.SendPayment ({ CC : '', EXPMM :'', EXPYY :''[,CVV2:'']},CallBackObj);
Example:
GestPay.SendPayment ({
CC : '44444444444444444',
EXPMM : '11',
EXPYY : '14'
},function(Result){
if(Result.ErroCode == 0){
//Transaction correctly processed
//Decrypt the Result.EncryptedString property to read the
//transaction result
}else{
//An error has occurred, check ErrorCode and ErrorDescription
//properties of the Result object
}
});
2nd call after 3D authentication
Arguments
6. CCData (Array)
1. PARes
(string)
2. TransKey
(string)
7. CallBackObj (object)
Syntax:
GestPay.SendPayment ({ PARes: '', TransKey :''},CallBackObj);
16
Example:
GestPay.SendPayment ({
PARes : 'xMNjdsre23214hjksBBDsjkrhewGSD/*dwhjdkhawNDAHDGUY',
TransKey : 'eFtstSStefgd23432'
},function(Result){
if(Result.ErroCode == 0){
//Transaction correctly processed
//Decrypt the Result.EncryptedString property to read the
//transaction result
}else{
//An error has occurred, check ErrorCode and ErrorDescription
//properties of the Result object
}
});
17
3.3.3.3 Object: Result
Properties:
Result.ErrorCode
Result.ErrorDescription
Result.EncryptedResponse
Result.TransKey
Result.VBVRisp
return the error code
return the error description
return the encrypted response string
return the TransKey in case of 3D enrolled credit card
return the ciphered string needed to the cardholder
authentication in case of 3D enrolled credit card
The GestPay.SendPayment() function will send an asynchronous call to the hidden iFrame
windows, the CallBack object will retrieve the Result object once the transaction result is thrown
from the hidden payment page.
Examples:
e.g. Merchant not 3D enabled or not enrolled credit card
<script>
LocalObj.CallBack = function(Result){
if (Result.ErrorCode != 0){
//Call failed an error has occurred
//.... place here error handle code...
}else{
//Transaction correctly processed proceed to decrypt the
//Result.EncryptedResponse property
}
}
</script>
e.g. Merchant 3D enabled and 3D enrolled credit card
<script>
LocalObj.CallBack = function(Result){
if (Result.ErrorCode != 0){
if (Result.ErrorCode == 8006){
//3D Transaction - Card holder authorization required
//Get the TransKey
//NOTE you have to store this value in your server for
//further use
var TransKey = Result.TransKey;
//Get the VBVRisp
var VBVRisp = Result.VBVRisp;
//place here the code to redirect the card holder to the
//authentication website
}else{
//Call failed an error has occurred
//.... place here error handle code...
}
}else{
//Transaction correctly processed proceed to decrypt the
//Result.EncryptedResponse property
}
}
</script>
18
3.3.3.3.1 Error Codes
ErrorCode
ErrorDescription
Description
0
Transaction correctly processed
The transaction is correctly processed, an
encrypted string with the transaction
result is provided either in the
Result.EncryptedString property and in
URL server-to-server in any was
provided.
10
Payment page correctly loaded
1119
Credit card number with wrong
length
1120
Credit card with wrong check-digit
1124
Invalid expiry month
1125
Invalid expiry year
1126
Expired expiry date
1130
Call rejected: missing parameter A
1131
Call rejected: Shop not recognised
1132
Call rejected: shop without active
status
1134
Call rejected: empty parameter B
1149
Missing or wrong CVV2
1154
TransKey missing
8006
Verif ied by Visa
The credit card provided is 3D enrolled
(Verif ied by Visa / Mastercard
Securecode).The cardholder must
authenticate to proceed the transaction
process.
8008
Feature disabled
iFrame feature is not active
9991
Browser not supported
9992
Error creating iFrame
9999
System Error
Shop login missing
Empty Encrypted String
Technical error during the transaction
process
To end-up the transaction when error 8006 occur the card holder must be
authenticated by the credit card issuer.
See section 3.3.2.1 3D transactions (Verified by Visa, Mastercard SecurCode)
19
3.3.4 Response to merchant
Notif ication is forwarded with a server-to-server call to the page specif ically configured on the
merchant’s server (the notif ication page URL is one of the items of information that make up the
merchant’s profile, configurable through the GestPay Back Office environment). Call syntax is
the following:
http://<url server to server>?a=<ShopLogin>&b=<encrypted string>
The call to the page will be made passing two parameters:
a the code which identif ies merchant (Shop Login)
b the encrypted data string which contains the result of the transaction
The page residing on the merchant’s server must have the html tags <HTML></HTML> in the
source.
If there are communication errors, GestPay will make several forwarding attempts for two days
after the transaction.
The merchant will also receive a transaction result notif ication e-mail at the address configured
in his/her profile.
In addition, the processed transaction can be viewed by accessing the GestPay Back Office
environment in the Active Report section.
20
3.4 Default payment page call
GestPay will let the shop to redirect the card holder to the default payment page as alternative
to the iFrame solution in case the browser did not support the iFrame solution.
The page will resides on the GestPay servers and let the card holder to insert the credit card
data without the merchant can see or store them.
After obtaining the encrypted data string (as described in 3.2 paragraph), the buyer’s browser is
directed to the payment page on the GestPay server at the following address:
https://ecomm.sella.it/pagam/pagam.aspx?a=<ShopLogin>&b=<encrypted string>
for test codes:
https://testecomm.sella.it/pagam/pagam.aspx?a=<ShopLogin>&b=<encrypted string>
The call to the page will be made passing two parameters:
a The code identifying the merchant (Shop Login)
b The encrypted data string identifying the transaction
The payment page will acquire the parameters and verify the identity checks (parameter a must
refer to a recognized merchant) and transaction data security (parameter b must correspond to
the encrypted data string communicated by the merchant during the previous phase).
If the checks are passed, the payment page will be displayed to the buyer, who must enter the
data required to complete the payment process.
If the checks are not passed, the payment page is not displayed and the process passes to the
following phase in order to communicate the negative transaction result.
3.4.1 Communication of transaction result
GestPay communicates the transaction result both to the merchant and the buyer.
3.3.1 Response to merchant
Notif ication is forwarded with a server-to-server call to the page specif ically configured on the
merchant’s server (the notif ication page URL is one of the items of information that make up the
merchant’s profile, configurable through the GestPay Back Office environment). Call syntax is
the following:
http://<url server to server>?a=<ShopLogin>&b=<encrypted string>
The call to the page will be made passing two parameters:
a the code which identif ies merchant (Shop Login)
b the encrypted data string which contains the result of the transaction
The page residing on the merchant’s server must have the html tags <HTML></HTML> in the
source.
If there are communication errors, GestPay will make several forwarding attempts for two days
after the transaction.
The merchant will also receive a transaction result notif ication e-mail at the address configured
in his/her profile.
In addition, the processed transaction can be viewed by accessing the GestPay Back Office
environment in the Active Report section.
3.3.2 Response to Buyer
GestPay immediately communicates the result of the transaction by displaying a “virtual
receipt” showing essential transaction data.
21
GestPay directs the buyer’s browser to the merchant’s server to conclude the purchasing
process. The merchant must prepare two urls (and configure them in the merchant’s profile)
which will be called in the event of a negative or positive response and will allow the merchant to
manage communication with the buyer while maintaining the editorial style that characterises
the virtual shop. The call syntax is the following:
http://<url merchant>?a=<ShopLogin>&b=<encrypted string>
If there is an anomaly in the server-to-server communication described above, GestPay displays
a message to the buyer warning that there may be problems directing him/her to the merchant’s
server to conclude the purchasing process. In this situation, the buyer receives a notif ication
from GestPay about the transaction result and is invited, if there are anomalies, to contact the
merchant by other means (e.g. e-mail) to conclude the purchasing process.
The buyer will also receive a transaction result notif ication e-mail at the address provided on the
payment page, if indicated.
3.5 Transaction result decryption
GestPay notif ies transaction result through an encrypted string (parameter b of the call to the url
preset by merchant or EncryptedResponse property of the javascript object Result). The string
allows, once it’s decoded, updating the state of the transaction registered in the merchant’s
informative system.
Web pages preset by the merchant for receiving the transaction result (in the case of both
server-to-server communication and through the Result Javascript Object) must call the
GestPay server to request the decryption service and obtain the result of the processed
transaction in unencrypted form.
The request to decrypt the string received can be made through the use of the webservice.
It does not require any installation on the server, but simply a call to the webservice using the
https protocol. The response is in the XML format.
22
4. Server to Server Authentication
Server authentication of the merchant requesting encryption or decryption services is made by
verifying:
•
Shop Login validity: ShopLogin parameter must correspond to a code recorded in
GestPay customers’ details.
•
IP address server: the calling server IP address must correspond to one of the IP
addresses configured in the merchant’s profile.
•
Shop Login status: the merchant’s status must be active (the merchant’s status is
managed by the GestPay administrator and not directly by the merchant)
If the authentication checks are not passed, a specif ic error will be returned, making it possible
to identify the anomaly found in the authentication process.
23
5. Transaction Data structure
A transaction is characterized by a series of information that must be communicated to GestPay
to complete the payment process and by information returned to the system as the transaction
result.
By suitably configuring its profile within the Back Office environment, the merchant can define
what information to send to or receive from GestPay, and by what means.
5.1 Transaction Data to Send to GestPay
Some of the information to communicate to GestPay is required in order to complete the
payment process, while other information can be omitted without compromising the processing
of the transaction.Through the GestPay Back Office environment, merchants can define what
information is required and what information is optional.
Some information that is essential to the payment process is configured as compulsory by
GestPay. This attribute cannot be modif ied.
The following table gives the information that must be communicated to GestPay in order to
make a transaction:
Name
Format
Type R/O
Description
ShopLogin
VarChar (30)
P
R
ShopLogin
Currency
Num (3)
P
R
Code identifying currency in which
transaction amount is denominated
(see Currency Codes table)
Amount
Num (9)
P
R
Transaction amount. Do not insert
thousands separator. Decimals (max.
2 numbers)
are optional and
separator is the point (see examples)
ShopTransactionID
VarChar (50)
P
R
Identif ier
attributed
merchant’s transaction
CardNumber
VarChar (20)
I/P
R
Credit card number
ExpMonth
Char (2)
I/P
R
Credit card expiry month (01, 02…12)
ExpYear
Char (2)
I/P
R
Credit card expiry year (01, 02…99)
BuyerName
BuyerEmail
VarChar (50)
VarChar (50)
I/P
I/P
O
O
Buyer’s name and surname
Buyer’s e-mail address
Language
Num (2)
P
O
Code identifying language used in
communication with buyer
CustomInfo (1)
1
VarChar (1000)
P
O
to
String containing specif ic information
as configured in the merchant’s profile
Each field can be up to a maximum of 300 characters in length
The Name column contains the attribute identif ier with which a specif ic item of information is
communicated to the WSCryptDecrypt webservice, which handles server-to-server
communication for the encryption services.
The Format column indicates whether the information value is numeric or alphanumeric.
If it is alphanumeric, the maximum allowable number of characters is given in brackets.
The Type column specif ies whether the information must be communicated to the component
(passed as Parameter) or if it can be entered by the buyer (passed as Input) in the payment
24
page.
The R/O column specif ies whether the information is Required (if omitted the transaction cannot
be completed) or Optional.
However, the minimum quantity of information configured, which allows phase I to be processed,
is made up of:
•
Currency
•
Amount
•
Shop TransactionID
This information, in fact, is defined as required and must be communicated to GestPay using the
WSCryptDecrypt webservice.
During phase I, GestPay makes validation checks on the information that constitutes the
payment transaction, verifying consistency with the merchant’s profile setup. If anomalies are
detected, the transaction is abandoned, returning a specif ic error. This approach makes
possible to identify possible anomalies connected with the transaction immediately, preventing
the shop checkout page to load the hidden payment page with an encrypted data string that
corresponds to an invalid transaction.
The CustomInfo attribute contains specif ic information that the merchant wishes to communicate
to or receive from GestPay. What information is included in the CustomInfo attribute is defined in
the Back Office environment in the “Fields & Parameters” section.
The information included will follow this form:
datum1=value1*P1*datum2=value2*P1* … *P1*datumn=valuen
The separator between logically different information is the reserved sequence of characters
*P1*.
Other characters that must not be used within the parameters encoded by GestPay and in
customized information are:
&
(space)
§
(
)
*
<
>
,
;
:
*P1*
/
[
]
?
=
--
/*
%
//
25
5.2 Transaction data received by GestPay
GestPay communicates the payment transaction result to the merchant through an encrypted
data string that contains a series of information returned.
Using the WSCryptDecrypt webservice, merchants will obtain the information reporting the
transaction result in unencrypted form and will be able to update their own information system,
allowing buyers to complete the purchasing process.
The following table contains the information returned by GestPay as transaction result.
Name
Format
Type
R/O
Description
ShopLogin
VarChar (30)
P
R
ShopLogin
Currency
Num (3)
P
R
Code identifying currency in which
transaction amount is denominated (see
Currency Codes table)
Amount
Num (9)
P
R
Transaction amount. Do not insert
thousands separator. Decimals (max. 2
numbers) are optional and separator is
the point (see examples)
ShopTransactionID
VarChar (50)
P
R
Identif ier attributed to merchant’s
BuyerName
VarChar (50)
I/P
O
transaction
Buyer’s name and surname
BuyerEmail
VarChar (50)
I/P
O
Buyer’s e-mail address
TransactionResult
AuthorizationCode
BankTransactionID
Char (2)
VarChar (6)
Num (9)
P
P
P
R
R
R
Transaction result
Transaction authorisation code
Identifier attributed to the transaction
by GestPay
Nationality of institute issuing card
Country
VarChar (30)
P
O
Flag for Verif ied by Visa transactions
VbV
ErrorCode
ErrorDescription
AlertCode
3DLevel
AlertDescription
CustomInfo(1)
VarChar (50)
Num (9)
VarChar (255)
Num (9)
P
P
P
P
O
R
R
O
(see table of VbV Codes)
Error code
Error description
Alert code
Level of authentication for VBV Visa /
Mastercard Securecode transactions.
VarChar(255)
P
O
The string may have the value FULL or
HALF
VarChar (255)
P
VarChar (1000) P
O
O
Alert description in chosen language
String that
has
the
specific
information as configured in the
merchant’s profile
1
Each field can be up to a maximum of 300 characters in length.
26
The minimum information required to report the transaction result (defined as required) is made
up of:
•
Currency
•
Amount
•
ShopTransactionID
•
TransactionResult
•
AuthorizationCode
•
ErrorCode
•
ErrorDescription
•
BankTransactionID
Other information is defined as optional and will be returned according to the merchant’s profile
settings made in the GestPay Back Office environment.
A transaction result can be interpreted by verifying the TransactionResult field value. The
possible values are:
TransactionResult
OK
KO
Description
Positive transaction result
Negative transaction result
27
6. Merchant’s Profile
Each merchant can configure his/her profile by accessing the GestPay Back Office environment
at:
https://ecomm.sella.it/gestpay/backoffice/logingestpay.asp
for test codes:
https://testecomm.sella.it/gestpay/backoffice/logingestpay.asp
Some settings regard the procedure and the information that must be sent to or will be returned
by GestPay.
6.1 Authentication configuration
GestPay identif ies the merchant requesting the encryption service through the WSCryptDecrypt
webservice by comparing the calling server IP address to the IP addresses configured in the
profile associated with the Shop Login used for the call. If the calling server is not recognized,
the transaction process ends and a specif ic error is returned.
In the Configuration – IP Addresses section of the Back Office environment, the merchant can
enter up to a maximum of 10 IP addresses (if calls to GestPay originate from a server farm).
Configuration – IP Addresses
28
6.2 Configuration of response url and e-mail
GestPay communicates the transaction result with a server-to-server call to the page specif ically
prepared by the merchant and by directing the buyer’s browser to the pages configured by the
merchant (different pages for positive or negative results).
In the Configuration – Responses section in the Back Office environment, it is possible to
specify the URLs used by the system to communicate the transaction result.
In this section it is also possible to specify the addresses that will be used for
notifications via e-mail.
Configuration – Responses
Note.
“URL for positive response “ and “URL for negative response” will not be called using the iFrame
payment page.
29
6.3 Configuration of Fields & Parameters
Merchants can define the transaction structure (specifying what information beside the required
information will have to be sent to GestPay) by configuring in the Back Office environment what
information is to be sent in phase I and what information must be returned when the transaction
result is communicated.
This system allows the merchant to customize the transaction structure with proprietary
information that will be stored in the GestPay archives and will allow each transaction to be
identif ied using customized search keys. Moreover, customized information can be returned with
the transaction result communication, thus allowing the merchant’s information system to
manage this information appropriately.
Merchant’s profile configuration - Fields & Parameters
30
7. Webservice
7.1 Instructions for the use of the encryption module with the
WEBSERVICE interface
This document contains the necessary instructions for using the WSCryptDecrypt webservice.
This component is a library that must be called from the web pages configured by the merchant
to handle transaction data encryption and decryption of the result communicated by GestPay.
The WSCryptDecrypt web service is available on the production and test servers and does not
require any installation on the merchant’s server.
The merchant must implement – in the page(s) of the virtual store configured to handle
payments – a call to the webservice which handles requests to use the GestPay encryption
service.
To request the encryption service it is necessary to call the Encrypt method.
An example of a positive XML response returned by the web service is given below:
<?xml version="1.0" encoding="utf-8" ?>
<GestPayCryptDecrypt>
<TransactionType>ENCRYPT</TransactionType>
<TransactionResult>OK</TransactionResult>
<CryptDecryptString>CF66F38B4EC881….</CryptDecryptstring>
<ErrorCode>0</ErrorCode>
<ErrorDescription />
</GestPayCryptDecrypt>
If the encryption operation is concluded correctly (TransactionResult value = OK), the encrypted
data string returned by GestPay will be available by reading the value of the CryptDecryptString
attribute. If this is not the case, the values of the ErrorCode and ErrorDescription attributes will
make it possible to identify the reasons that prevented the encryption operation.
To request the decryption service it is necessary to call the Decrypt method, passing the
Shoplogin and EncryptedString attributes with the values communicated by GestPay in Phase
III.
The information containing the transaction result will be available by reading the information in
the XML response file corresponding to the result of the transaction.
The webservice must be called from the application configured by the merchant to handle the
sending of transaction data and reading the result communicated by GestPay in XML format.
The address of the service is the following URL:
https://ecomms2s.sella.it/gestpay/gestpayws/WSCryptDecrypt.asmx
for test codes
https://testecomm.sella.it/gestpay/gestpayws/WSCryptDecrypt.asmx
31
7.2 Generation of Proxy Class to use webservice functions from
various languages
The proxy class in the chosen language can be created automatically through the wsdl.exe
program (in this case provided by Microsoft) simply by specifying the contract file relating to the
webservice, in this case:
The addresses of descriptions of the service are found at the following URLs:
For production codes:
https://ecomms2s.sella.it/gestpay/gestpayws/WSCryptDecrypt.asmx?WSDL
For test codes:
https://testecomm.sella.it/gestpay/gestpayws/WSCryptDecrypt.asmx?WSDL
For example:
wsdl /language:VB /out: wss2sProxyClass.vb
https://testecomm.sella.it/gestpay/gestpayws/WSCryptDecrypt.asmx?WSDL
The .vb file will be generated, with handling of the proxy class relating to the webservice which
will simply be imported into the project and used.
With visual Studio .net it is possible to add the webservice references in order to have the
classes of the referenced webservice automatically available in the project (see “Add Web
Reference”).
For other languages, verify normal operations for interfacing with webservices.
32
7.3 List of calls available with WSCryptDecrypt webservice.
A complete list of methods for the WSCryptDecrypt object is provided below.
WEBService methods
Method name
Encrypt
Decrypt
Description
Encryption
Decryption
The various method calls are handled as function calls to the web service
without passing an XML string.
The values of the various calls must be passed as parameters.
Input parameters, Encrypt method
Method name
Description
ShopLogin
Used to set value of ShopLogin attribute
UICCode
Assigns currency code
Amount
Assigns transaction amount
ShopTransactionID (val)
Assigns code attributed by merchant to transaction
CardNumber (val)
Assigns card number
ExpMonth (val)
Assigns card expiry month
ExpYear (val)
Assigns card expiry year
BuyerName (val)
Assigns buyer’s name
BuyerEmail
Assigns buyer’s email
Language (val)
Assigns language for emails to buyer
CVV (val)
Assigns security code printed on card
CustomInfo (val)
Assigns string containing any customised parameters
Input parameters, Decrypt method
Method name
Description
ShopLogin
Used to set value of ShopLogin attribute
CryptedString
String to decrypt received from GestPay
The XML file is described and can be valuated through the relevant GestPayCryptDecrypt.xsd
file which is now described in detail
XML values returned
Method name
TransactionType
TransactionResult (E,D)
CryptDecryptString (E)
ShopTransactionID (D)
BankTransactionID (D)
AuthorizationCode (D)
Currency (D)
Amount (D)
Country (D)
CustomInfo (D)
BuyerType (D)
ErrorCode (E,D)
ErrorDescription (E,D)
AlertCode (D)
AlertDescription (D)
Description
The type of request executed can have the following values:
ENCRYPT (E)
DECRYPT (D)
Returns result of transaction with values OK and KO
Returns encrypted string
Returns code attributed by merchant to transaction
Returns code attributed by bank to transaction
Returns authorisation code
Returns currency code
Returns transactio amount
Returns nationality of institute issuing card
Returns any aditional parameters
Returns buyer’s name and email address, separated as follows:
BuyerEmail Returns buyer's email address
BuyerName Returns buyer's name
Returns a code referring to result of transaction
Returns description associated with value of ErrorCode
Returns code for violation of risk management criteria
Returns description associated with value of AlertCode
33
8. Software Requirements
GestPay software requirements concern the buyer’s browser and the server hosting the virtual
store.
8.1 Buyer browser requirements
The https://ecomm.sella.it/ domain is associated with a 1024-bit Verisign digital certif icate.
Browsers must be compatible with this level of encryption.
The iFrame page exchange data with the merchant checkout page using the HTML 5 javascript
cross-document messaging.
Cross-document messaging is supported by:
FF3+, IE8+, Chrome, Safari4+, Opera10+
8.2 Merchant server requirements
Check with the server administrator that the server can reach the following addresses:
If http (port 80) communication is used:
http://ecomms2s.sella.it/testhttp/test.asp
For test codes:
http://testecomm.sella.it/testhttp/test.asp
If https (port 443) communication is used:
https://ecomms2s.sella.it/testhttps/test.asp
For test codes:
https://testecomm.sella.it/testhttps/test.asp
34
9. Transaction Examples
This chapter describes a number of signif icant examples of interfacing with Gestpay.
The ShopLogin used in the examples is 9000001.
The merchant’s profile is the following:
Merchant’s Profile
IP Address
Server-to-server Communication Url
Url for positive responses
Url for negative responses
E-mail for sending OK result
E-mail for sending KO result
E-mail for sending information
171.85.234.97
http://www.myshop.com/s2s.asp
http://www.myshop.com/respOK.asp
http://www.myshop.com/respKO.asp
[email protected]
[email protected]
[email protected]
9.1 Transaction # 1
The merchant decides to communicate to GestPay only the essential information to allow the
buyer to make the payment. The payment page must be displayed to the buyer who enters the
sensitive data requie to complete the payment in protected (SSL 1024-bit) mode.
The transaction to process has the following characteristics:
Merchant’s Transaction
Shop Transaction ID
Transaction Amount
Currency Transaction
34az85ord19
1828.45
euro
Let us suppose that the transaction is concluded positively (payment will be made), returning the
following result:
Result
Authorisation code
Bank transaction ID
54e813
216
In the following pages, each individual phase that makes up the payment process will be
described, highlighting the information exchanged between GestPay and the merchant’s
server.
35
Phase I
The merchant’s server communicates the information that characterizes the transaction to
GestPay, setting the value of the GestPayCrypt attributes:
WSCryptDecrypt
ShopLogin
Currency
Amount
ShopTransactionID
Language
9000001
242
1828.45
34az85ord19
2
GestPay authenticates the calling server and validates the information characterising the
transaction. If the checks are passed, it returns an encrypted string to GestPay:
Encrypted Data String
ShopLogin
EncryptString
9000001
2C53F1B5...................
Phase II
The checkout page will load the js_GestPay.js file and will check the boolean variable
BrowserEnabled.
If the BrowserEnabled is true the page will call the GestPay.CreatePage function passing three
parameters that correspond to the shop login, the encrypted data string received in the previous
phase by GestPay and the function that will check the Result object.
GestPay authenticates the Shop login (parameter a) and performs security checks on the
encrypted data string (parameter b). If the checks are passed, the Result.ErrorCode property will
return 10, the iFrame is created and the hidden payment page is loaded. Otherwise, the function
will return a proper ErrorCode.
Phase III
In the OnSubmit event of the credit card form the checkout page will retrieve the value inserted
by the cardholder and send them to the hidden iFrame through the GestPay.SendPayment
function.
After processing the transaction, GestPay communicates the transaction result (encrypted data
string) to the merchant with a server to server comunication.
Server-to-server communication
http://www.myshop.com/s2s.asp?a=9000001&b=4D341A8B..............
After server-to-server communication has sent, GestPay will return the result through the Result
object.
The object will provide the encrypted string in the Result.Encrypted string property.
The transaction result is also communicated to the merchant via e-mail.
Send E-mail
[email protected]
36
Phase IV
GestPay communicates the transaction result to the merchant, sending an encrypted data string.
Using the WSCryptDecrypt webservice, the merchant must request the string decryption service
to interpret the transaction result correctly and update the information in his/her own information
system, thus allowing the buyer to complete the purchasing process.
The merchant’s server communicates the encrypted data string containing the transaction result
to GestPay, through the WSCryptDecrypt webservice.
Encrypted Data String
ShopLogin
EncryptedString
9000001
4D341A8B.............
GestPay authenticates the calling server and the integrity of the encrypted data string. If the
controls are passed, it returns the unencrypted information to GestPayCrypt allowing the
merchant to interpret the transaction result correctly:
GestPay Result
ShopLogin
Currency
Amount
ShopTransactionID
TransactionResult
AuthorizationCode
BankTransactionID
ErrorCode
ErrorDescription
9000001
242
1828.45
34az85ord19
OK
54e813
216
0
Transaction Executed
37
9.2 Transaction #2
The merchant decides to communicate to GestPay not only the information that is indispensable
to allow the buyer to make the payment, but also the buyer’s name, surname and e-mail
address (this information is suggested by default on the payment page so that the buyer does
not need to enter it a second time).
Other customized information is sent by the merchant (the client code attributed to the buyer and
technical information). The payment page must be displayed to the buyer who enters any
sensitive data necessary to complete the payment in protected mode (128–bit SSL). In addition,
one of the customized items of information (client code) must be displayed on the payment
page.
The transaction to process has the following characteristics:
Transaction
Shop Transaction ID
Transaction Amount
Currency Transaction
Language
Buyer’s Name and Surname
Buyer’s E-mail Address
Customised info 1
Customised info 2
34az85ord19
1245.6
Euro
Spanish
Mario Bianchi
[email protected]
BV_CODCLIENTE=12
BV_SESSIONID=398
We shall assume that the transaction is concluded positively (payment is made), reporting the
following result:
Result
Authorisation code
Bank transaction ID
9823y5
860
The following pages describe each individual phase that makes up the payment process,
highlighting the information exchanged between GestPay and the merchant’s server.
Phase I
The merchant’s server communicates the information that characterises the transaction to
GestPay, setting the value of the GestPayCrypt attributes:
GestPayCrypt
ShopLogin
Currency
Amount
ShopTransactionID
Language
BuyerName
BuyerEmail
CustomInfo
9000001
242
15.6
34az85ord19
3
Mario Bianchi
[email protected]
BV_CODCLIENTE=12*P1*SESSIONID=398
38
GestPay authenticates the calling server and validates the information that characterises the
transaction. If the controls are passed, it returns an encrypted string to GestPay:
Encrypted Data String
ShopLogin
EncryptString
9000001
30715CA8………………..
Phase II
The checkout page will load the js_Gestpay.js file and will check the boolean variable
BrowserEnabled.
If the BrowserEnabled is true the page will call the GestPay.CreatePage function passing three
parameters that correspond to the shop login, the encrypted data string received in the previous
phase by GestPay and the function that will check the Result object.
GestPay authenticates the Shop login (parameter a) and performs security checks on the
encrypted data string (parameter b). If the checks are passed, the Result.ErrorCode property will
return 10, the iFrame is created and the hidden payment page is loaded. Otherwise, the function
will return a proper ErrorCode.
Phase III
In the OnSubmit event of the credit card form the checkout page will retrieve the value inserted
by the cardholder and send them to the hidden iFrame through the GestPay.SendPayment
function.
After processing the transaction, GestPay communicates the transaction result (encrypted data
string) to the merchant with a server to server comunication.
Server-to-server communication
http://www.myshop.com/s2s.asp?a=9000001&b=4D341A8B..............
After server-to-server communication has sent, GestPay will return the result through the Result
object.
The object will provide the encrypted string in the Result.Encrypted string property.
The transaction result is also communicated to the merchant via e-mail.
Send E-mail
[email protected]
Phase IV
GestPay communicates the transaction result to the merchant, sending an encrypted data string.
Using the WSCryptDecrypt webservice, the merchant must request the string decryption service
to interpret the transaction result correctly and update the information in his/her own information
system, thus allowing the buyer to complete the purchasing process.
The merchant’s server communicates the encrypted data string containing the transaction result
to GestPay, through the WSCryptDecrypt webservice.
Encrypted Data String
ShopLogin
EncryptedString
9000001
4D341A8B.............
GestPay authenticates the calling server and the integrity of the encrypted data string. If the
controls are passed, it returns the unencrypted information to GestPayCrypt allowing the
merchant to interpret the transaction result correctly:
39
GestPay Result
ShopLogin
Currency
Amount
ShopTransactionID
TransactionResult
AuthorisationCode
BankTransactionID
CustomInfo
ErrorCode
ErrorDescription
9000001
242
15.6
34az85ord19
OK
9823y5
860
BV_CODCLIENTE=12*P1*SESSIONID=398
0
Transaction Executed
40
10. Implementations Examples
10.1 .Net C#
http://service.easynolo.it/download/iFrameExample_Net.zip
10.2 PHP
http://service.easynolo.it/download/iFrameExample_php.zip
41
11 Errors Table
Codice
Descrizione
0
Transaction correctly processed
10
Payment page correctly loaded
57
Blocked credit card
58
Confirmed amount exceeds authorized amount
63
Demand for settlement of one nonexistent transaction
64
Expired preauthorization
65
Wrong currency
66
Preauthorization already notif ied
74
Authorization denied
97
Authorization denied
100
Transaction interrupted by bank authorizative system
150
Wrong merchant configuration in bank authorizative system
208
Wrong expiry date
212
Bank authorizative system not available
251
Insufficient credit
401
Call credit card company
402
Call credit card company
403
Technical error
404
Collect card
405
Authorization refused by credit card companies
406
Technical error
409
Technical error
412
Technical error
413
Technical error
414
Card not recognized
415
Technical error in connection with Credit Card Company network
416
Wrong PIN
417
Authorization denied
418
Network not available
419
Wrong transaction date
420
Wrong card date
42
430
Technical error
431
Technical error in connection with Credit Card Company network
433
Card expired
434
Authorization refused by credit card companies
435
Authorization refused by credit card companies
436
Card not qualif ied
437
Operation not allowed
438
Operation not allowed
439
Card not recognized
441
Blocked credit card
443
Blocked credit card
451
Amount not available
454
Card expired
455
Operation not performed
456
Card not recognized
457
Authorization refused by credit card companies
458
Wrong merchant configuration in bank authorizative system
461
Amount not available
462
Blocked credit card
468
Bank authorizative system not available
475
Operation not allowed
490
Technical error
491
Technical error in connection with Credit Card Company network
492
Technical error in connection with Credit Card Company network
494
Technical error
810
Bank authorizative system not available
811
Wrong merchant configuration in bank authorizative system
901
Authorization denied
902
Authorization denied
903
Authorization denied
904
Authorization denied
905
Authorization denied
906
Authorization denied
907
Authorization denied
43
908
Authorization denied
910
Authorization denied
911
Authorization denied
913
Authorization denied
914
Authorization denied
915
Authorization denied
916
Authorization denied
917
Authorization denied
918
Authorization denied
919
Authorization denied
920
Authorization denied
950
Not qualif ied credit card
951
Wrong merchant configuration in bank authorizative system
998
Credit card with wrong check-digit
999
Operation not performed
1100
Empty parameter string
1101
Invalid format of parameter string
1102
No parameter name precedes = symbol
1103
Parameter string ending with a separator
1104
Invalid parameter name
1105
Invalid parameter value
1106
Repeated parameter name
1107
Unexpected parameter name. Please double check Fields and Parameters
configuration in Back Office.
1108
Compulsory parameter not set
1109
Missing parameter
1110
Missing PAY1_UICCODE parameter
1111
Invalid currency code
1112
Missing PAY1_AMOUNT parameter
1113
Not numeric amount
1114
Amount with a wrong number of decimal digits
1115
Missing PAY1_SHOPTRANSACTIONID parameter
1116
Too long PAY1_SHOPTRANSACTIONID parameter
1117
Invalid language identif ier
1118
Not numeric characters in credit card number
44
1119
Credit card number with wrong length
1120
Credit card with wrong check-digit
1121
Credit card belongs to a Company not enabled
1122
Expiry year without expiry month
1123
Expiry month without expiry year
1124
Invalid expiry month
1125
Invalid expiry year
1126
Expired expiry date
1127
Invalid cardholder email address
1128
Too long parameter string
1129
Too long parameter value
1130
Not accepted call: missing parameter A
1131
Not accepted call: Shop not recognized
1132
Not accepted call: shop is not in active state
1133
Not accepted call: missing parameter B
1134
Not accepted call: empty parameter B
1135
Not accepted call: other parameters beside A and B are present
1136
Not accepted call: transaction did not begin with a call to server-server
cryptography system
1137
Not accepted call: transaction already processed before
1138
Not accepted call: card number or expiry date are missing
1139
Not accepted call: missing published payment page
1140
Transaction cancelled by buyer
1141
Not accepted call: input parameter string not acceptable
1142
Not accepted call: invalid IP Address
1143
Transaction abandoned by buyer
1144
Compulsory field not set
1145
Invalid OTP
1146
Too small amount
1147
Too big amount
1148
Invalid cardholder name
1149
Missing or wrong CVV2
1150
IPIN must be set
1151
Parameters error
45
1153
GestPay failed to verify if the card is enrolled to VBV service
1154
Not accepterd call: missing parameter TransKey
1999
Technical error in connection with Credit Card Company network
2000
Transaction exceeds maximum operations number in time period
2001
Transaction exceeds maximum number of operations performed by the same
buyer in time period
2002
Transaction exceeds maximum amount in time period
2003
Transaction exceeds maximum amount payable by same buyer in time period
2004
Transaction contains a field value that had been declared not acceptable
2005
Buyer abandoned the transaction because it was double
2006
Wrong line length
2007
Wrong value in SHOPTRANSACTIONID field
2008
Wrong value in CURRENCY field
2009
Wrong value in AMOUNT field
2010
Wrong value in AUTHORIZATION DATE field
2011
Transaction not found
2012
Transaction ambiguous
2013
Text file contains more rows related to the same transaction
2014
You requested a refund operation with an amount exceeding transaction balance
2015
Wrong value in BANKTRANSACTIONID field
2016
Fields BANKTRANSACTIONID and SHOPTRANSACTIONID are empty
2017
Transacion can not be deleted
2018
Transacion can not be refunded
2019
Transacion can not be settled
2020
Transacion can not be renounced
4100
Operation not allowed
4101
Credit card number with wrong length
4102
Amount not available
4103
Technical error
4104
Technical error
4105
Technical error
46
4106
Technical error
4108
Technical error in connection with Credit Card Company network
4109
Technical error
4200
Technical error
4201
Technical error
4202
Technical error
4203
Call credit card company
4204
Operation not allowed
4205
Operation not allowed
4206
Credit card with wrong check-digit. Please double-check the credit card number
typed in.
4207
Technical error
4208
Operation not allowed
4209
Technical error
4300
Technical error
4301
Too big amount
4302
Technical error
4303
Operation not allowed
4304
Technical error
4305
Authorization refused by credit card companies
4306
Operation not allowed
4307
Technical error
4308
Operation not allowed
4309
Too big amount
4400
Wrong transaction date
4401
Wrong expiry date
4402
Technical error in connection with Credit Card Company network
4403
Technical error
4404
Technical error
4405
Operation not allowed
4406
Operation not allowed
4407
Amount not available
4408
Operation not allowed
4409
Operation not allowed
4500
Technical error
4501
Technical error
47
4502
Technical error
4503
Operation not allowed
4504
Operation not allowed
4505
Operation not allowed
4506
Technical error
4507
Technical error
4508
Operation not allowed
4604
Technical error
4701
Operation not allowed
4702
Wrong expiry date
4703
Card not qualif ied
4704
Amount not available
4705
Technical error in connection with Credit Card Company network
4706
Technical error in connection with Credit Card Company network
7400
Authorization denied
7401
Authorization refused by credit card companies
7402
Card not qualif ied
7403
Card not recognized
7404
Card expired
7405
Call credit card company
7406
Wrong card date
7407
Wrong transaction date
7408
System error
7409
Merchant not recognized
7410
Invalid format
7411
Amount not available
7412
Not settled
7413
Operation not allowed
7414
Network not available
7415
Collect card
7416
PIN attempts exhausted
7417
Blocked terminal
7418
Forcedly Closed terminal
7419
Not permitted transaction
7420
Not authorized transaction
7421
Servizio sospeso il 01/01/2002.
48
7500
Authorization denied
7600
Authorization denied
8000
File correctly processed
8001
Header/bottom record not found
8002
Merchant code not set
8003
Incorrect row number
8004
Incorrect file format
8005
Merchant not enabled
8006
Verify By Visa
8007
Feature disabled for VISA credit card
8008
Feature disabled
8010
Wrong credit card number for this transaction
8011
Transaction correctly received
8012
Authorization not found
8013
Settlement not found
8014
Settlement amount > Authorization amount
8015
Refund amount > balance
8016
Transaction without settlement
8018
File correctly processed
8021
Feature disable for MASTERCARD credit card
8022
Feature disable for JCB credit card
8023
Feature disabled for MAESTRO cards
9991
Browser not supported
9992
Error creating iFrame
9997
Phase with error
9998
Phase correctly ended
9999
System Error
49
12 Table of currency codes
Currency codes are handled by GestPay using the currency attribute.
Code UIC
18
242
1
2
71
103
234
3
Description
Italian lira
Euro
Dollar
Pound
Japanese Yen
Hong Kong Dollar
Real
Swiss franc
50
13 Table of Language Codes
The language code is handled by GestPay using the Language attribute.
Code
1
2
3
4
5
Description
Italian
English
Spanish
French
German
51
14 Table of Verified by Visa Codes
The VbV code is handled by GestPay using the VbV attribute.
Code
OK
KO
Description
VbV-certif ied transaction
Transaction not VbV-certif ied
52
15 Payment Orders in Test Environment
Remember that to simulate the authorization of a payment order in the test environment it is
necessary to use a currently valid credit card.
Amounts relating to authorised payment orders will be set against the credit limit of the card
used and will never be debited. We therefore recommend that payment orders are made for
small amounts so as not to run down the remaining credit on the card used for the tests.
16 Links
Test codes
http://service.easynolo.it/download.asp
Technical support
https://www.easynolo.it/easynolo/ecommerce/assistenza/richiedi_assistenza.jsp?p=com_42
F.A.Q.
https://www.easynolo.it/easynolo/ecommerce/assistenza/faq_ecommerce.jsp?p=com_55
Forum
http://service.easynolo.it/forum.asp
E-Commerce on Sella.it
https://www.sella.it/ita/aziende/ecommerce/index.jsp
Back Office environment for actual merchants
https://ecomm.sella.it/gestpay/backoffice/LoginGestPay.asp
Back Office environment for test merchants
https://testecomm.sella.it/gestpay/backoffice/logingestpay.asp
53