PaymentsME
Merchant Integration Guide
B. CHANGE HISTORY
C. APPROVALS
1. Overview
2. Logical Components
3. Communication Protocol Specification – Direct API integration
4. TRANSACTIONS
5. Purchase Transaction (Action Code – 1)
6. Refund / Credit Transaction (Action Code – 2)
7. Pre-Authorization Transaction (Action Code – 4)
8. Capture Transaction (Action Code – 5)
9. Void Pre-Authorization Transaction (Action Code – 9)
10. 3D-Secure Integration
10.1 3D Secure Verification
10.2 Transaction Details
11. Recurring
Tokenization
Other flows
12. PG HOSTED- 3D SECURE
12.1 ‘Pay Now’ button code
12.2 VARIABLES
12.3 3D Secure PG Hosted Page Sample
12.4 Authentication 3D Secure
13. Special characters accepted by PG
14. Appendix A – Action Codes
15. Appendix B – Currency Codes
16. Appendix C – Country Codes
17. Appendix D – Response Codes
Downlaod this full page as PDF
A. DOCUMENT VERSION
This section lists the details of reviews for this document:
Version No. | Prepared by | Role | Comments | Date |
1.0 | Neha Kheddo | Testing Engineer |
Merchant Integration | 09/03/2017 |
1.0 | Rigvi Bansoodeb | Testing Engineer |
Merchant Integration | 09/03/2017 |
B. CHANGE HISTORY
This section details the changes this document has undergone:
Version No. | Details of Change | Changed Sections | Date |
1.0 | Base Version | Merchant Integration | 09/03/2017 |
1.1 | Recurring | 28/04/2017 | |
1.4 | User Define fields added for 3d Transaction |
3D-Secure Integration | 21/07/2017 |
1.5 | Remove blank udf5 from request Transaction |
Request Example | 15/09/2015 |
C. APPROVALS
Name | Team | Date | |
Prepared by | Neha Kheddo | SoftConnect Ltd | 09/03/2017 |
Prepared by | Rigvi Bansoodeb | SoftConnect Ltd | 09/03/2017 |
Verified by | Treshwar Coorjee Visram | SoftConnect Ltd | 16/06/2017 |
Approved by | Treshwar Coorjee Visram | SoftConnect Ltd | 16/06/2017 |
Changed by | Nagarajan Ramsasamy | SoftConnect Ltd | 21/07/2017 |
Changed by | Nagarajan Ramsasamy | SoftConnect Ltd | 15/09/2017 |
1. Overview
Vistamoney is a PCI-DSS compliant platform with the ability to support strong data encryption for secure transactions. The target of Vistamoney is to keep the merchants’ online e-commerce business up and running by applying simple integration methods and by offering advanced payment technology with high end risk management solutions.
This document is intended for programmers responsible for the merchant payment gateway interface. It describes the interface that merchant systems use to process the e-commerce transactions by means of standard form posting method. This interface supports various integration methods as Transport method.
2. Logical Components
Vistamoney payment gateway exchanges data between merchant and gateway in the form of Request and Response.
The following diagram explains the components involved in the process:
A Merchant integrated with the Gateway initiates the transaction by sending request to gateway by HTTPS POST method. The Gateway sends back the response over the same socket to the merchant. Response time depends on the acquiring bank / acquiring gateway processing with the interbank networks.
Request/Response process is identified by a set of XML message fields which provides the transaction interface between the merchant and the Vistamoney payment gateway. Each integration URL will be provided along with the integration document to the merchant.
We recommend to timeout the request connection after 30 seconds.
3. Communication Protocol Specification – Direct API integration
Protocol: https
Method: Post in REST
LIVE URL: https://vistamoney.info/paymentgateway/payments/performXmlTransaction
TEST URL: https://test.vistamoney.info/paymentgateway/payments/performXmlTransaction
Content-Type: URL Encoded
We use application/xml;charset=utf-8content type.
Encryption Level: SSL Version 3.0
As an example – The following XML message can be sent by the merchant as one of the permitted service requests by means of HTTPS RESTFULL Post method:
<?xml version='1.0' encoding='ISO-8859-1' ?>
<request>
<terminalid>Term1</terminalid>
<password>password</password>
<action>1</action>
<card>4444444444444444</card>
<cvv2>115</cvv2>
<expYear>2012</expYear>
<expMonth>12</expMonth>
<member>Test User</member>
<currencyCode>USD</currencyCode>
<address>Ebene</address>
<city>MOKA</city>
<statecode>MOKA</statecode>
<zip>152458</zip>
<CountryCode>Mauritius</CountryCode>
<email>[email protected]</email>
<amount>1.25</amount>
<trackid>soft1256</trackid>
<udf1></udf1>
<udf2></udf2>
<udf3></udf3>
<udf4></udf4>
</request>
4. TRANSACTIONS
Request and response message data exchange depends on the following factors:
- Each request sent by the merchant will get a response from the gateway on the same socket or the connection will be closed by the timeout of either the Gateway or the merchant;
- The request and response have fields that provide authorization and authentication on both sides;
- Request and response messages have some matching fields to maintain consistency between two interacted parties;
- Every requested service has exact set of request and response fields.
There are several transactions Vistamoney payment gateway provides to the merchants within the scope of current version.
Transaction | Action Code |
Purchase Transaction | 1 |
Refund / Credit Transaction | 2 |
Pre-Authorization Transaction | 4 |
Capture Transaction | 5 |
Void Pre-Authorization Transaction | 9 |
5. Purchase Transaction (Action Code – 1)
Purchase transaction is an operation of debiting the cardholder’s account.
XML Request for Purchase:
<request>
<terminalid>Term1</terminalid>
<password>password</password>
<action>4</action>
<card>4444444444444444</card>
<cvv2>310</cvv2>
<expYear>2017</expYear>
<expMonth>12</expMonth>
<member>Test user</member>
<currencyCode>USD</currencyCode>
<address> Test address</address>
<city> Test </city>
<statecode>MNK</statecode>
<zip>45638</zip>
<CountryCode>US</CountryCode>
<amount>2.00</amount>
<trackid> Test </trackid>
<email>[email protected]</email</email>
</request>
XML Response:
<?xml version="1.0" encoding="UTF-8"?>
<response><result>Successful</result><responsecode>000</responsecode><authcode></authcode><RRN>
</RRN><ECI></ECI><tranid>2584589010416223482</tranid><trackid>Test</trackid><terminalid>
Term1</terminalid><udf1></udf1><udf2></udf2><udf3></udf3><udf4></udf4><udf5>Transaction Successful -
Transaction Status : Approved Description : 0: Approved | </udf5></response>
The transaction request should include the following fields:
Field Name | Data Type |
Field |
Mandatory/ Optional |
Description |
Terminal ID | AN |
10 |
Mandatory | Field indicates the unique terminal ID provided by the Gateway administrator. This field helps identify the merchant on the gateway. |
password | AN |
15 |
Mandatory | Field indicates the password associated with the terminal ID provided to the merchant. It is required in order to authenticate the merchant on the gateway. |
action | N |
2 |
Mandatory | Field indicates the transaction service action code for processing the transaction. Refer to Appendix A for valid action codes. |
card | N |
19 |
Mandatory | Credit card number involved in the transaction. Required for purchase and pre-authorization transactions. |
CVV2 | N |
3 |
Conditional | Card Verification Value (security code) provided with the card. Required for purchase and pre- authorization transactions. |
expYear | N |
4 |
Conditional | Credit card expiration year. It should be in YYYY format (2016). Required for purchase and pre- authorization transactions. |
expMonth | N |
2 |
Conditional | Credit card expiration month. 2 digit number from 01 to 12. Required for purchase and pre- authorization transactions. |
member | A |
40 |
Conditional | Full Name of the card holder. Required for purchase and pre-authorization transactions. |
Currency | Alphabetic currency code of the transaction. | |||
Code | A |
3 |
Mandatory | Refer to Appendix B for valid currency codes |
address | AN |
50 |
Optional | Customer’s address. This field is mandatory if AVS check is enabled. |
city | AN |
30 |
Optional | Customer’s city. This field is mandatory if AVS check is enabled. |
State Code | AN |
30 |
Optional | Customer’s state. This field is mandatory if AVS check is enabled. |
zip | AN |
20 |
Optional | Customer’s Postal code. This field is mandatory if AVS check is enabled. |
Country Code | AN |
30 |
Mandatory | Customer’s Country. This field is mandatory if AVS check is enabled. Refer to Appendix C for valid country Codes. |
AN |
30 |
Mandatory | Customer’s email address. | |
amount | N |
12 |
Mandatory | Amount of the transaction with or without decimal points, i.e. 2.25 or 2 |
Merchant Track ID |
AN |
50 |
Mandatory | Unique merchant tracking ID provided by the merchant when sending a transaction request to identify the transaction on the gateway. Avoid using space and special characters. |
Merchant IP | N |
15 |
Optional | IP address of the merchant’s system from which the transaction is generated. |
Customer IP | N |
15 |
Optional | IP address of the customer’s system from which the transaction is generated. |
udf1 | AN |
30 |
Optional | User defined field1. User can provide additional information which will be stored on the gateway. |
udf2 | AN |
30 |
Optional | User defined field2. User can provide additional information which will be stored on the gateway. |
udf3 | AN |
30 |
Optional | User defined field3. User can provide additional information which will be stored on the gateway. |
udf4 | AN |
30 |
Optional | User defined field4. User can provide addition information which will be stored on the gateway. |
udf5 | AN |
30 |
Reserved | It is reserved to receive additional information for the response code from some acquirers. |
6. Refund / Credit Transaction (Action Code – 2)
Refund transaction is an operation to credit back the funds onto customer’s card account. Merchant can refund any amount which has been debited by the previously successful purchase or capture transactions.
XML Request for Refund:
<request>
<terminalid>Term1</terminalid>
<password>password</password>
<action>2</action>
<currencyCode>USD</currencyCode>
<CountryCode>US</CountryCode>
<amount>2.00</amount>
<transid>0035245601821955669</transid>
<trackid>test</trackid>
</request>
XML Response:
<?xml version="1.0" encoding="UTF-
8"?><response><result>Successful</result><responsecode>000</responsecode><authcode></authcode><RRN>
</RRN><ECI></ECI><tranid>2922627518652618877</tranid><trackid>test</trackid><terminalid>
Term1</terminalid><udf1></udf1><udf2></udf2><udf3></udf3><udf4></udf4><udf5>Transaction Successful -
Transaction Status : Approved Description : 0: Approved | </udf5></response>
The transaction request should include the following fields:
Field Name | Data Type |
Field Maximum Length |
Mandatory/ Optional |
Description |
Terminal ID | AN |
10 |
Mandatory | Field indicates the unique terminal ID provided by the Gateway administrator. This field helps identify the merchant on the gateway. |
password | AN |
15 |
Mandatory | Field indicates the password associated with the terminal ID provided to the merchant. It is required in order to authenticate the merchant on the gateway. |
action | N |
2 |
Mandatory | Field indicates the transaction service action code for processing the transaction. Refer to Appendix A for valid action codes. |
Currency Code |
A |
3 |
Mandatory | Alphabetic currency code of the original transaction. Refer to Appendix B for valid currency codes. |
amount | N |
12 |
Mandatory | Amount of the transaction with or without decimal points, i.e. 2.25 or 2. |
Merchant Track ID |
AN |
25 |
Mandatory | Unique merchant tracking ID provided by the merchant in the original Purchase/ Pre- Authorisation. |
Tran Message ID |
AN |
50 |
Mandatory | Original transaction reference number provided by the gateway in the original Purchase/ Pre- Authorisation transaction. |
Merchant IP | N |
15 |
Optional | IP address of the merchant’s system from which the transaction is generated. |
Customer IP | N |
15 |
Optional | IP address of the customer’s system from which the transaction is generated |
udf1 | AN |
30 |
Optional | User defined field1. User can provide additional information which will be stored on the gateway. |
udf2 | AN |
30 |
Optional | User defined field2. User can provide additional information which will be stored on the gateway. |
udf3 | AN |
30 |
Optional | User defined field3. User can provide addition information, which will stored on the gateway |
udf4 | AN |
30 |
Optional | User defined field4. User can provide additional information which will be stored on the gateway. |
udf5 | AN |
30 |
Reserved | It is reserved to receive additional information for the response code from some acquirers. |
7. Pre-Authorization Transaction (Action Code – 4)
Pre-Authorization transaction is an authorization of payment on card. In case of successful authorization, the transaction amount will be frozen on customers account without debiting.
XML Request for Pre-Authorization:
<request>
<terminalid>Term1</terminalid>
<password>password</password>
<action>4</action>
<card>4444444444444444</card>
<cvv2>310</cvv2>
<expYear>2017</expYear>
<expMonth>12</expMonth>
<member>test user</member>
<currencyCode>USD</currencyCode>
<address> test address</address>
<city> test </city>
<statecode>MNK</statecode>
<zip>45638</zip>
<CountryCode>US</CountryCode>
<amount>2.00</amount>
<trackid> test </trackid>
<email>[email protected]</email>
</request>
XML Response:
<?xml version="1.0" encoding="UTF-
8"?><response><result>Successful</result><responsecode>000</responsecode><authcode></authcode><RRN>
</RRN><ECI></ECI><tranid>5868885818957796198</tranid><trackid>test</trackid><terminalid>
Term1</terminalid><udf1></udf1><udf2></udf2><udf3></udf3><udf4></udf4><udf5>Transaction Successful - Transaction Status : Approved Description : 0: Approved | </udf5></response>
The transaction request should include the following fields:
Field Name | Data Type |
Field |
Mandatory/ Optional |
Description |
Terminal ID | AN |
10 |
Mandatory | Field indicates the unique terminal ID provided by the Gateway administrator. This field helps identify the merchant on the gateway. |
password | AN |
15 |
Mandatory | Field indicates the password associated with the terminal ID provided to the merchant. It is required in order to authenticate the merchant on the gateway. |
action | N |
2 |
Mandatory | Field indicates the transaction service action code for processing the transaction. Refer to Appendix A for valid action codes. |
card | N |
19 |
Mandatory | Credit card number involved in the transaction. Required for purchase and pre-authorization transactions. |
CVV2 | N |
3 |
Conditional | Card Verification Value (security code) provided with the card. Required for purchase and pre- authorization transactions. |
expYear | N |
4 |
Conditional | Credit card expiration year. It should be in YYYY format (2016). Required for purchase and pre- authorization transactions. |
expMonth | N |
2 |
Conditional | Credit card expiration month. 2 digit number from 01 to 12. Required for purchase and pre- authorization transactions. |
member | A |
40 |
Conditional | Full Name of the card holder. Required for purchase and pre-authorization transactions. |
Currency | Alphabetic currency code of the transaction. | |||
Code | A |
3 |
Mandatory | Refer to Appendix B for valid currency codes. |
address | AN |
25 |
Optional | Customer’s address. This field is mandatory if AVS check is enabled. |
City | AN |
20 |
Optional | Customer’s city. This field is mandatory if AVS check is enabled. |
State Code | AN |
20 |
Optional | Customer’s state. This field is mandatory if AVS check is enabled. |
Zip | AN |
10 |
Optional | Customer’s Postal code. This field is mandatory if AVS check is enabled. |
Country Code | AN |
20 |
Mandatory | Customer’s Country. This field is mandatory if
AVS check is enabled. Refer to Appendix C for valid country Codes. |
AN |
30 |
Mandatory | Customer’s Email address. | |
Amount of the transaction with or without | ||||
amount | N |
12 |
Mandatory | decimal points, i.e. 2.25 or 2 |
Merchant Track ID |
AN |
25 |
Mandatory | Unique merchant tracking ID provided by the merchant when sending a transaction request to identify the transaction on the gateway. Avoid using space and special characters. |
Merchant IP | N |
15 |
Optional | IP address of the merchant’s system from which the transaction is generated. |
Customer IP | N |
15 |
Optional | IP address of the customer’s system from which the transaction is generated. |
udf1 | AN |
30 |
Optional | User defined field1. User can provide additional information which will be stored on the gateway. |
udf2 | AN |
30 |
Optional | User defined field2. User can provide additional information which will be stored on the gateway. |
udf3 | AN |
30 |
Optional | User defined field3. User can provide additional information which will be stored on the gateway. |
udf4 | AN |
30 |
Optional | User defined field4. User can provide additional information which will be stored on the gateway. |
udf5 | AN |
30 |
Reserved | It is reserved to receive additional information for the response code from some acquirers. |
8. Capture Transaction (Action Code – 5)
Capture transaction is the actual amount debited from the customer’s account after the previous successful Pre-Authorization transaction.
XML Request for Capture:
<request>
<terminalid>Term1</terminalid>
<password>password</password>
<action>5</action>
<currencyCode>USD</currencyCode>
<amount>2.00</amount>
<trackid> test </trackid>
<transid>3213874245790117249</transid>
</request>
XML Response:
<?xml version="1.0" encoding="UTF-
8"?><response><result>Successful</result><responsecode>000</responsecode><authcode></authcode><RRN>
</RRN><ECI></ECI><tranid>4030835365049819081</tranid><trackid>test</trackid><terminalid>
Term1</terminalid><udf1></udf1><udf2></udf2><udf3></udf3><udf4></udf4><udf5>Transaction Successful -
Transaction Status : Approved Description : 0: Approved | </udf5></response>
The transaction request should include the following fields:
Field Name | Data Type |
Field Maximum Length |
Mandatory/ Optional |
Description |
Terminal ID | AN |
10 |
Mandatory | Field indicates the unique terminal ID provided by the Gateway administrator. This field helps identify the merchant on the gateway. |
password | AN |
15 |
Mandatory | Field indicates the password associated with the terminal ID provided to the merchant. It is required in order to authenticate the merchant on the gateway. |
action | N |
2 |
Mandatory | Field indicates the transaction service action code for processing the transaction. Refer to Appendix A for valid action codes. |
Currency Code |
A |
3 |
Mandatory | Alphabetic currency code of the original transaction. Refer to Appendix B for valid currency codes. |
amount | N |
12 |
Mandatory | Amount of the original transaction with or without decimal points, i.e. 2.25 or 2 |
Track ID | AN |
25 |
Mandatory | Unique merchant tracking id provided by the merchant in the original Pre-Authorisation. |
Tran Message ID |
AN |
50 |
Mandatory | Original transaction reference number provided by the gateway for a Pre-Authorisation transaction. |
Merchant IP | N |
15 |
Optional | IP address of the merchant’s system from which the transaction is generated. |
Customer IP | N |
15 |
Optional | IP address of the customer’s system from which the transaction is generated. |
udf1 | AN |
30 |
Optional | User defined field1. User can provide additional information which will be stored on the gateway. |
udf2 | AN |
30 |
Optional | User defined field2. User can provide additional information which will be stored on the gateway. |
udf3 | AN |
30 |
Optional | User defined field3. User can provide additional information which will be stored on the gateway. |
udf4 | AN |
30 |
Optional | User defined field4. User can provide additional information which will be stored on the gateway. |
udf5 | AN |
30 |
Reserved | It is reserved to receive additional information for the response code from some acquirers. |
9. Void Pre-Authorization Transaction (Action Code – 9)
Void Pre-Authorization transaction is used to unfreeze the amount held by the successful Pre-Authorization transaction. Once the amount is captured, it cannot be voided.
XML Request for Void:
<request>
<terminalid>Term1</terminalid>
<password>password</password>
<action>9</action>
<currencyCode>USD</currencyCode>
<amount>2.00</amount>
<trackid> test </trackid>
<transid>4454874175595575617</transid>
</request>
XML Response:
<?xml version="1.0" encoding="UTF-
8"?><response><result>Successful</result><responsecode>000</responsecode><authcode></authcode><RRN>
</RRN><ECI></ECI><tranid>7296489321379159269</tranid><trackid>test</trackid><terminalid>
Term1</terminalid><udf1></udf1><udf2></udf2><udf3></udf3><udf4></udf4><udf5>Transaction Successful -
Transaction Status : Approved Description : 0: Approved | </udf5></response>
The transaction request includes the following fields:
Field Name | Data Type |
Field Maximum Length |
Mandatory / Optional |
Description |
Terminal ID | AN |
10 |
Mandatory | Field indicates the unique terminal ID provided by the Gateway administrator. This field helps identify the merchant on the gateway. |
password | AN |
15 |
Mandatory | Field indicates the password associated with the terminal ID provided to the merchant. It is required in order to authenticate the merchant on the gateway. |
action | N |
2 |
Mandatory | Field indicates the transaction service action code for processing the transaction. Refer to Appendix A for valid action codes. |
Currency Code |
A |
3 |
Mandatory | Alphabetic currency code of the original transaction. Refer to Appendix B for valid currency codes. |
amount | N |
12 |
Mandatory | Amount of the original transaction with or without decimal points, i.e. 2.25 or 2. |
Merchant Track ID |
AN |
25 |
Mandatory | Unique merchant tracking ID provided by the merchant in the original Pre-Authorisation. |
Tran Message ID |
AN |
50 |
Mandatory | Original transaction reference number provided by the gateway for a Pre-Authorisation transaction. |
Merchant IP | N |
15 |
Optional | IP address of the merchant’s system from which the transaction is generated. |
Customer IP | N |
15 |
Optional | IP address of the customer’s system from which the transaction is generated. |
udf1 | AN |
30 |
Optional | User defined field1. User can provide additional information which will be stored on the gateway. |
udf2 | AN |
30 |
Optional | User defined field2. User can provide additional information which will be stored on the gateway. |
udf3 | AN |
30 |
Optional | User defined field3. User can provide additional information which will be stored on the gateway. |
udf4 | AN |
30 |
Optional | User defined field4. User can provide additional information which will be stored on the gateway. |
udf5 | AN |
30 |
Reserved | It is reserved to receive additional information for the response code from some acquirers. |
10. 3D-Secure Integration
The Vistamoney Payment Gateway service offers the “3D Secure Host” service for authorization of credit card transactions originated from payment orders received by the Merchants on their websites.
3-D Secure is an authenticated payment system to improve online transaction security and encourage the growth of e-commerce payments. Collectively Visa, MasterCard and AMEX secure systems are brand identities of the 3-D Secure Cardholder Authentication Scheme.
3-D secure is a protocol introduced to provide issuer banks with the ability to actually authenticate the cardholders during e-commerce transaction, to reduce the fraudulent usage of Credit/Debit cards in e-commerce transactions and to benefit merchants, consumers and acquirers.
A 3D Secure transaction introduces some extra steps to a normal credit card transaction, necessary to achieve cardholder authentication. The complete sequence of activities is as follows:
- The Cardholder browses the Merchant website, chooses one or more items from the catalogue and provides personal data for subsequent goods shipping. For example, when the merchant initiates Purchase transaction, the Vistamoney payment gateway checks if the merchant is configured to process the 3D secure validation.
- The Cardholder provides, on a secure web page, its credit card data.
- The payment service queries VISA or MasterCard Directory Server to know if the Cardholder is
- If the Cardholder is enrolled in the 3D Secure Directory Server, the gateway responses with the3D-Secure Processing URL and payment id generated by gateway in the request.Xml response:TEST:
<?xml version="1.0" encoding="UTF-8"?><response><targetUrl>http://test.vistamoney.info/paymentgateway- external/processthreed.xhtml?payId=</targetUrl><payId>122</payId></response>
LIVE:
<?xml version="1.0" encoding="UTF-8"?><response><targetUrl>http://vistamoney.info/paymentgateway- external/processthreed.xhtml?payId=</targetUrl><payId>122</payId></response>
- If card is not configured for the 3D secure verification process, gateway processes the transaction as NON-3D transaction and returns the result to the merchant over same communication channel. Following are the response fields returned in the response as described above for purchase and pre-authorization.Response Message Fields
Field Name Data
TypeField
Maximum
LengthDescription Result A 12
Result of the transaction processing on gateway. This field
have two values “Successful” or “Unsuccessful”Response
codeAN 3
Response code of the transaction. Refer to Appendix D for
valid response codesAuthcode AN 6
Authorization code generated by bank ECI N 2
Electronic Commerce Authentication Indicator Tranid AN 50
Unique transaction id generated by gateway. In case of
Capture and refund transaction requests this id should be
Send as original transaction reference.Trackid AN 50
Unique merchant tracking id sent in the request Terminalid AN 10
Terminal id provided in the request RRN N 12
Retrieval Reference Number from international exchange Currency A 3
Alphabetic currency code of the transaction. Amount N 12
Amount of the transaction with or without decimal points, i.e. 2.25 or 2 Email AN 50
Customer’s email address. udf5 AN 30
It is reserved to receive bank response code as an additional detail from some acquirers. udf1 AN 30
User defined field1. User can provide additional information which will be stored on the gateway. udf2 AN 30
User defined field2. User can provide additional information which will be stored on the gateway.
- If the Cardholder is enrolled in the 3D Secure Directory Server, the gateway responses with the3D-Secure Processing URL and payment id generated by gateway in the request.Xml response:TEST:
- The Cardholder is directed to a page on which Merchant, transactions and bank data are displayed, along with the “Verified by Visa” or “MasterCard Secure Code” logo which encourages the Cardholder to trust the ongoing transaction process. An input field is also displayed on the page, which the cardholder must fill with the secret password associated with its credit card.
10.1 3D Secure Verification
When selecting Pay Now, the user will be redirected for verification purposes.
The user is prompted to insert a password to validate its transaction. From here, the payment gateway will notify your website if the transaction is successful or problems have arisen.
- The Cardholder provides the secret password.
- The server redirects the Cardholder browser to the Merchant payment service, carrying the authentication result field as a hidden field.
- The Merchant payment service checks the Cardholder authentication result:
- If positive, the transaction is processed and authorization results are displayed to the Cardholder browser.
- If negative, the process is stopped and an error message is displayed to the Cardholder browser.
10.2 Transaction Details
Merchant can extract response details from the following:
TEST:
http://test.vistamoney.info/paymentReceipt.html?results=successful&transid=12345&ecis=07&trackids=testTra
ck&responsecodes=000&auths=12345&rrns=456789&udfs5=succcess¤cys=QAR&
amounts=1.0&[email protected]&udfs1=test1&udfs2=test2&udfs3=test3&udfs4=test4
LIVE:
http://vistamoney.info/paymentReceipt.html?results=successful&transid=12345&ecis=07&trackids=liveTrack&
responsecodes=000&auths=12345&rrns=456789&udfs5=succcess¤cys=QAR&
amounts=1.0&[email protected]&udfs1=test1&udfs2=test2&udfs3=test3&udfs4=test4
You may use the following option to retrieve the data from the above URL. This is an e.g. of a receipt URL html files:
<html>
<head>
<meta charset="UTF-8">
<title>Receipt</title>
</head>
<body>
<form>
<h1>Transaction Receipt</h1>
<table>
<tr>
<td>Result</td>
<td id="result"/>
</tr>
<tr>
<td>Tran Id</td>
<td id="tranid"/>
</tr>
<tr>
<td>ECI</td>
<td id="eci"/>
</tr>
<tr>
<td>Track Id</td>
<td id="trackid"/>
</tr>
<tr>
<td>Response Code</td>
<td id="responsecode"/>
</tr>
<tr>
<td>Auth Code</td>
<td id="auth"/>
</tr>
<tr>
<td>RRN</td>
<td id="rrn"/>
</tr>
<tr>
<td>Additional Data</td>
<td id="udf5"/>
</tr>
<tr>
<td>Amount</td>
<td id="amount"/>
</tr>
<tr>
<td>Email</td>
<td id="email"/>
</tr>
<tr>
<td>User Defined Field 1</td>
<td id="udf1"/>
</tr>
<tr>
<td>User Defined Field 2</td>
<td id="udf2"/>
</tr>
<tr>
<td>User Defined Field 3</td>
<td id="udf3"/>
</tr>
<tr>
<td>User Defined Field 4</td>
<td id="udf4"/>
</tr>
</table>
<script>
</script>
</form>
</body>
</html>
In this scenario, javascript is used to retrieve the data.
For e.g:
var results = params[0].split(‘=’);
then, assign the result to the receipt URL
document.getElementById(“result”).innerHTML = results[1];
Note: You will have to implement a script to follow up on any situation that might have arisen
Note: 3D-secure integration only applies to Purchase and Pre-Authorization transactions where user has to provide card details. Transaction processing for transactions other than Purchase and Pre-Authorization happens as stated earlier in the document.
11. Recurring
Tokenization
For recurring transaction, the e.g for test url and screenshot of the pghosted page is shown below.
Test Url : http://test.vistamoney.info/paymentgateway-external/pghostedvista.xhtml?trackId=wes123&terminalId=feedeology2&amount=10.50¤cy=QAR
The customer will tick the recurring flag and will proceed with the transaction. If the transaction is successful, he will obtain a token in the response as shown below
The merchant will use this token to send a recurring transaction in the future. The format of the transaction would be as shown below.
<request>
<terminalid>feedeology2</terminalid>
<password>Password1!</password>
<action>1</action>
<currencyCode>USD</currencyCode>
<amount>10.50</amount>
<token>BYutwJIWvolcJXOuqIwyfURmtXUqDsuo</token>
<trackid>pcv</trackid>
</request>
The token will be decrypted to get his card details along with the track id will be used for the recurring transaction. Note that there is no cvv inside the token. The generated token will contain only card number and expiry date.
The response of the transaction will be sent to the merchant as shown below for a successful recurring transaction.
<?xml version="1.0" encoding="UTF-
8"?><response><result>Successful</result><responsecode>000</responsecode><authcode></authcode><RRN>
</RRN><ECI></ECI><tranid>2584589010416223482</tranid><trackid>pcv</trackid><terminalid>
Term1</terminalid><udf1></udf1><udf2></udf2><udf3></udf3><udf4></udf4><udf5>Transaction Successful -
Transaction Status : Approved Description : 0: Approved | </udf5></response>
Other flows
Automated recurring flows consists of mainly two types of requests (without intervention of merchant):
- Down payments
- Intimation
Down payments occurs when payment amount (Tag <amount>10.00</amount>) is greater than 0.
Initmation occurs when payment is equal to zero.
Two types of requests can be sent for recurring :
- Purchase
- Pre-Authorisation
In order to identify a recurring transaction, following parameters should be added in your XML requests
Tag | Sample Valid Value | Comments |
Paymenttype | R,r | Identification of first recurring transaction |
Paymentmethod | CC,cc (Credit card),DC,dc(Debit card) |
Card which is being used for recurring transaction either debit card or credit card. |
Subscriptiontype | I,i (Installment), S,s (Subscription) |
Type of recurring payment. Instalment or Subscription |
Paymentcycle |
D/d(Daily),W/w |
Payment cycle for recurring transaction. |
Paymentdays | 1 to 30 or 31 (Monthly) , MONDAY to SUNDAY or Monday to Sunday (Weekly) |
Payment days as per payment cycle. Eg. 25 of each month if cycle is monthly or 04,25 in a month if cycle is monthly i.e every 4th and 25th of each month or Every Tuesday if cycle is weekly. Not applicable for daily recurring payments. |
Noofrecurring payments | 5 | Number of instalment payments. Applicable only for installment payments. |
Paymentstart date | DD/MM/YYYY | Date should be greater than current date. Date is the date when recurring payments are to be triggered |
Recurring payment amount | 1200 | Recurring payment amount. |
Purchase:
<request>
<terminalid>TEST</terminalid>
<password>password</password>
<action>1</action>
<card>5444444444444444</card>
<cvv2>333</cvv2>
<expYear>2017</expYear>
<expMonth>12</expMonth>
<member>test user</member>
<currencyCode>USD</currencyCode>
<address>test address</address>
<city>Gotham</city>
<statecode>MNK</statecode>
<zip>45638</zip>
<CountryCode>US</CountryCode>
<amount>2.00</amount>
<trackid>test</trackid>
<email>[email protected]</email>
<paymenttype>R</paymenttype>
<paymentmethod>CC</paymentmethod>
<subscriptiontype>i</subscriptiontype>
<paymentcycle>D</paymentcycle >
<paymentdays></paymentdays>
<noOfRecurringpayments>5
</noOfRecurringpayments>
<paymentstartdate>20/03/2017
</paymentstartdate>
<recurringpaymentamount>2.00
</recurringpaymentamount >
</request>
Pre auth:
<request>
<terminalid>BKONE</terminalid>
<password>password</password>
<action>4</action>
<card>5444444444444444</card>
<cvv2>333</cvv2>
<expYear>2017</expYear>
<expMonth>12</expMonth>
<member>test user</member>
<currencyCode>USD</currencyCode>
<address> test address</address>
<city>Gotham</city>
<statecode>MNK</statecode>
<zip>45638</zip>
<CountryCode>US</CountryCode>
<amount>10.00</amount>
<trackid> test </trackid>
<email> test @d.com</email>
<paymenttype>R</paymenttype>
<paymentmethod>CC</paymentmethod>
<subscriptiontype>i</subscriptiontype>
<paymentcycle>D</paymentcycle >
<paymentdays></paymentdays>
<noOfRecurringpayments>5</noOfRecurringpayments>
<paymentstartdate>20/03/2017</paymentstartdate>
<recurringpaymentamount>2.00</recurringpaymentamount>
</request>
If recurring request is successful, the following email will be sent to the Merchant and the Institution.
If recurring payment is successful, the following email will be sent to the Merchant and the Institution.
12. PG HOSTED- 3D SECURE
To make a successful payment, on a website for which you need to add a purchase button for a particular item, you will have to send a small series of confidential information to the payment gateway which will deduct money from your client’s bank account and deposit the amount on the bank account on the owner’s website. For the Information to be sent, a button on the merchant website will trigger a page on the payment gateway which will pass the small series of data to the payment gateway. This will deduct and credit money on relevant bank accounts.
The data passed to the payment gateway will not update your stock records or trigger shipping of your item. This section will have to be handled by the website integrator. The other records keeping might be needed, and all this will have to be implemented by you in a sequence you deem fit, in the code triggered by the purchase button. The payment gateway only handles financial transactions and will return a value that indicates if the banking transaction was successful or if any problems arose. From there, you will be able to make “IF-ELSE” or “SWITCH” statements to handle any situation that might arise.
For example, if you have many products, and each product has a price and various details associated with it, each purchase button is an object on your website that has an “on click” event.
Let us make a trivial example where we pass four minimal data values that need to be sent to the gateway. This is only for educational purposes, and not meant for use in production.
To inspect an object, e.g. button on a website, right click and choose “inspect” from the pop-up menu.
12.1 ‘Pay Now’ button code
You can find below the code being executed each time the ‘Pay Now’ button is selected:
TEST:
http://test.vistamoney.info/paymentgateway-
external/pghostedvista.xhtml?trackId=Jawad123&terminalId=feedeology2&amount=10.50¤cy=QAR
LIVE:
http://vistamoney.info/paymentgateway-
external/pghostedvista.xhtml?trackId=Jawad123&terminalId=feedeology2&amount=10.50¤cy=QAR
12.2 VARIABLES
This code segment will pass four variables to the gateway:
- terminalId= feedeology2
- amount=10.50
- currency= QAR
- trackId= Jawad123
- “feedeology2” is the identification provided to each merchant, or department the merchant requires. A merchant may have several terminal IDs, in case there are several sales departments for different categories of products and services.
- The amount is the amount of money to be deducted.
- The currency is the currency on which all calculations will be base and it must be valid for the terminal.
- The TrackId is an identifier for the transaction provided by the merchant.
From there, the client will be forwarded to the secure page of the payment gateway.
The merchant is not allowed to obtain credit card details from customers directly on their own website. The level of security would be inadequate and it is preferable to always offset credit card detail captures on the gateway systems where the security has been properly audited. While integrating your website, these four values might change if there are several terminals. The prices are different and the currency might change depending on the country of the customer.
12.3 3D Secure PG Hosted Page Sample
The client will see this page on our payment gateway and the client may now enter his credit card details.
12.4 Authentication 3D Secure
When selecting Pay Now, the user will be redirected to Modirum for verification purposes. See section 10.1.
From here, the payment gateway will notify your website if the transaction is successful or problems have arisen. It will be notified by the receipt URL you provided.
In the receipt url, you will have to map the values obtained from our response.
For example,
TEST:
http://test.vistamoney.info/paymentReceipt.html?results=successful&transid=12345&ecis=07&trackids=testTrack
&responsecodes=000&auths=12345&rrns=456789&udfs5=succcess¤cys=QAR&
amounts=1.0&[email protected]
LIVE:
http://vistamoney.info/paymentReceipt.html?results=successful&transid=12345&ecis=07&trackids=testTrack&
responsecodes=000&auths=12345&rrns=456789&udfs5=succcess¤cys=QAR&
amounts=1.0&[email protected]
Merchants will have to provide their receipt URL to be configured on the terminal, else it will go to Vistamoney as default receipt URL.
You may use a receipt URL html file to retrieve the data. See section 10.2.
13. Special characters accepted by PG
Field Name | Optional/Mandatory | APLHABET/NUMNERS/ALPHA NUMER/SPECIAL CHARACTER |
First Name* | Mandatory | Alphabets and space as special characters only. |
Last Name* | Mandatory | Alphabets and space as special characters only. |
Address | Optional | Alphanumeric and special characters include space,#/. |
Postal Code | Optional | Alphanumeric and special characters include space and – |
City | Optional | Alphanumeric and special characters include space,#. |
State | Optional | Alphanumeric and special characters include space,#. |
Country* | Mandatory | Alphabets only. Does not accept special characters and numbers. |
Email Id* | Mandatory | Alphanumeric and special characters include @ _ –. |
Card Number* | Mandatory | Numbers only. |
CVV | Optional/Mandatory | Numbers only. |
Amount* | Mandatory | Numbers and dot as special character only. |
Track Id* | Mandatory | Alphanumeric and underscore as special characters only. |
User Field 1 | Optional | Alphanumeric and space as special characters only. |
User Field 2 | Optional | Alphanumeric and space as special characters only. |
User Field 3 | Optional | Alphanumeric and space as special characters only. |
User Field 4 | Optional | Alphanumeric and space as special characters only. |
User Field 5 | Reserved | It is reserved to receive additional information for the response code from some acquirers. |
14. Appendix A – Action Codes
Action Code | Transaction Service | Description |
1 | Purchase | Automatic capture transaction which is authorized and captured instantly. |
4 | Pre-Authorization | Authorization transaction which freezes the amount on the customer card. |
5 | Capture | 2nd Leg of Pre-Authorization transaction in which the amount will be captured. |
9 | Void Pre-Authorization | Cancel the successful Pre-Authorization transaction. |
2 | Refund / Credit | Refund of purchase or capture transaction. |
15. Appendix B – Currency Codes
Currency Code | Currency Description |
AED | United Arab Emirates Dirham |
AFN | Afghanistan Afghani |
ALL | Albanian Lek |
AMD | Armenian Dram |
ANG | Netherlands Antillean Guilder |
AOA | Angolan Kwanza |
ARS | Argentine Peso |
AUD | Australian Dollar |
AWG | Aruban Guilder |
AZN | Azerbaijan New Manat |
BAM | Bosnia-Herzegovina Convertible Marka |
BBD | Barbados Dollar |
BDT | Bangladeshi Taka |
BGN | Bulgarian Lev |
BHD | Bahraini Dinar |
BIF | Burundi Franc |
BND | Brunei Dollar |
BOB | Bolivian Boliviano |
BOV | Bolivian Mvdol |
BRL | Brazilian Real |
BSD | Bahamian Dollar |
BTN | Bhutan Ngultrum |
BWP | Botswana Pula |
BYR | Belarusian Ruble |
BZD | Belize Dollar |
CAD | Canadian Dollar |
CDF | Congolese Franc |
CHE | WIR Euro |
CHF | Swiss Franc |
CHW | WIR Franc |
CLF | Chilean Unidad de Fomento |
CLP | Chilean Peso |
CNY | China Yuan Renminbi |
COP | Colombian Peso |
CRC | Costa Rican Colon |
CUC | Cuban Convertible Peso |
CUP | Cuban Peso |
CVE | Cape Verde Escudo |
CZK | Czech Koruna |
DJF | Djibouti Franc |
DKK | Danish Krone |
DOP | Dominican Peso |
DZD | Algerian Dinar |
EGP | Egyptian Pound |
ERN | Eritrean Nakfa |
ETB | Ethiopian Birr |
EUR | Euro |
FJD | Fiji Dollar |
FKP | Falkland Islands Pound |
GBP | United Kingdom Pound |
GEL | Georgian Lari |
GHS | Ghana Cedi |
GIP | Gibraltar Pound |
GMD | Gambian Dalasi |
GNF | Guinea Franc |
GTQ | Guatemalan Quetzal |
GYD | Guyana Dollar |
HKD | Hong Kong Dollar |
HNL | Honduran Lempira |
HRK | Croatian Kuna |
HTG | Haitian Gourde |
HUF | Hungarian Forint |
IDR | Indonesian Rupiah |
ILS | Israeli New Shekel |
INR | Indian Rupee |
IQD | Iraqi Dinar |
IRR | Iranian Rial |
ISK | Iceland Krona |
JMD | Jamaican Dollar |
JOD | Jordanian Dinar |
JPY | Japanese Yen |
KES | Kenyan Shilling |
KGS | Kyrgyzstani Som |
KHR | Cambodian Riel |
KMF | Comoros Franc |
KPW | North Korean Won |
KRW | South Korean Won |
KWD | Kuwaiti Dinar |
KYD | Cayman Islands Dollar |
KZT | Kazakhstani Tenge |
LAK | Lao Kip |
LBP | Lebanese Pound |
LKR | Sri Lankan Rupee |
LRD | Liberian Dollar |
LSL | Lesotho Loti |
LYD | Libyan Dinar |
MAD | Moroccan Dirham |
MDL | Moldovan Leu |
MKD | Macedonian Denar |
MMK | Burmese (Myanmar) Kyat |
MNT | Mongolian Tugrik |
MOP | Macau Pataca |
MRO | Mauritanian Ouguiya |
MUR | Mauritian Rupee |
MVR | Maldives Rufiyaa |
MWK | Malawi Kwacha |
MXN | Mexican Peso |
MYR | Malaysian Ringgit |
NAD | Namibian Dollar |
NGN | Nigerian Naira |
NIO | Nicaraguan Cordoba Oro |
NOK | Norwegian Krone |
NPR | Nepalese Rupee |
NZD | New Zealand Dollar |
OMR | Omani Rial |
PAB | Panamanian Balboa |
PEN | Peruvian Nuevo Sol |
PGK | Papua New Guinea Kina |
PHP | Philippine Peso |
PKR | Pakistani Rupee |
PLN | Polish Zloty |
PYG | Paraguayan Guarani |
QAR | Qatari Rial |
RON | Romanian New Leu |
RSD | Serbian Dinar |
RUB | Russian Ruble |
RWF | Rwanda Franc |
SAR | Saudi Riyal |
SBD | Solomon Islands Dollar |
SCR | Seychelles Rupee |
SDG | Sudanese Pound |
SEK | Swedish Krona |
SGD | Singaporean Dollar |
SHP | Saint Helenian Pound |
SLL | Sierra Leonean Leone |
SOS | Somali Shilling |
STD | Sao Tomean Dobra |
SVC | Salvadoran Colon |
SYP | Syrian Pound |
SZL | Swazi Lilangeni |
THB | Thai Baht |
TJS | Tajikistani Somoni |
TND | Tunisian Dinar |
TOP | Tongan Pa’anga |
TRY | Turkish Lira |
TTD | Trinidadian Dollar |
TWD | Taiwan New Dollar |
TZS | Tanzanian Shilling |
UAH | Ukrainian Hryvnia |
UGX | Ugandan Shilling |
USD | US Dollar |
USN | US Dollar (Next day) |
USS | US Dollar (Same day) |
UYU | Uruguayan Peso |
UZS | Uzbekistani Sum |
VEF | Venezuelan Bolivar |
VND | Vietnamese Dong |
VUV | Vanuatu Vatu |
WST | Samoan Tala |
XAF | Communauté Financière Africaine (BEAC) CFA Franc BEAC |
XCD | East Caribbean Dollar |
XOF | Communauté Financière Africaine (BCEAO) Franc |
XPF | Comptoirs Français du Pacifique (CFP) Franc |
YER | Yemeni Rial |
ZAR | South African Rand |
ZMK | Zambian Kwacha |
ZWL | Zimbabwean Dollar |
16. Appendix C – Country Codes
Country Code |
Country Name |
AF |
Afghanistan |
AX |
Åland Islands |
AL |
Albania |
DZ |
Algeria |
AS |
American Samoa |
AD |
Andorra |
AO |
Angola |
AI |
Anguilla |
AQ |
Antarctica |
AG |
Antigua and Barbuda |
AR |
Argentina |
AM |
Armenia |
AW |
Aruba |
AU |
Australia |
AT |
Austria |
AZ |
Azerbaijan |
BS |
Bahamas |
BH |
Bahrain |
BD |
Bangladesh |
BZ |
Belize |
BJ |
Benin |
BM |
Bermuda |
BT |
Bhutan |
BO |
Bolivia |
BA |
Bosnia and Herzegovina |
BW |
Botswana |
BV |
Bouvet Island |
BR |
Brazil |
IO |
British Indian Ocean Territory |
BN |
Brunei Darussalam |
BG |
Bulgaria |
BF |
Burkina Faso |
BI |
Burundi |
KH |
Cambodia |
CM |
Cameroon |
CA |
Canada |
CV |
Cape Verde |
KY |
Cayman Islands |
CF |
Central African Republic |
TD |
Chad |
CL |
Chile |
CN |
China |
CX |
Christmas Island |
CC |
Cocos (Keeling) Islands |
CO |
Colombia |
KM |
Comoros |
CG |
Congo |
CD |
Congo, The Democratic Republic of The |
CK |
Cook Islands |
CR |
Costa Rica |
CI |
Cote D’ivoire |
HR |
Croatia |
CU |
Cuba |
CY |
Cyprus |
CZ |
Czech Republic |
DK |
Denmark |
DJ |
Djibouti |
DM |
Dominica |
DO |
Dominican Republic |
EC |
Ecuador |
EG |
Egypt |
SV |
El Salvador |
GQ |
Equatorial Guinea |
ER |
Eritrea |
FK |
Falkland Islands (Malvinas) |
FO |
Faroe Islands |
FJ |
Fiji |
FI |
Finland |
FR |
France |
GF |
French Guiana |
PF |
French Polynesia |
TF |
French Southern Territories |
GA |
Gabon |
GM |
Gambia |
GE |
Georgia |
DE |
Germany |
GH |
Ghana |
GI |
Gibraltar |
GR |
Greece |
GL |
Greenland |
GD |
Grenada Guadeloupe |
GP |
Guadeloupe |
GU |
Guam |
GT |
Guatemala |
GG |
Guernsey |
GN |
Guinea |
GW |
Guinea bissau |
GY |
Guyana |
HT |
Haiti |
HM |
Heard Island and Mcdonald Islands |
VA |
Holy See (Vatican City State) |
HN |
Honduras |
HK |
Hong Kong |
HU |
Hungary |
IS |
Iceland |
IN |
India |
ID |
Indonesia |
IR |
Iran, Islamic Republic of |
IQ |
Iraq |
IE |
Ireland |
IM |
Isle of Man |
IL |
Israel |
IT |
Italy |
JM |
Jamaica |
JP |
Japan |
JE |
Jersey |
JO |
Jordan |
KZ |
Kazakhstan |
KE |
Kenya |
KI |
Kiribati |
KP |
Korea, Democratic People’s Republic of |
KR |
Korea, Republic of |
KW |
Kuwait |
KG |
Kyrgyzstan |
LA |
Lao People’s Democratic Republic |
LV |
Latvia |
LB |
Lebanon |
LS |
Lesotho |
LR |
Liberia |
LY |
Libyan Arab Jamahiriya |
LI |
Liechtenstein |
LT |
Lithuania |
LU |
Luxembourg |
MO |
Macao |
MK |
Macedonia, The Former Yugoslav Republic of |
MG |
Madagascar |
MW |
Malawi |
MY |
Malaysia |
MV |
Maldives |
ML |
Mali |
MT |
Malta |
MH |
Marshall Islands |
MQ |
Martinique |
MR |
Mauritania |
MU |
Mauritius |
YT |
Mayotte |
MX |
Mexico |
FM |
Micronesia, Federated States of |
MD |
Moldova, Republic of |
MC |
Monaco |
MN |
Mongolia |
ME |
Montenegro |
MS |
Montserrat |
MA |
Morocco |
MZ |
Mozambique |
AN |
Netherlands Antilles |
NC |
New Caledonia |
NZ |
New Zealand |
NI |
Nicaragua |
NE |
Niger |
NG |
Nigeria |
NU |
Niue |
NF |
Norfolk Island |
MP |
Northern Mariana Islands |
NO |
Norway |
OM |
Oman |
PK |
Pakistan |
PW |
Palau |
PS |
Palestinian Territory, Occupied |
PA |
Panama |
PG |
Papua New Guinea |
PY |
Paraguay |
PE |
Peru |
PH |
Philippines |
PN |
Pitcairn |
PL |
Poland |
PT |
Portugal |
PR |
Puerto Rico |
QA |
Qatar |
RE |
Reunion |
RO |
Romania |
RU |
Russian Federation |
RW |
Rwanda |
SH |
Saint Helena |
KN |
Saint Kitts and Nevis |
LC |
Saint Lucia |
PM |
Saint Pierre and Miquelon |
VC |
Saint Vincent and The Grenadines |
WS |
Samoa |
SM |
San Marino |
ST |
Sao Tome and Principe |
SA |
Saudi Arabia |
SN |
Senegal |
RS |
Serbia |
SC |
Seychelles |
SL |
Sierra Leone |
SG |
Singapore |
SK |
Slovakia |
SI |
Slovenia |
SB |
Solomon Islands |
SO |
Somalia |
ZA |
South Africa |
GS |
South Georgia and The South Sandwich Islands |
ES |
Spain |
LK |
Sri Lanka |
SD |
Sudan |
SR |
Suriname |
SJ |
Svalbard and Jan Mayen |
SZ |
Swaziland |
SE |
Sweden |
CH |
Switzerland |
SY |
Syrian Arab Republic |
TW |
Taiwan, Province of China |
TJ |
Tajikistan |
TZ |
Tanzania |
TH |
Thailand |
TL |
Timor leste |
TG |
Togo |
TK |
Tokelau |
TO |
Tonga |
TT |
Trinidad and Tobago |
TN |
Tunisia |
TR |
Turkey |
TM |
Turkmenistan |
TC |
Turks and Caicos Islands |
TV |
Tuvalu |
UG |
Uganda |
UA |
Ukraine |
AE |
United Arab Emirates |
GB |
United Kingdom |
US |
United States |
UM |
United States Minor Outlying Islands |
UY |
Uruguay |
UZ |
Uzbekistan |
VU |
Vanuatu |
VE |
Venezuela |
VN |
Viet Nam |
VG |
Virgin Islands, British |
VI |
Virgin Islands, U.S. |
WF |
Wallis and Futuna |
EH |
Western Sahara |
YE |
Yemen |
ZM |
Zambia |
ZW |
Zimbabwe |
17. Appendix D – Response Codes
Response Code | Response Code Descriptions |
000 | Transaction Successful |
001 | Pending for Authorisation |
101 | Field is blank in a request |
102 | Internal Mapping for ISO not set |
103 | ISO message field configuration not found |
104 | Response Code not found in ISO message |
105 | Problem while creating or parsing ISO Message |
201 | Terminal does not exist |
202 | Merchant does not exist |
203 | Institution does not exist |
204 | Card prefix does not belong to corresponding card Type |
205 | Card not allowed for this transaction |
206 | Negative IP, Customer is not allowed to perform Transaction |
207 | Original Transaction not found |
208 | Transaction Flow not set for Transaction Type |
209 | Terminal status is Deactive, Transaction Declined |
210 | Terminal status is Closed, Transaction Declined |
211 | Terminal status is Invalid, Transaction Declined |
212 | Merchant status is Deactive, Transaction Declined |
213 | Merchant status is Closed, Transaction Declined |
214 | Merchant status is Invalid, Transaction Declined |
215 | Institution status is Deactive, Transaction Declined |
216 | Institution status is Closed, Transaction Declined |
217 | Institution status is Invalid, Transaction Declined |
218 | MOD10 Check Failed |
219 | Card Type not supported by Merchant |
220 | CVV Check Failed, CVV value not present |
221 | AVS Capture Check Failed, Could not find Customer Address |
222 | Customer Info Check failed, Could not find Customer Information |
223 | Card expiry date is not greater than current date |
224 | Invalid Login Attempts exceeded |
225 | Wrong Terminal password, Please Re-Initiate transaction |
226 | Negative Country, Customer is not allowed to perform Transaction |
227 | Card type not supported by institution |
228 | Multiple captures not allowed |
301 | Transaction is not allowed for given Terminal |
302 | Transaction is not allowed for given Merchant |
303 | Transaction is not allowed for given Institution |
304 | Currency not supported for given Terminal |
305 | Currency not supported for given Merchant |
306 | Currency not supported for given Institution |
307 | Velocity Check Failed, Velocity Profile not found, Level – Terminal |
308 | Velocity Check Failed, Velocity Profile not found, Level – Merchant |
309 | Velocity Check Failed, Velocity Profile not found, Level – Institution |
310 | Transaction Profile not set for Terminal, Unable to check Transaction Profile |
311 | Transaction Profile not set for Merchant, Unable to check Transaction Profile |
312 | Transaction Profile not set for Institution, Unable to check Transaction Profile |
313 | Currency Profile not set for Terminal, Unable to check Currency Profile |
314 | Currency Profile not set for Merchant, Unable to check Currency Profile |
315 | Currency Profile not set for Institution, Unable to check Currency Profile |
316 | Velocity Profile not set for Terminal, Unable to check Velocity Profile |
317 | Velocity Profile not set for Merchant, Unable to check Velocity Profile |
318 | Velocity Profile not set for Institution, Unable to check Velocity Profile |
319 | Refund Limit exceeded for Terminal |
320 | Refund Limit exceeded for Merchant |
321 | Refund Limit exceeded for Institution |
322 | Velocity Check Failed, Transaction amount below Minimum amount allowed, Level – Terminal |
323 | Velocity Check Failed, Transaction amount below Minimum amount allowed, Level – Merchant |
324 | Velocity Check Failed, Transaction amount below Minimum amount allowed, Level – Institution |
325 | Velocity Check Failed, Transaction amount exceeds Maximum amount allowed, Level – Terminal |
326 | Velocity Check Failed, Transaction amount exceeds Maximum amount allowed, Level – Merchant |
327 | Velocity Check Failed, Transaction amount exceeds Maximum amount allowed, Level – Institution |
328 | Velocity Check Failed, Level – Terminal |
329 | Velocity Check Failed, Level – Merchant |
330 | Velocity Check Failed, Level – Institution |
331 | Velocity Check Failed, Transaction exceeds Total transaction count, Level – Terminal |
332 | Velocity Check Failed, Transaction exceeds Total transaction count, Level – Merchant |
333 | Velocity Check Failed, Transaction exceeds Total transaction count, Level – Institution |
334 | Velocity Check Failed, Transaction amount exceeds Total transaction amount allowed, Level – Terminal |
335 | Velocity Check Failed, Transaction amount exceeds Total transaction amount allowed, Level – Merchant |
336 | Velocity Check Failed, Transaction amount exceeds Total transaction amount allowed, Level – Institution |
337 | Velocity Check Failed, Transaction exceeds Total transaction count of this Card, Level – Terminal |
338 | Velocity Check Failed, Transaction exceeds Total transaction count of this Card, Level – Merchant |
339 | Velocity Check Failed, Transaction exceeds Total transaction count of this Card, Level – Institution |
401 | Destination is not configured |
402 | Cannot lookup Destination to send message |
403 | Unable to route Message to Destination |
404 | Unable to get routing details |
405 | Destination does not log on |
501 | Refer to card issuer |
502 | Refer to card issuer, special condition |
503 | Invalid Merchant or Service Provider |
504 | Pick-up card |
505 | Do not honour |
506 | Error |
507 | Pick-up card, special condition |
508 | Honour with identification |
509 | Request in progress |
510 | Approved, partial |
511 | Approved, VIP |
512 | Invalid transaction |
513 | Invalid amount |
514 | Invalid card number |
515 | No such issuer |
516 | Approved, update track 3 |
517 | Operator Cancelled |
518 | Customer dispute |
519 | Re-enter transaction |
520 | Invalid response |
521 | No action taken |
522 | Suspected malfunction |
523 | Unacceptable transaction fee |
524 | File update not supported |
525 | Unable to locate record |
526 | Duplicate record |
527 | File update edit error |
528 | File update file locked |
530 | File update failed |
531 | Bank not supported |
532 | Completed partially |
533 | Expired card, pick-up |
534 | Suspected fraud, pick-up |
535 | Contact acquirer, pick-up |
536 | Restricted card, pick-up |
537 | Call acquirer security, pick-up |
538 | PIN tries exceeded, pick-up |
539 | No credit account |
540 | Function not supported |
541 | Lost card (Contact Bank) |
542 | No universal account |
543 | Stolen card |
544 | No investment account |
551 | Not sufficient funds (Client to Contact Bank) |
552 | No check account |
553 | No savings account |
554 | Expired card (Contact Bank) |
555 | Incorrect PIN |
556 | No card record |
557 | Transaction not permitted to cardholder |
558 | Transaction not permitted on terminal |
559 | Suspected fraud |
560 | Contact acquirer |
561 | Exceeds withdrawal limit |
562 | Restricted card |
563 | Security violation |
564 | Original amount incorrect |
565 | Exceeds withdrawal frequency |
566 | Call acquirer security |
567 | Hard capture |
568 | Response received too late |
575 | PIN tries exceeded |
576 | Approved country club |
577 | Intervene, bank approval required |
578 | Original transaction could not be found |
579 | approved administrative transaction |
580 | Approved national negative file hit OK |
581 | Approved commercial |
582 | No security module |
583 | No accounts |
584 | No PBF |
585 | PBF update error |
586 | Invalid authorisation type |
587 | Bad Track 2 bank offline |
588 | PTLF error |
589 | Invalid route service |
590 | Cut-off in progress |
591 | Issuer or switch inoperative |
592 | Routing error |
593 | Violation of law |
594 | Duplicate transaction |
595 | Reconcile error |
596 | Communication System malfunction |
597 | Communication Error |
598 | Exceeds cash limit |
599 | Host Response, Please check bank response code |
5N0 | Unable to authorize / Card type incorrect |
5N1 | Invalid PAN length |
5N2 | Preauthorization full |
5N3 | Maximum online refund reached |
5N4 | Maximum off-line refund reached |
5N5 | Maximum credit per refund |
5N6 | Maximum refund credit reached |
5N7 | Decline for cvv2 failure |
5N8 | Over floor limit |
5N9 | Maximum number refund credits |
5O0 | Referral file full |
5O1 | NEG file problem |
5O2 | Advance less than minimum |
5O3 | Delinquent |
5O4 | Over limit table |
5O5 | PIN required |
5O6 | Mod 10 check |
5O7 | Force post |
5O8 | Bad PBF |
5O9 | NEG file problem |
5P0 | CAF problem |
5P1 | Over daily limit |
5P2 | CAPF not found |
5P3 | Advance less than minimum |
5P4 | Number of times used |
5P5 | Delinquent |
5P6 | Over limit table |
5P7 | Advance less than minimum |
5P8 | Administrative card needed |
5P9 | Enter lesser amount |
5Q0 | Invalid transaction date |
5Q1 | Invalid expiration date |
5Q2 | Invalid transaction code |
5Q3 | Advance less than minimum |
5Q4 | Number of times used |
5Q5 | Delinquent |
5Q6 | Over limit table |
5Q7 | Amount over maximum |
5Q8 | Administrative card not found |
5Q9 | Administrative card not allowed |
5R0 | Approved administrative request |
5R1 | Approved administrative request |
5R2 | Approved administrative request |
5R3 | Chargeback-customer file updated |
5R4 | Chargeback-customer file updated -acquirer not found |
5R5 | Chargeback-incorrect prefix number |
5R6 | Chargeback-incorrect response code or CPF configuration |
5R7 | Administrative transactions not supported |
5R8 | Card on national negative file |
5S4 | PTLF full |
5S5 | Chargeback-approved, customer file not updated |
5S6 | Chargeback-approved, customer file not updated, acquirer not found |
5S7 | Chargeback-accepted, incorrect destination |
5S8 | ADMN file problem |
5S9 | Unable to validate PI |
5T1 | Invalid credit card advance amount |
5T2 | Invalid transaction date |
5T3 | Card not supported |
5T4 | Amount over maximum |
5T5 | CAF status = 0 or 9 |
5T6 | Bad UAF |
5T7 | Cash back exceeds daily limit |
5T8 | Multiple invalid required fields |
601 | System Error, Please contact System Admin. |
602 | System Error, Please try again |
603 | Transaction timed out |
604 | Invalid Card Number |
605 | Invalid CVV |
606 | Invalid Track Id |
607 | Invalid Terminal Id |
608 | Invalid Address |
609 | Invalid Terminal Password |
610 | Invalid Action Code |
611 | Invalid Currency Code |
612 | Invalid Transaction Amount |
613 | Invalid Transaction Reference. |
614 | Invalid User Fields |
615 | Invalid City |
616 | Invalid characters encountered |
617 | Invalid Card Expiry Date |
618 | Invalid State |
619 | Invalid Country |
620 | Invalid Cardholder Name |
621 | Invalid Zip Code |
622 | Invalid IP Address |
623 | Invalid Email Address |
624 | Transaction cancelled by the user |
625 | 3D Transaction Failed |
626 | Invalid CVV, CVV Mandatory |
627 | Capture not allowed, Mismatch in Capture and Original Auth Transaction Amount |
628 | Transaction has not been Captured/Purchase, Refund not allowed |
629 | Refund Amount exceeds the Captured/Purchase Amount |
630 | Transaction is Void, Capture not allowed |
631 | Transaction has been Captured, Void Auth not allowed |
632 | Original Transaction not found |
633 | Transaction already Refunded, Duplicate refund not allowed |
634 | Transaction is Void, Refund not allowed |
635 | Transaction has been Captured, Multiple captures not allowed |
636 | Transaction has been Voided, Multiple voids not allowed |
637 | A purchase transaction cannot be captured. It should be an Auth transaction |
638 | Purchase transaction cannot be Voided |
639 | Invalid Void Transaction, Mismatch in Void and Original Auth Transaction Amount |
640 | Refund transaction in progress, Cannot process duplicate transaction |
641 | Capture transaction in progress, Cannot process duplicate transaction |
642 | Void Auth transaction in progress, cannot process duplicate transaction |
644 | Transaction is fully refunded, refund not allowed |
645 | Transaction is chargeback transaction, refund not allowed |
646 | Transaction is chargeback transaction, refund amount exceeds allowed amount |
670 | Communication error while writing in Socket |
671 | Communication error while reading in Socket |
699 | Transaction timed out from bank |
CONTACT INFORMATION
DROP US A LINE
Error: Contact form not found.