NAV Navbar
Logo

Introduction

   _____           _                     
  / ____|         | |                    
 | |  __  ___  ___| |_ _ __   __ _ _   _ 
 | | |_ |/ _ \/ __| __| '_ \ / _` | | | |
 | |__| |  __/\__ \ |_| |_) | (_| | |_| |
  \_____|\___||___/\__| .__/ \__,_|\__, |
                      | |           __/ |
                      |_|          |___/ 

Gestpay API documentation aims to be a comprehensive and living catalog of Gestpay services.

Our API is SOAP-based, so you must encode your requests in XML to communicate with Gestpay.

For every service, we will present both the test and the production endpoints.

Our services are:

WSCryptDecrypt used to start (and end) the payment process.
js_GestPay.js Mainly used to build a customized payment page.
WSs2s Allows to control via a programmable interface many aspects of your transactions.

WSCryptDecrypt API

GestPay WsCryptDecrypt web service is exposed by GestPay at following URLs:

environment URL
test https://sandbox.gestpay.net/gestpay/GestPayWS/WsCryptDecrypt.asmx?wsdl
production https://ecommS2S.sella.it/gestpay/GestPayWS/WsCryptDecrypt.asmx?wsdl

WSCryptDecrypt web service is available on 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.

If the encryption operation is concluded correctly (TransactionResult tag value with OK), the encrypted data string returned by GestPay will be available by reading the value of the CryptDecryptString tag.

If not, the values of the ErrorCode and ErrorDescription tag 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 CryptedString tags with the values communicated by GestPay.

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.

Encrypt

A valid Encrypt can be called with just these fields - very easy:

<Encrypt>
  <shopLogin>9000001</shopLogin>
  <uicCode>242</uicCode>
  <amount>985.21</amount>
  <shopTransactionId>34az85ord19</shopTransactionId>
</Encrypt>

Characters and strings that must not be used within the parameters encoded by GestPay and in customised information are:

&  (space)  §     (     )     * 
<     >     ,     ;     :    *P1* 
/     [     ]     ?     =     -- 
/*    %     //

Encrypt is the main entrypoint for Gestpay. You must call Encrypt either if you want to use the standard payment page, or the custom iframe solution.

These are the mandatory fields.

Name max length description
shopLogin 30 shopLogin (Mandatory)
uicCode 3 Code identifying currency in which transaction amount is denominated - see Currency Codes table - (Mandatory)
amount 9 Transaction amount. Do not insert thousands separator. Decimals, max. 2 numbers, are optional and separator is the point (Mandatory)
shopTransactionId 50 Identifier attributed to merchant’s transaction (Mandatory)

Here is an example where we use customInfo and other non-mandatory fields.

<Encrypt>
  <shopLogin>9000001</shopLogin>
  <uicCode>242</uicCode>
  <amount>1245.6</amount>
  <shopTransactionId>34az85ord19</shopTransactionId>
  <buyerName>Mario Bianchi</buyerName>
  <buyerEmail>mario.bianchi@isp.it</buyerEmail>
  <customInfo>BV_CODCLIENTE=12*P1*BV_SESSIONID=398</customInfo>
  <OrderDetails>
    ...
  </OrderDetails>
</Encrypt>

These are non-mandatory fields, but are direct children of the Encrypt root.

Name max length description
buyerName 50 Buyer’s name and surname
buyerEmail 50 Buyer’s e-mail address
languageId 2 Code identifying language used in communication with buyer
customInfo1 1000 String containing specific information as configured in the merchant’s profile. See the next section for further explanations.
OrderDetails a container ojbect of other data. It is used by Gestpay Guaranteed Payment and by alternative payments.

1. Each field can be up to a maximum of 300 characters in length. See next section for further explanations.

Sending custom data to Gestpay: <customInfo>

The information included in customInfo will follow this form:

<customInfo>datum1=value1*P1*datum2=value2*P1* ... *P1*datumN=valueN</customInfo>

Formally, it is a string containing couples of "key"="value" separated by the special string *P1*.

<customInfo> is a special Gestpay field; it is used to send custom merchant-defined parameters that Gestpay will not touch. You can store everything, as long as the data respects the syntax described on the right.

The maximum length of the field is 1000 characters, and each individual parameter can be max 300 characters.

To start sending custom parameters, you must configure Gestpay to receive them. This can be done in the backoffice, in Payment Page -> Fields & Parameters -> Add Parameter. Here you can configure some aspects of this parameter, for example if has to be returned by the Decrypt webservice. Don’t forget to populate the languages section.

With this customization, you can send all the parameters you want, as long they fit the 1000 characters length. To read more about custom parameters, refer to the documentation.

RequestToken

RequestToken example we are requesting a token to store the payment data.

<Encrypt>
  <shopLogin>9000001</shopLogin>
  <uicCode>242</uicCode>
  <amount>985</amount>
  <shopTransactionId>34az85ord19</shopTransactionId>
  <requestToken>MASKEDPAN</requestToken>
</Encrypt>

You can request a token that will represent the credit card for your website. You can use it later to handle recurring payments, or to avoid your customer to insert again his credit card data. This behaviour is compliant with PCI. Read more here.

Name max length description
requestToken 2 25 MASKEDPAN for a Standard Token any other value for Custom Token. Using :FORCED: before the token, it’ s possible to have the token even if the transaction is not authorized.

2. Required only when a Token is needed within the transaction response.

PaymentTypes

If you want to enable only Credit Card or Masterpass for this payment, you can send the request like this:

<Encrypt>
  <shopLogin>9000001</shopLogin>
  <uicCode>242</uicCode>
  <amount>985</amount>
  <shopTransactionId>34az85ord19</shopTransactionId> 
  <paymentTypes>
    <paymentType>CREDITCARD</paymentType> 
    <paymentType>MASTERPASS</paymentType>
  </paymentTypes>
<Encrypt>

If you only specify one payment type, Gestpay won’t show the payment page but will redirect directly to the third party payment page:

<Encrypt>
  <shopLogin>9000001</shopLogin>
  <uicCode>242</uicCode>
  <amount>985</amount>
  <shopTransactionId>34az85ord19</shopTransactionId> 
  <paymentTypes>
    <paymentType>MASTERPASS</paymentType>
  </paymentTypes>
<Encrypt>

GestPay provides a way for merchants to dinamically define which payment methods must be displayed for each transaction.

In order to do that, merchants must properly set the tag paymentType that can be repeated as many times as needed, inside the tag paymentTypes (with a final “s”).

Name max length description
paymentTypes container of one or more paymentType
paymentType 25 Set of tags to set the visibility of payment systems on payment page (see Payment Type Codes table)

Encrypt result

A succesful Encrypt call would be like this:

<EncryptResult>
  <GestPayCryptDecrypt>
    <TransactionType>ENCRYPT</TransactionType>
    <TransactionResult>OK</TransactionResult>
    <CryptDecryptString>897543..</CryptDecryptString>
    <ErrorCode>0</ErrorCode>
    <ErrorDescription/>
  </GestPayCryptDecrypt>
</EncryptResult>

Encrypt web service returns back the following information in xml:

Name max length description
TransactionType 7 Decode the transaction type request (DECRYPT, ENCRYPT)
TransactionResult 2 Transaction result (OK/ KO)
CryptDecryptString ….. Encrypted string get by parameter set in the xml request
ErrorCode  9 Error code
ErrorDescription 255 Error description

Decrypt

A Decrypt request:

 <Decrypt>
  <shopLogin>9000001</shopLogin>
  <CryptedString>HT987YU....</CryptedString>
 </Decrypt>

GestPay communicates the payment transaction result to the merchant through an encrypted string (parameter b of the call to the url preconfigured by the merchant) with a set of transaction’s informations.

To Decrypt the data it is necessary to use Decrypt method passing the following parameters, the tags’ names are case sensitive:

Name max length description
shopLogin 30 Shop Login
CryptedString …… Encrypted string get by parameter b of the call to the url preconfigured by the merchant

Decrypt result

GestPay authenticates the calling server and checks the encrypted data string. If the checks are passed, it returns an unencrypted data string containing the transaction result:

 <DecryptResult>
  <GestPayCryptDecrypt xmlns="">
    <TransactionType>DECRYPT</TransactionType>
    <TransactionResult>OK</TransactionResult>
    <ShopTransactionID>34az85ord19</ShopTransactionID>
    <BankTransactionID>656</BankTransactionID>
    <AuthorizationCode>983RT4</AuthorizationCode>
    <Currency>242</Currency>
    <Amount>985.40</Amount>
    <ErrorCode>0</ErrorCode>
    <ErrorDescription>Transazione correttamente effettuata</ErrorDescription>
    <RiskResponseCode>created</RiskResponseCode>
    <RiskResponseDescription/>
  </GestPayCryptDecrypt>
</DecryptResult>

Decrypt webservice returns back the following information in the xml.

The minimum information returned back as transaction result is marked in bold.

Name max length description
TransactionType 7 Decode the transaction type request (DECRYPT, ENCRYPT)
TransactionResult 2 Transaction result (OK/KO)
ShopTransactionID 50 Identifier attributed to merchant’s transaction
BankTransactionID 9 Identifier attributed to the transaction by GestPay
AuthorizationCode 6 Transaction authorisation code
Currency 3 Code identifying currency in which transaction amount is denominated (see Currency Codes table)
Amount 9 Transaction amount. Decimals (max. 2 numbers) are optional and separator is the point (see examples)
Country 30 Nationality of the issuing card institute
CustomInfo 1000  String that has the specific information as configured in themerchant’s profile. Each field can be up to a maximum of 300 characters in length.
Buyer.BuyerName 50 Buyer’s name and surname
Buyer.BuyerEmail 50 Buyer’s e-mail address
TDLevel 255 Level of authentication for VBV Visa / Mastercard Securecode transactions. The string may have the value FULL or HALF
ErrorCode 9 Error code
ErrorDescription 255 Error description (localized in your language)
AlertCode 9 Alert code. See Better Risk Management for an accurate description.
AlertDescription 255 Alert description in chosen language. See Better Risk Management for an accurate description.
CVVPresent 1 Credit Card security code flag
MaskedPAN 25 Masked Pan string
PaymentMethod 100 Indicates the used Payment Method
TOKEN  25 String containing the token value
ProductType 100  String containing Card Type
TokenExpiryMonth  2 String containing the token expiry month
TokenExpiryYear 2 String containing the token expiry year
TransactionKey  18 Transaction identifier for 3D transactions. Not used in transactions managed with the Payment Page. It is useful only in Server-Server transactions
VbV 2 Verified By Visa Flag
VbVRisp Encrypted string containing information for 3D- Secure transactions. Not used in transactions managed with the Payment Page. It is useful only in Server-Server transactions
VbVBuyer 2 Information about the enrolment of the buyer’s card to 3D-Secure protocol: OK means that the card is enrolled, KO means that the card is not enrolled
VbVFlag 2 Information about the 3D-Secure status. Not used in transactions managed with the Payment Page. It is useful only in Server-Server transactions.
RiskResponseCode 10 Risk Fraud Score of the transaction, given by Gestpay Guaranteed Payment. Possible values are:
  • created: transaction has been received by the Gestpay Guaranteed Payment
  • submitted: transaction is under review
  • approved: transaction approved by Gestpay Guaranteed Payment
  • declined: transaction not approved by Gestpay Guaranteed Payment
  • captured: For Select&Submit plan, captured is returned for transactions that are not marked for review.
  • any other value is an error returned by Gestpay Guaranteed Payment.
RiskResponseDescription 255 Risk Description of the RiskResponseCode

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:

Transaction Result Description
OK  Positive transaction result
KO  Negative transaction result
XX  Suspended transaction result. This is not a final result: Gestpay will send XX when the outcome is asynchronous. Right now these systems are MyBank, Sofort, IDeal, Bank Transfer. In the future, this code might be returned with other payment systems (bitcoins, for example).
A new communication will be provided to the merchant when the transaction will assume the final OK/KO status.
If you receive a XX code, don’t send your goods but wait to receive the actual payment. The customer with XX transaction is redirect to URL for positive response.

Alternative Payments Examples

Encrypt can be used to start a payment process in one of the several alternative payments that Gestpay supports.

You can see the complete list of Gestpay supported alternative payments in the docs.

As a recap, you can use the <paymentType> tag to specify which payment methods you want to enable. In the next paragraphs we will show some alternative payment examples.

WsS2S Example: Apple Pay

Apple Pay example:

<callPagamS2S>
  <!-- mandatory data -->
  <shopLogin>9000002</shopLogin>
  <uicCode>242</uicCode><!-- code for euro -->
  <amount>24.21</amount>
  <shopTransactionId>MYSHOP-0001</shopTransactionId>
  <!-- insert here data from Apple Pay -->
  <applePay> 
    <applePayPKPaymentToken>
    {
      "paymentData": {
        "data": "Q0tfx6QzXdx...",
        "signature": "MIAGCSqGSIb3DQEHAq...",
        "header": {
          "publicKeyHash": "b9OHKov7pD...",
          "ephemeralPublicKey": "MFkwE...",
          "transactionId": "df9ea7239074..."
        },
        "version": "EC_v1"
      },
      "transactionIdentifier": "DF9EA72390...",
      "paymentMethod": {
        "network": "Visa",
        "type": "debit",
        "displayName": "Visa0492"
      }
    }
    </applePayPKPaymentToken>
  </applePay>
  <!-- fill the remaining fields with usual data --> 
  ...
</callPagamS2S>

Please read the detailed setup process for Apple Pay in the docs.

Once you have received a Payment Token Package, you can call callPagamS2S with the relevant data.

Note that, if using Apple Pay, no Credit Card or Token data are needed.

For a real example of Payment Token Package, contained in applePayPKPaymentToken, click here.

The most important field in this process is applePayPKPaymentToken. Here is a description:

Key Value Description
applePayPKPaymentToken string contains a UTF-8 serialization of a plain-text JSON dictionary.

Once you have submitted callPagamS2S, Gestpay will behave exactly as always and your payment will be processed.

Encrypt Example: Alipay

Alipay example:

<Encrypt>
  <shopLogin>9000001</shopLogin>
  <uicCode>242</uicCode>
  <amount>100</amount>
  <shopTransactionId>34az85ord19</shopTransactionId>
  <paymentTypes>
    <paymentType>S2PALI</paymentType>
  </paymentTypes>
  <OrderDetails>
    <CustomerDetail>
      <PrimaryEmail>alfred.nobel@dynamite.se</PrimaryEmail>
    </CustomerDetail>
  </OrderDetails>
</Encrypt>

Alipay does not need any mandatory parameters. Just specify the PaymentType S2PALI and the payment page will show to your user.

If you specify the PrimaryEmail in the OrderDetails tag, you will redirect your user to Alipay payment page where some fields are already filled.

Encrypt Example: Bitcoin

Bitcoin example:

<Encrypt>
  <shopLogin>90000001</shopLogin>
  <uicCode>242</uicCode><!-- Euro -->
  <amount>0.10</amount>
  <shopTransactionId>MYSHOP_001</shopTransactionId>
  <paymentTypes>
    <paymentType>S2PBIT</paymentType>
  </paymentTypes>
  <!-- optional -->
  <OrderDetails>
    <CustomerDetails>
      <PrimaryEmail>satoshi.nakamoto@bitcoin.com</PrimaryEmail>
      <LastName>Nakamoto</LastName>
    </CustomerDetails>
  </OrderDetails>
</Encrypt>

Bitcoin does not need mandatory parameters, however if you send the LastName and the PrimaryEmail address the buyer will be redirected to the payment page without filling additional fields.

You must use S2PBIT as paymentType.

More informations about Bitcoin are in the doc.

Encrypt Example: Consel

Consel example:

<Encrypt>
  <shopLogin>9000001</shopLogin>
  <uicCode>242</uicCode>
  <amount>985</amount>
  <shopTransactionId>34az85ord19</shopTransactionId>
  <paymentTypes>
    <paymentType>CONSEL</paymentType><!-- select CONSEL -->
  </paymentTypes>
  <Consel_MerchantPro>WIK</Consel_MerchantPro>
  <Consel_CustomerInfo>
    <Surname>Rossi</Surname>
    <Name>Mario</Name> 
    <TaxationCode>RSSMRA70D23H501H</TaxationCode> 
    <Address>Via Torino</Address>
    <City>Roma</City> 
    <StateCode>RM</StateCode> 
    <DateAddress>11/04/1999</DateAddress> 
    <Phone>0632...</Phone> 
    <MobilePhone>331...</MobilePhone>
  </Consel_CustomerInfo>
</Encrypt>

Here more info about Consel Rate in Rete.

Name max length description
Consel_MerchantPro 3 Merchant Promotional Code (Mandatory to show Consel in the pagam’s Payment Method)
Consel_CustomerInfo Wrapper for Consel tags)
Surname 30 Customer Surname
NAme 30 Customer Name
TaxationCode 30 Customer Taxation Code
Address 30 Customer Address
City 30 Customer City
StateCode 30 Customer State Code
DateAddress 30 Date since the customer lives in the declared address (dd/mm/yyyy)
Phone 30 Customer Phone
MobilePhone 30 Customer Mobile phone

Encrypt Example: EPS

EPS example:

<Encrypt>
  <shopLogin>90000001</shopLogin>
  <uicCode>242</uicCode><!-- Euro -->
  <amount>0.10</amount>
  <shopTransactionId>MYSHOP_001</shopTransactionId>
  <paymentTypes>
    <paymentType>S2PEPS</paymentType>
  </paymentTypes>
</Encrypt>

EPS does not need mandatory parameters.

You must use S2PEPS as paymentType.

More informations about EPS are in the doc.

Encrypt Example: Giropay

Giropay example:

<Encrypt>
  <shopLogin>90000001</shopLogin>
  <uicCode>242</uicCode><!-- Euro -->
  <amount>0.10</amount>
  <shopTransactionId>MYSHOP_001</shopTransactionId>
  <paymentTypes>
    <paymentType>S2PGIR</paymentType>
  </paymentTypes>
</Encrypt>

Giropay does not need mandatory parameters.

You must use S2PGIR as paymentType.

More informations about Giropay are in the doc.

Encrypt Example: IDeal and MyBank

MyBank example:

<Encrypt>
  <shopLogin>9000001</shopLogin>
  <uicCode>242</uicCode>
  <amount>985</amount>
  <shopTransactionId>34az85ord19</shopTransactionId>
  <paymentTypes>
    <paymentType>MYBANK</paymentType>
  </paymentTypes>
  <paymentTypeDetail> 
    <MyBankBankCode>Code0000X</MyBankBankCode>
  </paymentTypeDetail> 
</Enrcypt>

IDeal example:

<Encrypt>
  <shopLogin>9000001</shopLogin>
  <uicCode>242</uicCode>
  <amount>10</amount>
  <shopTransactionId>34az85ord19</shopTransactionId>
  <paymentTypes>
    <paymentType>IDEAL</paymentType>
  </paymentTypes>
  <paymentTypeDetail> 
    <IdealBankCode>Code0000Y</IdealBankCode>
  </paymentTypeDetail> 
</Enrcypt>

If you choose let your users pay with MyBank or IDeal, you have to compile other two fileds.

More details can be found in at the MyBank and IDeal page.

Name max length description
paymentTypeDetail container of one of MyBankBankCode or IdealBankCode
MyBankBankCode 25 Tag to set the Bank to show on payment page (the bank List is retrieved from WsS2S.CallMyBankListS2S)
IdealBankCode 25 Tag to set the Bank to show on payment page (the bank List is retrieved from WsS2S.CallIdealListS2S)

Encrypt Example: Klarna

Here is an example of how to enable Klarna with Gestpay.

<Encrypt>
  <shopLogin>9000001</shopLogin>
  <uicCode>242</uicCode>
  <amount>100</amount>
  <shopTransactionId>34az85ord19</shopTransactionId>
  <paymentTypes>
    <paymentType>S2PKLA</paymentType>
  </paymentTypes>
  <OrderDetails>
    <CustomerDetail>
      <FirstName>Alfred</FirstName>
      <Lastname>Nobel<Lastname>
      <PrimaryEmail>alfred.nobel@dynamite.se</PrimaryEmail>
      <PrimaryPhone>00491522113356</PrimaryPhone>
      <SocialSecurityNumber>410321-9202</SocialSecurityNumber>
    </CustomerDetail>
    <BillingAddress>
      <StreetNumber>14<StreetNumber>
      <StreetName>Sturegatan</StreetName><!--mandatory-->
      <City>Stockholm</City><!--mandatory-->
      <ZipCode>SE-102</ZipCode><!--mandatory-->
      <CountryCode>SE</CountryCode><!--mandatory-->
    </BillingAddress>
    <ProductDetails>
      <ProductDetail><!-- mandatory -->
        <ProductCode>1</ProductCode>
        <SKU>AK-7</SKU> 
        <Name>TV2000</Name> 
        <Description>Television</Description> 
        <Quantity>1</Quantity> 
        <Price>100</Price> 
        <UnitPrice>100</UnitPrice> 
        <Type>1</Type> 
        <Vat>10</Vat> 
        <Discount>0</Discount>
      </ProductDetail> 
    </ProductDetails>
  </OrderDetails>
</Encrypt>

Klarna requires these parameters as mandatory, children of OrderDetails:

Name max length description
BillingAddress.StreetName 100 Shipping street name. Accepts only alpha-numeric characters.
BillingAddress.City 50 Shipping city name
BillingAddress.ZipCode 50 Shipping zip code
BillingAddress.CountryCode 2 one of [AT | DK | FI | DE | NL | NO | SE]
ProductDetails.ProductDetail the list of ordered products

We strongly suggest you to read these notes on BillingAddress and ShippingAddress.

If you send other fields, your customer will find them already filled:

CustomerDetail.FirstName 65 Customer First Name
CustomerDetail.Lastname 65 the list of ordered products
CustomerDetail.PrimaryEmail 100 Customer primary email
CustomerDetail.PrimaryPhone 100 Customer’s phone including prefix. See below on how to use it.
CustomerDetail.SocialSecurityNumber 20 Customer’s social or fiscal identifier (for Klarna Use)
BillingAddress.StreetNumber 5 Shipping Street Number. Accepts only numbers.

ProductDetails can have one or more ProductDetail. Here is a description of its fields:

ProductCode 12 Article’s product Code
SKU 50 Article’s Stock Keeping Unit
Name 100 Article’s name
Description 255 Article’s description
Quantity 3 The number of products
Price 12 Article’s price
UnitPrice 12 Article’s Unit Price
Type 2 The type of article: visit the klarna page in the docs to set the right value
Vat 2 Value-Added Tax (the value of the tax)
Discount 2 The amount offered by you as discount, in percentage. 10 means 10% and it is subtracted to the price.

More details about Klarna are in the documentation.

Encrypt Example: Konbini

Konbini example:

<Encrypt>
  <shopLogin>90000001</shopLogin>
  <uicCode>242</uicCode><!-- Euro -->
  <amount>0.10</amount>
  <shopTransactionId>MYSHOP_001</shopTransactionId>
  <paymentTypes>
    <paymentType>S2PKON</paymentType>
  </paymentTypes>
  <!--optional, to skip authentication -->
  <OrderDetails>
    <CustomerDetail>
      <PrimaryEmail>yamauchi.fusajiro@nintendo.jp</PrimaryEmail>
    </CustomerDetail>
  </OrderDetails>
</Encrypt>

Konbini does not need mandatory parameters.

You must use S2PKON as paymentType.

If you pass the PrimaryEmail tag, the customer will be redirected directly to the payment page.

More informations about Konbini are in the doc.

Encrypt Example: Masterpass

Masterpass example:

<Encrypt>
  <shopLogin>90000001</shopLogin>
  <uicCode>242</uicCode><!-- Euro -->
  <amount>0.10</amount>
  <shopTransactionId>MYSHOP_001</shopTransactionId>
  <paymentTypes>
    <paymentType>MASTERPASS</paymentType>
  </paymentTypes>
</Encrypt>

Masterpass does not need mandatory parameters.

You must use MASTERPASS as paymentType.

More informations about Masterpass are in the doc.

Encrypt Example: MercadoPago

MercadoPago example:

<Encrypt>
  <shopLogin>90000001</shopLogin>
  <uicCode>242</uicCode><!-- Euro -->
  <amount>0.10</amount>
  <shopTransactionId>MYSHOP_001</shopTransactionId>
  <paymentTypes>
    <paymentType>S2PMER</paymentType>
  </paymentTypes>
</Encrypt>

MercadoPago does not need mandatory parameters.

You must use S2PMER as paymentType.

More informations about MercadoPago are in the doc.

Encrypt Example: Multibanco

Multibanco example:

<Encrypt>
  <shopLogin>90000001</shopLogin>
  <uicCode>242</uicCode><!-- Euro -->
  <amount>0.10</amount>
  <shopTransactionId>MYSHOP_001</shopTransactionId>
  <paymentTypes>
    <paymentType>S2PMUL</paymentType>
  </paymentTypes>
</Encrypt>

Multibanco does not need mandatory parameters.

You must use S2PMUL as paymentType.

More informations about Multibanco are in the doc.

Encrypt example: Paypal

Enabling Paypal

If you only specify PAYPAL payment type, Gestpay won’t show the payment page but will redirect directly to Paypal’s payment page:

<Encrypt>
  <shopLogin>9000001</shopLogin>
  <uicCode>242</uicCode>
  <amount>985</amount>
  <shopTransactionId>34az85ord19</shopTransactionId> 
  <paymentTypes>
    <paymentType>PAYPAL</paymentType>
  </paymentTypes>
<Encrypt>

A detailed description of Gestpay integration with Paypal is in the docs.

Show product info at paypal’s buying page

User will see a Television in his paypal checkout.

<Encrypt>
  <shopLogin>9000001</shopLogin>
  <uicCode>242</uicCode>
  <amount>100</amount>
  <shopTransactionId>34az85ord19</shopTransactionId> 
  <paymentTypes>
    <paymentType>PAYPAL</paymentType>
  </paymentTypes>
  <OrderDetails>
    <ProductDetails><!-- if present, will be shown in paypal checkout -->
      <ProductDetail><!-- one or more -->
        <ProductCode>1</ProductCode>
        <SKU>AK-7</SKU> 
        <Name>TV2000</Name> 
        <Description>Television</Description> 
        <Quantity>1</Quantity> 
        <Price>100</Price> 
        <UnitPrice>100</UnitPrice> 
        <Type>1</Type> 
        <Vat>10</Vat> 
        <Discount>0</Discount>
      </ProductDetail> 
    </ProductDetails>
  </OrderDetails>
<Encrypt>

If you populate these fields accordingly, you can show your user the list of products:

ProductCode 12 Article’s product Code
SKU 50 Article’s Stock Keeping Unit
Name 1 100 Article’s name
Description 1 255 Article’s description
Quantity 1 3 The number of products
Price 12 Article’s price
UnitPrice 1 12 Article’s Unit Price
Type 2 The type of article: 1-product, 2-shipping, 3-handling
Vat 2 Value-Added Tax (the value of the tax)
Discount 2 The amount offered by you as discount

1. Line Items: in case the buyer selects PayPal as payment method in the payment page, fields Name, Description, Quantity and UnitPrice of every occurrency of the ProductDetail tag will be used to show the transaction items details in PayPal payment page.

Paypal Seller Protection

Paypal Seller Protection example:

<Encrypt>
  <shopLogin>9000001</shopLogin>
  <uicCode>242</uicCode>
  <amount>985</amount>
  <shopTransactionId>34az85ord19</shopTransactionId>
  <ppSellerProtection>1</ppSellerProtection>
  <shippingDetails>
    <shipToName>Marco Bianchi</shipToName>
    <shipToStreet>Via Milano 1</shipToStreet>
    <shipToCity>Torino</shipToCity>
    <shipToState>TO</shipToState>
    <shipToCountryCode>IT</shipToCountryCode>
    <shipToZip>10100</shipToZip>
    <shipToStreet2/>
  </shippingDetails>
</Encrypt>

For more informations, checkout the Paypal Seller Protection section.

If you want to activate the Paypal Seller Protection you must:

Name max length description
ppSellerProtection 1 Parameter to set the use of a confirmed addresses
Name max length description
shipToName 32 String containing the shipping name
shipToStreet 100 String containing the shipping address
shipToCity 40 String containing the shipping city
shipToState 40 String containing the shipping state (see Paypal State Codes table)
shipToCountryCode 2 String containing the shipping country code (see Paypal Country Codes table)
shipToZip 20 String containing the shipping zip
shipToStreet2 100 String containing an additional shipping address field

 Paypal recurring payments

In this way you can activate recurring payments on paypal. Note that no paymentType is needed.

<Encrypt>
  <shopLogin>9000001</shopLogin>
  <uicCode>242</uicCode>
  <amount>985</amount>
  <shopTransactionId>34az85ord19</shopTransactionId> 
  <payPalBillingAgreementDescription>
    description of the agreement 
  </payPalBillingAgreementDescription>
<Encrypt>

A Buyer will be able to subscribe a Billing Agreement on PayPal website so authorizing the Merchant to debit his/her PayPal account in future transactions.

To use PayPal Reference Transaction it’s necessary to fill the tag PayPalBillingAgreementDescription that can be present or not (in case of a normal PayPal payment it will be left empty or not passed at all).

Name max length description
payPalBillingAgreementDescription 127 Description of the goods, terms and conditions of the billing agreement

The Encryption service, if field payPalBillingAgreementDescription is present and not empty, assumes that the payment method is PayPal (so paymentType field in this case is not mandatory: if present it must be valued PAYPAL).

If this tag is passed to Encryption, GestPay bypasses the Pagam page in every case (even if other payment methods are enabled for the Merchant).

This tag has to be filled with description of the goods, terms and conditions of the billing agreement.

Encrypt Example: Paysafecard

Paysafecard example:

<Encrypt>
  <shopLogin>90000001</shopLogin>
  <uicCode>242</uicCode><!-- Euro -->
  <amount>0.10</amount>
  <shopTransactionId>MYSHOP_001</shopTransactionId>
  <paymentTypes>
    <paymentType>S2PPSC</paymentType>
  </paymentTypes>
</Encrypt>

Paysafecard does not need mandatory parameters.

You must use S2PPSC as paymentType.

More informations about Paysafecard are in the doc.

Encrypt Example: Qiwi

Qiwi call example :

<Encrypt>
  <shopLogin>9000001</shopLogin>
  <uicCode>242</uicCode>
  <amount>0.10</amount>
  <shopTransactionId>34az85ord19</shopTransactionId>
  <paymentTypes>
    <paymentType>S2PQIW</paymentType>
  </paymentTypes>
  <OrderDetails>
    <CustomerDetail>
      <PrimaryPhone>0123456789</PrimaryPhone>
    </CustomerDetail>
    <BillingAddress>
      <CountryCode>US</CountryCode>
    </BillingAddress>
  </OrderDetails>
</Encrypt>

Qiwi does not need mandatory parameters, but if you send these few parameters you can have a frictionless call directly to the first screen of QIWI where authentication data are asked. These fields are children of OrderDetails:

Name max length description
CustomerDetail.PrimaryPhone 20 Customer’s phone including prefix
BillingAddress.CountryCode 2 Alpha-2 code example for US is “US”

This mean that no others values are asked to the buyers; but if these field are not sent with the payment, a page will be displayed in order to ask the necessary fields like Phone and CountryCode of the buyer.

Encrypt Example: SEPA

SEPA Direct Debit example:

<Encrypt>
  <shopLogin>9000001</shopLogin>
  <uicCode>242</uicCode>
  <amount>10</amount><!-- mandatory, but not used -->
  <shopTransactionId>34az85ord19</shopTransactionId>
  <paymentTypes>
    <paymentType>SEPADD</paymentType>
  </paymentTypes>
</Encrypt>

To get a pre-approval from SEPA you must specify the paymentType SEPADD.

The amound used in the Encrypt is mandatory, but it is discarded since the Encrypt call is used only to get a pre-approval token.

The effectively charged amount is passed to callPagamS2S after the pre-approval token is received.

Encrypt Example: Sofort

SOFORT example:

<Encrypt>
  <shopLogin>9000001</shopLogin>
  <uicCode>242</uicCode>
  <amount>10</amount>
  <shopTransactionId>34az85ord19</shopTransactionId>
  <paymentTypes>
    <paymentType>S2PSOF</paymentType>
  </paymentTypes>
  <OrderDetails>
    <CustomerDetail>
      <FirstName>Albert</FirstName>
      <Lastname>Einstein<Lastname>
      <PrimaryEmail>albert.einstein@princeton.edu</PrimaryEmail>
    </CustomerDetail>
    <BillingAddress>
      <CountryCode>DE</CountryCode>
    </BillingAddress>
  </OrderDetails>
</Encrypt>

Sofort does not need mandatory parameters, but if you send the following parameters, you will jump straight to the SOFORT payment page without authenticating. All these fields are children of OrderDetails.

Name max length description
CustomerDetail.FirstName 65 Customer First Name
CustomerDetail.Lastname 65 Customer Last name
CustomerDetail.PrimaryEmail 100 Customer primary email
BillingAddress.CountryCode 2 Alpha-2 code. For example, use US for USA

Encrypt Example: TenPay

TenPay example:

<Encrypt>
  <shopLogin>90000001</shopLogin>
  <uicCode>103</uicCode><!--Hong Kong dollar-->
  <amount>0.10</amount>
  <shopTransactionId>SP_S2P_TenPay_001</shopTransactionId>
  <paymentTypes>
    <paymentType>S2PTEN</paymentType>
  </paymentTypes>
  <OrderDetails>
    <CustomerDetail>
      <FirstName>Charles Kuen</FirstName>
      <Lastname>Kao</Lastname>
      <PrimaryEmail>charleskuenkao@opticfiber.hk</PrimaryEmail>
    </CustomerDetail>
  </OrderDetails>
</Encrypt>

TenPay does not need mandatory parameters.

You must use S2PTEN as paymentType.

However, if you send the PrimaryEmail, FirstName and Lastname fields in the OrderDetails tag, you will be redirected straight to TenPay payment page; otherwise, an intermediary page asking for this data is showed.

More information about TenPay and how to test are in the doc.

Encrypt Example: TIMpersonal

TIMpersonal example:

<Encrypt>
  <shopLogin>90000001</shopLogin>
  <uicCode>242</uicCode><!-- Euro -->
  <amount>0.10</amount>
  <shopTransactionId>TIMpersonal_001</shopTransactionId>
  <paymentTypes>
    <paymentType>TIMPERSONAL</paymentType>
  </paymentTypes>
</Encrypt>

TIMpersonal does not need mandatory parameters.

You must use TIMPERSONAL as paymentType.

More information about TIMpersonal are in the doc.

Encrypt Example: UnionPay

UnionPay example:

<Encrypt>
  <shopLogin>90000001</shopLogin>
  <uicCode>242</uicCode>
  <amount>10</amount>
  <shopTransactionId>SP_S2P_UnionPay_001</shopTransactionId>
  <paymentTypes>
    <paymentType>S2PUNI</paymentType>
  </paymentTypes>
  <OrderDetails>
    <CustomerDetail>
      <PrimaryPhone>+85211112222</PrimaryPhone>
      <PrimaryEmail>yangchenning@physics.cn</PrimaryEmail>
    </CustomerDetail>
  </OrderDetails>
</Encrypt>

Unipay does not need mandatory parameters.

You must use S2PUNI as paymentType.

However, if you send the PrimaryEmail and PrimaryPhone fields in the OrderDetails tag, you will jump straight to the UnionPay payment page; otherwise, an intermediary page asking for the email address is showed.

Encrypt Example: WebMoney

WebMoney example:

<Encrypt>
  <shopLogin>90000001</shopLogin>
  <uicCode>242</uicCode><!-- Euro -->
  <amount>0.10</amount>
  <shopTransactionId>MYSHOP_001</shopTransactionId>
  <paymentTypes>
    <paymentType>S2PWMO</paymentType>
  </paymentTypes>
</Encrypt>

WebMoney does not need mandatory parameters.

You must use S2PWMO as paymentType.

More informations about WebMoney are in the doc.

Encrypt Example: Yandex

Yandex Example:

<Encrypt>
  <shopLogin>9000001</shopLogin>
  <uicCode>242</uicCode>
  <amount>10</amount>
  <shopTransactionId>34az85ord19</shopTransactionId>
  <paymentTypes>
    <paymentType>S2PYAN</paymentType>
  </paymentTypes>
  <OrderDetails>
    <CustomerDetail>
      <PrimaryEmail>alfred.nobel@dynamite.se</PrimaryEmail>
    </CustomerDetail>
  </OrderDetails>
</Encrypt>

Yandex does not need mandatory parameters; but if you send CustomerDetail.PrimaryEmail in the OrderDetails tag you can have a frictionless call directly to the first screen of Yandex where authentication data are asked.

Name max length description
CustomerDetail.PrimaryEmail 100 Customer primary email

This mean that no others values are asked to the buyer; if this field is not sent with the payment, a page will ask the necessary fields.

js_GestPay.js API

To start using this feature, import the script:

 <script src="https://ecomm.sella.it/pagam/JavaScript/js_GestPay.js"
    type="text/javascript"></script>

Once the script is imported, it will do some security checks. You can see this with the BrowserEnabled variable:

if ( BrowserEnabled ) {
    //The Browser is supported! 
    //Proceed to create the Payment page
} else {
    //The browser is not supported 
    //Place here error handle code
}

js_Gestpay.js is a javascript that enable you to process payments on your website, leaving you with the ability to completely design your custom payment page.

To use the following functionalities, you should first call `WSCryptDecrypt.Encrypt webservice.

CreatePaymentPage

Syntax:

GestPay.CreatePaymentPage(
    shopLogin, //I.E. 90000001
    EncryptedString, // "CFD3732BB102..." 
    PaymentPageLoaded); // a callback to call on success

Example:

GestPay.CreatePaymentPage(
    '9000001',  //shopLogin
    'DcffrrnDNdjfnemfnermgnermNfdm,gnem/*ng', //EncryptedString 
    function (Result) {  //callback 
        if(Result.ErrorCode == 10){ 
            //iFrame created and payment page correctly loaded
        } else {
            //An error has occurred, check ErrorCode and ErrorDescription
            //properties of the Result object
        } 
    });

The first thing to do to accept payments securely is to call GestPay.CreatePaymentPage().

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.

Name Type description
Shop Login string the code that identifies your shop.
Encrypted String string the string created with WSCryptEncrypt.Encrypt webservice.
callback function the callback that will be called with the result

SendPayment

Credit card authorization

syntax:

GestPay.SendPayment ({ 
    CC    : '1234567812345678', 
    EXPMM : '06', 
    EXPYY : '12', 
    CVV2 : '123', //optional
    Name : 'Some Dude', //optional 
    Mail: 'some@dude.net' //optional  
  },
  callBackObj);

example:

GestPay.SendPayment({
    CC : document.getElementById('CC').value, 
    EXPMM : document.getElementById('EXPMM').value, 
    EXPYY: document.getElementById('EXPYY').value, 
    CVV2: document.getElementById('CVV2').value, 
    Name: document.getElementById('Name').value, 
    Email: document.getElementById('Email').value
  },
  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
    }
});

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 object with the credit card number (CC), the expiration month (EXPMM) and the expiration year (EXPYY), the CVV (CVV2) if enabled, and a CallBack object.

The input is composed of two arguments:

Name Description Type Size
CC Credit card number number min: 13, max: 19
EXPMM Expiration Month number 2
EXPYY Expiration Year number 2
CVV2 (optional) Cvv/4DBC number min:3, max:4
Name (optional) Buyer’s name string 
Email (optional) Buyer’s email string

CVV2, Name and Email are optional but highly recommended.

Call after 3D Authentication

Syntax:

GestPay.SendPayment({
    PARes : '', 
    TransKey : ''
  },  
  callbackFunction
});

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
    }
});

If during the first SendPayment call Result.ErrorCode == 8006, you should redirect the user to the pagam3d.aspx page. You can read about the process at this link: Customizing the payment page.

When card holder is verified and authorized, you have to re-call SendPayment() with some new parameters:

ping

syntax:

GestPay.ping(callBackObj);

example:

GestPay.ping(function (Result) {
    if(Result.ErroCode == 1111) {
      //connection estabilished: servers are available
      console.log(Result.ErrorDescription) // outputs 'Ping Back'
    } else {
      //An error has occurred, check ErrorCode and ErrorDescription 
      //properties of the Result object
    }
});

The Ping function checks that there is an active connection with Gestpay.

Useful for troubleshooting connection errors.

getLastAnswer

syntax:

GestPay.getLastAnswer(callBackObj);

example:

GestPay.getLastAnswer(function (Result) {
  // asks Gestpay to re-send the last Result object. 
  });

getLastAnswer asks Gestpay to send back the last received Result object.

checkCC

syntax:

GestPay.checkCC(CCNum, callBackObj);

example:

GestPay.checkCC('12345678', function (Result) {
  if (Result.ErrorCode != 0) {
    console.log(Result.ErrorCode); // i.e. 1119
    console.log(Result.ErrorDescription); // 'Credit card number with wrong length'
    ... //handle the error
  } else {
    console.log('the Credit Card Number is valid');
  }
});

checkCC checks the formal correctness of the credit card number.

checkCVV

syntax:

GestPay.checkCVV(CVVNum, callBackObj);

example:

var CVV = 'XY@Z';

GestPay.checkCVV(CVV, function (Result) {
  if (Result.ErrorCode != 0) {
    console.log(Result.ErrorCode); // i.e. 1149
    console.log(Result.ErrorDescription); // 'Missing or wrong CVV2'
    ... //handle the error
  } else {
    console.log('the CVV value is valid'); 
  }
});

checkCVV checks the formal correctness of the value sent as CVV.

checkEXPMM

syntax:

GestPay.checkEXPMM(EXPMMVal, callBackObj);

example:

var EXPMMVal = '123'; //not valid ! 

GestPay.checkEXPMM(EXPMMVal, function (Result) {
  if (Result.ErrorCode != 0) {
    console.log(Result.ErrorCode); // i.e. 1124
    console.log(Result.ErrorDescription); // 'Invalid expiry month'
    ... //handle the error
  } else {
    console.log('the expiring month value is valid'); 
  }
});

checkEXPMM checks the formal correctness of the value sent as EXPMMVal. It represents the expiring month so it should be a value between 0 and 12.

checkEXPYY

syntax:

GestPay.checkEXPYY(EXPYYVal, callBackObj);

example:

var EXPYYVal = '99999'; //not a valid year ! 

GestPay.checkEXPYY(EXPYYVal, function (Result) {
  if (Result.ErrorCode != 0) {
    console.log(Result.ErrorCode); // i.e. 1125
    console.log(Result.ErrorDescription); // 'Invalid expiry year'
    ... //handle the error
  } else {
    console.log('the expiring year is valid'); 
  }
});

checkEXPYY checks the formal correctness of the value sent as EXPYYVal. It represents the expiring year so it should be a value between 0 and 99.

checkEXPDATE

syntax:

GestPay.checkEXPDATE(EXPMMVal, EXPYYVal, callBackObj);

example:

var EXPMMVal = '11';
var EXPYYVal = '211'; 

GestPay.checkEXPDATE(EXPMMVal, EXPYYVal, function (Result) {
  if (Result.ErrorCode != 0) {
    console.log(Result.ErrorCode); // i.e. 1125
    console.log(Result.ErrorDescription); // 'Invalid expiry year'
    ... //handle the error
  } else {
    console.log('the expiring year is valid'); 
  }
});

checkEXPDATE checks the formal correctness of the expiry date, sent as two variables for month and year.

checkEMAIL

syntax:

GestPay.checkEMAIL(EmailVal, callBackObj);

example:

GestPay.checkEMAIL( 'email@example.com' , function (Result) {
  if (Result.ErrorCode != 0) { // mail is valid, ErrorCode is 0 
    console.log(Result.ErrorCode); 
    console.log(Result.ErrorDescription);
    ... //handle error
  } else {
    console.log('the email is valid');  //prints 'the email is valid'
  }
});

checkEMAIL checks the formal correctness of the email address.

 the Result Object

Example: Merchant not 3D enabled or credit card not enrolled.

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
    } 
}

Example: Merchant 3D enabled and 3D enrolled credit card

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
    }
}

When callbacks are executed, the Result object will contain useful properties, needed to understand if an error has occurred.

name description
Result.ErrorCode the error code
Result.ErrorDescription the error description
Result.EncryptedResponse returns the encrypted response string
Result.TransKey return the TransKey in case of 3D enrolled credit card
Result.VBVRisp return the ciphered string needed for 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.

WsS2S API

Server to Server communication between merchants and GestPay is managed by consuming WSs2s SOAP web service.

Consuming WSs2s methods allow merchants to send requests and retrieve responses in XML format.

callPagamS2S

This service performs an authorization request.

Merchants can use this method to perform the transaction, passing all the parameters useful to define all the transaction’s features.

 Request parameters

request example:

<callPagamS2S>
    <shopLogin>9000002</shopLogin>
    <uicCode>242</uicCode><!-- euro -->
    <amount>24.21</amount>
    <shopTransactionId>MYSHOP-0001</shopTransactionId>
    <!-- here we have choosen to pay with credit card data -->
    <cardNumber>1234567812345678</cardNumber>
    <expiryMonth>06</expiryMonth>
    <expiryYear>21</expiryYear>
    <!-- if we wanted to pay by token: 
    <tokenValue>ABCD12345678EFGD</tokenValue>
    -->
    <buyerName>John Fitzgerald Kennedy</buyerName>
    <buyerEmail>johnny.kennedy@usa.com</buyerEmail>
    <languageId>2</languageId><!-- english -->
    <cvv>987</cvv>
    <PARes />
    <transKey />
    <customInfo></customInfo>
    <requestToken>MASKEDPAN</requestToken>
    <itemType>physical</itemType>
    <recurrent>false</recurrent>
    <shippingDetails>
        <shipToName>Jonny Kennedy</shipToName>
        <shipToStreet>83 Beals street</shipToStreet>
        <shipToCity>Brookline</shipToCity>
        <shipToState>MA</shipToState>
        <shipToCountryCode>US</shipToCountryCode>
        <shipToZip>02446</shipToZip>
        <shipToStreet2 />
    </shippingDetails>
    <OrderDetails>
      ... 
    <OrderDetails>
</callPagamS2S>

First we describe the mandatory attributes.

Name Description Data Type max length
shopLogin  shopLogin value string 30
uicCode  currency code number 3
amount the amount of the transaction numeric 9
shopTransactionId shop transaction ID value string 30

Depending on the payment method, you can choose to send Credit Card data:

Name Description Data Type max length
cardNumber card account number string 50
expiryMonth card expiration month string 2
expiryYear card expiration year string 2

Or a token:

Name Description Data Type max length
tokenValue String containing the token value returned by Gestpay.
In case of PayPalBillingAgreement this token value is the token returned by PayPal during the Billing Agreements.
string 25

The following features may be optionally assigned:

Name Description Data Type max length
buyerEmail buyer’s e-mail address. Using :NOSEND: before the email address, it’ s possible to pass the email information but avoid to send an email to the buyer. string 50
buyerName buyer’s name string 50
customInfo A string containing optional customised parameters. See customInfo section for more details. string 1000
cvv security code of the card. Refer to this page to enable and use it. string 4
languageId language to use for e-mails to the buyer number 2
PARes   encrypted string returned by Issuer (for 3D-Secure transactions only. See 3D-secure transactions for more details.)  string 4096
transKey transaction ID value for 3D-Secure transactions. See 3D-secure transactions for more details. number 18
requestToken MASKEDPAN for a Standard Token any other value for Custom Token string 25
clientIP For PayPal Billing Agreements it is required only in “one click” mode transaction.
For AMEX transaction not in Euro, in this field the merchant could provide the client IP address to activate the Enhanced Authorization AAV.
Mandatory if you use RiskiFied with S2S.
string 45
itemType Item Category: digital/physical (If physical the ShippingDetails have to be filled) string 250
recurrent true if it’s a recurrent payment, false if not. boolean 5
shippingDetails contains the shipping address. Used for paypal seller protection.
OrderDetails contains every other info needed to handle the payment. It is used by Gestpay Guaranteed Payment.
shipToName shipping name string 32
shipToStreet shipping address string 100
shipToState  shipping state (see Paypal State Codes table) string 40
shipToCountryCode shipping country code (see Paypal Country Codes table) string 2
shipToZip the shipping Zip string 20
shipToStreet2 an additional field for the shipping address string 200

Response fields

response example:

<GestPayS2S xmlns="">
  <TransactionType>PAGAM</TransactionType>
  <TransactionResult>OK</TransactionResult>
  <ShopTransactionID>MYSHOP-0001</ShopTransactionID>
  <BankTransactionID>65</BankTransactionID>
  <AuthorizationCode>365530</AuthorizationCode>
  <Currency>242</Currency>
  <Amount>24.21</Amount>
  <Country>US</Country>
  <Buyer>
    <BuyerName>John Fitzgerald Kennedy</BuyerName>
    <BuyerEmail>johnny.kennedy@usa.com</BuyerEmail>
  </Buyer>
  <CustomInfo/>
  <TDLevel/>
  <ErrorCode>0</ErrorCode>
  <ErrorDescription>Transazione correttamente effettuata</ErrorDescription>
  <AlertCode/>
  <AlertDescription/>
  <TransactionKey>579428899</TransactionKey>
  <VbV>
    <VbVFlag>KO</VbVFlag>
    <VbVBuyer/>
    <VbVRisp/>
  </VbV>
  <MaskedPAN>40L76FDIEFMH1112</MaskedPAN>
  <PaymentMethod>VISA VBV</PaymentMethod>
  <ProductType></ProductType>
  <CVVPresent>Y</CVVPresent>
  <TOKEN>40L76FDIEFMH1112</TOKEN>
  <TokenExpiryMonth></TokenExpiryMonth>
  <TokenExpiryYear></TokenExpiryYear>
  <PayPalFee></PayPalFee>
  <RiskResponseCode>approved</RiskResponseCode>
  <RiskResponseDescription>the transaction is approved</RiskResponseDescription>
</GestPayS2S>
Name Description
TransactionType PAGAM in response to CallPagamS2S
TransactionResult Returns transaction result with OK or KO
shopTransactionID shop transaction ID value
BankTransactionID code given by bank to transaction
AuthorizationCode authorisation code
Currency currency code
Country nationality of the card issuer
CustomInfo custom parameters, if passed to the request
BuyerType Returns address name and e-mail of thebuyer divided as follows:
  • BuyerEmail: Returns the e-mail of the buyer
  • BuyerName: Returns the name of the buyer
ErrorCode a code related to the transaction result
ErrorDescription the description connected to the ErrorCode value
AlertCode the violation code of the risk management criteria. See Better Risk Management for an accurate description.
AlertDescription the description connected to the AlertCode value. See Better Risk Management for an accurate description.
Amount the amount of the transaction
TransKey transaction ID value for 3D-Secure transactions
VBV Returns the values for 3D-Secure as follows:
  • VbVFlag: 3D-secure flag (OK or KO)
  • VbVBuyer:returns the flag Full Verified by Visa transaction
  • VbVRisp: Returns the encrypted string obtained by 3D-Secure directory
MaskedPAN this field returns a token (to not confuse with TOKEN) that should not be stored or used as a credit card token. With this parameter the merchant can assess some risk management analisys, for example he can check if the same MaskedPAN has already done some purchases or is involved in frauds.
PaymentMethod the credit card circuit / payment system used
ProductType can be Credit, Debit, or empty.
CVVPresent Y if the CVV is present, N if not.
TOKEN  contains a token that represents the credit card number. See Handling Subscriptions in the docs.
TokenExpiryMonth  the token exiration month
TokenExpiryYear  the token expiration year
PayPalFee the fee owed to paypal.
TDLevel Level of authentication for 3D-Secure transactions. FULL or HALF
RiskResponseCode Risk Fraud Score of the transaction, given by Gestpay Guaranteed Payment. Possible values are:
  • created: transaction has been received by the Gestpay Guaranteed Payment
  • submitted: transaction is under review
  • approved: transaction approved by Gestpay Guaranteed Payment
  • declined: transaction not approved by Gestpay Guaranteed Payment
  • captured: For Select&Submit plan, captured is returned for transactions that are not marked for review.
  • any other value is an error returned by Gestpay Guaranteed Payment.
RiskResponseDescription Risk Description of the RiskResponseCode

CallSettleS2S

This is the financial confirmation operation which may follow a positive authorisation.

It exists only for merchants with a M.O.T.O. configuration when a separation between the authorisation and the settlement phase is anticipated.

Merchants can use this method to settle the transaction. Since it’s possible to settle only a part of the amount, the amount value has to be passed.

Request details

Request example:

<callSettleS2S>
  <shopLogin>9000001</shopLogin>
  <uicCode>242</uicCode><!-- Euro -->
  <amount>55.00</amount>
  <shopTransID>MYSHOP-00142</shopTransID>
  <bankTransID>159247522</bankTransID>
  <FullFillment>
    <FullFillmentlst>
      <FullfillmentDetail>
        <Status>success</Status>
        <TrackingCompany>Shippers, Inc.</TrackingCompany>
        <TrackingNumbers>GD-52563-2233-4422</TrackingNumbers>
        <TrackingUrls>www.shippers.com/track?id=GD-52563-2233-4422</TrackingUrls>
        <Message>items in stock</Message>
        <Receipt>s.f. 351</Receipt>
        <ProductDetails>
          <ProductCode>223311</ProductCode>
          <SKU>ART-244742-1231</SKU>
          <Name>Unicorn</Name>
          <Description>a horse with a horn</Description>
          <Quantity>1</Quantity>
          <Price>3500</Price>
          <UnitPrice>3500</UnitPrice>
          <Type>horse</Type>
          <Vat>22</Vat>
          <Discount>0</Discount>
          <RequiresShipping>true</RequiresShipping>
          <Condition>new</Condition>
          <Seller>Flying Horses</Seller>
          <Category>Horse</Category>
          <SubCategory>Special Horse</SubCategory>
          <Brand>Custom</Brand>
          <DeliveryAt>19/05/2016</DeliveryAt>
        </ProductDetails>
      </FullfillmentDetail>
    </FullFillmentlst>
  </FullFillment>
</callSettleS2S>

Parameters in bold are mandatory.

parameter name description type length
shopLogin the merchant’s code string 30
amount amount   number 9
uicCode currency code number 3
bankTransID BankTransactionID assigned to the transaction number 18
shopTransID shop transaction ID value string 50
FullFillment An object describing the final fulfillment status of an order.

FullFillment tag must be filled if you are using Gestpay Guaranteed Payment, an anti fraud evaluating system. If you are not using it, you can skip this.

When you settle a payment, Gestpay Guaranteed Payment wants to be notified that an existing order has been fulfilled, both the success and error case.

FillFillment contains a FullFillmentlst that contains one or more FullfillmentDetail, whose fields are:

parameter name description
Status
  • success: the fulfillment was successful.
  • cancelled: the fulfillment was cancelled.
  • error: there was an error with the fulfillment request.
  • failure: the fulfillment request failed.
TrackingCompany the name of the shipping company
TrackingNumbers A list of shipping numbers, provided by the shipping company.
TrackingUrls The URLs to track the fulfillment.
Message Additional textual description regarding the fulfillment status.
Receipt  Information about the Receipt
ProductDetails container object that contains info about the fulfilled item.

Here is a description of the children of ProductDetails:

parameter name description
ProductCode Article’s product Code
SKU Article’s Stock Keeping Unit
Name Article’s name
Description Article’s description
Quantity The number of products
Price Article’s price
UnitPrice Article’s Unit price
Type The type of article: digital , downloadable, physical,composite, event, travel
Vat Value-Added Tax (the value of the tax)
Discount
RequiresShipping boolean, States whether or not the fulfillment requires shipping. This field is important for merchants dealing with digital goods.
Condition Description of the physical condition of the item, mostly relevant for used items.
Seller Details about the seller of the item, relevant for marketplace orders.
Category The category of the item. For event tickets: the category of the event.
SubCategory The sub-category of the item. For event tickets: the sub-category of the event.
Brand The brand name of the item.
DeliveryAt The planned delivery date of the product or item.

 Response details

Response example:

<callSettleS2SResponse xmlns="https://ecomms2s.sella.it/">
  <callSettleS2SResult>
    <GestPayS2S>
      <TransactionType>Settle</TransactionType>
      <TransactionResult>OK</TransactionResult>
      <ShopTransactionID>MYSHOP-00142</ShopTransactionID>
      <BankTransactionID>159247522</BankTransactionID>
      <ErrorCode>0</ErrorCode>
      <ErrorDescription>Transazione correttamente effettuata</ErrorDescription>
    </GestPayS2S>
  </callSettleS2SResult>
</callSettleS2SResponse>
parameter name description
TransactionType  for CallSettleS2S, the value will be Settle
TransactionResult OK or KO
BankTransactionID Bank transaction ID assigned to the transaction
ShopTransactionID Shop transaction ID value assigned to the transaction
ErrorCode transaction error code
ErrorDescription transaction error description

CallDeleteS2S

This operation deletes an authorized transaction.

It exists only for merchants with a M.O.T.O. configuration when a separation between the authorisation and the settlement phase is anticipated.

Request details

Request example:

<callDeleteS2S>
  <shopLogin>9000001</shopLogin>
  <shopTransactionId>MYSHOP-4838</shopTransactionId>
  <bankTransactionId>334488931</bankTransactionId>
  <CancelReason>potential fraud</CancelReason>
</callDeleteS2S>

Mandatory parameters are in bold.

parameter name description type length
shopLogin the merchant’s code string 30
bankTransactionId ID of the transaction assigned by Gestpay number 18
shopTransactionId shop transaction ID value string 50
CancelReason free text of cancel reason.For Gestpay Guaranteed Payment users, this field is mandatory. string 50

 Response details

Response example:

<callDeleteS2SResponse xmlns="https://ecomms2s.sella.it/">
  <callDeleteS2SResult>
    <GestPayS2S>
      <TransactionType>Delete</TransactionType>
      <TransactionResult>OK</TransactionResult>
      <ShopTransactionID>MYSHOP-00142</ShopTransactionID>
      <BankTransactionID>159247522</BankTransactionID>
      <ErrorCode>0</ErrorCode>
      <ErrorDescription>Transazione ritirata</ErrorDescription>
    </GestPayS2S>
  </callSettleS2SResult>
</callSettleS2SResponse>
parameter name description
TransactionType  for CallDeleteS2S, the value will be Delete
TransactionResult OK or KO
BankTransactionID Bank transaction ID assigned to the transaction
ShopTransactionID Shop transaction ID value assigned to the transaction
ErrorCode transaction error code
ErrorDescription transaction error description

CallRefundS2S

Merchants can use this method to perform a partial or complete transaction amount refund.

Request details

Request example:

<callRefundS2S>
  <shopLogin>9000001</shopLogin>
  <uicCode>242</uicCode><!-- Euro -->
  <amount>55.00</amount>
  <shopTransactionId>MYSHOP-00142</shopTransactionId>
  <bankTransactionId>159247522</bankTransactionId>
  <RefundReason>item our of stock</RefundReason>
  <chargeBackFraud>N</chargeBackFraud>
  <OrderDetail>
    <ProductDetails>
      ...
    </ProductDetails>
  </OrderDetail>
</callRefundS2S>

Mandatory parameters are in bold.

parameter name description type length
shopLogin the merchant’s code string 30
bankTransactionId ID of the transaction assigned by Gestpay number 18
shopTransactionId shop transaction ID value string 50
amount the amount to refund number 9
uicCode currency code numeric 3
RefundReason a free-text reason for the refund. Used with fraud protection. string 50
chargeBackFraud Flag for risk:
  • Y - chargeback for fraud
  • N - chargeback not for a fraud
orderDetail.ProductDetails in case you are using Klarna, fill this fields with info about the products that are refunded. A description of this field is in OrderDetails.

 Response details

Response example:

<callRefundS2SResponse xmlns="https://ecomms2s.sella.it/">
  <callRefundS2SResult>
    <GestPayS2S>
      <TransactionType>Refund</TransactionType>
      <TransactionResult>OK</TransactionResult>
      <ShopTransactionID>MYSHOP-00142</ShopTransactionID>
      <BankTransactionID>159247522</BankTransactionID>
      <ErrorCode>0</ErrorCode>
      <ErrorDescription/>
    </GestPayS2S>
  </callRefundS2SResult>
</callRefundS2SResponse>
parameter name description
TransactionType  for CallRefundS2S, the value will be Refund
TransactionResult OK or KO
BankTransactionID Bank transaction ID assigned to the transaction
ShopTransactionID Shop transaction ID value assigned to the transaction
ErrorCode transaction error code
ErrorDescription transaction error description

 CallReadTrxS2S

This method will return the transaction status.

This method can be called with a mandatory shopLogin, then it’s possible to pass shopTransactionId or bankTransactionId or both. If only shopLogin and shopTransactionId are passed, it’s mandatory that the last one is unique.

Request details

Example request:

<callReadTrxS2S>
  <shopLogin>9000001</shopLogin>
  <shopTransactionId>MYSHOP-4838</shopTransactionId>
  <bankTransactionId>334488931</bankTransactionId>
</callReadTrxS2S>

Parameters in bold are mandatory.

parameter name description type length
shopLogin the merchant’s code string 30
bankTransactionId ID of the transaction assigned by Gestpay number 18
shopTransactionId shop transaction ID value string 50

 Response details

Response example

<callReadTrxS2SResult>
  <GestPayS2S xmlns="">
    <TransactionType>QUERYTX</TransactionType>
    <TransactionResult>OK</TransactionResult>
    <TransactionState>CAN</TransactionState>
    <ShopTransactionID>MYSHOP-4838</ShopTransactionID>
    <BankTransactionID>334488931</BankTransactionID>
    <AuthorizationCode>971773</AuthorizationCode>
    <Currency>242</Currency>
    <Country>ITALIA</Country>
    <Company>MASTERCARD SECURECODE</Company>
    <TDLevel>FULL</TDLevel>
    <Events>
      <event>
        <eventtype>AUT</eventtype>
        <eventamount>0.10</eventamount>
        <eventdate>19/08/16 16:13:14</eventdate>
      </event>
      <event>
        <eventtype>CAN</eventtype>
        <eventamount>0.10</eventamount>
        <eventdate>20/08/16 00:13:57</eventdate>
      </event>
    </Events>
    <Buyer>
      <BuyerName/>
      <BuyerEmail/>
    </Buyer>
    <RISK>
      <RiskResponseCode>approved<RiskResponseCode>
      <RiskResponseDescription/>
    </RISK>
    <ErrorCode>0</ErrorCode>
    <ErrorDescription>Transaction correctly processed</ErrorDescription>
    <AlertCode/>
    <AlertDescription/>
  </GestPayS2S>
</callReadTrxS2SResult>
parameter name description
TransactionType  for  CallReadTrxS2S, the value will be QUERYTX
TransactionResult OK or KO
BankTransactionID Bank transaction ID assigned to the transaction
ShopTransactionID Shop transaction ID value assigned to the transaction
ErrorCode transaction error code
ErrorDescription transaction error description
AuthorizationCode the authorisation code
Currency the currency code
Country the nationality of the card issuer
Company the card company: Visa, Mastercard, etc.
TransactionState the status of the transaction: one of AUT, MOV, CAN, STO. Follow the link for a detailed explanation of transaction statuses.
AlertCode the violation code of the risk management criteria. See Better Risk Management for an accurate description.
AlertDescription the description connected to the AlertCode value. See Better Risk Management for an accurate description.
Buyer.BuyerName Returns the name of the buyer
Buyer.BuyerEmail Returns the email of the buyer
Events contains event elements. see the next table for more.
RiskResponseCode Risk Fraud Score of the transaction, given by Gestpay Guaranteed Payment. Possible values are:
  • created: transaction has been received by the Gestpay Guaranteed Payment
  • submitted: transaction is under review
  • approved: transaction approved by Gestpay Guaranteed Payment
  • declined: transaction not approved by Gestpay Guaranteed Payment
  • captured: For Select&Submit plan, caputred is returned for transactions that are not marked for review.
  • any other value is an error returned by Gestpay Guaranteed Payment.
RiskResponseDescription Risk Description of the RiskResponseCode

As said, <Events> can contain one or more <event> tags. the <event> tag is composed of:

name description
eventtype one of AUT, MOV, PRE, CAN, REQ, STO. There will be a node event for each existing event regarding the transaction. Follow the link for a detailed explanation of transaction statuses.
eventamount Relative value of the event
eventdate event date

CallVerifycardS2S

Merchants can use this method to check the Credit Card.

 Request details

Request example:

<callVerifycardS2S>
  <shopLogin>GEST13578</shopLogin>
  <shopTransactionId>MY-SHOP1234</shopTransactionId>
  <cardNumber>1234567812345678</cardNumber>
  <expMonth>12</expMonth>
  <expYear>21</expYear>
  <CVV2>931</CVV2>
</callVerifycardS2S>

Parameters in bold are mandatory.

parameter name description type length
shopLogin the merchant’s code string 30
shopTransactionId shop transaction ID value string 50
cardNumber credit card number string 20
expMonth card expiration month string 2
expYear card expiration year string 2
CVV2 security code of the card string 4

Response details

Response example:

<callVerifycardS2SResult>
  <GestPayS2S xmlns="">
    <TransactionType>VerCard</TransactionType>
    <TransactionResult>OK</TransactionResult>
    <Country>Italia</Country>
    <Company>MasterCard</Company>
    <ErrorCode>0</ErrorCode>
    <ErrorDescription></ErrorDescription>
  </GestPayS2S>
</callVerifycardS2SResult>
name description
TransactionType VerCard
TransactionResult OK or KO
ErrorCode error code
ErrorDescription error description
Country nationality of the card issuer
Company card company

callCheckCartaS2S

Merchants can use this method to check the Credit Card.

It’s possible to check with or without verifying the Authorization, setting the flag withAuth.

 Request details

Request example:

<callCheckCartaS2S>
  <shopLogin>GEST13578</shopLogin>
  <shopTransactionId>MY-SHOP1234</shopTransactionId>
  <!-- check a card --> 
  <cardNumber>1234567812345678</cardNumber>
  <expMonth>12</expMonth>
  <expYear>21</expYear>
  <CVV2>931</CVV2>
  <!-- alternatively, you can check a token: 
    <tokenValue>ABCD12345678EFGD</tokenValue>
    -->
    <withAuth>Y</withAuth>
</callCheckCartaS2S>

Parameters in bold are mandatory.

parameter name description type length
shopLogin the merchant’s code string 30
shopTransactionId shop transaction ID value string 50
withAuth tries to authorize the card.
Y on N
string 1

If you want to check a credit card by credit card number, month and year of expiration, use these fields:

parameter name description type length
cardNumber credit card number string 20
expMonth card expiration month string 2
expYear card expiration year string 2
CVV2 security code of the card string 4

Alternatively, you can use tokenValue to check if a token is still valid:

parameter name description type length
tokenValue String containing the token value returned by Gestpay.
In case of PayPalBillingAgreement this token value is the token returned by PayPal during the Billing Agreements.
string 25

Response details

Response example:

<callCheckCartaS2SResult>
  <GestPayS2S xmlns="">
    <TransactionType>CHECKCARD</TransactionType>
    <TransactionResult>OK</TransactionResult>
    <TransactionErrorCode>0</TransactionErrorCode>
    <TransactionErrorDescription>Transaction correctly processed</TransactionErrorDescription>
    <AuthorizationErrorCode>0</AuthorizationErrorCode>
    <AuthorizationResult>KO</AuthorizationResult>
    <AuthorizationCodeDescription>negative balance</AuthorizationCodeDescription>
    <CardCountry>ITALIA</CardCountry>
    <CardCountryCode>380</CardCountryCode>
    <CheckCVV>OK</CheckCVV>
    <CheckCVVDescription>CVV VALID</CheckCVVDescription>
    <IssuerCountry>ITALIA</IssuerCountry>
    <IssuerCountryCode>380</IssuerCountryCode>
    <CompanyDescription>MASTERCARD</CompanyDescription>
    <CompanyCode>3</CompanyCode>
    <Commercial>N</Commercial>
    <ProductDescription>Standard MasterCard® Card</ProductDescription>
    <ProductType>Credit</ProductType>
    <CheckDigit>OK</CheckDigit>
    <CheckDigitDescription>CheckDigit VALID</CheckDigitDescription>
    <CheckDate>OK</CheckDate>
    <CheckDateDescription>DATE VALID</CheckDateDescription>
    <EnrolledCode>Y</EnrolledCode>
    <EnrolledDescription>ENROLLED</EnrolledDescription>
    <Prepaid/>
  </GestPayS2S>
</callCheckCartaS2SResult>
name description
TransactionType CHECKCARD
TransactionResult OK or KO
TransactionErrorDescription transaction error description
AuthorizationErrorCode authorisation error code if an error occurred
AuthorizationResult authorization result. It can be OK or KO or NULL
AuthorizationCodeDescription code description
CardCountry nationality of the card
CardCountryCode nationality code of the card
CheckCVV result of the check CVV. It can be OK or KO or NULL
CheckCVVDescription description of CVV check results
IssuerCountry nationality of the card issuer
IssuerCountryCode nationality code of the card issuer
CompanyDescription Description of the Card company
CompanyCode Code of the Company
Commercial Flag that indicates if the Card is commercial or not. Y or N
ProductDescription Description of the product linked to the card
ProductType type of the product: Credit or Debit
CheckDigit OK or KO, acording to the check digit of the card
CheckDigitDescription description of the check digit response
CheckDate OK or KO, acording to the check date of the card
CheckDateDescription description of the check date response
EnrolledCode 3D Secure enabled:
  • Y enabled
  • N not enabled
  • E error: could not contact the credit card company
  • U could not verify
EnrolledDescription enrolment description
Prepaid indicates if the card is prepaid of not (Y, N, or empty)

CallRequestTokenS2S

Merchants can use this method to request the token generation for a Credit Card. This token can be generated as Standard Format or Custom Format. Tokens created by merchants belonging to a group will be available to all the merchants of the same group.

 Request details

Request example:

<CallRequestTokenS2S>
  <shopLogin>GEST13578</shopLogin>
  <requestToken>MASKEDPAN</shopTransactionId>
  <cardNumber>1234567812345678</cardNumber>
  <expiryMonth>12</expiryMonth>
  <expiryYear>21</expiryYear>
  <withAuth>Y</withAuth>
  <cvv>931</cvv><!-- optional -->
</callCheckCartaS2S>

Parameters in bold are mandatory.

parameter name description type length
shopLogin the merchant’s code string 30
requestToken MASKEDPAN for a Standard Token; any other value for Custom Token string 24
cardNumber credit card number string 20
expiryMonth card expiration month string 2
expiryYear card expiration year string 2
cvv security code of the card string 4
withAuth tries to authorize the card.
Y on N
string 1

Response details

Response example:

<CallRequestTokenS2SResult>
  <GestPayS2S xmlns="">
    <TransactionType>REQUESTTOKEN</TransactionType>
    <TransactionResult>OK</TransactionResult>
    <TransactionErrorCode>0</TransactionErrorCode>
    <TransactionErrorDescription>Transaction correctly processed</TransactionErrorDescription>
    <AuthorizationErrorCode/>
    <AuthorizationResult/>
    <AuthorizationCodeDescription/>
    <CardCountry>POLONIA</CardCountry>
    <CardCountryCode>616</CardCountryCode>
    <CheckCVV/>
    <CheckCVVDescription/>
    <IssuerCountry>POLONIA</IssuerCountry>
    <IssuerCountryCode>616</IssuerCountryCode>
    <CompanyDescription>VISA</CompanyDescription>
    <CompanyCode>1</CompanyCode>
    <Commercial>N</Commercial>
    <ProductDescription>Visa Gold</ProductDescription>
    <ProductType>Credit</ProductType>
    <CheckDigit>OK</CheckDigit>
    <CheckDigitDescription>CheckDigit VALID</CheckDigitDescription>
    <CheckDate>OK</CheckDate>
    <CheckDateDescription>DATE VALID</CheckDateDescription>
    <EnrolledCode>E</EnrolledCode>
    <EnrolledDescription>CREDIT CARD UNVERIFIABLE</EnrolledDescription>
    <Prepaid/>
    <CardBIN/>
    <Token>44MRWNA710AC4448</Token>
    <TokenExpiryMonth>12</TokenExpiryMonth>
    <TokenExpiryYear>16</TokenExpiryYear>
  </GestPayS2S>
</CallRequestTokenS2SResult>
name description
TransactionType REQUESTTOKEN
TransactionResult OK or KO
TransactionErrorDescription transaction error description
AuthorizationErrorCode authorisation error code if an error occurred
AuthorizationResult Authorization result. It can be OK or KO or NULL
AuthorizationCodeDescription code description
CardCountry nationality of the card
CardCountryCode nationality code of the card
CheckCVV result of the check CVV. It can be OK or KO or NULL
CheckCVVDescription description of CVV check results
IssuerCountry nationality of the card issuer
IssuerCountryCode nationality code of the card issuer
CompanyDescription Description of the Card company
CompanyCode Code of the Company
Commercial Flag that indicates if the Card is commercial or not. Y or N
ProductDescription Description of the product linked to the card
ProductType type of the product: Credit or Debit
CheckDigit OK or KO, acording to the check digit of the card
CheckDigitDescription description of the check digit response
CheckDate OK or KO, acording to the check date of the card
CheckDateDescription description of the check date response
EnrolledCode 3D Secure enabled:
  • Y enabled
  • N not enabled
  • U could not verify
  • E error: could not contact the credit card company
EnrolledDescription enrolment description
Prepaid indicates if the card is prepaid of not (Y, N, or empty)
Token the token value
TokenExpiryMonth the token expiry month
TokenExpiryYear the token expiry year

callDeleteTokenS2S

Merchants can use this method to disable a token linked to a Credit Card or to cancel a PayPal Billing Agreement. Merchants belonging to a group are allowed to delete also tokens created by other merchants of the same group.

Request details

Request example:

<callDeleteTokenS2S>
  <shopLogin>90000001</shopLogin>
  <tokenValue>1234WJFXABCD5678</tokenValue>
</callDeleteTokenS2S>

Mandatory parameters are in bold.

parameter name description type length
shopLogin the merchant’s code string 30
tokenValue Token value to delete string 25

Response details

Response example:

<callDeleteTokenS2SResult>
  <GestPayS2S xmlns="">
    <TransactionType>DisableToken</TransactionType>
    <TransactionResult>OK</TransactionResult>
    <ErrorCode>0</ErrorCode>
    <ErrorDescription />
  </GestPayS2S>
</callDeleteTokenS2SResult>
parameter name description
TransactionType DisableToken
TransactionResult OK or KO
ErrorCode transaction error code
ErrorDescription transaction error description

CallUpdateTokenS2S

Merchants can use this method to update the expiry date of a token.

Merchants belonging to a group are allowed to update also tokens created by other merchants of the same group. If a merchant belongs to a group, can update also token created by the other group’s merchants.

Request details

Request example:

<CallUpdateTokenS2S>
  <shopLogin>90000001</shopLogin>
  <token>1234WJFXABCD5678</token>
  <expiryMonth>12</expiryMonth>
  <expiryYear>21</expiryYear>
  <withAut>Y</withAut>
</CallUpdateTokenS2S>

Mandatory parameters are in bold.

parameter name description type length
shopLogin the merchant’s code string 30
token Token value to update string 25
expiryMonth Assigns card expiration month string 2
expiryYear Assigns card expiration year string 2
withAut tries also to authorize the card.
Y on N
string 1

Response details

Response example:

<CallUpdateTokenS2SResult>
  <GestPayS2S xmlns="">
    <TransactionType>UpdateToken</TransactionType>
    <TransactionResult>OK</TransactionResult>
    <ErrorCode>0</ErrorCode>
    <ErrorDescription />
  </GestPayS2S>
</CallUpdateTokenS2SResult>
parameter name description
TransactionType UpdateToken
TransactionResult OK or KO
ErrorCode transaction error code
ErrorDescription transaction error description

 CallIdealListS2S

Merchants can use this method to have the list of the Banks available for their customers for IDeal payment method.

Request details

Request example:

<CallIdealListS2S>
  <shopLogin>900000001</shopLogin>
</CallIdealListS2S>

Mandatory parameters are in bold.

parameter name description type length
shopLogin the merchant’s code string 30

 Response details

Response example:

<CallIdealListS2SResult>
    <GestPayS2S xmlns="">
        <TransactionType>RequestIdealBankList</TransactionType>
        <TransactionResult>OK</TransactionResult>
        <ErrorCode>0</ErrorCode>
        <ErrorDescription />
        <BankList>
          <Bank>
            <BankCode>0001</BankCode>
            <BankName>E-Corp</BankName>
          </Bank>
          <Bank>
            ... 
          </Bank>
        </BankList>
    </GestPayS2S>
</CallIdealListS2SResult>
parameter name description
TransactionType  for  CallIdealListS2S, the value will be RequestIdealBankList
TransactionResult OK or KO
ErrorCode transaction error code
ErrorDescription transaction error description
BankList.Bank.BankCode  Returns Ideal Bank List, for each bank returns the Bank Code
BankList.Bank.BankName  Returns Ideal Bank List, for each bank returns the Bank Name

CallMyBankListS2S

Merchants can use this method to have the list of the Banks available for their customers for MyBank payment method.

Request details

Request example:

<CallMyBankListS2S>
  <shopLogin>900000001</shopLogin>
  <langugeId>1</languageId>
</CallMyBankListS2S>

Mandatory parameters are in bold.

parameter name description type length
shopLogin the merchant’s code string 30
languageId Assigns the response language of the Bank list. Values:
  • 1 Italian
  • 2 English
  • 3 Spanish
  • 4 French
  • 5 German
number 2

 Response details

Response example:

<CallMyBankListS2SResult>
    <GestPayS2S xmlns="">
        <TransactionType>MyBank</TransactionType>
        <TransactionResult>OK</TransactionResult>
        <ErrorCode>0</ErrorCode>
        <ErrorDescription />
        <BankList>
          <Bank>
            <BankCode>0001</BankCode>
            <BankName>E-Corp</BankName>
          </Bank>
          <Bank>
            ... 
          </Bank>
        </BankList>
    </GestPayS2S>
</CallMyBankListS2SResult>
parameter name description
TransactionType  for callMyBankListS2S, the value will be MyBank
TransactionResult OK or KO
ErrorCode transaction error code
ErrorDescription transaction error description
BankList.Bank.BankCode  Returns MyBank Bank List, for each bank returns the Bank Code
BankList.Bank.BankName  Returns MyBank Bank List, for each bank returns the Bank Name

CallUpdateOrderS2S

Merchants can use this method to update the order values for Risk Fraud management. For example, if the buyer changes the Shipping Address, this must be notified to Gestpay Guaranteed Payment in order to review again the Order. Gestpay Guaranteed Payment decides if the Order must be reviewed based on the changed values.

 Request parameters

request example:

<CallUpdateOrderS2S>
  <shopLogin>9000002</shopLogin>
  <shopTransactionId>MYSHOP-0001</shopTransactionId>
  <bankTransactionId>13675333225</bankTransactionId>
  <OrderDetails>
    ... <!-- the OrderDetails object -->
  <OrderDetails>
</CallUpdateOrderS2S>

Mandatory parameters are in bold. The attributes are:

Name Description Data Type max length
shopLogin  shopLogin value string 30
shopTransactionId shop transaction ID value string 50
bankTransactionId the bank ID value string 50
OrderDetails contains every other info needed to evaluate the payment. Refer to OrderDetails for a detailed description of its fields.

Response fields

response example:

<GestPayS2S xmlns="">
  <TransactionType>RiskifiedUpdateOrder</TransactionType>
  <TransactionResult>OK</TransactionResult>
  <ErrorCode>0</ErrorCode>
  <ErrorDescription>Transazione correttamente effettuata</ErrorDescription>
</GestPayS2S>
Name Description
TransactionType RiskifiedUpdateOrder in response to CallUpdateOrderS2S
TransactionResult Returns transaction result with OK or KO
ErrorCode a code related to the transaction result
ErrorDescription the description connected to the ErrorCode value

callExchangeRateS2S

Merchants can use this method to retrieve the exchange rates for a specified currency, in the last 7 days (current day and 6 previous days).

Exchange rates are meant as the conversion rates applied on that day to that currency by the phases that credit that amount on the bank account of the merchant, in order to get the corresponding EUR value.

A more descriptive explanation of callExchangeRateS2S is in the docs.

 Request details

Request example:

<eco:callExchangeRateS2S>
    <eco:shopLogin>GESPAY65987</eco:shopLogin>
    <eco:uicCode>1</eco:uicCode>
    <eco:isoCode>USD</eco:isoCode>
    <eco:numericIsoCode>840</eco:numericIsoCode>
</eco:callExchangeRateS2S>

Parameters in bold are mandatory.

parameter name description type length
shopLogin the merchant’s code string 30
uicCode the UIC code string 10
isoCode the ISO code - see the Code column. string 10
numericIsoCode the ISO code - see the Num column. string 10

Response details

Response example:

<callExchangeRateS2SResult>
  <GestPayS2S xmlns="">
    <TransactionType>ExchangeRate</TransactionType>
    <TransactionResult>OK</TransactionResult>
    <ErrorCode>0</ErrorCode>
    <ErrorDescription>Transazione correttamente effettuata</ErrorDescription>
    <ExchangeRates>
        <ExchangeRate>
            <UICCode>1</UICCode>
            <ISOCode>USD</ISOCode>
            <NumericISOCode>840</NumericISOCode>
            <ExchangeRate>1,0617</ExchangeRate>
            <CreditDate DateFormat="DD/MM/YYYY">TODAY_CONST</CreditDate>
        </ExchangeRate>
        <ExchangeRate>
            <UICCode>1</UICCode>
            <ISOCode>USD</ISOCode>
            <NumericISOCode>840</NumericISOCode>
            <ExchangeRate>1,0602</ExchangeRate>
            <CreditDate DateFormat="DD/MM/YYYY">YESTERDAY_CONST</CreditDate>
        </ExchangeRate>
        <ExchangeRate>
            <UICCode>1</UICCode>
            <ISOCode>USD</ISOCode>
            <NumericISOCode>840</NumericISOCode>
            <ExchangeRate>1,0603</ExchangeRate>
            <CreditDate DateFormat="DD/MM/YYYY">MINUS_2_CONST</CreditDate>
        </ExchangeRate>
        <ExchangeRate>
            <UICCode>1</UICCode>
            <ISOCode>USD</ISOCode>
            <NumericISOCode>840</NumericISOCode>
            <ExchangeRate>1,0599</ExchangeRate>
            <CreditDate DateFormat="DD/MM/YYYY">MINUS_3_CONST</CreditDate>
        </ExchangeRate>
        <ExchangeRate>
            <UICCode>1</UICCode>
            <ISOCode>USD</ISOCode>
            <NumericISOCode>840</NumericISOCode>
            <ExchangeRate>1,0595</ExchangeRate>
            <CreditDate DateFormat="DD/MM/YYYY">MINUS_4_CONST</CreditDate>
        </ExchangeRate>
        <ExchangeRate>
            <UICCode>1</UICCode>
            <ISOCode>USD</ISOCode>
            <NumericISOCode>840</NumericISOCode>
            <ExchangeRate>1,0595</ExchangeRate>
            <CreditDate DateFormat="DD/MM/YYYY">MINUS_5_CONST</CreditDate>
        </ExchangeRate>
        <ExchangeRate>
            <UICCode>1</UICCode>
            <ISOCode>USD</ISOCode>
            <NumericISOCode>840</NumericISOCode>
            <ExchangeRate>1,0595</ExchangeRate>
            <CreditDate DateFormat="DD/MM/YYYY">MINUS_6_CONST</CreditDate>
        </ExchangeRate>
    </ExchangeRates>
  </GestPayS2S>
  </callExchangeRateS2SResult>
name description
TransactionType ExchangeRate
TransactionResult OK or KO
ErrorCode error code occurred
ErrorDescription error description relative to error code
ExchangeRates Tag for list of exchange rates
ExchangeRate Tag for exchange rate detail
UICCode UIC code
ISOCode ISO code
NumericISOCode Numeric ISO code
ExchangeRate Value of exchange rate
CreditDate Day of validity for this Exchange Rate

Gestpay Guaranteed Payment

Gestpay Guaranteed Payment is a fraud detection service, offered in partnership with Riskified. To get more info, visit Gestpay Guaranteed Payment documentation.

Gestpay Guaranteed Payment can be used both in Encrypt and in S2S webservices (like callPagamS2S and others).

All Gestpay Guaranteed Payment data goes inside the tag <OrderDetails>. There you will find a detailed description of every field.

Models

In this section we’ll discuss shared objects used in the API.

OrderDetails

OrderDetails tag example:

<OrderDetails>
  <FraudPrevention>
    <SubmitForReview>1</SubmitForReview>
    <OrderDateTime>2017-12-26</OrderDateTime>
    <OrderNote>Please send me the blue version</OrderNote>
    <Source>website</Source>
    <SubmissionReason>rule_decision</SubmissionReason>
    <BeaconSessionID>ff1db05b-81db-4ca0-a728-4797bfe796ff</BeaconSessionID>
    <VendorID>9000002</VendorID>
    <VendorName>www.yourdomain.it</VendorName>
  </FraudPrevention>
  <CustomerDetail>
    <ProfileID />
    <MerchantCustomerID/>
    <FirstName>Michael</FirstName>
    <MiddleName>J.</MiddleName>
    <Lastname>Fox</Lastname>
    <PrimaryEmail>martymcfly@backtothefuture.com</PrimaryEmail>
    <SecondaryEmail />
    <PrimaryPhone>+390298987643</PrimaryPhone>
    <SecondaryPhone>+393351029384</SecondaryPhone>
    <DateOfBirth>29/09/1932</DateOfBirth>
    <SocialSecurityNumber>BRLSLV36P29F205W</SocialSecurityNumber>
    <Company />
    <CreatedAtDate>31/12/2017</CreatedAtDate>
    <VerifiedEmail>true</VerifiedEmail>
    <AccountType>premium</AccountType>
  </CustomerDetail>
  <CustomerSocial>
    <Network>Facebook</Network>
    <PublicUserName>Marty McFly</PublicUserName>
    <CommunityScore>100</CommunityScore>
    <ProfilePicture>https://external-mxp1-1.xx.fbcdn.net/safe_image.php?d=AQCSnRebJp1o3AR9&w=264&h=264&url=http%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fit%2Fthumb%2F1%2F1d%2FMartyMcFly.JPG%2F720px-MartyMcFly.JPG&colorbox&f</ProfilePicture>
    <Email>martymcfly@backtothefuture.com</Email>
    <Bio>Martin Seamus "Marty" McFly is a fictional character in the Back to the Future trilogy. He is portrayed by actor Michael J. Fox.</Bio>
    <AccountUrl>https://www.facebook.com/pages/Marty-McFly/103151259725141?fref=ts&rf=105623692803833</AccountUrl>
    <Following>0</Following>
    <Followed>1157</Followed>
    <Id>103151259725141</Id>
    <AuthToken>eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...</AuthToken>
    <SocialData />
  </CustomerSocial>
  <ShippingAddress>
    <ProfileID />
    <FirstName>Michael</FirstName>
    <MiddleName>J.</MiddleName>
    <Lastname>Fox</Lastname>
    <Company>Universal Studios</Company>
    <StreetName>Holliwood Boulevard</StreetName>
    <StreetName2 />
    <HouseNumber>1432</HouseNumber>
    <HouseExtention />
    <City>Los Angeles</City>
    <ZipCode>90213</ZipCode>
    <State>California</State>
    <CountryCode>US</CountryCode>
    <Email>martymcfly@backtothefuture.com</Email>
    <PrimaryPhone>+0199332285321</PrimaryPhone>
    <SecondaryPhone />
  </ShippingAddress>
    <BillingAddress>
    <ProfileID />
    <FirstName>Michael</FirstName>
    <MiddleName>J.</MiddleName>
    <Lastname>Fox</Lastname>
    <Company>Universal Studios</Company>
    <StreetName>Holliwood Boulevard</StreetName>
    <StreetName2 />
    <HouseNumber>1432</HouseNumber>
    <HouseExtention />
    <City>Los Angeles</City>
    <ZipCode>90213</ZipCode>
    <State>California</State>
    <CountryCode>US</CountryCode>
    <Email>martymcfly@backtothefuture.com</Email>
    <PrimaryPhone>+0199332285321</PrimaryPhone>
    <SecondaryPhone />
  </BillingAddress>
  <ProductDetails>
    <ProductDetail><!-- first of 1...N products -->
      <ProductCode>135798642</ProductCode>
      <SKU>AB-333222-WFG-4</SKU>
      <Name>Porche Carrera scale model</Name>
      <Description>Porche Carrera scale model</Description>
      <Quantity>1</Quantity>
      <Price>50.5</Price>
      <UnitPrice>50.5</UnitPrice>
      <Type>1</Type><!-- 1: product -->
      <Vat>22%</Vat>
      <Discount />
      <Category>Scale Models</Category>
      <Subcategory>cars</Subcategory>
      <Brand>LittleCars</Brand>
      <RequiresShipping>true</RequiresShipping>
      <DeliveryAt>2017-12-29</DeliveryAt>
      <Condition>new</Condition>
      <Seller /><!-- relevant for marketplace orders --> 
    </ProductDetail>
    <ProductDetail>
      <ProductCode>135798642</ProductCode>
      <SKU>AB-333222-WFG-5</SKU>
      <Name>Ferrari scale model</Name>
      <Description>Ferrari scale model</Description>
      <Quantity>1</Quantity>
      <Price>50.5</Price>
      <UnitPrice>50.5</UnitPrice>
      <Type>1</Type><!-- 1: product -->
      <Vat>22%</Vat>
      <Discount />
      <Category>Scale Models</Category>
      <Subcategory>cars</Subcategory>
      <Brand>LittleCars</Brand>
      <RequiresShipping>true</RequiresShipping>
      <DeliveryAt>2017-12-29</DeliveryAt>
      <Condition>new</Condition>
      <Seller /><!-- relevant for marketplace orders -->
    </ProductDetail><!-- last of 1...N products -->
  </ProductDetails>
  <DiscountCodes>
    <DiscountCode><!-- one or more -->
      <Amount>10</Amount>
      <Code>53232</Code>
    </DiscountCode>
  </DiscountCodes>
  <ShippingLines>
    <ShippingLine>
      <Price>20</Price>
      <Title>FedEx</Title>
      <Code>72-B03</Code>
    </ShippingLine>
  </ShippingLines>
</OrderDetails>

OrderDetails tag contains all the info that can be sent together with a transaction. The more data you sent, the better is for Gestpay to analyze your request.

Many external systems, like the one presented in the next sections, use OrderDetails fields to work. Gestpay Guaranteed Payment (an antifraud system) massively uses OrderDetails to get the job done.

In this section we will analyze indipendently all the fields.

Field Max Size Type Description
FraudPrevention container Contains fields related to fraud prevention.
CustomerDetail container Contains customer data
CustomerSocial container if you have access to a customer’ social profile, you can also send this data
ShippingAddress container Contains shipping address
BillingAddress container contains the billing address
ProductDetails container contains one or more ProductDetails items buyed
DiscountCodes container contains one or more DiscountCodes, if discounts are applicable
ShippingLines container contains one or more ShippingLines, that contain the price and the shipping courier.

Children of FraudPrevention

Field Max Size Description
SubmitForReview 1 Flag to activate review over Gestpay Guaranteed Payment.
  • 0 no submit
  • 1 submit
If your active plan is Select&Submit you can decide which transaction must be submitted to Gestpay Guaranteed Payment setting the flag to 1. With Shop Protection all transactions are submitted for review by default.
OrderDateTime 10 Order date time. Format: YYYY-MM-DD
OrderNote 50 Buyer’s order note
Source 10 website, mobile
SubmissionReason 20 the underlying reason for submitting the order to review. It must be one of the following values:
  • failed_verification: order failed (phone, email) verification.
  • rule_decision: Order was flagged by an automatic rule.
  • third_party: Order was flagged by a third-party service.
  • manual_decision: Order was flagged after manual review.
  • policy_decision: order was flagged by a non-fraud related rule.
 This field must be sent either if the shop adheres to Shop Protection or Selct & Submit plan; if the plan is Shop Protection, the default is rule_decision.
BeaconSessionID 100 Session ID of the Beacon for this transaction. This value must be collected when the user first connects to your website and be sent to Gestpay Guaranteed Payment to analyze it. With this field, Gestpay Guaranteed Payment knows what actions the user did on your website.
VendorID 10 A unique ID representing the selling vendor; commonly the Gestpay shopLogin. Mandatory in case of different domain use.
VendorName 100 In case of multiple selling domains, this is the name of the selling vendor. Mandatory in case of different domain use.

Children of CustomerDetail

Field Max Size Description
ProfileID 12 Customer profile ID (reserved for future use)
MerchantCustomerID 50 Merchant customer ID (reserved for future use)
FirstName 65 Customer First Name
MiddleName 65 Customer Middle Name
Lastname 65 Customer Last name
PrimaryEmail 100 Customer primary email
SecondaryEmail 100 Customer secondary email
PrimaryPhone 20 Customer’s phone including prefix
SecondaryPhone 20 Customer’s phone including prefix
DateOfBirth 10 Customer Date of Birth (dd/mm/yyyy)
Gender 1 Customer Gender (0=Male 1=Female)
SocialSecurityNumber 20 Customer’s social or fiscal identifier (KlarnaUse)
Company 255 Customer Company
CreatedAtDate 10 Date of Customer creation on merchant site
VerifiedEmail 5 Email is verified? true/false
AccountType 20 free/premium etc

CustomerSocial field

If you have access to socal data of your customers, you can send them along with the other data.

Field Max Size Description
Network 12 The name of the social network.
PublicUserName 50 The customer’s public username.
CommunityScore 65 holds the score for networks where its relevant
ProfilePicture 65 URL of the customer’s profile picture
Email 65 Customer’s email address registered on the social network.
Bio 100 Short biography of the customer on the social network
AccountUrl 100 Direct URL to the customer’s profile page on the social network
Following 20 Direct URL to the customer’s profile page on the social network
Followed 20 Number of users followed by the customer on the social network.
Id 10 The customer’s profile id.
AuthToken 1 The authentication token of the user.
SocialData 20 Open field for additional data from the social network.

ShippingAddress and BillingAddress field

Field Max Size Description
ProfileID 12 Profile ID (reserved for future use)
FirstName 65 First Name
MiddleName 65 Middle Name
Lastname 65 Last name
Company 255 Company Name
StreetName 100 Shipping Street
Streetname2 100 Shipping Street second line
HouseNumber 5
HouseExtention 5
City 50 Shipping City
ZipCode 50 Shipping Zip Code
State 50 Shipping State
CountryCode 2 Alpha-2 code; for example, United States is “US”
Email 100 Shipping Contact Email
PrimaryPhone 20 Shipping Primary Phone
SecondaryPhone 20 Shipping Secondary Phone

 ProductDetails and ProductDetail field

ProductDetails will contain one or more ProductDetail.

ProductDetail describes a bought item.

Field Max Size Description
ProductCode 12 Article’s product Code
SKU 50 Article’s Stock Keeping Unit
Name 100 Article’s name
Description 255 Article’s description
Quantity 3 The number of products
Price 12 Article’s price
UnitPrice 12 Article’s Unit Price
Type 2 The type of article: 1-product, 2-shipping, 3-handling
Vat 2 Value-Added Tax (the value of the tax)
Discount 2 The amount offered by you as discount
Category Product Category
Subcategory Product Sub Category
Brand Product Brand
RequiresShipping true/false States whether or not the fulfillment requires shipping. This field is important for merchants dealing with digital goods.
DeliveryAt 10 The planned delivery date of the product or item.
Condition 100 Description of the physical condition of the item, mostly relevant for used items
Seller public_username Details about the seller of the item, relevant for marketplace orders.

DiscountCodes and DiscountCode fields

If you apply discounts for your products you should add discount info.

in DiscountCodes you may have one or more DiscountCode, that contain these fields:

Field Max Size Description
Amount 12 The amount of the discount.
Code 50 The code of the discount.

 ShippingLines and ShippingLine fields

With this fields you can define the price and the kind of shipping that you use for your products, if applicable.

Field Max Size Description
Price 12 The price of the shipping method.
Title 100 The title of the shipping method.
Code 50 Code of the shipping method.

Errors

Code Description
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 notified
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 Pin errato
417 Authorization denied
418 Network not available
419 Wrong transaction date
420 Wrong card date
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 qualified
437 Operation not allowed
438 Operation not allowed
950 Not qualified 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 P A Y1_SHOPTRANSACTIONID parameter
1116 Too long P A Y1_SHOPTRANSACTIONID parameter
1117 Invalid language identifier
1118 Not numeric characters in credit card number
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
1153 GestPay failed to verify if the card is enrolled to VBV service
1154 Not accepterd call: missing parameter TransKey
1160 Wrong CustomToken length
1161 Wrong CustomToken digits number
1162 CustomToken with illegal characters
1163 CustomToken used for another card
1164 Expired Token
1165 Token not found
1200 No match between ABI code and BankPass Banks
1201 BankPass Transaction abandoned by buyer
1202 BankPass - Buyer login failed
1203 BankPass - no payment methods available
1204 BankPass - technical error
1205 BankPass Server-Server: URL Return must be set
1206 BankPass Server-Server: too long URL Return (max 250 char)
1207 BankPass Server-Server: invalid URL Return (it must begin with http:// or https://)
1208 BankPass Server-Server: URL Return parameter missing
1209 BankPass Server-Server: IDBankPass must be set
1210 BankPass Server-Server: invalid IDBankPass
1300 Shipping Address Country Error
1301 Shipping Address1 Empty
1302 Shipping Address City Empty
1303 Shipping Address State Empty
1304 Shipping Address Postal Code Empty
1305 Shipping Address Country Empty
1306 Shipping Address Invalid City State Postal Code
1987 Technical error
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 Transaction can not be deleted
2018 Transaction can not be refunded
2019 Transaction can not be settled
2020 Transaction can not be renounced
2030 Due to RED configuration, transaction is sent to credit card companies, even if 3d-Secure authentication is failed
4001 Unexpected parameter value
4002 Not numeric parameter value
4100 Operation not allowed
4101 Credit card number with wrong length
4102 Amount not available
4103 Technical error
4104 Technical error
4105 Technical
4106 Technical
4108 Technical error in connection with Credit Card Company network error
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
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 qualified
4704 Amount not available
4705 Technical error in connection with Credit Card Company network
4706 Technical error in connection with Credit Card Company network
4707 Transaction already processed
4708 MyBank: communication with the buyer’s Bank failed
4709 Ideal: communication with the buyer’s Bank failed
4710 PayPal Error
4720 Rate in Rete: communication with Consel failed
4730 C-pay: communication with Compass failed
4731 Not authorized transaction by Compass
7400 Authorization denied
7401 Authorization refused by credit card companies
7402 Card not qualified
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 Service interrupted at 01/01/2002
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
8009 Payment interrupted
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
8017 File waiting to be processed
8018 File correctly processed
8021 Feature disable for MASTERCARD credit card
8022 Feature disable for JCB credit card
8023 Feature disabled for MAESTRO cards
8888 UP Mobile Payment
9991 Browser not supported
9992 Error creating iFrame
9997 Phase with error
9998 Phase correctly ended
9999 System Error

Payment Type Codes

Description PaymentType
ALIPAY S2PALI
APPLEPAY APPLEPAY
BANCONTACT BANCONTACT
BITCOIN S2PBIT
CARDSRUSSIA S2PCRU
CASHU CASHU
COMPASS C-PAY COMPASS
CONSEL RATE IN RETE CONSEL
CREDIT CARDS CREDITCARD
EPS S2PEPS
GIROPAY S2PGIR
HYPE HYPE
IDEAL S2PIDE
IDEAL (Direct) IDEAL
KLARNA S2PKLA
KONBINI S2PKON
MASTERPASS MASTERPASS
MERCADOPAGO S2PMER
MULTIBANCO S2PMUL
MYBANK MYBANK
ONECARD ONECARD
PAYPAL PAYPAL
PAYSAFECARD S2PPSC
QIWI S2PQIW
SOFORT S2PSOF
SOFORT (Direct) SOFORT
TENPAY S2PTEN
TIM TIMPERSONAL
TRUSTPAY TRUSTPAY
UNIONPAY S2PUNI
WEBMONEY S2PWMO
YANDEX S2PYAN

For more informations about payment types, read the docs.

Currency Codes

Currency codes are handled by GestPay using the currency attribute.

UIC code ISO code ISO number Description
187 AED 784 United Arab Emirates dirham
109 AUD 36 Australian dollar
262 BGN 975 Bulgarian lev
234 BRL 986 Brazilian real
12 CAD 124 Canadian dollar
3 CHF 756 Swiss franc
144 CNY 156 Chinese yuan
223 CZK 203 Czech koruna
7 DKK 208 Danish krone
242 EUR 978 Euro
2 GBP 826 Pound sterling
103 HKD 344 Hong Kong dollar
229 HRK 191 Croatian kuna
153 HUF 348 Hungarian forint
123 IDR 360 Indonesian rupiah
203 ILS 376 Israeli new shekel
31 INR 356 Indian rupee
62 ISK 352 Icelandic króna
71 JPY 392 Japanese yen
119 KRW 410 South Korean won
55 MYR 458 Malaysian ringgit
81 NGN 566 Nigerian naira
8 NOK 578 Norwegian krone
113 NZD 554 New Zealand dollar
66 PHP 608 Philippine peso
26 PKR 586 Pakistani rupee
237 PLN 985 Polish złoty
270 RON 946 Romanian leu
244 RUB 643 Russian ruble
75 SAR 682 Saudi riyal
9 SEK 752 Swedish krona/kronor
124 SGD 702 Singapore dollar
73 THB 764 Thai baht
267 TRY 949 Turkish lira
143 TWD 901 New Taiwan dollar
241 UAH 980 Ukrainian hryvnia
1 USD 840 United States dollar
145 VND 704 Vietnamese đồng
82 ZAR 710 South African rand

Paypal Country Codes

You can find all the Country Codes that are supported by Paypal at this link and are also reported here for simplicity.

Country or Region Supported Country or Region Code
ALBANIA AL
ALGERIA DZ
ANDORRA AD
ANGOLA AO
ANGUILLA AI
ANTIGUA & BARBUDA AG
ARGENTINA AR
ARMENIA AM
ARUBA AW
AUSTRALIA AU
AUSTRIA AT
AZERBAIJAN AZ
BAHAMAS BS
BAHRAIN BH
BARBADOS BB
BELARUS BY
BELGIUM BE
BELIZE BZ
BENIN BJ
BERMUDA BM
BHUTAN BT
BOLIVIA BO
BOSNIA & HERZEGOVINA BA
BOTSWANA BW
BRAZIL BR
BRITISH VIRGIN ISLANDS VG
BRUNEI BN
BULGARIA BG
BURKINA FASO BF
BURUNDI BI
CAMBODIA KH
CAMEROON CM
CANADA CA
CAPE VERDE CV
CAYMAN ISLANDS KY
CHAD TD
CHILE CL
CHINA CN (For domestic Chinese bank transactions only)
CHINA WORLDWIDE C2 (For CUP, bank card and cross-border transactions)
COLOMBIA CO
COMOROS KM
CONGO - BRAZZAVILLE CG
CONGO - KINSHASA CD
COOK ISLANDS CK
COSTA RICA CR
CÔTE D’IVOIRE CI
CROATIA HR
CYPRUS CY
CZECH REPUBLIC CZ
DENMARK DK
DJIBOUTI DJ
DOMINICA DM
DOMINICAN REPUBLIC DO
ECUADOR EC
EGYPT EG
EL SALVADOR SV
ERITREA ER
ESTONIA EE
ETHIOPIA ET
FALKLAND ISLANDS FK
FAROE ISLANDS FO
FIJI FJ
FINLAND FI
FRANCE FR
FRENCH GUIANA GF
FRENCH POLYNESIA PF
GABON GA
GAMBIA GM
GEORGIA GE
GERMANY DE
GIBRALTAR GI
GREECE GR
GREENLAND GL
GRENADA GD
GUADELOUPE GP
GUATEMALA GT
GUINEA GN
GUINEA-BISSAU GW
GUYANA GY
HONDURAS HN
HONG KONG SAR CHINA HK
HUNGARY HU
ICELAND IS
INDIA IN
INDONESIA ID
IRELAND IE
ISRAEL IL
ITALY IT
JAMAICA JM
JAPAN JP
JORDAN JO
KAZAKHSTAN KZ
KENYA KE
KIRIBATI KI
KUWAIT KW
KYRGYZSTAN KG
LAOS LA
LATVIA LV
LESOTHO LS
LIECHTENSTEIN LI
LITHUANIA LT
LUXEMBOURG LU
MACEDONIA MK
MADAGASCAR MG
MALAWI MW
MALAYSIA MY
MALDIVES MV
MALI ML
MALTA MT
MARSHALL ISLANDS MH
MARTINIQUE MQ
MAURITANIA MR
MAURITIUS MU
MAYOTTE YT
MEXICO MX
MICRONESIA FM
MOLDOVA MD
MONACO MC
MONGOLIA MN
MONTENEGRO ME
MONTSERRAT MS
MOROCCO MA
MOZAMBIQUE MZ
NAMIBIA NA
NAURU NR
NEPAL NP
NETHERLANDS NL
NEW CALEDONIA NC
NEW ZEALAND NZ
NICARAGUA NI
NIGER NE
NIGERIA NG
NIUE NU
NORFOLK ISLAND NF
NORWAY NO
OMAN OM
PALAU PW
PANAMA PA
PAPUA NEW GUINEA PG
PARAGUAY PY
PERU PE
PHILIPPINES PH
PITCAIRN ISLANDS PN
POLAND PL
PORTUGAL PT
QATAR QA
RÉUNION RE
ROMANIA RO
RUSSIA RU
RWANDA RW
SAMOA WS
SAN MARINO SM
SÃO TOMÉ & PRÍNCIPE ST
SAUDI ARABIA SA
SENEGAL SN
SERBIA RS
SEYCHELLES SC
SIERRA LEONE SL
SINGAPORE SG
SLOVAKIA SK
SLOVENIA SI
SOLOMON ISLANDS SB
SOMALIA SO
SOUTH AFRICA ZA
SOUTH KOREA KR
SPAIN ES
SRI LANKA LK
ST. HELENA SH
ST. KITTS & NEVIS KN
ST. LUCIA LC
ST. PIERRE & MIQUELON PM
ST. VINCENT & GRENADINES VC
SURINAME SR
SVALBARD & JAN MAYEN SJ
SWAZILAND SZ
SWEDEN SE
SWITZERLAND CH
TAIWAN TW
TAJIKISTAN TJ
TANZANIA TZ
THAILAND TH
TOGO TG
TONGA TO
TRINIDAD & TOBAGO TT
TUNISIA TN
TURKMENISTAN TM
TURKS & CAICOS ISLANDS TC
TUVALU TV
UGANDA UG
UKRAINE UA
UNITED ARAB EMIRATES AE
UNITED KINGDOM GB
UNITED STATES US
URUGUAY UY
VANUATU VU
VATICAN CITY VA
VENEZUELA VE
VIETNAM VN
WALLIS & FUTUNA WF
YEMEN YE
ZAMBIA ZM
ZIMBABWE ZW

Paypal State & Province Codes

Paypal state codes can be found at this link.

Here are reported for simplicity.

Note: Some of the following tables list only the State or Province name and do not include a State or Province code. For these countries, use the spelling of the State or Province name exactly as it is written in the table.

Countries that use State Codes:

Argentina

Province Name Province Code
Buenos Aires (Ciudad) CIUDAD AUTÓNOMA DE BUENOS AIRES
Buenos Aires (Provincia) BUENOS AIRES
Catamarca CATAMARCA
Chaco CHACO
Chubut CHUBUT
Corrientes CORRIENTES
Córdoba CÓRDOBA
Entre Ríos ENTRE RÍOS
Formosa FORMOSA
Jujuy JUJUY
La Pampa LA PAMPA
La Rioja LA RIOJA
Mendoza MENDOZA
Misiones MISIONES
Neuquén NEUQUÉN
Río Negro RÍO NEGRO
Salta SALTA
San Juan SAN JUAN
San Luis SAN LUIS
Santa Cruz SANTA CRUZ
Santa Fe SANTA FE
Santiago del Estero SANTIAGO DEL ESTERO
Tierra del Fuego TIERRA DEL FUEGO
Tucumán TUCUMÁN

Brazil

State Name State Code
Acre AC
Alagoas AL
Amapá AP
Amazonas AM
Bahia BA
Ceará CE
Distrito Federal DF
Espírito Santo ES
Goiás GO
Maranhão MA
Mato Grosso MT
Mato Grosso do Sul MS
Minas Gerais MG
Paraná PR
Paraíba PB
Pará PA
Pernambuco PE
Piauí PI
Rio Grande do Norte RN
Rio Grande do Sul RS
Rio de Janeiro RJ
Rondônia RO
Roraima RR
Santa Catarina SC
Sergipe SE
São Paulo SP
Tocantins TO

Canada

Province Name Province Code
Alberta AB
British Columbia BC
Manitoba MB
New Brunswick NB
Newfoundland and Labrador NL
Northwest Territories NT
Nova Scotia NS
Nunavut NU
Ontario ON
Prince Edward Island PE
Quebec QC
Saskatchewan SK
Yukon YT

India

State Name State Code
Andaman and Nicobar Islands Andaman and Nicobar Islands
Andhra Pradesh Andhra Pradesh
Army Post Office APO
Arunachal Pradesh Arunachal Pradesh
Assam Assam
Bihar Bihar
Chandigarh Chandigarh
Chhattisgarh Chhattisgarh
Dadra and Nagar Haveli Dadra and Nagar Haveli
Daman and Diu Daman and Diu
Goa Goa
Gujarat Gujarat
Haryana Haryana
Himachal Pradesh Himachal Pradesh
Jammu and Kashmir Jammu and Kashmir
Jharkhand Jharkhand
Karnataka Karnataka
Kerala Kerala
Lakshadweep Lakshadweep
Madhya Pradesh Madhya Pradesh
Maharashtra Maharashtra
Manipur Manipur
Meghalaya Meghalaya
Mizoram Mizoram
Nagaland Nagaland
National Capital Territory of Delhi Delhi (NCT)
Odisha Odisha
Puducherry Puducherry
Punjab Punjab
Rajasthan Rajasthan
Sikkim Sikkim
Tamil Nadu Tamil Nadu
Telangana Telangana
Tripura Tripura
Uttar Pradesh Uttar Pradesh
Uttarakhand Uttarakhand
West Bengal West Bengal

Italy

Province Name Province Code
Agrigento AG
Alessandria AL
Ancona AN
Aosta AO
Arezzo AR
Ascoli Piceno AP
Asti AT
Avellino AV
Bari BA
Barletta-Andria-Trani BT
Belluno BL
Benevento BN
Bergamo BG
Biella BI
Bologna BO
Bolzano BZ
Brescia BS
Brindisi BR
Cagliari CA
Caltanissetta CL
Campobasso CB
Carbonia-Iglesias CI
Caserta CE
Catania CT
Catanzaro CZ
Chieti CH
Como CO
Cosenza CS
Cremona CR
Crotone KR
Cuneo CN
Enna EN
Fermo FM
Ferrara FE
Firenze FI
Foggia FG
Forlì-Cesena FC
Frosinone FR
Genova GE
Gorizia GO
Grosseto GR
Imperia IM
Isernia IS
L'Aquila AQ
La Spezia SP
Latina LT
Lecce LE
Lecco LC
Livorno LI
Lodi LO
Lucca LU
Macerata MC
Mantova MN
Massa-Carrara MS
Matera MT
Medio Campidano VS
Messina ME
Milano MI
Modena MO
Monza e della Brianza MB
Napoli NA
Novara NO
Nuoro NU
Ogliastra OG
Olbia-Tempio OT
Oristano OR
Padova PD
Palermo PA
Parma PR
Pavia PV
Perugia PG
Pesaro e Urbino PU
Pescara PE
Piacenza PC
Pisa PI
Pistoia PT
Pordenone PN
Potenza PZ
Prato PO
Ragusa RG
Ravenna RA
Reggio Calabria RC
Reggio Emilia RE
Rieti RI
Rimini RN
Roma RM
Rovigo RO
Salerno SA
Sassari SS
Savona SV
Siena SI
Siracusa SR
Sondrio SO
Taranto TA
Teramo TE
Terni TR
Torino TO
Trapani TP
Trento TN
Treviso TV
Trieste TS
Udine UD
Varese VA
Venezia VE
Verbano-Cusio-Ossola VB
Vercelli VC
Verona VR
Vibo Valentia VV
Vicenza VI
Viterbo VT

Japan

Prefecture Name Prefecture Code
Aichi AICHI-KEN
Akita AKITA-KEN
Aomori AOMORI-KEN
Chiba CHIBA-KEN
Ehime EHIME-KEN
Fukui FUKUI-KEN
Fukuoka FUKUOKA-KEN
Fukushima FUKUSHIMA-KEN
Gifu GIFU-KEN
Gunma GUNMA-KEN
Hiroshima HIROSHIMA-KEN
Hokkaido HOKKAIDO
Hyogo HYOGO-KEN
Ibaraki IBARAKI-KEN
Ishikawa ISHIKAWA-KEN
Iwate IWATE-KEN
Kagawa KAGAWA-KEN
Kagoshima KAGOSHIMA-KEN
Kanagawa KANAGAWA-KEN
Kochi KOCHI-KEN
Kumamoto KUMAMOTO-KEN
Kyoto KYOTO-FU
Mie MIE-KEN
Miyagi MIYAGI-KEN
Miyazaki MIYAZAKI-KEN
Nagano NAGANO-KEN
Nagasaki NAGASAKI-KEN
Nara NARA-KEN
Niigata NIIGATA-KEN
Oita OITA-KEN
Okayama OKAYAMA-KEN
Okinawa OKINAWA-KEN
Osaka OSAKA-FU
Saga SAGA-KEN
Saitama SAITAMA-KEN
Shiga SHIGA-KEN
Shimane SHIMANE-KEN
Shizuoka SHIZUOKA-KEN
Tochigi TOCHIGI-KEN
Tokushima TOKUSHIMA-KEN
Tokyo TOKYO-TO
Tottori TOTTORI-KEN
Toyama TOYAMA-KEN
Wakayama WAKAYAMA-KEN
Yamagata YAMAGATA-KEN
Yamaguchi YAMAGUCHI-KEN
Yamanashi YAMANASHI-KEN

Mexico

State Name State Code
Aguascalientes AGS
Baja California BC
Baja California Sur BCS
Campeche CAMP
Chiapas CHIS
Chihuahua CHIH
Coahuila COAH
Colima COL
Distrito Federal DF
Durango DGO
Estado de México MEX
Guanajuato GTO
Guerrero GRO
Hidalgo HGO
Jalisco JAL
Michoacán MICH
Morelos MOR
Nayarit NAY
Nuevo León NL
Oaxaca OAX
Puebla PUE
Querétaro QRO
Quintana Roo Q ROO
San Luis Potosí SLP
Sinaloa SIN
Sonora SON
Tabasco TAB
Tamaulipas TAMPS
Tlaxcala TLAX
Veracruz VER
Yucatán YUC
Zacatecas ZAC

Thailand

Province Name
Amnat Charoen
Ang Thong
Bangkok
Bueng Kan
Buri Ram
Chachoengsao
Chai Nat
Chaiyaphum
Chanthaburi
Chiang Mai
Chiang Rai
Chon Buri
Chumphon
Kalasin
Kamphaeng Phet
Kanchanaburi
Khon Kaen
Krabi
Lampang
Lamphun
Loei
Lop Buri
Mae Hong Son
Maha Sarakham
Mukdahan
Nakhon Nayok
Nakhon Pathom
Nakhon Phanom
Nakhon Ratchasima
Nakhon Sawan
Nakhon Si Thammarat
Nan
Narathiwat
Nong Bua Lamphu
Nong Khai
Nonthaburi
Pathum Thani
Pattani
Phang Nga
Phatthalung
Phatthaya
Phayao
Phetchabun
Phetchaburi
Phichit
Phitsanulok
Phra Nakhon Si Ayutthaya
Phrae
Phuket
Prachin Buri
Prachuap Khiri Khan
Ranong
Ratchaburi
Rayong
Roi Et
Sa Kaeo
Sakon Nakhon
Samut Prakan
Samut Sakhon
Samut Songkhram
Saraburi
Satun
Si Sa Ket
Sing Buri
Songkhla
Sukhothai
Suphan Buri
Surat Thani
Surin
Tak
Trang
Trat
Ubon Ratchathani
Udon Thani
Uthai Thani
Uttaradit
Yala
Yasothon

United States

State Name State Code
Alabama AL
Alaska AK
Arizona AZ
Arkansas AR
California CA
Colorado CO
Connecticut CT
Delaware DE
District of Columbia DC
Florida FL
Georgia GA
Hawaii HI
Idaho ID
Illinois IL
Indiana IN
Iowa IA
Kansas KS
Kentucky KY
Louisiana LA
Maine ME
Maryland MD
Massachusetts MA
Michigan MI
Minnesota MN
Mississippi MS
Missouri MO
Montana MT
Nebraska NE
Nevada NV
New Hampshire NH
New Jersey NJ
New Mexico NM
New York NY
North Carolina NC
North Dakota ND
Ohio OH
Oklahoma OK
Oregon OR
Pennsylvania PA
Puerto Rico PR
Rhode Island RI
South Carolina SC
South Dakota SD
Tennessee TN
Texas TX
Utah UT
Vermont VT
Virginia VA
Washington WA
West Virginia WV
Wisconsin WI
Wyoming WY

Armed Forces APO

State Name State Code
Armed Forces Americas AA
Armed Forces Europe AE
Armed Forces Pacific AP

Outlying Areas

State Name State Code
American Samoa AS
Federated States of Micronesia FM
Guam GU
Marshall Islands MH
Northern Mariana Islands MP
Palau PW
Virgin Islands VI

Language Codes

The language code is handled by GestPay using the Language attribute.

Code Description
1 Italian
2 English
3 Spanish
4 Franch
5 German

Alert Codes

Alert Codes are described at Better Risk Management: reacting to suspicious activity.

Code Description
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

AlertDescrptions is also available in other languages.