<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.x-payments.com/help/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alex+Mulin</id>
	<title>X-Payments Help - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.x-payments.com/help/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Alex+Mulin"/>
	<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/Special:Contributions/Alex_Mulin"/>
	<updated>2026-05-01T00:40:46Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.5</generator>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:Using_X-Payments_with_Zoey&amp;diff=1316</id>
		<title>X-Payments:Using X-Payments with Zoey</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:Using_X-Payments_with_Zoey&amp;diff=1316"/>
		<updated>2018-02-01T08:26:45Z</updated>

		<summary type="html">&lt;p&gt;Alex Mulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
A Zoey store can be connected to [[X-Payments:User_manual|X-Payments]] web-based payment application to process payments from customers and save their credit card data in a PCI DSS compliant way. &lt;br /&gt;
&lt;br /&gt;
This section provides information on how to connect and use X-Payments with your Zoey store.&lt;br /&gt;
&lt;br /&gt;
==What's New==&lt;br /&gt;
&lt;br /&gt;
:* [[X-Payments:What%27s_New_in_X-Payments_Connector_for_Zoey | What's New in X-Payments Connector for Zoey]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Connecting Zoey to X-Payments==&lt;br /&gt;
Connecting your Zoey store to X-Payments includes two consecutive steps:&lt;br /&gt;
:* [[X-Payments:Configure the connection to your Zoey store in the X-Payments back end | Configure the connection to your Zoey store in the X-Payments back end]] (Instructions for X-Payments 2.1.1 and later)&lt;br /&gt;
:* [[X-Payments:Configure the connection to X-Payments in the Zoey store Control Panel | Configure the connection to X-Payments in the Zoey store Control Panel]] (Zoey Connector 1.8.4 or later )&lt;br /&gt;
&lt;br /&gt;
==Video tutorials (outdated)==&lt;br /&gt;
&lt;br /&gt;
:* [[X-Payments:Video_Tutotials_on_Using_X-Payments_with_Zoey | Video Tutotials on Using X-Payments with Zoey]]&lt;/div&gt;</summary>
		<author><name>Alex Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=1129</id>
		<title>X-Payments:PA-DSS implementation guide for X-Cart Payments 3</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=1129"/>
		<updated>2017-11-24T10:29:40Z</updated>

		<summary type="html">&lt;p&gt;Alex Mulin: /* Communication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The purpose of this PA-DSS Implementation Guide is to inform employees of organizations using the X-Cart Payments payment application by Qualiteam Software Limited about the methods and means of protection of account data in the X-Cart Payments software.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The methods include the need for compliance with the information security standards in the payment card industry developed by the international payment systems Visa and MasterCard - Payment Card Industry Data Security Standard (PCI DSS) and Payment Application Data Security Standard (PA-DSS). For additional information about PCI DSS, please visit the [https://www.pcisecuritystandards.org/ Official PCI Security Standards Council Site].&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The document provides instructions on how to implement the application in a PCI DSS compliant manner.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Full product name - X-Cart Payments.&amp;lt;br /&amp;gt;&lt;br /&gt;
Product version - 3.1.x.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Any servers used to run the X-Cart Payments payment application must be configured according to this PA-DSS Implementation Guide.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This PA-DSS Implementation Guide should be updated:&lt;br /&gt;
:* at least annually;&lt;br /&gt;
:* after changes in the payment application (if required);&lt;br /&gt;
:* after changes in the PCI DSS and PA-DSS standards.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The updated Version of the PA-DSS Implementation Guide has to be sent to all the merchants using X-Cart Payments.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The history of changes to the X-Cart Payments PA-DSS Implementation Guide is provided in the table below.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Table.1. X-Cart Payments PA-DSS Implementation Guide history of changes''' &amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Author'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Date'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Number'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 60%;&amp;quot;|  '''Change description'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Alex Mulin&lt;br /&gt;
| 05/17/2016&lt;br /&gt;
| 01&lt;br /&gt;
| The original version of the document, designed to meet the requirements of PCI DSS version 3.1 and PA DSS version 3.1&lt;br /&gt;
|- &lt;br /&gt;
| Alex Mulin&lt;br /&gt;
| 05/17/2017&lt;br /&gt;
| 02&lt;br /&gt;
| The original version of the document, designed to meet the requirements of PCI DSS version 3.2 and PA DSS version 3.2&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data protection==&lt;br /&gt;
The PCI DSS and PA-DSS standards prohibit storage of sensitive authentication data (after authorization) or cardholder data in cleartext.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cardholder data includes:&lt;br /&gt;
:* Primary Account Number (PAN) &lt;br /&gt;
:* Cardholder Name &lt;br /&gt;
:* Expiration Date &lt;br /&gt;
:* Service Code &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Sensitive authentication data (SAD) includes: &lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments has the ability to store parts of cardholder data temporarily to perform 3D Secure verification and certain types of transactions for some of the integrated payment processors. During storage, cardholder data is encrypted using RSA 2048 algorithm and AES 256 for key encryption. When its storage period is over, the data is removed automatically via &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments may not be configured to store permanently in the database the following types of data: &lt;br /&gt;
:* Full PAN&lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
The payment application masks PAN on display (except for the moment when the user enters the card number).&lt;br /&gt;
X-Cart Payments can display masked PAN on the &amp;quot;Payment details&amp;quot; pages and in the &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. The same data (partially masked with asterisks) may be passed via the API to the integrated software products. X-Cart Payments does not have the ability to display full PAN anywhere, and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data Collected while Testing==&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments: &lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever choose to collect credit card information to troubleshoot a problem that a customer of yours is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access.&lt;br /&gt;
#* Only collect a limited amount of data (no more than is needed to solve the problem).&lt;br /&gt;
#* Sensitive authentication data must be encrypted during storage. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Sensitive authentication data must be securely deleted immediately after use.&lt;br /&gt;
To prevent uncontrolled storage of cardholder data (for example, in case of operating system failure), it is recommended to disable the swap file or move it to a specially prepared encrypted partition.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Authentication and access==&lt;br /&gt;
The X-Cart Payments payment application has an only user type. This type cannot get access to payment card numbers and does not have any administrative privileges that may affect PA-DSS compliance.&lt;br /&gt;
There are no built-in/default user accounts in X-Cart Payments. You must carefully control access to X-Cart Payments. Follow these rules: &lt;br /&gt;
:* Restrict the number of employees who have access to X-Cart Payments to only those who have a business need.&lt;br /&gt;
:* Always provide unique usernames for each person who needs access.&lt;br /&gt;
:* Do not use system-default usernames and/or passwords.&lt;br /&gt;
:* Ensure that web server is run under a non-privileged user account and the application has access to the database from a limited privilege user account.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To set password lifetime:&lt;br /&gt;
# Log in to X-Cart Payments.&lt;br /&gt;
# Go to Settings -&amp;gt; General Settings.&lt;br /&gt;
# In the &amp;quot;User account password lifetime&amp;quot; field, enter the number of days for which the user account password needs to be valid. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
The following related rules apply:&lt;br /&gt;
:* The minimum password length is 8 characters.&lt;br /&gt;
:* A password must contain both numbers and lower- and uppercase characters.&lt;br /&gt;
:* The last 4 passwords must be unique.&lt;br /&gt;
:* A user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password.&lt;br /&gt;
:* A user is logged off after an inactivity period of 15 minutes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords: &lt;br /&gt;
:* For your Web hosting account administration area (Web hosting account where your online store is hosted);&lt;br /&gt;
:* For FTP access to the Web server;&lt;br /&gt;
:* For Remote Desktop Connection to the Web server (if available);&lt;br /&gt;
:* To connect to the MySQL server that contains your store data.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux authentication mechanism is used for login in the servers with running X-Cart Payments.&lt;br /&gt;
Accounts for access to the operating system are managed by the Linux administrator.&lt;br /&gt;
For Linux operating system accounts, you must configure the following attributes of the password policy:&lt;br /&gt;
:* use personal accounts, do not use any group, shared, or generic accounts and passwords;&lt;br /&gt;
:* changes to user passwords at least once every 90 days;&lt;br /&gt;
:* require a minimum length of at least seven characters;&lt;br /&gt;
:* contain both numeric and alphabetic characters;&lt;br /&gt;
:* do not use last four passwords used previously;&lt;br /&gt;
:* block account after six invalid logon attempts (minimum 30 minutes or until an administrator enables the user ID).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Two-factor authentication must be used for remote access to the operating system. The authentication methods, also known as factors, are:&lt;br /&gt;
:* something you know, such as a password or a passphrase;&lt;br /&gt;
:* something you have, such as a token device or a smart card;&lt;br /&gt;
:* something you are, such as a biometric.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging==&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. Users do not have the ability to disable or change the logging parameters of X-Cart Payments. X-Cart Payments log journal does not contain cardholder data. It is implemented at the source code level. The setting of an event log journal does not require any additional action from users.&lt;br /&gt;
The log files are created in the var/log/ directory. In X-Cart Payments 3.1, logs can be viewed via the X-Cart Payments admin back end. &amp;lt;br /&amp;gt;Make sure you restrict access to the log files by business need-to-know. &lt;br /&gt;
The following types of activity are logged: &lt;br /&gt;
:* All actions taken by any individual with root or administrative privileges.&lt;br /&gt;
:* Successes and failures of all individual accesses to application sections and functions.&lt;br /&gt;
:* Initialization of the audit logs.&lt;br /&gt;
:* User sign in and sign out.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to the files access.log and error.log. &lt;br /&gt;
Each log event includes: &lt;br /&gt;
:* Type of event;&lt;br /&gt;
:* Date and time of event;&lt;br /&gt;
:* Username and IP address;&lt;br /&gt;
:* Success or failure indication;&lt;br /&gt;
:* Action which led to the event;&lt;br /&gt;
:* Component which led to the event.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on the server. This software should: &lt;br /&gt;
:* warn on a checksum change of any of X-Cart Payments source code files except for the log file and the database files;&lt;br /&gt;
:* record any file writing operations related to X-Cart Payments files.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Communication==&lt;br /&gt;
LAN channel or other available connection method can be used as a communication channel.&lt;br /&gt;
X-Cart Payments payment application supports the following data formats:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 20%;&amp;quot;| '''Protocol'''&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 70%;&amp;quot;| HTTP protocol (RFC 2616: HTTP/1.1) is used for data transfer between client and server &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data transmission method'''&lt;br /&gt;
| Only encrypted cardholder data (RSA 2048 and AES 256) is transferred. RAW POST method is used for data transmission - (data stream is transmitted in the body of the request that is sent from client to server)&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data format'''&lt;br /&gt;
| Data is transmitted in XML format (Extensible Markup Language (XML) 1.0) or in plain text using POST query via HTTPS&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Port'''&lt;br /&gt;
| X-Cart Payments payment application uses ports 80, 443 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Network traffic encryption'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for: &lt;br /&gt;
:* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
:* providing remote web-based access to the application.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use some tools to remotely access the application, you should encrypt all the communication using such technologies as TLS or IPSEC. &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As per PCI DSS requirement, cardholder data must never be sent unencrypted by email, and X-Cart Payments does meet this requirement never sending cardholder data by email or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Enable TLS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
TLS protects data that is transmitted between a browser and your web server. It is critical that you have TLS enabled on your web server, and one of the first steps you should take after the installation is to enable TLS. &lt;br /&gt;
:* Your web server must be configured to use TLS v1.2 protocols with strong encryption (128-bit or longer key is required).&lt;br /&gt;
:* You will need to have a certificate issued for your web domain. Read guidelines on installing Comodo's Instant TLS certificates.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If a web server does not have TLS enabled, X-Cart Payments will not function. &lt;br /&gt;
X-Cart Payments does not support remote administrative access. Strong encryption must be used for remote access to the server.&lt;br /&gt;
The connection of servers with X-Cart Payments payment application to the Internet must be protected by a firewall. In X-Cart Payments configurations involving more than one server, server connections should take place in network segments separated from the Internet via stateful inspection firewalls.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Wireless communications'''&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use wireless networking to access X-Cart Payments, it is your responsibility to ensure your wireless security configuration follows the PCI DSS requirements. &lt;br /&gt;
:* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
:* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
:* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
:* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
::* Use with a minimum 104-bit encryption key and 24 bit-initialization value.&lt;br /&gt;
::* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS.&lt;br /&gt;
::* Rotate shared WEP keys quarterly (or automatically if the technology permits).&lt;br /&gt;
::* Rotate shared WEP keys whenever there are changes in personnel with access to keys.&lt;br /&gt;
::* Restrict access based on media access code (MAC) address.&lt;br /&gt;
::* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Remote access'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time codes. Detailed information can be found on the [[X-Payments:Two-factor_authentication | X-Payments:Two-factor authentication]] page. &lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following: &lt;br /&gt;
:* Change the default settings in the remote access software (for example, change the default passwords and use unique passwords for each customer).&lt;br /&gt;
:* Allow connections only from specific (known) IP/MAC addresses.&lt;br /&gt;
:* Use strong authentication or complex passwords for logins.&lt;br /&gt;
:* Enable encrypted data transmission.&lt;br /&gt;
:* Enable account lockout after a certain number of failed login attempts.&lt;br /&gt;
:* Configure the system so a remote user must establish a Virtual Private Network (&amp;quot;VPN&amp;quot;) connection via a firewall before access is allowed.&lt;br /&gt;
:* Enable any logging or auditing functions.&lt;br /&gt;
:* Restrict access to customer passwords to authorized reseller/integrator personnel.&lt;br /&gt;
:* Establish customer passwords according to PCI DSS requirements.&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hardware and software==&lt;br /&gt;
The following requirements must be met for X-Cart Payments payment application self-service terminals:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Operating System'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux Ubuntu 16 or later, Linux Debian 6.0 or later, Linux CentOS 6 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''DBMS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
My SQL 5.6 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''Software'''&amp;lt;br /&amp;gt;&lt;br /&gt;
PHP 5.5 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
Apache 2.4 or later&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Product versioning methodology==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Version number changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%;&amp;quot;| '''Software changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Description'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;|  '''PA-DSS changes'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Version number does not change&lt;br /&gt;
| Change of the software name&amp;lt;br /&amp;gt;Change of the vendor name&lt;br /&gt;
| Changes not related to the software development process&lt;br /&gt;
| Administrative&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the minor version number to reflect a change not affecting the certification. For example, change of the version number from 1.0.5 to 1.0.6 (for the certification of 1.0.x)&lt;br /&gt;
| - Changes to the user interface &amp;lt;br /&amp;gt;- Changes to the database schema &amp;lt;br /&amp;gt;- Changes to supported payment gateway integrations / Addition of new payment gateway integrations&lt;br /&gt;
| Changes that have no impact on the PA-DSS requirements compliance or Payment Application security&lt;br /&gt;
| No Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the second version number. For example, change of the version number from 1.1.* to 1.2.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- Fewer than 4 sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- Fewer than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- Less than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Changes implemented for compatibility with the updated versions of previously tested OS, DBMS and third party software products.&amp;lt;br /&amp;gt;- Addition/removal of supported payment processors.&amp;lt;br /&amp;gt;- Recompilation of the source code using a new compiler or different compiler settings.&amp;lt;br /&amp;gt;- Changes of the software versioning policy.&amp;lt;br /&amp;gt;- Changes of the software not related to security.&lt;br /&gt;
| - Changes in the software affecting payment card data mechanisms.&amp;lt;br /&amp;gt;- Changes addressing the identified vulnerabilities of the application.&amp;lt;br /&amp;gt;- Changes related to the completion of the annual cycle of development (if there are other changes).&lt;br /&gt;
| Low Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the first version number. For example, change of the version number from 1.0.* to 2.0.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- 4 or more sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Addition of new supported platforms/OS versions. &lt;br /&gt;
| Major changes in the software architecture, global alterations of code&lt;br /&gt;
| High Impact&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The release of each new version is accompanied with a notification to all the application users (agents), which indicates the new application version number and a list of main changes in the new version.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==New patches and updates delivery==&lt;br /&gt;
&lt;br /&gt;
New patches, updates, installation instructions and MD5 checksum files are delivered via secure HelpDesk system located at https://secure.x-cart.com using &amp;quot;File Area&amp;quot; section in users accounts there. &lt;br /&gt;
We send newsletters about new patches and updates originating from x-cart.com domain name via verified and well-known email delivery system.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:Getting_started&amp;diff=1056</id>
		<title>X-Payments:Getting started</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:Getting_started&amp;diff=1056"/>
		<updated>2017-09-25T07:58:39Z</updated>

		<summary type="html">&lt;p&gt;Alex Mulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{XP_manual_TOC}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''To begin accepting payments with X-Payments''':&lt;br /&gt;
&lt;br /&gt;
# [[X-Payments:Installation  | Install]] X-Payments.{{Note1 | &amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Installation of X-Payment is not needed if you are using the [https://www.x-payments.com/ X-Payments Hosted] solution.}}&lt;br /&gt;
# Log in to the X-Payments back end.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;X-Payments 3: Before you can log in as administrator, you need to set up a method for two-factor user authentication. For details, see [[X-Payments:Two-factor_authentication | Two-factor authentication (X-Payments 3)]].&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;X-Payments 2.2 and earlier: To log in as administrator, you will need PIN codes. For instructions on logging in to the X-Payments admin back end, watch the video:&amp;lt;br /&amp;gt;&amp;lt;youtube&amp;gt;uaIC0wjgBjQ&amp;lt;/youtube&amp;gt;&amp;lt;br /&amp;gt;For more information on PIN codes in X-Payments, see [[X-Payments:Managing PIN codes | Managing PIN codes (X-Payments 2.2 and earlier)]].&lt;br /&gt;
# Go to the '[[X-Payments:General_settings | General settings]]' page and adjust the general settings and preferences for your X-Payments installation.&lt;br /&gt;
# On the '[[X-Payments:User_manual#Payment_Configurations | Payment Configurations]]' page, configure and enable one or more payment modules you want to use.&lt;br /&gt;
# On the '[[X-Payments:User_manual#Online_Stores | Online Stores]]' page, add your store to the list of online stores that you will use with X-Payments and enable it. On the 'Online store details' page for your store, be sure to specify the payment configurations that you will use with this specific store (NB: You will not be able to connect the store to X-Payments without it).&lt;br /&gt;
# Open the details of your store for viewing and copy or make note of the connection details needed to connect the store to X-Payments: the configuration bundle, store ID and a set of encryption keys.&lt;br /&gt;
# Connect your store to X-Payments.&amp;lt;br /&amp;gt;For manuals of X-Payments connectors, see: [[Template:XP_connector_manuals|XP connector manuals]].&lt;br /&gt;
# To be able to use 3D-Secure payer authentication service (Verified by VISA, MasterCard Secure Code), [[X-Payments:3D-Secure_settings | configure CardinalCommerce module]] in X-Payments.&lt;br /&gt;
# If you are going to grant access to the X-Payments back end to other users, go to the '[[X-Payments:Managing_users | Users]]' section and [[X-Payments:Managing_users | create new user accounts]].&amp;lt;br /&amp;gt;{{Note1|It is impossible to create another user with full administrator privileges. Such operations as managing users and managing encryption keys are available only to the root admin user, the one whose profile was created during the installation.}}&lt;br /&gt;
# If you are going to store cardholder data, generate [[X-Payments:Encryption_keys | cardholder data encryption keys]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments User Manual]]&lt;/div&gt;</summary>
		<author><name>Alex Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=1009</id>
		<title>X-Payments:PA-DSS implementation guide for X-Cart Payments 3</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=1009"/>
		<updated>2017-07-19T12:36:46Z</updated>

		<summary type="html">&lt;p&gt;Alex Mulin: /* Product versioning methodology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The purpose of this PA-DSS Implementation Guide is to inform employees of organizations using the X-Cart Payments payment application by Qualiteam Software Limited about the methods and means of protection of account data in the X-Cart Payments software.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The methods include the need for compliance with the information security standards in the payment card industry developed by the international payment systems Visa and MasterCard - Payment Card Industry Data Security Standard (PCI DSS) and Payment Application Data Security Standard (PA-DSS). For additional information about PCI DSS, please visit the [https://www.pcisecuritystandards.org/ Official PCI Security Standards Council Site].&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The document provides instructions on how to implement the application in a PCI DSS compliant manner.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Full product name - X-Cart Payments.&amp;lt;br /&amp;gt;&lt;br /&gt;
Product version - 3.1.x.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Any servers used to run the X-Cart Payments payment application must be configured according to this PA-DSS Implementation Guide.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This PA-DSS Implementation Guide should be updated:&lt;br /&gt;
:* at least annually;&lt;br /&gt;
:* after changes in the payment application (if required);&lt;br /&gt;
:* after changes in the PCI DSS and PA-DSS standards.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The updated Version of the PA-DSS Implementation Guide has to be sent to all the merchants using X-Cart Payments.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The history of changes to the X-Cart Payments PA-DSS Implementation Guide is provided in the table below.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Table.1. X-Cart Payments PA-DSS Implementation Guide history of changes''' &amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Author'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Date'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Number'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 60%;&amp;quot;|  '''Change description'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Alex Mulin&lt;br /&gt;
| 05/17/2016&lt;br /&gt;
| 01&lt;br /&gt;
| The original version of the document, designed to meet the requirements of PCI DSS version 3.1 and PA DSS version 3.1&lt;br /&gt;
|- &lt;br /&gt;
| Alex Mulin&lt;br /&gt;
| 05/17/2017&lt;br /&gt;
| 02&lt;br /&gt;
| The original version of the document, designed to meet the requirements of PCI DSS version 3.2 and PA DSS version 3.2&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data protection==&lt;br /&gt;
The PCI DSS and PA-DSS standards prohibit storage of sensitive authentication data (after authorization) or cardholder data in cleartext.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cardholder data includes:&lt;br /&gt;
:* Primary Account Number (PAN) &lt;br /&gt;
:* Cardholder Name &lt;br /&gt;
:* Expiration Date &lt;br /&gt;
:* Service Code &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Sensitive authentication data (SAD) includes: &lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments has the ability to store parts of cardholder data temporarily to perform 3D Secure verification and certain types of transactions for some of the integrated payment processors. During storage, cardholder data is encrypted using RSA 2048 algorithm and AES 256 for key encryption. When its storage period is over, the data is removed automatically via &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments may not be configured to store permanently in the database the following types of data: &lt;br /&gt;
:* Full PAN&lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
The payment application masks PAN on display (except for the moment when the user enters the card number).&lt;br /&gt;
X-Cart Payments can display masked PAN on the &amp;quot;Payment details&amp;quot; pages and in the &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. The same data (partially masked with asterisks) may be passed via the API to the integrated software products. X-Cart Payments does not have the ability to display full PAN anywhere, and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data Collected while Testing==&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments: &lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever choose to collect credit card information to troubleshoot a problem that a customer of yours is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access.&lt;br /&gt;
#* Only collect a limited amount of data (no more than is needed to solve the problem).&lt;br /&gt;
#* Sensitive authentication data must be encrypted during storage. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Sensitive authentication data must be securely deleted immediately after use.&lt;br /&gt;
To prevent uncontrolled storage of cardholder data (for example, in case of operating system failure), it is recommended to disable the swap file or move it to a specially prepared encrypted partition.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Authentication and access==&lt;br /&gt;
The X-Cart Payments payment application has an only user type. This type cannot get access to payment card numbers and does not have any administrative privileges that may affect PA-DSS compliance.&lt;br /&gt;
There are no built-in/default user accounts in X-Cart Payments. You must carefully control access to X-Cart Payments. Follow these rules: &lt;br /&gt;
:* Restrict the number of employees who have access to X-Cart Payments to only those who have a business need.&lt;br /&gt;
:* Always provide unique usernames for each person who needs access.&lt;br /&gt;
:* Do not use system-default usernames and/or passwords.&lt;br /&gt;
:* Ensure that web server is run under a non-privileged user account and the application has access to the database from a limited privilege user account.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To set password lifetime:&lt;br /&gt;
# Log in to X-Cart Payments.&lt;br /&gt;
# Go to Settings -&amp;gt; General Settings.&lt;br /&gt;
# In the &amp;quot;User account password lifetime&amp;quot; field, enter the number of days for which the user account password needs to be valid. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
The following related rules apply:&lt;br /&gt;
:* The minimum password length is 8 characters.&lt;br /&gt;
:* A password must contain both numbers and lower- and uppercase characters.&lt;br /&gt;
:* The last 4 passwords must be unique.&lt;br /&gt;
:* A user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password.&lt;br /&gt;
:* A user is logged off after an inactivity period of 15 minutes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords: &lt;br /&gt;
:* For your Web hosting account administration area (Web hosting account where your online store is hosted);&lt;br /&gt;
:* For FTP access to the Web server;&lt;br /&gt;
:* For Remote Desktop Connection to the Web server (if available);&lt;br /&gt;
:* To connect to the MySQL server that contains your store data.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux authentication mechanism is used for login in the servers with running X-Cart Payments.&lt;br /&gt;
Accounts for access to the operating system are managed by the Linux administrator.&lt;br /&gt;
For Linux operating system accounts, you must configure the following attributes of the password policy:&lt;br /&gt;
:* use personal accounts, do not use any group, shared, or generic accounts and passwords;&lt;br /&gt;
:* changes to user passwords at least once every 90 days;&lt;br /&gt;
:* require a minimum length of at least seven characters;&lt;br /&gt;
:* contain both numeric and alphabetic characters;&lt;br /&gt;
:* do not use last four passwords used previously;&lt;br /&gt;
:* block account after six invalid logon attempts (minimum 30 minutes or until an administrator enables the user ID).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Two-factor authentication must be used for remote access to the operating system. The authentication methods, also known as factors, are:&lt;br /&gt;
:* something you know, such as a password or a passphrase;&lt;br /&gt;
:* something you have, such as a token device or a smart card;&lt;br /&gt;
:* something you are, such as a biometric.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging==&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. Users do not have the ability to disable or change the logging parameters of X-Cart Payments. X-Cart Payments log journal does not contain cardholder data. It is implemented at the source code level. The setting of an event log journal does not require any additional action from users.&lt;br /&gt;
The log files are created in the var/log/ directory. In X-Cart Payments 3.1, logs can be viewed via the X-Cart Payments admin back end. &amp;lt;br /&amp;gt;Make sure you restrict access to the log files by business need-to-know. &lt;br /&gt;
The following types of activity are logged: &lt;br /&gt;
:* All actions taken by any individual with root or administrative privileges.&lt;br /&gt;
:* Successes and failures of all individual accesses to application sections and functions.&lt;br /&gt;
:* Initialization of the audit logs.&lt;br /&gt;
:* User sign in and sign out.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to the files access.log and error.log. &lt;br /&gt;
Each log event includes: &lt;br /&gt;
:* Type of event;&lt;br /&gt;
:* Date and time of event;&lt;br /&gt;
:* Username and IP address;&lt;br /&gt;
:* Success or failure indication;&lt;br /&gt;
:* Action which led to the event;&lt;br /&gt;
:* Component which led to the event.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on the server. This software should: &lt;br /&gt;
:* warn on a checksum change of any of X-Cart Payments source code files except for the log file and the database files;&lt;br /&gt;
:* record any file writing operations related to X-Cart Payments files.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Communication==&lt;br /&gt;
LAN channel or other available connection method can be used as a communication channel.&lt;br /&gt;
X-Cart Payments payment application supports the following data formats:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 20%;&amp;quot;| '''Protocol'''&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 70%;&amp;quot;| HTTP protocol (RFC 2616: HTTP/1.1) is used for data transfer between client and server &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data transmission method'''&lt;br /&gt;
| Only encrypted cardholder data (RSA 2048 and AES 256) is transferred. RAW POST method is used for data transmission - (data stream is transmitted in the body of the request that is sent from client to server)&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data format'''&lt;br /&gt;
| Data is transmitted in XML format (Extensible Markup Language (XML) 1.0) or in plain text using POST query via HTTPS&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Port'''&lt;br /&gt;
| X-Cart Payments payment application uses ports 80, 443 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Network traffic encryption'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for: &lt;br /&gt;
:* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
:* providing remote web-based access to the application.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use some tools to remotely access the application, you should encrypt all the communication using such technologies as TLS or IPSEC. &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As per PCI DSS requirement, cardholder data must never be sent unencrypted by email, and X-Cart Payments does meet this requirement never sending cardholder data by email or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Enable TLS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
TLS protects data that is transmitted between a browser and your web server. It is critical that you have TLS enabled on your web server, and one of the first steps you should take after the installation is to enable TLS. &lt;br /&gt;
:* Your web server must be configured to use TLS v1.1 or v1.2 protocols with strong encryption (128-bit or longer key is required).&lt;br /&gt;
:* You will need to have a certificate issued for your web domain. Read guidelines on installing Comodo's Instant TLS certificates.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If a web server does not have TLS enabled, X-Cart Payments will not function. &lt;br /&gt;
X-Cart Payments does not support remote administrative access. Strong encryption must be used for remote access to the server.&lt;br /&gt;
The connection of servers with X-Cart Payments payment application to the Internet must be protected by a firewall. In X-Cart Payments configurations involving more than one server, server connections should take place in network segments separated from the Internet via stateful inspection firewalls.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Wireless communications'''&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use wireless networking to access X-Cart Payments, it is your responsibility to ensure your wireless security configuration follows the PCI DSS requirements. &lt;br /&gt;
:* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
:* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
:* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
:* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
::* Use with a minimum 104-bit encryption key and 24 bit-initialization value.&lt;br /&gt;
::* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS.&lt;br /&gt;
::* Rotate shared WEP keys quarterly (or automatically if the technology permits).&lt;br /&gt;
::* Rotate shared WEP keys whenever there are changes in personnel with access to keys.&lt;br /&gt;
::* Restrict access based on media access code (MAC) address.&lt;br /&gt;
::* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Remote access'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time codes. Detailed information can be found on the [[X-Payments:Two-factor_authentication | X-Payments:Two-factor authentication]] page. &lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following: &lt;br /&gt;
:* Change the default settings in the remote access software (for example, change the default passwords and use unique passwords for each customer).&lt;br /&gt;
:* Allow connections only from specific (known) IP/MAC addresses.&lt;br /&gt;
:* Use strong authentication or complex passwords for logins.&lt;br /&gt;
:* Enable encrypted data transmission.&lt;br /&gt;
:* Enable account lockout after a certain number of failed login attempts.&lt;br /&gt;
:* Configure the system so a remote user must establish a Virtual Private Network (&amp;quot;VPN&amp;quot;) connection via a firewall before access is allowed.&lt;br /&gt;
:* Enable any logging or auditing functions.&lt;br /&gt;
:* Restrict access to customer passwords to authorized reseller/integrator personnel.&lt;br /&gt;
:* Establish customer passwords according to PCI DSS requirements.&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hardware and software==&lt;br /&gt;
The following requirements must be met for X-Cart Payments payment application self-service terminals:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Operating System'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux Ubuntu 16 or later, Linux Debian 6.0 or later, Linux CentOS 6 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''DBMS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
My SQL 5.6 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''Software'''&amp;lt;br /&amp;gt;&lt;br /&gt;
PHP 5.5 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
Apache 2.4 or later&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Product versioning methodology==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Version number changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%;&amp;quot;| '''Software changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Description'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;|  '''PA-DSS changes'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Version number does not change&lt;br /&gt;
| Change of the software name&amp;lt;br /&amp;gt;Change of the vendor name&lt;br /&gt;
| Changes not related to the software development process&lt;br /&gt;
| Administrative&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the minor version number to reflect a change not affecting the certification. For example, change of the version number from 1.0.5 to 1.0.6 (for the certification of 1.0.x)&lt;br /&gt;
| - Changes to the user interface &amp;lt;br /&amp;gt;- Changes to the database schema &amp;lt;br /&amp;gt;- Changes to supported payment gateway integrations / Addition of new payment gateway integrations&lt;br /&gt;
| Changes that have no impact on the PA-DSS requirements compliance or Payment Application security&lt;br /&gt;
| No Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the second version number. For example, change of the version number from 1.1.* to 1.2.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- Fewer than 4 sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- Fewer than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- Less than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Changes implemented for compatibility with the updated versions of previously tested OS, DBMS and third party software products.&amp;lt;br /&amp;gt;- Addition/removal of supported payment processors.&amp;lt;br /&amp;gt;- Recompilation of the source code using a new compiler or different compiler settings.&amp;lt;br /&amp;gt;- Changes of the software versioning policy.&amp;lt;br /&amp;gt;- Changes of the software not related to security.&lt;br /&gt;
| - Changes in the software affecting payment card data mechanisms.&amp;lt;br /&amp;gt;- Changes addressing the identified vulnerabilities of the application.&amp;lt;br /&amp;gt;- Changes related to the completion of the annual cycle of development (if there are other changes).&lt;br /&gt;
| Low Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the first version number. For example, change of the version number from 1.0.* to 2.0.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- 4 or more sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Addition of new supported platforms/OS versions. &lt;br /&gt;
| Major changes in the software architecture, global alterations of code&lt;br /&gt;
| High Impact&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The release of each new version is accompanied with a notification to all the application users (agents), which indicates the new application version number and a list of main changes in the new version.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==New patches and updates delivery==&lt;br /&gt;
&lt;br /&gt;
New patches, updates, installation instructions and MD5 checksum files are delivered via secure HelpDesk system located at https://secure.x-cart.com using &amp;quot;File Area&amp;quot; section in users accounts there. &lt;br /&gt;
We send newsletters about new patches and updates originating from x-cart.com domain name via verified and well-known email delivery system.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=1008</id>
		<title>X-Payments:PA-DSS implementation guide for X-Cart Payments 3</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=1008"/>
		<updated>2017-07-19T12:18:38Z</updated>

		<summary type="html">&lt;p&gt;Alex Mulin: /* Logging */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The purpose of this PA-DSS Implementation Guide is to inform employees of organizations using the X-Cart Payments payment application by Qualiteam Software Limited about the methods and means of protection of account data in the X-Cart Payments software.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The methods include the need for compliance with the information security standards in the payment card industry developed by the international payment systems Visa and MasterCard - Payment Card Industry Data Security Standard (PCI DSS) and Payment Application Data Security Standard (PA-DSS). For additional information about PCI DSS, please visit the [https://www.pcisecuritystandards.org/ Official PCI Security Standards Council Site].&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The document provides instructions on how to implement the application in a PCI DSS compliant manner.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Full product name - X-Cart Payments.&amp;lt;br /&amp;gt;&lt;br /&gt;
Product version - 3.1.x.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Any servers used to run the X-Cart Payments payment application must be configured according to this PA-DSS Implementation Guide.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This PA-DSS Implementation Guide should be updated:&lt;br /&gt;
:* at least annually;&lt;br /&gt;
:* after changes in the payment application (if required);&lt;br /&gt;
:* after changes in the PCI DSS and PA-DSS standards.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The updated Version of the PA-DSS Implementation Guide has to be sent to all the merchants using X-Cart Payments.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The history of changes to the X-Cart Payments PA-DSS Implementation Guide is provided in the table below.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Table.1. X-Cart Payments PA-DSS Implementation Guide history of changes''' &amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Author'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Date'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Number'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 60%;&amp;quot;|  '''Change description'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Alex Mulin&lt;br /&gt;
| 05/17/2016&lt;br /&gt;
| 01&lt;br /&gt;
| The original version of the document, designed to meet the requirements of PCI DSS version 3.1 and PA DSS version 3.1&lt;br /&gt;
|- &lt;br /&gt;
| Alex Mulin&lt;br /&gt;
| 05/17/2017&lt;br /&gt;
| 02&lt;br /&gt;
| The original version of the document, designed to meet the requirements of PCI DSS version 3.2 and PA DSS version 3.2&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data protection==&lt;br /&gt;
The PCI DSS and PA-DSS standards prohibit storage of sensitive authentication data (after authorization) or cardholder data in cleartext.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cardholder data includes:&lt;br /&gt;
:* Primary Account Number (PAN) &lt;br /&gt;
:* Cardholder Name &lt;br /&gt;
:* Expiration Date &lt;br /&gt;
:* Service Code &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Sensitive authentication data (SAD) includes: &lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments has the ability to store parts of cardholder data temporarily to perform 3D Secure verification and certain types of transactions for some of the integrated payment processors. During storage, cardholder data is encrypted using RSA 2048 algorithm and AES 256 for key encryption. When its storage period is over, the data is removed automatically via &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments may not be configured to store permanently in the database the following types of data: &lt;br /&gt;
:* Full PAN&lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
The payment application masks PAN on display (except for the moment when the user enters the card number).&lt;br /&gt;
X-Cart Payments can display masked PAN on the &amp;quot;Payment details&amp;quot; pages and in the &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. The same data (partially masked with asterisks) may be passed via the API to the integrated software products. X-Cart Payments does not have the ability to display full PAN anywhere, and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data Collected while Testing==&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments: &lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever choose to collect credit card information to troubleshoot a problem that a customer of yours is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access.&lt;br /&gt;
#* Only collect a limited amount of data (no more than is needed to solve the problem).&lt;br /&gt;
#* Sensitive authentication data must be encrypted during storage. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Sensitive authentication data must be securely deleted immediately after use.&lt;br /&gt;
To prevent uncontrolled storage of cardholder data (for example, in case of operating system failure), it is recommended to disable the swap file or move it to a specially prepared encrypted partition.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Authentication and access==&lt;br /&gt;
The X-Cart Payments payment application has an only user type. This type cannot get access to payment card numbers and does not have any administrative privileges that may affect PA-DSS compliance.&lt;br /&gt;
There are no built-in/default user accounts in X-Cart Payments. You must carefully control access to X-Cart Payments. Follow these rules: &lt;br /&gt;
:* Restrict the number of employees who have access to X-Cart Payments to only those who have a business need.&lt;br /&gt;
:* Always provide unique usernames for each person who needs access.&lt;br /&gt;
:* Do not use system-default usernames and/or passwords.&lt;br /&gt;
:* Ensure that web server is run under a non-privileged user account and the application has access to the database from a limited privilege user account.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To set password lifetime:&lt;br /&gt;
# Log in to X-Cart Payments.&lt;br /&gt;
# Go to Settings -&amp;gt; General Settings.&lt;br /&gt;
# In the &amp;quot;User account password lifetime&amp;quot; field, enter the number of days for which the user account password needs to be valid. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
The following related rules apply:&lt;br /&gt;
:* The minimum password length is 8 characters.&lt;br /&gt;
:* A password must contain both numbers and lower- and uppercase characters.&lt;br /&gt;
:* The last 4 passwords must be unique.&lt;br /&gt;
:* A user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password.&lt;br /&gt;
:* A user is logged off after an inactivity period of 15 minutes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords: &lt;br /&gt;
:* For your Web hosting account administration area (Web hosting account where your online store is hosted);&lt;br /&gt;
:* For FTP access to the Web server;&lt;br /&gt;
:* For Remote Desktop Connection to the Web server (if available);&lt;br /&gt;
:* To connect to the MySQL server that contains your store data.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux authentication mechanism is used for login in the servers with running X-Cart Payments.&lt;br /&gt;
Accounts for access to the operating system are managed by the Linux administrator.&lt;br /&gt;
For Linux operating system accounts, you must configure the following attributes of the password policy:&lt;br /&gt;
:* use personal accounts, do not use any group, shared, or generic accounts and passwords;&lt;br /&gt;
:* changes to user passwords at least once every 90 days;&lt;br /&gt;
:* require a minimum length of at least seven characters;&lt;br /&gt;
:* contain both numeric and alphabetic characters;&lt;br /&gt;
:* do not use last four passwords used previously;&lt;br /&gt;
:* block account after six invalid logon attempts (minimum 30 minutes or until an administrator enables the user ID).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Two-factor authentication must be used for remote access to the operating system. The authentication methods, also known as factors, are:&lt;br /&gt;
:* something you know, such as a password or a passphrase;&lt;br /&gt;
:* something you have, such as a token device or a smart card;&lt;br /&gt;
:* something you are, such as a biometric.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging==&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. Users do not have the ability to disable or change the logging parameters of X-Cart Payments. X-Cart Payments log journal does not contain cardholder data. It is implemented at the source code level. The setting of an event log journal does not require any additional action from users.&lt;br /&gt;
The log files are created in the var/log/ directory. In X-Cart Payments 3.1, logs can be viewed via the X-Cart Payments admin back end. &amp;lt;br /&amp;gt;Make sure you restrict access to the log files by business need-to-know. &lt;br /&gt;
The following types of activity are logged: &lt;br /&gt;
:* All actions taken by any individual with root or administrative privileges.&lt;br /&gt;
:* Successes and failures of all individual accesses to application sections and functions.&lt;br /&gt;
:* Initialization of the audit logs.&lt;br /&gt;
:* User sign in and sign out.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to the files access.log and error.log. &lt;br /&gt;
Each log event includes: &lt;br /&gt;
:* Type of event;&lt;br /&gt;
:* Date and time of event;&lt;br /&gt;
:* Username and IP address;&lt;br /&gt;
:* Success or failure indication;&lt;br /&gt;
:* Action which led to the event;&lt;br /&gt;
:* Component which led to the event.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on the server. This software should: &lt;br /&gt;
:* warn on a checksum change of any of X-Cart Payments source code files except for the log file and the database files;&lt;br /&gt;
:* record any file writing operations related to X-Cart Payments files.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Communication==&lt;br /&gt;
LAN channel or other available connection method can be used as a communication channel.&lt;br /&gt;
X-Cart Payments payment application supports the following data formats:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 20%;&amp;quot;| '''Protocol'''&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 70%;&amp;quot;| HTTP protocol (RFC 2616: HTTP/1.1) is used for data transfer between client and server &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data transmission method'''&lt;br /&gt;
| Only encrypted cardholder data (RSA 2048 and AES 256) is transferred. RAW POST method is used for data transmission - (data stream is transmitted in the body of the request that is sent from client to server)&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data format'''&lt;br /&gt;
| Data is transmitted in XML format (Extensible Markup Language (XML) 1.0) or in plain text using POST query via HTTPS&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Port'''&lt;br /&gt;
| X-Cart Payments payment application uses ports 80, 443 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Network traffic encryption'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for: &lt;br /&gt;
:* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
:* providing remote web-based access to the application.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use some tools to remotely access the application, you should encrypt all the communication using such technologies as TLS or IPSEC. &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As per PCI DSS requirement, cardholder data must never be sent unencrypted by email, and X-Cart Payments does meet this requirement never sending cardholder data by email or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Enable TLS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
TLS protects data that is transmitted between a browser and your web server. It is critical that you have TLS enabled on your web server, and one of the first steps you should take after the installation is to enable TLS. &lt;br /&gt;
:* Your web server must be configured to use TLS v1.1 or v1.2 protocols with strong encryption (128-bit or longer key is required).&lt;br /&gt;
:* You will need to have a certificate issued for your web domain. Read guidelines on installing Comodo's Instant TLS certificates.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If a web server does not have TLS enabled, X-Cart Payments will not function. &lt;br /&gt;
X-Cart Payments does not support remote administrative access. Strong encryption must be used for remote access to the server.&lt;br /&gt;
The connection of servers with X-Cart Payments payment application to the Internet must be protected by a firewall. In X-Cart Payments configurations involving more than one server, server connections should take place in network segments separated from the Internet via stateful inspection firewalls.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Wireless communications'''&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use wireless networking to access X-Cart Payments, it is your responsibility to ensure your wireless security configuration follows the PCI DSS requirements. &lt;br /&gt;
:* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
:* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
:* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
:* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
::* Use with a minimum 104-bit encryption key and 24 bit-initialization value.&lt;br /&gt;
::* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS.&lt;br /&gt;
::* Rotate shared WEP keys quarterly (or automatically if the technology permits).&lt;br /&gt;
::* Rotate shared WEP keys whenever there are changes in personnel with access to keys.&lt;br /&gt;
::* Restrict access based on media access code (MAC) address.&lt;br /&gt;
::* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Remote access'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time codes. Detailed information can be found on the [[X-Payments:Two-factor_authentication | X-Payments:Two-factor authentication]] page. &lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following: &lt;br /&gt;
:* Change the default settings in the remote access software (for example, change the default passwords and use unique passwords for each customer).&lt;br /&gt;
:* Allow connections only from specific (known) IP/MAC addresses.&lt;br /&gt;
:* Use strong authentication or complex passwords for logins.&lt;br /&gt;
:* Enable encrypted data transmission.&lt;br /&gt;
:* Enable account lockout after a certain number of failed login attempts.&lt;br /&gt;
:* Configure the system so a remote user must establish a Virtual Private Network (&amp;quot;VPN&amp;quot;) connection via a firewall before access is allowed.&lt;br /&gt;
:* Enable any logging or auditing functions.&lt;br /&gt;
:* Restrict access to customer passwords to authorized reseller/integrator personnel.&lt;br /&gt;
:* Establish customer passwords according to PCI DSS requirements.&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hardware and software==&lt;br /&gt;
The following requirements must be met for X-Cart Payments payment application self-service terminals:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Operating System'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux Ubuntu 16 or later, Linux Debian 6.0 or later, Linux CentOS 6 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''DBMS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
My SQL 5.6 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''Software'''&amp;lt;br /&amp;gt;&lt;br /&gt;
PHP 5.5 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
Apache 2.4 or later&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Product versioning methodology==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Version number changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%;&amp;quot;| '''Software changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Description'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;|  '''PA-DSS changes'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Version number does not change&lt;br /&gt;
| Change of the software name&amp;lt;br /&amp;gt;Change of the vendor name&lt;br /&gt;
| Changes not related to the software development process&lt;br /&gt;
| Administrative&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the minor version number to reflect a change not affecting the certification. For example, change of the version number from 1.0.5 to 1.0.6 (for the certification of 1.0.x)&lt;br /&gt;
| - Changes to the user interface &amp;lt;br /&amp;gt;- Changes to the database schema &amp;lt;br /&amp;gt;- Changes to supported payment gateway integrations / Addition of new payment gateway integrations&lt;br /&gt;
| Changes that have no impact on the PA-DSS requirements compliance or Payment Application security&lt;br /&gt;
| No Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the second version number. For example, change of the version number from 1.1.* to 1.2.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- Fewer than 4 sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- Fewer than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- Less than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Changes implemented for compatibility with the updated versions of previously tested OS, DBMS and third party software products.&amp;lt;br /&amp;gt;- Addition/removal of supported payment processors.&amp;lt;br /&amp;gt;- Recompilation of the source code using a new compiler or different compiler settings.&amp;lt;br /&amp;gt;- Changes of the software versioning policy.&amp;lt;br /&amp;gt;- Changes of the software not related to security.&lt;br /&gt;
| - Changes in the software affecting payment card data mechanisms.&amp;lt;br /&amp;gt;- Changes addressing the identified vulnerabilities of the application.&amp;lt;br /&amp;gt;- Changes related to the completion of the annual cycle of development (if there are other changes).&lt;br /&gt;
| Low Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the first version number. For example, change of the version number from 1.0.* to 2.0.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- 4 or more sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Addition of new supported platforms/OS versions. &lt;br /&gt;
| Major changes in the software architecture, global alterations of code&lt;br /&gt;
| High Impact&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The release of each new version is accompanied with a notification to all the application users (agents), which indicates the new application version number and a list of main changes in the new version.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=1007</id>
		<title>X-Payments:PA-DSS implementation guide for X-Cart Payments 3</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=1007"/>
		<updated>2017-07-19T12:18:00Z</updated>

		<summary type="html">&lt;p&gt;Alex Mulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The purpose of this PA-DSS Implementation Guide is to inform employees of organizations using the X-Cart Payments payment application by Qualiteam Software Limited about the methods and means of protection of account data in the X-Cart Payments software.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The methods include the need for compliance with the information security standards in the payment card industry developed by the international payment systems Visa and MasterCard - Payment Card Industry Data Security Standard (PCI DSS) and Payment Application Data Security Standard (PA-DSS). For additional information about PCI DSS, please visit the [https://www.pcisecuritystandards.org/ Official PCI Security Standards Council Site].&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The document provides instructions on how to implement the application in a PCI DSS compliant manner.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Full product name - X-Cart Payments.&amp;lt;br /&amp;gt;&lt;br /&gt;
Product version - 3.1.x.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Any servers used to run the X-Cart Payments payment application must be configured according to this PA-DSS Implementation Guide.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This PA-DSS Implementation Guide should be updated:&lt;br /&gt;
:* at least annually;&lt;br /&gt;
:* after changes in the payment application (if required);&lt;br /&gt;
:* after changes in the PCI DSS and PA-DSS standards.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The updated Version of the PA-DSS Implementation Guide has to be sent to all the merchants using X-Cart Payments.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The history of changes to the X-Cart Payments PA-DSS Implementation Guide is provided in the table below.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Table.1. X-Cart Payments PA-DSS Implementation Guide history of changes''' &amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Author'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Date'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Number'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 60%;&amp;quot;|  '''Change description'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Alex Mulin&lt;br /&gt;
| 05/17/2016&lt;br /&gt;
| 01&lt;br /&gt;
| The original version of the document, designed to meet the requirements of PCI DSS version 3.1 and PA DSS version 3.1&lt;br /&gt;
|- &lt;br /&gt;
| Alex Mulin&lt;br /&gt;
| 05/17/2017&lt;br /&gt;
| 02&lt;br /&gt;
| The original version of the document, designed to meet the requirements of PCI DSS version 3.2 and PA DSS version 3.2&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data protection==&lt;br /&gt;
The PCI DSS and PA-DSS standards prohibit storage of sensitive authentication data (after authorization) or cardholder data in cleartext.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cardholder data includes:&lt;br /&gt;
:* Primary Account Number (PAN) &lt;br /&gt;
:* Cardholder Name &lt;br /&gt;
:* Expiration Date &lt;br /&gt;
:* Service Code &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Sensitive authentication data (SAD) includes: &lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments has the ability to store parts of cardholder data temporarily to perform 3D Secure verification and certain types of transactions for some of the integrated payment processors. During storage, cardholder data is encrypted using RSA 2048 algorithm and AES 256 for key encryption. When its storage period is over, the data is removed automatically via &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments may not be configured to store permanently in the database the following types of data: &lt;br /&gt;
:* Full PAN&lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
The payment application masks PAN on display (except for the moment when the user enters the card number).&lt;br /&gt;
X-Cart Payments can display masked PAN on the &amp;quot;Payment details&amp;quot; pages and in the &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. The same data (partially masked with asterisks) may be passed via the API to the integrated software products. X-Cart Payments does not have the ability to display full PAN anywhere, and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data Collected while Testing==&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments: &lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever choose to collect credit card information to troubleshoot a problem that a customer of yours is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access.&lt;br /&gt;
#* Only collect a limited amount of data (no more than is needed to solve the problem).&lt;br /&gt;
#* Sensitive authentication data must be encrypted during storage. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Sensitive authentication data must be securely deleted immediately after use.&lt;br /&gt;
To prevent uncontrolled storage of cardholder data (for example, in case of operating system failure), it is recommended to disable the swap file or move it to a specially prepared encrypted partition.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Authentication and access==&lt;br /&gt;
The X-Cart Payments payment application has an only user type. This type cannot get access to payment card numbers and does not have any administrative privileges that may affect PA-DSS compliance.&lt;br /&gt;
There are no built-in/default user accounts in X-Cart Payments. You must carefully control access to X-Cart Payments. Follow these rules: &lt;br /&gt;
:* Restrict the number of employees who have access to X-Cart Payments to only those who have a business need.&lt;br /&gt;
:* Always provide unique usernames for each person who needs access.&lt;br /&gt;
:* Do not use system-default usernames and/or passwords.&lt;br /&gt;
:* Ensure that web server is run under a non-privileged user account and the application has access to the database from a limited privilege user account.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To set password lifetime:&lt;br /&gt;
# Log in to X-Cart Payments.&lt;br /&gt;
# Go to Settings -&amp;gt; General Settings.&lt;br /&gt;
# In the &amp;quot;User account password lifetime&amp;quot; field, enter the number of days for which the user account password needs to be valid. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
The following related rules apply:&lt;br /&gt;
:* The minimum password length is 8 characters.&lt;br /&gt;
:* A password must contain both numbers and lower- and uppercase characters.&lt;br /&gt;
:* The last 4 passwords must be unique.&lt;br /&gt;
:* A user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password.&lt;br /&gt;
:* A user is logged off after an inactivity period of 15 minutes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords: &lt;br /&gt;
:* For your Web hosting account administration area (Web hosting account where your online store is hosted);&lt;br /&gt;
:* For FTP access to the Web server;&lt;br /&gt;
:* For Remote Desktop Connection to the Web server (if available);&lt;br /&gt;
:* To connect to the MySQL server that contains your store data.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux authentication mechanism is used for login in the servers with running X-Cart Payments.&lt;br /&gt;
Accounts for access to the operating system are managed by the Linux administrator.&lt;br /&gt;
For Linux operating system accounts, you must configure the following attributes of the password policy:&lt;br /&gt;
:* use personal accounts, do not use any group, shared, or generic accounts and passwords;&lt;br /&gt;
:* changes to user passwords at least once every 90 days;&lt;br /&gt;
:* require a minimum length of at least seven characters;&lt;br /&gt;
:* contain both numeric and alphabetic characters;&lt;br /&gt;
:* do not use last four passwords used previously;&lt;br /&gt;
:* block account after six invalid logon attempts (minimum 30 minutes or until an administrator enables the user ID).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Two-factor authentication must be used for remote access to the operating system. The authentication methods, also known as factors, are:&lt;br /&gt;
:* something you know, such as a password or a passphrase;&lt;br /&gt;
:* something you have, such as a token device or a smart card;&lt;br /&gt;
:* something you are, such as a biometric.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging==&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. Users do not have the ability to disable or change the logging parameters of X-Cart Payments. X-Cart Payments log journal does not contain cardholder data. It is implemented at the source code level. The setting of an event log journal does not require any additional action from users.&lt;br /&gt;
The log files are created in the var/log/ directory. In X-Cart Payments 3.0, logs can be viewed via the X-Cart Payments admin back end. &amp;lt;br /&amp;gt;Make sure you restrict access to the log files by business need-to-know. &lt;br /&gt;
The following types of activity are logged: &lt;br /&gt;
:* All actions taken by any individual with root or administrative privileges.&lt;br /&gt;
:* Successes and failures of all individual accesses to application sections and functions.&lt;br /&gt;
:* Initialization of the audit logs.&lt;br /&gt;
:* User sign in and sign out.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to the files access.log and error.log. &lt;br /&gt;
Each log event includes: &lt;br /&gt;
:* Type of event;&lt;br /&gt;
:* Date and time of event;&lt;br /&gt;
:* Username and IP address;&lt;br /&gt;
:* Success or failure indication;&lt;br /&gt;
:* Action which led to the event;&lt;br /&gt;
:* Component which led to the event.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on the server. This software should: &lt;br /&gt;
:* warn on a checksum change of any of X-Cart Payments source code files except for the log file and the database files;&lt;br /&gt;
:* record any file writing operations related to X-Cart Payments files.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Communication==&lt;br /&gt;
LAN channel or other available connection method can be used as a communication channel.&lt;br /&gt;
X-Cart Payments payment application supports the following data formats:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 20%;&amp;quot;| '''Protocol'''&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 70%;&amp;quot;| HTTP protocol (RFC 2616: HTTP/1.1) is used for data transfer between client and server &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data transmission method'''&lt;br /&gt;
| Only encrypted cardholder data (RSA 2048 and AES 256) is transferred. RAW POST method is used for data transmission - (data stream is transmitted in the body of the request that is sent from client to server)&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data format'''&lt;br /&gt;
| Data is transmitted in XML format (Extensible Markup Language (XML) 1.0) or in plain text using POST query via HTTPS&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Port'''&lt;br /&gt;
| X-Cart Payments payment application uses ports 80, 443 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Network traffic encryption'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for: &lt;br /&gt;
:* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
:* providing remote web-based access to the application.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use some tools to remotely access the application, you should encrypt all the communication using such technologies as TLS or IPSEC. &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As per PCI DSS requirement, cardholder data must never be sent unencrypted by email, and X-Cart Payments does meet this requirement never sending cardholder data by email or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Enable TLS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
TLS protects data that is transmitted between a browser and your web server. It is critical that you have TLS enabled on your web server, and one of the first steps you should take after the installation is to enable TLS. &lt;br /&gt;
:* Your web server must be configured to use TLS v1.1 or v1.2 protocols with strong encryption (128-bit or longer key is required).&lt;br /&gt;
:* You will need to have a certificate issued for your web domain. Read guidelines on installing Comodo's Instant TLS certificates.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If a web server does not have TLS enabled, X-Cart Payments will not function. &lt;br /&gt;
X-Cart Payments does not support remote administrative access. Strong encryption must be used for remote access to the server.&lt;br /&gt;
The connection of servers with X-Cart Payments payment application to the Internet must be protected by a firewall. In X-Cart Payments configurations involving more than one server, server connections should take place in network segments separated from the Internet via stateful inspection firewalls.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Wireless communications'''&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use wireless networking to access X-Cart Payments, it is your responsibility to ensure your wireless security configuration follows the PCI DSS requirements. &lt;br /&gt;
:* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
:* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
:* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
:* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
::* Use with a minimum 104-bit encryption key and 24 bit-initialization value.&lt;br /&gt;
::* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS.&lt;br /&gt;
::* Rotate shared WEP keys quarterly (or automatically if the technology permits).&lt;br /&gt;
::* Rotate shared WEP keys whenever there are changes in personnel with access to keys.&lt;br /&gt;
::* Restrict access based on media access code (MAC) address.&lt;br /&gt;
::* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Remote access'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time codes. Detailed information can be found on the [[X-Payments:Two-factor_authentication | X-Payments:Two-factor authentication]] page. &lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following: &lt;br /&gt;
:* Change the default settings in the remote access software (for example, change the default passwords and use unique passwords for each customer).&lt;br /&gt;
:* Allow connections only from specific (known) IP/MAC addresses.&lt;br /&gt;
:* Use strong authentication or complex passwords for logins.&lt;br /&gt;
:* Enable encrypted data transmission.&lt;br /&gt;
:* Enable account lockout after a certain number of failed login attempts.&lt;br /&gt;
:* Configure the system so a remote user must establish a Virtual Private Network (&amp;quot;VPN&amp;quot;) connection via a firewall before access is allowed.&lt;br /&gt;
:* Enable any logging or auditing functions.&lt;br /&gt;
:* Restrict access to customer passwords to authorized reseller/integrator personnel.&lt;br /&gt;
:* Establish customer passwords according to PCI DSS requirements.&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hardware and software==&lt;br /&gt;
The following requirements must be met for X-Cart Payments payment application self-service terminals:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Operating System'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux Ubuntu 16 or later, Linux Debian 6.0 or later, Linux CentOS 6 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''DBMS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
My SQL 5.6 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''Software'''&amp;lt;br /&amp;gt;&lt;br /&gt;
PHP 5.5 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
Apache 2.4 or later&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Product versioning methodology==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Version number changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%;&amp;quot;| '''Software changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Description'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;|  '''PA-DSS changes'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Version number does not change&lt;br /&gt;
| Change of the software name&amp;lt;br /&amp;gt;Change of the vendor name&lt;br /&gt;
| Changes not related to the software development process&lt;br /&gt;
| Administrative&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the minor version number to reflect a change not affecting the certification. For example, change of the version number from 1.0.5 to 1.0.6 (for the certification of 1.0.x)&lt;br /&gt;
| - Changes to the user interface &amp;lt;br /&amp;gt;- Changes to the database schema &amp;lt;br /&amp;gt;- Changes to supported payment gateway integrations / Addition of new payment gateway integrations&lt;br /&gt;
| Changes that have no impact on the PA-DSS requirements compliance or Payment Application security&lt;br /&gt;
| No Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the second version number. For example, change of the version number from 1.1.* to 1.2.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- Fewer than 4 sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- Fewer than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- Less than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Changes implemented for compatibility with the updated versions of previously tested OS, DBMS and third party software products.&amp;lt;br /&amp;gt;- Addition/removal of supported payment processors.&amp;lt;br /&amp;gt;- Recompilation of the source code using a new compiler or different compiler settings.&amp;lt;br /&amp;gt;- Changes of the software versioning policy.&amp;lt;br /&amp;gt;- Changes of the software not related to security.&lt;br /&gt;
| - Changes in the software affecting payment card data mechanisms.&amp;lt;br /&amp;gt;- Changes addressing the identified vulnerabilities of the application.&amp;lt;br /&amp;gt;- Changes related to the completion of the annual cycle of development (if there are other changes).&lt;br /&gt;
| Low Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the first version number. For example, change of the version number from 1.0.* to 2.0.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- 4 or more sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Addition of new supported platforms/OS versions. &lt;br /&gt;
| Major changes in the software architecture, global alterations of code&lt;br /&gt;
| High Impact&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The release of each new version is accompanied with a notification to all the application users (agents), which indicates the new application version number and a list of main changes in the new version.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:X-Payments-Hosted-FAQ&amp;diff=993</id>
		<title>X-Payments:X-Payments-Hosted-FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:X-Payments-Hosted-FAQ&amp;diff=993"/>
		<updated>2017-05-31T09:24:54Z</updated>

		<summary type="html">&lt;p&gt;Alex Mulin: /* What do I need to put as &amp;quot;Callback IP&amp;quot;? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===What do I need to put as &amp;quot;Callback IP&amp;quot;?===&lt;br /&gt;
&lt;br /&gt;
If you use the X-Payments Hosted solution at &amp;quot;*.x-checkout.com&amp;quot; domain you should use IP address '''98.142.211.162''' (if your account is based on X-Payments v1.x or v2.x) or '''104.200.146.25''' (if X-Payments v3.x).&lt;br /&gt;
&lt;br /&gt;
If you use X-Payments Hosted at &amp;quot;*.xpayments.com&amp;quot; domain you need to specify '''52.36.122.200'''.&lt;br /&gt;
&lt;br /&gt;
===How to configure an FTP client to connect to the yourdomain.x-checkout.com to access skins and logs?===&lt;br /&gt;
&lt;br /&gt;
X-Payments 3.x does not support FTP connections. You can use XP 3.x admin back-end to access skins and logs in this version.&lt;br /&gt;
&lt;br /&gt;
The instructions below are valid only for X-Payments versions 2.x and earlier.&lt;br /&gt;
&lt;br /&gt;
To establish an FTP connection, you should use the details from the email received when your account was created:&lt;br /&gt;
&lt;br /&gt;
:* host: yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
:* user: skins@yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
:* password: the one that you've received &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please make sure that the &amp;quot;Explicit FTP over TLS&amp;quot; mode is used. This is required because plain text authentication is not allowed for PCI compliance.&lt;br /&gt;
&lt;br /&gt;
Instructions for FileZilla FTP Client:&lt;br /&gt;
&lt;br /&gt;
# Start FileZilla&lt;br /&gt;
# Go to File -&amp;gt; Site Manager&lt;br /&gt;
# Click New site&lt;br /&gt;
# Enter the connection settings:&lt;br /&gt;
#* Host: yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Port: leave blank &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Protocol: FTP - File Transfer Protocol &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Encryption: Require explict FTP over TLS &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Logon type: Normal &amp;lt;br /&amp;gt;&lt;br /&gt;
#* user: skins@yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
#* password: the one that you've received &amp;lt;br /&amp;gt;[[File:Filezilla.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
# Click the Connect button&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments User Manual]]&lt;/div&gt;</summary>
		<author><name>Alex Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:X-Payments-Hosted-FAQ&amp;diff=992</id>
		<title>X-Payments:X-Payments-Hosted-FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:X-Payments-Hosted-FAQ&amp;diff=992"/>
		<updated>2017-05-31T08:26:18Z</updated>

		<summary type="html">&lt;p&gt;Alex Mulin: /* What do I need to put as &amp;quot;Callback IP&amp;quot;? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===What do I need to put as &amp;quot;Callback IP&amp;quot;?===&lt;br /&gt;
&lt;br /&gt;
If you use the X-Payments Hosted solution at &amp;quot;*.x-checkout.com&amp;quot; domain you should use IP address '''98.142.211.162''' if your account is based on X-Payments v1.x or v2.x or '''104.200.146.25''' if X-Payments v3.x&lt;br /&gt;
If you use X-Payments Hosted at &amp;quot;*.xpayments.com&amp;quot; domain you need to specify '''52.36.122.200'''.&lt;br /&gt;
&lt;br /&gt;
===How to configure an FTP client to connect to the yourdomain.x-checkout.com to access skins and logs?===&lt;br /&gt;
&lt;br /&gt;
X-Payments 3.x does not support FTP connections. You can use XP 3.x admin back-end to access skins and logs in this version.&lt;br /&gt;
&lt;br /&gt;
The instructions below are valid only for X-Payments versions 2.x and earlier.&lt;br /&gt;
&lt;br /&gt;
To establish an FTP connection, you should use the details from the email received when your account was created:&lt;br /&gt;
&lt;br /&gt;
:* host: yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
:* user: skins@yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
:* password: the one that you've received &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please make sure that the &amp;quot;Explicit FTP over TLS&amp;quot; mode is used. This is required because plain text authentication is not allowed for PCI compliance.&lt;br /&gt;
&lt;br /&gt;
Instructions for FileZilla FTP Client:&lt;br /&gt;
&lt;br /&gt;
# Start FileZilla&lt;br /&gt;
# Go to File -&amp;gt; Site Manager&lt;br /&gt;
# Click New site&lt;br /&gt;
# Enter the connection settings:&lt;br /&gt;
#* Host: yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Port: leave blank &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Protocol: FTP - File Transfer Protocol &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Encryption: Require explict FTP over TLS &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Logon type: Normal &amp;lt;br /&amp;gt;&lt;br /&gt;
#* user: skins@yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
#* password: the one that you've received &amp;lt;br /&amp;gt;[[File:Filezilla.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
# Click the Connect button&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments User Manual]]&lt;/div&gt;</summary>
		<author><name>Alex Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=Blog&amp;diff=977</id>
		<title>Blog</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=Blog&amp;diff=977"/>
		<updated>2017-04-26T12:34:22Z</updated>

		<summary type="html">&lt;p&gt;Alex Mulin: Created page with &amp;quot;X-Payments blog&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;X-Payments blog&lt;/div&gt;</summary>
		<author><name>Alex Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:X-Payments-Hosted-FAQ&amp;diff=976</id>
		<title>X-Payments:X-Payments-Hosted-FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:X-Payments-Hosted-FAQ&amp;diff=976"/>
		<updated>2017-04-20T13:25:53Z</updated>

		<summary type="html">&lt;p&gt;Alex Mulin: /* How to configure an FTP client to connect to the yourdomain.x-checkout.com to access skins and logs? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===What do I need to put as &amp;quot;Callback IP&amp;quot;?===&lt;br /&gt;
&lt;br /&gt;
If you use the X-Payments Hosted solution at &amp;quot;*.x-checkout.com&amp;quot; domain you should use IP address '''98.142.211.162''' if your account is based on X-Payments v1.x or v2.x or '''104.200.146.25''' if X-Payments v3.x&lt;br /&gt;
If you use X-Payments Hosted at &amp;quot;*.xpayments.com&amp;quot; domain you need to specify 52.36.122.200.&lt;br /&gt;
&lt;br /&gt;
===How to configure an FTP client to connect to the yourdomain.x-checkout.com to access skins and logs?===&lt;br /&gt;
&lt;br /&gt;
X-Payments 3.x does not support FTP connections. You can use XP 3.x admin back-end to access skins and logs in this version.&lt;br /&gt;
&lt;br /&gt;
The instructions below are valid only for X-Payments versions 2.x and earlier.&lt;br /&gt;
&lt;br /&gt;
To establish an FTP connection, you should use the details from the email received when your account was created:&lt;br /&gt;
&lt;br /&gt;
:* host: yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
:* user: skins@yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
:* password: the one that you've received &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please make sure that the &amp;quot;Explicit FTP over TLS&amp;quot; mode is used. This is required because plain text authentication is not allowed for PCI compliance.&lt;br /&gt;
&lt;br /&gt;
Instructions for FileZilla FTP Client:&lt;br /&gt;
&lt;br /&gt;
# Start FileZilla&lt;br /&gt;
# Go to File -&amp;gt; Site Manager&lt;br /&gt;
# Click New site&lt;br /&gt;
# Enter the connection settings:&lt;br /&gt;
#* Host: yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Port: leave blank &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Protocol: FTP - File Transfer Protocol &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Encryption: Require explict FTP over TLS &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Logon type: Normal &amp;lt;br /&amp;gt;&lt;br /&gt;
#* user: skins@yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
#* password: the one that you've received &amp;lt;br /&amp;gt;[[File:Filezilla.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
# Click the Connect button&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments User Manual]]&lt;/div&gt;</summary>
		<author><name>Alex Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:X-Payments-Hosted-FAQ&amp;diff=975</id>
		<title>X-Payments:X-Payments-Hosted-FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:X-Payments-Hosted-FAQ&amp;diff=975"/>
		<updated>2017-04-20T13:22:52Z</updated>

		<summary type="html">&lt;p&gt;Alex Mulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===What do I need to put as &amp;quot;Callback IP&amp;quot;?===&lt;br /&gt;
&lt;br /&gt;
If you use the X-Payments Hosted solution at &amp;quot;*.x-checkout.com&amp;quot; domain you should use IP address '''98.142.211.162''' if your account is based on X-Payments v1.x or v2.x or '''104.200.146.25''' if X-Payments v3.x&lt;br /&gt;
If you use X-Payments Hosted at &amp;quot;*.xpayments.com&amp;quot; domain you need to specify 52.36.122.200.&lt;br /&gt;
&lt;br /&gt;
===How to configure an FTP client to connect to the yourdomain.x-checkout.com to access skins and logs?===&lt;br /&gt;
&lt;br /&gt;
X-Payments 3.x does not support FTP connections. The instructions below are valid only for X-Payments versions 2.x and earlier.&lt;br /&gt;
&lt;br /&gt;
To establish an FTP connection, you should use the details from the email received when your account was created:&lt;br /&gt;
&lt;br /&gt;
:* host: yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
:* user: skins@yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
:* password: the one that you've received &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please make sure that the &amp;quot;Explicit FTP over TLS&amp;quot; mode is used. This is required because plain text authentication is not allowed for PCI compliance.&lt;br /&gt;
&lt;br /&gt;
Instructions for FileZilla FTP Client:&lt;br /&gt;
&lt;br /&gt;
# Start FileZilla&lt;br /&gt;
# Go to File -&amp;gt; Site Manager&lt;br /&gt;
# Click New site&lt;br /&gt;
# Enter the connection settings:&lt;br /&gt;
#* Host: yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Port: leave blank &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Protocol: FTP - File Transfer Protocol &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Encryption: Require explict FTP over TLS &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Logon type: Normal &amp;lt;br /&amp;gt;&lt;br /&gt;
#* user: skins@yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
#* password: the one that you've received &amp;lt;br /&amp;gt;[[File:Filezilla.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
# Click the Connect button&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments User Manual]]&lt;/div&gt;</summary>
		<author><name>Alex Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:How_It_Works&amp;diff=895</id>
		<title>X-Payments:How It Works</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:How_It_Works&amp;diff=895"/>
		<updated>2016-12-20T11:04:13Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{XP_manual_TOC}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==X-Payments flow via diagram==&lt;br /&gt;
:[[File:XP-diagram.png|700px|border]]&lt;br /&gt;
&lt;br /&gt;
===API Call===&lt;br /&gt;
&lt;br /&gt;
1) Store initiates an API call to X-Payments to create a payment (Created payments can be [[X-Payments:User_manual#Viewing_Payments|viewed]] on the 'Payments' page in X-Payments back end). At this step store sends to X-Payments all information about the customer (billing and shipping address) and the products being purchased (product quantities and cost). In addition to that, store instructs X-Payments as to which payment configuration should be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) X-Payments validates this initial request from the store: checks whether the requested [[X-Payments:User_manual#Payment_Configurations|payment configuration]] is [[X-Payments:Managing store connections#Editing Online Store Details|active]], whether the payment currency passed on to X-Payments by the store matches the currency specified in the respective payment configuration in X-Payments, and makes some other internal checks; for instance, a check is conducted to ensure that the template files for the page where customers enter cardholder data have not been modified without approval by X-Payments admin. If everything is fine, X-Payments returns a [[X-Payments:API#Response_specification | payment &amp;quot;token&amp;quot;]] to the store (The token serves as a temporary identifier of the payment in X-Payments; it is generated as a result of the API call and is removed after the customer is redirected back to the store when the payment is completed). If a problem is detected, no token is sent to the store, and an internal error is generated in X-Payments. Detailed information about such errors can be found in the X-Payments and X-Cart logs:&amp;lt;br /&amp;gt;&lt;br /&gt;
* X-Payments: See the &amp;lt;u&amp;gt;&amp;lt;xpay-dir&amp;gt;/var/log/api/YYYY-MM-DD/&amp;lt;/u&amp;gt; directory&lt;br /&gt;
* X-Cart: See the &amp;lt;u&amp;gt;&amp;lt;xcart-dir&amp;gt;/var/log/x-errors_xpay_connector-YYMMDD.php&amp;lt;/u&amp;gt; file&lt;br /&gt;
&lt;br /&gt;
===Payment===&lt;br /&gt;
&lt;br /&gt;
3) Customer is redirected to the X-Payments secure page where the form for entering credit card details is located. If the iframe is used, this redirect is not visible to customer, as the form is embedded into the checkout page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) Customer enters credit card details and submits the form. These details are sent to the payment gateway along with other data previously received by X-Payments (address details, products being purchased, etc).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5) Payment gateway operates with the bank to charge the card (or authorize the funds in case of an &amp;quot;auth only&amp;quot; transaction) and sends back to X-Payments the information about the transaction.&lt;br /&gt;
&lt;br /&gt;
The log of communication between X-Payments and the payment gateway can be found in the &amp;lt;u&amp;gt;&amp;lt;xpay-dir&amp;gt;/var/log/payment/YYYY-MM-DD/&amp;lt;/u&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===Callback from gateway (PayPal) to X-Payments===&lt;br /&gt;
&lt;br /&gt;
6) Some payment gateways also send back to X-Payments an additional &amp;quot;callback&amp;quot; request. This &amp;quot;callback&amp;quot; request provides detailed information about the transaction and also helps to validate/confirm the transaction. Currently only PayPal Payments PRO operates in X-Payments in such a way. As an additional protection, X-Payments allows you to specify the IP addresses from which the gateway's callback requests can be received. Provided with a list of trusted Call-back IPs for PayPal, X-Payments will only accept &amp;quot;callback&amp;quot; requests coming from PayPal's server and ignore all other requests coming from anywhere else, should such requests be made. The list of PayPal's IP addresses can be found here: https://ppmts.custhelp.com/app/answers/detail/a_id/92&lt;br /&gt;
If you wish to use this additional protection, you can enter the necessary IP addresses into [[X-Payments:Configuring_PayPal_payment_modules_in_X-Payments#PayPalPaymentsProPayPalAPIconfsettings|PayPal payment configuration settings]] in X-Payments back end.&lt;br /&gt;
&lt;br /&gt;
The log of payment gateway callback request processing is saved to the &amp;lt;u&amp;gt;&amp;lt;xpay-dir&amp;gt;/var/log/callback/YYYY-MM-DD/&amp;lt;/u&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===Invoice===&lt;br /&gt;
&lt;br /&gt;
7) Customer is redirected back to the store where the Invoice page is displayed.&lt;br /&gt;
If the transaction is declined by the payment gateway for some reason, the error page is displayed. Additional information about the reasons of the transaction being declined can be found in the X-Payments admin back end on the 'Payment details' page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Callback from X-Payments to the store===&lt;br /&gt;
&lt;br /&gt;
8) Detailed information about the payment is sent to the store via a &amp;quot;callback&amp;quot; request.&lt;br /&gt;
The same functionality (&amp;quot;callback&amp;quot; requests) is used to notify the store if the payment has been changed via X-Payments admin back end; for example, if a secondary transaction took place ('Capture' or 'Void' for an authorized  transaction, 'Refund' for a charge).&lt;br /&gt;
&lt;br /&gt;
X-Cart allows additional protection for callback requests from X-Payments: thus you can specify the IP addresses for X-Payments callbacks in X-Payments connector module settings: http://help.x-cart.com/index.php?title=X-Cart:X-Payments_Connector. X-Cart will accept only those callback requests that come from the specified IP addresses, others will be ignored.&lt;br /&gt;
&lt;br /&gt;
'''Important''': On some server configurations the IP address from which the callback request comes may not match the IP of the server where X-Payments is installed as illustrated below:&lt;br /&gt;
&lt;br /&gt;
:[[File:XP-diagram1.png|700px|border]]&lt;br /&gt;
&lt;br /&gt;
Even if X-Payments is installed on the 172.18.0.3 IP address, and is accessible via web by it, the outgoing request is received from the &amp;quot;proxy&amp;quot; of 172.18.0.0. So, it is recommended to verify the IP address for outgoing HTTPS connections with your hosting provider.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you use the '''X-Payments Hosted''' plan, you should use IP address '''98.142.211.162''' if your X-Payments account is v1.x or v2.x based or '''104.200.146.25''' if v3.x based.}}&lt;br /&gt;
&lt;br /&gt;
The log of the X-Payments callback requests processing is saved to the following locations:&amp;lt;br /&amp;gt;&lt;br /&gt;
* X-Cart: See the &amp;lt;u&amp;gt;&amp;lt;xcart-dir&amp;gt;/var/log/x-errors_xpay_connector-YYMMDD.php&amp;lt;/u&amp;gt; file if any error occurred.&lt;br /&gt;
* X-Payments: See the &amp;lt;u&amp;gt;&amp;lt;xpay-dir&amp;gt;/var/log/payment/YYYY-MM-DD/&amp;lt;/u&amp;gt; directory for the initial Authorize or Sale (Authorize and Capture at the same time or Auto settle) transaction and &amp;lt;u&amp;gt;&amp;lt;xpay-dir&amp;gt;/var/log/admin/YYYY-MM-DD/&amp;lt;/u&amp;gt; directory for the secondary Capture, Void or Refund transaction.&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments User Manual]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:FAQ&amp;diff=870</id>
		<title>X-Payments:FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:FAQ&amp;diff=870"/>
		<updated>2016-11-22T10:15:14Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* How to enable the use of TLS/SSL SMTP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template:XP manual TOC}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
===What is the X-Cart Payments service?===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments is a SaaS (Software as a Service) solution allowing online merchants to use &amp;quot;on-site&amp;quot; or &amp;quot;merchant-hosted&amp;quot; credit card payment methods, like &amp;quot;Authorize.Net AIM&amp;quot;, &amp;quot;SagePay - Direct integration&amp;quot;, &amp;quot;FirstData Global Gateway - API&amp;quot;, &amp;quot;PayPal Payments Pro - Direct Payment&amp;quot;, and [[X-Payments:User_manual#Appendix_A._Supported_payment_gateways | many others]] in their integrated shopping carts.&lt;br /&gt;
&lt;br /&gt;
The service includes:&lt;br /&gt;
* An account on a PCI DSS compliant web-hosting;&lt;br /&gt;
* An SSL certificate;&lt;br /&gt;
* A pre-installed and configured X-Payments application.&lt;br /&gt;
&lt;br /&gt;
X-Payments (aka X-Cart Payments) is a PA-DSS validated application, a secure bridge between integrated shopping cart software and payment gateways. The application is hosted on a reliable and PCI DSS compliant web-hosting and is secured with SSL. It helps merchants to facilitate their overall PCI DSS compliance and to accept credit card payments securely.&lt;br /&gt;
&lt;br /&gt;
Besides, X-Cart Payments makes it possible to accept credit card payments right on the checkout page in X-Cart (using the so-called [http://help.x-cart.com/index.php?title=X-Cart:IFrame_One-Step_Checkout_for_X-Payments iFrame One-Step Checkout] feature), while still providing a PCI DSS compliant payment solution for merchants. In other words, customers can pay without ever leaving your website and being redirected to the payment gateway site, in contrast to &amp;quot;off-site&amp;quot; payment methods like &amp;quot;PayPal Payments Standard&amp;quot;, &amp;quot;Authorize.Net SIM&amp;quot;, &amp;quot;SagePay - Form integration&amp;quot;, &amp;quot;FirstData Global Gateway - Connect&amp;quot;, etc. This can reassure customers and increase the conversion rates eventually, according to a [http://www.getelastic.com/single-vs-two-page-checkout/ research conducted by Getelastic.com].&lt;br /&gt;
&lt;br /&gt;
Read more about X-Cart Payments on our website:&lt;br /&gt;
* http://www.x-cart.com/extensions/modules/xpayments.html&lt;br /&gt;
* http://www.x-cart.com/blog/new-xpayments-plans-introduced.html&lt;br /&gt;
&lt;br /&gt;
===Which shopping cart software is compatible with X-Payments?===&lt;br /&gt;
&lt;br /&gt;
X-Payments provides a [[X-Payments:API | web-based API]] allowing your store to submit or retrieve data. The shopping cart software you use for your store must support this API, which means you have to get an appropriate connector mod.&lt;br /&gt;
&lt;br /&gt;
See the following pages for more info:&lt;br /&gt;
&lt;br /&gt;
* [https://www.x-payments.com/help/X-Payments:Managing_store_connections#Connecting_an_Online_store How to connect an online store with X-Payments]&lt;br /&gt;
* [[X-Payments:API | X-Payments:API]]&lt;br /&gt;
* [http://help.x-cart.com/index.php?title=X-Cart:X-Payments_Connector X-Payments Connector]&lt;br /&gt;
&lt;br /&gt;
===How can I obtain an X-Payments license===&lt;br /&gt;
&lt;br /&gt;
X-Payments can be purchased at [http://www.x-cart.com/xpayments-pricing.html X-Cart website].&lt;br /&gt;
&lt;br /&gt;
===How many stores can be connected to a single X-Payments installation?===&lt;br /&gt;
&lt;br /&gt;
See details at [http://www.x-cart.com/xpayments-pricing.html X-Payments plans page]&lt;br /&gt;
&lt;br /&gt;
===Can I transfer my X-Payments license and the software to a third party?===&lt;br /&gt;
&lt;br /&gt;
It is possible for paid X-Payments downloadable licenses, but you need to get our written consent according to the terms and conditions of the [http://www.qtmsoft.com/xpayments-la.html license agreement].&lt;br /&gt;
&lt;br /&gt;
==Installation and configuration==&lt;br /&gt;
&lt;br /&gt;
===Why did you include PHP 5.3.0 into the '''X-Payments system''' '''requirements'''? It's relatively new, and many hosts aren't running it yet.===&lt;br /&gt;
&lt;br /&gt;
According to PCI DSS '''Requirements''' (paragraph 6.1),&lt;br /&gt;
&lt;br /&gt;
''&amp;gt;&amp;gt; 6.1 Ensure that all system components and software have the latest vendor-supplied security patches installed. Install critical security patches within one month of release.''&lt;br /&gt;
&lt;br /&gt;
For PHP &amp;quot;the latest vendor-supplied security patches&amp;quot; means &amp;quot;the latest PHP version&amp;quot;, because they do not supply patches. When we started to develop X-Payments, there were two stable versions of PHP available: 5.2.10 and 5.3.0. By the summer of 2010, the time PCI DSS compliance becomes a must, PHP 5.3.x will probably be as widely spread as 5.2.x now. That is why we decided to use some nice improvements of PHP 5.3.0.&lt;br /&gt;
&lt;br /&gt;
===Can you tell me exactly what it is in v5.3.0 that's so necessary for X-Payments?===&lt;br /&gt;
&lt;br /&gt;
The PHP development team has [http://www.php.net/archive/2010.php#id2010-12-16-1 announced] the end of support for PHP 5.2; therefore, 5.3 is going to be the earliest PHP version out there. We have used the newest features available in PHP 5.3 to make our software more current and eliminate the need to design and then certify it all over. Thus, PHP 5.3 features a more appropriate implementation of the Singleton pattern and allows to implement widget operations in the viewer using &amp;lt;tt&amp;gt;__invoke&amp;lt;/tt&amp;gt;. It also offers numerous other functions that are handy but not available in PHP older than 5.3; for instance, array_replace, array_replace_recursive, etc.&lt;br /&gt;
&lt;br /&gt;
===Can X-Payments be set up together with old [http://help.x-cart.com/index.php?title=X-Cart:Subscriptions Subscriptions] add-on module to automatically bill subscribers on a regular basis?===&lt;br /&gt;
&lt;br /&gt;
No, it cannot. X-Cart's old [http://help.x-cart.com/index.php?title=X-Cart:Subscriptions Subscriptions] module is not compatible with X-Payments, and it is not PCI complaint.&lt;br /&gt;
The proper way is to use the new X-Payments Subscriptions module for [http://www.x-cart.com/extensions/modules/xpayments_subscriptions.html X-Cart 4] and [http://www.x-cart.com/extensions/addons/x-payments-subscriptions-and-installements.html X-Cart 5.]&lt;br /&gt;
&lt;br /&gt;
===Why is it not possible to use blank database passwords in X-Payments configuration? That's not a problem for a production copy, but my test system doesn't use passwords usually===&lt;br /&gt;
&lt;br /&gt;
According to PA-DSS '''requirements''' (paragraph 3.2),&lt;br /&gt;
&lt;br /&gt;
''&amp;gt;&amp;gt; 3.2 Access to PCs, servers, and databases with payment applications must require a unique user ID and secure authentication.''&lt;br /&gt;
&lt;br /&gt;
This means that a password must be used to access the database as well. X-Payments doesn't have a test mode, and all the '''requirements''' are checked on the fly as if it were a production copy. X-Payments won't start until all the '''requirements''' are met. That is how we guarantee that the software meets PA-DSS '''requirements'''. If there were a test mode, we would have to add another level of checking, and each such level decreases the security of the software &amp;quot;in the field&amp;quot;. That is why we decided to go without some cool features but keep the high level of security.&lt;br /&gt;
&lt;br /&gt;
===Can X-Payments be installed on server where my shopping cart software is hosted or do I need a separate web-server?===&lt;br /&gt;
&lt;br /&gt;
Both options are allowed. X-Payments can be set up either together with your shopping cart software provided it is run in a separate PCI compliant hosting space/account or on a separate server (X-Payments uses SSL connection to exchange data with your store).&lt;br /&gt;
&lt;br /&gt;
===Can X-Payments be installed on a shared hosting?===&lt;br /&gt;
&lt;br /&gt;
Yes, provided that a separate account is used to host X-Payments. No other software must be installed and run under this account.&lt;br /&gt;
&lt;br /&gt;
===Can I configure X-Payments to allow my customers to enter their billing address when entering their credit card data?===&lt;br /&gt;
&lt;br /&gt;
No, you cannot. To edit the billing address, a customer has to go back to the store and edit the billing address in the customer profile at the store.&lt;br /&gt;
&lt;br /&gt;
===How do I create a different skin for the page where customers enter their cardholder data?===&lt;br /&gt;
&lt;br /&gt;
To create a different template for the page where your customers enter their cardholder data, you should work with the directories &amp;lt;u&amp;gt;&amp;lt;xpayments&amp;gt;/lib/XPay/Templates/&amp;lt;/u&amp;gt; and &amp;lt;u&amp;gt;&amp;lt;xpayments&amp;gt;/public/templates/&amp;lt;/u&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
* To add a new template, create a file &amp;lt;u&amp;gt;&amp;lt;xpayments&amp;gt;/lib/XPay/Templates/&amp;lt;new_template_name&amp;gt;.html&amp;lt;/u&amp;gt; and put the HTML code for the new template into the file. Make sure you only put the code between the tags &amp;lt;body&amp;gt; and &amp;lt;/body&amp;gt; as it will be automatically included into the general HTML code of the file &amp;lt;u&amp;gt;&amp;lt;xpayments&amp;gt;/lib/XPay/Skin/Payment/Home.php&amp;lt;/u&amp;gt;. After that you will be able to select the new template from the 'Template' drop-down box at the 'Online store details' page.&lt;br /&gt;
&lt;br /&gt;
* If you want to use a different CSS style, place the CSS code into the file &amp;lt;u&amp;gt;&amp;lt;xpayments&amp;gt;/public/templates/&amp;lt;new_template_name&amp;gt;.css&amp;lt;/u&amp;gt;, and it will be linked automatically during the page generation.&lt;br /&gt;
&lt;br /&gt;
* If you want to use a different set of images, copy the images to the directory &amp;lt;u&amp;gt;&amp;lt;xpayments&amp;gt;/public/templates/&amp;lt;new_template_name&amp;gt;/directory&amp;lt;/u&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Is it possible to configure X-Payments to have my sales processed manually?===&lt;br /&gt;
&lt;br /&gt;
No, it is not possible since X-Payments does not allow storing credit card numbers.&lt;br /&gt;
&lt;br /&gt;
===How can I manually decrypt the LinkPoint key, which is returned encrypted by default?===&lt;br /&gt;
&lt;br /&gt;
Use the '''openssl''' program in the command line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openssl rsa -in oldkey.pem -out newkey.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;oldkey.pem&amp;lt;/tt&amp;gt; -  name of the encrypted key file provided by LinkPoint&lt;br /&gt;
* &amp;lt;tt&amp;gt;newkey.pem&amp;lt;/tt&amp;gt; -  name of the unencrypted key file to be uploaded to the server&lt;br /&gt;
&lt;br /&gt;
{{Note1|&amp;lt;b&amp;gt;Notes:&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;1. &amp;lt;/b&amp;gt;When prompted to enter a password, enter the one you have received from Link Point. If you are prompted to enter a password again, just press '''Enter''' to leave the output key with no password.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;2. &amp;lt;/b&amp;gt;Be sure to set secure permissions on that file once you upload it (generally, the secure permissions are &amp;quot;600&amp;quot;).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;3. &amp;lt;/b&amp;gt;Be sure to remove the unencrypted key from your local PC.}}&lt;br /&gt;
&lt;br /&gt;
===My payment method does not appear in the list after a successful import. What should I do?===&lt;br /&gt;
&lt;br /&gt;
Chances are you want to use PayPal as your payment method. If this is so, you need to [index.php?title=X-Payments:PayPal  follow a few additional steps] to get PayPal to work with X-Payments.&lt;br /&gt;
&lt;br /&gt;
===I'm executing the cron.php script in a browser, but nothing happens===&lt;br /&gt;
&lt;br /&gt;
If the script is run not in the command line interface (like in a browser in our case), its execution is interrupted due to security reasons.&lt;br /&gt;
&lt;br /&gt;
To run the script successfully, execute it from the command line and use a PHP interpreter version 5.3.0 or better. You can use SSH access to execute the script.&lt;br /&gt;
&lt;br /&gt;
===I need cron.php to send me emails when cronjobs are executed===&lt;br /&gt;
&lt;br /&gt;
If you use Enterprise/Downloadable X-Payments, and your hosting can send emails every time an X-Payments job is executed, you can add a certain code to crontab settings for X-Payments cron.php to make cron send you emails; for example:&lt;br /&gt;
&lt;br /&gt;
cd /home/checkout/public_html/ &amp;amp;&amp;amp; /usr/bin/php-cli cron.php; echo &amp;quot;X-Payments Cron Job was launched&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Moreover, you can email the results of cron jobs execution to yourself by making a line like the following:&lt;br /&gt;
&lt;br /&gt;
cd /home/checkout/public_html/ &amp;amp;&amp;amp; /usr/bin/php-cli cron.php; cat /var/log/cron/YYYY-MM-DD/errors.php;&lt;br /&gt;
&lt;br /&gt;
Just be sure to replace YYYY-MM-DD with a code that defines the current date on your server.&lt;br /&gt;
&lt;br /&gt;
===I'm the admin and my account got locked===&lt;br /&gt;
&lt;br /&gt;
This could happen when a user exceeds the allowed number of unsuccessful access attempts. The account is automatically locked for the period of time specified in the 'General settings' section.&lt;br /&gt;
&lt;br /&gt;
If this is the case, you should wait until the specified dangerous activity blocking period passes, and try to sign in again.&lt;br /&gt;
&lt;br /&gt;
By default, X-Payments limits the number of unsuccessful login attempts to the maximum of 6 and does not allow new login attempts for 30 minutes (this is controlled via Settings -&amp;gt; General settings -&amp;gt; Dangerous activity blocking period).&lt;br /&gt;
&lt;br /&gt;
===I lost my password. What do I need to do?===&lt;br /&gt;
&lt;br /&gt;
# Go to &amp;lt;pre&amp;gt;https://&amp;lt;your_xp_domain_name&amp;gt;/admin.php?target=login&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Click the 'Forgot password' link on the login page. An email message will be sent to you with a link containing your profile confirmation token.&lt;br /&gt;
# Follow the link to reset the password.&lt;br /&gt;
&lt;br /&gt;
If the profile confirmation token has expired for some reason (e.g. you missed the email message and did not click the link in time), and you cannot set a new password for your account, just use the 'Forgot password' link  on the login page again.&lt;br /&gt;
&lt;br /&gt;
===Where can I find my X-Payments logs?===&lt;br /&gt;
&lt;br /&gt;
X-Payments logs and X-Cart logs related to X-Payments can be found as follows:&lt;br /&gt;
&lt;br /&gt;
On the X-Payments end: See the &amp;lt;xpay-dir&amp;gt;/var/log/ directory. If you are using an X-Payment Hosted account, you can see this folder as &amp;quot;var/log&amp;quot; in your X-Payments FTP account.&lt;br /&gt;
&lt;br /&gt;
On the X-Cart 4 end: See the &amp;lt;xcart-dir&amp;gt;/var/log/x-errors_xpay_connector-YYMMDD.php files&lt;br /&gt;
&lt;br /&gt;
===How to increase PayPal Payflow Pro &amp;quot;TIMEOUT&amp;quot; value===&lt;br /&gt;
&lt;br /&gt;
In the file &amp;lt;xpay_dir&amp;gt;/lib/XPay/Module/PaypalWPPPEDirectPayment.php, locate the line # 249:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
$bouncerData-&amp;gt;setTimeout(45);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and change 45 to some other value in seconds (a number between 30..60 is recommended)&lt;br /&gt;
&lt;br /&gt;
===How to enable the use of TLS/SSL SMTP===&lt;br /&gt;
&lt;br /&gt;
In the file &amp;lt;xpdir&amp;gt;/config/config.ini.php, locate the line:&lt;br /&gt;
&lt;br /&gt;
host=&amp;quot;smtp.yourmailservice.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and replace it with the following:&lt;br /&gt;
&lt;br /&gt;
host=&amp;quot;ssl://smtp.yourmailservice.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===How to configure Elavon Converge/Virtual Merchant - Merchant Provided Form===&lt;br /&gt;
&lt;br /&gt;
Suggested X-Payments settings:&lt;br /&gt;
&lt;br /&gt;
* set Initial transaction to auth &amp;amp; capture&lt;br /&gt;
* merchantID is the same as elavon &amp;quot;accountID&amp;quot;&lt;br /&gt;
* get the userid from elavon &lt;br /&gt;
* get the PIN from elavon&lt;br /&gt;
&lt;br /&gt;
Then setup myvirtualmerchant settings:&lt;br /&gt;
&lt;br /&gt;
terminal &amp;gt; advanced &amp;gt; system setup&lt;br /&gt;
&lt;br /&gt;
* Use HTTP Referrers [ unchecked ]&lt;br /&gt;
* Auto Pend HTTP Transactions    [x]&lt;br /&gt;
* Auto Settlement [x]&lt;br /&gt;
&lt;br /&gt;
EVERYTHING else is empty&lt;br /&gt;
&lt;br /&gt;
PS:&lt;br /&gt;
Many thanks to [https://forum.x-cart.com/showpost.php?p=366912&amp;amp;postcount=4 carpeperdiem for sharing]!&lt;br /&gt;
&lt;br /&gt;
==X-Payments Hosted FAQ==&lt;br /&gt;
&lt;br /&gt;
{{X-Payments:X-Payments-Hosted-FAQ}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments User Manual]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:System_requirements_for_X-Payments_3&amp;diff=840</id>
		<title>X-Payments:System requirements for X-Payments 3</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:System_requirements_for_X-Payments_3&amp;diff=840"/>
		<updated>2016-10-21T13:07:06Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* PHP configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{XP_manual_TOC}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For hassle-free installation and performance of X-Payments, your server must meet the following requirements:&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Operating system==&lt;br /&gt;
A Unix-based operating system (Linux, FreeBSD, etc)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==PHP configuration==&lt;br /&gt;
&lt;br /&gt;
'''PHP version:'''&lt;br /&gt;
&lt;br /&gt;
: PHP v 5.5.30 or later (versions 7.0.3 or later are recommended)&lt;br /&gt;
&lt;br /&gt;
'''php.ini settings:'''&lt;br /&gt;
&lt;br /&gt;
:Mandatory:&lt;br /&gt;
&lt;br /&gt;
:* safe_mode = off;&lt;br /&gt;
:* magic_quotes_sybase = off;&lt;br /&gt;
:* sql.safe_mode = off;&lt;br /&gt;
:* ini_set = on;&lt;br /&gt;
:* memory_limit &amp;gt;= 16M;&lt;br /&gt;
&lt;br /&gt;
:Recommended:&lt;br /&gt;
&lt;br /&gt;
:* disable_functions = NULL&lt;br /&gt;
:* max_execution_time &amp;gt;= 30;&lt;br /&gt;
:* memory_limit &amp;gt;= 32M;&lt;br /&gt;
:* max_input_time &amp;gt;= 30;&lt;br /&gt;
:* sendmail_from = username@example.com; (An email address that service email messages will be sent from)&lt;br /&gt;
:* precision = 14 (the default value set in the php.ini file).&lt;br /&gt;
&lt;br /&gt;
'''PHP extensions:'''&lt;br /&gt;
&lt;br /&gt;
:* Core;&lt;br /&gt;
:* PCRE;&lt;br /&gt;
:* HASH;&lt;br /&gt;
:* PDO with the MySQL driver;&lt;br /&gt;
:::'''''Important note about PDO extension:'''''&amp;lt;br /&amp;gt;X-Payments requires the PDO extension, as well as the MySQL PDO driver, to be installed as a &amp;lt;u&amp;gt;shared module&amp;lt;/u&amp;gt;. In other words your php.ini file needs to be updated so that the PDO extensions will be loaded automatically when PHP runs:&amp;lt;br /&amp;gt;&lt;br /&gt;
::::extension=php_pdo.so&amp;lt;br /&amp;gt;&lt;br /&gt;
::::extension=php_pdo_mysql.so&amp;lt;br /&amp;gt;&lt;br /&gt;
:::X-Payments will not install if you use a different PHP configuration (i.e. when PHP is compiled with the necessary PDO extensions like '--enable-pdo=shared' and '--with-pdo-mysql=shared'). In this case, please change the configuration as advised above (install both extensions as a shared module).&lt;br /&gt;
:::See also: http://php.net/manual/en/pdo.installation.php&lt;br /&gt;
:* mcrypt (To encrypt general data through the AES encryption algorithm);&lt;br /&gt;
:* XML DOM (To parse XML data);&lt;br /&gt;
:* cURL (To send secure HTTPS requests; cURL version 7.39.0 or better is recommended);&lt;br /&gt;
:* OpenSSL (To encrypt cardholder's data and API requests);&lt;br /&gt;
:* SOAP (Required for the Firstdata e4 payment gateway);&lt;br /&gt;
:* Reflection;&lt;br /&gt;
:* SimpleXML;&lt;br /&gt;
:* calendar;&lt;br /&gt;
:* ctype;&lt;br /&gt;
:* date;&lt;br /&gt;
:* fileinfo;&lt;br /&gt;
:* filter;&lt;br /&gt;
:* gd;&lt;br /&gt;
:* json;&lt;br /&gt;
:* libxml;&lt;br /&gt;
:* mbstring;&lt;br /&gt;
:* pcre;&lt;br /&gt;
:* posix;&lt;br /&gt;
:* spl;&lt;br /&gt;
:* standard;&lt;br /&gt;
:* xmlwriter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Miscellaneous:'''&lt;br /&gt;
:* The crontab on the server where X-Payments is installed must be configured to periodically run the script cron.php (needed for data cleaning tasks and subscriptions). For more info, see [[X-Payments:Installation#XPCronPhp|Running the cron.php script]].&lt;br /&gt;
:* Use SMTP server (with SMTP Authentication option enabled) instead the PHP function mail() to send email;&lt;br /&gt;
:* Allow the PHP function fsockopen to ensure correct performance of SMTP mailer.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you need detailed help on PHP configuration settings, please refer to http://www.php.net .}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==MySQL configuration==&lt;br /&gt;
&lt;br /&gt;
'''MySQL version:'''&lt;br /&gt;
&lt;br /&gt;
:* MySQL versions 5.6 or later (5.7 is recommended).&lt;br /&gt;
&lt;br /&gt;
'''MySQL user privileges:'''&lt;br /&gt;
&lt;br /&gt;
:Basic level privileges&lt;br /&gt;
&lt;br /&gt;
:* select_priv;&lt;br /&gt;
:* insert_priv;&lt;br /&gt;
:* update_priv;&lt;br /&gt;
:* delete_priv;&lt;br /&gt;
:* lock_tables_priv;&lt;br /&gt;
:* index_priv;&lt;br /&gt;
&lt;br /&gt;
:Privileges for the software installation and upgrade&lt;br /&gt;
&lt;br /&gt;
:* create_priv;&lt;br /&gt;
:* drop_priv;&lt;br /&gt;
:* alter_priv.&lt;br /&gt;
&lt;br /&gt;
'''MySQL user limitations:'''&lt;br /&gt;
&lt;br /&gt;
:* MAX_QUESTIONS - no limitations;&lt;br /&gt;
:* MAX_UPDATES - no limitations;&lt;br /&gt;
:* MAX_QUERIES_PER_HOUR - no limitations;&lt;br /&gt;
:* MAX_USER_CONNECTIONS - no limitations.&lt;br /&gt;
:* max_allowed_packet - from 8 MB to 16 MB (recommended);&lt;br /&gt;
:* wait_timeout - from 7200 to 28800 (recommended).&lt;br /&gt;
&lt;br /&gt;
'''InnoDB:'''&lt;br /&gt;
:* Must be enabled. Make sure there is no &amp;quot;skip-innodb&amp;quot; in my.cnf.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Apache configuration==&lt;br /&gt;
&lt;br /&gt;
Apache is the recommended web server for X-Payments. The settings described below refer to Apache only.&lt;br /&gt;
&lt;br /&gt;
'''Distributed configuration file:'''&lt;br /&gt;
&lt;br /&gt;
:* AccessFileName .htaccess; (The filename must always be .htaccess);&lt;br /&gt;
:* AllowOverride = ALL; (You must have sufficient permissions to change the settings of the web directory through the .htaccess file).&lt;br /&gt;
&lt;br /&gt;
'''PHP running mode:'''&lt;br /&gt;
&lt;br /&gt;
:If PHP interpreter is compiled as CGI, it must have the --enable-force-cgi-redirect option (without --enable-discard-path) enabled. This allows you to avoid the trouble with setting 755 permissions on PHP scripts and registering #!/usr/bin/php.&lt;br /&gt;
&lt;br /&gt;
'''Apache modules:'''&lt;br /&gt;
&lt;br /&gt;
:Mandatory&lt;br /&gt;
&lt;br /&gt;
:* mod_dir; (For correct operation of DirectoryIndex)&lt;br /&gt;
:* mod_access; (For correct operation of Deny From All and Allow From All)&lt;br /&gt;
:* mod_auth; (For correct HTTP authentication)&lt;br /&gt;
&lt;br /&gt;
:Recommended&lt;br /&gt;
&lt;br /&gt;
:* mod_expires; (To setup file caching)&lt;br /&gt;
:* mod_gzip / mod_deflate. (For page compression)&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==HTTPS settings==&lt;br /&gt;
&lt;br /&gt;
HTTPS must be enabled.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Secure Shell access==&lt;br /&gt;
&lt;br /&gt;
For some operations, you will need to have secure shell access to the server where X-Payments is installed. These operations include:&lt;br /&gt;
&lt;br /&gt;
:* [[X-Payments:Codebook_regeneration|Codebook regeneration]]&lt;br /&gt;
:* [[X-Payments:User_manual#Managing_PIN-codes|PIN-codes generation]]&lt;br /&gt;
&lt;br /&gt;
If shell access is not allowed, the necessary actions can be performed with the help of the PHP shell_exec() function. You'll need to create a script shell.php like the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
$cmd = 'SHELL COMMAND';&lt;br /&gt;
&lt;br /&gt;
echo shell_exec $cmd . '2&amp;gt;&amp;amp;1';&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Be sure to replace SHELL COMMAND with the actual command that needs to be executed).&lt;br /&gt;
&lt;br /&gt;
Upload this script onto the server where X-Payments is installed and allow it in the &amp;lt;xp-dir&amp;gt;/.htaccess file by adding the following lines:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;Files ~ &amp;quot;shell.php&amp;quot;&amp;gt;&lt;br /&gt;
Order deny,allow&lt;br /&gt;
Allow from all&lt;br /&gt;
&amp;lt;/Files&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then open this file in the web browser.&lt;br /&gt;
&lt;br /&gt;
{{Note1|'''Important''': Right after the operation has been completed, remove the shell.php file and restore the original &amp;lt;xp-dir&amp;gt;/.htaccess file.}}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==System parameters==&lt;br /&gt;
&lt;br /&gt;
'''Network settings:'''&lt;br /&gt;
&lt;br /&gt;
:* X-Payments must use the IPv4 protocol;&lt;br /&gt;
:* Outgoing TCP connections must be opened to ports 25, 80 and 443;&lt;br /&gt;
:* External domains must be allowed at both system and PHP levels, that is the PHP functions gethostbyaddr and gethostbyname must work without any limitations;&lt;br /&gt;
:* Domains hosted on a localhost server must be resolved to an external IP address if the server is behind NAT.&lt;br /&gt;
&lt;br /&gt;
'''Disk space:'''&lt;br /&gt;
&lt;br /&gt;
:* 15 MB for a fresh application installation;&lt;br /&gt;
:* From 5 MB for the database. Exact amount of disk space required for the database depends on the number of transactions.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
==Shopping cart software==&lt;br /&gt;
&lt;br /&gt;
Your shopping cart software must support [[X-Payments:API]]. This can be achieved by installing an appropriate X-Payments connector. &amp;lt;br /&amp;gt;&lt;br /&gt;
More info about the connectors is available here:&amp;lt;br /&amp;gt;&lt;br /&gt;
{{XP_connector_manuals}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments User Manual]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:FAQ&amp;diff=818</id>
		<title>X-Payments:FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:FAQ&amp;diff=818"/>
		<updated>2016-08-22T10:32:18Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* Which shopping cart software is compatible with X-Payments? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template:XP manual TOC}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
===What is X-Cart Payments service?===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments is a SaaS (Software as a Service) allowing on-line merchants to use &amp;quot;on-site&amp;quot; or &amp;quot;merchant-hosted&amp;quot; credit card payment methods, like &amp;quot;Authorize.Net AIM&amp;quot;, &amp;quot;SagePay - Direct integration&amp;quot;, &amp;quot;FirstData Global Gateway - API&amp;quot;, &amp;quot;PayPal Payments Pro - Direct Payment&amp;quot;, and [[X-Payments:User_manual#Appendix_A._Supported_payment_gateways | more others]] in their integrated shopping carts.&lt;br /&gt;
&lt;br /&gt;
The service includes:&lt;br /&gt;
* Account on a PCI DSS compliant web-hosting&lt;br /&gt;
* SSL certificate&lt;br /&gt;
* Pre-installed and configured X-Payments application&lt;br /&gt;
&lt;br /&gt;
X-Payments (aka X-Cart Payments) is a PA-DSS validated application, a secure bridge between integrated shopping cart software and payment gateways. The application is hosted on a reliable and PCI DSS compliant web-hosting and secured with SSL. It helps merchants to facilitate their overall PCI DSS compliance and to accept credit card payments securely.&lt;br /&gt;
&lt;br /&gt;
Besides, X-Cart Payments makes it possible to accept credit card payments right on X-Cart checkout page (using so called [http://help.x-cart.com/index.php?title=X-Cart:IFrame_One-Step_Checkout_for_X-Payments iFrame One-Step Checkout] feature), while still providing a PCI DSS compliant payment solution for merchants. In other words, customers can pay without ever leaving your web-site and being redirected to the payment gateway site, as comparing to the &amp;quot;off-site&amp;quot; payment methods like &amp;quot;PayPal Payments Standard&amp;quot;, &amp;quot;Authorize.Net SIM&amp;quot;, &amp;quot;SagePay - Form integration&amp;quot;, &amp;quot;FirstData Global Gateway - Connect&amp;quot;, etc. This can reassure customers and increase conversion rates eventually, according to a [http://www.getelastic.com/single-vs-two-page-checkout/ research conducted by Getelastic.com].&lt;br /&gt;
&lt;br /&gt;
Read more about X-Cart Payments at our web-site:&lt;br /&gt;
* http://www.x-cart.com/extensions/modules/xpayments.html&lt;br /&gt;
* http://www.x-cart.com/blog/new-xpayments-plans-introduced.html&lt;br /&gt;
&lt;br /&gt;
===Which shopping cart software is compatible with X-Payments?===&lt;br /&gt;
&lt;br /&gt;
X-Payments provides [[X-Payments:API | web-based API]] allowing your store to submit or retrieve data. The shopping cart software you use for your store must support this API thus you have to get an appropriate connector mod.&lt;br /&gt;
&lt;br /&gt;
See the following pages for more info:&lt;br /&gt;
&lt;br /&gt;
* [https://www.x-payments.com/help/X-Payments:Managing_store_connections#Connecting_an_Online_store How to connect an online store with X-Payments]&lt;br /&gt;
* [[X-Payments:API | X-Payments:API]]&lt;br /&gt;
* [http://help.x-cart.com/index.php?title=X-Cart:X-Payments_Connector X-Payments Connector]&lt;br /&gt;
&lt;br /&gt;
===How can I obtain X-Payments license===&lt;br /&gt;
&lt;br /&gt;
X-Payments can be purchased at [http://www.x-cart.com/xpayments-pricing.html X-Cart website].&lt;br /&gt;
&lt;br /&gt;
===How many stores can be connected to a single X-Payments installation?===&lt;br /&gt;
&lt;br /&gt;
See details at [http://www.x-cart.com/xpayments-pricing.html X-Payments plans page]&lt;br /&gt;
&lt;br /&gt;
===Can I transfer my X-Payments license and the software to a third party?===&lt;br /&gt;
&lt;br /&gt;
It is possible for paid X-Payments downloadable licenses, but you need to get our written consent according to the terms and conditions of the [http://www.qtmsoft.com/xpayments-la.html license agreement].&lt;br /&gt;
&lt;br /&gt;
==Installation and configuration  ==&lt;br /&gt;
&lt;br /&gt;
===Why did you include PHP 5.3.0 into the '''X-Payments system''' '''requirements'''? It's relatively new, and many hosts aren't running it yet.===&lt;br /&gt;
&lt;br /&gt;
According to PCI DSS '''Requirements''' (paragraph 6.1),&lt;br /&gt;
&lt;br /&gt;
''&amp;gt;&amp;gt; 6.1 Ensure that all system components and software have the latest vendor-supplied security patches installed. Install critical security patches within one month of release.''&lt;br /&gt;
&lt;br /&gt;
For PHP &amp;quot;the latest vendor-supplied security patches&amp;quot; means &amp;quot;the latest PHP version&amp;quot;, because they do not supply patches. When we started to develop X-Payments, there were two stable versions of PHP available: 5.2.10 and 5.3.0. By summer 2010, the time PCI DSS compliance becomes a must, PHP 5.3.x will probably be as widely spread as 5.2.x now. That is why we decided to use some nice improvements of PHP 5.3.0.&lt;br /&gt;
&lt;br /&gt;
===Can you tell me exactly what it is in v5.3.0 that's so necessary for X-Payments?===&lt;br /&gt;
&lt;br /&gt;
The PHP development team has [http://www.php.net/archive/2010.php#id2010-12-16-1 announced] the end of support for PHP 5.2; therefore, 5.3 is going to be the earliest PHP version out there. We have used the newest features available in PHP 5.3 to make our software more current and eliminate the need to design and then certify it all over. Thus, PHP 5.3 features a more appropriate implementation of the Singleton pattern and allows to implement widget operations in the viewer using &amp;lt;tt&amp;gt;__invoke&amp;lt;/tt&amp;gt;. It also offers numerous other functions that are handy but not available in PHP older than 5.3; for instance, array_replace, array_replace_recursive, etc.&lt;br /&gt;
&lt;br /&gt;
===Can X-Payments be set up together with old [http://help.x-cart.com/index.php?title=X-Cart:Subscriptions Subscriptions] add-on module to automatically bill subscribers on a regular basis?===&lt;br /&gt;
&lt;br /&gt;
No, it can't. X-Cart's old [http://help.x-cart.com/index.php?title=X-Cart:Subscriptions Subscriptions] module is not compatible with X-Payments and it is not PCI complaint.&lt;br /&gt;
The right way is to use new X-Payments Subscriptions module for [http://www.x-cart.com/extensions/modules/xpayments_subscriptions.html X-Cart 4] and [http://www.x-cart.com/extensions/addons/x-payments-subscriptions-and-installements.html X-Cart 5.]&lt;br /&gt;
&lt;br /&gt;
===Why is it not possible to use blank database passwords in X-Payments configuration? That's not a problem for a production copy, but my test system doesn't use passwords usually===&lt;br /&gt;
&lt;br /&gt;
According to PA-DSS '''requirements''' (paragraph 3.2),&lt;br /&gt;
&lt;br /&gt;
''&amp;gt;&amp;gt; 3.2 Access to PCs, servers, and databases with payment applications must require a unique user ID and secure authentication.''&lt;br /&gt;
&lt;br /&gt;
This means that a password must be used to access the database as well. X-Payments doesn't have a test mode, and all the '''requirements''' are checked on the fly as if it were a production copy. X-Payments won't start until all the '''requirements''' are met. That is how we guarantee that the software meets PA-DSS '''requirements'''. If there were a test mode, we would have to add another level of checking, and each such level decreases the security of software &amp;quot;in the field&amp;quot;. That is why we decided to go without some cool features, but keep high security level.&lt;br /&gt;
&lt;br /&gt;
===Can X-Payments be installed on server where my shopping cart software is hosted or do I need a separate web-server?===&lt;br /&gt;
&lt;br /&gt;
Both options are allowed. X-Payments can be set up either together with your shopping cart software provided it is run in a separate PCI compliant hosting space/account or on a separate server (X-Payments uses SSL connection to exchange data with your store).&lt;br /&gt;
&lt;br /&gt;
===Can X-Payments be installed on a shared hosting?===&lt;br /&gt;
&lt;br /&gt;
Yes, provided that a separate account is used for hosting X-Payments. No other software must be installed and run under this account.&lt;br /&gt;
&lt;br /&gt;
===Can I configure X-Payments to allow my customers enter their billing address when entering their credit card data?===&lt;br /&gt;
&lt;br /&gt;
No, you cannot. To edit the billing address, a customer should go back to the store and edit the billing address in the customer profile at the store.&lt;br /&gt;
&lt;br /&gt;
===How do I create a different skin for the page where customers enter cardholder data?===&lt;br /&gt;
&lt;br /&gt;
To create a different template for the page where customers enter cardholder data, you should work with directories &amp;lt;u&amp;gt;&amp;lt;xpayments&amp;gt;/lib/XPay/Templates/&amp;lt;/u&amp;gt; and &amp;lt;u&amp;gt;&amp;lt;xpayments&amp;gt;/public/templates/&amp;lt;/u&amp;gt; .&lt;br /&gt;
&lt;br /&gt;
* To add a new template, create a file &amp;lt;u&amp;gt;&amp;lt;xpayments&amp;gt;/lib/XPay/Templates/&amp;lt;new_template_name&amp;gt;.html&amp;lt;/u&amp;gt; and put the HTML code for the new template into the file. Make sure you only put the code between the tags &amp;lt;body&amp;gt; and &amp;lt;/body&amp;gt; as it will be automatically included into the general HTML-code of the file &amp;lt;u&amp;gt;&amp;lt;xpayments&amp;gt;/lib/XPay/Skin/Payment/Home.php&amp;lt;/u&amp;gt;. After that you will be able to select the new template from the 'Template' drop-down box at the 'Online store details' page.&lt;br /&gt;
&lt;br /&gt;
* If you want to use a different CSS style, place the CSS code into the file &amp;lt;u&amp;gt;&amp;lt;xpayments&amp;gt;/public/templates/&amp;lt;new_template_name&amp;gt;.css&amp;lt;/u&amp;gt;, and it will be linked automatically during the page generation.&lt;br /&gt;
&lt;br /&gt;
* If you want to use a different set of images, copy the images to the directory &amp;lt;u&amp;gt;&amp;lt;xpayments&amp;gt;/public/templates/&amp;lt;new_template_name&amp;gt;/directory&amp;lt;/u&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Is it possible to configure X-Payments to have my sales processed manually?===&lt;br /&gt;
&lt;br /&gt;
No, it's not possible since X-Payments does not allow storing credit card numbers.&lt;br /&gt;
&lt;br /&gt;
===How can I manually decrypt the LinkPoint key, returned encrypted by default?===&lt;br /&gt;
&lt;br /&gt;
Use the '''openssl''' program in the command line:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openssl rsa -in oldkey.pem -out newkey.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;tt&amp;gt;oldkey.pem&amp;lt;/tt&amp;gt; -  name of the encrypted key file provided by LinkPoint&lt;br /&gt;
* &amp;lt;tt&amp;gt;newkey.pem&amp;lt;/tt&amp;gt; -  name of the unencrypted key file to be uploaded to the server&lt;br /&gt;
&lt;br /&gt;
{{Note1|&amp;lt;b&amp;gt;Notes:&amp;lt;/b&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;1. &amp;lt;/b&amp;gt;When prompted to enter a password, enter the one you have received from Link Point. If you are prompted to enter a password again, just press '''Enter''' to leave the output key with no password.&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;2. &amp;lt;/b&amp;gt;Be sure to set secure permissions on that file once you upload it (generally, secure permissions are &amp;quot;600&amp;quot;).&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;3. &amp;lt;/b&amp;gt;Be sure to remove the unencrypted key from your local PC.}}&lt;br /&gt;
&lt;br /&gt;
===My payment method does not appear in the list after successful import. What should I do?===&lt;br /&gt;
&lt;br /&gt;
Chances are you want to use PayPal as your payment method. If this is so, you need to [index.php?title=X-Payments:PayPal  follow a few additional steps] to get PayPal to work with X-Payments.&lt;br /&gt;
&lt;br /&gt;
===I'm executing the cron.php script in a browser, but nothing happens===&lt;br /&gt;
&lt;br /&gt;
In case the script is run not in the command line interface (like in a browser in our case), its execution is interrupted due to security reasons.&lt;br /&gt;
&lt;br /&gt;
To run the script successfully, execute it from the command line and use PHP interpreter version 5.3.0 or above. You can use SSH access to execute the script.&lt;br /&gt;
&lt;br /&gt;
===I need cron.php to send me emails when cronjobs are executed===&lt;br /&gt;
&lt;br /&gt;
If you use Enterprise/Downloadable X-Payments and your hosting can send emails every time X-Payments job is executed you can add certain code to crontab settings for X-Payments cron.php to make cron send you emails, e.g.&lt;br /&gt;
&lt;br /&gt;
cd /home/checkout/public_html/ &amp;amp;&amp;amp; /usr/bin/php-cli cron.php; echo &amp;quot;X-Payments Cron Job was launched&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
Moreover, you email yourself results of cron jobs execution by making a line like&lt;br /&gt;
&lt;br /&gt;
cd /home/checkout/public_html/ &amp;amp;&amp;amp; /usr/bin/php-cli cron.php; cat /var/log/cron/YYYY-MM-DD/errors.php;&lt;br /&gt;
&lt;br /&gt;
Just subscritute YYYY-MM-DD with a code that defines current date on your server.&lt;br /&gt;
&lt;br /&gt;
===I'm the admin and my account got locked===&lt;br /&gt;
&lt;br /&gt;
This could happen when a user exceeds the allowed number of unsuccessful access attempts. The account is automatically locked for the period of time specified in the 'General settings' section.&lt;br /&gt;
&lt;br /&gt;
If this is the case, you should wait until the specified dangerous activity blocking period passes, and try to sign in again.&lt;br /&gt;
&lt;br /&gt;
By default, X-Payments limits number of unsuccessful login attempts by 6 max and does not allow new login attempts for 30 minutes (this is controlled at Settings -&amp;gt; General settings -&amp;gt; Dangerous activity blocking period).&lt;br /&gt;
&lt;br /&gt;
===I lost my password. What do I need to do?===&lt;br /&gt;
&lt;br /&gt;
* Go to &amp;lt;pre&amp;gt;https://&amp;lt;your_xp_domain_name&amp;gt;/admin.php?target=login&amp;lt;/pre&amp;gt;&lt;br /&gt;
* click the 'Forgot password' link on the login page&lt;br /&gt;
* you'll receive a new email containing link with the profile confirmation token&lt;br /&gt;
* follow it to set the password&lt;br /&gt;
&lt;br /&gt;
If the profile confirmation token is expired for some reason (e.g. you missed the email message and didn't click the link in time) and you cannot set the password to your account, just use the 'Forgot password' link again to set up the password.&lt;br /&gt;
&lt;br /&gt;
===Where can I find X-Payments logs?===&lt;br /&gt;
&lt;br /&gt;
X-Payments logs and X-Cart logs related to X-Payments are located at&lt;br /&gt;
&lt;br /&gt;
At X-Payments side: See the &amp;lt;xpay-dir&amp;gt;/var/log/ directory. If you are using an X-Payment Hosted account you can see this folder as &amp;quot;var/log&amp;quot; in your X-Payments FTP account.&lt;br /&gt;
&lt;br /&gt;
At X-Cart 4 side: See the &amp;lt;xcart-dir&amp;gt;/var/log/x-errors_xpay_connector-YYMMDD.php files&lt;br /&gt;
&lt;br /&gt;
===How to increase PayPal Payflow Pro &amp;quot;TIMEOUT&amp;quot; value===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
In file &amp;lt;xpay_dir&amp;gt;/lib/XPay/Module/PaypalWPPPEDirectPayment.php in line # 249:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
$bouncerData-&amp;gt;setTimeout(45);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
change 45 to some value in seconds (a number between 30..60 is recommended)&lt;br /&gt;
&lt;br /&gt;
===How to enable use of TLS/SSL SMTP===&lt;br /&gt;
&lt;br /&gt;
In &amp;lt;xpdir&amp;gt;/config/config.ini.php file instead of:&lt;br /&gt;
&lt;br /&gt;
host=&amp;quot;smtp.yourmailservice.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
make as below:&lt;br /&gt;
&lt;br /&gt;
host=&amp;quot;ssl://smtp.yourmailservice.com&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==X-Payments Hosted FAQ==&lt;br /&gt;
&lt;br /&gt;
{{X-Payments:X-Payments-Hosted-FAQ}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments User Manual]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=712</id>
		<title>X-Payments:PA-DSS implementation guide for X-Cart Payments 3</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=712"/>
		<updated>2016-07-01T13:40:04Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* Hardware and software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The purpose of this PA-DSS Implementation Guide is to inform employees of organizations using the X-Cart Payments payment application by Qualiteam Software Limited about the methods and means of protection of account data in the X-Cart Payments software.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The methods include the need for compliance with the information security standards in the payment card industry developed by the international payment systems Visa and MasterCard - Payment Card Industry Data Security Standard (PCI DSS) and Payment Application Data Security Standard (PA-DSS). For additional information about PCI DSS, please visit the [https://www.pcisecuritystandards.org/ Official PCI Security Standards Council Site].&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The document provides instructions on how to implement the application in a PCI DSS compliant manner.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Full product name - X-Cart Payments.&amp;lt;br /&amp;gt;&lt;br /&gt;
Product version - 3.0.x.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Any servers used to run the X-Cart Payments payment application must be configured according to this PA-DSS Implementation Guide.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This PA-DSS Implementation Guide should be updated:&lt;br /&gt;
:* at least annually;&lt;br /&gt;
:* after changes in the payment application (if required);&lt;br /&gt;
:* after changes in the PCI DSS and PA-DSS standards.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The updated Version of the PA-DSS Implementation Guide has to be sent to all the merchants using X-Cart Payments.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The history of changes to the X-Cart Payments PA-DSS Implementation Guide is provided in the table below.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Table.1. X-Cart Payments PA-DSS Implementation Guide history of changes''' &amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Author'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Date'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Number'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 60%;&amp;quot;|  '''Change description'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| 05/17/2016&lt;br /&gt;
| 01&lt;br /&gt;
| The original version of the document, designed to meet the requirements of PCI DSS version 3.1 and PA DSS version 3.1&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data protection==&lt;br /&gt;
The PCI DSS and PA-DSS standards prohibit storage of sensitive authentication data (after authorization) or cardholder data in cleartext.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cardholder data includes:&lt;br /&gt;
:* Primary Account Number (PAN) &lt;br /&gt;
:* Cardholder Name &lt;br /&gt;
:* Expiration Date &lt;br /&gt;
:* Service Code &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Sensitive authentication data (SAD) includes: &lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments has the ability to store parts of cardholder data temporarily to perform 3D Secure verification and certain types of transactions for some of the integrated payment processors. During storage, cardholder data is encrypted using RSA 2048 algorithm and AES 256 for key encryption. When its storage period is over, the data is removed automatically via &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments may not be configured to store permanently in the database the following types of data: &lt;br /&gt;
:* Full PAN&lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
The payment application masks PAN on display (except for the moment when the user enters the card number).&lt;br /&gt;
X-Cart Payments can display masked PAN on the &amp;quot;Payment details&amp;quot; pages and in the &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. The same data (partially masked with asterisks) may be passed via the API to the integrated software products. X-Cart Payments does not have the ability to display full PAN anywhere, and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data Collected while Testing==&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments: &lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever choose to collect credit card information to troubleshoot a problem that a customer of yours is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access.&lt;br /&gt;
#* Only collect a limited amount of data (no more than is needed to solve the problem).&lt;br /&gt;
#* Sensitive authentication data must be encrypted during storage. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Sensitive authentication data must be securely deleted immediately after use.&lt;br /&gt;
To prevent uncontrolled storage of cardholder data (for example, in case of operating system failure), it is recommended to disable the swap file or move it to a specially prepared encrypted partition.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Authentication and access==&lt;br /&gt;
The X-Cart Payments payment application has an only user type. This type cannot get access to payment card numbers and does not have any administrative privileges that may affect PA-DSS compliance.&lt;br /&gt;
There are no built-in/default user accounts in X-Cart Payments. You must carefully control access to X-Cart Payments. Follow these rules: &lt;br /&gt;
:* Restrict the number of employees who have access to X-Cart Payments to only those who have a business need.&lt;br /&gt;
:* Always provide unique usernames for each person who needs access.&lt;br /&gt;
:* Do not use system-default usernames and/or passwords.&lt;br /&gt;
:* Ensure that web server is run under a non-privileged user account and the application has access to the database from a limited privilege user account.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To set password lifetime:&lt;br /&gt;
# Log in to X-Cart Payments.&lt;br /&gt;
# Go to Settings -&amp;gt; General Settings.&lt;br /&gt;
# In the &amp;quot;User account password lifetime&amp;quot; field, enter the number of days for which the user account password needs to be valid. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
The following related rules apply:&lt;br /&gt;
:* The minimum password length is 8 characters.&lt;br /&gt;
:* A password must contain both numbers and lower- and uppercase characters.&lt;br /&gt;
:* The last 4 passwords must be unique.&lt;br /&gt;
:* A user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password.&lt;br /&gt;
:* A user is logged off after an inactivity period of 15 minutes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords: &lt;br /&gt;
:* For your Web hosting account administration area (Web hosting account where your online store is hosted);&lt;br /&gt;
:* For FTP access to the Web server;&lt;br /&gt;
:* For Remote Desktop Connection to the Web server (if available);&lt;br /&gt;
:* To connect to the MySQL server that contains your store data.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux authentication mechanism is used for login in the servers with running X-Cart Payments.&lt;br /&gt;
Accounts for access to the operating system are managed by the Linux administrator.&lt;br /&gt;
For Linux operating system accounts, you must configure the following attributes of the password policy:&lt;br /&gt;
:* use personal accounts, do not use any group, shared, or generic accounts and passwords;&lt;br /&gt;
:* changes to user passwords at least once every 90 days;&lt;br /&gt;
:* require a minimum length of at least seven characters;&lt;br /&gt;
:* contain both numeric and alphabetic characters;&lt;br /&gt;
:* do not use last four passwords used previously;&lt;br /&gt;
:* block account after six invalid logon attempts (minimum 30 minutes or until an administrator enables the user ID).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Two-factor authentication must be used for remote access to the operating system. The authentication methods, also known as factors, are:&lt;br /&gt;
:* something you know, such as a password or a passphrase;&lt;br /&gt;
:* something you have, such as a token device or a smart card;&lt;br /&gt;
:* something you are, such as a biometric.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging==&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. Users do not have the ability to disable or change the logging parameters of X-Cart Payments. X-Cart Payments log journal does not contain cardholder data. It is implemented at the source code level. The setting of an event log journal does not require any additional action from users.&lt;br /&gt;
The log files are created in the var/log/ directory. In X-Cart Payments 3.0, logs can be viewed via the X-Cart Payments admin back end. &amp;lt;br /&amp;gt;Make sure you restrict access to the log files by business need-to-know. &lt;br /&gt;
The following types of activity are logged: &lt;br /&gt;
:* All actions taken by any individual with root or administrative privileges.&lt;br /&gt;
:* Successes and failures of all individual accesses to application sections and functions.&lt;br /&gt;
:* Initialization of the audit logs.&lt;br /&gt;
:* User sign in and sign out.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to the files access.log and error.log. &lt;br /&gt;
Each log event includes: &lt;br /&gt;
:* Type of event;&lt;br /&gt;
:* Date and time of event;&lt;br /&gt;
:* Username and IP address;&lt;br /&gt;
:* Success or failure indication;&lt;br /&gt;
:* Action which led to the event;&lt;br /&gt;
:* Component which led to the event.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on the server. This software should: &lt;br /&gt;
:* warn on a checksum change of any of X-Cart Payments source code files except for the log file and the database files;&lt;br /&gt;
:* record any file writing operations related to X-Cart Payments files.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Communication==&lt;br /&gt;
LAN channel or other available connection method can be used as a communication channel.&lt;br /&gt;
X-Cart Payments payment application supports the following data formats:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 20%;&amp;quot;| '''Protocol'''&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 70%;&amp;quot;| HTTP protocol (RFC 2616: HTTP/1.1) is used for data transfer between client and server &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data transmission method'''&lt;br /&gt;
| Only encrypted cardholder data (RSA 2048 and AES 256) is transferred. RAW POST method is used for data transmission - (data stream is transmitted in the body of the request that is sent from client to server)&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data format'''&lt;br /&gt;
| Data is transmitted in XML format (Extensible Markup Language (XML) 1.0) or in plain text using POST query via HTTPS&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Port'''&lt;br /&gt;
| X-Cart Payments payment application uses ports 80, 443 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Network traffic encryption'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for: &lt;br /&gt;
:* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
:* providing remote web-based access to the application.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use some tools to remotely access the application, you should encrypt all the communication using such technologies as TLS or IPSEC. &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As per PCI DSS requirement, cardholder data must never be sent unencrypted by email, and X-Cart Payments does meet this requirement never sending cardholder data by email or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Enable TLS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
TLS protects data that is transmitted between a browser and your web server. It is critical that you have TLS enabled on your web server, and one of the first steps you should take after the installation is to enable TLS. &lt;br /&gt;
:* Your web server must be configured to use TLS v1.1 or v1.2 protocols with strong encryption (128-bit or longer key is required).&lt;br /&gt;
:* You will need to have a certificate issued for your web domain. Read guidelines on installing Comodo's Instant TLS certificates.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If a web server does not have TLS enabled, X-Cart Payments will not function. &lt;br /&gt;
X-Cart Payments does not support remote administrative access. Strong encryption must be used for remote access to the server.&lt;br /&gt;
The connection of servers with X-Cart Payments payment application to the Internet must be protected by a firewall. In X-Cart Payments configurations involving more than one server, server connections should take place in network segments separated from the Internet via stateful inspection firewalls.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Wireless communications'''&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use wireless networking to access X-Cart Payments, it is your responsibility to ensure your wireless security configuration follows the PCI DSS requirements. &lt;br /&gt;
:* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
:* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
:* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
:* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
::* Use with a minimum 104-bit encryption key and 24 bit-initialization value.&lt;br /&gt;
::* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS.&lt;br /&gt;
::* Rotate shared WEP keys quarterly (or automatically if the technology permits).&lt;br /&gt;
::* Rotate shared WEP keys whenever there are changes in personnel with access to keys.&lt;br /&gt;
::* Restrict access based on media access code (MAC) address.&lt;br /&gt;
::* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Remote access'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time codes. Detailed information can be found on the [[X-Payments:Two-factor_authentication | X-Payments:Two-factor authentication]] page. &lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following: &lt;br /&gt;
:* Change the default settings in the remote access software (for example, change the default passwords and use unique passwords for each customer).&lt;br /&gt;
:* Allow connections only from specific (known) IP/MAC addresses.&lt;br /&gt;
:* Use strong authentication or complex passwords for logins.&lt;br /&gt;
:* Enable encrypted data transmission.&lt;br /&gt;
:* Enable account lockout after a certain number of failed login attempts.&lt;br /&gt;
:* Configure the system so a remote user must establish a Virtual Private Network (&amp;quot;VPN&amp;quot;) connection via a firewall before access is allowed.&lt;br /&gt;
:* Enable any logging or auditing functions.&lt;br /&gt;
:* Restrict access to customer passwords to authorized reseller/integrator personnel.&lt;br /&gt;
:* Establish customer passwords according to PCI DSS requirements.&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hardware and software==&lt;br /&gt;
The following requirements must be met for X-Cart Payments payment application self-service terminals:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Operating System'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux Ubuntu 16 or later, Linux Debian 6.0 or later, Linux CentOS 6 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''DBMS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
My SQL 5.6 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''Software'''&amp;lt;br /&amp;gt;&lt;br /&gt;
PHP 5.5 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
Apache 2.4 or later&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Product versioning methodology==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Version number changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%;&amp;quot;| '''Software changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Description'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;|  '''PA-DSS changes'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Version number does not change&lt;br /&gt;
| Change of the software name&amp;lt;br /&amp;gt;Change of the vendor name&lt;br /&gt;
| Changes not related to the software development process&lt;br /&gt;
| Administrative&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the minor version number to reflect a change not affecting the certification. For example, change of the version number from 1.0.5 to 1.0.6 (for the certification of 1.0.x)&lt;br /&gt;
| - Changes to the user interface &amp;lt;br /&amp;gt;- Changes to the database schema &amp;lt;br /&amp;gt;- Changes to supported payment gateway integrations / Addition of new payment gateway integrations&lt;br /&gt;
| Changes that have no impact on the PA-DSS requirements compliance or Payment Application security&lt;br /&gt;
| No Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the second version number. For example, change of the version number from 1.1.* to 1.2.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- Fewer than 4 sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- Fewer than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- Less than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Changes implemented for compatibility with the updated versions of previously tested OS, DBMS and third party software products.&amp;lt;br /&amp;gt;- Addition/removal of supported payment processors.&amp;lt;br /&amp;gt;- Recompilation of the source code using a new compiler or different compiler settings.&amp;lt;br /&amp;gt;- Changes of the software versioning policy.&amp;lt;br /&amp;gt;- Changes of the software not related to security.&lt;br /&gt;
| - Changes in the software affecting payment card data mechanisms.&amp;lt;br /&amp;gt;- Changes addressing the identified vulnerabilities of the application.&amp;lt;br /&amp;gt;- Changes related to the completion of the annual cycle of development (if there are other changes).&lt;br /&gt;
| Low Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the first version number. For example, change of the version number from 1.0.* to 2.0.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- 4 or more sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Addition of new supported platforms/OS versions. &lt;br /&gt;
| Major changes in the software architecture, global alterations of code&lt;br /&gt;
| High Impact&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The release of each new version is accompanied with a notification to all the application users (agents), which indicates the new application version number and a list of main changes in the new version.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=686</id>
		<title>X-Payments:PA-DSS implementation guide for X-Cart Payments 3</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=686"/>
		<updated>2016-05-30T08:32:54Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* Communication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The purpose of this PA-DSS Implementation Guide is to inform employees of organizations using the X-Cart Payments payment application by Qualiteam Software Limited about the methods and means of protection of account data in the X-Cart Payments software.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The methods include the need for compliance with the information security standards in the payment card industry developed by the international payment systems Visa and MasterCard – Payment Card Industry Data Security Standard (PCI DSS) and Payment Application Data Security Standard (PA-DSS). For additional information about PCI DSS, please visit the [https://www.pcisecuritystandards.org/ Official PCI Security Standards Council Site].&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The document provides instructions on how to implement the application in a PCI DSS compliant manner.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Full product name – X-Cart Payments.&amp;lt;br /&amp;gt;&lt;br /&gt;
Product version – 3.0.х.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Any servers used to run the X-Cart Payments payment application must be configured according to this PA-DSS Implementation Guide.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This PA-DSS Implementation Guide should be updated:&lt;br /&gt;
:* at least annually;&lt;br /&gt;
:* after changes in the payment application (if required);&lt;br /&gt;
:* after changes in the PCI DSS and PA-DSS standards.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The updated Version of the PA-DSS Implementation Guide has to be sent to all the merchants using X-Cart Payments.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The history of changes to the X-Cart Payments PA-DSS Implementation Guide is provided in the table below.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Table.1. X-Cart Payments PA-DSS Implementation Guide history of changes''' &amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Author'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Date'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Number'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 60%;&amp;quot;|  '''Change description'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| 05/17/2016&lt;br /&gt;
| 01&lt;br /&gt;
| The original version of the document, designed to meet the requirements of PCI DSS version 3.1 and PA DSS version 3.1&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data protection==&lt;br /&gt;
The PCI DSS and PA-DSS standards prohibit storage of sensitive authentication data (after authorization) or cardholder data in cleartext.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cardholder data includes:&lt;br /&gt;
:* Primary Account Number (PAN) &lt;br /&gt;
:* Cardholder Name &lt;br /&gt;
:* Expiration Date &lt;br /&gt;
:* Service Code &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Sensitive authentication data (SAD) includes: &lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments has the ability to store parts of cardholder data temporarily to perform 3D Secure verification and certain types of transactions for some of the integrated payment processors. During storage, cardholder data is encrypted using RSA 2048 algorithm and AES 256 for key encryption. When its storage period is over, the data is removed automatically via &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments may not be configured to store permanently in the database the following types of data: &lt;br /&gt;
:* Full PAN&lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
The payment application masks PAN on display (except for the moment when the user enters the card number).&lt;br /&gt;
X-Cart Payments can display masked PAN on the &amp;quot;Payment details&amp;quot; pages and in the &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. The same data (partially masked with asterisks) may be passed via the API to the integrated software products. X-Cart Payments does not have the ability to display full PAN anywhere, and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data Collected while Testing==&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments: &lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever choose to collect credit card information to troubleshoot a problem that a customer of yours is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access.&lt;br /&gt;
#* Only collect a limited amount of data (no more than is needed to solve the problem).&lt;br /&gt;
#* Sensitive authentication data must be encrypted during storage. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Sensitive authentication data must be securely deleted immediately after use.&lt;br /&gt;
To prevent uncontrolled storage of cardholder data (for example, in case of operating system failure), it is recommended to disable the swap file or move it to a specially prepared encrypted partition.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Authentication and access==&lt;br /&gt;
The X-Cart Payments payment application has an only user type. This type cannot get access to payment card numbers and does not have any administrative privileges that may affect PA-DSS compliance.&lt;br /&gt;
There are no built-in/default user accounts in X-Cart Payments. You must carefully control access to X-Cart Payments. Follow these rules: &lt;br /&gt;
:* Restrict the number of employees who have access to X-Cart Payments to only those who have a business need.&lt;br /&gt;
:* Always provide unique usernames for each person who needs access.&lt;br /&gt;
:* Do not use system-default usernames and/or passwords.&lt;br /&gt;
:* Ensure that web server is run under a non-privileged user account and the application has access to the database from a limited privilege user account.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To set password lifetime:&lt;br /&gt;
# Log in to X-Cart Payments.&lt;br /&gt;
# Go to Settings -&amp;gt; General Settings.&lt;br /&gt;
# In the &amp;quot;User account password lifetime&amp;quot; field, enter the number of days for which the user account password needs to be valid. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
The following related rules apply:&lt;br /&gt;
:* The minimum password length is 8 characters.&lt;br /&gt;
:* A password must contain both numbers and lower- and uppercase characters.&lt;br /&gt;
:* The last 4 passwords must be unique.&lt;br /&gt;
:* A user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password.&lt;br /&gt;
:* A user is logged off after an inactivity period of 15 minutes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords: &lt;br /&gt;
:* For your Web hosting account administration area (Web hosting account where your online store is hosted);&lt;br /&gt;
:* For FTP access to the Web server;&lt;br /&gt;
:* For Remote Desktop Connection to the Web server (if available);&lt;br /&gt;
:* To connect to the MySQL server that contains your store data.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux authentication mechanism is used for login in the servers with running X-Cart Payments.&lt;br /&gt;
Accounts for access to the operating system are managed by the Linux administrator.&lt;br /&gt;
For Linux operating system accounts, you must configure the following attributes of the password policy:&lt;br /&gt;
:* use personal accounts, do not use any group, shared, or generic accounts and passwords;&lt;br /&gt;
:* changes to user passwords at least once every 90 days;&lt;br /&gt;
:* require a minimum length of at least seven characters;&lt;br /&gt;
:* contain both numeric and alphabetic characters;&lt;br /&gt;
:* do not use last four passwords used previously;&lt;br /&gt;
:* block account after six invalid logon attempts (minimum 30 minutes or until an administrator enables the user ID).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Two-factor authentication must be used for remote access to the operating system. The authentication methods, also known as factors, are:&lt;br /&gt;
:* something you know, such as a password or a passphrase;&lt;br /&gt;
:* something you have, such as a token device or a smart card;&lt;br /&gt;
:* something you are, such as a biometric.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging==&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. Users do not have the ability to disable or change the logging parameters of X-Cart Payments. X-Cart Payments log journal does not contain cardholder data. It is implemented at the source code level. The setting of an event log journal does not require any additional action from users.&lt;br /&gt;
The log files are created in the var/log/ directory. In X-Cart Payments 3.0, logs can be viewed via the X-Cart Payments admin back end. &amp;lt;br /&amp;gt;Make sure you restrict access to the log files by business need-to-know. &lt;br /&gt;
The following types of activity are logged: &lt;br /&gt;
:* All actions taken by any individual with root or administrative privileges.&lt;br /&gt;
:* Successes and failures of all individual accesses to application sections and functions.&lt;br /&gt;
:* Initialization of the audit logs.&lt;br /&gt;
:* User sign in and sign out.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to the files access.log and error.log. &lt;br /&gt;
Each log event includes: &lt;br /&gt;
:* Type of event;&lt;br /&gt;
:* Date and time of event;&lt;br /&gt;
:* Username and IP address;&lt;br /&gt;
:* Success or failure indication;&lt;br /&gt;
:* Action which led to the event;&lt;br /&gt;
:* Component which led to the event.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on the server. This software should: &lt;br /&gt;
:* warn on a checksum change of any of X-Cart Payments source code files except for the log file and the database files;&lt;br /&gt;
:* record any file writing operations related to X-Cart Payments files.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Communication==&lt;br /&gt;
LAN channel or other available connection method can be used as a communication channel.&lt;br /&gt;
X-Cart Payments payment application supports the following data formats:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 20%;&amp;quot;| '''Protocol'''&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 70%;&amp;quot;| HTTP protocol (RFC 2616: HTTP/1.1) is used for data transfer between client and server &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data transmission method'''&lt;br /&gt;
| Only encrypted cardholder data (RSA 2048 and AES 256) is transferred. RAW POST method is used for data transmission – (data stream is transmitted in the body of the request that is sent from client to server)&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data format'''&lt;br /&gt;
| Data is transmitted in XML format (Extensible Markup Language (XML) 1.0) or in plain text using POST query via HTTPS&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Port'''&lt;br /&gt;
| X-Cart Payments payment application uses ports 80, 443 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Network traffic encryption'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for: &lt;br /&gt;
:* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
:* providing remote web-based access to the application.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use some tools to remotely access the application, you should encrypt all the communication using such technologies as TLS or IPSEC. &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As per PCI DSS requirement, cardholder data must never be sent unencrypted by email, and X-Cart Payments does meet this requirement never sending cardholder data by email or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Enable TLS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
TLS protects data that is transmitted between a browser and your web server. It is critical that you have TLS enabled on your web server, and one of the first steps you should take after the installation is to enable TLS. &lt;br /&gt;
:* Your web server must be configured to use TLS v1.1 or v1.2 protocols with strong encryption (128-bit or longer key is required).&lt;br /&gt;
:* You will need to have a certificate issued for your web domain. Read guidelines on installing Comodo's Instant TLS certificates.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If a web server does not have TLS enabled, X-Cart Payments will not function. &lt;br /&gt;
X-Cart Payments does not support remote administrative access. Strong encryption must be used for remote access to the server.&lt;br /&gt;
The connection of servers with X-Cart Payments payment application to the Internet must be protected by a firewall. In X-Cart Payments configurations involving more than one server, server connections should take place in network segments separated from the Internet via stateful inspection firewalls.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Wireless communications'''&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use wireless networking to access X-Cart Payments, it is your responsibility to ensure your wireless security configuration follows the PCI DSS requirements. &lt;br /&gt;
:* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
:* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
:* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
:* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
::* Use with a minimum 104-bit encryption key and 24 bit-initialization value.&lt;br /&gt;
::* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS.&lt;br /&gt;
::* Rotate shared WEP keys quarterly (or automatically if the technology permits).&lt;br /&gt;
::* Rotate shared WEP keys whenever there are changes in personnel with access to keys.&lt;br /&gt;
::* Restrict access based on media access code (MAC) address.&lt;br /&gt;
::* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Remote access'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time codes. Detailed information can be found on the [[X-Payments:Two-factor_authentication | X-Payments:Two-factor authentication]] page. &lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following: &lt;br /&gt;
:* Change the default settings in the remote access software (for example, change the default passwords and use unique passwords for each customer).&lt;br /&gt;
:* Allow connections only from specific (known) IP/MAC addresses.&lt;br /&gt;
:* Use strong authentication or complex passwords for logins.&lt;br /&gt;
:* Enable encrypted data transmission.&lt;br /&gt;
:* Enable account lockout after a certain number of failed login attempts.&lt;br /&gt;
:* Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed.&lt;br /&gt;
:* Enable any logging or auditing functions.&lt;br /&gt;
:* Restrict access to customer passwords to authorized reseller/integrator personnel.&lt;br /&gt;
:* Establish customer passwords according to PCI DSS requirements.&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hardware and software==&lt;br /&gt;
The following requirements must be met for X-Cart Payments payment application self-service terminals:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Operating System'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux Ubuntu 16 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''DBMS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
My SQL 5.6 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''Software'''&amp;lt;br /&amp;gt;&lt;br /&gt;
PHP 5.5 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
Apache 2.4 or later&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Product versioning methodology==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Version number changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%;&amp;quot;| '''Software changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Description'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;|  '''PA-DSS changes'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Version number does not change&lt;br /&gt;
| Change of the software name&amp;lt;br /&amp;gt;Change of the vendor name&lt;br /&gt;
| Changes not related to the software development process&lt;br /&gt;
| Administrative&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the minor version number to reflect a change not affecting the certification. For example, change of the version number from 1.0.5 to 1.0.6 (for the certification of 1.0.x)&lt;br /&gt;
| - Changes to the user interface &amp;lt;br /&amp;gt;- Changes to the database schema &amp;lt;br /&amp;gt;- Changes to supported payment gateway integrations / Addition of new payment gateway integrations&lt;br /&gt;
| Сhanges that have no impact on the PA-DSS requirements compliance or Payment Application security&lt;br /&gt;
| No Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the second version number. For example, change of the version number from 1.1.* to 1.2.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- Fewer than 4 sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- Fewer than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- Less than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Changes implemented for compatibility with the updated versions of previously tested OS, DBMS and third party software products.&amp;lt;br /&amp;gt;- Addition/removal of supported payment processors.&amp;lt;br /&amp;gt;- Recompilation of the source code using a new compiler or different compiler settings.&amp;lt;br /&amp;gt;- Changes of the software versioning policy.&amp;lt;br /&amp;gt;- Changes of the software not related to security.&lt;br /&gt;
| - Changes in the software affecting payment card data mechanisms.&amp;lt;br /&amp;gt;- Changes addressing the identified vulnerabilities of the application.&amp;lt;br /&amp;gt;- Changes related to the completion of the annual cycle of development (if there are other changes).&lt;br /&gt;
| Low Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the first version number. For example, change of the version number from 1.0.* to 2.0.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- 4 or more sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Addition of new supported platforms/OS versions. &lt;br /&gt;
| Major changes in the software architecture, global alterations of code&lt;br /&gt;
| High Impact&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The release of each new version is accompanied with a notification to all the application users (agents), which indicates the new application version number and a list of main changes in the new version.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=685</id>
		<title>X-Payments:PA-DSS implementation guide for X-Cart Payments 3</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=685"/>
		<updated>2016-05-26T09:46:02Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* Communication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The purpose of this PA-DSS Implementation Guide is to inform employees of organizations using the X-Cart Payments payment application by Qualiteam Software Limited about the methods and means of protection of account data in the X-Cart Payments software.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The methods include the need for compliance with the information security standards in the payment card industry developed by the international payment systems Visa and MasterCard – Payment Card Industry Data Security Standard (PCI DSS) and Payment Application Data Security Standard (PA-DSS). For additional information about PCI DSS, please visit the [https://www.pcisecuritystandards.org/ Official PCI Security Standards Council Site].&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The document provides instructions on how to implement the application in a PCI DSS compliant manner.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Full product name – X-Cart Payments.&amp;lt;br /&amp;gt;&lt;br /&gt;
Product version – 3.0.х.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Any servers used to run the X-Cart Payments payment application must be configured according to this PA-DSS Implementation Guide.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This PA-DSS Implementation Guide should be updated:&lt;br /&gt;
:* at least annually;&lt;br /&gt;
:* after changes in the payment application (if required);&lt;br /&gt;
:* after changes in the PCI DSS and PA-DSS standards.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The updated Version of the PA-DSS Implementation Guide has to be sent to all the merchants using X-Cart Payments.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The history of changes to the X-Cart Payments PA-DSS Implementation Guide is provided in the table below.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Table.1. X-Cart Payments PA-DSS Implementation Guide history of changes''' &amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Author'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Date'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Number'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 60%;&amp;quot;|  '''Change description'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| 05/17/2016&lt;br /&gt;
| 01&lt;br /&gt;
| The original version of the document, designed to meet the requirements of PCI DSS version 3.1 and PA DSS version 3.1&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data protection==&lt;br /&gt;
The PCI DSS and PA-DSS standards prohibit storage of sensitive authentication data (after authorization) or cardholder data in cleartext.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cardholder data includes:&lt;br /&gt;
:* Primary Account Number (PAN) &lt;br /&gt;
:* Cardholder Name &lt;br /&gt;
:* Expiration Date &lt;br /&gt;
:* Service Code &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Sensitive authentication data (SAD) includes: &lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments has the ability to store parts of cardholder data temporarily to perform 3D Secure verification and certain types of transactions for some of the integrated payment processors. During storage, cardholder data is encrypted using RSA 2048 algorithm and AES 256 for key encryption. When its storage period is over, the data is removed automatically via &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments may not be configured to store permanently in the database the following types of data: &lt;br /&gt;
:* Full PAN&lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
The payment application masks PAN on display (except for the moment when the user enters the card number).&lt;br /&gt;
X-Cart Payments can display masked PAN on the &amp;quot;Payment details&amp;quot; pages and in the &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. The same data (partially masked with asterisks) may be passed via the API to the integrated software products. X-Cart Payments does not have the ability to display full PAN anywhere, and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data Collected while Testing==&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments: &lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever choose to collect credit card information to troubleshoot a problem that a customer of yours is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access.&lt;br /&gt;
#* Only collect a limited amount of data (no more than is needed to solve the problem).&lt;br /&gt;
#* Sensitive authentication data must be encrypted during storage. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Sensitive authentication data must be securely deleted immediately after use.&lt;br /&gt;
To prevent uncontrolled storage of cardholder data (for example, in case of operating system failure), it is recommended to disable the swap file or move it to a specially prepared encrypted partition.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Authentication and access==&lt;br /&gt;
The X-Cart Payments payment application has an only user type. This type cannot get access to payment card numbers and does not have any administrative privileges that may affect PA-DSS compliance.&lt;br /&gt;
There are no built-in/default user accounts in X-Cart Payments. You must carefully control access to X-Cart Payments. Follow these rules: &lt;br /&gt;
:* Restrict the number of employees who have access to X-Cart Payments to only those who have a business need.&lt;br /&gt;
:* Always provide unique usernames for each person who needs access.&lt;br /&gt;
:* Do not use system-default usernames and/or passwords.&lt;br /&gt;
:* Ensure that web server is run under a non-privileged user account and the application has access to the database from a limited privilege user account.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To set password lifetime:&lt;br /&gt;
# Log in to X-Cart Payments.&lt;br /&gt;
# Go to Settings -&amp;gt; General Settings.&lt;br /&gt;
# In the &amp;quot;User account password lifetime&amp;quot; field, enter the number of days for which the user account password needs to be valid. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
The following related rules apply:&lt;br /&gt;
:* The minimum password length is 8 characters.&lt;br /&gt;
:* A password must contain both numbers and lower- and uppercase characters.&lt;br /&gt;
:* The last 4 passwords must be unique.&lt;br /&gt;
:* A user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password.&lt;br /&gt;
:* A user is logged off after an inactivity period of 15 minutes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords: &lt;br /&gt;
:* For your Web hosting account administration area (Web hosting account where your online store is hosted);&lt;br /&gt;
:* For FTP access to the Web server;&lt;br /&gt;
:* For Remote Desktop Connection to the Web server (if available);&lt;br /&gt;
:* To connect to the MySQL server that contains your store data.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux authentication mechanism is used for login in the servers with running X-Cart Payments.&lt;br /&gt;
Accounts for access to the operating system are managed by the Linux administrator.&lt;br /&gt;
For Linux operating system accounts, you must configure the following attributes of the password policy:&lt;br /&gt;
:* use personal accounts, do not use any group, shared, or generic accounts and passwords;&lt;br /&gt;
:* changes to user passwords at least once every 90 days;&lt;br /&gt;
:* require a minimum length of at least seven characters;&lt;br /&gt;
:* contain both numeric and alphabetic characters;&lt;br /&gt;
:* do not use last four passwords used previously;&lt;br /&gt;
:* block account after six invalid logon attempts (minimum 30 minutes or until an administrator enables the user ID).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Two-factor authentication must be used for remote access to the operating system. The authentication methods, also known as factors, are:&lt;br /&gt;
:* something you know, such as a password or a passphrase;&lt;br /&gt;
:* something you have, such as a token device or a smart card;&lt;br /&gt;
:* something you are, such as a biometric.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging==&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. Users do not have the ability to disable or change the logging parameters of X-Cart Payments. X-Cart Payments log journal does not contain cardholder data. It is implemented at the source code level. The setting of an event log journal does not require any additional action from users.&lt;br /&gt;
The log files are created in the var/log/ directory. In X-Cart Payments 3.0, logs can be viewed via the X-Cart Payments admin back end. &amp;lt;br /&amp;gt;Make sure you restrict access to the log files by business need-to-know. &lt;br /&gt;
The following types of activity are logged: &lt;br /&gt;
:* All actions taken by any individual with root or administrative privileges.&lt;br /&gt;
:* Successes and failures of all individual accesses to application sections and functions.&lt;br /&gt;
:* Initialization of the audit logs.&lt;br /&gt;
:* User sign in and sign out.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to the files access.log and error.log. &lt;br /&gt;
Each log event includes: &lt;br /&gt;
:* Type of event;&lt;br /&gt;
:* Date and time of event;&lt;br /&gt;
:* Username and IP address;&lt;br /&gt;
:* Success or failure indication;&lt;br /&gt;
:* Action which led to the event;&lt;br /&gt;
:* Component which led to the event.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on the server. This software should: &lt;br /&gt;
:* warn on a checksum change of any of X-Cart Payments source code files except for the log file and the database files;&lt;br /&gt;
:* record any file writing operations related to X-Cart Payments files.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Communication==&lt;br /&gt;
LAN channel or other available connection method can be used as a communication channel.&lt;br /&gt;
X-Cart Payments payment application supports the following data formats:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 20%;&amp;quot;| '''Protocol'''&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 70%;&amp;quot;| HTTP protocol (RFC 2616: HTTP/1.1) is used for data transfer between client and server &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data transmission method'''&lt;br /&gt;
| Only encrypted cardholder data (RSA 2048 and AES 256) is transferred. RAW POST method is used for data transmission – (data stream is transmitted in the body of the request that is sent from client to server)&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data format'''&lt;br /&gt;
| Data is transmitted in XML format (Extensible Markup Language (XML) 1.0)&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Port'''&lt;br /&gt;
| X-Cart Payments payment application uses ports 80, 443 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Network traffic encryption'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for: &lt;br /&gt;
:* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
:* providing remote web-based access to the application.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use some tools to remotely access the application, you should encrypt all the communication using such technologies as TLS or IPSEC. &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As per PCI DSS requirement, cardholder data must never be sent unencrypted by email, and X-Cart Payments does meet this requirement never sending cardholder data by email or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Enable TLS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
TLS protects data that is transmitted between a browser and your web server. It is critical that you have TLS enabled on your web server, and one of the first steps you should take after the installation is to enable TLS. &lt;br /&gt;
:* Your web server must be configured to use TLS v1.1 or v1.2 protocols with strong encryption (128-bit or longer key is required).&lt;br /&gt;
:* You will need to have a certificate issued for your web domain. Read guidelines on installing Comodo's Instant TLS certificates.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If a web server does not have TLS enabled, X-Cart Payments will not function. &lt;br /&gt;
X-Cart Payments does not support remote administrative access. Strong encryption must be used for remote access to the server.&lt;br /&gt;
The connection of servers with X-Cart Payments payment application to the Internet must be protected by a firewall. In X-Cart Payments configurations involving more than one server, server connections should take place in network segments separated from the Internet via stateful inspection firewalls.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Wireless communications'''&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use wireless networking to access X-Cart Payments, it is your responsibility to ensure your wireless security configuration follows the PCI DSS requirements. &lt;br /&gt;
:* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
:* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
:* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
:* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
::* Use with a minimum 104-bit encryption key and 24 bit-initialization value.&lt;br /&gt;
::* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS.&lt;br /&gt;
::* Rotate shared WEP keys quarterly (or automatically if the technology permits).&lt;br /&gt;
::* Rotate shared WEP keys whenever there are changes in personnel with access to keys.&lt;br /&gt;
::* Restrict access based on media access code (MAC) address.&lt;br /&gt;
::* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Remote access'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time codes. Detailed information can be found on the [[X-Payments:Two-factor_authentication | X-Payments:Two-factor authentication]] page. &lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following: &lt;br /&gt;
:* Change the default settings in the remote access software (for example, change the default passwords and use unique passwords for each customer).&lt;br /&gt;
:* Allow connections only from specific (known) IP/MAC addresses.&lt;br /&gt;
:* Use strong authentication or complex passwords for logins.&lt;br /&gt;
:* Enable encrypted data transmission.&lt;br /&gt;
:* Enable account lockout after a certain number of failed login attempts.&lt;br /&gt;
:* Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed.&lt;br /&gt;
:* Enable any logging or auditing functions.&lt;br /&gt;
:* Restrict access to customer passwords to authorized reseller/integrator personnel.&lt;br /&gt;
:* Establish customer passwords according to PCI DSS requirements.&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hardware and software==&lt;br /&gt;
The following requirements must be met for X-Cart Payments payment application self-service terminals:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Operating System'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux Ubuntu 16 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''DBMS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
My SQL 5.6 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''Software'''&amp;lt;br /&amp;gt;&lt;br /&gt;
PHP 5.5 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
Apache 2.4 or later&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Product versioning methodology==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Version number changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%;&amp;quot;| '''Software changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Description'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;|  '''PA-DSS changes'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Version number does not change&lt;br /&gt;
| Change of the software name&amp;lt;br /&amp;gt;Change of the vendor name&lt;br /&gt;
| Changes not related to the software development process&lt;br /&gt;
| Administrative&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the minor version number to reflect a change not affecting the certification. For example, change of the version number from 1.0.5 to 1.0.6 (for the certification of 1.0.x)&lt;br /&gt;
| - Changes to the user interface &amp;lt;br /&amp;gt;- Changes to the database schema &amp;lt;br /&amp;gt;- Changes to supported payment gateway integrations / Addition of new payment gateway integrations&lt;br /&gt;
| Сhanges that have no impact on the PA-DSS requirements compliance or Payment Application security&lt;br /&gt;
| No Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the second version number. For example, change of the version number from 1.1.* to 1.2.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- Fewer than 4 sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- Fewer than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- Less than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Changes implemented for compatibility with the updated versions of previously tested OS, DBMS and third party software products.&amp;lt;br /&amp;gt;- Addition/removal of supported payment processors.&amp;lt;br /&amp;gt;- Recompilation of the source code using a new compiler or different compiler settings.&amp;lt;br /&amp;gt;- Changes of the software versioning policy.&amp;lt;br /&amp;gt;- Changes of the software not related to security.&lt;br /&gt;
| - Changes in the software affecting payment card data mechanisms.&amp;lt;br /&amp;gt;- Changes addressing the identified vulnerabilities of the application.&amp;lt;br /&amp;gt;- Changes related to the completion of the annual cycle of development (if there are other changes).&lt;br /&gt;
| Low Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the first version number. For example, change of the version number from 1.0.* to 2.0.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- 4 or more sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Addition of new supported platforms/OS versions. &lt;br /&gt;
| Major changes in the software architecture, global alterations of code&lt;br /&gt;
| High Impact&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The release of each new version is accompanied with a notification to all the application users (agents), which indicates the new application version number and a list of main changes in the new version.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=684</id>
		<title>X-Payments:PA-DSS implementation guide for X-Cart Payments 3</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=684"/>
		<updated>2016-05-26T09:44:17Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* Communication */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The purpose of this PA-DSS Implementation Guide is to inform employees of organizations using the X-Cart Payments payment application by Qualiteam Software Limited about the methods and means of protection of account data in the X-Cart Payments software.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The methods include the need for compliance with the information security standards in the payment card industry developed by the international payment systems Visa and MasterCard – Payment Card Industry Data Security Standard (PCI DSS) and Payment Application Data Security Standard (PA-DSS). For additional information about PCI DSS, please visit the [https://www.pcisecuritystandards.org/ Official PCI Security Standards Council Site].&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The document provides instructions on how to implement the application in a PCI DSS compliant manner.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Full product name – X-Cart Payments.&amp;lt;br /&amp;gt;&lt;br /&gt;
Product version – 3.0.х.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Any servers used to run the X-Cart Payments payment application must be configured according to this PA-DSS Implementation Guide.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This PA-DSS Implementation Guide should be updated:&lt;br /&gt;
:* at least annually;&lt;br /&gt;
:* after changes in the payment application (if required);&lt;br /&gt;
:* after changes in the PCI DSS and PA-DSS standards.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The updated Version of the PA-DSS Implementation Guide has to be sent to all the merchants using X-Cart Payments.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The history of changes to the X-Cart Payments PA-DSS Implementation Guide is provided in the table below.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Table.1. X-Cart Payments PA-DSS Implementation Guide history of changes''' &amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Author'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Date'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Number'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 60%;&amp;quot;|  '''Change description'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| 05/17/2016&lt;br /&gt;
| 01&lt;br /&gt;
| The original version of the document, designed to meet the requirements of PCI DSS version 3.1 and PA DSS version 3.1&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data protection==&lt;br /&gt;
The PCI DSS and PA-DSS standards prohibit storage of sensitive authentication data (after authorization) or cardholder data in cleartext.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cardholder data includes:&lt;br /&gt;
:* Primary Account Number (PAN) &lt;br /&gt;
:* Cardholder Name &lt;br /&gt;
:* Expiration Date &lt;br /&gt;
:* Service Code &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Sensitive authentication data (SAD) includes: &lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments has the ability to store parts of cardholder data temporarily to perform 3D Secure verification and certain types of transactions for some of the integrated payment processors. During storage, cardholder data is encrypted using RSA 2048 algorithm and AES 256 for key encryption. When its storage period is over, the data is removed automatically via &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments may not be configured to store permanently in the database the following types of data: &lt;br /&gt;
:* Full PAN&lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
The payment application masks PAN on display (except for the moment when the user enters the card number).&lt;br /&gt;
X-Cart Payments can display masked PAN on the &amp;quot;Payment details&amp;quot; pages and in the &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. The same data (partially masked with asterisks) may be passed via the API to the integrated software products. X-Cart Payments does not have the ability to display full PAN anywhere, and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data Collected while Testing==&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments: &lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever choose to collect credit card information to troubleshoot a problem that a customer of yours is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access.&lt;br /&gt;
#* Only collect a limited amount of data (no more than is needed to solve the problem).&lt;br /&gt;
#* Sensitive authentication data must be encrypted during storage. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Sensitive authentication data must be securely deleted immediately after use.&lt;br /&gt;
To prevent uncontrolled storage of cardholder data (for example, in case of operating system failure), it is recommended to disable the swap file or move it to a specially prepared encrypted partition.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Authentication and access==&lt;br /&gt;
The X-Cart Payments payment application has an only user type. This type cannot get access to payment card numbers and does not have any administrative privileges that may affect PA-DSS compliance.&lt;br /&gt;
There are no built-in/default user accounts in X-Cart Payments. You must carefully control access to X-Cart Payments. Follow these rules: &lt;br /&gt;
:* Restrict the number of employees who have access to X-Cart Payments to only those who have a business need.&lt;br /&gt;
:* Always provide unique usernames for each person who needs access.&lt;br /&gt;
:* Do not use system-default usernames and/or passwords.&lt;br /&gt;
:* Ensure that web server is run under a non-privileged user account and the application has access to the database from a limited privilege user account.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To set password lifetime:&lt;br /&gt;
# Log in to X-Cart Payments.&lt;br /&gt;
# Go to Settings -&amp;gt; General Settings.&lt;br /&gt;
# In the &amp;quot;User account password lifetime&amp;quot; field, enter the number of days for which the user account password needs to be valid. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
The following related rules apply:&lt;br /&gt;
:* The minimum password length is 8 characters.&lt;br /&gt;
:* A password must contain both numbers and lower- and uppercase characters.&lt;br /&gt;
:* The last 4 passwords must be unique.&lt;br /&gt;
:* A user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password.&lt;br /&gt;
:* A user is logged off after an inactivity period of 15 minutes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords: &lt;br /&gt;
:* For your Web hosting account administration area (Web hosting account where your online store is hosted);&lt;br /&gt;
:* For FTP access to the Web server;&lt;br /&gt;
:* For Remote Desktop Connection to the Web server (if available);&lt;br /&gt;
:* To connect to the MySQL server that contains your store data.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux authentication mechanism is used for login in the servers with running X-Cart Payments.&lt;br /&gt;
Accounts for access to the operating system are managed by the Linux administrator.&lt;br /&gt;
For Linux operating system accounts, you must configure the following attributes of the password policy:&lt;br /&gt;
:* use personal accounts, do not use any group, shared, or generic accounts and passwords;&lt;br /&gt;
:* changes to user passwords at least once every 90 days;&lt;br /&gt;
:* require a minimum length of at least seven characters;&lt;br /&gt;
:* contain both numeric and alphabetic characters;&lt;br /&gt;
:* do not use last four passwords used previously;&lt;br /&gt;
:* block account after six invalid logon attempts (minimum 30 minutes or until an administrator enables the user ID).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Two-factor authentication must be used for remote access to the operating system. The authentication methods, also known as factors, are:&lt;br /&gt;
:* something you know, such as a password or a passphrase;&lt;br /&gt;
:* something you have, such as a token device or a smart card;&lt;br /&gt;
:* something you are, such as a biometric.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging==&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. Users do not have the ability to disable or change the logging parameters of X-Cart Payments. X-Cart Payments log journal does not contain cardholder data. It is implemented at the source code level. The setting of an event log journal does not require any additional action from users.&lt;br /&gt;
The log files are created in the var/log/ directory. In X-Cart Payments 3.0, logs can be viewed via the X-Cart Payments admin back end. &amp;lt;br /&amp;gt;Make sure you restrict access to the log files by business need-to-know. &lt;br /&gt;
The following types of activity are logged: &lt;br /&gt;
:* All actions taken by any individual with root or administrative privileges.&lt;br /&gt;
:* Successes and failures of all individual accesses to application sections and functions.&lt;br /&gt;
:* Initialization of the audit logs.&lt;br /&gt;
:* User sign in and sign out.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to the files access.log and error.log. &lt;br /&gt;
Each log event includes: &lt;br /&gt;
:* Type of event;&lt;br /&gt;
:* Date and time of event;&lt;br /&gt;
:* Username and IP address;&lt;br /&gt;
:* Success or failure indication;&lt;br /&gt;
:* Action which led to the event;&lt;br /&gt;
:* Component which led to the event.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on the server. This software should: &lt;br /&gt;
:* warn on a checksum change of any of X-Cart Payments source code files except for the log file and the database files;&lt;br /&gt;
:* record any file writing operations related to X-Cart Payments files.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Communication==&lt;br /&gt;
LAN channel or other available connection method can be used as a communication channel.&lt;br /&gt;
X-Cart Payments payment application supports the following data formats:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 20%;&amp;quot;| '''Protocol'''&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 70%;&amp;quot;| HTTP protocol (RFC 2616: HTTP/1.1) is used for data transfer between client and server &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data transmission method'''&lt;br /&gt;
| Only encrypted cardholder data (RSA 2048 and AES 256) is transferred. RAW POST method is used for data transmission – (data stream is transmitted in the body of the request that is sent from client to server)&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data format'''&lt;br /&gt;
| Data is transmitted in XML format (Extensible Markup Language (XML) 1.0)&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Port'''&lt;br /&gt;
| X-Cart Payments payment application uses ports 80, 443 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Network traffic encryption'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for: &lt;br /&gt;
:* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
:* providing remote web-based access to the application.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use some tools to remotely access the application, you should encrypt all the communication using such technologies as TLS or IPSEC. &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As per PCI DSS requirement, cardholder data must never be sent unencrypted by email, and X-Cart Payments does meet this requirement never sending cardholder data by email or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Enable TLS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
TLS protects data that is transmitted between a browser and your web server. It is critical that you have TLS enabled on your web server, and one of the first steps you should take after the installation is to enable TLS. &lt;br /&gt;
:* Your web server must be configured to use TLS v1.1 or v1.2 protocols with strong encryption (128-bit or longer key is required).&lt;br /&gt;
:* You will need to have a certificate issued for your web domain. Read guidelines on installing Comodo's Instant TLS certificates.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If a web server does not have TLS enabled, X-Cart Payments will not function or will be notifying users depending on the allow_insecure_protocol parameter set in the config.ini.php file (disabled by default). &lt;br /&gt;
X-Cart Payments does not support remote administrative access. Strong encryption must be used for remote access to the server.&lt;br /&gt;
The connection of servers with X-Cart Payments payment application to the Internet must be protected by a firewall. In X-Cart Payments configurations involving more than one server, server connections should take place in network segments separated from the Internet via stateful inspection firewalls.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Wireless communications'''&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use wireless networking to access X-Cart Payments, it is your responsibility to ensure your wireless security configuration follows the PCI DSS requirements. &lt;br /&gt;
:* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
:* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
:* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
:* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
::* Use with a minimum 104-bit encryption key and 24 bit-initialization value.&lt;br /&gt;
::* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS.&lt;br /&gt;
::* Rotate shared WEP keys quarterly (or automatically if the technology permits).&lt;br /&gt;
::* Rotate shared WEP keys whenever there are changes in personnel with access to keys.&lt;br /&gt;
::* Restrict access based on media access code (MAC) address.&lt;br /&gt;
::* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Remote access'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time codes. Detailed information can be found on the [[X-Payments:Two-factor_authentication | X-Payments:Two-factor authentication]] page. &lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following: &lt;br /&gt;
:* Change the default settings in the remote access software (for example, change the default passwords and use unique passwords for each customer).&lt;br /&gt;
:* Allow connections only from specific (known) IP/MAC addresses.&lt;br /&gt;
:* Use strong authentication or complex passwords for logins.&lt;br /&gt;
:* Enable encrypted data transmission.&lt;br /&gt;
:* Enable account lockout after a certain number of failed login attempts.&lt;br /&gt;
:* Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed.&lt;br /&gt;
:* Enable any logging or auditing functions.&lt;br /&gt;
:* Restrict access to customer passwords to authorized reseller/integrator personnel.&lt;br /&gt;
:* Establish customer passwords according to PCI DSS requirements.&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hardware and software==&lt;br /&gt;
The following requirements must be met for X-Cart Payments payment application self-service terminals:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Operating System'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux Ubuntu 16 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''DBMS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
My SQL 5.6 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''Software'''&amp;lt;br /&amp;gt;&lt;br /&gt;
PHP 5.5 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
Apache 2.4 or later&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Product versioning methodology==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Version number changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%;&amp;quot;| '''Software changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Description'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;|  '''PA-DSS changes'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Version number does not change&lt;br /&gt;
| Change of the software name&amp;lt;br /&amp;gt;Change of the vendor name&lt;br /&gt;
| Changes not related to the software development process&lt;br /&gt;
| Administrative&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the minor version number to reflect a change not affecting the certification. For example, change of the version number from 1.0.5 to 1.0.6 (for the certification of 1.0.x)&lt;br /&gt;
| - Changes to the user interface &amp;lt;br /&amp;gt;- Changes to the database schema &amp;lt;br /&amp;gt;- Changes to supported payment gateway integrations / Addition of new payment gateway integrations&lt;br /&gt;
| Сhanges that have no impact on the PA-DSS requirements compliance or Payment Application security&lt;br /&gt;
| No Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the second version number. For example, change of the version number from 1.1.* to 1.2.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- Fewer than 4 sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- Fewer than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- Less than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Changes implemented for compatibility with the updated versions of previously tested OS, DBMS and third party software products.&amp;lt;br /&amp;gt;- Addition/removal of supported payment processors.&amp;lt;br /&amp;gt;- Recompilation of the source code using a new compiler or different compiler settings.&amp;lt;br /&amp;gt;- Changes of the software versioning policy.&amp;lt;br /&amp;gt;- Changes of the software not related to security.&lt;br /&gt;
| - Changes in the software affecting payment card data mechanisms.&amp;lt;br /&amp;gt;- Changes addressing the identified vulnerabilities of the application.&amp;lt;br /&amp;gt;- Changes related to the completion of the annual cycle of development (if there are other changes).&lt;br /&gt;
| Low Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the first version number. For example, change of the version number from 1.0.* to 2.0.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- 4 or more sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Addition of new supported platforms/OS versions. &lt;br /&gt;
| Major changes in the software architecture, global alterations of code&lt;br /&gt;
| High Impact&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The release of each new version is accompanied with a notification to all the application users (agents), which indicates the new application version number and a list of main changes in the new version.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=683</id>
		<title>X-Payments:PA-DSS implementation guide for X-Cart Payments 3</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=683"/>
		<updated>2016-05-26T09:40:40Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* Data protection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The purpose of this PA-DSS Implementation Guide is to inform employees of organizations using the X-Cart Payments payment application by Qualiteam Software Limited about the methods and means of protection of account data in the X-Cart Payments software.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The methods include the need for compliance with the information security standards in the payment card industry developed by the international payment systems Visa and MasterCard – Payment Card Industry Data Security Standard (PCI DSS) and Payment Application Data Security Standard (PA-DSS). For additional information about PCI DSS, please visit the [https://www.pcisecuritystandards.org/ Official PCI Security Standards Council Site].&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The document provides instructions on how to implement the application in a PCI DSS compliant manner.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Full product name – X-Cart Payments.&amp;lt;br /&amp;gt;&lt;br /&gt;
Product version – 3.0.х.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Any servers used to run the X-Cart Payments payment application must be configured according to this PA-DSS Implementation Guide.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This PA-DSS Implementation Guide should be updated:&lt;br /&gt;
:* at least annually;&lt;br /&gt;
:* after changes in the payment application (if required);&lt;br /&gt;
:* after changes in the PCI DSS and PA-DSS standards.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The updated Version of the PA-DSS Implementation Guide has to be sent to all the merchants using X-Cart Payments.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The history of changes to the X-Cart Payments PA-DSS Implementation Guide is provided in the table below.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Table.1. X-Cart Payments PA-DSS Implementation Guide history of changes''' &amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Author'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Date'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Number'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 60%;&amp;quot;|  '''Change description'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| 05/17/2016&lt;br /&gt;
| 01&lt;br /&gt;
| The original version of the document, designed to meet the requirements of PCI DSS version 3.1 and PA DSS version 3.1&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data protection==&lt;br /&gt;
The PCI DSS and PA-DSS standards prohibit storage of sensitive authentication data (after authorization) or cardholder data in cleartext.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cardholder data includes:&lt;br /&gt;
:* Primary Account Number (PAN) &lt;br /&gt;
:* Cardholder Name &lt;br /&gt;
:* Expiration Date &lt;br /&gt;
:* Service Code &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Sensitive authentication data (SAD) includes: &lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments has the ability to store parts of cardholder data temporarily to perform 3D Secure verification and certain types of transactions for some of the integrated payment processors. During storage, cardholder data is encrypted using RSA 2048 algorithm and AES 256 for key encryption. When its storage period is over, the data is removed automatically via &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments may not be configured to store permanently in the database the following types of data: &lt;br /&gt;
:* Full PAN&lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
The payment application masks PAN on display (except for the moment when the user enters the card number).&lt;br /&gt;
X-Cart Payments can display masked PAN on the &amp;quot;Payment details&amp;quot; pages and in the &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. The same data (partially masked with asterisks) may be passed via the API to the integrated software products. X-Cart Payments does not have the ability to display full PAN anywhere, and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data Collected while Testing==&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments: &lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever choose to collect credit card information to troubleshoot a problem that a customer of yours is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access.&lt;br /&gt;
#* Only collect a limited amount of data (no more than is needed to solve the problem).&lt;br /&gt;
#* Sensitive authentication data must be encrypted during storage. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Sensitive authentication data must be securely deleted immediately after use.&lt;br /&gt;
To prevent uncontrolled storage of cardholder data (for example, in case of operating system failure), it is recommended to disable the swap file or move it to a specially prepared encrypted partition.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Authentication and access==&lt;br /&gt;
The X-Cart Payments payment application has an only user type. This type cannot get access to payment card numbers and does not have any administrative privileges that may affect PA-DSS compliance.&lt;br /&gt;
There are no built-in/default user accounts in X-Cart Payments. You must carefully control access to X-Cart Payments. Follow these rules: &lt;br /&gt;
:* Restrict the number of employees who have access to X-Cart Payments to only those who have a business need.&lt;br /&gt;
:* Always provide unique usernames for each person who needs access.&lt;br /&gt;
:* Do not use system-default usernames and/or passwords.&lt;br /&gt;
:* Ensure that web server is run under a non-privileged user account and the application has access to the database from a limited privilege user account.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To set password lifetime:&lt;br /&gt;
# Log in to X-Cart Payments.&lt;br /&gt;
# Go to Settings -&amp;gt; General Settings.&lt;br /&gt;
# In the &amp;quot;User account password lifetime&amp;quot; field, enter the number of days for which the user account password needs to be valid. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
The following related rules apply:&lt;br /&gt;
:* The minimum password length is 8 characters.&lt;br /&gt;
:* A password must contain both numbers and lower- and uppercase characters.&lt;br /&gt;
:* The last 4 passwords must be unique.&lt;br /&gt;
:* A user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password.&lt;br /&gt;
:* A user is logged off after an inactivity period of 15 minutes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords: &lt;br /&gt;
:* For your Web hosting account administration area (Web hosting account where your online store is hosted);&lt;br /&gt;
:* For FTP access to the Web server;&lt;br /&gt;
:* For Remote Desktop Connection to the Web server (if available);&lt;br /&gt;
:* To connect to the MySQL server that contains your store data.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux authentication mechanism is used for login in the servers with running X-Cart Payments.&lt;br /&gt;
Accounts for access to the operating system are managed by the Linux administrator.&lt;br /&gt;
For Linux operating system accounts, you must configure the following attributes of the password policy:&lt;br /&gt;
:* use personal accounts, do not use any group, shared, or generic accounts and passwords;&lt;br /&gt;
:* changes to user passwords at least once every 90 days;&lt;br /&gt;
:* require a minimum length of at least seven characters;&lt;br /&gt;
:* contain both numeric and alphabetic characters;&lt;br /&gt;
:* do not use last four passwords used previously;&lt;br /&gt;
:* block account after six invalid logon attempts (minimum 30 minutes or until an administrator enables the user ID).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Two-factor authentication must be used for remote access to the operating system. The authentication methods, also known as factors, are:&lt;br /&gt;
:* something you know, such as a password or a passphrase;&lt;br /&gt;
:* something you have, such as a token device or a smart card;&lt;br /&gt;
:* something you are, such as a biometric.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging==&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. Users do not have the ability to disable or change the logging parameters of X-Cart Payments. X-Cart Payments log journal does not contain cardholder data. It is implemented at the source code level. The setting of an event log journal does not require any additional action from users.&lt;br /&gt;
The log files are created in the var/log/ directory. In X-Cart Payments 3.0, logs can be viewed via the X-Cart Payments admin back end. &amp;lt;br /&amp;gt;Make sure you restrict access to the log files by business need-to-know. &lt;br /&gt;
The following types of activity are logged: &lt;br /&gt;
:* All actions taken by any individual with root or administrative privileges.&lt;br /&gt;
:* Successes and failures of all individual accesses to application sections and functions.&lt;br /&gt;
:* Initialization of the audit logs.&lt;br /&gt;
:* User sign in and sign out.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to the files access.log and error.log. &lt;br /&gt;
Each log event includes: &lt;br /&gt;
:* Type of event;&lt;br /&gt;
:* Date and time of event;&lt;br /&gt;
:* Username and IP address;&lt;br /&gt;
:* Success or failure indication;&lt;br /&gt;
:* Action which led to the event;&lt;br /&gt;
:* Component which led to the event.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on the server. This software should: &lt;br /&gt;
:* warn on a checksum change of any of X-Cart Payments source code files except for the log file and the database files;&lt;br /&gt;
:* record any file writing operations related to X-Cart Payments files.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Communication==&lt;br /&gt;
LAN channel or other available connection method can be used as a communication channel.&lt;br /&gt;
X-Cart Payments payment application supports the following data formats:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 20%;&amp;quot;| '''Protocol'''&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 70%;&amp;quot;| HTTP protocol (RFC 2616: HTTP/1.1) is used for data transfer between client and server &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data transmission method'''&lt;br /&gt;
| Only encrypted cardholder data (RSA 2048 and AES 256) is transferred. RAW POST method is used for data transmission – (data stream is transmitted in the body of the request that is sent from client to server)&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data format'''&lt;br /&gt;
| Data is transmitted in XML format (Extensible Markup Language (XML) 1.0)&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Port'''&lt;br /&gt;
| X-Cart Payments payment application uses ports 80, 123, 443 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Network traffic encryption'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for: &lt;br /&gt;
:* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
:* providing remote web-based access to the application.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use some tools to remotely access the application, you should encrypt all the communication using such technologies as TLS or IPSEC. &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As per PCI DSS requirement, cardholder data must never be sent unencrypted by email, and X-Cart Payments does meet this requirement never sending cardholder data by email or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Enable TLS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
TLS protects data that is transmitted between a browser and your web server. It is critical that you have TLS enabled on your web server, and one of the first steps you should take after the installation is to enable TLS. &lt;br /&gt;
:* Your web server must be configured to use TLS v1.1 or v1.2 protocols with strong encryption (128-bit or longer key is required).&lt;br /&gt;
:* You will need to have a certificate issued for your web domain. Read guidelines on installing Comodo's Instant TLS certificates.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If a web server does not have TLS enabled, X-Cart Payments will not function or will be notifying users depending on the allow_insecure_protocol parameter set in the config.ini.php file (disabled by default). &lt;br /&gt;
X-Cart Payments does not support remote administrative access. Strong encryption must be used for remote access to the server.&lt;br /&gt;
The connection of servers with X-Cart Payments payment application to the Internet must be protected by a firewall. In X-Cart Payments configurations involving more than one server, server connections should take place in network segments separated from the Internet via stateful inspection firewalls.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Wireless communications'''&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use wireless networking to access X-Cart Payments, it is your responsibility to ensure your wireless security configuration follows the PCI DSS requirements. &lt;br /&gt;
:* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
:* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
:* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
:* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
::* Use with a minimum 104-bit encryption key and 24 bit-initialization value.&lt;br /&gt;
::* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS.&lt;br /&gt;
::* Rotate shared WEP keys quarterly (or automatically if the technology permits).&lt;br /&gt;
::* Rotate shared WEP keys whenever there are changes in personnel with access to keys.&lt;br /&gt;
::* Restrict access based on media access code (MAC) address.&lt;br /&gt;
::* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Remote access'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time codes. Detailed information can be found on the [[X-Payments:Two-factor_authentication | X-Payments:Two-factor authentication]] page. &lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following: &lt;br /&gt;
:* Change the default settings in the remote access software (for example, change the default passwords and use unique passwords for each customer).&lt;br /&gt;
:* Allow connections only from specific (known) IP/MAC addresses.&lt;br /&gt;
:* Use strong authentication or complex passwords for logins.&lt;br /&gt;
:* Enable encrypted data transmission.&lt;br /&gt;
:* Enable account lockout after a certain number of failed login attempts.&lt;br /&gt;
:* Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed.&lt;br /&gt;
:* Enable any logging or auditing functions.&lt;br /&gt;
:* Restrict access to customer passwords to authorized reseller/integrator personnel.&lt;br /&gt;
:* Establish customer passwords according to PCI DSS requirements.&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hardware and software==&lt;br /&gt;
The following requirements must be met for X-Cart Payments payment application self-service terminals:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Operating System'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux Ubuntu 16 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''DBMS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
My SQL 5.6 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''Software'''&amp;lt;br /&amp;gt;&lt;br /&gt;
PHP 5.5 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
Apache 2.4 or later&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Product versioning methodology==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Version number changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%;&amp;quot;| '''Software changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Description'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;|  '''PA-DSS changes'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Version number does not change&lt;br /&gt;
| Change of the software name&amp;lt;br /&amp;gt;Change of the vendor name&lt;br /&gt;
| Changes not related to the software development process&lt;br /&gt;
| Administrative&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the minor version number to reflect a change not affecting the certification. For example, change of the version number from 1.0.5 to 1.0.6 (for the certification of 1.0.x)&lt;br /&gt;
| - Changes to the user interface &amp;lt;br /&amp;gt;- Changes to the database schema &amp;lt;br /&amp;gt;- Changes to supported payment gateway integrations / Addition of new payment gateway integrations&lt;br /&gt;
| Сhanges that have no impact on the PA-DSS requirements compliance or Payment Application security&lt;br /&gt;
| No Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the second version number. For example, change of the version number from 1.1.* to 1.2.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- Fewer than 4 sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- Fewer than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- Less than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Changes implemented for compatibility with the updated versions of previously tested OS, DBMS and third party software products.&amp;lt;br /&amp;gt;- Addition/removal of supported payment processors.&amp;lt;br /&amp;gt;- Recompilation of the source code using a new compiler or different compiler settings.&amp;lt;br /&amp;gt;- Changes of the software versioning policy.&amp;lt;br /&amp;gt;- Changes of the software not related to security.&lt;br /&gt;
| - Changes in the software affecting payment card data mechanisms.&amp;lt;br /&amp;gt;- Changes addressing the identified vulnerabilities of the application.&amp;lt;br /&amp;gt;- Changes related to the completion of the annual cycle of development (if there are other changes).&lt;br /&gt;
| Low Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the first version number. For example, change of the version number from 1.0.* to 2.0.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- 4 or more sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Addition of new supported platforms/OS versions. &lt;br /&gt;
| Major changes in the software architecture, global alterations of code&lt;br /&gt;
| High Impact&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The release of each new version is accompanied with a notification to all the application users (agents), which indicates the new application version number and a list of main changes in the new version.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=678</id>
		<title>X-Payments:PA-DSS implementation guide for X-Cart Payments 3</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=678"/>
		<updated>2016-05-26T09:25:12Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The purpose of this PA-DSS Implementation Guide is to inform employees of organizations using the X-Cart Payments payment application by Qualiteam Software Limited about the methods and means of protection of account data in the X-Cart Payments software.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The methods include the need for compliance with the information security standards in the payment card industry developed by the international payment systems Visa and MasterCard – Payment Card Industry Data Security Standard (PCI DSS) and Payment Application Data Security Standard (PA-DSS). For additional information about PCI DSS, please visit the [https://www.pcisecuritystandards.org/ Official PCI Security Standards Council Site].&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The document provides instructions on how to implement the application in a PCI DSS compliant manner.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Full product name – X-Cart Payments.&amp;lt;br /&amp;gt;&lt;br /&gt;
Product version – 3.0.х.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Any servers used to run the X-Cart Payments payment application must be configured according to this PA-DSS Implementation Guide.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This PA-DSS Implementation Guide should be updated:&lt;br /&gt;
:* at least annually;&lt;br /&gt;
:* after changes in the payment application (if required);&lt;br /&gt;
:* after changes in the PCI DSS and PA-DSS standards.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The updated Version of the PA-DSS Implementation Guide has to be sent to all the merchants using X-Cart Payments.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The history of changes to the X-Cart Payments PA-DSS Implementation Guide is provided in the table below.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Table.1. X-Cart Payments PA-DSS Implementation Guide history of changes''' &amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Author'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Date'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Number'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 60%;&amp;quot;|  '''Change description'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| 05/17/2016&lt;br /&gt;
| 01&lt;br /&gt;
| The original version of the document, designed to meet the requirements of PCI DSS version 3.1 and PA DSS version 3.1&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data protection==&lt;br /&gt;
The PCI DSS and PA-DSS standards prohibit storage of sensitive authentication data (after authorization) or cardholder data in cleartext.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cardholder data includes:&lt;br /&gt;
:* Primary Account Number (PAN) &lt;br /&gt;
:* Cardholder Name &lt;br /&gt;
:* Expiration Date &lt;br /&gt;
:* Service Code &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Sensitive authentication data (SAD) includes: &lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments has the ability to store parts of cardholder data temporarily to perform 3D Secure verification and certain types of transactions for some of the integrated payment processors. During storage, cardholder data is encrypted using RSA 2056 algorithm and AES 256 for key encryption. When its storage period is over, the data is removed automatically via &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments may not be configured to store permanently in the database the following types of data: &lt;br /&gt;
:* Full PAN&lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
The payment application masks PAN on display (except for the moment when the user enters the card number).&lt;br /&gt;
X-Cart Payments can display masked PAN on the &amp;quot;Payment details&amp;quot; pages and in the &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. The same data (partially masked with asterisks) may be passed via the API to the integrated software products. X-Cart Payments does not have the ability to display full PAN anywhere, and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data Collected while Testing==&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments: &lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever choose to collect credit card information to troubleshoot a problem that a customer of yours is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access.&lt;br /&gt;
#* Only collect a limited amount of data (no more than is needed to solve the problem).&lt;br /&gt;
#* Sensitive authentication data must be encrypted during storage. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Sensitive authentication data must be securely deleted immediately after use.&lt;br /&gt;
To prevent uncontrolled storage of cardholder data (for example, in case of operating system failure), it is recommended to disable the swap file or move it to a specially prepared encrypted partition.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Authentication and access==&lt;br /&gt;
The X-Cart Payments payment application has an only user type. This type cannot get access to payment card numbers and does not have any administrative privileges that may affect PA-DSS compliance.&lt;br /&gt;
There are no built-in/default user accounts in X-Cart Payments. You must carefully control access to X-Cart Payments. Follow these rules: &lt;br /&gt;
:* Restrict the number of employees who have access to X-Cart Payments to only those who have a business need.&lt;br /&gt;
:* Always provide unique usernames for each person who needs access.&lt;br /&gt;
:* Do not use system-default usernames and/or passwords.&lt;br /&gt;
:* Ensure that web server is run under a non-privileged user account and the application has access to the database from a limited privilege user account.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To set password lifetime:&lt;br /&gt;
# Log in to X-Cart Payments.&lt;br /&gt;
# Go to Settings -&amp;gt; General Settings.&lt;br /&gt;
# In the &amp;quot;User account password lifetime&amp;quot; field, enter the number of days for which the user account password needs to be valid. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
The following related rules apply:&lt;br /&gt;
:* The minimum password length is 8 characters.&lt;br /&gt;
:* A password must contain both numbers and lower- and uppercase characters.&lt;br /&gt;
:* The last 4 passwords must be unique.&lt;br /&gt;
:* A user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password.&lt;br /&gt;
:* A user is logged off after an inactivity period of 15 minutes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords: &lt;br /&gt;
:* For your Web hosting account administration area (Web hosting account where your online store is hosted);&lt;br /&gt;
:* For FTP access to the Web server;&lt;br /&gt;
:* For Remote Desktop Connection to the Web server (if available);&lt;br /&gt;
:* To connect to the MySQL server that contains your store data.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux authentication mechanism is used for login in the servers with running X-Cart Payments.&lt;br /&gt;
Accounts for access to the operating system are managed by the Linux administrator.&lt;br /&gt;
For Linux operating system accounts, you must configure the following attributes of the password policy:&lt;br /&gt;
:* use personal accounts, do not use any group, shared, or generic accounts and passwords;&lt;br /&gt;
:* changes to user passwords at least once every 90 days;&lt;br /&gt;
:* require a minimum length of at least seven characters;&lt;br /&gt;
:* contain both numeric and alphabetic characters;&lt;br /&gt;
:* do not use last four passwords used previously;&lt;br /&gt;
:* block account after six invalid logon attempts (minimum 30 minutes or until an administrator enables the user ID).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Two-factor authentication must be used for remote access to the operating system. The authentication methods, also known as factors, are:&lt;br /&gt;
:* something you know, such as a password or a passphrase;&lt;br /&gt;
:* something you have, such as a token device or a smart card;&lt;br /&gt;
:* something you are, such as a biometric.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging==&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. Users do not have the ability to disable or change the logging parameters of X-Cart Payments. X-Cart Payments log journal does not contain cardholder data. It is implemented at the source code level. The setting of an event log journal does not require any additional action from users.&lt;br /&gt;
The log files are created in the var/log/ directory. In X-Cart Payments 3.0, logs can be viewed via the X-Cart Payments admin back end. &amp;lt;br /&amp;gt;Make sure you restrict access to the log files by business need-to-know. &lt;br /&gt;
The following types of activity are logged: &lt;br /&gt;
:* All actions taken by any individual with root or administrative privileges.&lt;br /&gt;
:* Successes and failures of all individual accesses to application sections and functions.&lt;br /&gt;
:* Initialization of the audit logs.&lt;br /&gt;
:* User sign in and sign out.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to the files access.log and error.log. &lt;br /&gt;
Each log event includes: &lt;br /&gt;
:* Type of event;&lt;br /&gt;
:* Date and time of event;&lt;br /&gt;
:* Username and IP address;&lt;br /&gt;
:* Success or failure indication;&lt;br /&gt;
:* Action which led to the event;&lt;br /&gt;
:* Component which led to the event.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on the server. This software should: &lt;br /&gt;
:* warn on a checksum change of any of X-Cart Payments source code files except for the log file and the database files;&lt;br /&gt;
:* record any file writing operations related to X-Cart Payments files.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Communication==&lt;br /&gt;
LAN channel or other available connection method can be used as a communication channel.&lt;br /&gt;
X-Cart Payments payment application supports the following data formats:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 20%;&amp;quot;| '''Protocol'''&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 70%;&amp;quot;| HTTP protocol (RFC 2616: HTTP/1.1) is used for data transfer between client and server &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data transmission method'''&lt;br /&gt;
| Only encrypted cardholder data (RSA 2048 and AES 256) is transferred. RAW POST method is used for data transmission – (data stream is transmitted in the body of the request that is sent from client to server)&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data format'''&lt;br /&gt;
| Data is transmitted in XML format (Extensible Markup Language (XML) 1.0)&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Port'''&lt;br /&gt;
| X-Cart Payments payment application uses ports 80, 123, 443 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Network traffic encryption'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for: &lt;br /&gt;
:* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
:* providing remote web-based access to the application.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use some tools to remotely access the application, you should encrypt all the communication using such technologies as TLS or IPSEC. &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As per PCI DSS requirement, cardholder data must never be sent unencrypted by email, and X-Cart Payments does meet this requirement never sending cardholder data by email or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Enable TLS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
TLS protects data that is transmitted between a browser and your web server. It is critical that you have TLS enabled on your web server, and one of the first steps you should take after the installation is to enable TLS. &lt;br /&gt;
:* Your web server must be configured to use TLS v1.1 or v1.2 protocols with strong encryption (128-bit or longer key is required).&lt;br /&gt;
:* You will need to have a certificate issued for your web domain. Read guidelines on installing Comodo's Instant TLS certificates.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If a web server does not have TLS enabled, X-Cart Payments will not function or will be notifying users depending on the allow_insecure_protocol parameter set in the config.ini.php file (disabled by default). &lt;br /&gt;
X-Cart Payments does not support remote administrative access. Strong encryption must be used for remote access to the server.&lt;br /&gt;
The connection of servers with X-Cart Payments payment application to the Internet must be protected by a firewall. In X-Cart Payments configurations involving more than one server, server connections should take place in network segments separated from the Internet via stateful inspection firewalls.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Wireless communications'''&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use wireless networking to access X-Cart Payments, it is your responsibility to ensure your wireless security configuration follows the PCI DSS requirements. &lt;br /&gt;
:* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
:* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
:* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
:* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
::* Use with a minimum 104-bit encryption key and 24 bit-initialization value.&lt;br /&gt;
::* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS.&lt;br /&gt;
::* Rotate shared WEP keys quarterly (or automatically if the technology permits).&lt;br /&gt;
::* Rotate shared WEP keys whenever there are changes in personnel with access to keys.&lt;br /&gt;
::* Restrict access based on media access code (MAC) address.&lt;br /&gt;
::* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Remote access'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time codes. Detailed information can be found on the [[X-Payments:Two-factor_authentication | X-Payments:Two-factor authentication]] page. &lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following: &lt;br /&gt;
:* Change the default settings in the remote access software (for example, change the default passwords and use unique passwords for each customer).&lt;br /&gt;
:* Allow connections only from specific (known) IP/MAC addresses.&lt;br /&gt;
:* Use strong authentication or complex passwords for logins.&lt;br /&gt;
:* Enable encrypted data transmission.&lt;br /&gt;
:* Enable account lockout after a certain number of failed login attempts.&lt;br /&gt;
:* Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed.&lt;br /&gt;
:* Enable any logging or auditing functions.&lt;br /&gt;
:* Restrict access to customer passwords to authorized reseller/integrator personnel.&lt;br /&gt;
:* Establish customer passwords according to PCI DSS requirements.&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hardware and software==&lt;br /&gt;
The following requirements must be met for X-Cart Payments payment application self-service terminals:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Operating System'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux Ubuntu 16 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''DBMS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
My SQL 5.6 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''Software'''&amp;lt;br /&amp;gt;&lt;br /&gt;
PHP 5.5 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
Apache 2.4 or later&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Product versioning methodology==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Version number changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%;&amp;quot;| '''Software changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Description'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;|  '''PA-DSS changes'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Version number does not change&lt;br /&gt;
| Change of the software name&amp;lt;br /&amp;gt;Change of the vendor name&lt;br /&gt;
| Changes not related to the software development process&lt;br /&gt;
| Administrative&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the minor version number to reflect a change not affecting the certification. For example, change of the version number from 1.0.5 to 1.0.6 (for the certification of 1.0.x)&lt;br /&gt;
| - Changes to the user interface &amp;lt;br /&amp;gt;- Changes to the database schema &amp;lt;br /&amp;gt;- Changes to supported payment gateway integrations / Addition of new payment gateway integrations&lt;br /&gt;
| Сhanges that have no impact on the PA-DSS requirements compliance or Payment Application security&lt;br /&gt;
| No Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the second version number. For example, change of the version number from 1.1.* to 1.2.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- Fewer than 4 sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- Fewer than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- Less than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Changes implemented for compatibility with the updated versions of previously tested OS, DBMS and third party software products.&amp;lt;br /&amp;gt;- Addition/removal of supported payment processors.&amp;lt;br /&amp;gt;- Recompilation of the source code using a new compiler or different compiler settings.&amp;lt;br /&amp;gt;- Changes of the software versioning policy.&amp;lt;br /&amp;gt;- Changes of the software not related to security.&lt;br /&gt;
| - Changes in the software affecting payment card data mechanisms.&amp;lt;br /&amp;gt;- Changes addressing the identified vulnerabilities of the application.&amp;lt;br /&amp;gt;- Changes related to the completion of the annual cycle of development (if there are other changes).&lt;br /&gt;
| Low Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the first version number. For example, change of the version number from 1.0.* to 2.0.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- 4 or more sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Addition of new supported platforms/OS versions. &lt;br /&gt;
| Major changes in the software architecture, global alterations of code&lt;br /&gt;
| High Impact&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The release of each new version is accompanied with a notification to all the application users (agents), which indicates the new application version number and a list of main changes in the new version.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=677</id>
		<title>X-Payments:PA-DSS implementation guide for X-Cart Payments 3</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=677"/>
		<updated>2016-05-26T09:23:38Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The purpose of this PA-DSS Implementation Guide is to inform employees of organizations using the X-Cart Payments payment application by Qualiteam Software Limited about the methods and means of protection of account data in the X-Cart Payments software.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The methods include the need for compliance with the information security standards in the payment card industry developed by the international payment systems Visa and MasterCard – Payment Card Industry Data Security Standard (PCI DSS) and Payment Application Data Security Standard (PA-DSS). For additional information about PCI DSS, please visit the [https://www.pcisecuritystandards.org/ Official PCI Security Standards Council Site].&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The document provides instructions on how to implement the application in a PCI DSS compliant manner.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Full product name – X-Cart Payments.&amp;lt;br /&amp;gt;&lt;br /&gt;
Product version – 3.0.х.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Any servers used to run the X-Cart Payments payment application must be configured according to this PA-DSS Implementation Guide.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This PA-DSS Implementation Guide should be updated:&lt;br /&gt;
:* at least annually;&lt;br /&gt;
:* after changes in the payment application (if required);&lt;br /&gt;
:* after changes in the PCI DSS and PA-DSS standards.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The updated Version of the PA-DSS Implementation Guide has to be sent to all the merchants using X-Cart Payments.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The history of changes to the X-Cart Payments PA-DSS Implementation Guide is provided in the table below.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Table.1. X-Cart Payments PA-DSS Implementation Guide history of changes''' &amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Author'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Date'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Number'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 60%;&amp;quot;|  '''Change description'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| 05/17/2016&lt;br /&gt;
| 01&lt;br /&gt;
| The original version of the document, designed to meet the requirements of PCI DSS version 3.1 and PA DSS version 3.1&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data protection==&lt;br /&gt;
The PCI DSS and PA-DSS standards prohibit storage of sensitive authentication data (after authorization) or cardholder data in cleartext.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cardholder data includes:&lt;br /&gt;
:* Primary Account Number (PAN) &lt;br /&gt;
:* Cardholder Name &lt;br /&gt;
:* Expiration Date &lt;br /&gt;
:* Service Code &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Sensitive authentication data (SAD) includes: &lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments has the ability to store parts of cardholder data temporarily to perform 3D Secure verification and certain types of transactions for some of the integrated payment processors. During storage, cardholder data is encrypted using RSA 2056 algorithm and AES 256 for key encryption. When its storage period is over, the data is removed automatically via &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments may not be configured to store permanently in the database the following types of data: &lt;br /&gt;
:* Full PAN&lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
The payment application masks PAN on display (except for the moment when the user enters the card number).&lt;br /&gt;
X-Cart Payments can display masked PAN on the &amp;quot;Payment details&amp;quot; pages and in the &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. The same data (partially masked with asterisks) may be passed via the API to the integrated software products. X-Cart Payments does not have the ability to display full PAN anywhere, and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data Collected while Testing==&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments: &lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever choose to collect credit card information to troubleshoot a problem that a customer of yours is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access.&lt;br /&gt;
#* Only collect a limited amount of data (no more than is needed to solve the problem).&lt;br /&gt;
#* Sensitive authentication data must be encrypted during storage. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Sensitive authentication data must be securely deleted immediately after use.&lt;br /&gt;
To prevent uncontrolled storage of cardholder data (for example, in case of operating system failure), it is recommended to disable the swap file or move it to a specially prepared encrypted partition.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Authentication and access==&lt;br /&gt;
The X-Cart Payments payment application has an only user type. This type cannot get access to payment card numbers and does not have any administrative privileges that may affect PA-DSS compliance.&lt;br /&gt;
There are no built-in/default user accounts in X-Cart Payments. You must carefully control access to X-Cart Payments. Follow these rules: &lt;br /&gt;
:* Restrict the number of employees who have access to X-Cart Payments to only those who have a business need.&lt;br /&gt;
:* Always provide unique usernames for each person who needs access.&lt;br /&gt;
:* Do not use system-default usernames and/or passwords.&lt;br /&gt;
:* Ensure that web server is run under a non-privileged user account and the application has access to the database from a limited privilege user account.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To set password lifetime:&lt;br /&gt;
# Log in to X-Cart Payments.&lt;br /&gt;
# Go to Settings -&amp;gt; General Settings.&lt;br /&gt;
# In the &amp;quot;User account password lifetime&amp;quot; field, enter the number of days for which the user account password needs to be valid. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
The following related rules apply:&lt;br /&gt;
:* The minimum password length is 8 characters.&lt;br /&gt;
:* A password must contain both numbers and lower- and uppercase characters.&lt;br /&gt;
:* The last 4 passwords must be unique.&lt;br /&gt;
:* A user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password.&lt;br /&gt;
:* A user is logged off after an inactivity period of 15 minutes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords: &lt;br /&gt;
:* For your Web hosting account administration area (Web hosting account where your online store is hosted);&lt;br /&gt;
:* For FTP access to the Web server;&lt;br /&gt;
:* For Remote Desktop Connection to the Web server (if available);&lt;br /&gt;
:* To connect to the MySQL server that contains your store data.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux authentication mechanism is used for login in the servers with running X-Payments.&lt;br /&gt;
Accounts for access to the operating system are managed by the Linux administrator.&lt;br /&gt;
For Linux operating system accounts, you must configure the following attributes of the password policy:&lt;br /&gt;
:* use personal accounts, do not use any group, shared, or generic accounts and passwords;&lt;br /&gt;
:* changes to user passwords at least once every 90 days;&lt;br /&gt;
:* require a minimum length of at least seven characters;&lt;br /&gt;
:* contain both numeric and alphabetic characters;&lt;br /&gt;
:* do not use last four passwords used previously;&lt;br /&gt;
:* block account after six invalid logon attempts (minimum 30 minutes or until an administrator enables the user ID).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Two-factor authentication must be used for remote access to the operating system. The authentication methods, also known as factors, are:&lt;br /&gt;
:* something you know, such as a password or a passphrase;&lt;br /&gt;
:* something you have, such as a token device or a smart card;&lt;br /&gt;
:* something you are, such as a biometric.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging==&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Payments. Users do not have the ability to disable or change the logging parameters of X-Cart Payments. X-Cart Payments log journal does not contain cardholder data. It is implemented at the source code level. The setting of an event log journal does not require any additional action from users.&lt;br /&gt;
The log files are created in the var/log/ directory. In X-Cart Payments 3.0, logs can be viewed via the X-Cart Payments admin back end. &amp;lt;br /&amp;gt;Make sure you restrict access to the log files by business need-to-know. &lt;br /&gt;
The following types of activity are logged: &lt;br /&gt;
:* All actions taken by any individual with root or administrative privileges.&lt;br /&gt;
:* Successes and failures of all individual accesses to application sections and functions.&lt;br /&gt;
:* Initialization of the audit logs.&lt;br /&gt;
:* User sign in and sign out.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to the files access.log and error.log. &lt;br /&gt;
Each log event includes: &lt;br /&gt;
:* Type of event;&lt;br /&gt;
:* Date and time of event;&lt;br /&gt;
:* Username and IP address;&lt;br /&gt;
:* Success or failure indication;&lt;br /&gt;
:* Action which led to the event;&lt;br /&gt;
:* Component which led to the event.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on the server. This software should: &lt;br /&gt;
:* warn on a checksum change of any of X-Cart Payments source code files except for the log file and the database files;&lt;br /&gt;
:* record any file writing operations related to X-Cart Payments files.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Communication==&lt;br /&gt;
LAN channel or other available connection method can be used as a communication channel.&lt;br /&gt;
X-Cart Payments payment application supports the following data formats:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 20%;&amp;quot;| '''Protocol'''&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 70%;&amp;quot;| HTTP protocol (RFC 2616: HTTP/1.1) is used for data transfer between client and server &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data transmission method'''&lt;br /&gt;
| Only encrypted cardholder data (RSA 2048 and AES 256) is transferred. RAW POST method is used for data transmission – (data stream is transmitted in the body of the request that is sent from client to server)&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data format'''&lt;br /&gt;
| Data is transmitted in XML format (Extensible Markup Language (XML) 1.0)&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Port'''&lt;br /&gt;
| X-Cart Payments payment application uses ports 80, 123, 443 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Network traffic encryption'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for: &lt;br /&gt;
:* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
:* providing remote web-based access to the application.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use some tools to remotely access the application, you should encrypt all the communication using such technologies as TLS or IPSEC. &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As per PCI DSS requirement, cardholder data must never be sent unencrypted by email, and X-Cart Payments does meet this requirement never sending cardholder data by email or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Enable TLS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
TLS protects data that is transmitted between a browser and your web server. It is critical that you have TLS enabled on your web server, and one of the first steps you should take after the installation is to enable TLS. &lt;br /&gt;
:* Your web server must be configured to use TLS v1.1 or v1.2 protocols with strong encryption (128-bit or longer key is required).&lt;br /&gt;
:* You will need to have a certificate issued for your web domain. Read guidelines on installing Comodo's Instant TLS certificates.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If a web server does not have TLS enabled, X-Cart Payments will not function or will be notifying users depending on the allow_insecure_protocol parameter set in the config.ini.php file (disabled by default). &lt;br /&gt;
X-Cart Payments does not support remote administrative access. Strong encryption must be used for remote access to the server.&lt;br /&gt;
The connection of servers with X-Cart Payments payment application to the Internet must be protected by a firewall. In X-Cart Payments configurations involving more than one server, server connections should take place in network segments separated from the Internet via stateful inspection firewalls.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Wireless communications'''&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use wireless networking to access X-Cart Payments, it is your responsibility to ensure your wireless security configuration follows the PCI DSS requirements. &lt;br /&gt;
:* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
:* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
:* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
:* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
::* Use with a minimum 104-bit encryption key and 24 bit-initialization value.&lt;br /&gt;
::* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS.&lt;br /&gt;
::* Rotate shared WEP keys quarterly (or automatically if the technology permits).&lt;br /&gt;
::* Rotate shared WEP keys whenever there are changes in personnel with access to keys.&lt;br /&gt;
::* Restrict access based on media access code (MAC) address.&lt;br /&gt;
::* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Remote access'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time codes. Detailed information can be found on the [[X-Payments:Two-factor_authentication | X-Payments:Two-factor authentication]] page. &lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following: &lt;br /&gt;
:* Change the default settings in the remote access software (for example, change the default passwords and use unique passwords for each customer).&lt;br /&gt;
:* Allow connections only from specific (known) IP/MAC addresses.&lt;br /&gt;
:* Use strong authentication or complex passwords for logins.&lt;br /&gt;
:* Enable encrypted data transmission.&lt;br /&gt;
:* Enable account lockout after a certain number of failed login attempts.&lt;br /&gt;
:* Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed.&lt;br /&gt;
:* Enable any logging or auditing functions.&lt;br /&gt;
:* Restrict access to customer passwords to authorized reseller/integrator personnel.&lt;br /&gt;
:* Establish customer passwords according to PCI DSS requirements.&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hardware and software==&lt;br /&gt;
The following requirements must be met for X-Cart Payments payment application self-service terminals:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Operating System'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux Ubuntu 16 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''DBMS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
My SQL 5.6 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''Software'''&amp;lt;br /&amp;gt;&lt;br /&gt;
PHP 5.5 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
Apache 2.4 or later&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Product versioning methodology==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Version number changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%;&amp;quot;| '''Software changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Description'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;|  '''PA-DSS changes'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Version number does not change&lt;br /&gt;
| Change of the software name&amp;lt;br /&amp;gt;Change of the vendor name&lt;br /&gt;
| Changes not related to the software development process&lt;br /&gt;
| Administrative&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the minor version number to reflect a change not affecting the certification. For example, change of the version number from 1.0.5 to 1.0.6 (for the certification of 1.0.x)&lt;br /&gt;
| - Changes to the user interface &amp;lt;br /&amp;gt;- Changes to the database schema &amp;lt;br /&amp;gt;- Changes to supported payment gateway integrations / Addition of new payment gateway integrations&lt;br /&gt;
| Сhanges that have no impact on the PA-DSS requirements compliance or Payment Application security&lt;br /&gt;
| No Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the second version number. For example, change of the version number from 1.1.* to 1.2.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- Fewer than 4 sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- Fewer than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- Less than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Changes implemented for compatibility with the updated versions of previously tested OS, DBMS and third party software products.&amp;lt;br /&amp;gt;- Addition/removal of supported payment processors.&amp;lt;br /&amp;gt;- Recompilation of the source code using a new compiler or different compiler settings.&amp;lt;br /&amp;gt;- Changes of the software versioning policy.&amp;lt;br /&amp;gt;- Changes of the software not related to security.&lt;br /&gt;
| - Changes in the software affecting payment card data mechanisms.&amp;lt;br /&amp;gt;- Changes addressing the identified vulnerabilities of the application.&amp;lt;br /&amp;gt;- Changes related to the completion of the annual cycle of development (if there are other changes).&lt;br /&gt;
| Low Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the first version number. For example, change of the version number from 1.0.* to 2.0.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- 4 or more sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Addition of new supported platforms/OS versions. &lt;br /&gt;
| Major changes in the software architecture, global alterations of code&lt;br /&gt;
| High Impact&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The release of each new version is accompanied with a notification to all the application users (agents), which indicates the new application version number and a list of main changes in the new version.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=676</id>
		<title>X-Payments:PA-DSS implementation guide for X-Cart Payments 3</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PA-DSS_implementation_guide_for_X-Cart_Payments_3&amp;diff=676"/>
		<updated>2016-05-26T09:17:58Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Introduction==&lt;br /&gt;
The purpose of this PA-DSS Implementation Guide is to inform employees of organizations using the X-Cart Payments payment application by Qualiteam Software Limited about the methods and means of protection of account data in the X-Cart Payments software.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The methods include the need for compliance with the information security standards in the payment card industry developed by the international payment systems Visa and MasterCard – Payment Card Industry Data Security Standard (PCI DSS) and Payment Application Data Security Standard (PA-DSS). For additional information about PCI DSS, please visit the [https://www.pcisecuritystandards.org/ Official PCI Security Standards Council Site].&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The document provides instructions on how to implement the application in a PCI DSS compliant manner.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Full product name – X-Cart Payments.&amp;lt;br /&amp;gt;&lt;br /&gt;
Product version – 3.0.х.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Any servers used to run the X-Cart Payments payment application must be configured according to this PA-DSS Implementation Guide.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
This PA-DSS Implementation Guide should be updated:&lt;br /&gt;
:* at least annually;&lt;br /&gt;
:* after changes in the payment application (if required);&lt;br /&gt;
:* after changes in the PCI DSS and PA-DSS standards.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The updated Version of the PA-DSS Implementation Guide has to be sent to all the merchants using X-Cart Payments.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
The history of changes to the X-Cart Payments PA-DSS Implementation Guide is provided in the table below.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Table.1. X-Cart Payments PA-DSS Implementation Guide history of changes''' &amp;lt;br /&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Author'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Date'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Number'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 60%;&amp;quot;|  '''Change description'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
| 05/17/2016&lt;br /&gt;
| 01&lt;br /&gt;
| The original version of the document, designed to meet the requirements of PCI DSS version 3.1 and PA DSS version 3.1&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data protection==&lt;br /&gt;
The PCI DSS and PA-DSS standards prohibit storage of sensitive authentication data (after authorization) or cardholder data in cleartext.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
Cardholder data includes:&lt;br /&gt;
:* Primary Account Number (PAN) &lt;br /&gt;
:* Cardholder Name &lt;br /&gt;
:* Expiration Date &lt;br /&gt;
:* Service Code &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Sensitive authentication data (SAD) includes: &lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Payments has the ability to store parts of cardholder data temporarily to perform 3D Secure verification and certain types of transactions for some of the integrated payment processors. During storage, cardholder data is encrypted using RSA 2056 algorithm and AES 256 for key encryption. When its storage period is over, the data is removed automatically via &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Payments periodic tasks. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Payments may not be configured to store permanently in the database the following types of data: &lt;br /&gt;
:* Full PAN&lt;br /&gt;
:* Full track data (magnetic-stripe data or equivalent on a chip) &lt;br /&gt;
:* CAV2/CVC2/CVV2/CID &lt;br /&gt;
:* PINs/PIN blocks &lt;br /&gt;
Merchants and/or developers implementing X-Payments should not attempt to customize this as a feature.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt; &lt;br /&gt;
The payment application masks PAN on display (except for the moment when the user enters the card number).&lt;br /&gt;
X-Payments can display masked PAN on the &amp;quot;Payment details&amp;quot; pages and in the &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. The same data (partially masked with asterisks) may be passed via the API to the integrated software products. X-Payments does not have the ability to display full PAN anywhere, and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Data Collected while Testing==&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments: &lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever choose to collect credit card information to troubleshoot a problem that a customer of yours is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access.&lt;br /&gt;
#* Only collect a limited amount of data (no more than is needed to solve the problem).&lt;br /&gt;
#* Sensitive authentication data must be encrypted during storage. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Sensitive authentication data must be securely deleted immediately after use.&lt;br /&gt;
To prevent uncontrolled storage of cardholder data (for example, in case of operating system failure), it is recommended to disable the swap file or move it to a specially prepared encrypted partition.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Authentication and access==&lt;br /&gt;
The X-Payments payment application has an only user type. This type cannot get access to payment card numbers and does not have any administrative privileges that may affect PA-DSS compliance.&lt;br /&gt;
There are no built-in/default user accounts in X-Payments. You must carefully control access to X-Payments. Follow these rules: &lt;br /&gt;
:* Restrict the number of employees who have access to X-Payments to only those who have a business need.&lt;br /&gt;
:* Always provide unique usernames for each person who needs access.&lt;br /&gt;
:* Do not use system-default usernames and/or passwords.&lt;br /&gt;
:* Ensure that web server is run under a non-privileged user account and the application has access to the database from a limited privilege user account.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
To set password lifetime:&lt;br /&gt;
# Log in to X-Cart Payments.&lt;br /&gt;
# Go to Settings -&amp;gt; General Settings.&lt;br /&gt;
# In the &amp;quot;User account password lifetime&amp;quot; field, enter the number of days for which the user account password needs to be valid. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
The following related rules apply:&lt;br /&gt;
:* The minimum password length is 8 characters.&lt;br /&gt;
:* A password must contain both numbers and lower- and uppercase characters.&lt;br /&gt;
:* The last 4 passwords must be unique.&lt;br /&gt;
:* A user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password.&lt;br /&gt;
:* A user is logged off after an inactivity period of 15 minutes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords: &lt;br /&gt;
:* For your Web hosting account administration area (Web hosting account where your online store is hosted);&lt;br /&gt;
:* For FTP access to the Web server;&lt;br /&gt;
:* For Remote Desktop Connection to the Web server (if available);&lt;br /&gt;
:* To connect to the MySQL server that contains your store data.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux authentication mechanism is used for login in the servers with running X-Payments.&lt;br /&gt;
Accounts for access to the operating system are managed by the Linux administrator.&lt;br /&gt;
For Linux operating system accounts, you must configure the following attributes of the password policy:&lt;br /&gt;
:* use personal accounts, do not use any group, shared, or generic accounts and passwords;&lt;br /&gt;
:* changes to user passwords at least once every 90 days;&lt;br /&gt;
:* require a minimum length of at least seven characters;&lt;br /&gt;
:* contain both numeric and alphabetic characters;&lt;br /&gt;
:* do not use last four passwords used previously;&lt;br /&gt;
:* block account after six invalid logon attempts (minimum 30 minutes or until an administrator enables the user ID).&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Two-factor authentication must be used for remote access to the operating system. The authentication methods, also known as factors, are:&lt;br /&gt;
:* something you know, such as a password or a passphrase;&lt;br /&gt;
:* something you have, such as a token device or a smart card;&lt;br /&gt;
:* something you are, such as a biometric.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Logging==&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Payments. Users do not have the ability to disable or change the logging parameters of X-Payments. X-Payments log journal does not contain cardholder data. It is implemented at the source code level. The setting of an event log journal does not require any additional action from users.&lt;br /&gt;
The log files are created in the var/log/ directory. In X-Payments 3.0, logs can be viewed via the X-Payments admin back end. &amp;lt;br /&amp;gt;Make sure you restrict access to the log files by business need-to-know. &lt;br /&gt;
The following types of activity are logged: &lt;br /&gt;
:* All actions taken by any individual with root or administrative privileges.&lt;br /&gt;
:* Successes and failures of all individual accesses to application sections and functions.&lt;br /&gt;
:* Initialization of the audit logs.&lt;br /&gt;
:* User sign in and sign out.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to the files access.log and error.log. &lt;br /&gt;
Each log event includes: &lt;br /&gt;
:* Type of event;&lt;br /&gt;
:* Date and time of event;&lt;br /&gt;
:* Username and IP address;&lt;br /&gt;
:* Success or failure indication;&lt;br /&gt;
:* Action which led to the event;&lt;br /&gt;
:* Component which led to the event.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on the server. This software should: &lt;br /&gt;
:* warn on a checksum change of any of X-Cart Payments source code files except for the log file and the database files;&lt;br /&gt;
:* record any file writing operations related to X-Cart Payments files.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Communication==&lt;br /&gt;
LAN channel or other available connection method can be used as a communication channel.&lt;br /&gt;
X-Payments payment application supports the following data formats:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 20%;&amp;quot;| '''Protocol'''&lt;br /&gt;
| scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 70%;&amp;quot;| HTTP protocol (RFC 2616: HTTP/1.1) is used for data transfer between client and server &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data transmission method'''&lt;br /&gt;
| Only encrypted cardholder data (RSA 2048 and AES 256) is transferred. RAW POST method is used for data transmission – (data stream is transmitted in the body of the request that is sent from client to server)&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Data format'''&lt;br /&gt;
| Data is transmitted in XML format (Extensible Markup Language (XML) 1.0)&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| '''Port'''&lt;br /&gt;
| X-Payments payment application uses ports 80, 123, 443 &lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Network traffic encryption'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Payments uses encryption, such as TLS or IPSEC, for: &lt;br /&gt;
:* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
:* providing remote web-based access to the application.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use some tools to remotely access the application, you should encrypt all the communication using such technologies as TLS or IPSEC. &lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As per PCI DSS requirement, cardholder data must never be sent unencrypted by email, and X-Payments does meet this requirement never sending cardholder data by email or by IMs. Merchants and/or developers implementing X-Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Enable TLS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
TLS protects data that is transmitted between a browser and your web server. It is critical that you have TLS enabled on your web server, and one of the first steps you should take after the installation is to enable TLS. &lt;br /&gt;
:* Your web server must be configured to use TLS v1.1 or v1.2 protocols with strong encryption (128-bit or longer key is required).&lt;br /&gt;
:* You will need to have a certificate issued for your web domain. Read guidelines on installing Comodo's Instant TLS certificates.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
If a web server does not have TLS enabled, X-Payments will not function or will be notifying users depending on the allow_insecure_protocol parameter set in the config.ini.php file (disabled by default). &lt;br /&gt;
X-Payments does not support remote administrative access. Strong encryption must be used for remote access to the server.&lt;br /&gt;
The connection of servers with X-Payments payment application to the Internet must be protected by a firewall. In X-Payments configurations involving more than one server, server connections should take place in network segments separated from the Internet via stateful inspection firewalls.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Wireless communications'''&amp;lt;br /&amp;gt;&lt;br /&gt;
If you use wireless networking to access X-Payments, it is your responsibility to ensure your wireless security configuration follows the PCI DSS requirements. &lt;br /&gt;
:* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
:* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
:* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
:* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
::* Use with a minimum 104-bit encryption key and 24 bit-initialization value.&lt;br /&gt;
::* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS.&lt;br /&gt;
::* Rotate shared WEP keys quarterly (or automatically if the technology permits).&lt;br /&gt;
::* Rotate shared WEP keys whenever there are changes in personnel with access to keys.&lt;br /&gt;
::* Restrict access based on media access code (MAC) address.&lt;br /&gt;
::* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Remote access'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time codes. Detailed information can be found on the [[X-Payments:Two-factor_authentication | X-Payments:Two-factor authentication]] page. &lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following: &lt;br /&gt;
:* Change the default settings in the remote access software (for example, change the default passwords and use unique passwords for each customer).&lt;br /&gt;
:* Allow connections only from specific (known) IP/MAC addresses.&lt;br /&gt;
:* Use strong authentication or complex passwords for logins.&lt;br /&gt;
:* Enable encrypted data transmission.&lt;br /&gt;
:* Enable account lockout after a certain number of failed login attempts.&lt;br /&gt;
:* Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed.&lt;br /&gt;
:* Enable any logging or auditing functions.&lt;br /&gt;
:* Restrict access to customer passwords to authorized reseller/integrator personnel.&lt;br /&gt;
:* Establish customer passwords according to PCI DSS requirements.&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis. &lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Hardware and software==&lt;br /&gt;
The following requirements must be met for X-Payments payment application self-service terminals:&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Operating System'''&amp;lt;br /&amp;gt;&lt;br /&gt;
Linux Ubuntu 16 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''DBMS'''&amp;lt;br /&amp;gt;&lt;br /&gt;
My SQL 5.6 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
'''Software'''&amp;lt;br /&amp;gt;&lt;br /&gt;
PHP 5.5 or later &amp;lt;br /&amp;gt;&lt;br /&gt;
Apache 2.4 or later&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
==Product versioning methodology==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Version number changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 45%;&amp;quot;| '''Software changes'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Description'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;|  '''PA-DSS changes'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Version number does not change&lt;br /&gt;
| Change of the software name&amp;lt;br /&amp;gt;Change of the vendor name&lt;br /&gt;
| Changes not related to the software development process&lt;br /&gt;
| Administrative&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the minor version number to reflect a change not affecting the certification. For example, change of the version number from 1.0.5 to 1.0.6 (for the certification of 1.0.x)&lt;br /&gt;
| - Changes to the user interface &amp;lt;br /&amp;gt;- Changes to the database schema &amp;lt;br /&amp;gt;- Changes to supported payment gateway integrations / Addition of new payment gateway integrations&lt;br /&gt;
| Сhanges that have no impact on the PA-DSS requirements compliance or Payment Application security&lt;br /&gt;
| No Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the second version number. For example, change of the version number from 1.1.* to 1.2.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- Fewer than 4 sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- Fewer than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- Less than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Changes implemented for compatibility with the updated versions of previously tested OS, DBMS and third party software products.&amp;lt;br /&amp;gt;- Addition/removal of supported payment processors.&amp;lt;br /&amp;gt;- Recompilation of the source code using a new compiler or different compiler settings.&amp;lt;br /&amp;gt;- Changes of the software versioning policy.&amp;lt;br /&amp;gt;- Changes of the software not related to security.&lt;br /&gt;
| - Changes in the software affecting payment card data mechanisms.&amp;lt;br /&amp;gt;- Changes addressing the identified vulnerabilities of the application.&amp;lt;br /&amp;gt;- Changes related to the completion of the annual cycle of development (if there are other changes).&lt;br /&gt;
| Low Impact&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| Increment of the first version number. For example, change of the version number from 1.0.* to 2.0.*&lt;br /&gt;
| Software changes satisfy the following conditions:&amp;lt;br /&amp;gt;- 4 or more sections of the standard (from 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of all the requirements of the standard (sections 1 to 12) involved;&amp;lt;br /&amp;gt;- More than a half of the software functions (or code) modified;&amp;lt;br /&amp;gt;- Addition of new supported platforms/OS versions. &lt;br /&gt;
| Major changes in the software architecture, global alterations of code&lt;br /&gt;
| High Impact&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
The release of each new version is accompanied with a notification to all the application users (agents), which indicates the new application version number and a list of main changes in the new version.&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:API&amp;diff=675</id>
		<title>X-Payments:API</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:API&amp;diff=675"/>
		<updated>2016-05-25T10:29:00Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* API versions supported */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== API versions supported ==&lt;br /&gt;
&lt;br /&gt;
'''API v1.1''': X-Payments 1.0.2-1.0.5 &amp;lt;br /&amp;gt;&lt;br /&gt;
'''API v1.2''': X-Payments 1.0.6, 2.0.0, 2.0.1 &amp;lt;br /&amp;gt;&lt;br /&gt;
'''API v1.3''': X-Payments 2.1.0, 2.1.1 &amp;lt;br /&amp;gt;&lt;br /&gt;
'''API v1.4''': X-Payments 2.1.2 (Nov 2014), 2.1.3 (Feb 2015)&amp;lt;br /&amp;gt;&lt;br /&gt;
'''API v1.5''': X-Payments 2.2 (June 2015)&amp;lt;br /&amp;gt;&lt;br /&gt;
'''API v1.6''': X-Payments 3.x (June 2016)&lt;br /&gt;
&lt;br /&gt;
==Samples==&lt;br /&gt;
&lt;br /&gt;
While we are doing an addition to our API docs I suggest to use function xpc_api_request from &lt;br /&gt;
X-Cart 4 file modules/XPayments_Connector/xpc_func.php as a sample.&lt;br /&gt;
&lt;br /&gt;
Especially function xpc_request_test() to make a test call.&lt;br /&gt;
&lt;br /&gt;
==API requests==&lt;br /&gt;
&lt;br /&gt;
All API requests are made to the '''httрs://&amp;lt;xpayments_url&amp;gt;/api.php''' URL.&lt;br /&gt;
Only HTTPS protocol is used.&lt;br /&gt;
A request is an XML document that is encrypted using RSA method with a key generated by X-Payments.&lt;br /&gt;
&lt;br /&gt;
'''Request/Response encryption'''&lt;br /&gt;
&lt;br /&gt;
* Encryption method used: RSA;&lt;br /&gt;
* Key length: 2048 bit;&lt;br /&gt;
* A private key is created with a 32 character password;&lt;br /&gt;
* The password is generated randomly;&lt;br /&gt;
* The number of password characters varies from 33 to 127.&lt;br /&gt;
&lt;br /&gt;
For each online store X-Payments generates 2 pairs of keys:&lt;br /&gt;
&lt;br /&gt;
# a public and a private key to encrypt requests/responses from the online store to X-Payments;&lt;br /&gt;
# a public and a private key to encrypt requests/responses from X-Payments to the online store.&lt;br /&gt;
&lt;br /&gt;
So when the online store sends a request to X-Payments, this request is encrypted using the public key from the first pair, X-Payments decrypts it using the private key of the first pair. Then X-Payments response is encrypted using the public key of the second pair, and the online store decrypts this response using the private key of the second pair.&lt;br /&gt;
&lt;br /&gt;
To ensure full-featured two-way commumication between X-Payments and an online store, you need to copy tree values from the X-Payments interface:&lt;br /&gt;
:* Public key from the first pair (Online store → X-Payments),&lt;br /&gt;
:* Private key from the second pair (X-Payments → Online store),&lt;br /&gt;
:* Private key password,&lt;br /&gt;
and have them stored on the side of the online store by an appropriate X-Payments connector.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Encryption algorithm:'''&lt;br /&gt;
&lt;br /&gt;
# An empty string is created for pre-prepared data.&lt;br /&gt;
# A 32-character salt-block is formed of random characters from 33 to 255.&lt;br /&gt;
# The length of the salt-block in bites is taken and transformed into a 12-character string by adding zeros before it.&lt;br /&gt;
# The salt-block length string and the salt-block are added to the pre-prepared data.&lt;br /&gt;
# MD5 digital signature is taken from the data. The signature is formed as a HEX (32-character string).&lt;br /&gt;
# The length of the digital signature in bites is taken and transformed into a 12-character string by adding zeros before it.&lt;br /&gt;
# The digital signature length string and the digital signature are added to the pre-prepared data.&lt;br /&gt;
# The length of the data string in bites is taken and transformed into a 12-character string by adding zeros before it.&lt;br /&gt;
# The data string length string and the data string are added to the pre-prepared data.&lt;br /&gt;
# The string of pre-prepared data is divided into 128 bite chunks.&lt;br /&gt;
# Each chunk is encrypted using a public key.&lt;br /&gt;
# Each chunk is encoded with base64.&lt;br /&gt;
# Chunks are glued together using a line feed character (0x0a).&lt;br /&gt;
# API prefix is added to the glued chunks.&lt;br /&gt;
&lt;br /&gt;
===cURL as a means of sending requests===&lt;br /&gt;
&lt;br /&gt;
Using libcurl v.7.10 and above is recommended.&lt;br /&gt;
&lt;br /&gt;
TTL should be specified depending on the performance of the server where X-Payments is installed. The recommended value is 120 seconds.&lt;br /&gt;
&lt;br /&gt;
It is recommended to use SSL v.3 and above.&lt;br /&gt;
&lt;br /&gt;
===Data types===&lt;br /&gt;
&lt;br /&gt;
Data types used:&lt;br /&gt;
&lt;br /&gt;
* string - a UTF-8 string;&lt;br /&gt;
* email - an email address no longer than 255 characters;&lt;br /&gt;
* URL - a URL address no longer than 255 characters;&lt;br /&gt;
* currency - a floating point number denoting a certain sum of money. The mantissa size is the same as the payment currency mantissa size, but not longer than 3. All the exceeding characters will be truncated.&lt;br /&gt;
* integer - an integer number.&lt;br /&gt;
&lt;br /&gt;
ISO 4217 Alpha-3 in the upper register is always used as the payment currency code.&lt;br /&gt;
&lt;br /&gt;
ISO 639-1 Alpha-2 in the lower register is always used as the language code.&lt;br /&gt;
&lt;br /&gt;
==Payment configurations list request==&lt;br /&gt;
&lt;br /&gt;
Returns a list of payment configurations that are configured, enabled, and assigned to this online store/shopping cart.&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment_confs&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal get&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;api_version&amp;gt;1.5&amp;lt;/api_version&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment_confs&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;get&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/name&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Name of the payment configuration, as set by the X-Payments admin&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/id&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Identifier of the payment configuration (autoincrement)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/sale&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Sale&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/auth&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Authorize only&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/capture&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Capture&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/capturePart&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows partial &amp;quot;Capture&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/captureMulti&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows multiple &amp;quot;Capture&amp;quot; operations (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/void&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Void&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/voidPart&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows partial &amp;quot;Void&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/voidMulti&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows multiple &amp;quot;Void&amp;quot; operations (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/refund&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Refund&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/refundPart&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows partial &amp;quot;Refund&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/refundMulti&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows multiple &amp;quot;Refund&amp;quot; operations (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/getInfo&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows to receive information from the payment gateway (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/accept&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Accept&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/decline&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Decline&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/test&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Test&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/authCaptureInfo&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/authCaptureInfo/authExp&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | How many days the transaction can stay in the Authorized status before being declined automatically&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/authCaptureInfo/captMinLimit&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | float&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Minimum capture limit allowed by the payment gateway. Presented as a part of 1 (0 - no minimum limit, 0.2 - minimum 20% of authorized total, 0.5 - 50% of authorized total, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/authCaptureInfo/captMaxLimit&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Maximum capture limit allowed by the payment gateway. Presented as a part of 1 (0 - no maximum limit, 0.5 - 50% of authorized total, 1 - 100% of authorized total, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/moduleName&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Default X-Payments name of the payment configuration&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/settingsHash&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | MD5 hash of the payment configuration settings&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | 3-characters code of currency (ISO 4217). API v1.3 and later.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/canSaveCards&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration supports tokenization, i.e. customers' credit card can be saved on the payment gateway (&amp;quot;Y&amp;quot; - supports, &amp;quot;N&amp;quot; - doesn't support). API v1.3 and later.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/class&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Service field of the class name. It is unique for a payment module so it can be used to detect a certain payment gateway. E.g. XPay_Module_SagePayDirect for SagePay, XPay_Module_AuthorizeNet for Authorize.Net AIM, etc. API v1.4 and later.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/isTestMode&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Indicates if the payment configuration is configured in test mode (&amp;quot;Y&amp;quot; - test mode, &amp;quot;N&amp;quot; - live mode). API v1.4 and later.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;payment_module type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;First Data Global Gateway e4(SM) Web Service API&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
    &amp;lt;transactionTypes&amp;gt;&lt;br /&gt;
      &amp;lt;sale&amp;gt;1&amp;lt;/sale&amp;gt;&lt;br /&gt;
      &amp;lt;auth&amp;gt;1&amp;lt;/auth&amp;gt;&lt;br /&gt;
      &amp;lt;capture&amp;gt;1&amp;lt;/capture&amp;gt;&lt;br /&gt;
      &amp;lt;capturePart&amp;gt;1&amp;lt;/capturePart&amp;gt;&lt;br /&gt;
      &amp;lt;captureMulti&amp;gt;&amp;lt;/captureMulti&amp;gt;&lt;br /&gt;
      &amp;lt;void&amp;gt;1&amp;lt;/void&amp;gt;&lt;br /&gt;
      &amp;lt;voidPart&amp;gt;&amp;lt;/voidPart&amp;gt;&lt;br /&gt;
      &amp;lt;voidMulti&amp;gt;&amp;lt;/voidMulti&amp;gt;&lt;br /&gt;
      &amp;lt;refund&amp;gt;1&amp;lt;/refund&amp;gt;&lt;br /&gt;
      &amp;lt;refundPart&amp;gt;1&amp;lt;/refundPart&amp;gt;&lt;br /&gt;
      &amp;lt;refundMulti&amp;gt;1&amp;lt;/refundMulti&amp;gt;&lt;br /&gt;
      &amp;lt;getInfo&amp;gt;&amp;lt;/getInfo&amp;gt;&lt;br /&gt;
      &amp;lt;accept&amp;gt;&amp;lt;/accept&amp;gt;&lt;br /&gt;
      &amp;lt;decline&amp;gt;&amp;lt;/decline&amp;gt;&lt;br /&gt;
      &amp;lt;test&amp;gt;&amp;lt;/test&amp;gt;&lt;br /&gt;
    &amp;lt;/transactionTypes&amp;gt;&lt;br /&gt;
    &amp;lt;authCaptureInfo&amp;gt;&lt;br /&gt;
      &amp;lt;authExp&amp;gt;30&amp;lt;/authExp&amp;gt;&lt;br /&gt;
      &amp;lt;captMinLimit&amp;gt;0&amp;lt;/captMinLimit&amp;gt;&lt;br /&gt;
      &amp;lt;captMaxLimit&amp;gt;1&amp;lt;/captMaxLimit&amp;gt;&lt;br /&gt;
    &amp;lt;/authCaptureInfo&amp;gt;&lt;br /&gt;
    &amp;lt;moduleName&amp;gt;First Data Payeezy Gateway (ex- Global Gateway e4)&amp;lt;/moduleName&amp;gt;&lt;br /&gt;
    &amp;lt;settingsHash&amp;gt;d41d8cd98f00b204e9800998ecf8427e&amp;lt;/settingsHash&amp;gt;&lt;br /&gt;
    &amp;lt;currency&amp;gt;USD&amp;lt;/currency&amp;gt;&lt;br /&gt;
    &amp;lt;canSaveCards&amp;gt;Y&amp;lt;/canSaveCards&amp;gt;&lt;br /&gt;
    &amp;lt;class&amp;gt;XPay_Module_FirstDataE4&amp;lt;/class&amp;gt;&lt;br /&gt;
    &amp;lt;isTestMode&amp;gt;Y&amp;lt;/isTestMode&amp;gt;&lt;br /&gt;
  &amp;lt;/payment_module&amp;gt;&lt;br /&gt;
  &amp;lt;payment_module type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Chase Paymentech&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;
    &amp;lt;transactionTypes&amp;gt;&lt;br /&gt;
      &amp;lt;sale&amp;gt;1&amp;lt;/sale&amp;gt;&lt;br /&gt;
      &amp;lt;auth&amp;gt;1&amp;lt;/auth&amp;gt;&lt;br /&gt;
      &amp;lt;capture&amp;gt;1&amp;lt;/capture&amp;gt;&lt;br /&gt;
      &amp;lt;capturePart&amp;gt;1&amp;lt;/capturePart&amp;gt;&lt;br /&gt;
      &amp;lt;captureMulti&amp;gt;&amp;lt;/captureMulti&amp;gt;&lt;br /&gt;
      &amp;lt;void&amp;gt;1&amp;lt;/void&amp;gt;&lt;br /&gt;
      &amp;lt;voidPart&amp;gt;&amp;lt;/voidPart&amp;gt;&lt;br /&gt;
      &amp;lt;voidMulti&amp;gt;&amp;lt;/voidMulti&amp;gt;&lt;br /&gt;
      &amp;lt;refund&amp;gt;1&amp;lt;/refund&amp;gt;&lt;br /&gt;
      &amp;lt;refundPart&amp;gt;1&amp;lt;/refundPart&amp;gt;&lt;br /&gt;
      &amp;lt;refundMulti&amp;gt;&amp;lt;/refundMulti&amp;gt;&lt;br /&gt;
      &amp;lt;getInfo&amp;gt;&amp;lt;/getInfo&amp;gt;&lt;br /&gt;
      &amp;lt;accept&amp;gt;&amp;lt;/accept&amp;gt;&lt;br /&gt;
      &amp;lt;decline&amp;gt;&amp;lt;/decline&amp;gt;&lt;br /&gt;
      &amp;lt;test&amp;gt;&amp;lt;/test&amp;gt;&lt;br /&gt;
    &amp;lt;/transactionTypes&amp;gt;&lt;br /&gt;
    &amp;lt;authCaptureInfo&amp;gt;&lt;br /&gt;
      &amp;lt;authExp&amp;gt;30&amp;lt;/authExp&amp;gt;&lt;br /&gt;
      &amp;lt;captMinLimit&amp;gt;0&amp;lt;/captMinLimit&amp;gt;&lt;br /&gt;
      &amp;lt;captMaxLimit&amp;gt;1&amp;lt;/captMaxLimit&amp;gt;&lt;br /&gt;
    &amp;lt;/authCaptureInfo&amp;gt;&lt;br /&gt;
    &amp;lt;moduleName&amp;gt;Chase Paymentech&amp;lt;/moduleName&amp;gt;&lt;br /&gt;
    &amp;lt;settingsHash&amp;gt;d41d8cd98f00b204e9800998ecf8427e&amp;lt;/settingsHash&amp;gt;&lt;br /&gt;
    &amp;lt;currency&amp;gt;USD&amp;lt;/currency&amp;gt;&lt;br /&gt;
    &amp;lt;canSaveCards&amp;gt;Y&amp;lt;/canSaveCards&amp;gt;&lt;br /&gt;
    &amp;lt;class&amp;gt;XPay_Module_Chase&amp;lt;/class&amp;gt;&lt;br /&gt;
    &amp;lt;isTestMode&amp;gt;Y&amp;lt;/isTestMode&amp;gt;&lt;br /&gt;
  &amp;lt;/payment_module&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Test connection request==&lt;br /&gt;
Use this request to test the connection between the store and X-Payments. It can also help to detect the version of the X-Payments installation and the API version supported by X-Payments.&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal connect&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal test&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | testCode&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Any string&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;testCode&amp;gt;123&amp;lt;/testCode&amp;gt;&lt;br /&gt;
&amp;lt;api_version&amp;gt;1.5&amp;lt;/api_version&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;connect&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;test&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | hashCode&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | MD5 hash of the sent code&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | error&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Error code (if any)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | error_message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Error message&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | is_error_message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Flag indicating the error message presence &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | X-Payments version&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
Example of a good response:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;hashCode&amp;gt;202cb962ac59075b964b07152d234b70&amp;lt;/hashCode&amp;gt;&lt;br /&gt;
  &amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
  &amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
  &amp;lt;is_error_message&amp;gt;&amp;lt;/is_error_message&amp;gt;&lt;br /&gt;
  &amp;lt;version&amp;gt;2.2.0&amp;lt;/version&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of a response with an error:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;error&amp;gt;506&amp;lt;/error&amp;gt;&lt;br /&gt;
  &amp;lt;error_message&amp;gt;Your X-Payments connector module supports API version &amp;quot;1.9&amp;quot;. This X-Payments supports the following API versions only: &amp;quot;1.1, 1.2, 1.3, 1.4, 1.5, 1.6&amp;quot;.&amp;lt;/error_message&amp;gt;&lt;br /&gt;
  &amp;lt;is_error_message&amp;gt;&amp;lt;/is_error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Payment initialisation request==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal init&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | confId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Payment module configuration ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | refId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Order ID in the online store&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | returnUrl&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | URL, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | URL of the page to redirect the customer after payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | callbackUrl&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | URL, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | URL to which X-Payments sends background requests with service information&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | language&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | code of ISO 639-1 (Alpha-2)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Language code. If not specified - en&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A container with addresses description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A container with the billing address description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/firstname&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/lastname&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/company&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/address&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/city&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/state&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/country&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 2&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | ISO 3166-1 alpha-2 Country code https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/zipcode&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/email&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | emai, 255l&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/phone&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/fax&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A container with the shipping address description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/firstname&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/lastname&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/company&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/address&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/city&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/state&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/country&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 2&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | ISO 3166-1 alpha-2 Country code https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/zipcode&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/email&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | email, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/phone&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/fax&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/items&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A container with product description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/items/sku&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 64&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | SKU (product code)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/items/name&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Product name&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/items/price&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Product item price&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/items/quantity&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Ordered number of products. If not specified - 1&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/login&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique customer ID in the online store (login, username, userid, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 3&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Payment currency code (ISO 4217 Alpha-3). If not specified, default payment configuration currency is used&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingCost&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Shipping cost. By default - 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/taxCost&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Tax amount. By default - 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/discount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Discount amount. By default - 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/totalCost&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Total payment amount. Must equal to a sum of cart/items/price * cart/items/quantity + cart/shippingCost + cart/taxCost - cart/discount&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/description&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/merchantEmail&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | email, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/forceTransactionType&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | one of values: A or S or empty &amp;lt;br /&amp;gt;A - authorize &amp;lt;br /&amp;gt;S - sale&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A flag of forced Sale or Authorize operation. Overrides the setting from the payment configuration. If the value is empty or the field is omitted, the operation is performed according to the payment configuration settings.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | template &amp;lt;br /&amp;gt;(''supported by API 1.3 and later'')&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | The name of a template in X-Payments requested by the store. Forces the use of the specified template for the payment. If the string passed in this field does not match any template available in X-Payments, it will be ignored.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | saveCard &amp;lt;br /&amp;gt;(''supported by API 1.3 and later'')&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Customer's choice at checkout (“Y” if customer would like to save the card)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;  | cart/kountCustomerUniq &amp;lt;br /&amp;gt;(''supported by API 1.6 and later'')&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;  | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;  | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;  | This field is a unique customer identifier in the Kount system, which is send as a UNIQ field.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''List of template names in X-Payments 2.1.x (API v1.3)''':&lt;br /&gt;
:* '''default''': A template for the separate page. Used if the payment form is displayed on a separate page of your checkout process (not iframe).&lt;br /&gt;
:* '''fast''': Iframe for X-Cart 4 Fast Lane Checkout. Used for X-Cart 4 with the Fast Lane Checkout module. The payment form is displayed at the last step of the checkout process.&lt;br /&gt;
:* '''lite''': Iframe for X-Cart 4 One Page Checkout. Used for X-Cart 4 with the One Page Checkout module. The payment form is displayed in the payment section at checkout.&lt;br /&gt;
:* '''magento_iframe''': Iframe for Magento. Use this template for Magento and iframe.&lt;br /&gt;
:* '''mobile''': Template for mobile devices. Used with the X-Cart Mobile module.&lt;br /&gt;
:* '''xc5''': Iframe for X-Cart 5. Used for X-Cart 5 and iframe.&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;confId&amp;gt;8&amp;lt;/confId&amp;gt;&lt;br /&gt;
&amp;lt;refId&amp;gt;1120&amp;lt;/refId&amp;gt;&lt;br /&gt;
&amp;lt;cart&amp;gt;&lt;br /&gt;
&amp;lt;login&amp;gt;customer&amp;lt;/login&amp;gt;&lt;br /&gt;
&amp;lt;billingAddress&amp;gt;&lt;br /&gt;
&amp;lt;firstname&amp;gt;John&amp;lt;/firstname&amp;gt;&lt;br /&gt;
&amp;lt;lastname&amp;gt;Smith&amp;lt;/lastname&amp;gt;&lt;br /&gt;
&amp;lt;address&amp;gt;10 Main street&amp;lt;/address&amp;gt;&lt;br /&gt;
&amp;lt;city&amp;gt;Fillmore&amp;lt;/city&amp;gt;&lt;br /&gt;
&amp;lt;state&amp;gt;UT&amp;lt;/state&amp;gt;&lt;br /&gt;
&amp;lt;country&amp;gt;US&amp;lt;/country&amp;gt;&lt;br /&gt;
&amp;lt;zipcode&amp;gt;84631&amp;lt;/zipcode&amp;gt;&lt;br /&gt;
&amp;lt;company&amp;gt;IQ testing&amp;lt;/company&amp;gt;&lt;br /&gt;
&amp;lt;email&amp;gt;bit-bucket@x-cart.com&amp;lt;/email&amp;gt;&lt;br /&gt;
&amp;lt;phone&amp;gt;927348572&amp;lt;/phone&amp;gt;&lt;br /&gt;
&amp;lt;fax&amp;gt;&amp;lt;/fax&amp;gt;&lt;br /&gt;
&amp;lt;/billingAddress&amp;gt;&lt;br /&gt;
&amp;lt;shippingAddress&amp;gt;&lt;br /&gt;
&amp;lt;firstname&amp;gt;John&amp;lt;/firstname&amp;gt;&lt;br /&gt;
&amp;lt;lastname&amp;gt;Smith&amp;lt;/lastname&amp;gt;&lt;br /&gt;
&amp;lt;address&amp;gt;10 Main street&amp;lt;/address&amp;gt;&lt;br /&gt;
&amp;lt;city&amp;gt;Fillmore&amp;lt;/city&amp;gt;&lt;br /&gt;
&amp;lt;state&amp;gt;UT&amp;lt;/state&amp;gt;&lt;br /&gt;
&amp;lt;country&amp;gt;US&amp;lt;/country&amp;gt;&lt;br /&gt;
&amp;lt;zipcode&amp;gt;84631&amp;lt;/zipcode&amp;gt;&lt;br /&gt;
&amp;lt;company&amp;gt;IQ testing&amp;lt;/company&amp;gt;&lt;br /&gt;
&amp;lt;email&amp;gt;bit-bucket@x-cart.com&amp;lt;/email&amp;gt;&lt;br /&gt;
&amp;lt;phone&amp;gt;927348572&amp;lt;/phone&amp;gt;&lt;br /&gt;
&amp;lt;fax&amp;gt;&amp;lt;/fax&amp;gt;&lt;br /&gt;
&amp;lt;/shippingAddress&amp;gt;&lt;br /&gt;
&amp;lt;items type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sku&amp;gt;SKU17513&amp;lt;/sku&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt;Three Stone Princess Cut Diamond Ring&amp;lt;/name&amp;gt;&lt;br /&gt;
&amp;lt;price&amp;gt;399.99&amp;lt;/price&amp;gt;&lt;br /&gt;
&amp;lt;quantity&amp;gt;1&amp;lt;/quantity&amp;gt;&lt;br /&gt;
&amp;lt;/items&amp;gt;&lt;br /&gt;
&amp;lt;currency&amp;gt;USD&amp;lt;/currency&amp;gt;&lt;br /&gt;
&amp;lt;shippingCost&amp;gt;15&amp;lt;/shippingCost&amp;gt;&lt;br /&gt;
&amp;lt;taxCost&amp;gt;0&amp;lt;/taxCost&amp;gt;&lt;br /&gt;
&amp;lt;discount&amp;gt;0&amp;lt;/discount&amp;gt;&lt;br /&gt;
&amp;lt;totalCost&amp;gt;414.99&amp;lt;/totalCost&amp;gt;&lt;br /&gt;
&amp;lt;description&amp;gt;Order(s) #1120&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;merchantEmail&amp;gt;bit-bucket@x-cart.com&amp;lt;/merchantEmail&amp;gt;&lt;br /&gt;
&amp;lt;forceTransactionType&amp;gt;&amp;lt;/forceTransactionType&amp;gt;&lt;br /&gt;
&amp;lt;/cart&amp;gt;&lt;br /&gt;
&amp;lt;returnUrl&amp;gt;https://example.com/xcart/payment/cc_xpc.php&amp;lt;/returnUrl&amp;gt;&lt;br /&gt;
&amp;lt;callbackUrl&amp;gt;https://example.com/xcart/payment/cc_xpc.php&amp;lt;/callbackUrl&amp;gt;&lt;br /&gt;
&amp;lt;language&amp;gt;ru&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;init&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | token&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string,32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Temporary payment token, expires immediately after the customer has submitted the cardholder data form&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string,32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A unique payment ID. Is used for all further requests to this payment through the API.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;token&amp;gt;41b2ef3b34698d4f6ed73151ae7307d2&amp;lt;/token&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
&amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Redirecting a customer to the cardholder data entering page==&lt;br /&gt;
&lt;br /&gt;
A POST form is created that sends data to the URL &amp;lt;XPayments_web_root&amp;gt;/payment.php; the form contains the following fields:&lt;br /&gt;
&lt;br /&gt;
* target - has the value &amp;quot;main&amp;quot;;&lt;br /&gt;
* token - uses the value from the token field received in the response to the payment initialisation request.&lt;br /&gt;
&lt;br /&gt;
Request protocol - HTTPS &amp;lt;br /&amp;gt;&lt;br /&gt;
The form must be sent by the POST method. All data must also be sent as POST variables.&lt;br /&gt;
&lt;br /&gt;
==Payment information request==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal get_info&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | refresh&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | 0 или 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A flag specifying that the data in X-Payments must be overwritten by the data from the payment gateway. By default - 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;refresh&amp;gt;0&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;get_info&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | [[#Payment status codes|Payment status code]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Human readable message containing the payment status&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | isFraudStatus&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | 0 or 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Means that the payment is blocked by the gateway, because the customer has not passed the gateway security check&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 3&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Payment currency code&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | amount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Payment total&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | authorized&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Authorized payment total&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | chargedAmount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Charged payment total&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | capturedAmount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Captured amount of the authorized amount&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | capturedAmountAvail&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that is authorized and can be captured&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | voidedAmount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that is authorized but voided&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | voidedAmountAvail&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that is authorized and can be voided&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | refundedAmount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that can be refunded&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | refundedAmountAvail&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that can be refunded&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | fraudAuthorized&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A part of the authorized amount that was blocked by the gateway because the customer had not passed the gateway security check&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | fraudCharged&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A part of the charged amount that was blocked by the gateway because the customer had not passed the gateway security check&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | authorizeInProgress&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A part of the authorized amount that is being handled by the gateway&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | chargeInProgress&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A part of the charged amount that is being handled by the gateway&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactionInProgress&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | 0 или 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Are there any payment transactions handled by the gateway?&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | capturedAmountAvailMin&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Minimum amount that can be captured from the authorized amount&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | capturedAmountAvailGateway&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that can be captured from the authorized amount through the gateway&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | capturedAmountAvailMinGateway&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Minimum amount that can be captured from the authorized amount through the gateway&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | voidedAmountAvailGateway&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that can be voided from the authorized amount through the gateway&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | refundedAmountAvailGateway&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that can be refunded from the authorized amount through the gateway&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | lastMessage&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Last gateway message&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | error&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Error code&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | error_message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Error message&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note|Fields ending in &amp;quot;Gateway&amp;quot; contain amounts that can be used in transactions through the gateway. For example, if a sum of $100 was authorized, and then a capture transaction was emulated for $100, the next refund operation will be available in the emulation mode only. The value of the refundedAmountAvailGateway field will be equal to 0.}}&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;2&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;message&amp;gt;Payment is authorized&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;isFraudStatus&amp;gt;&amp;lt;/isFraudStatus&amp;gt;&lt;br /&gt;
&amp;lt;currency&amp;gt;USD&amp;lt;/currency&amp;gt;&lt;br /&gt;
&amp;lt;amount&amp;gt;414.99&amp;lt;/amount&amp;gt;&lt;br /&gt;
&amp;lt;authorized&amp;gt;414.99&amp;lt;/authorized&amp;gt;&lt;br /&gt;
&amp;lt;chargedAmount&amp;gt;0.00&amp;lt;/chargedAmount&amp;gt;&lt;br /&gt;
&amp;lt;capturedAmount&amp;gt;0.00&amp;lt;/capturedAmount&amp;gt;&lt;br /&gt;
&amp;lt;capturedAmountAvail&amp;gt;414.99&amp;lt;/capturedAmountAvail&amp;gt;&lt;br /&gt;
&amp;lt;voidedAmount&amp;gt;0.00&amp;lt;/voidedAmount&amp;gt;&lt;br /&gt;
&amp;lt;voidedAmountAvail&amp;gt;414.99&amp;lt;/voidedAmountAvail&amp;gt;&lt;br /&gt;
&amp;lt;refundedAmount&amp;gt;0.00&amp;lt;/refundedAmount&amp;gt;&lt;br /&gt;
&amp;lt;refundedAmountAvail&amp;gt;0.00&amp;lt;/refundedAmountAvail&amp;gt;&lt;br /&gt;
&amp;lt;fraudAuthorized&amp;gt;0.00&amp;lt;/fraudAuthorized&amp;gt;&lt;br /&gt;
&amp;lt;fraudCharged&amp;gt;0.00&amp;lt;/fraudCharged&amp;gt;&lt;br /&gt;
&amp;lt;authorizeInProgress&amp;gt;0.00&amp;lt;/authorizeInProgress&amp;gt;&lt;br /&gt;
&amp;lt;chargeInProgress&amp;gt;0.00&amp;lt;/chargeInProgress&amp;gt;&lt;br /&gt;
&amp;lt;transactionInProgress&amp;gt;&amp;lt;/transactionInProgress&amp;gt;&lt;br /&gt;
&amp;lt;capturedAmountAvailMin&amp;gt;0.00&amp;lt;/capturedAmountAvailMin&amp;gt;&lt;br /&gt;
&amp;lt;capturedAmountAvailGateway&amp;gt;414.99&amp;lt;/capturedAmountAvailGateway&amp;gt;&lt;br /&gt;
&amp;lt;capturedAmountAvailMinGateway&amp;gt;0.00&amp;lt;/capturedAmountAvailMinGateway&amp;gt;&lt;br /&gt;
&amp;lt;voidedAmountAvailGateway&amp;gt;414.99&amp;lt;/voidedAmountAvailGateway&amp;gt;&lt;br /&gt;
&amp;lt;refundedAmountAvailGateway&amp;gt;0.00&amp;lt;/refundedAmountAvailGateway&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;8e67e0da23ce7ed451b2c1adbbd7373c&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;lastMessage&amp;gt;Success&amp;lt;/lastMessage&amp;gt;&lt;br /&gt;
&amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
&amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Detailed payment and transaction information request==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal get_additional_info&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A unique payment ID received in the payment initialisation request response&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;get_additional_info&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Payment information request response&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Transaction list&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/date&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 11&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Transaction date (Unix timestamp)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Transaction name&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Transaction status&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Gateway transaction message&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/total&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Transaction amount and currency&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/txnid&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Gateway transaction unique ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/payment_status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | The payment status after the transaction&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/fields&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Transaction additional fields list&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/fields/name&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Field name&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/fields/name&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Field value&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/cardValidation &amp;lt;br /&amp;gt;(API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container for Address validation system (AVS)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/cardValidation/avs_z &amp;lt;br /&amp;gt;(API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Flag for AVS ZIP-code (&amp;quot;0&amp;quot; - unknown, &amp;quot;1&amp;quot; - matches, &amp;quot;2&amp;quot; - does not match)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/cardValidation/avs_c (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Flag for AVS cardholder name (&amp;quot;0&amp;quot; - unknown, &amp;quot;1&amp;quot; - matches, &amp;quot;2&amp;quot; - does not match)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/cardValidation/avs_a (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Flag for AVS street address (&amp;quot;0&amp;quot; - unknown, &amp;quot;1&amp;quot; - matches, &amp;quot;2&amp;quot; - does not match)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/cardValidation/cvv (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Flag for CVV/CVV2/CVD (&amp;quot;0&amp;quot; - unknown, &amp;quot;1&amp;quot; - matches, &amp;quot;2&amp;quot; - does not match)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/maskedCardData (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container for Credit Card details (which are allowed to store and display by PA-DSS)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/maskedCardData/first6 (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | First six digits of the credit card number&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/maskedCardData/last4 (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Last four digits of the credit card number&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/maskedCardData/type (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Credit card type: VISA, MC, AMEX, etc&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/maskedCardData/expire_month (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Credit card expiration month&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/maskedCardData/expire_year (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Credit card expiration year&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;payment&amp;gt;&lt;br /&gt;
    &amp;lt;status&amp;gt;2&amp;lt;/status&amp;gt;&lt;br /&gt;
    &amp;lt;message&amp;gt;Payment is authorized&amp;lt;/message&amp;gt;&lt;br /&gt;
    &amp;lt;isFraudStatus&amp;gt;1&amp;lt;/isFraudStatus&amp;gt;&lt;br /&gt;
    &amp;lt;currency&amp;gt;USD&amp;lt;/currency&amp;gt;&lt;br /&gt;
    &amp;lt;amount&amp;gt;10.61&amp;lt;/amount&amp;gt;&lt;br /&gt;
    &amp;lt;authorized&amp;gt;10.61&amp;lt;/authorized&amp;gt;&lt;br /&gt;
    &amp;lt;chargedAmount&amp;gt;0.00&amp;lt;/chargedAmount&amp;gt;&lt;br /&gt;
    &amp;lt;capturedAmount&amp;gt;0.00&amp;lt;/capturedAmount&amp;gt;&lt;br /&gt;
    &amp;lt;capturedAmountAvail&amp;gt;10.61&amp;lt;/capturedAmountAvail&amp;gt;&lt;br /&gt;
    &amp;lt;voidedAmount&amp;gt;0.00&amp;lt;/voidedAmount&amp;gt;&lt;br /&gt;
    &amp;lt;voidedAmountAvail&amp;gt;10.61&amp;lt;/voidedAmountAvail&amp;gt;&lt;br /&gt;
    &amp;lt;refundedAmount&amp;gt;0.00&amp;lt;/refundedAmount&amp;gt;&lt;br /&gt;
    &amp;lt;refundedAmountAvail&amp;gt;0.00&amp;lt;/refundedAmountAvail&amp;gt;&lt;br /&gt;
    &amp;lt;fraudAuthorized&amp;gt;0.00&amp;lt;/fraudAuthorized&amp;gt;&lt;br /&gt;
    &amp;lt;fraudCharged&amp;gt;0.00&amp;lt;/fraudCharged&amp;gt;&lt;br /&gt;
    &amp;lt;authorizeInProgress&amp;gt;0.00&amp;lt;/authorizeInProgress&amp;gt;&lt;br /&gt;
    &amp;lt;chargeInProgress&amp;gt;0.00&amp;lt;/chargeInProgress&amp;gt;&lt;br /&gt;
    &amp;lt;advinfo&amp;gt;&lt;br /&gt;
      &amp;lt;Message&amp;gt;&amp;lt;/Message&amp;gt;&lt;br /&gt;
      &amp;lt;Response code&amp;gt;1&amp;lt;/Response&amp;gt;&lt;br /&gt;
      &amp;lt;txn_id&amp;gt;6583&amp;lt;/txn_id&amp;gt;&lt;br /&gt;
      &amp;lt;Authorization number&amp;gt;ET154399&amp;lt;/Authorization&amp;gt;&lt;br /&gt;
      &amp;lt;AVS&amp;gt;5: Cardholder name incorrect, billing address and postal code match&amp;lt;/AVS&amp;gt;&lt;br /&gt;
      &amp;lt;Bank message&amp;gt;Approved&amp;lt;/Bank&amp;gt;&lt;br /&gt;
      &amp;lt;Bank response code&amp;gt;100&amp;lt;/Bank&amp;gt;&lt;br /&gt;
      &amp;lt;CVV2&amp;gt;M: CVV2 / CVC2/CVD Match.&amp;lt;/CVV2&amp;gt;&lt;br /&gt;
      &amp;lt;Processing status&amp;gt;Transaction Normal&amp;lt;/Processing&amp;gt;&lt;br /&gt;
      &amp;lt;Transarmor Token&amp;gt;8393008475641111&amp;lt;/Transarmor&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] 702650&amp;gt;Distance from Device to Billing &amp;amp;gt; 1000km&amp;lt;/[Kount] 702650&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] 702656&amp;gt;Billing Country not equal to BIN Country (Visa/MC)&amp;lt;/[Kount] 702656&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] 702662&amp;gt;Billing Country not equal to Device Country&amp;lt;/[Kount] 702662&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] Auto&amp;gt;R&amp;lt;/[Kount] Auto&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] Errors&amp;gt;&amp;lt;/[Kount] Errors&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] Score&amp;gt;26&amp;lt;/[Kount] Score&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] Transaction ID&amp;gt;3Z7903KDCTT0&amp;lt;/[Kount] Transaction ID&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] Warnings&amp;gt;&amp;lt;/[Kount] Warnings&amp;gt;&lt;br /&gt;
    &amp;lt;/advinfo&amp;gt;&lt;br /&gt;
    &amp;lt;transactionInProgress&amp;gt;&amp;lt;/transactionInProgress&amp;gt;&lt;br /&gt;
    &amp;lt;capturedAmountAvailMin&amp;gt;0.00&amp;lt;/capturedAmountAvailMin&amp;gt;&lt;br /&gt;
    &amp;lt;capturedAmountAvailGateway&amp;gt;10.61&amp;lt;/capturedAmountAvailGateway&amp;gt;&lt;br /&gt;
    &amp;lt;capturedAmountAvailMinGateway&amp;gt;0.00&amp;lt;/capturedAmountAvailMinGateway&amp;gt;&lt;br /&gt;
    &amp;lt;voidedAmountAvailGateway&amp;gt;10.61&amp;lt;/voidedAmountAvailGateway&amp;gt;&lt;br /&gt;
    &amp;lt;refundedAmountAvailGateway&amp;gt;0.00&amp;lt;/refundedAmountAvailGateway&amp;gt;&lt;br /&gt;
    &amp;lt;cardValidation&amp;gt;&lt;br /&gt;
      &amp;lt;avs_z&amp;gt;1&amp;lt;/avs_z&amp;gt;&lt;br /&gt;
      &amp;lt;avs_c&amp;gt;2&amp;lt;/avs_c&amp;gt;&lt;br /&gt;
      &amp;lt;avs_a&amp;gt;1&amp;lt;/avs_a&amp;gt;&lt;br /&gt;
      &amp;lt;cvv&amp;gt;1&amp;lt;/cvv&amp;gt;&lt;br /&gt;
    &amp;lt;/cardValidation&amp;gt;&lt;br /&gt;
    &amp;lt;maskedCardData&amp;gt;&lt;br /&gt;
      &amp;lt;first6&amp;gt;411111&amp;lt;/first6&amp;gt;&lt;br /&gt;
      &amp;lt;last4&amp;gt;1111&amp;lt;/last4&amp;gt;&lt;br /&gt;
      &amp;lt;type&amp;gt;VISA&amp;lt;/type&amp;gt;&lt;br /&gt;
      &amp;lt;expire_month&amp;gt;03&amp;lt;/expire_month&amp;gt;&lt;br /&gt;
      &amp;lt;expire_year&amp;gt;2020&amp;lt;/expire_year&amp;gt;&lt;br /&gt;
    &amp;lt;/maskedCardData&amp;gt;&lt;br /&gt;
  &amp;lt;/payment&amp;gt;&lt;br /&gt;
  &amp;lt;transactions type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;date&amp;gt;1438098759&amp;lt;/date&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;Authorize&amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;status&amp;gt;Success&amp;lt;/status&amp;gt;&lt;br /&gt;
    &amp;lt;message&amp;gt;Transaction Normal&amp;lt;/message&amp;gt;&lt;br /&gt;
    &amp;lt;total&amp;gt;10.61 USD&amp;lt;/total&amp;gt;&lt;br /&gt;
    &amp;lt;txnid&amp;gt;57629270&amp;lt;/txnid&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Authorization number&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;ET154399&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;AVS&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;5: Cardholder name incorrect, billing address and postal code match&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Bank message&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;Approved&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Bank response code&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;100&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;CVV2&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;M: CVV2 / CVC2/CVD Match.&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Processing status&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;Transaction Normal&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Transarmor Token&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;8393008475641111&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;[Kount] 702650&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;Distance from Device to Billing &amp;amp;gt; 1000km&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;[Kount] 702656&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;Billing Country not equal to BIN Country (Visa/MC)&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;[Kount] 702662&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;Billing Country not equal to Device Country&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;[Kount] Auto&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;R&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;[Kount] Score&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;26&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;[Kount] Transaction ID&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;3Z7903KDCTT0&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;payment_status&amp;gt;Charged&amp;lt;/payment_status&amp;gt;&lt;br /&gt;
  &amp;lt;/transactions&amp;gt;&lt;br /&gt;
  &amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
  &amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
  &amp;lt;is_error_message&amp;gt;&amp;lt;/is_error_message&amp;gt;&lt;br /&gt;
  &amp;lt;version&amp;gt;2.2.0&amp;lt;/version&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
''The following pertains to API 1.5 and later:''&amp;lt;br /&amp;gt;&lt;br /&gt;
If the transaction was checked by Kount antifraud screening service, the &amp;quot;advinfo&amp;quot; and &amp;quot;tansaction/fields&amp;quot; containers contain information of kount results. The field names related to Kount start with the [Kount] prefix. The information can be extracted as follows:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| [Kount] %%%%%, where %%%%% is some number&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| triggered rule, the number is the number of this rule&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| [Kount] Auto&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| The status of the transaction in Kount (&amp;quot;R&amp;quot; - review, &amp;quot;D&amp;quot; - declined, &amp;quot;A&amp;quot; - approved)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| [Kount] Errors&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| list of errors (if any)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| [Kount] Warnings: &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| list of warnings (if any)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| [Kount] Score&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;|  Risk score&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| [Kount] Transaction ID&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| Transaction ID in Kount, can be used to display the direct link to the transaction in Kount, https://awc.test.kount.net/workflow/detail.html?id=%%%%%% for test mode or https://awc.kount.net/workflow/detail.html?id=%%%%%%, where %%%%% should be replaced with the transaction ID&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Capture authorized transaction request==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string,128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal capture&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | amount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | The amount to capture from the previously authorized transaction. By default equals the amount of the authorized transaction&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Request example ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;amount&amp;gt;50.00&amp;lt;/amount&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;capture&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | [[#Operation status codes|Operation status code]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Gateway transaction message&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Response example  &amp;lt;pre&amp;gt;&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;1&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
&amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Void authorized transaction request==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal void&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | amount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount to void of the authorized transaction. By default equals to the amount of the authorized transaction&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;amount&amp;gt;50.00&amp;lt;/amount&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;void&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | [[#Operation status codes|Operation status code]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Gateway transaction message&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;1&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
&amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Refund captured transaction request==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal capture&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | amount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount to be refunded to the customer of the previously captured transactions. By default equals to the amount of captured transactions&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;amount&amp;gt;50.00&amp;lt;/amount&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;refund&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | [[#Operation status codes|Operation status code]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Gateway transaction message&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;1&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
&amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Blocked by gateway transaction accept request (Accept)==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal accept&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;accept&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | [[#Operation status codes|Operation status code]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Gateway transaction message&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Response example  &amp;lt;pre&amp;gt;&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;1&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
&amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Blocked by gateway transaction decline request (Decline)==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal decline&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;decline&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | [[#Operation status codes|Operation status code]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Gateway transaction message&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;1&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
&amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Charge again transaction request (Tokenization)==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal recharge&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID which references the token that will be used to identify the payment on the side of the payment gateway&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | amount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | The amount for which the &amp;quot;saved&amp;quot; card is to be charged using the token from the previous successful transaction&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | description&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Description of the transaction&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | refId (supported by API 1.4 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Order ID in the online store&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;amount&amp;gt;50.00&amp;lt;/amount&amp;gt;&lt;br /&gt;
&amp;lt;description&amp;gt;Recurring payment for the new issue of Playboy&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;recharge&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;api_version&amp;gt;1.2&amp;lt;/api_version&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | [[#Operation status codes|Operation status code]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | data&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | array&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | data[status]&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Status of the new payment (See [[#Payment status codes|Payment status codes]])&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | data[transaction_id]&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | ID of the created payment for further references (capture/void/refund etc)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | data[error]&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | data[error_message]&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | data[is_error_message]&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Callback request with service payment information==&lt;br /&gt;
&lt;br /&gt;
This is a background request that X-Payments sends to the store after a payment has been completed and it’s result (accepted, declined, etc) has been received from the payment gateway.  The request is sent via HTTP POST to the callbackURL defined in the Payment initialisation request. Once this request has been sent, the customer is redirected back to the store.&lt;br /&gt;
&lt;br /&gt;
===POSTed data===&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Value'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | callback&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | fixed string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Identifies the callback request&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | (mixed)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string (MD5 hash)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A unique ID of the payment on the side of X-Payments&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | updateData&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | (mixed)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Encrypted response from X-Payments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
X-Payments does not expect a response from the store for this request; however, if the HTTP status of the response is not 200 OK, the request is considered failed, and a special notification is sent to the X-Payments admin. The store needs to decrypt the encrypted part of the response and update the order on its side accordingly. Once the updateData value has been decrypted, it is an XML document with the same structure as the [[X-Payments:API#Response_specification_2|response for Payment information request]].&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Check cart callback request==&lt;br /&gt;
&lt;br /&gt;
After the customer has submitted credit card data, right before sending this data to the payment gateway, X-Payments connects to the store to verify the cart total and contents.&lt;br /&gt;
&lt;br /&gt;
The HTTP POST request is sent to the '''callbackURL''' defined in the '''Payment initialisation request'''.&lt;br /&gt;
&lt;br /&gt;
===POSTed data===&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Value'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | check_cart&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | fixed string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Identifies the check-cart callback request&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | (mixed)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string (MD5 hash)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A unique ID of the payment on the side of X-Payments&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | refId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | (mixed)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Order ID (or any other reference) in the online store&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As of API v1.3, the store must respond to this callback request. The response must be an encrypted XML document (i.e. the same way as for other communication between the store and X-Payments).&lt;br /&gt;
&lt;br /&gt;
===Encrypted response for check-cart callback request===&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | fixed string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Should be “cart-changed” or &amp;quot;cart-not-changed&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A container with cart/order description. See [[X-Payments:API#Request_specification|Payment initialisation request specification]] for details. This container must be included for &amp;quot;status = cart-changed&amp;quot; and is not necessary for &amp;quot;status = cart-not-changed&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | saveCard&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the customer has chosen to save their card for future use (“Y” if the customer would like to save the card)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Communication between X-Payments iframe and the store==&lt;br /&gt;
&lt;br /&gt;
===Communication structure===&lt;br /&gt;
Communication between the online store (parent frame) and X-Payments (iframe) is implemented with the help of the javascript Window.postMessage method. Notifictions to both the sides represent stringified JSON formatted texts that consist of a service message (string) and an optional list of parameters:&lt;br /&gt;
:* '''height''': height of the iframe&lt;br /&gt;
:* '''error''': human readable message&lt;br /&gt;
:* '''type''': message type. X-Payments sends it as 2, which indicates that the online store should re-initialize the payment. In API v1.3 no other values are supported.&lt;br /&gt;
&lt;br /&gt;
===Messages sent from the online store to X-Payments===&lt;br /&gt;
'''Submit payment form'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Payments’ iframe does not have a Submit button, so instead of it the payment form should be submitted from the parent window by any kind of “Submit order” or “Place order” button at checkout. At the same time, the special message '''submitPaymentForm''' with no parameters should be sent.&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
{&lt;br /&gt;
:::message: 'submitPaymentForm',&lt;br /&gt;
:::params:  {}&lt;br /&gt;
}&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
===Messages sent from X-Payments to the online store===&lt;br /&gt;
'''Iframe is loaded and ready'''&amp;lt;br /&amp;gt;&lt;br /&gt;
The message ready notifies the parent window that the payment form is ready. The actual height of the iframe is included in the parameters, so the parent window (checkout page) can perform the necessary adjustments.&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
{&lt;br /&gt;
:::message: 'ready',&lt;br /&gt;
:::params: {&lt;br /&gt;
::::::height: $(document).height()&lt;br /&gt;
:::}&lt;br /&gt;
}&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Payment form submitted with an error'''&amp;lt;br /&amp;gt;&lt;br /&gt;
The message '''paymentFormSubmitError''' with no parameters is sent in the case of any validation error. This may be the case, for example, if  the customer’s credit card expiration date is in the past, or the credit card number does not match the card type (e.g. VISA, MasterCard), or when a required field has not been submitted (e.g. CVV2). Once the message '''paymentFormSubmitError''' with no parameters has been received, the store should not proceed to the next step of the checkout process, but should expect the payment form to be submitted again.&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
{&lt;br /&gt;
:::message: 'paymentFormSubmitError',&lt;br /&gt;
:::params: {}&lt;br /&gt;
}&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Internal error'''&amp;lt;br /&amp;gt;&lt;br /&gt;
The '''paymentFormSubmitError''' message with a special set of parameters is used to notify the store if something is wrong outside X-Payments, and X-Payments cannot do anything about it (for example, if the payment gateway has sent an unknown/unexpected piece of data).&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
{&lt;br /&gt;
:::message: 'paymentFormSubmitError',&lt;br /&gt;
:::params: {&lt;br /&gt;
::::::height: $(document).height(),&lt;br /&gt;
::::::error: 'Internal error',&lt;br /&gt;
::::::type: '2'&lt;br /&gt;
:::}&lt;br /&gt;
}&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Session is expired'''&amp;lt;br /&amp;gt;&lt;br /&gt;
For security reasons the length of the session is limited to 15 minutes. After this period the store has to re-initialize the payment. In this case X-Payments sends the '''paymentFormSubmitError''' message with the “Payment session expired” error.&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
{&lt;br /&gt;
:::message: 'paymentFormSubmitError',&lt;br /&gt;
:::params: {&lt;br /&gt;
::::::height: $(document).height(),&lt;br /&gt;
::::::error: 'Payment session expired',&lt;br /&gt;
::::::type: '2'&lt;br /&gt;
:::}&lt;br /&gt;
}&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Payment form in Iframe is submitted''' (supported by API v1.4 and later)&amp;lt;br /&amp;gt;&lt;br /&gt;
The message '''paymentFormSubmit''' notifies the parent window that the payment form has been submitted from the X-Payments side; for example, if a customer clicks the Enter key inside the iframe. Once the store receives this message, it should operate in the same way as though the customer has clicked the Place order button at checkout.&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
{&lt;br /&gt;
:::message: 'paymentFormSubmit',&lt;br /&gt;
:::params: {}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Appendix A. Status codes.==&lt;br /&gt;
&lt;br /&gt;
===Payment status codes===&lt;br /&gt;
: 1 - New&lt;br /&gt;
: 2 - Authorized&lt;br /&gt;
: 3 - Declined&lt;br /&gt;
: 4 - Charged&lt;br /&gt;
: 5 - Refunded&lt;br /&gt;
: 6 - Partially refunded&lt;br /&gt;
&lt;br /&gt;
===Operation status codes===&lt;br /&gt;
: 0 - transaction failed&lt;br /&gt;
: 1 - transaction is successful&lt;br /&gt;
: 2 - transaction is successful and is duplicate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [http://lu53.crtdev.local/%7Emixon/google-cache-w.php?q=/index.php?title=X-Cart:X-Payments_Connector X-Cart:X-Payments Connector]&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:API&amp;diff=674</id>
		<title>X-Payments:API</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:API&amp;diff=674"/>
		<updated>2016-05-25T10:28:42Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* API versions supported */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== API versions supported ==&lt;br /&gt;
&lt;br /&gt;
'''API v1.1''': X-Payments 1.0.2-1.0.5 &amp;lt;br /&amp;gt;&lt;br /&gt;
'''API v1.2''': X-Payments 1.0.6, 2.0.0, 2.0.1 &amp;lt;br /&amp;gt;&lt;br /&gt;
'''API v1.3''': X-Payments 2.1.0, 2.1.1 &amp;lt;br /&amp;gt;&lt;br /&gt;
'''API v1.4''': X-Payments 2.1.2 (Nov 2014), 2.1.3 (Feb 2015)&amp;lt;br /&amp;gt;&lt;br /&gt;
'''API v1.5''': X-Payments 2.2 (June 2015)&amp;lt;br /&amp;gt;&lt;br /&gt;
'''API v1.6''': X-Payments 3.x (June 2016)&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Samples==&lt;br /&gt;
&lt;br /&gt;
While we are doing an addition to our API docs I suggest to use function xpc_api_request from &lt;br /&gt;
X-Cart 4 file modules/XPayments_Connector/xpc_func.php as a sample.&lt;br /&gt;
&lt;br /&gt;
Especially function xpc_request_test() to make a test call.&lt;br /&gt;
&lt;br /&gt;
==API requests==&lt;br /&gt;
&lt;br /&gt;
All API requests are made to the '''httрs://&amp;lt;xpayments_url&amp;gt;/api.php''' URL.&lt;br /&gt;
Only HTTPS protocol is used.&lt;br /&gt;
A request is an XML document that is encrypted using RSA method with a key generated by X-Payments.&lt;br /&gt;
&lt;br /&gt;
'''Request/Response encryption'''&lt;br /&gt;
&lt;br /&gt;
* Encryption method used: RSA;&lt;br /&gt;
* Key length: 2048 bit;&lt;br /&gt;
* A private key is created with a 32 character password;&lt;br /&gt;
* The password is generated randomly;&lt;br /&gt;
* The number of password characters varies from 33 to 127.&lt;br /&gt;
&lt;br /&gt;
For each online store X-Payments generates 2 pairs of keys:&lt;br /&gt;
&lt;br /&gt;
# a public and a private key to encrypt requests/responses from the online store to X-Payments;&lt;br /&gt;
# a public and a private key to encrypt requests/responses from X-Payments to the online store.&lt;br /&gt;
&lt;br /&gt;
So when the online store sends a request to X-Payments, this request is encrypted using the public key from the first pair, X-Payments decrypts it using the private key of the first pair. Then X-Payments response is encrypted using the public key of the second pair, and the online store decrypts this response using the private key of the second pair.&lt;br /&gt;
&lt;br /&gt;
To ensure full-featured two-way commumication between X-Payments and an online store, you need to copy tree values from the X-Payments interface:&lt;br /&gt;
:* Public key from the first pair (Online store → X-Payments),&lt;br /&gt;
:* Private key from the second pair (X-Payments → Online store),&lt;br /&gt;
:* Private key password,&lt;br /&gt;
and have them stored on the side of the online store by an appropriate X-Payments connector.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Encryption algorithm:'''&lt;br /&gt;
&lt;br /&gt;
# An empty string is created for pre-prepared data.&lt;br /&gt;
# A 32-character salt-block is formed of random characters from 33 to 255.&lt;br /&gt;
# The length of the salt-block in bites is taken and transformed into a 12-character string by adding zeros before it.&lt;br /&gt;
# The salt-block length string and the salt-block are added to the pre-prepared data.&lt;br /&gt;
# MD5 digital signature is taken from the data. The signature is formed as a HEX (32-character string).&lt;br /&gt;
# The length of the digital signature in bites is taken and transformed into a 12-character string by adding zeros before it.&lt;br /&gt;
# The digital signature length string and the digital signature are added to the pre-prepared data.&lt;br /&gt;
# The length of the data string in bites is taken and transformed into a 12-character string by adding zeros before it.&lt;br /&gt;
# The data string length string and the data string are added to the pre-prepared data.&lt;br /&gt;
# The string of pre-prepared data is divided into 128 bite chunks.&lt;br /&gt;
# Each chunk is encrypted using a public key.&lt;br /&gt;
# Each chunk is encoded with base64.&lt;br /&gt;
# Chunks are glued together using a line feed character (0x0a).&lt;br /&gt;
# API prefix is added to the glued chunks.&lt;br /&gt;
&lt;br /&gt;
===cURL as a means of sending requests===&lt;br /&gt;
&lt;br /&gt;
Using libcurl v.7.10 and above is recommended.&lt;br /&gt;
&lt;br /&gt;
TTL should be specified depending on the performance of the server where X-Payments is installed. The recommended value is 120 seconds.&lt;br /&gt;
&lt;br /&gt;
It is recommended to use SSL v.3 and above.&lt;br /&gt;
&lt;br /&gt;
===Data types===&lt;br /&gt;
&lt;br /&gt;
Data types used:&lt;br /&gt;
&lt;br /&gt;
* string - a UTF-8 string;&lt;br /&gt;
* email - an email address no longer than 255 characters;&lt;br /&gt;
* URL - a URL address no longer than 255 characters;&lt;br /&gt;
* currency - a floating point number denoting a certain sum of money. The mantissa size is the same as the payment currency mantissa size, but not longer than 3. All the exceeding characters will be truncated.&lt;br /&gt;
* integer - an integer number.&lt;br /&gt;
&lt;br /&gt;
ISO 4217 Alpha-3 in the upper register is always used as the payment currency code.&lt;br /&gt;
&lt;br /&gt;
ISO 639-1 Alpha-2 in the lower register is always used as the language code.&lt;br /&gt;
&lt;br /&gt;
==Payment configurations list request==&lt;br /&gt;
&lt;br /&gt;
Returns a list of payment configurations that are configured, enabled, and assigned to this online store/shopping cart.&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment_confs&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal get&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;api_version&amp;gt;1.5&amp;lt;/api_version&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment_confs&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;get&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/name&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Name of the payment configuration, as set by the X-Payments admin&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/id&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Identifier of the payment configuration (autoincrement)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/sale&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Sale&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/auth&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Authorize only&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/capture&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Capture&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/capturePart&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows partial &amp;quot;Capture&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/captureMulti&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows multiple &amp;quot;Capture&amp;quot; operations (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/void&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Void&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/voidPart&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows partial &amp;quot;Void&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/voidMulti&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows multiple &amp;quot;Void&amp;quot; operations (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/refund&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Refund&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/refundPart&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows partial &amp;quot;Refund&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/refundMulti&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows multiple &amp;quot;Refund&amp;quot; operations (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/getInfo&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows to receive information from the payment gateway (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/accept&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Accept&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/decline&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Decline&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/test&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Test&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/authCaptureInfo&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/authCaptureInfo/authExp&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | How many days the transaction can stay in the Authorized status before being declined automatically&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/authCaptureInfo/captMinLimit&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | float&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Minimum capture limit allowed by the payment gateway. Presented as a part of 1 (0 - no minimum limit, 0.2 - minimum 20% of authorized total, 0.5 - 50% of authorized total, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/authCaptureInfo/captMaxLimit&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Maximum capture limit allowed by the payment gateway. Presented as a part of 1 (0 - no maximum limit, 0.5 - 50% of authorized total, 1 - 100% of authorized total, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/moduleName&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Default X-Payments name of the payment configuration&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/settingsHash&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | MD5 hash of the payment configuration settings&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | 3-characters code of currency (ISO 4217). API v1.3 and later.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/canSaveCards&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration supports tokenization, i.e. customers' credit card can be saved on the payment gateway (&amp;quot;Y&amp;quot; - supports, &amp;quot;N&amp;quot; - doesn't support). API v1.3 and later.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/class&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Service field of the class name. It is unique for a payment module so it can be used to detect a certain payment gateway. E.g. XPay_Module_SagePayDirect for SagePay, XPay_Module_AuthorizeNet for Authorize.Net AIM, etc. API v1.4 and later.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/isTestMode&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Indicates if the payment configuration is configured in test mode (&amp;quot;Y&amp;quot; - test mode, &amp;quot;N&amp;quot; - live mode). API v1.4 and later.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;payment_module type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;First Data Global Gateway e4(SM) Web Service API&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
    &amp;lt;transactionTypes&amp;gt;&lt;br /&gt;
      &amp;lt;sale&amp;gt;1&amp;lt;/sale&amp;gt;&lt;br /&gt;
      &amp;lt;auth&amp;gt;1&amp;lt;/auth&amp;gt;&lt;br /&gt;
      &amp;lt;capture&amp;gt;1&amp;lt;/capture&amp;gt;&lt;br /&gt;
      &amp;lt;capturePart&amp;gt;1&amp;lt;/capturePart&amp;gt;&lt;br /&gt;
      &amp;lt;captureMulti&amp;gt;&amp;lt;/captureMulti&amp;gt;&lt;br /&gt;
      &amp;lt;void&amp;gt;1&amp;lt;/void&amp;gt;&lt;br /&gt;
      &amp;lt;voidPart&amp;gt;&amp;lt;/voidPart&amp;gt;&lt;br /&gt;
      &amp;lt;voidMulti&amp;gt;&amp;lt;/voidMulti&amp;gt;&lt;br /&gt;
      &amp;lt;refund&amp;gt;1&amp;lt;/refund&amp;gt;&lt;br /&gt;
      &amp;lt;refundPart&amp;gt;1&amp;lt;/refundPart&amp;gt;&lt;br /&gt;
      &amp;lt;refundMulti&amp;gt;1&amp;lt;/refundMulti&amp;gt;&lt;br /&gt;
      &amp;lt;getInfo&amp;gt;&amp;lt;/getInfo&amp;gt;&lt;br /&gt;
      &amp;lt;accept&amp;gt;&amp;lt;/accept&amp;gt;&lt;br /&gt;
      &amp;lt;decline&amp;gt;&amp;lt;/decline&amp;gt;&lt;br /&gt;
      &amp;lt;test&amp;gt;&amp;lt;/test&amp;gt;&lt;br /&gt;
    &amp;lt;/transactionTypes&amp;gt;&lt;br /&gt;
    &amp;lt;authCaptureInfo&amp;gt;&lt;br /&gt;
      &amp;lt;authExp&amp;gt;30&amp;lt;/authExp&amp;gt;&lt;br /&gt;
      &amp;lt;captMinLimit&amp;gt;0&amp;lt;/captMinLimit&amp;gt;&lt;br /&gt;
      &amp;lt;captMaxLimit&amp;gt;1&amp;lt;/captMaxLimit&amp;gt;&lt;br /&gt;
    &amp;lt;/authCaptureInfo&amp;gt;&lt;br /&gt;
    &amp;lt;moduleName&amp;gt;First Data Payeezy Gateway (ex- Global Gateway e4)&amp;lt;/moduleName&amp;gt;&lt;br /&gt;
    &amp;lt;settingsHash&amp;gt;d41d8cd98f00b204e9800998ecf8427e&amp;lt;/settingsHash&amp;gt;&lt;br /&gt;
    &amp;lt;currency&amp;gt;USD&amp;lt;/currency&amp;gt;&lt;br /&gt;
    &amp;lt;canSaveCards&amp;gt;Y&amp;lt;/canSaveCards&amp;gt;&lt;br /&gt;
    &amp;lt;class&amp;gt;XPay_Module_FirstDataE4&amp;lt;/class&amp;gt;&lt;br /&gt;
    &amp;lt;isTestMode&amp;gt;Y&amp;lt;/isTestMode&amp;gt;&lt;br /&gt;
  &amp;lt;/payment_module&amp;gt;&lt;br /&gt;
  &amp;lt;payment_module type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Chase Paymentech&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;
    &amp;lt;transactionTypes&amp;gt;&lt;br /&gt;
      &amp;lt;sale&amp;gt;1&amp;lt;/sale&amp;gt;&lt;br /&gt;
      &amp;lt;auth&amp;gt;1&amp;lt;/auth&amp;gt;&lt;br /&gt;
      &amp;lt;capture&amp;gt;1&amp;lt;/capture&amp;gt;&lt;br /&gt;
      &amp;lt;capturePart&amp;gt;1&amp;lt;/capturePart&amp;gt;&lt;br /&gt;
      &amp;lt;captureMulti&amp;gt;&amp;lt;/captureMulti&amp;gt;&lt;br /&gt;
      &amp;lt;void&amp;gt;1&amp;lt;/void&amp;gt;&lt;br /&gt;
      &amp;lt;voidPart&amp;gt;&amp;lt;/voidPart&amp;gt;&lt;br /&gt;
      &amp;lt;voidMulti&amp;gt;&amp;lt;/voidMulti&amp;gt;&lt;br /&gt;
      &amp;lt;refund&amp;gt;1&amp;lt;/refund&amp;gt;&lt;br /&gt;
      &amp;lt;refundPart&amp;gt;1&amp;lt;/refundPart&amp;gt;&lt;br /&gt;
      &amp;lt;refundMulti&amp;gt;&amp;lt;/refundMulti&amp;gt;&lt;br /&gt;
      &amp;lt;getInfo&amp;gt;&amp;lt;/getInfo&amp;gt;&lt;br /&gt;
      &amp;lt;accept&amp;gt;&amp;lt;/accept&amp;gt;&lt;br /&gt;
      &amp;lt;decline&amp;gt;&amp;lt;/decline&amp;gt;&lt;br /&gt;
      &amp;lt;test&amp;gt;&amp;lt;/test&amp;gt;&lt;br /&gt;
    &amp;lt;/transactionTypes&amp;gt;&lt;br /&gt;
    &amp;lt;authCaptureInfo&amp;gt;&lt;br /&gt;
      &amp;lt;authExp&amp;gt;30&amp;lt;/authExp&amp;gt;&lt;br /&gt;
      &amp;lt;captMinLimit&amp;gt;0&amp;lt;/captMinLimit&amp;gt;&lt;br /&gt;
      &amp;lt;captMaxLimit&amp;gt;1&amp;lt;/captMaxLimit&amp;gt;&lt;br /&gt;
    &amp;lt;/authCaptureInfo&amp;gt;&lt;br /&gt;
    &amp;lt;moduleName&amp;gt;Chase Paymentech&amp;lt;/moduleName&amp;gt;&lt;br /&gt;
    &amp;lt;settingsHash&amp;gt;d41d8cd98f00b204e9800998ecf8427e&amp;lt;/settingsHash&amp;gt;&lt;br /&gt;
    &amp;lt;currency&amp;gt;USD&amp;lt;/currency&amp;gt;&lt;br /&gt;
    &amp;lt;canSaveCards&amp;gt;Y&amp;lt;/canSaveCards&amp;gt;&lt;br /&gt;
    &amp;lt;class&amp;gt;XPay_Module_Chase&amp;lt;/class&amp;gt;&lt;br /&gt;
    &amp;lt;isTestMode&amp;gt;Y&amp;lt;/isTestMode&amp;gt;&lt;br /&gt;
  &amp;lt;/payment_module&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Test connection request==&lt;br /&gt;
Use this request to test the connection between the store and X-Payments. It can also help to detect the version of the X-Payments installation and the API version supported by X-Payments.&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal connect&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal test&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | testCode&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Any string&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;testCode&amp;gt;123&amp;lt;/testCode&amp;gt;&lt;br /&gt;
&amp;lt;api_version&amp;gt;1.5&amp;lt;/api_version&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;connect&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;test&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | hashCode&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | MD5 hash of the sent code&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | error&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Error code (if any)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | error_message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Error message&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | is_error_message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Flag indicating the error message presence &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | X-Payments version&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
Example of a good response:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;hashCode&amp;gt;202cb962ac59075b964b07152d234b70&amp;lt;/hashCode&amp;gt;&lt;br /&gt;
  &amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
  &amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
  &amp;lt;is_error_message&amp;gt;&amp;lt;/is_error_message&amp;gt;&lt;br /&gt;
  &amp;lt;version&amp;gt;2.2.0&amp;lt;/version&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of a response with an error:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;error&amp;gt;506&amp;lt;/error&amp;gt;&lt;br /&gt;
  &amp;lt;error_message&amp;gt;Your X-Payments connector module supports API version &amp;quot;1.9&amp;quot;. This X-Payments supports the following API versions only: &amp;quot;1.1, 1.2, 1.3, 1.4, 1.5, 1.6&amp;quot;.&amp;lt;/error_message&amp;gt;&lt;br /&gt;
  &amp;lt;is_error_message&amp;gt;&amp;lt;/is_error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Payment initialisation request==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal init&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | confId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Payment module configuration ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | refId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Order ID in the online store&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | returnUrl&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | URL, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | URL of the page to redirect the customer after payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | callbackUrl&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | URL, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | URL to which X-Payments sends background requests with service information&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | language&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | code of ISO 639-1 (Alpha-2)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Language code. If not specified - en&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A container with addresses description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A container with the billing address description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/firstname&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/lastname&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/company&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/address&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/city&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/state&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/country&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 2&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | ISO 3166-1 alpha-2 Country code https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/zipcode&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/email&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | emai, 255l&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/phone&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/fax&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A container with the shipping address description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/firstname&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/lastname&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/company&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/address&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/city&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/state&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/country&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 2&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | ISO 3166-1 alpha-2 Country code https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/zipcode&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/email&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | email, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/phone&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/fax&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/items&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A container with product description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/items/sku&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 64&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | SKU (product code)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/items/name&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Product name&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/items/price&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Product item price&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/items/quantity&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Ordered number of products. If not specified - 1&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/login&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique customer ID in the online store (login, username, userid, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 3&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Payment currency code (ISO 4217 Alpha-3). If not specified, default payment configuration currency is used&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingCost&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Shipping cost. By default - 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/taxCost&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Tax amount. By default - 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/discount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Discount amount. By default - 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/totalCost&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Total payment amount. Must equal to a sum of cart/items/price * cart/items/quantity + cart/shippingCost + cart/taxCost - cart/discount&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/description&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/merchantEmail&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | email, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/forceTransactionType&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | one of values: A or S or empty &amp;lt;br /&amp;gt;A - authorize &amp;lt;br /&amp;gt;S - sale&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A flag of forced Sale or Authorize operation. Overrides the setting from the payment configuration. If the value is empty or the field is omitted, the operation is performed according to the payment configuration settings.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | template &amp;lt;br /&amp;gt;(''supported by API 1.3 and later'')&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | The name of a template in X-Payments requested by the store. Forces the use of the specified template for the payment. If the string passed in this field does not match any template available in X-Payments, it will be ignored.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | saveCard &amp;lt;br /&amp;gt;(''supported by API 1.3 and later'')&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Customer's choice at checkout (“Y” if customer would like to save the card)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;  | cart/kountCustomerUniq &amp;lt;br /&amp;gt;(''supported by API 1.6 and later'')&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;  | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;  | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;  | This field is a unique customer identifier in the Kount system, which is send as a UNIQ field.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''List of template names in X-Payments 2.1.x (API v1.3)''':&lt;br /&gt;
:* '''default''': A template for the separate page. Used if the payment form is displayed on a separate page of your checkout process (not iframe).&lt;br /&gt;
:* '''fast''': Iframe for X-Cart 4 Fast Lane Checkout. Used for X-Cart 4 with the Fast Lane Checkout module. The payment form is displayed at the last step of the checkout process.&lt;br /&gt;
:* '''lite''': Iframe for X-Cart 4 One Page Checkout. Used for X-Cart 4 with the One Page Checkout module. The payment form is displayed in the payment section at checkout.&lt;br /&gt;
:* '''magento_iframe''': Iframe for Magento. Use this template for Magento and iframe.&lt;br /&gt;
:* '''mobile''': Template for mobile devices. Used with the X-Cart Mobile module.&lt;br /&gt;
:* '''xc5''': Iframe for X-Cart 5. Used for X-Cart 5 and iframe.&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;confId&amp;gt;8&amp;lt;/confId&amp;gt;&lt;br /&gt;
&amp;lt;refId&amp;gt;1120&amp;lt;/refId&amp;gt;&lt;br /&gt;
&amp;lt;cart&amp;gt;&lt;br /&gt;
&amp;lt;login&amp;gt;customer&amp;lt;/login&amp;gt;&lt;br /&gt;
&amp;lt;billingAddress&amp;gt;&lt;br /&gt;
&amp;lt;firstname&amp;gt;John&amp;lt;/firstname&amp;gt;&lt;br /&gt;
&amp;lt;lastname&amp;gt;Smith&amp;lt;/lastname&amp;gt;&lt;br /&gt;
&amp;lt;address&amp;gt;10 Main street&amp;lt;/address&amp;gt;&lt;br /&gt;
&amp;lt;city&amp;gt;Fillmore&amp;lt;/city&amp;gt;&lt;br /&gt;
&amp;lt;state&amp;gt;UT&amp;lt;/state&amp;gt;&lt;br /&gt;
&amp;lt;country&amp;gt;US&amp;lt;/country&amp;gt;&lt;br /&gt;
&amp;lt;zipcode&amp;gt;84631&amp;lt;/zipcode&amp;gt;&lt;br /&gt;
&amp;lt;company&amp;gt;IQ testing&amp;lt;/company&amp;gt;&lt;br /&gt;
&amp;lt;email&amp;gt;bit-bucket@x-cart.com&amp;lt;/email&amp;gt;&lt;br /&gt;
&amp;lt;phone&amp;gt;927348572&amp;lt;/phone&amp;gt;&lt;br /&gt;
&amp;lt;fax&amp;gt;&amp;lt;/fax&amp;gt;&lt;br /&gt;
&amp;lt;/billingAddress&amp;gt;&lt;br /&gt;
&amp;lt;shippingAddress&amp;gt;&lt;br /&gt;
&amp;lt;firstname&amp;gt;John&amp;lt;/firstname&amp;gt;&lt;br /&gt;
&amp;lt;lastname&amp;gt;Smith&amp;lt;/lastname&amp;gt;&lt;br /&gt;
&amp;lt;address&amp;gt;10 Main street&amp;lt;/address&amp;gt;&lt;br /&gt;
&amp;lt;city&amp;gt;Fillmore&amp;lt;/city&amp;gt;&lt;br /&gt;
&amp;lt;state&amp;gt;UT&amp;lt;/state&amp;gt;&lt;br /&gt;
&amp;lt;country&amp;gt;US&amp;lt;/country&amp;gt;&lt;br /&gt;
&amp;lt;zipcode&amp;gt;84631&amp;lt;/zipcode&amp;gt;&lt;br /&gt;
&amp;lt;company&amp;gt;IQ testing&amp;lt;/company&amp;gt;&lt;br /&gt;
&amp;lt;email&amp;gt;bit-bucket@x-cart.com&amp;lt;/email&amp;gt;&lt;br /&gt;
&amp;lt;phone&amp;gt;927348572&amp;lt;/phone&amp;gt;&lt;br /&gt;
&amp;lt;fax&amp;gt;&amp;lt;/fax&amp;gt;&lt;br /&gt;
&amp;lt;/shippingAddress&amp;gt;&lt;br /&gt;
&amp;lt;items type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sku&amp;gt;SKU17513&amp;lt;/sku&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt;Three Stone Princess Cut Diamond Ring&amp;lt;/name&amp;gt;&lt;br /&gt;
&amp;lt;price&amp;gt;399.99&amp;lt;/price&amp;gt;&lt;br /&gt;
&amp;lt;quantity&amp;gt;1&amp;lt;/quantity&amp;gt;&lt;br /&gt;
&amp;lt;/items&amp;gt;&lt;br /&gt;
&amp;lt;currency&amp;gt;USD&amp;lt;/currency&amp;gt;&lt;br /&gt;
&amp;lt;shippingCost&amp;gt;15&amp;lt;/shippingCost&amp;gt;&lt;br /&gt;
&amp;lt;taxCost&amp;gt;0&amp;lt;/taxCost&amp;gt;&lt;br /&gt;
&amp;lt;discount&amp;gt;0&amp;lt;/discount&amp;gt;&lt;br /&gt;
&amp;lt;totalCost&amp;gt;414.99&amp;lt;/totalCost&amp;gt;&lt;br /&gt;
&amp;lt;description&amp;gt;Order(s) #1120&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;merchantEmail&amp;gt;bit-bucket@x-cart.com&amp;lt;/merchantEmail&amp;gt;&lt;br /&gt;
&amp;lt;forceTransactionType&amp;gt;&amp;lt;/forceTransactionType&amp;gt;&lt;br /&gt;
&amp;lt;/cart&amp;gt;&lt;br /&gt;
&amp;lt;returnUrl&amp;gt;https://example.com/xcart/payment/cc_xpc.php&amp;lt;/returnUrl&amp;gt;&lt;br /&gt;
&amp;lt;callbackUrl&amp;gt;https://example.com/xcart/payment/cc_xpc.php&amp;lt;/callbackUrl&amp;gt;&lt;br /&gt;
&amp;lt;language&amp;gt;ru&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;init&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | token&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string,32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Temporary payment token, expires immediately after the customer has submitted the cardholder data form&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string,32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A unique payment ID. Is used for all further requests to this payment through the API.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;token&amp;gt;41b2ef3b34698d4f6ed73151ae7307d2&amp;lt;/token&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
&amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Redirecting a customer to the cardholder data entering page==&lt;br /&gt;
&lt;br /&gt;
A POST form is created that sends data to the URL &amp;lt;XPayments_web_root&amp;gt;/payment.php; the form contains the following fields:&lt;br /&gt;
&lt;br /&gt;
* target - has the value &amp;quot;main&amp;quot;;&lt;br /&gt;
* token - uses the value from the token field received in the response to the payment initialisation request.&lt;br /&gt;
&lt;br /&gt;
Request protocol - HTTPS &amp;lt;br /&amp;gt;&lt;br /&gt;
The form must be sent by the POST method. All data must also be sent as POST variables.&lt;br /&gt;
&lt;br /&gt;
==Payment information request==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal get_info&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | refresh&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | 0 или 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A flag specifying that the data in X-Payments must be overwritten by the data from the payment gateway. By default - 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;refresh&amp;gt;0&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;get_info&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | [[#Payment status codes|Payment status code]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Human readable message containing the payment status&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | isFraudStatus&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | 0 or 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Means that the payment is blocked by the gateway, because the customer has not passed the gateway security check&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 3&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Payment currency code&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | amount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Payment total&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | authorized&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Authorized payment total&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | chargedAmount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Charged payment total&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | capturedAmount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Captured amount of the authorized amount&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | capturedAmountAvail&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that is authorized and can be captured&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | voidedAmount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that is authorized but voided&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | voidedAmountAvail&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that is authorized and can be voided&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | refundedAmount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that can be refunded&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | refundedAmountAvail&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that can be refunded&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | fraudAuthorized&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A part of the authorized amount that was blocked by the gateway because the customer had not passed the gateway security check&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | fraudCharged&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A part of the charged amount that was blocked by the gateway because the customer had not passed the gateway security check&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | authorizeInProgress&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A part of the authorized amount that is being handled by the gateway&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | chargeInProgress&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A part of the charged amount that is being handled by the gateway&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactionInProgress&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | 0 или 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Are there any payment transactions handled by the gateway?&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | capturedAmountAvailMin&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Minimum amount that can be captured from the authorized amount&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | capturedAmountAvailGateway&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that can be captured from the authorized amount through the gateway&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | capturedAmountAvailMinGateway&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Minimum amount that can be captured from the authorized amount through the gateway&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | voidedAmountAvailGateway&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that can be voided from the authorized amount through the gateway&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | refundedAmountAvailGateway&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that can be refunded from the authorized amount through the gateway&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | lastMessage&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Last gateway message&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | error&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Error code&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | error_message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Error message&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note|Fields ending in &amp;quot;Gateway&amp;quot; contain amounts that can be used in transactions through the gateway. For example, if a sum of $100 was authorized, and then a capture transaction was emulated for $100, the next refund operation will be available in the emulation mode only. The value of the refundedAmountAvailGateway field will be equal to 0.}}&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;2&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;message&amp;gt;Payment is authorized&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;isFraudStatus&amp;gt;&amp;lt;/isFraudStatus&amp;gt;&lt;br /&gt;
&amp;lt;currency&amp;gt;USD&amp;lt;/currency&amp;gt;&lt;br /&gt;
&amp;lt;amount&amp;gt;414.99&amp;lt;/amount&amp;gt;&lt;br /&gt;
&amp;lt;authorized&amp;gt;414.99&amp;lt;/authorized&amp;gt;&lt;br /&gt;
&amp;lt;chargedAmount&amp;gt;0.00&amp;lt;/chargedAmount&amp;gt;&lt;br /&gt;
&amp;lt;capturedAmount&amp;gt;0.00&amp;lt;/capturedAmount&amp;gt;&lt;br /&gt;
&amp;lt;capturedAmountAvail&amp;gt;414.99&amp;lt;/capturedAmountAvail&amp;gt;&lt;br /&gt;
&amp;lt;voidedAmount&amp;gt;0.00&amp;lt;/voidedAmount&amp;gt;&lt;br /&gt;
&amp;lt;voidedAmountAvail&amp;gt;414.99&amp;lt;/voidedAmountAvail&amp;gt;&lt;br /&gt;
&amp;lt;refundedAmount&amp;gt;0.00&amp;lt;/refundedAmount&amp;gt;&lt;br /&gt;
&amp;lt;refundedAmountAvail&amp;gt;0.00&amp;lt;/refundedAmountAvail&amp;gt;&lt;br /&gt;
&amp;lt;fraudAuthorized&amp;gt;0.00&amp;lt;/fraudAuthorized&amp;gt;&lt;br /&gt;
&amp;lt;fraudCharged&amp;gt;0.00&amp;lt;/fraudCharged&amp;gt;&lt;br /&gt;
&amp;lt;authorizeInProgress&amp;gt;0.00&amp;lt;/authorizeInProgress&amp;gt;&lt;br /&gt;
&amp;lt;chargeInProgress&amp;gt;0.00&amp;lt;/chargeInProgress&amp;gt;&lt;br /&gt;
&amp;lt;transactionInProgress&amp;gt;&amp;lt;/transactionInProgress&amp;gt;&lt;br /&gt;
&amp;lt;capturedAmountAvailMin&amp;gt;0.00&amp;lt;/capturedAmountAvailMin&amp;gt;&lt;br /&gt;
&amp;lt;capturedAmountAvailGateway&amp;gt;414.99&amp;lt;/capturedAmountAvailGateway&amp;gt;&lt;br /&gt;
&amp;lt;capturedAmountAvailMinGateway&amp;gt;0.00&amp;lt;/capturedAmountAvailMinGateway&amp;gt;&lt;br /&gt;
&amp;lt;voidedAmountAvailGateway&amp;gt;414.99&amp;lt;/voidedAmountAvailGateway&amp;gt;&lt;br /&gt;
&amp;lt;refundedAmountAvailGateway&amp;gt;0.00&amp;lt;/refundedAmountAvailGateway&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;8e67e0da23ce7ed451b2c1adbbd7373c&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;lastMessage&amp;gt;Success&amp;lt;/lastMessage&amp;gt;&lt;br /&gt;
&amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
&amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Detailed payment and transaction information request==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal get_additional_info&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A unique payment ID received in the payment initialisation request response&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;get_additional_info&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Payment information request response&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Transaction list&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/date&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 11&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Transaction date (Unix timestamp)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Transaction name&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Transaction status&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Gateway transaction message&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/total&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Transaction amount and currency&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/txnid&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Gateway transaction unique ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/payment_status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | The payment status after the transaction&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/fields&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Transaction additional fields list&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/fields/name&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Field name&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/fields/name&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Field value&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/cardValidation &amp;lt;br /&amp;gt;(API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container for Address validation system (AVS)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/cardValidation/avs_z &amp;lt;br /&amp;gt;(API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Flag for AVS ZIP-code (&amp;quot;0&amp;quot; - unknown, &amp;quot;1&amp;quot; - matches, &amp;quot;2&amp;quot; - does not match)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/cardValidation/avs_c (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Flag for AVS cardholder name (&amp;quot;0&amp;quot; - unknown, &amp;quot;1&amp;quot; - matches, &amp;quot;2&amp;quot; - does not match)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/cardValidation/avs_a (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Flag for AVS street address (&amp;quot;0&amp;quot; - unknown, &amp;quot;1&amp;quot; - matches, &amp;quot;2&amp;quot; - does not match)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/cardValidation/cvv (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Flag for CVV/CVV2/CVD (&amp;quot;0&amp;quot; - unknown, &amp;quot;1&amp;quot; - matches, &amp;quot;2&amp;quot; - does not match)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/maskedCardData (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container for Credit Card details (which are allowed to store and display by PA-DSS)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/maskedCardData/first6 (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | First six digits of the credit card number&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/maskedCardData/last4 (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Last four digits of the credit card number&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/maskedCardData/type (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Credit card type: VISA, MC, AMEX, etc&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/maskedCardData/expire_month (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Credit card expiration month&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/maskedCardData/expire_year (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Credit card expiration year&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;payment&amp;gt;&lt;br /&gt;
    &amp;lt;status&amp;gt;2&amp;lt;/status&amp;gt;&lt;br /&gt;
    &amp;lt;message&amp;gt;Payment is authorized&amp;lt;/message&amp;gt;&lt;br /&gt;
    &amp;lt;isFraudStatus&amp;gt;1&amp;lt;/isFraudStatus&amp;gt;&lt;br /&gt;
    &amp;lt;currency&amp;gt;USD&amp;lt;/currency&amp;gt;&lt;br /&gt;
    &amp;lt;amount&amp;gt;10.61&amp;lt;/amount&amp;gt;&lt;br /&gt;
    &amp;lt;authorized&amp;gt;10.61&amp;lt;/authorized&amp;gt;&lt;br /&gt;
    &amp;lt;chargedAmount&amp;gt;0.00&amp;lt;/chargedAmount&amp;gt;&lt;br /&gt;
    &amp;lt;capturedAmount&amp;gt;0.00&amp;lt;/capturedAmount&amp;gt;&lt;br /&gt;
    &amp;lt;capturedAmountAvail&amp;gt;10.61&amp;lt;/capturedAmountAvail&amp;gt;&lt;br /&gt;
    &amp;lt;voidedAmount&amp;gt;0.00&amp;lt;/voidedAmount&amp;gt;&lt;br /&gt;
    &amp;lt;voidedAmountAvail&amp;gt;10.61&amp;lt;/voidedAmountAvail&amp;gt;&lt;br /&gt;
    &amp;lt;refundedAmount&amp;gt;0.00&amp;lt;/refundedAmount&amp;gt;&lt;br /&gt;
    &amp;lt;refundedAmountAvail&amp;gt;0.00&amp;lt;/refundedAmountAvail&amp;gt;&lt;br /&gt;
    &amp;lt;fraudAuthorized&amp;gt;0.00&amp;lt;/fraudAuthorized&amp;gt;&lt;br /&gt;
    &amp;lt;fraudCharged&amp;gt;0.00&amp;lt;/fraudCharged&amp;gt;&lt;br /&gt;
    &amp;lt;authorizeInProgress&amp;gt;0.00&amp;lt;/authorizeInProgress&amp;gt;&lt;br /&gt;
    &amp;lt;chargeInProgress&amp;gt;0.00&amp;lt;/chargeInProgress&amp;gt;&lt;br /&gt;
    &amp;lt;advinfo&amp;gt;&lt;br /&gt;
      &amp;lt;Message&amp;gt;&amp;lt;/Message&amp;gt;&lt;br /&gt;
      &amp;lt;Response code&amp;gt;1&amp;lt;/Response&amp;gt;&lt;br /&gt;
      &amp;lt;txn_id&amp;gt;6583&amp;lt;/txn_id&amp;gt;&lt;br /&gt;
      &amp;lt;Authorization number&amp;gt;ET154399&amp;lt;/Authorization&amp;gt;&lt;br /&gt;
      &amp;lt;AVS&amp;gt;5: Cardholder name incorrect, billing address and postal code match&amp;lt;/AVS&amp;gt;&lt;br /&gt;
      &amp;lt;Bank message&amp;gt;Approved&amp;lt;/Bank&amp;gt;&lt;br /&gt;
      &amp;lt;Bank response code&amp;gt;100&amp;lt;/Bank&amp;gt;&lt;br /&gt;
      &amp;lt;CVV2&amp;gt;M: CVV2 / CVC2/CVD Match.&amp;lt;/CVV2&amp;gt;&lt;br /&gt;
      &amp;lt;Processing status&amp;gt;Transaction Normal&amp;lt;/Processing&amp;gt;&lt;br /&gt;
      &amp;lt;Transarmor Token&amp;gt;8393008475641111&amp;lt;/Transarmor&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] 702650&amp;gt;Distance from Device to Billing &amp;amp;gt; 1000km&amp;lt;/[Kount] 702650&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] 702656&amp;gt;Billing Country not equal to BIN Country (Visa/MC)&amp;lt;/[Kount] 702656&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] 702662&amp;gt;Billing Country not equal to Device Country&amp;lt;/[Kount] 702662&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] Auto&amp;gt;R&amp;lt;/[Kount] Auto&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] Errors&amp;gt;&amp;lt;/[Kount] Errors&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] Score&amp;gt;26&amp;lt;/[Kount] Score&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] Transaction ID&amp;gt;3Z7903KDCTT0&amp;lt;/[Kount] Transaction ID&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] Warnings&amp;gt;&amp;lt;/[Kount] Warnings&amp;gt;&lt;br /&gt;
    &amp;lt;/advinfo&amp;gt;&lt;br /&gt;
    &amp;lt;transactionInProgress&amp;gt;&amp;lt;/transactionInProgress&amp;gt;&lt;br /&gt;
    &amp;lt;capturedAmountAvailMin&amp;gt;0.00&amp;lt;/capturedAmountAvailMin&amp;gt;&lt;br /&gt;
    &amp;lt;capturedAmountAvailGateway&amp;gt;10.61&amp;lt;/capturedAmountAvailGateway&amp;gt;&lt;br /&gt;
    &amp;lt;capturedAmountAvailMinGateway&amp;gt;0.00&amp;lt;/capturedAmountAvailMinGateway&amp;gt;&lt;br /&gt;
    &amp;lt;voidedAmountAvailGateway&amp;gt;10.61&amp;lt;/voidedAmountAvailGateway&amp;gt;&lt;br /&gt;
    &amp;lt;refundedAmountAvailGateway&amp;gt;0.00&amp;lt;/refundedAmountAvailGateway&amp;gt;&lt;br /&gt;
    &amp;lt;cardValidation&amp;gt;&lt;br /&gt;
      &amp;lt;avs_z&amp;gt;1&amp;lt;/avs_z&amp;gt;&lt;br /&gt;
      &amp;lt;avs_c&amp;gt;2&amp;lt;/avs_c&amp;gt;&lt;br /&gt;
      &amp;lt;avs_a&amp;gt;1&amp;lt;/avs_a&amp;gt;&lt;br /&gt;
      &amp;lt;cvv&amp;gt;1&amp;lt;/cvv&amp;gt;&lt;br /&gt;
    &amp;lt;/cardValidation&amp;gt;&lt;br /&gt;
    &amp;lt;maskedCardData&amp;gt;&lt;br /&gt;
      &amp;lt;first6&amp;gt;411111&amp;lt;/first6&amp;gt;&lt;br /&gt;
      &amp;lt;last4&amp;gt;1111&amp;lt;/last4&amp;gt;&lt;br /&gt;
      &amp;lt;type&amp;gt;VISA&amp;lt;/type&amp;gt;&lt;br /&gt;
      &amp;lt;expire_month&amp;gt;03&amp;lt;/expire_month&amp;gt;&lt;br /&gt;
      &amp;lt;expire_year&amp;gt;2020&amp;lt;/expire_year&amp;gt;&lt;br /&gt;
    &amp;lt;/maskedCardData&amp;gt;&lt;br /&gt;
  &amp;lt;/payment&amp;gt;&lt;br /&gt;
  &amp;lt;transactions type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;date&amp;gt;1438098759&amp;lt;/date&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;Authorize&amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;status&amp;gt;Success&amp;lt;/status&amp;gt;&lt;br /&gt;
    &amp;lt;message&amp;gt;Transaction Normal&amp;lt;/message&amp;gt;&lt;br /&gt;
    &amp;lt;total&amp;gt;10.61 USD&amp;lt;/total&amp;gt;&lt;br /&gt;
    &amp;lt;txnid&amp;gt;57629270&amp;lt;/txnid&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Authorization number&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;ET154399&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;AVS&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;5: Cardholder name incorrect, billing address and postal code match&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Bank message&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;Approved&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Bank response code&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;100&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;CVV2&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;M: CVV2 / CVC2/CVD Match.&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Processing status&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;Transaction Normal&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Transarmor Token&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;8393008475641111&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;[Kount] 702650&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;Distance from Device to Billing &amp;amp;gt; 1000km&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;[Kount] 702656&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;Billing Country not equal to BIN Country (Visa/MC)&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;[Kount] 702662&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;Billing Country not equal to Device Country&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;[Kount] Auto&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;R&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;[Kount] Score&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;26&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;[Kount] Transaction ID&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;3Z7903KDCTT0&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;payment_status&amp;gt;Charged&amp;lt;/payment_status&amp;gt;&lt;br /&gt;
  &amp;lt;/transactions&amp;gt;&lt;br /&gt;
  &amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
  &amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
  &amp;lt;is_error_message&amp;gt;&amp;lt;/is_error_message&amp;gt;&lt;br /&gt;
  &amp;lt;version&amp;gt;2.2.0&amp;lt;/version&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
''The following pertains to API 1.5 and later:''&amp;lt;br /&amp;gt;&lt;br /&gt;
If the transaction was checked by Kount antifraud screening service, the &amp;quot;advinfo&amp;quot; and &amp;quot;tansaction/fields&amp;quot; containers contain information of kount results. The field names related to Kount start with the [Kount] prefix. The information can be extracted as follows:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| [Kount] %%%%%, where %%%%% is some number&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| triggered rule, the number is the number of this rule&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| [Kount] Auto&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| The status of the transaction in Kount (&amp;quot;R&amp;quot; - review, &amp;quot;D&amp;quot; - declined, &amp;quot;A&amp;quot; - approved)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| [Kount] Errors&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| list of errors (if any)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| [Kount] Warnings: &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| list of warnings (if any)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| [Kount] Score&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;|  Risk score&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| [Kount] Transaction ID&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| Transaction ID in Kount, can be used to display the direct link to the transaction in Kount, https://awc.test.kount.net/workflow/detail.html?id=%%%%%% for test mode or https://awc.kount.net/workflow/detail.html?id=%%%%%%, where %%%%% should be replaced with the transaction ID&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Capture authorized transaction request==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string,128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal capture&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | amount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | The amount to capture from the previously authorized transaction. By default equals the amount of the authorized transaction&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Request example ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;amount&amp;gt;50.00&amp;lt;/amount&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;capture&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | [[#Operation status codes|Operation status code]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Gateway transaction message&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Response example  &amp;lt;pre&amp;gt;&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;1&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
&amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Void authorized transaction request==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal void&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | amount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount to void of the authorized transaction. By default equals to the amount of the authorized transaction&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;amount&amp;gt;50.00&amp;lt;/amount&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;void&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | [[#Operation status codes|Operation status code]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Gateway transaction message&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;1&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
&amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Refund captured transaction request==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal capture&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | amount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount to be refunded to the customer of the previously captured transactions. By default equals to the amount of captured transactions&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;amount&amp;gt;50.00&amp;lt;/amount&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;refund&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | [[#Operation status codes|Operation status code]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Gateway transaction message&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;1&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
&amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Blocked by gateway transaction accept request (Accept)==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal accept&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;accept&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | [[#Operation status codes|Operation status code]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Gateway transaction message&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Response example  &amp;lt;pre&amp;gt;&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;1&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
&amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Blocked by gateway transaction decline request (Decline)==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal decline&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;decline&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | [[#Operation status codes|Operation status code]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Gateway transaction message&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;1&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
&amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Charge again transaction request (Tokenization)==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal recharge&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID which references the token that will be used to identify the payment on the side of the payment gateway&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | amount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | The amount for which the &amp;quot;saved&amp;quot; card is to be charged using the token from the previous successful transaction&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | description&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Description of the transaction&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | refId (supported by API 1.4 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Order ID in the online store&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;amount&amp;gt;50.00&amp;lt;/amount&amp;gt;&lt;br /&gt;
&amp;lt;description&amp;gt;Recurring payment for the new issue of Playboy&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;recharge&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;api_version&amp;gt;1.2&amp;lt;/api_version&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | [[#Operation status codes|Operation status code]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | data&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | array&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | data[status]&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Status of the new payment (See [[#Payment status codes|Payment status codes]])&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | data[transaction_id]&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | ID of the created payment for further references (capture/void/refund etc)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | data[error]&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | data[error_message]&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | data[is_error_message]&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Callback request with service payment information==&lt;br /&gt;
&lt;br /&gt;
This is a background request that X-Payments sends to the store after a payment has been completed and it’s result (accepted, declined, etc) has been received from the payment gateway.  The request is sent via HTTP POST to the callbackURL defined in the Payment initialisation request. Once this request has been sent, the customer is redirected back to the store.&lt;br /&gt;
&lt;br /&gt;
===POSTed data===&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Value'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | callback&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | fixed string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Identifies the callback request&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | (mixed)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string (MD5 hash)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A unique ID of the payment on the side of X-Payments&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | updateData&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | (mixed)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Encrypted response from X-Payments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
X-Payments does not expect a response from the store for this request; however, if the HTTP status of the response is not 200 OK, the request is considered failed, and a special notification is sent to the X-Payments admin. The store needs to decrypt the encrypted part of the response and update the order on its side accordingly. Once the updateData value has been decrypted, it is an XML document with the same structure as the [[X-Payments:API#Response_specification_2|response for Payment information request]].&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Check cart callback request==&lt;br /&gt;
&lt;br /&gt;
After the customer has submitted credit card data, right before sending this data to the payment gateway, X-Payments connects to the store to verify the cart total and contents.&lt;br /&gt;
&lt;br /&gt;
The HTTP POST request is sent to the '''callbackURL''' defined in the '''Payment initialisation request'''.&lt;br /&gt;
&lt;br /&gt;
===POSTed data===&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Value'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | check_cart&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | fixed string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Identifies the check-cart callback request&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | (mixed)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string (MD5 hash)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A unique ID of the payment on the side of X-Payments&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | refId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | (mixed)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Order ID (or any other reference) in the online store&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As of API v1.3, the store must respond to this callback request. The response must be an encrypted XML document (i.e. the same way as for other communication between the store and X-Payments).&lt;br /&gt;
&lt;br /&gt;
===Encrypted response for check-cart callback request===&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | fixed string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Should be “cart-changed” or &amp;quot;cart-not-changed&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A container with cart/order description. See [[X-Payments:API#Request_specification|Payment initialisation request specification]] for details. This container must be included for &amp;quot;status = cart-changed&amp;quot; and is not necessary for &amp;quot;status = cart-not-changed&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | saveCard&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the customer has chosen to save their card for future use (“Y” if the customer would like to save the card)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Communication between X-Payments iframe and the store==&lt;br /&gt;
&lt;br /&gt;
===Communication structure===&lt;br /&gt;
Communication between the online store (parent frame) and X-Payments (iframe) is implemented with the help of the javascript Window.postMessage method. Notifictions to both the sides represent stringified JSON formatted texts that consist of a service message (string) and an optional list of parameters:&lt;br /&gt;
:* '''height''': height of the iframe&lt;br /&gt;
:* '''error''': human readable message&lt;br /&gt;
:* '''type''': message type. X-Payments sends it as 2, which indicates that the online store should re-initialize the payment. In API v1.3 no other values are supported.&lt;br /&gt;
&lt;br /&gt;
===Messages sent from the online store to X-Payments===&lt;br /&gt;
'''Submit payment form'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Payments’ iframe does not have a Submit button, so instead of it the payment form should be submitted from the parent window by any kind of “Submit order” or “Place order” button at checkout. At the same time, the special message '''submitPaymentForm''' with no parameters should be sent.&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
{&lt;br /&gt;
:::message: 'submitPaymentForm',&lt;br /&gt;
:::params:  {}&lt;br /&gt;
}&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
===Messages sent from X-Payments to the online store===&lt;br /&gt;
'''Iframe is loaded and ready'''&amp;lt;br /&amp;gt;&lt;br /&gt;
The message ready notifies the parent window that the payment form is ready. The actual height of the iframe is included in the parameters, so the parent window (checkout page) can perform the necessary adjustments.&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
{&lt;br /&gt;
:::message: 'ready',&lt;br /&gt;
:::params: {&lt;br /&gt;
::::::height: $(document).height()&lt;br /&gt;
:::}&lt;br /&gt;
}&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Payment form submitted with an error'''&amp;lt;br /&amp;gt;&lt;br /&gt;
The message '''paymentFormSubmitError''' with no parameters is sent in the case of any validation error. This may be the case, for example, if  the customer’s credit card expiration date is in the past, or the credit card number does not match the card type (e.g. VISA, MasterCard), or when a required field has not been submitted (e.g. CVV2). Once the message '''paymentFormSubmitError''' with no parameters has been received, the store should not proceed to the next step of the checkout process, but should expect the payment form to be submitted again.&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
{&lt;br /&gt;
:::message: 'paymentFormSubmitError',&lt;br /&gt;
:::params: {}&lt;br /&gt;
}&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Internal error'''&amp;lt;br /&amp;gt;&lt;br /&gt;
The '''paymentFormSubmitError''' message with a special set of parameters is used to notify the store if something is wrong outside X-Payments, and X-Payments cannot do anything about it (for example, if the payment gateway has sent an unknown/unexpected piece of data).&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
{&lt;br /&gt;
:::message: 'paymentFormSubmitError',&lt;br /&gt;
:::params: {&lt;br /&gt;
::::::height: $(document).height(),&lt;br /&gt;
::::::error: 'Internal error',&lt;br /&gt;
::::::type: '2'&lt;br /&gt;
:::}&lt;br /&gt;
}&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Session is expired'''&amp;lt;br /&amp;gt;&lt;br /&gt;
For security reasons the length of the session is limited to 15 minutes. After this period the store has to re-initialize the payment. In this case X-Payments sends the '''paymentFormSubmitError''' message with the “Payment session expired” error.&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
{&lt;br /&gt;
:::message: 'paymentFormSubmitError',&lt;br /&gt;
:::params: {&lt;br /&gt;
::::::height: $(document).height(),&lt;br /&gt;
::::::error: 'Payment session expired',&lt;br /&gt;
::::::type: '2'&lt;br /&gt;
:::}&lt;br /&gt;
}&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Payment form in Iframe is submitted''' (supported by API v1.4 and later)&amp;lt;br /&amp;gt;&lt;br /&gt;
The message '''paymentFormSubmit''' notifies the parent window that the payment form has been submitted from the X-Payments side; for example, if a customer clicks the Enter key inside the iframe. Once the store receives this message, it should operate in the same way as though the customer has clicked the Place order button at checkout.&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
{&lt;br /&gt;
:::message: 'paymentFormSubmit',&lt;br /&gt;
:::params: {}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Appendix A. Status codes.==&lt;br /&gt;
&lt;br /&gt;
===Payment status codes===&lt;br /&gt;
: 1 - New&lt;br /&gt;
: 2 - Authorized&lt;br /&gt;
: 3 - Declined&lt;br /&gt;
: 4 - Charged&lt;br /&gt;
: 5 - Refunded&lt;br /&gt;
: 6 - Partially refunded&lt;br /&gt;
&lt;br /&gt;
===Operation status codes===&lt;br /&gt;
: 0 - transaction failed&lt;br /&gt;
: 1 - transaction is successful&lt;br /&gt;
: 2 - transaction is successful and is duplicate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [http://lu53.crtdev.local/%7Emixon/google-cache-w.php?q=/index.php?title=X-Cart:X-Payments_Connector X-Cart:X-Payments Connector]&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:Troubleshooting&amp;diff=673</id>
		<title>X-Payments:Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:Troubleshooting&amp;diff=673"/>
		<updated>2016-05-25T10:05:51Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* Sage Pay - Reason: 4020 : Information received from an Invalid IP address */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template:XP manual TOC}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===X-Payments 1.x installation process fails on a Windows server===&lt;br /&gt;
If X-Payments 1.x installation fails on a Windows server, try replacing the following line from install.php:&lt;br /&gt;
&amp;lt;pre&amp;gt;define('XP_DIR', rtrim(realpath(dirname(__FILE__)), XP_DS) . XP_DS);&amp;lt;/pre&amp;gt;&lt;br /&gt;
with this line:&lt;br /&gt;
&amp;lt;pre&amp;gt;define('XP_DIR', rtrim(dirname(__FILE__), XP_DS) . XP_DS);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Warning: require_once(/home/user/public_html/xpayments/lib/PDO.php)===&lt;br /&gt;
&lt;br /&gt;
I am trying to install the X-Payments module but receive the following error on step 2 of the installation process:&lt;br /&gt;
&lt;br /&gt;
Warning: require_once(/home/user/public_html/xpayments/lib/PDO.php) [function.require-once]: failed to open stream: No such file or directory in /home/user/public_html/xpayments/top.inc.PHP53.php on line 84&lt;br /&gt;
&lt;br /&gt;
Fatal error: require_once() [function.require]: Failed opening required '/home/user/public_html/xpayments/lib/PDO.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/user/public_html/xpayments/top.inc.PHP53.php on line 84&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Solution:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It looks like the problem is related to the current PHP configuration on your server.&lt;br /&gt;
&lt;br /&gt;
PHP is currently compiled with the necessary extensions:&lt;br /&gt;
&lt;br /&gt;
'--enable-pdo=shared'&lt;br /&gt;
'--with-pdo-mysql=shared'&lt;br /&gt;
'--with-pdo-sqlite=shared'&lt;br /&gt;
&lt;br /&gt;
However, X-Payments requires a bit different type of PHP configuration. PDO extension, as well as the MySQL PDO driver, needs to be installed as a shared module. In other words your php.ini file needs to be updated so that the PDO extensions will be loaded automatically when PHP runs:&lt;br /&gt;
&lt;br /&gt;
extension=php_pdo.so&lt;br /&gt;
extension=php_pdo_mysql.so&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* http://php.net/manual/en/pdo.installation.php&lt;br /&gt;
&lt;br /&gt;
Please share this info with your server administrator and ask them to make the necessary changes in your PHP configuration.&lt;br /&gt;
&lt;br /&gt;
===cron.php: X-Payments is using a non-secure protocol error===&lt;br /&gt;
&lt;br /&gt;
I have tried everything to get the x payments cron.php working, but it is not working and we are getting this error:&lt;br /&gt;
&lt;br /&gt;
ERROR [2012-25-06 12:23:01]&lt;br /&gt;
User: unknown; IP: unknown&lt;br /&gt;
Zone: Core&lt;br /&gt;
Code: NONSECURE_PROTOCOL (237)&lt;br /&gt;
X-Payments is using a non-secure protocol&lt;br /&gt;
&lt;br /&gt;
Affected systems: Core/Defender.php file (60:assert); Application.php file (133:check); /home/user/public_html/xpayments/cron.php file (26:run)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Solution:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wrong PHP binary is used to run cron.php script. You need to run cron.php using so called &amp;quot;CLI&amp;quot; version of PHP. Ask your hosting administrator to tell where PHP CLI is located on your server and configure cron to run cron.php script using PHP CLI version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Duplicate charges===&lt;br /&gt;
&lt;br /&gt;
X-Payments v1.0.5 may have this issue under certain circumstances (iFrame checkout option aka &amp;quot;Lite interface&amp;quot; is enabled). Reason is that customers don't see an obvious sign that their payment is being processed after they entered their details and clicked &amp;quot;Submit&amp;quot; button so they click once again. This may create duplicate charges with some payment processors supported by X-Payments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Solution:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apply below patches to&lt;br /&gt;
&lt;br /&gt;
1) front-end templates of your X-Payments:&lt;br /&gt;
&lt;br /&gt;
[[File:Xp.105.diff]]&lt;br /&gt;
&lt;br /&gt;
2) X-Cart connector:&lt;br /&gt;
&lt;br /&gt;
[[File:Xc.454.diff]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See how to apply patches at [http://help.x-cart.com/index.php?title=X-Cart:To_apply_a_patch_manually X-Cart:To apply a patch manually]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt;&lt;br /&gt;
You do not need to apply the above patches if your X-Payments version is not v1.0.5 and if you do not use iFrame checkout provided by X-Payments.&lt;br /&gt;
&lt;br /&gt;
===Empty or 404 page at Magento admin back-end===&lt;br /&gt;
&lt;br /&gt;
If you see empty or 404 page at System -&amp;gt; Configuration -&amp;gt; X-Payments connector after installation do the following:&lt;br /&gt;
&lt;br /&gt;
1) Clear cache:&lt;br /&gt;
System -&amp;gt; Cache Management&lt;br /&gt;
&lt;br /&gt;
2) Logout and login admin area again&lt;br /&gt;
&lt;br /&gt;
3) Then go to System -&amp;gt; Permissions -&amp;gt; Roles and click on &amp;quot;Administrators&amp;quot;, then in a popup/new window click &amp;quot;Save Role&amp;quot;.&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
===My store background image does not carry over to X-Payments checkout area template===&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Make sure if the background image parameter in your X-Payments checkout skin is set as direct URL to your store image.&lt;br /&gt;
&lt;br /&gt;
X-Payments checkout skin CSS file includes the following class used to display the header of integrated store pages:&lt;br /&gt;
&lt;br /&gt;
#header .line1 .logo {&lt;br /&gt;
background: url(&amp;quot;../../skin/artistictunes_car_tires/css/../images/custom/top_image1.jpg&amp;quot;) no-repeat scroll left top #000000;&lt;br /&gt;
height: 240px;&lt;br /&gt;
margin-left: 0;&lt;br /&gt;
padding-top: 0;&lt;br /&gt;
position: relative;&lt;br /&gt;
width: auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
For example, one of the possible solutions - modify the code of the generated CSS file, and change the default background image URL:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;../../skin/artistictunes_car_tires/css/../images/custom/top_image1.jpg&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to e.g. this one:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;https://yourshopdomain.com/xcart/skin/artistictunes_car_tires/images/custom/top_image1.jpg&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===X-Payments error (code: 843): Unallowed target===&lt;br /&gt;
&lt;br /&gt;
This type of error may appear in X-Cart versions prior to 4.5.0.&lt;br /&gt;
You see below error message and X-Payments log file entry when using &amp;quot;Test connection&amp;quot; and &amp;quot;Request payment methods&amp;quot; buttons:&lt;br /&gt;
&lt;br /&gt;
Error message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
- X-Payments error (code: 843): Unallowed target - &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
X-Payments log file entry:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
-----------------------------------&lt;br /&gt;
ERROR [2013-11-05 00:11:49]&lt;br /&gt;
User: shopping cart (%%%%%%%%%%%); IP: %%%%%%%%%%%%&lt;br /&gt;
Zone: Model&lt;br /&gt;
Code: TARGET_UNALLOWED (843)&lt;br /&gt;
Unallowed target - &amp;quot;&amp;quot;&lt;br /&gt;
-----------------------------------&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Solution:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if you have correct charset code specified in &amp;quot;Charset&amp;quot; field on X-Cart admin back-end -&amp;gt; Content -&amp;gt; Languages -&amp;gt; Your store language page.&lt;br /&gt;
See how to manage languages in X-Cart [[http://help.x-cart.com/index.php?title=X-Cart:Managing_Languages | here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sage Pay - Reason: 4020 : Information received from an Invalid IP address===&lt;br /&gt;
&lt;br /&gt;
This is caused by a wrong IP for callbacks set in your Sage Pay account.&lt;br /&gt;
&lt;br /&gt;
If you are using X-Payments Hosted plan (Basic, PRO or Multistore) you need to add the IP address '''98.142.211.162''' or '''104.200.145.25''' in your SagePay merchant backend on the Settings -&amp;gt; Valid IPs page.&lt;br /&gt;
&lt;br /&gt;
If you are using a downloadable X-Payments license - you need to enter IP address of the server where your X-Payments copy is deployed. See [[X-Payments:How_It_Works#Callback_from_X-Payments_to_the_store | this article]] to understand X-Payments callbacks.&lt;br /&gt;
&lt;br /&gt;
===No credit card form displayed when a customer pays===&lt;br /&gt;
&lt;br /&gt;
====Error message at checkout instead of credit card form====&lt;br /&gt;
&lt;br /&gt;
You've made a change in credit card form template at X-Payments side and now your checkout doesn't work?&lt;br /&gt;
&lt;br /&gt;
This is the most probable situation with such type of errors during checkout via X-Payments. You've made a change in X-Payments credit card form and forgot to approve it at X-Payments admin back-end. As result X-Payments cannot process credit cards as it sees some changes in templates, but they are not approved by you, i.e. the admin user. Such approval process is implemented in X-Payments for security reasons. See also [[X-Payments:User_manual#Customizing_the_Interface]]&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Go into admin back-end dashboard and '''log in as the main admin user''' and check if it displays a warning about &amp;quot;Payment interface files have been modified&amp;quot; like below&lt;br /&gt;
[[File:Warning_customer_interface_changed.png]]&lt;br /&gt;
&lt;br /&gt;
If yes, '''click &amp;quot;Approve&amp;quot; link''' in the warning text and everything is set now.&lt;br /&gt;
&lt;br /&gt;
====No payment methods are displayed in the X-Payments connector settings====&lt;br /&gt;
&lt;br /&gt;
So you deployed the configuration bundle copied from the X-Payments dashboard but do not see any payment methods in X-Cart on the X-Payments connector settings page.&amp;lt;br /&amp;gt;&lt;br /&gt;
Your checkout via X-Payments does not work either.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
Make sure the online store is enabled in the X-Payments Admin back end and has at least one payment method enabled for it.&lt;br /&gt;
&lt;br /&gt;
[[File:Xp_admin_backend.png|border|668px|]]&lt;br /&gt;
&lt;br /&gt;
====CyberSource Internal Error====&lt;br /&gt;
&lt;br /&gt;
Do you use CyberSource and get &amp;quot;Internal Error&amp;quot; on the checkout page along with below error within the X-Payments error log?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ERROR [2012-13-12 17:27:17]&lt;br /&gt;
User: unknown; IP: 68.184.224.121&lt;br /&gt;
Zone: Transport&lt;br /&gt;
Code: FILE_NOT_ACCESSIBLE (109)&lt;br /&gt;
File &amp;quot;Path/to/the/cybersource/security/key/txt/file&amp;quot; does not exist or is not readable&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Solution:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure you specified the right **server** path to the Cybersource key file on the [[X-Payments:CyberSourceSOAP | &amp;quot;CyberSource SOAP toolkit API&amp;quot; configuration page]], and it is readable by HTTP daemon on your X-Payments server.&lt;br /&gt;
&lt;br /&gt;
====You use Hosted X-Payments plans and run out of bandwidth====&lt;br /&gt;
&lt;br /&gt;
Congratulations! Your amount of transactions is impressive indeed! Most likely you used all bandwidth we provide for X-Payments Hosted accounts.&lt;br /&gt;
&lt;br /&gt;
'''Solution''':&lt;br /&gt;
&lt;br /&gt;
Please contact us using your HelpDesk account regarding the issue and we will consult you how to increase your bandwidth. Also, you should consider either upgrading to larger X-Payments Hosted plan or using X-Payments downloadable license that you can host yourself.&lt;br /&gt;
&lt;br /&gt;
====You use Hosted X-Payments plans and run out of disk space====&lt;br /&gt;
&lt;br /&gt;
One more reason for Hosted X-Payments plans can be you've run out of disk space we provide with every plan - check X-Payments folder at your X-Payments Hosted account (see [[X-Payments:X-Payments-Hosted-FAQ]]).&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Download logs files from your X-Payments Hosted account (see [[X-Payments:FAQ#Where_can_I_find_X-Payments_logs.3F]]) and remove them at X-Payments server to clear up some space.&lt;br /&gt;
&lt;br /&gt;
====Your integrated shopping cart does not pass all customer profile fields to X-Payments correctly====&lt;br /&gt;
&lt;br /&gt;
E.g. in X-Cart you can configure some vital for X-Payments customer profile fields (e.g. zipcode, address, email) as optional and your customers can miss them and do not fill in them with data during checkout. Thus X-Cart passes empty values for those data fields and X-Payments fails to process a transaction. X-Payments connector usually shows below warning&lt;br /&gt;
&lt;br /&gt;
[[File:Warning_profile_fields_XP_connector.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Either make such customer profile fields mandatory for checkout in your cart or customize your cart connector for X-Payments to pass non-empty values if they should not be mandatory for your checkout routine and customers can leave such profile fields empty.&lt;br /&gt;
&lt;br /&gt;
====PayPal PRO integration does not work in X-Cart 4.x====&lt;br /&gt;
&lt;br /&gt;
You followed [http://help.x-cart.com/index.php?title=X-Cart:Adding_and_enabling_PayPal_payment_methods_in_X-Cart Adding and enabling PayPal payment methods in X-Cart] and [[X-Payments:Configuring_PayPal_payment_modules_in_X-Payments]], made sure all configuration settings are set correctly, but PayPal PRO still does not work for you and you see &amp;quot;Internal error&amp;quot; message when you use X-Payments in iFrame mode or see &amp;quot;Internal error (The merchantEmail is missing or incorrect)&amp;quot; error message when X-Payments is configured as a separate page in your X-Cart checkout routine.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
PayPal module in X-Cart v4.x refers to &amp;quot;orders department email address&amp;quot; at General settings/Company options/Company emails section. You need to have a valid email address in that setting to fix the issue.&lt;br /&gt;
&lt;br /&gt;
====X-Cart isn't Synchronizing PayPal Payments PRO payment methods from X-Payments====&lt;br /&gt;
&lt;br /&gt;
Trying to update payment processor on the back end of the store in the X-Payments Connector. In the backend of the X-Payments Admin, there is a new payment method enabled- PayPal Payments Pro. Virtual Merchant will no longer be used. See screenshot in the attachment.&lt;br /&gt;
&lt;br /&gt;
On the backend of the site, once I try to Synchronize Payment Methods, the screen quickly shows options available to sync the new payment method. I have options to &amp;quot;set orders for...&amp;quot; then the options quickly disappear. There is a screenshot attached.&lt;br /&gt;
&lt;br /&gt;
So with that, once I try to synchronize, the system won't allow me. The old payment method still remains (although it hasn't been deleted in the X-Payment Admin Backend) but the new method SHOULD appear once they are synchronized, showing TWO payment methods on the backend of the store, with the option for me to enable either one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
X-Cart 4 have some restrictions of PayPal usage, so that you need to first add PayPal Pro methods inside X-Cart and configure them using the same credentials like in X-Payments. Re-sync methods after that and you'll see the PayPal.&lt;br /&gt;
&lt;br /&gt;
====There are connection problems between your shopping cart and X-Payments at the time when a customer pays====&lt;br /&gt;
&lt;br /&gt;
Your cart cannot connect to X-Payments some times and your customers see &amp;quot;Internal error&amp;quot; displayed.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Make sure your cart server can connect to X-Payments server at all times (especially during your site high load times of a day).&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Callback to online store is failed&amp;quot; notification and now all credit card transactions are failing===&lt;br /&gt;
&lt;br /&gt;
You receive below notifications from X-Payments&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;quot;Callback to online store is failed. This notification has been sent by X-Payments installation at 'www.mysite.com'&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and now all credit card transactions are failing and the credit card fields for secure checkout on your website are missing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Most likely you regenerated [[X-Payments:Encryption_keys | encryption codes in X-Payments]] but neglected to update the information in X-Cart, hence the credit card fields are not loading when the customer is attempting to use a credit card for payment.&lt;br /&gt;
&lt;br /&gt;
To remedy this go into X-Payments, copy the new encryption codes and paste them into X-Cart in the appropriate fields (Payment Methods → Credit Card → X-Payments connector module settings, see [http://help.x-cart.com/index.php?title=X-Cart:X-Payments_Connector#Configuring_X-Payments_Connector Configuring X-Payments Connector]).&lt;br /&gt;
&lt;br /&gt;
===Fatal error: Access to undeclared static property: XPay_Model_Base_Module::$this===&lt;br /&gt;
&lt;br /&gt;
You started to see error messages like below instead of working X-Payments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
Fatal error: Access to undeclared static property: XPay_Model_Base_Module::$this in /xxxxxxxxxxx/lib/XPay/Model/Base/Module.php on line 153&lt;br /&gt;
or&lt;br /&gt;
Fatal error: Access to undeclared static property: XPay_Model_Base_Module::$this in /xxxxxxxxxxx/lib/XPay/Model/Base/Module.php on line 131&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
It is due to updating PHP to v 5.4.&lt;br /&gt;
&lt;br /&gt;
To fix the problem, in lines 131 and 153 of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xpayments_dir&amp;gt;/lib/XPay/Model/Base/Module.php&lt;br /&gt;
&lt;br /&gt;
change&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
self::$this-&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
$this-&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===My X-Payments doesn't store customers credit cards/X-Payments subscriptions module doesn't work===&lt;br /&gt;
&lt;br /&gt;
So &amp;quot;Store credit card&amp;quot; functionality or X-Payments Subscriptions module doesn't work in your shopping cart despite of you integrated it with X-Payments?&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
# Make sure you use X-Payments v2.x because X-Payments v1.x doesn't support this functionality.&lt;br /&gt;
# Make sure you use a payment gateway that supports so called &amp;quot;tokenization&amp;quot; in X-Payments v2.x - see the list of such payment gateways at [[X-Payments:Supported_payment_gateways]]. They have &amp;quot;+&amp;quot; in &amp;quot;Tokenization&amp;quot; column. &amp;quot;-&amp;quot; means tokenization is not supported for a payment gateway.&lt;br /&gt;
# So you do use X-Payments v2.x and a payment gateway that supports tokenization in X-Payments? Please make sure tokenization functionality is enabled for your payment gateway account at payment gateway side. Sometimes payment gateways call it differently, e.g. &amp;quot;vault&amp;quot;, &amp;quot;Transformer&amp;quot;, etc. If you are not sure - contact your payment gateway to enable tokenization for your payment gateway.&lt;br /&gt;
&lt;br /&gt;
===Customer CC expires in 2022 - X-Payments stops at 2020===&lt;br /&gt;
&lt;br /&gt;
We just had a customer call in. He could not check out because our X-Payments payment page would not allow him to enter the expiration year of 2022 for his credit card. Our X-Payments only goes up to 2020.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
You need to change YEAR_RANGE from 7 to 10 for example in file lib/XPay/View/Payment/Main.php&lt;br /&gt;
&lt;br /&gt;
// Years list range&lt;br /&gt;
&lt;br /&gt;
const YEAR_RANGE = 7&lt;br /&gt;
&lt;br /&gt;
===White screen or HTTP 500 Internal server error instead of admin dashboard===&lt;br /&gt;
&lt;br /&gt;
You see white screen after logging in X-Payments admin dashboard.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Some PHP packages contain a bug that causes &amp;quot;White screen&amp;quot; or HTTP 500 Internal server error when PHP operates with the database via PDO. If you experience such issue contact your hosting support referring to:&lt;br /&gt;
&lt;br /&gt;
https://bugs.php.net/bug.php?id=60825&lt;br /&gt;
https://bugs.php.net/bug.php?id=53716&lt;br /&gt;
&lt;br /&gt;
===Magento: cannot test module connection or payment methods cannot be imported===&lt;br /&gt;
&lt;br /&gt;
You copied all configuration data from X-Payments properly but in Magento admin you see below message when you click &amp;quot;Test module&amp;quot; button&lt;br /&gt;
Test transaction failed. Please check the X-Payment Connector settings and try again. If all options is ok review your X-Payments settings and make sure you have properly defined shopping cart properties.&lt;br /&gt;
&lt;br /&gt;
Or a message that payment methods cannot be imported when you click &amp;quot;Request payment methods&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Possible reason - you do not have a valid SSL certificate installed for your X-Payments. Self-signed SSL cannot pass libCurl validation and thus prevent connection between Magento and X-Payments, too. You need to install a valid SSL certificate at X-Payments server.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' users of our hosted X-Payments plans are safe since we provide SSL by default.&lt;br /&gt;
&lt;br /&gt;
===Google Chrome v41.0.2272.76 detects X-Payments v2.1 credit card form as a mobile site on desktops===&lt;br /&gt;
&lt;br /&gt;
After the update of the Google Chrome web browser to version 41.0.2272.76, the credit card form provided to your site by X-Payments v2.1 may be displayed incorrectly for Google Chrome users. &lt;br /&gt;
The problem behind this is that the value of the user-agent header sent by Chrome has changed, which causes X-Payments to identify the browser as running on a mobile device, even when, if fact, it is running on a PC. The result is that the credit card form is corrupted like on these screen shots:&lt;br /&gt;
&lt;br /&gt;
 - http://awesomescreenshot.com/0724kkas56&lt;br /&gt;
 - http://awesomescreenshot.com/04f4kkaq18&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
To fix the issue, you need to update the Mobile Detect library in your X-Payments installation so the list of supported user agents is relevant. For that you should replace the file&lt;br /&gt;
&amp;lt;xpayments-dir&amp;gt;/lib/MobileDetect.php with this one: https://drive.google.com/file/d/0B6p7sehSZL8_QUN6VmRVMHpxaFE/view?usp=sharing (should be done via SFTP, SSH, Control panel, etc.)&lt;br /&gt;
 &lt;br /&gt;
If you find it difficult to apply the changes yourself please contact our Tech Support team using https://secure.x-cart.com.&lt;br /&gt;
&lt;br /&gt;
===Trouble with credit card logos in iFrame template for X-Cart 5===&lt;br /&gt;
&lt;br /&gt;
You use X-Cart 5 integrated with X-Payments v2.x and see credit card logos displayed like [https://drive.google.com/a/x-cart.com/file/d/0B6p7sehSZL8_T1kyQ0RCNS1nWDA/view?usp=sharing this in checkout] using Mac Safari or iPad.&lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
&lt;br /&gt;
Replace files fast.css and xc5.css in folder &amp;lt;x-pay_dir&amp;gt;/public/templates/ with these:&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/a/x-cart.com/folderview?id=0B6p7sehSZL8_OUVTeUtCUkFjY2M&amp;amp;usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===My entire shop is run in an iFrame and X-Payments does not display &amp;quot;Pay&amp;quot; button===&lt;br /&gt;
&lt;br /&gt;
There is a special code in X-Payments that hides &amp;quot;Pay&amp;quot; button if it the payment form is shown inside iframe.&lt;br /&gt;
In your case the whole store is placed inside iframe and that triggers the special code.&lt;br /&gt;
Easiest workaround which will not affect other stores connected to the X-Payments is to edit the template file css (I presume you use default.css) and where&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
div.content div.buttonRow {&lt;br /&gt;
  margin: 35px auto;&lt;br /&gt;
  width: 400px;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you should add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
display: block !important;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e.g. after correction that code will look like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
div.content div.buttonRow {&lt;br /&gt;
  margin: 35px auto;&lt;br /&gt;
  width: 400px;&lt;br /&gt;
  display: block !important;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do not forget to approve the changes in the admin back-end afterwards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===X-Payments credit card form does not fit properly on Android tablet screen when used in iFrame in X-Cart 4 OPC===&lt;br /&gt;
&lt;br /&gt;
X-Payments credit card form is displayed as shown on [https://drive.google.com/file/d/0B6p7sehSZL8_ZDhac2JNVWxlQ1E/view?usp=sharing this screen shot].&lt;br /&gt;
&lt;br /&gt;
The reason is X-Cart 4 OPC shows desktop version of the site checkout while X-Payments shows mobile checkout template which is wider than needed for XC4 desktop OPC.&lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
&lt;br /&gt;
Apply [https://drive.google.com/file/d/0B6p7sehSZL8_c0JmYjhaRi1ITEE/view?usp=sharing this patch] to X-Payments connector files in your X-Cart 4.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to test payments via PayPal in X-Payments===&lt;br /&gt;
&lt;br /&gt;
There is a list of credit card numbers in the PayPal guides which many people assume can be used when processing credit card transactions through PayPal.  However, many of these card numbers have been blocked from PayPal system in one fashion or another (e.g. delay processing a lot so integrated software like X-Cart or Magento just fails to place a test transaction), so general advice is &amp;quot;don't use those card numbers&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In general, when testing credit card transactions with PayPal as the processor, it is recommended using a randomized credit card number.  The number&lt;br /&gt;
must have a valid BIN, a valid check digit, and must be the correct length for the card type, but aside from that, the card number can be random.  &lt;br /&gt;
You can get such random test credit card numbers at http://getcreditcardnumbers.com&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;The TxnID field is missing or incorrect&amp;quot; message after upgrading to a new connector version in Magento===&lt;br /&gt;
&lt;br /&gt;
If after upgrading Magento connector to a new version and placing a new order you see an error message &amp;quot;The txnID field is missing or incorrect&amp;quot; instead of successful &amp;quot;Thank you for your order&amp;quot; page you need to clean/purge Magento's cache in your shop in the admin back-end. Consult with Magento user manual how to do that.&lt;br /&gt;
&lt;br /&gt;
===Browser warning about wrong SSL certificate pops up===&lt;br /&gt;
&lt;br /&gt;
If your browser shows a pop-up with warning about SSL certificate every time you test a transaction via X-Payments - this means your store installation has self-made/dummy SSL certificate. It is fine during testing, but you need to upgrade it to a real SSL certificate when your site goes live. &lt;br /&gt;
During testing just add that SSL certificate to exclusions in your browser in order not to see that warning every time you place a test transaction via X-Payments. This won't help you to hide that message from your shoppers though. The warning is not shown by a browser if a real SSL certificate is used.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;X-Payments tried to notify the store about updates in payment but failed&amp;quot; notification===&lt;br /&gt;
&lt;br /&gt;
You receive notifications that say &amp;quot;X-Payments tried to notify the store about updates in payment but failed ...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
They mean X-Payments callback requests have failed because of timeout or because your online shop site is not reachable by X-Payments.&lt;br /&gt;
&lt;br /&gt;
In the 1st case the store didn't respond within 15 seconds coded by default in X-Payments, but the logs from the side of the store for these requests say, that the requests were received and processed with no errors. It means, that communication between the store and X-Payments actually works, but it takes to long for the store to respond. As a quick solution for this very reason it is recommended to increase the timeout limits in your X-Payments installation:&lt;br /&gt;
If X-Payments 2.x - in file lib/XPay/Model/Payment.php by changing &amp;quot;15&amp;quot; in a line of code that looks like to a bigger value (max 60):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$requestData-&amp;gt;setTimeout(15);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If X-Payments 3.x - in file config/config.ini.php in section [callback] change value of wait_timeout param:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[callback]&lt;br /&gt;
&lt;br /&gt;
; Wait timeout for callback requests to the shopping cart (in seconds)&lt;br /&gt;
wait_timeout=15&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you do not have access to your X-Payments installation code - contact vendors of the software by posting them a technical support ticket via https://secure.x-cart.com.&lt;br /&gt;
&lt;br /&gt;
But the right solution is to figure out why your web site does not respond to X-Payments callbacks within 15 seconds.&lt;br /&gt;
&lt;br /&gt;
In the 2nd case it might be firewall blocking X-Payments callback requests or your web shop was down for some time.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;No Payment Methods Available&amp;quot; message shown to a customer===&lt;br /&gt;
&lt;br /&gt;
A customer cannot place an order as he/she is displayed a message &amp;quot;No Payment Methods Available&amp;quot; at checkout and at the same time you see an error message &amp;quot;Data validation error, node &amp;quot;request&amp;quot;: String length (&amp;quot;266342&amp;quot;) exceeds the maximum allowed length for this node - &amp;quot;100000&amp;quot; in X-Payments error log file.&lt;br /&gt;
&lt;br /&gt;
'''Reason'''&lt;br /&gt;
&lt;br /&gt;
A shopper added too many line items (different products) to his/her cart (&amp;quot;too many&amp;quot; -  e.g. over a thousand) and as result data passed to X-Payments exceeds amount it is configured to accept for security reasons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
&lt;br /&gt;
1) a customer should divide his order in several with less number of line items and process them one by one.&lt;br /&gt;
&lt;br /&gt;
2) if you face to this issue too often you can increase amount of data allowed to be processed by X-Payments by changing value of constant REQUEST_MAX_LENGTH in X-Payments file lib/XPay/Transport/Request/Api.php, but we do not recommend to large value there for security reasons.&lt;br /&gt;
&lt;br /&gt;
===Payflow PRO currency issue===&lt;br /&gt;
&lt;br /&gt;
'''NOTE''': do not confuse this with PayPal Payments PRO (PayFlow API)! There is PayFlow PRO integration, too. We are talking about PayFlow PRO here.&lt;br /&gt;
&lt;br /&gt;
You need to process payments via PayFlow PRO in other currency than USD, but there is no way to change it. You configured integrated cart in e.g. CAD but X-Payments passes data to PayFlow PRO as USD. This is caused by features of PayFlow PRO API - no exact requirements about passing currency type to PayFlow PRO - sometimes it can be passed as &amp;quot;CUR&amp;quot;, sometimes as &amp;quot;CU&amp;quot;, etc depending on payment processor you have configured at PayFlow PRO back-end.&lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
&lt;br /&gt;
1) Switch to PayPal Payments Pro (Payflow API) integration instead of PayFlow PRO in X-Payments.&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
2) change code of X-Payments as follows:&lt;br /&gt;
in file lib/XPay/Module/PayflowPro.php find function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
private function getInitRequestBody(XPay_Transport_GatewayRequest $request)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the function find lines&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        $fields = array(&lt;br /&gt;
            'TRXTYPE'     =&amp;gt; XPay_Model_PaymentTransaction::SALE == $request-&amp;gt;action ? 'S' : 'A',&lt;br /&gt;
            'AMT'         =&amp;gt; $this-&amp;gt;preparePrice($request-&amp;gt;payment-&amp;gt;get('total')),&lt;br /&gt;
            'TAXAMT'      =&amp;gt; $this-&amp;gt;preparePrice($additionalData-&amp;gt;get('tax_cost')),&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and add a line of code&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            'CURRENCY'    =&amp;gt; $request-&amp;gt;payment-&amp;gt;get('currency'),&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to get something like &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            'TRXTYPE'     =&amp;gt; XPay_Model_PaymentTransaction::SALE == $request-&amp;gt;action ? 'S' : 'A',&lt;br /&gt;
            'CURRENCY'    =&amp;gt; $request-&amp;gt;payment-&amp;gt;get('currency'),&lt;br /&gt;
            'AMT'         =&amp;gt; $this-&amp;gt;preparePrice($request-&amp;gt;payment-&amp;gt;get('total')),&lt;br /&gt;
            'TAXAMT'      =&amp;gt; $this-&amp;gt;preparePrice($additionalData-&amp;gt;get('tax_cost')),&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above tweak will work if &amp;quot;PayPal&amp;quot; is configured as the gateway in your PayFlow PRO account.&lt;br /&gt;
&lt;br /&gt;
For others you should directly specify currency in format required by payment gateway.&lt;br /&gt;
&lt;br /&gt;
E.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'CURRENCY'    =&amp;gt; 'USD',&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===X-Cart 5 and Exception message: Shopping cart server returned wrong HTTP headers for callback.===&lt;br /&gt;
&lt;br /&gt;
You use X-Cart 5 and see below error message or error log entry at X-Cart 5 side:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Failed to send &amp;quot;check_cart&amp;quot; callback to the store &amp;quot;mydomain.com&amp;quot;&lt;br /&gt;
Url: https://www.example.com/cart.php?target=callback&amp;amp;action=callback&amp;amp;xpcBackReference=ABCDEFGHIJKL&lt;br /&gt;
Exception message: Shopping cart server returned wrong HTTP headers for callback.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Solution''':&lt;br /&gt;
&lt;br /&gt;
Most likely you try to test X-Payments with X-Cart 5 storefront closed. If so, in X-Cart 5 file etc/config.php find below piece of code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[storefront_options]&lt;br /&gt;
; Do not close target=callback for payments if storefront is closed&lt;br /&gt;
callback_opened = Off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and change &amp;quot;Off&amp;quot; to &amp;quot;On&amp;quot; there.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments User Manual]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:X-Payments-Hosted-FAQ&amp;diff=672</id>
		<title>X-Payments:X-Payments-Hosted-FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:X-Payments-Hosted-FAQ&amp;diff=672"/>
		<updated>2016-05-25T10:00:01Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* What do I need to put as &amp;quot;Callback IP&amp;quot;? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===What do I need to put as &amp;quot;Callback IP&amp;quot;?===&lt;br /&gt;
&lt;br /&gt;
If you use the X-Payments Hosted solution you should use IP address '''98.142.211.162''' if your account is based on X-Payments v1.x or v2.x or '''104.200.145.25''' if X-Payments v3.x&lt;br /&gt;
&lt;br /&gt;
===How to configure FTP client to connect to the yourdomain.x-checkout.com to access skins and logs?===&lt;br /&gt;
&lt;br /&gt;
You should use the details from the email received when your account was created:&lt;br /&gt;
&lt;br /&gt;
:* host: yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
:* user: skins@yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
:* password: the one that you've received &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please make sure that the &amp;quot;Explicit FTP over TLS&amp;quot; mode is used. This is required because plain text authentication is not allowed for PCI compliance.&lt;br /&gt;
&lt;br /&gt;
Instructions for FileZilla FTP Client:&lt;br /&gt;
&lt;br /&gt;
# Start FileZilla&lt;br /&gt;
# Go to File -&amp;gt; Site Manager&lt;br /&gt;
# Click New site&lt;br /&gt;
# Enter the connection settings:&lt;br /&gt;
#* Host: yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Port: leave blank &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Protocol: FTP - File Transfer Protocol &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Encryption: Require explict FTP over TLS &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Logon type: Normal &amp;lt;br /&amp;gt;&lt;br /&gt;
#* user: skins@yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
#* password: the one that you've received &amp;lt;br /&amp;gt;[[File:Filezilla.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
# Click the Connect button&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments User Manual]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:X-Payments-Hosted-FAQ&amp;diff=671</id>
		<title>X-Payments:X-Payments-Hosted-FAQ</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:X-Payments-Hosted-FAQ&amp;diff=671"/>
		<updated>2016-05-25T09:59:33Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* What do I need to put as &amp;quot;Callback IP&amp;quot;? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===What do I need to put as &amp;quot;Callback IP&amp;quot;?===&lt;br /&gt;
&lt;br /&gt;
If you use the X-Payments Hosted solution you should use IP address 98.142.211.162 if your account is based on X-Payments v1.x or v2.x or 104.200.145.25 if X-Payments v3.x&lt;br /&gt;
&lt;br /&gt;
===How to configure FTP client to connect to the yourdomain.x-checkout.com to access skins and logs?===&lt;br /&gt;
&lt;br /&gt;
You should use the details from the email received when your account was created:&lt;br /&gt;
&lt;br /&gt;
:* host: yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
:* user: skins@yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
:* password: the one that you've received &amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please make sure that the &amp;quot;Explicit FTP over TLS&amp;quot; mode is used. This is required because plain text authentication is not allowed for PCI compliance.&lt;br /&gt;
&lt;br /&gt;
Instructions for FileZilla FTP Client:&lt;br /&gt;
&lt;br /&gt;
# Start FileZilla&lt;br /&gt;
# Go to File -&amp;gt; Site Manager&lt;br /&gt;
# Click New site&lt;br /&gt;
# Enter the connection settings:&lt;br /&gt;
#* Host: yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Port: leave blank &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Protocol: FTP - File Transfer Protocol &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Encryption: Require explict FTP over TLS &amp;lt;br /&amp;gt;&lt;br /&gt;
#* Logon type: Normal &amp;lt;br /&amp;gt;&lt;br /&gt;
#* user: skins@yourdomain.x-checkout.com &amp;lt;br /&amp;gt;&lt;br /&gt;
#* password: the one that you've received &amp;lt;br /&amp;gt;[[File:Filezilla.png]]&amp;lt;br /&amp;gt;&lt;br /&gt;
# Click the Connect button&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments User Manual]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:How_It_Works&amp;diff=670</id>
		<title>X-Payments:How It Works</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:How_It_Works&amp;diff=670"/>
		<updated>2016-05-25T08:53:24Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{XP_manual_TOC}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==X-Payments flow via diagram==&lt;br /&gt;
:[[File:XP-diagram.png|700px|border]]&lt;br /&gt;
&lt;br /&gt;
===API Call===&lt;br /&gt;
&lt;br /&gt;
1) Store initiates an API call to X-Payments to create a payment (Created payments can be [[X-Payments:User_manual#Viewing_Payments|viewed]] on the 'Payments' page in X-Payments back end). At this step store sends to X-Payments all information about the customer (billing and shipping address) and the products being purchased (product quantities and cost). In addition to that, store instructs X-Payments as to which payment configuration should be used.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2) X-Payments validates this initial request from the store: checks whether the requested [[X-Payments:User_manual#Payment_Configurations|payment configuration]] is [[X-Payments:Managing store connections#Editing Online Store Details|active]], whether the payment currency passed on to X-Payments by the store matches the currency specified in the respective payment configuration in X-Payments, and makes some other internal checks; for instance, a check is conducted to ensure that the template files for the page where customers enter cardholder data have not been modified without approval by X-Payments admin. If everything is fine, X-Payments returns a [[X-Payments:API#Response_specification | payment &amp;quot;token&amp;quot;]] to the store (The token serves as a temporary identifier of the payment in X-Payments; it is generated as a result of the API call and is removed after the customer is redirected back to the store when the payment is completed). If a problem is detected, no token is sent to the store, and an internal error is generated in X-Payments. Detailed information about such errors can be found in the X-Payments and X-Cart logs:&amp;lt;br /&amp;gt;&lt;br /&gt;
* X-Payments: See the &amp;lt;u&amp;gt;&amp;lt;xpay-dir&amp;gt;/var/log/api/YYYY-MM-DD/&amp;lt;/u&amp;gt; directory&lt;br /&gt;
* X-Cart: See the &amp;lt;u&amp;gt;&amp;lt;xcart-dir&amp;gt;/var/log/x-errors_xpay_connector-YYMMDD.php&amp;lt;/u&amp;gt; file&lt;br /&gt;
&lt;br /&gt;
===Payment===&lt;br /&gt;
&lt;br /&gt;
3) Customer is redirected to the X-Payments secure page where the form for entering credit card details is located. If the iframe is used, this redirect is not visible to customer, as the form is embedded into the checkout page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4) Customer enters credit card details and submits the form. These details are sent to the payment gateway along with other data previously received by X-Payments (address details, products being purchased, etc).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
5) Payment gateway operates with the bank to charge the card (or authorize the funds in case of an &amp;quot;auth only&amp;quot; transaction) and sends back to X-Payments the information about the transaction.&lt;br /&gt;
&lt;br /&gt;
The log of communication between X-Payments and the payment gateway can be found in the &amp;lt;u&amp;gt;&amp;lt;xpay-dir&amp;gt;/var/log/payment/YYYY-MM-DD/&amp;lt;/u&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===Callback from gateway (PayPal) to X-Payments===&lt;br /&gt;
&lt;br /&gt;
6) Some payment gateways also send back to X-Payments an additional &amp;quot;callback&amp;quot; request. This &amp;quot;callback&amp;quot; request provides detailed information about the transaction and also helps to validate/confirm the transaction. Currently only PayPal Payments PRO operates in X-Payments in such a way. As an additional protection, X-Payments allows you to specify the IP addresses from which the gateway's callback requests can be received. Provided with a list of trusted Call-back IPs for PayPal, X-Payments will only accept &amp;quot;callback&amp;quot; requests coming from PayPal’s server and ignore all other requests coming from anywhere else, should such requests be made. The list of PayPal’s IP addresses can be found here: https://ppmts.custhelp.com/app/answers/detail/a_id/92&lt;br /&gt;
If you wish to use this additional protection, you can enter the necessary IP addresses into [[X-Payments:Configuring_PayPal_payment_modules_in_X-Payments#PayPalPaymentsProPayPalAPIconfsettings|PayPal payment configuration settings]] in X-Payments back end.&lt;br /&gt;
&lt;br /&gt;
The log of payment gateway callback request processing is saved to the &amp;lt;u&amp;gt;&amp;lt;xpay-dir&amp;gt;/var/log/callback/YYYY-MM-DD/&amp;lt;/u&amp;gt; directory.&lt;br /&gt;
&lt;br /&gt;
===Invoice===&lt;br /&gt;
&lt;br /&gt;
7) Customer is redirected back to the store where the Invoice page is displayed.&lt;br /&gt;
If the transaction is declined by the payment gateway for some reason, the error page is displayed. Additional information about the reasons of the transaction being declined can be found in the X-Payments admin back end on the 'Payment details' page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Callback from X-Payments to the store===&lt;br /&gt;
&lt;br /&gt;
8) Detailed information about the payment is sent to the store via a &amp;quot;callback&amp;quot; request.&lt;br /&gt;
The same functionality (&amp;quot;callback&amp;quot; requests) is used to notify the store if the payment has been changed via X-Payments admin back end; for example, if a secondary transaction took place ('Capture' or 'Void' for an authorized  transaction, 'Refund' for a charge).&lt;br /&gt;
&lt;br /&gt;
X-Cart allows additional protection for callback requests from X-Payments: thus you can specify the IP addresses for X-Payments callbacks in X-Payments connector module settings: http://help.x-cart.com/index.php?title=X-Cart:X-Payments_Connector. X-Cart will accept only those callback requests that come from the specified IP addresses, others will be ignored.&lt;br /&gt;
&lt;br /&gt;
'''Important''': On some server configurations the IP address from which the callback request comes may not match the IP of the server where X-Payments is installed as illustrated below:&lt;br /&gt;
&lt;br /&gt;
:[[File:XP-diagram1.png|700px|border]]&lt;br /&gt;
&lt;br /&gt;
Even if X-Payments is installed on the 172.18.0.3 IP address, and is accessible via web by it, the outgoing request is received from the &amp;quot;proxy&amp;quot; of 172.18.0.0. So, it is recommended to verify the IP address for outgoing HTTPS connections with your hosting provider.&lt;br /&gt;
&lt;br /&gt;
{{Note|If you use the '''X-Payments Hosted''' plan, you should use IP address '''98.142.211.162''' if your X-Payments account is v1.x or v2.x based or '''104.200.145.25''' if v3.x based.}}&lt;br /&gt;
&lt;br /&gt;
The log of the X-Payments callback requests processing is saved to the following locations:&amp;lt;br /&amp;gt;&lt;br /&gt;
* X-Cart: See the &amp;lt;u&amp;gt;&amp;lt;xcart-dir&amp;gt;/var/log/x-errors_xpay_connector-YYMMDD.php&amp;lt;/u&amp;gt; file if any error occurred.&lt;br /&gt;
* X-Payments: See the &amp;lt;u&amp;gt;&amp;lt;xpay-dir&amp;gt;/var/log/payment/YYYY-MM-DD/&amp;lt;/u&amp;gt; directory for the initial Authorize or Sale (Authorize and Capture at the same time or Auto settle) transaction and &amp;lt;u&amp;gt;&amp;lt;xpay-dir&amp;gt;/var/log/admin/YYYY-MM-DD/&amp;lt;/u&amp;gt; directory for the secondary Capture, Void or Refund transaction.&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments User Manual]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:Troubleshooting&amp;diff=632</id>
		<title>X-Payments:Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:Troubleshooting&amp;diff=632"/>
		<updated>2016-05-05T12:49:52Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* &amp;quot;X-Payments tried to notify the store about updates in payment but failed&amp;quot; notification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template:XP manual TOC}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===X-Payments 1.x installation process fails on a Windows server===&lt;br /&gt;
If X-Payments 1.x installation fails on a Windows server, try replacing the following line from install.php:&lt;br /&gt;
&amp;lt;pre&amp;gt;define('XP_DIR', rtrim(realpath(dirname(__FILE__)), XP_DS) . XP_DS);&amp;lt;/pre&amp;gt;&lt;br /&gt;
with this line:&lt;br /&gt;
&amp;lt;pre&amp;gt;define('XP_DIR', rtrim(dirname(__FILE__), XP_DS) . XP_DS);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Warning: require_once(/home/user/public_html/xpayments/lib/PDO.php)===&lt;br /&gt;
&lt;br /&gt;
I am trying to install the X-Payments module but receive the following error on step 2 of the installation process:&lt;br /&gt;
&lt;br /&gt;
Warning: require_once(/home/user/public_html/xpayments/lib/PDO.php) [function.require-once]: failed to open stream: No such file or directory in /home/user/public_html/xpayments/top.inc.PHP53.php on line 84&lt;br /&gt;
&lt;br /&gt;
Fatal error: require_once() [function.require]: Failed opening required '/home/user/public_html/xpayments/lib/PDO.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/user/public_html/xpayments/top.inc.PHP53.php on line 84&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Solution:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It looks like the problem is related to the current PHP configuration on your server.&lt;br /&gt;
&lt;br /&gt;
PHP is currently compiled with the necessary extensions:&lt;br /&gt;
&lt;br /&gt;
'--enable-pdo=shared'&lt;br /&gt;
'--with-pdo-mysql=shared'&lt;br /&gt;
'--with-pdo-sqlite=shared'&lt;br /&gt;
&lt;br /&gt;
However, X-Payments requires a bit different type of PHP configuration. PDO extension, as well as the MySQL PDO driver, needs to be installed as a shared module. In other words your php.ini file needs to be updated so that the PDO extensions will be loaded automatically when PHP runs:&lt;br /&gt;
&lt;br /&gt;
extension=php_pdo.so&lt;br /&gt;
extension=php_pdo_mysql.so&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* http://php.net/manual/en/pdo.installation.php&lt;br /&gt;
&lt;br /&gt;
Please share this info with your server administrator and ask them to make the necessary changes in your PHP configuration.&lt;br /&gt;
&lt;br /&gt;
===cron.php: X-Payments is using a non-secure protocol error===&lt;br /&gt;
&lt;br /&gt;
I have tried everything to get the x payments cron.php working, but it is not working and we are getting this error:&lt;br /&gt;
&lt;br /&gt;
ERROR [2012-25-06 12:23:01]&lt;br /&gt;
User: unknown; IP: unknown&lt;br /&gt;
Zone: Core&lt;br /&gt;
Code: NONSECURE_PROTOCOL (237)&lt;br /&gt;
X-Payments is using a non-secure protocol&lt;br /&gt;
&lt;br /&gt;
Affected systems: Core/Defender.php file (60:assert); Application.php file (133:check); /home/user/public_html/xpayments/cron.php file (26:run)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Solution:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wrong PHP binary is used to run cron.php script. You need to run cron.php using so called &amp;quot;CLI&amp;quot; version of PHP. Ask your hosting administrator to tell where PHP CLI is located on your server and configure cron to run cron.php script using PHP CLI version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Duplicate charges===&lt;br /&gt;
&lt;br /&gt;
X-Payments v1.0.5 may have this issue under certain circumstances (iFrame checkout option aka &amp;quot;Lite interface&amp;quot; is enabled). Reason is that customers don't see an obvious sign that their payment is being processed after they entered their details and clicked &amp;quot;Submit&amp;quot; button so they click once again. This may create duplicate charges with some payment processors supported by X-Payments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Solution:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apply below patches to&lt;br /&gt;
&lt;br /&gt;
1) front-end templates of your X-Payments:&lt;br /&gt;
&lt;br /&gt;
[[File:Xp.105.diff]]&lt;br /&gt;
&lt;br /&gt;
2) X-Cart connector:&lt;br /&gt;
&lt;br /&gt;
[[File:Xc.454.diff]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See how to apply patches at [http://help.x-cart.com/index.php?title=X-Cart:To_apply_a_patch_manually X-Cart:To apply a patch manually]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt;&lt;br /&gt;
You do not need to apply the above patches if your X-Payments version is not v1.0.5 and if you do not use iFrame checkout provided by X-Payments.&lt;br /&gt;
&lt;br /&gt;
===Empty or 404 page at Magento admin back-end===&lt;br /&gt;
&lt;br /&gt;
If you see empty or 404 page at System -&amp;gt; Configuration -&amp;gt; X-Payments connector after installation do the following:&lt;br /&gt;
&lt;br /&gt;
1) Clear cache:&lt;br /&gt;
System -&amp;gt; Cache Management&lt;br /&gt;
&lt;br /&gt;
2) Logout and login admin area again&lt;br /&gt;
&lt;br /&gt;
3) Then go to System -&amp;gt; Permissions -&amp;gt; Roles and click on &amp;quot;Administrators&amp;quot;, then in a popup/new window click &amp;quot;Save Role&amp;quot;.&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
===My store background image does not carry over to X-Payments checkout area template===&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Make sure if the background image parameter in your X-Payments checkout skin is set as direct URL to your store image.&lt;br /&gt;
&lt;br /&gt;
X-Payments checkout skin CSS file includes the following class used to display the header of integrated store pages:&lt;br /&gt;
&lt;br /&gt;
#header .line1 .logo {&lt;br /&gt;
background: url(&amp;quot;../../skin/artistictunes_car_tires/css/../images/custom/top_image1.jpg&amp;quot;) no-repeat scroll left top #000000;&lt;br /&gt;
height: 240px;&lt;br /&gt;
margin-left: 0;&lt;br /&gt;
padding-top: 0;&lt;br /&gt;
position: relative;&lt;br /&gt;
width: auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
For example, one of the possible solutions - modify the code of the generated CSS file, and change the default background image URL:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;../../skin/artistictunes_car_tires/css/../images/custom/top_image1.jpg&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to e.g. this one:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;https://yourshopdomain.com/xcart/skin/artistictunes_car_tires/images/custom/top_image1.jpg&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===X-Payments error (code: 843): Unallowed target===&lt;br /&gt;
&lt;br /&gt;
This type of error may appear in X-Cart versions prior to 4.5.0.&lt;br /&gt;
You see below error message and X-Payments log file entry when using &amp;quot;Test connection&amp;quot; and &amp;quot;Request payment methods&amp;quot; buttons:&lt;br /&gt;
&lt;br /&gt;
Error message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
- X-Payments error (code: 843): Unallowed target - &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
X-Payments log file entry:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
-----------------------------------&lt;br /&gt;
ERROR [2013-11-05 00:11:49]&lt;br /&gt;
User: shopping cart (%%%%%%%%%%%); IP: %%%%%%%%%%%%&lt;br /&gt;
Zone: Model&lt;br /&gt;
Code: TARGET_UNALLOWED (843)&lt;br /&gt;
Unallowed target - &amp;quot;&amp;quot;&lt;br /&gt;
-----------------------------------&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Solution:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if you have correct charset code specified in &amp;quot;Charset&amp;quot; field on X-Cart admin back-end -&amp;gt; Content -&amp;gt; Languages -&amp;gt; Your store language page.&lt;br /&gt;
See how to manage languages in X-Cart [[http://help.x-cart.com/index.php?title=X-Cart:Managing_Languages | here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sage Pay - Reason: 4020 : Information received from an Invalid IP address===&lt;br /&gt;
&lt;br /&gt;
This is caused by a wrong IP for callbacks set in your Sage Pay account.&lt;br /&gt;
&lt;br /&gt;
If you are using X-Payments Hosted plan (Basic, PRO or Multistore) you need to add the IP address of 98.142.211.162 in your SagePay merchant backend on the Settings -&amp;gt; Valid IPs page.&lt;br /&gt;
&lt;br /&gt;
If you are using a downloadable X-Payments license - you need to enter IP address of the server where your X-Payments copy is deployed. See [[X-Payments:How_It_Works#Callback_from_X-Payments_to_the_store | this article]] to understand X-Payments callbacks.&lt;br /&gt;
&lt;br /&gt;
===No credit card form displayed when a customer pays===&lt;br /&gt;
&lt;br /&gt;
====Error message at checkout instead of credit card form====&lt;br /&gt;
&lt;br /&gt;
You've made a change in credit card form template at X-Payments side and now your checkout doesn't work?&lt;br /&gt;
&lt;br /&gt;
This is the most probable situation with such type of errors during checkout via X-Payments. You've made a change in X-Payments credit card form and forgot to approve it at X-Payments admin back-end. As result X-Payments cannot process credit cards as it sees some changes in templates, but they are not approved by you, i.e. the admin user. Such approval process is implemented in X-Payments for security reasons. See also [[X-Payments:User_manual#Customizing_the_Interface]]&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Go into admin back-end dashboard and '''log in as the main admin user''' and check if it displays a warning about &amp;quot;Payment interface files have been modified&amp;quot; like below&lt;br /&gt;
[[File:Warning_customer_interface_changed.png]]&lt;br /&gt;
&lt;br /&gt;
If yes, '''click &amp;quot;Approve&amp;quot; link''' in the warning text and everything is set now.&lt;br /&gt;
&lt;br /&gt;
====No payment methods are displayed in the X-Payments connector settings====&lt;br /&gt;
&lt;br /&gt;
So you deployed the configuration bundle copied from the X-Payments dashboard but do not see any payment methods in X-Cart on the X-Payments connector settings page.&amp;lt;br /&amp;gt;&lt;br /&gt;
Your checkout via X-Payments does not work either.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
Make sure the online store is enabled in the X-Payments Admin back end and has at least one payment method enabled for it.&lt;br /&gt;
&lt;br /&gt;
[[File:Xp_admin_backend.png|border|668px|]]&lt;br /&gt;
&lt;br /&gt;
====CyberSource Internal Error====&lt;br /&gt;
&lt;br /&gt;
Do you use CyberSource and get &amp;quot;Internal Error&amp;quot; on the checkout page along with below error within the X-Payments error log?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ERROR [2012-13-12 17:27:17]&lt;br /&gt;
User: unknown; IP: 68.184.224.121&lt;br /&gt;
Zone: Transport&lt;br /&gt;
Code: FILE_NOT_ACCESSIBLE (109)&lt;br /&gt;
File &amp;quot;Path/to/the/cybersource/security/key/txt/file&amp;quot; does not exist or is not readable&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Solution:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure you specified the right **server** path to the Cybersource key file on the [[X-Payments:CyberSourceSOAP | &amp;quot;CyberSource SOAP toolkit API&amp;quot; configuration page]], and it is readable by HTTP daemon on your X-Payments server.&lt;br /&gt;
&lt;br /&gt;
====You use Hosted X-Payments plans and run out of bandwidth====&lt;br /&gt;
&lt;br /&gt;
Congratulations! Your amount of transactions is impressive indeed! Most likely you used all bandwidth we provide for X-Payments Hosted accounts.&lt;br /&gt;
&lt;br /&gt;
'''Solution''':&lt;br /&gt;
&lt;br /&gt;
Please contact us using your HelpDesk account regarding the issue and we will consult you how to increase your bandwidth. Also, you should consider either upgrading to larger X-Payments Hosted plan or using X-Payments downloadable license that you can host yourself.&lt;br /&gt;
&lt;br /&gt;
====You use Hosted X-Payments plans and run out of disk space====&lt;br /&gt;
&lt;br /&gt;
One more reason for Hosted X-Payments plans can be you've run out of disk space we provide with every plan - check X-Payments folder at your X-Payments Hosted account (see [[X-Payments:X-Payments-Hosted-FAQ]]).&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Download logs files from your X-Payments Hosted account (see [[X-Payments:FAQ#Where_can_I_find_X-Payments_logs.3F]]) and remove them at X-Payments server to clear up some space.&lt;br /&gt;
&lt;br /&gt;
====Your integrated shopping cart does not pass all customer profile fields to X-Payments correctly====&lt;br /&gt;
&lt;br /&gt;
E.g. in X-Cart you can configure some vital for X-Payments customer profile fields (e.g. zipcode, address, email) as optional and your customers can miss them and do not fill in them with data during checkout. Thus X-Cart passes empty values for those data fields and X-Payments fails to process a transaction. X-Payments connector usually shows below warning&lt;br /&gt;
&lt;br /&gt;
[[File:Warning_profile_fields_XP_connector.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Either make such customer profile fields mandatory for checkout in your cart or customize your cart connector for X-Payments to pass non-empty values if they should not be mandatory for your checkout routine and customers can leave such profile fields empty.&lt;br /&gt;
&lt;br /&gt;
====PayPal PRO integration does not work in X-Cart 4.x====&lt;br /&gt;
&lt;br /&gt;
You followed [http://help.x-cart.com/index.php?title=X-Cart:Adding_and_enabling_PayPal_payment_methods_in_X-Cart Adding and enabling PayPal payment methods in X-Cart] and [[X-Payments:Configuring_PayPal_payment_modules_in_X-Payments]], made sure all configuration settings are set correctly, but PayPal PRO still does not work for you and you see &amp;quot;Internal error&amp;quot; message when you use X-Payments in iFrame mode or see &amp;quot;Internal error (The merchantEmail is missing or incorrect)&amp;quot; error message when X-Payments is configured as a separate page in your X-Cart checkout routine.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
PayPal module in X-Cart v4.x refers to &amp;quot;orders department email address&amp;quot; at General settings/Company options/Company emails section. You need to have a valid email address in that setting to fix the issue.&lt;br /&gt;
&lt;br /&gt;
====X-Cart isn't Synchronizing PayPal Payments PRO payment methods from X-Payments====&lt;br /&gt;
&lt;br /&gt;
Trying to update payment processor on the back end of the store in the X-Payments Connector. In the backend of the X-Payments Admin, there is a new payment method enabled- PayPal Payments Pro. Virtual Merchant will no longer be used. See screenshot in the attachment.&lt;br /&gt;
&lt;br /&gt;
On the backend of the site, once I try to Synchronize Payment Methods, the screen quickly shows options available to sync the new payment method. I have options to &amp;quot;set orders for...&amp;quot; then the options quickly disappear. There is a screenshot attached.&lt;br /&gt;
&lt;br /&gt;
So with that, once I try to synchronize, the system won't allow me. The old payment method still remains (although it hasn't been deleted in the X-Payment Admin Backend) but the new method SHOULD appear once they are synchronized, showing TWO payment methods on the backend of the store, with the option for me to enable either one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
X-Cart 4 have some restrictions of PayPal usage, so that you need to first add PayPal Pro methods inside X-Cart and configure them using the same credentials like in X-Payments. Re-sync methods after that and you'll see the PayPal.&lt;br /&gt;
&lt;br /&gt;
====There are connection problems between your shopping cart and X-Payments at the time when a customer pays====&lt;br /&gt;
&lt;br /&gt;
Your cart cannot connect to X-Payments some times and your customers see &amp;quot;Internal error&amp;quot; displayed.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Make sure your cart server can connect to X-Payments server at all times (especially during your site high load times of a day).&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Callback to online store is failed&amp;quot; notification and now all credit card transactions are failing===&lt;br /&gt;
&lt;br /&gt;
You receive below notifications from X-Payments&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;quot;Callback to online store is failed. This notification has been sent by X-Payments installation at 'www.mysite.com'&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and now all credit card transactions are failing and the credit card fields for secure checkout on your website are missing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Most likely you regenerated [[X-Payments:Encryption_keys | encryption codes in X-Payments]] but neglected to update the information in X-Cart, hence the credit card fields are not loading when the customer is attempting to use a credit card for payment.&lt;br /&gt;
&lt;br /&gt;
To remedy this go into X-Payments, copy the new encryption codes and paste them into X-Cart in the appropriate fields (Payment Methods → Credit Card → X-Payments connector module settings, see [http://help.x-cart.com/index.php?title=X-Cart:X-Payments_Connector#Configuring_X-Payments_Connector Configuring X-Payments Connector]).&lt;br /&gt;
&lt;br /&gt;
===Fatal error: Access to undeclared static property: XPay_Model_Base_Module::$this===&lt;br /&gt;
&lt;br /&gt;
You started to see error messages like below instead of working X-Payments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
Fatal error: Access to undeclared static property: XPay_Model_Base_Module::$this in /xxxxxxxxxxx/lib/XPay/Model/Base/Module.php on line 153&lt;br /&gt;
or&lt;br /&gt;
Fatal error: Access to undeclared static property: XPay_Model_Base_Module::$this in /xxxxxxxxxxx/lib/XPay/Model/Base/Module.php on line 131&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
It is due to updating PHP to v 5.4.&lt;br /&gt;
&lt;br /&gt;
To fix the problem, in lines 131 and 153 of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xpayments_dir&amp;gt;/lib/XPay/Model/Base/Module.php&lt;br /&gt;
&lt;br /&gt;
change&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
self::$this-&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
$this-&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===My X-Payments doesn't store customers credit cards/X-Payments subscriptions module doesn't work===&lt;br /&gt;
&lt;br /&gt;
So &amp;quot;Store credit card&amp;quot; functionality or X-Payments Subscriptions module doesn't work in your shopping cart despite of you integrated it with X-Payments?&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
# Make sure you use X-Payments v2.x because X-Payments v1.x doesn't support this functionality.&lt;br /&gt;
# Make sure you use a payment gateway that supports so called &amp;quot;tokenization&amp;quot; in X-Payments v2.x - see the list of such payment gateways at [[X-Payments:Supported_payment_gateways]]. They have &amp;quot;+&amp;quot; in &amp;quot;Tokenization&amp;quot; column. &amp;quot;-&amp;quot; means tokenization is not supported for a payment gateway.&lt;br /&gt;
# So you do use X-Payments v2.x and a payment gateway that supports tokenization in X-Payments? Please make sure tokenization functionality is enabled for your payment gateway account at payment gateway side. Sometimes payment gateways call it differently, e.g. &amp;quot;vault&amp;quot;, &amp;quot;Transformer&amp;quot;, etc. If you are not sure - contact your payment gateway to enable tokenization for your payment gateway.&lt;br /&gt;
&lt;br /&gt;
===Customer CC expires in 2022 - X-Payments stops at 2020===&lt;br /&gt;
&lt;br /&gt;
We just had a customer call in. He could not check out because our X-Payments payment page would not allow him to enter the expiration year of 2022 for his credit card. Our X-Payments only goes up to 2020.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
You need to change YEAR_RANGE from 7 to 10 for example in file lib/XPay/View/Payment/Main.php&lt;br /&gt;
&lt;br /&gt;
// Years list range&lt;br /&gt;
&lt;br /&gt;
const YEAR_RANGE = 7&lt;br /&gt;
&lt;br /&gt;
===White screen or HTTP 500 Internal server error instead of admin dashboard===&lt;br /&gt;
&lt;br /&gt;
You see white screen after logging in X-Payments admin dashboard.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Some PHP packages contain a bug that causes &amp;quot;White screen&amp;quot; or HTTP 500 Internal server error when PHP operates with the database via PDO. If you experience such issue contact your hosting support referring to:&lt;br /&gt;
&lt;br /&gt;
https://bugs.php.net/bug.php?id=60825&lt;br /&gt;
https://bugs.php.net/bug.php?id=53716&lt;br /&gt;
&lt;br /&gt;
===Magento: cannot test module connection or payment methods cannot be imported===&lt;br /&gt;
&lt;br /&gt;
You copied all configuration data from X-Payments properly but in Magento admin you see below message when you click &amp;quot;Test module&amp;quot; button&lt;br /&gt;
Test transaction failed. Please check the X-Payment Connector settings and try again. If all options is ok review your X-Payments settings and make sure you have properly defined shopping cart properties.&lt;br /&gt;
&lt;br /&gt;
Or a message that payment methods cannot be imported when you click &amp;quot;Request payment methods&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Possible reason - you do not have a valid SSL certificate installed for your X-Payments. Self-signed SSL cannot pass libCurl validation and thus prevent connection between Magento and X-Payments, too. You need to install a valid SSL certificate at X-Payments server.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' users of our hosted X-Payments plans are safe since we provide SSL by default.&lt;br /&gt;
&lt;br /&gt;
===Google Chrome v41.0.2272.76 detects X-Payments v2.1 credit card form as a mobile site on desktops===&lt;br /&gt;
&lt;br /&gt;
After the update of the Google Chrome web browser to version 41.0.2272.76, the credit card form provided to your site by X-Payments v2.1 may be displayed incorrectly for Google Chrome users. &lt;br /&gt;
The problem behind this is that the value of the user-agent header sent by Chrome has changed, which causes X-Payments to identify the browser as running on a mobile device, even when, if fact, it is running on a PC. The result is that the credit card form is corrupted like on these screen shots:&lt;br /&gt;
&lt;br /&gt;
 - http://awesomescreenshot.com/0724kkas56&lt;br /&gt;
 - http://awesomescreenshot.com/04f4kkaq18&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
To fix the issue, you need to update the Mobile Detect library in your X-Payments installation so the list of supported user agents is relevant. For that you should replace the file&lt;br /&gt;
&amp;lt;xpayments-dir&amp;gt;/lib/MobileDetect.php with this one: https://drive.google.com/file/d/0B6p7sehSZL8_QUN6VmRVMHpxaFE/view?usp=sharing (should be done via SFTP, SSH, Control panel, etc.)&lt;br /&gt;
 &lt;br /&gt;
If you find it difficult to apply the changes yourself please contact our Tech Support team using https://secure.x-cart.com.&lt;br /&gt;
&lt;br /&gt;
===Trouble with credit card logos in iFrame template for X-Cart 5===&lt;br /&gt;
&lt;br /&gt;
You use X-Cart 5 integrated with X-Payments v2.x and see credit card logos displayed like [https://drive.google.com/a/x-cart.com/file/d/0B6p7sehSZL8_T1kyQ0RCNS1nWDA/view?usp=sharing this in checkout] using Mac Safari or iPad.&lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
&lt;br /&gt;
Replace files fast.css and xc5.css in folder &amp;lt;x-pay_dir&amp;gt;/public/templates/ with these:&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/a/x-cart.com/folderview?id=0B6p7sehSZL8_OUVTeUtCUkFjY2M&amp;amp;usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===My entire shop is run in an iFrame and X-Payments does not display &amp;quot;Pay&amp;quot; button===&lt;br /&gt;
&lt;br /&gt;
There is a special code in X-Payments that hides &amp;quot;Pay&amp;quot; button if it the payment form is shown inside iframe.&lt;br /&gt;
In your case the whole store is placed inside iframe and that triggers the special code.&lt;br /&gt;
Easiest workaround which will not affect other stores connected to the X-Payments is to edit the template file css (I presume you use default.css) and where&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
div.content div.buttonRow {&lt;br /&gt;
  margin: 35px auto;&lt;br /&gt;
  width: 400px;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you should add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
display: block !important;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e.g. after correction that code will look like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
div.content div.buttonRow {&lt;br /&gt;
  margin: 35px auto;&lt;br /&gt;
  width: 400px;&lt;br /&gt;
  display: block !important;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do not forget to approve the changes in the admin back-end afterwards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===X-Payments credit card form does not fit properly on Android tablet screen when used in iFrame in X-Cart 4 OPC===&lt;br /&gt;
&lt;br /&gt;
X-Payments credit card form is displayed as shown on [https://drive.google.com/file/d/0B6p7sehSZL8_ZDhac2JNVWxlQ1E/view?usp=sharing this screen shot].&lt;br /&gt;
&lt;br /&gt;
The reason is X-Cart 4 OPC shows desktop version of the site checkout while X-Payments shows mobile checkout template which is wider than needed for XC4 desktop OPC.&lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
&lt;br /&gt;
Apply [https://drive.google.com/file/d/0B6p7sehSZL8_c0JmYjhaRi1ITEE/view?usp=sharing this patch] to X-Payments connector files in your X-Cart 4.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to test payments via PayPal in X-Payments===&lt;br /&gt;
&lt;br /&gt;
There is a list of credit card numbers in the PayPal guides which many people assume can be used when processing credit card transactions through PayPal.  However, many of these card numbers have been blocked from PayPal system in one fashion or another (e.g. delay processing a lot so integrated software like X-Cart or Magento just fails to place a test transaction), so general advice is &amp;quot;don't use those card numbers&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In general, when testing credit card transactions with PayPal as the processor, it is recommended using a randomized credit card number.  The number&lt;br /&gt;
must have a valid BIN, a valid check digit, and must be the correct length for the card type, but aside from that, the card number can be random.  &lt;br /&gt;
You can get such random test credit card numbers at http://getcreditcardnumbers.com&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;The TxnID field is missing or incorrect&amp;quot; message after upgrading to a new connector version in Magento===&lt;br /&gt;
&lt;br /&gt;
If after upgrading Magento connector to a new version and placing a new order you see an error message &amp;quot;The txnID field is missing or incorrect&amp;quot; instead of successful &amp;quot;Thank you for your order&amp;quot; page you need to clean/purge Magento's cache in your shop in the admin back-end. Consult with Magento user manual how to do that.&lt;br /&gt;
&lt;br /&gt;
===Browser warning about wrong SSL certificate pops up===&lt;br /&gt;
&lt;br /&gt;
If your browser shows a pop-up with warning about SSL certificate every time you test a transaction via X-Payments - this means your store installation has self-made/dummy SSL certificate. It is fine during testing, but you need to upgrade it to a real SSL certificate when your site goes live. &lt;br /&gt;
During testing just add that SSL certificate to exclusions in your browser in order not to see that warning every time you place a test transaction via X-Payments. This won't help you to hide that message from your shoppers though. The warning is not shown by a browser if a real SSL certificate is used.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;X-Payments tried to notify the store about updates in payment but failed&amp;quot; notification===&lt;br /&gt;
&lt;br /&gt;
You receive notifications that say &amp;quot;X-Payments tried to notify the store about updates in payment but failed ...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
They mean X-Payments callback requests have failed because of timeout or because your online shop site is not reachable by X-Payments.&lt;br /&gt;
&lt;br /&gt;
In the 1st case the store didn't respond within 15 seconds coded by default in X-Payments, but the logs from the side of the store for these requests say, that the requests were received and processed with no errors. It means, that communication between the store and X-Payments actually works, but it takes to long for the store to respond. As a quick solution for this very reason it is recommended to increase the timeout limits in your X-Payments installation:&lt;br /&gt;
If X-Payments 2.x - in file lib/XPay/Model/Payment.php by changing &amp;quot;15&amp;quot; in a line of code that looks like to a bigger value (max 60):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$requestData-&amp;gt;setTimeout(15);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If X-Payments 3.x - in file config/config.ini.php in section [callback] change value of wait_timeout param:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[callback]&lt;br /&gt;
&lt;br /&gt;
; Wait timeout for callback requests to the shopping cart (in seconds)&lt;br /&gt;
wait_timeout=15&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you do not have access to your X-Payments installation code - contact vendors of the software by posting them a technical support ticket via https://secure.x-cart.com.&lt;br /&gt;
&lt;br /&gt;
But the right solution is to figure out why your web site does not respond to X-Payments callbacks within 15 seconds.&lt;br /&gt;
&lt;br /&gt;
In the 2nd case it might be firewall blocking X-Payments callback requests or your web shop was down for some time.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;No Payment Methods Available&amp;quot; message shown to a customer===&lt;br /&gt;
&lt;br /&gt;
A customer cannot place an order as he/she is displayed a message &amp;quot;No Payment Methods Available&amp;quot; at checkout and at the same time you see an error message &amp;quot;Data validation error, node &amp;quot;request&amp;quot;: String length (&amp;quot;266342&amp;quot;) exceeds the maximum allowed length for this node - &amp;quot;100000&amp;quot; in X-Payments error log file.&lt;br /&gt;
&lt;br /&gt;
'''Reason'''&lt;br /&gt;
&lt;br /&gt;
A shopper added too many line items (different products) to his/her cart (&amp;quot;too many&amp;quot; -  e.g. over a thousand) and as result data passed to X-Payments exceeds amount it is configured to accept for security reasons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
&lt;br /&gt;
1) a customer should divide his order in several with less number of line items and process them one by one.&lt;br /&gt;
&lt;br /&gt;
2) if you face to this issue too often you can increase amount of data allowed to be processed by X-Payments by changing value of constant REQUEST_MAX_LENGTH in X-Payments file lib/XPay/Transport/Request/Api.php, but we do not recommend to large value there for security reasons.&lt;br /&gt;
&lt;br /&gt;
===Payflow PRO currency issue===&lt;br /&gt;
&lt;br /&gt;
'''NOTE''': do not confuse this with PayPal Payments PRO (PayFlow API)! There is PayFlow PRO integration, too. We are talking about PayFlow PRO here.&lt;br /&gt;
&lt;br /&gt;
You need to process payments via PayFlow PRO in other currency than USD, but there is no way to change it. You configured integrated cart in e.g. CAD but X-Payments passes data to PayFlow PRO as USD. This is caused by features of PayFlow PRO API - no exact requirements about passing currency type to PayFlow PRO - sometimes it can be passed as &amp;quot;CUR&amp;quot;, sometimes as &amp;quot;CU&amp;quot;, etc depending on payment processor you have configured at PayFlow PRO back-end.&lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
&lt;br /&gt;
1) Switch to PayPal Payments Pro (Payflow API) integration instead of PayFlow PRO in X-Payments.&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
2) change code of X-Payments as follows:&lt;br /&gt;
in file lib/XPay/Module/PayflowPro.php find function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
private function getInitRequestBody(XPay_Transport_GatewayRequest $request)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the function find lines&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        $fields = array(&lt;br /&gt;
            'TRXTYPE'     =&amp;gt; XPay_Model_PaymentTransaction::SALE == $request-&amp;gt;action ? 'S' : 'A',&lt;br /&gt;
            'AMT'         =&amp;gt; $this-&amp;gt;preparePrice($request-&amp;gt;payment-&amp;gt;get('total')),&lt;br /&gt;
            'TAXAMT'      =&amp;gt; $this-&amp;gt;preparePrice($additionalData-&amp;gt;get('tax_cost')),&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and add a line of code&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            'CURRENCY'    =&amp;gt; $request-&amp;gt;payment-&amp;gt;get('currency'),&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to get something like &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            'TRXTYPE'     =&amp;gt; XPay_Model_PaymentTransaction::SALE == $request-&amp;gt;action ? 'S' : 'A',&lt;br /&gt;
            'CURRENCY'    =&amp;gt; $request-&amp;gt;payment-&amp;gt;get('currency'),&lt;br /&gt;
            'AMT'         =&amp;gt; $this-&amp;gt;preparePrice($request-&amp;gt;payment-&amp;gt;get('total')),&lt;br /&gt;
            'TAXAMT'      =&amp;gt; $this-&amp;gt;preparePrice($additionalData-&amp;gt;get('tax_cost')),&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above tweak will work if &amp;quot;PayPal&amp;quot; is configured as the gateway in your PayFlow PRO account.&lt;br /&gt;
&lt;br /&gt;
For others you should directly specify currency in format required by payment gateway.&lt;br /&gt;
&lt;br /&gt;
E.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'CURRENCY'    =&amp;gt; 'USD',&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===X-Cart 5 and Exception message: Shopping cart server returned wrong HTTP headers for callback.===&lt;br /&gt;
&lt;br /&gt;
You use X-Cart 5 and see below error message or error log entry at X-Cart 5 side:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Failed to send &amp;quot;check_cart&amp;quot; callback to the store &amp;quot;mydomain.com&amp;quot;&lt;br /&gt;
Url: https://www.example.com/cart.php?target=callback&amp;amp;action=callback&amp;amp;xpcBackReference=ABCDEFGHIJKL&lt;br /&gt;
Exception message: Shopping cart server returned wrong HTTP headers for callback.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Solution''':&lt;br /&gt;
&lt;br /&gt;
Most likely you try to test X-Payments with X-Cart 5 storefront closed. If so, in X-Cart 5 file etc/config.php find below piece of code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[storefront_options]&lt;br /&gt;
; Do not close target=callback for payments if storefront is closed&lt;br /&gt;
callback_opened = Off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and change &amp;quot;Off&amp;quot; to &amp;quot;On&amp;quot; there.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments User Manual]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:Troubleshooting&amp;diff=631</id>
		<title>X-Payments:Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:Troubleshooting&amp;diff=631"/>
		<updated>2016-05-05T12:49:22Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* &amp;quot;X-Payments tried to notify the store about updates in payment but failed&amp;quot; notification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template:XP manual TOC}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===X-Payments 1.x installation process fails on a Windows server===&lt;br /&gt;
If X-Payments 1.x installation fails on a Windows server, try replacing the following line from install.php:&lt;br /&gt;
&amp;lt;pre&amp;gt;define('XP_DIR', rtrim(realpath(dirname(__FILE__)), XP_DS) . XP_DS);&amp;lt;/pre&amp;gt;&lt;br /&gt;
with this line:&lt;br /&gt;
&amp;lt;pre&amp;gt;define('XP_DIR', rtrim(dirname(__FILE__), XP_DS) . XP_DS);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Warning: require_once(/home/user/public_html/xpayments/lib/PDO.php)===&lt;br /&gt;
&lt;br /&gt;
I am trying to install the X-Payments module but receive the following error on step 2 of the installation process:&lt;br /&gt;
&lt;br /&gt;
Warning: require_once(/home/user/public_html/xpayments/lib/PDO.php) [function.require-once]: failed to open stream: No such file or directory in /home/user/public_html/xpayments/top.inc.PHP53.php on line 84&lt;br /&gt;
&lt;br /&gt;
Fatal error: require_once() [function.require]: Failed opening required '/home/user/public_html/xpayments/lib/PDO.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/user/public_html/xpayments/top.inc.PHP53.php on line 84&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Solution:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It looks like the problem is related to the current PHP configuration on your server.&lt;br /&gt;
&lt;br /&gt;
PHP is currently compiled with the necessary extensions:&lt;br /&gt;
&lt;br /&gt;
'--enable-pdo=shared'&lt;br /&gt;
'--with-pdo-mysql=shared'&lt;br /&gt;
'--with-pdo-sqlite=shared'&lt;br /&gt;
&lt;br /&gt;
However, X-Payments requires a bit different type of PHP configuration. PDO extension, as well as the MySQL PDO driver, needs to be installed as a shared module. In other words your php.ini file needs to be updated so that the PDO extensions will be loaded automatically when PHP runs:&lt;br /&gt;
&lt;br /&gt;
extension=php_pdo.so&lt;br /&gt;
extension=php_pdo_mysql.so&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* http://php.net/manual/en/pdo.installation.php&lt;br /&gt;
&lt;br /&gt;
Please share this info with your server administrator and ask them to make the necessary changes in your PHP configuration.&lt;br /&gt;
&lt;br /&gt;
===cron.php: X-Payments is using a non-secure protocol error===&lt;br /&gt;
&lt;br /&gt;
I have tried everything to get the x payments cron.php working, but it is not working and we are getting this error:&lt;br /&gt;
&lt;br /&gt;
ERROR [2012-25-06 12:23:01]&lt;br /&gt;
User: unknown; IP: unknown&lt;br /&gt;
Zone: Core&lt;br /&gt;
Code: NONSECURE_PROTOCOL (237)&lt;br /&gt;
X-Payments is using a non-secure protocol&lt;br /&gt;
&lt;br /&gt;
Affected systems: Core/Defender.php file (60:assert); Application.php file (133:check); /home/user/public_html/xpayments/cron.php file (26:run)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Solution:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wrong PHP binary is used to run cron.php script. You need to run cron.php using so called &amp;quot;CLI&amp;quot; version of PHP. Ask your hosting administrator to tell where PHP CLI is located on your server and configure cron to run cron.php script using PHP CLI version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Duplicate charges===&lt;br /&gt;
&lt;br /&gt;
X-Payments v1.0.5 may have this issue under certain circumstances (iFrame checkout option aka &amp;quot;Lite interface&amp;quot; is enabled). Reason is that customers don't see an obvious sign that their payment is being processed after they entered their details and clicked &amp;quot;Submit&amp;quot; button so they click once again. This may create duplicate charges with some payment processors supported by X-Payments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Solution:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apply below patches to&lt;br /&gt;
&lt;br /&gt;
1) front-end templates of your X-Payments:&lt;br /&gt;
&lt;br /&gt;
[[File:Xp.105.diff]]&lt;br /&gt;
&lt;br /&gt;
2) X-Cart connector:&lt;br /&gt;
&lt;br /&gt;
[[File:Xc.454.diff]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See how to apply patches at [http://help.x-cart.com/index.php?title=X-Cart:To_apply_a_patch_manually X-Cart:To apply a patch manually]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt;&lt;br /&gt;
You do not need to apply the above patches if your X-Payments version is not v1.0.5 and if you do not use iFrame checkout provided by X-Payments.&lt;br /&gt;
&lt;br /&gt;
===Empty or 404 page at Magento admin back-end===&lt;br /&gt;
&lt;br /&gt;
If you see empty or 404 page at System -&amp;gt; Configuration -&amp;gt; X-Payments connector after installation do the following:&lt;br /&gt;
&lt;br /&gt;
1) Clear cache:&lt;br /&gt;
System -&amp;gt; Cache Management&lt;br /&gt;
&lt;br /&gt;
2) Logout and login admin area again&lt;br /&gt;
&lt;br /&gt;
3) Then go to System -&amp;gt; Permissions -&amp;gt; Roles and click on &amp;quot;Administrators&amp;quot;, then in a popup/new window click &amp;quot;Save Role&amp;quot;.&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
===My store background image does not carry over to X-Payments checkout area template===&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Make sure if the background image parameter in your X-Payments checkout skin is set as direct URL to your store image.&lt;br /&gt;
&lt;br /&gt;
X-Payments checkout skin CSS file includes the following class used to display the header of integrated store pages:&lt;br /&gt;
&lt;br /&gt;
#header .line1 .logo {&lt;br /&gt;
background: url(&amp;quot;../../skin/artistictunes_car_tires/css/../images/custom/top_image1.jpg&amp;quot;) no-repeat scroll left top #000000;&lt;br /&gt;
height: 240px;&lt;br /&gt;
margin-left: 0;&lt;br /&gt;
padding-top: 0;&lt;br /&gt;
position: relative;&lt;br /&gt;
width: auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
For example, one of the possible solutions - modify the code of the generated CSS file, and change the default background image URL:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;../../skin/artistictunes_car_tires/css/../images/custom/top_image1.jpg&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to e.g. this one:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;https://yourshopdomain.com/xcart/skin/artistictunes_car_tires/images/custom/top_image1.jpg&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===X-Payments error (code: 843): Unallowed target===&lt;br /&gt;
&lt;br /&gt;
This type of error may appear in X-Cart versions prior to 4.5.0.&lt;br /&gt;
You see below error message and X-Payments log file entry when using &amp;quot;Test connection&amp;quot; and &amp;quot;Request payment methods&amp;quot; buttons:&lt;br /&gt;
&lt;br /&gt;
Error message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
- X-Payments error (code: 843): Unallowed target - &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
X-Payments log file entry:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
-----------------------------------&lt;br /&gt;
ERROR [2013-11-05 00:11:49]&lt;br /&gt;
User: shopping cart (%%%%%%%%%%%); IP: %%%%%%%%%%%%&lt;br /&gt;
Zone: Model&lt;br /&gt;
Code: TARGET_UNALLOWED (843)&lt;br /&gt;
Unallowed target - &amp;quot;&amp;quot;&lt;br /&gt;
-----------------------------------&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Solution:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if you have correct charset code specified in &amp;quot;Charset&amp;quot; field on X-Cart admin back-end -&amp;gt; Content -&amp;gt; Languages -&amp;gt; Your store language page.&lt;br /&gt;
See how to manage languages in X-Cart [[http://help.x-cart.com/index.php?title=X-Cart:Managing_Languages | here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sage Pay - Reason: 4020 : Information received from an Invalid IP address===&lt;br /&gt;
&lt;br /&gt;
This is caused by a wrong IP for callbacks set in your Sage Pay account.&lt;br /&gt;
&lt;br /&gt;
If you are using X-Payments Hosted plan (Basic, PRO or Multistore) you need to add the IP address of 98.142.211.162 in your SagePay merchant backend on the Settings -&amp;gt; Valid IPs page.&lt;br /&gt;
&lt;br /&gt;
If you are using a downloadable X-Payments license - you need to enter IP address of the server where your X-Payments copy is deployed. See [[X-Payments:How_It_Works#Callback_from_X-Payments_to_the_store | this article]] to understand X-Payments callbacks.&lt;br /&gt;
&lt;br /&gt;
===No credit card form displayed when a customer pays===&lt;br /&gt;
&lt;br /&gt;
====Error message at checkout instead of credit card form====&lt;br /&gt;
&lt;br /&gt;
You've made a change in credit card form template at X-Payments side and now your checkout doesn't work?&lt;br /&gt;
&lt;br /&gt;
This is the most probable situation with such type of errors during checkout via X-Payments. You've made a change in X-Payments credit card form and forgot to approve it at X-Payments admin back-end. As result X-Payments cannot process credit cards as it sees some changes in templates, but they are not approved by you, i.e. the admin user. Such approval process is implemented in X-Payments for security reasons. See also [[X-Payments:User_manual#Customizing_the_Interface]]&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Go into admin back-end dashboard and '''log in as the main admin user''' and check if it displays a warning about &amp;quot;Payment interface files have been modified&amp;quot; like below&lt;br /&gt;
[[File:Warning_customer_interface_changed.png]]&lt;br /&gt;
&lt;br /&gt;
If yes, '''click &amp;quot;Approve&amp;quot; link''' in the warning text and everything is set now.&lt;br /&gt;
&lt;br /&gt;
====No payment methods are displayed in the X-Payments connector settings====&lt;br /&gt;
&lt;br /&gt;
So you deployed the configuration bundle copied from the X-Payments dashboard but do not see any payment methods in X-Cart on the X-Payments connector settings page.&amp;lt;br /&amp;gt;&lt;br /&gt;
Your checkout via X-Payments does not work either.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
Make sure the online store is enabled in the X-Payments Admin back end and has at least one payment method enabled for it.&lt;br /&gt;
&lt;br /&gt;
[[File:Xp_admin_backend.png|border|668px|]]&lt;br /&gt;
&lt;br /&gt;
====CyberSource Internal Error====&lt;br /&gt;
&lt;br /&gt;
Do you use CyberSource and get &amp;quot;Internal Error&amp;quot; on the checkout page along with below error within the X-Payments error log?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ERROR [2012-13-12 17:27:17]&lt;br /&gt;
User: unknown; IP: 68.184.224.121&lt;br /&gt;
Zone: Transport&lt;br /&gt;
Code: FILE_NOT_ACCESSIBLE (109)&lt;br /&gt;
File &amp;quot;Path/to/the/cybersource/security/key/txt/file&amp;quot; does not exist or is not readable&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Solution:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure you specified the right **server** path to the Cybersource key file on the [[X-Payments:CyberSourceSOAP | &amp;quot;CyberSource SOAP toolkit API&amp;quot; configuration page]], and it is readable by HTTP daemon on your X-Payments server.&lt;br /&gt;
&lt;br /&gt;
====You use Hosted X-Payments plans and run out of bandwidth====&lt;br /&gt;
&lt;br /&gt;
Congratulations! Your amount of transactions is impressive indeed! Most likely you used all bandwidth we provide for X-Payments Hosted accounts.&lt;br /&gt;
&lt;br /&gt;
'''Solution''':&lt;br /&gt;
&lt;br /&gt;
Please contact us using your HelpDesk account regarding the issue and we will consult you how to increase your bandwidth. Also, you should consider either upgrading to larger X-Payments Hosted plan or using X-Payments downloadable license that you can host yourself.&lt;br /&gt;
&lt;br /&gt;
====You use Hosted X-Payments plans and run out of disk space====&lt;br /&gt;
&lt;br /&gt;
One more reason for Hosted X-Payments plans can be you've run out of disk space we provide with every plan - check X-Payments folder at your X-Payments Hosted account (see [[X-Payments:X-Payments-Hosted-FAQ]]).&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Download logs files from your X-Payments Hosted account (see [[X-Payments:FAQ#Where_can_I_find_X-Payments_logs.3F]]) and remove them at X-Payments server to clear up some space.&lt;br /&gt;
&lt;br /&gt;
====Your integrated shopping cart does not pass all customer profile fields to X-Payments correctly====&lt;br /&gt;
&lt;br /&gt;
E.g. in X-Cart you can configure some vital for X-Payments customer profile fields (e.g. zipcode, address, email) as optional and your customers can miss them and do not fill in them with data during checkout. Thus X-Cart passes empty values for those data fields and X-Payments fails to process a transaction. X-Payments connector usually shows below warning&lt;br /&gt;
&lt;br /&gt;
[[File:Warning_profile_fields_XP_connector.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Either make such customer profile fields mandatory for checkout in your cart or customize your cart connector for X-Payments to pass non-empty values if they should not be mandatory for your checkout routine and customers can leave such profile fields empty.&lt;br /&gt;
&lt;br /&gt;
====PayPal PRO integration does not work in X-Cart 4.x====&lt;br /&gt;
&lt;br /&gt;
You followed [http://help.x-cart.com/index.php?title=X-Cart:Adding_and_enabling_PayPal_payment_methods_in_X-Cart Adding and enabling PayPal payment methods in X-Cart] and [[X-Payments:Configuring_PayPal_payment_modules_in_X-Payments]], made sure all configuration settings are set correctly, but PayPal PRO still does not work for you and you see &amp;quot;Internal error&amp;quot; message when you use X-Payments in iFrame mode or see &amp;quot;Internal error (The merchantEmail is missing or incorrect)&amp;quot; error message when X-Payments is configured as a separate page in your X-Cart checkout routine.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
PayPal module in X-Cart v4.x refers to &amp;quot;orders department email address&amp;quot; at General settings/Company options/Company emails section. You need to have a valid email address in that setting to fix the issue.&lt;br /&gt;
&lt;br /&gt;
====X-Cart isn't Synchronizing PayPal Payments PRO payment methods from X-Payments====&lt;br /&gt;
&lt;br /&gt;
Trying to update payment processor on the back end of the store in the X-Payments Connector. In the backend of the X-Payments Admin, there is a new payment method enabled- PayPal Payments Pro. Virtual Merchant will no longer be used. See screenshot in the attachment.&lt;br /&gt;
&lt;br /&gt;
On the backend of the site, once I try to Synchronize Payment Methods, the screen quickly shows options available to sync the new payment method. I have options to &amp;quot;set orders for...&amp;quot; then the options quickly disappear. There is a screenshot attached.&lt;br /&gt;
&lt;br /&gt;
So with that, once I try to synchronize, the system won't allow me. The old payment method still remains (although it hasn't been deleted in the X-Payment Admin Backend) but the new method SHOULD appear once they are synchronized, showing TWO payment methods on the backend of the store, with the option for me to enable either one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
X-Cart 4 have some restrictions of PayPal usage, so that you need to first add PayPal Pro methods inside X-Cart and configure them using the same credentials like in X-Payments. Re-sync methods after that and you'll see the PayPal.&lt;br /&gt;
&lt;br /&gt;
====There are connection problems between your shopping cart and X-Payments at the time when a customer pays====&lt;br /&gt;
&lt;br /&gt;
Your cart cannot connect to X-Payments some times and your customers see &amp;quot;Internal error&amp;quot; displayed.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Make sure your cart server can connect to X-Payments server at all times (especially during your site high load times of a day).&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Callback to online store is failed&amp;quot; notification and now all credit card transactions are failing===&lt;br /&gt;
&lt;br /&gt;
You receive below notifications from X-Payments&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;quot;Callback to online store is failed. This notification has been sent by X-Payments installation at 'www.mysite.com'&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and now all credit card transactions are failing and the credit card fields for secure checkout on your website are missing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Most likely you regenerated [[X-Payments:Encryption_keys | encryption codes in X-Payments]] but neglected to update the information in X-Cart, hence the credit card fields are not loading when the customer is attempting to use a credit card for payment.&lt;br /&gt;
&lt;br /&gt;
To remedy this go into X-Payments, copy the new encryption codes and paste them into X-Cart in the appropriate fields (Payment Methods → Credit Card → X-Payments connector module settings, see [http://help.x-cart.com/index.php?title=X-Cart:X-Payments_Connector#Configuring_X-Payments_Connector Configuring X-Payments Connector]).&lt;br /&gt;
&lt;br /&gt;
===Fatal error: Access to undeclared static property: XPay_Model_Base_Module::$this===&lt;br /&gt;
&lt;br /&gt;
You started to see error messages like below instead of working X-Payments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
Fatal error: Access to undeclared static property: XPay_Model_Base_Module::$this in /xxxxxxxxxxx/lib/XPay/Model/Base/Module.php on line 153&lt;br /&gt;
or&lt;br /&gt;
Fatal error: Access to undeclared static property: XPay_Model_Base_Module::$this in /xxxxxxxxxxx/lib/XPay/Model/Base/Module.php on line 131&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
It is due to updating PHP to v 5.4.&lt;br /&gt;
&lt;br /&gt;
To fix the problem, in lines 131 and 153 of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xpayments_dir&amp;gt;/lib/XPay/Model/Base/Module.php&lt;br /&gt;
&lt;br /&gt;
change&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
self::$this-&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
$this-&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===My X-Payments doesn't store customers credit cards/X-Payments subscriptions module doesn't work===&lt;br /&gt;
&lt;br /&gt;
So &amp;quot;Store credit card&amp;quot; functionality or X-Payments Subscriptions module doesn't work in your shopping cart despite of you integrated it with X-Payments?&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
# Make sure you use X-Payments v2.x because X-Payments v1.x doesn't support this functionality.&lt;br /&gt;
# Make sure you use a payment gateway that supports so called &amp;quot;tokenization&amp;quot; in X-Payments v2.x - see the list of such payment gateways at [[X-Payments:Supported_payment_gateways]]. They have &amp;quot;+&amp;quot; in &amp;quot;Tokenization&amp;quot; column. &amp;quot;-&amp;quot; means tokenization is not supported for a payment gateway.&lt;br /&gt;
# So you do use X-Payments v2.x and a payment gateway that supports tokenization in X-Payments? Please make sure tokenization functionality is enabled for your payment gateway account at payment gateway side. Sometimes payment gateways call it differently, e.g. &amp;quot;vault&amp;quot;, &amp;quot;Transformer&amp;quot;, etc. If you are not sure - contact your payment gateway to enable tokenization for your payment gateway.&lt;br /&gt;
&lt;br /&gt;
===Customer CC expires in 2022 - X-Payments stops at 2020===&lt;br /&gt;
&lt;br /&gt;
We just had a customer call in. He could not check out because our X-Payments payment page would not allow him to enter the expiration year of 2022 for his credit card. Our X-Payments only goes up to 2020.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
You need to change YEAR_RANGE from 7 to 10 for example in file lib/XPay/View/Payment/Main.php&lt;br /&gt;
&lt;br /&gt;
// Years list range&lt;br /&gt;
&lt;br /&gt;
const YEAR_RANGE = 7&lt;br /&gt;
&lt;br /&gt;
===White screen or HTTP 500 Internal server error instead of admin dashboard===&lt;br /&gt;
&lt;br /&gt;
You see white screen after logging in X-Payments admin dashboard.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Some PHP packages contain a bug that causes &amp;quot;White screen&amp;quot; or HTTP 500 Internal server error when PHP operates with the database via PDO. If you experience such issue contact your hosting support referring to:&lt;br /&gt;
&lt;br /&gt;
https://bugs.php.net/bug.php?id=60825&lt;br /&gt;
https://bugs.php.net/bug.php?id=53716&lt;br /&gt;
&lt;br /&gt;
===Magento: cannot test module connection or payment methods cannot be imported===&lt;br /&gt;
&lt;br /&gt;
You copied all configuration data from X-Payments properly but in Magento admin you see below message when you click &amp;quot;Test module&amp;quot; button&lt;br /&gt;
Test transaction failed. Please check the X-Payment Connector settings and try again. If all options is ok review your X-Payments settings and make sure you have properly defined shopping cart properties.&lt;br /&gt;
&lt;br /&gt;
Or a message that payment methods cannot be imported when you click &amp;quot;Request payment methods&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Possible reason - you do not have a valid SSL certificate installed for your X-Payments. Self-signed SSL cannot pass libCurl validation and thus prevent connection between Magento and X-Payments, too. You need to install a valid SSL certificate at X-Payments server.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' users of our hosted X-Payments plans are safe since we provide SSL by default.&lt;br /&gt;
&lt;br /&gt;
===Google Chrome v41.0.2272.76 detects X-Payments v2.1 credit card form as a mobile site on desktops===&lt;br /&gt;
&lt;br /&gt;
After the update of the Google Chrome web browser to version 41.0.2272.76, the credit card form provided to your site by X-Payments v2.1 may be displayed incorrectly for Google Chrome users. &lt;br /&gt;
The problem behind this is that the value of the user-agent header sent by Chrome has changed, which causes X-Payments to identify the browser as running on a mobile device, even when, if fact, it is running on a PC. The result is that the credit card form is corrupted like on these screen shots:&lt;br /&gt;
&lt;br /&gt;
 - http://awesomescreenshot.com/0724kkas56&lt;br /&gt;
 - http://awesomescreenshot.com/04f4kkaq18&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
To fix the issue, you need to update the Mobile Detect library in your X-Payments installation so the list of supported user agents is relevant. For that you should replace the file&lt;br /&gt;
&amp;lt;xpayments-dir&amp;gt;/lib/MobileDetect.php with this one: https://drive.google.com/file/d/0B6p7sehSZL8_QUN6VmRVMHpxaFE/view?usp=sharing (should be done via SFTP, SSH, Control panel, etc.)&lt;br /&gt;
 &lt;br /&gt;
If you find it difficult to apply the changes yourself please contact our Tech Support team using https://secure.x-cart.com.&lt;br /&gt;
&lt;br /&gt;
===Trouble with credit card logos in iFrame template for X-Cart 5===&lt;br /&gt;
&lt;br /&gt;
You use X-Cart 5 integrated with X-Payments v2.x and see credit card logos displayed like [https://drive.google.com/a/x-cart.com/file/d/0B6p7sehSZL8_T1kyQ0RCNS1nWDA/view?usp=sharing this in checkout] using Mac Safari or iPad.&lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
&lt;br /&gt;
Replace files fast.css and xc5.css in folder &amp;lt;x-pay_dir&amp;gt;/public/templates/ with these:&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/a/x-cart.com/folderview?id=0B6p7sehSZL8_OUVTeUtCUkFjY2M&amp;amp;usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===My entire shop is run in an iFrame and X-Payments does not display &amp;quot;Pay&amp;quot; button===&lt;br /&gt;
&lt;br /&gt;
There is a special code in X-Payments that hides &amp;quot;Pay&amp;quot; button if it the payment form is shown inside iframe.&lt;br /&gt;
In your case the whole store is placed inside iframe and that triggers the special code.&lt;br /&gt;
Easiest workaround which will not affect other stores connected to the X-Payments is to edit the template file css (I presume you use default.css) and where&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
div.content div.buttonRow {&lt;br /&gt;
  margin: 35px auto;&lt;br /&gt;
  width: 400px;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you should add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
display: block !important;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e.g. after correction that code will look like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
div.content div.buttonRow {&lt;br /&gt;
  margin: 35px auto;&lt;br /&gt;
  width: 400px;&lt;br /&gt;
  display: block !important;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do not forget to approve the changes in the admin back-end afterwards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===X-Payments credit card form does not fit properly on Android tablet screen when used in iFrame in X-Cart 4 OPC===&lt;br /&gt;
&lt;br /&gt;
X-Payments credit card form is displayed as shown on [https://drive.google.com/file/d/0B6p7sehSZL8_ZDhac2JNVWxlQ1E/view?usp=sharing this screen shot].&lt;br /&gt;
&lt;br /&gt;
The reason is X-Cart 4 OPC shows desktop version of the site checkout while X-Payments shows mobile checkout template which is wider than needed for XC4 desktop OPC.&lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
&lt;br /&gt;
Apply [https://drive.google.com/file/d/0B6p7sehSZL8_c0JmYjhaRi1ITEE/view?usp=sharing this patch] to X-Payments connector files in your X-Cart 4.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to test payments via PayPal in X-Payments===&lt;br /&gt;
&lt;br /&gt;
There is a list of credit card numbers in the PayPal guides which many people assume can be used when processing credit card transactions through PayPal.  However, many of these card numbers have been blocked from PayPal system in one fashion or another (e.g. delay processing a lot so integrated software like X-Cart or Magento just fails to place a test transaction), so general advice is &amp;quot;don't use those card numbers&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In general, when testing credit card transactions with PayPal as the processor, it is recommended using a randomized credit card number.  The number&lt;br /&gt;
must have a valid BIN, a valid check digit, and must be the correct length for the card type, but aside from that, the card number can be random.  &lt;br /&gt;
You can get such random test credit card numbers at http://getcreditcardnumbers.com&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;The TxnID field is missing or incorrect&amp;quot; message after upgrading to a new connector version in Magento===&lt;br /&gt;
&lt;br /&gt;
If after upgrading Magento connector to a new version and placing a new order you see an error message &amp;quot;The txnID field is missing or incorrect&amp;quot; instead of successful &amp;quot;Thank you for your order&amp;quot; page you need to clean/purge Magento's cache in your shop in the admin back-end. Consult with Magento user manual how to do that.&lt;br /&gt;
&lt;br /&gt;
===Browser warning about wrong SSL certificate pops up===&lt;br /&gt;
&lt;br /&gt;
If your browser shows a pop-up with warning about SSL certificate every time you test a transaction via X-Payments - this means your store installation has self-made/dummy SSL certificate. It is fine during testing, but you need to upgrade it to a real SSL certificate when your site goes live. &lt;br /&gt;
During testing just add that SSL certificate to exclusions in your browser in order not to see that warning every time you place a test transaction via X-Payments. This won't help you to hide that message from your shoppers though. The warning is not shown by a browser if a real SSL certificate is used.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;X-Payments tried to notify the store about updates in payment but failed&amp;quot; notification===&lt;br /&gt;
&lt;br /&gt;
You receive notifications that say &amp;quot;X-Payments tried to notify the store about updates in payment but failed ...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
They mean X-Payments callback requests have failed because of timeout or because your online shop site is not reachable by X-Payments.&lt;br /&gt;
&lt;br /&gt;
In the 1st case the store didn't respond within 15 seconds coded by default in X-Payments, but the logs from the side of the store for these requests say, that the requests were received and processed with no errors. It means, that communication between the store and X-Payments actually works, but it takes to long for the store to respond. As a quick solution for this very reason it is recommended to increase the timeout limits in your X-Payments installation:&lt;br /&gt;
If X-Payments 2.x - in file lib/XPay/Model/Payment.php by changing &amp;quot;15&amp;quot; in a line of code that looks like to a bigger value (max 60):&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$requestData-&amp;gt;setTimeout(15);&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If X-Payments 3.x - in file config/config.ini.php in section [callback] change value of wait_timeout param:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
[callback]&lt;br /&gt;
&lt;br /&gt;
; Wait timeout for callback requests to the shopping cart (in seconds)&lt;br /&gt;
wait_timeout=15&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you do not have access to your X-Payments installation code - contact vendors of the software by posting them a technical support ticket via https://secure.x-cart.com.&lt;br /&gt;
&lt;br /&gt;
But the right solution is to figure out why your web site does not respond to X-Payments callbacks within 15 seconds.&lt;br /&gt;
&lt;br /&gt;
In the 2nd case it might be firewall blocking X-Payments callback requests or your web shop was down for some time.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;No Payment Methods Available&amp;quot; message shown to a customer===&lt;br /&gt;
&lt;br /&gt;
A customer cannot place an order as he/she is displayed a message &amp;quot;No Payment Methods Available&amp;quot; at checkout and at the same time you see an error message &amp;quot;Data validation error, node &amp;quot;request&amp;quot;: String length (&amp;quot;266342&amp;quot;) exceeds the maximum allowed length for this node - &amp;quot;100000&amp;quot; in X-Payments error log file.&lt;br /&gt;
&lt;br /&gt;
'''Reason'''&lt;br /&gt;
&lt;br /&gt;
A shopper added too many line items (different products) to his/her cart (&amp;quot;too many&amp;quot; -  e.g. over a thousand) and as result data passed to X-Payments exceeds amount it is configured to accept for security reasons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
&lt;br /&gt;
1) a customer should divide his order in several with less number of line items and process them one by one.&lt;br /&gt;
&lt;br /&gt;
2) if you face to this issue too often you can increase amount of data allowed to be processed by X-Payments by changing value of constant REQUEST_MAX_LENGTH in X-Payments file lib/XPay/Transport/Request/Api.php, but we do not recommend to large value there for security reasons.&lt;br /&gt;
&lt;br /&gt;
===Payflow PRO currency issue===&lt;br /&gt;
&lt;br /&gt;
'''NOTE''': do not confuse this with PayPal Payments PRO (PayFlow API)! There is PayFlow PRO integration, too. We are talking about PayFlow PRO here.&lt;br /&gt;
&lt;br /&gt;
You need to process payments via PayFlow PRO in other currency than USD, but there is no way to change it. You configured integrated cart in e.g. CAD but X-Payments passes data to PayFlow PRO as USD. This is caused by features of PayFlow PRO API - no exact requirements about passing currency type to PayFlow PRO - sometimes it can be passed as &amp;quot;CUR&amp;quot;, sometimes as &amp;quot;CU&amp;quot;, etc depending on payment processor you have configured at PayFlow PRO back-end.&lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
&lt;br /&gt;
1) Switch to PayPal Payments Pro (Payflow API) integration instead of PayFlow PRO in X-Payments.&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
2) change code of X-Payments as follows:&lt;br /&gt;
in file lib/XPay/Module/PayflowPro.php find function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
private function getInitRequestBody(XPay_Transport_GatewayRequest $request)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the function find lines&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        $fields = array(&lt;br /&gt;
            'TRXTYPE'     =&amp;gt; XPay_Model_PaymentTransaction::SALE == $request-&amp;gt;action ? 'S' : 'A',&lt;br /&gt;
            'AMT'         =&amp;gt; $this-&amp;gt;preparePrice($request-&amp;gt;payment-&amp;gt;get('total')),&lt;br /&gt;
            'TAXAMT'      =&amp;gt; $this-&amp;gt;preparePrice($additionalData-&amp;gt;get('tax_cost')),&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and add a line of code&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            'CURRENCY'    =&amp;gt; $request-&amp;gt;payment-&amp;gt;get('currency'),&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to get something like &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            'TRXTYPE'     =&amp;gt; XPay_Model_PaymentTransaction::SALE == $request-&amp;gt;action ? 'S' : 'A',&lt;br /&gt;
            'CURRENCY'    =&amp;gt; $request-&amp;gt;payment-&amp;gt;get('currency'),&lt;br /&gt;
            'AMT'         =&amp;gt; $this-&amp;gt;preparePrice($request-&amp;gt;payment-&amp;gt;get('total')),&lt;br /&gt;
            'TAXAMT'      =&amp;gt; $this-&amp;gt;preparePrice($additionalData-&amp;gt;get('tax_cost')),&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above tweak will work if &amp;quot;PayPal&amp;quot; is configured as the gateway in your PayFlow PRO account.&lt;br /&gt;
&lt;br /&gt;
For others you should directly specify currency in format required by payment gateway.&lt;br /&gt;
&lt;br /&gt;
E.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'CURRENCY'    =&amp;gt; 'USD',&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===X-Cart 5 and Exception message: Shopping cart server returned wrong HTTP headers for callback.===&lt;br /&gt;
&lt;br /&gt;
You use X-Cart 5 and see below error message or error log entry at X-Cart 5 side:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Failed to send &amp;quot;check_cart&amp;quot; callback to the store &amp;quot;mydomain.com&amp;quot;&lt;br /&gt;
Url: https://www.example.com/cart.php?target=callback&amp;amp;action=callback&amp;amp;xpcBackReference=ABCDEFGHIJKL&lt;br /&gt;
Exception message: Shopping cart server returned wrong HTTP headers for callback.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Solution''':&lt;br /&gt;
&lt;br /&gt;
Most likely you try to test X-Payments with X-Cart 5 storefront closed. If so, in X-Cart 5 file etc/config.php find below piece of code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[storefront_options]&lt;br /&gt;
; Do not close target=callback for payments if storefront is closed&lt;br /&gt;
callback_opened = Off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and change &amp;quot;Off&amp;quot; to &amp;quot;On&amp;quot; there.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments User Manual]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:Troubleshooting&amp;diff=630</id>
		<title>X-Payments:Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:Troubleshooting&amp;diff=630"/>
		<updated>2016-05-05T12:48:56Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* &amp;quot;X-Payments tried to notify the store about updates in payment but failed&amp;quot; notification */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;{{Template:XP manual TOC}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
&lt;br /&gt;
===X-Payments 1.x installation process fails on a Windows server===&lt;br /&gt;
If X-Payments 1.x installation fails on a Windows server, try replacing the following line from install.php:&lt;br /&gt;
&amp;lt;pre&amp;gt;define('XP_DIR', rtrim(realpath(dirname(__FILE__)), XP_DS) . XP_DS);&amp;lt;/pre&amp;gt;&lt;br /&gt;
with this line:&lt;br /&gt;
&amp;lt;pre&amp;gt;define('XP_DIR', rtrim(dirname(__FILE__), XP_DS) . XP_DS);&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Warning: require_once(/home/user/public_html/xpayments/lib/PDO.php)===&lt;br /&gt;
&lt;br /&gt;
I am trying to install the X-Payments module but receive the following error on step 2 of the installation process:&lt;br /&gt;
&lt;br /&gt;
Warning: require_once(/home/user/public_html/xpayments/lib/PDO.php) [function.require-once]: failed to open stream: No such file or directory in /home/user/public_html/xpayments/top.inc.PHP53.php on line 84&lt;br /&gt;
&lt;br /&gt;
Fatal error: require_once() [function.require]: Failed opening required '/home/user/public_html/xpayments/lib/PDO.php' (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/user/public_html/xpayments/top.inc.PHP53.php on line 84&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Solution:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It looks like the problem is related to the current PHP configuration on your server.&lt;br /&gt;
&lt;br /&gt;
PHP is currently compiled with the necessary extensions:&lt;br /&gt;
&lt;br /&gt;
'--enable-pdo=shared'&lt;br /&gt;
'--with-pdo-mysql=shared'&lt;br /&gt;
'--with-pdo-sqlite=shared'&lt;br /&gt;
&lt;br /&gt;
However, X-Payments requires a bit different type of PHP configuration. PDO extension, as well as the MySQL PDO driver, needs to be installed as a shared module. In other words your php.ini file needs to be updated so that the PDO extensions will be loaded automatically when PHP runs:&lt;br /&gt;
&lt;br /&gt;
extension=php_pdo.so&lt;br /&gt;
extension=php_pdo_mysql.so&lt;br /&gt;
&lt;br /&gt;
See also:&lt;br /&gt;
* http://php.net/manual/en/pdo.installation.php&lt;br /&gt;
&lt;br /&gt;
Please share this info with your server administrator and ask them to make the necessary changes in your PHP configuration.&lt;br /&gt;
&lt;br /&gt;
===cron.php: X-Payments is using a non-secure protocol error===&lt;br /&gt;
&lt;br /&gt;
I have tried everything to get the x payments cron.php working, but it is not working and we are getting this error:&lt;br /&gt;
&lt;br /&gt;
ERROR [2012-25-06 12:23:01]&lt;br /&gt;
User: unknown; IP: unknown&lt;br /&gt;
Zone: Core&lt;br /&gt;
Code: NONSECURE_PROTOCOL (237)&lt;br /&gt;
X-Payments is using a non-secure protocol&lt;br /&gt;
&lt;br /&gt;
Affected systems: Core/Defender.php file (60:assert); Application.php file (133:check); /home/user/public_html/xpayments/cron.php file (26:run)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Solution:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wrong PHP binary is used to run cron.php script. You need to run cron.php using so called &amp;quot;CLI&amp;quot; version of PHP. Ask your hosting administrator to tell where PHP CLI is located on your server and configure cron to run cron.php script using PHP CLI version.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Duplicate charges===&lt;br /&gt;
&lt;br /&gt;
X-Payments v1.0.5 may have this issue under certain circumstances (iFrame checkout option aka &amp;quot;Lite interface&amp;quot; is enabled). Reason is that customers don't see an obvious sign that their payment is being processed after they entered their details and clicked &amp;quot;Submit&amp;quot; button so they click once again. This may create duplicate charges with some payment processors supported by X-Payments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Solution:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Apply below patches to&lt;br /&gt;
&lt;br /&gt;
1) front-end templates of your X-Payments:&lt;br /&gt;
&lt;br /&gt;
[[File:Xp.105.diff]]&lt;br /&gt;
&lt;br /&gt;
2) X-Cart connector:&lt;br /&gt;
&lt;br /&gt;
[[File:Xc.454.diff]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
See how to apply patches at [http://help.x-cart.com/index.php?title=X-Cart:To_apply_a_patch_manually X-Cart:To apply a patch manually]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt;&lt;br /&gt;
You do not need to apply the above patches if your X-Payments version is not v1.0.5 and if you do not use iFrame checkout provided by X-Payments.&lt;br /&gt;
&lt;br /&gt;
===Empty or 404 page at Magento admin back-end===&lt;br /&gt;
&lt;br /&gt;
If you see empty or 404 page at System -&amp;gt; Configuration -&amp;gt; X-Payments connector after installation do the following:&lt;br /&gt;
&lt;br /&gt;
1) Clear cache:&lt;br /&gt;
System -&amp;gt; Cache Management&lt;br /&gt;
&lt;br /&gt;
2) Logout and login admin area again&lt;br /&gt;
&lt;br /&gt;
3) Then go to System -&amp;gt; Permissions -&amp;gt; Roles and click on &amp;quot;Administrators&amp;quot;, then in a popup/new window click &amp;quot;Save Role&amp;quot;.&lt;br /&gt;
That's it.&lt;br /&gt;
&lt;br /&gt;
===My store background image does not carry over to X-Payments checkout area template===&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Make sure if the background image parameter in your X-Payments checkout skin is set as direct URL to your store image.&lt;br /&gt;
&lt;br /&gt;
X-Payments checkout skin CSS file includes the following class used to display the header of integrated store pages:&lt;br /&gt;
&lt;br /&gt;
#header .line1 .logo {&lt;br /&gt;
background: url(&amp;quot;../../skin/artistictunes_car_tires/css/../images/custom/top_image1.jpg&amp;quot;) no-repeat scroll left top #000000;&lt;br /&gt;
height: 240px;&lt;br /&gt;
margin-left: 0;&lt;br /&gt;
padding-top: 0;&lt;br /&gt;
position: relative;&lt;br /&gt;
width: auto;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
For example, one of the possible solutions - modify the code of the generated CSS file, and change the default background image URL:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;../../skin/artistictunes_car_tires/css/../images/custom/top_image1.jpg&amp;quot;&lt;br /&gt;
&lt;br /&gt;
to e.g. this one:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;https://yourshopdomain.com/xcart/skin/artistictunes_car_tires/images/custom/top_image1.jpg&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===X-Payments error (code: 843): Unallowed target===&lt;br /&gt;
&lt;br /&gt;
This type of error may appear in X-Cart versions prior to 4.5.0.&lt;br /&gt;
You see below error message and X-Payments log file entry when using &amp;quot;Test connection&amp;quot; and &amp;quot;Request payment methods&amp;quot; buttons:&lt;br /&gt;
&lt;br /&gt;
Error message:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
- X-Payments error (code: 843): Unallowed target - &amp;quot;&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
X-Payments log file entry:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
-----------------------------------&lt;br /&gt;
ERROR [2013-11-05 00:11:49]&lt;br /&gt;
User: shopping cart (%%%%%%%%%%%); IP: %%%%%%%%%%%%&lt;br /&gt;
Zone: Model&lt;br /&gt;
Code: TARGET_UNALLOWED (843)&lt;br /&gt;
Unallowed target - &amp;quot;&amp;quot;&lt;br /&gt;
-----------------------------------&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Solution:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if you have correct charset code specified in &amp;quot;Charset&amp;quot; field on X-Cart admin back-end -&amp;gt; Content -&amp;gt; Languages -&amp;gt; Your store language page.&lt;br /&gt;
See how to manage languages in X-Cart [[http://help.x-cart.com/index.php?title=X-Cart:Managing_Languages | here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Sage Pay - Reason: 4020 : Information received from an Invalid IP address===&lt;br /&gt;
&lt;br /&gt;
This is caused by a wrong IP for callbacks set in your Sage Pay account.&lt;br /&gt;
&lt;br /&gt;
If you are using X-Payments Hosted plan (Basic, PRO or Multistore) you need to add the IP address of 98.142.211.162 in your SagePay merchant backend on the Settings -&amp;gt; Valid IPs page.&lt;br /&gt;
&lt;br /&gt;
If you are using a downloadable X-Payments license - you need to enter IP address of the server where your X-Payments copy is deployed. See [[X-Payments:How_It_Works#Callback_from_X-Payments_to_the_store | this article]] to understand X-Payments callbacks.&lt;br /&gt;
&lt;br /&gt;
===No credit card form displayed when a customer pays===&lt;br /&gt;
&lt;br /&gt;
====Error message at checkout instead of credit card form====&lt;br /&gt;
&lt;br /&gt;
You've made a change in credit card form template at X-Payments side and now your checkout doesn't work?&lt;br /&gt;
&lt;br /&gt;
This is the most probable situation with such type of errors during checkout via X-Payments. You've made a change in X-Payments credit card form and forgot to approve it at X-Payments admin back-end. As result X-Payments cannot process credit cards as it sees some changes in templates, but they are not approved by you, i.e. the admin user. Such approval process is implemented in X-Payments for security reasons. See also [[X-Payments:User_manual#Customizing_the_Interface]]&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Go into admin back-end dashboard and '''log in as the main admin user''' and check if it displays a warning about &amp;quot;Payment interface files have been modified&amp;quot; like below&lt;br /&gt;
[[File:Warning_customer_interface_changed.png]]&lt;br /&gt;
&lt;br /&gt;
If yes, '''click &amp;quot;Approve&amp;quot; link''' in the warning text and everything is set now.&lt;br /&gt;
&lt;br /&gt;
====No payment methods are displayed in the X-Payments connector settings====&lt;br /&gt;
&lt;br /&gt;
So you deployed the configuration bundle copied from the X-Payments dashboard but do not see any payment methods in X-Cart on the X-Payments connector settings page.&amp;lt;br /&amp;gt;&lt;br /&gt;
Your checkout via X-Payments does not work either.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
Make sure the online store is enabled in the X-Payments Admin back end and has at least one payment method enabled for it.&lt;br /&gt;
&lt;br /&gt;
[[File:Xp_admin_backend.png|border|668px|]]&lt;br /&gt;
&lt;br /&gt;
====CyberSource Internal Error====&lt;br /&gt;
&lt;br /&gt;
Do you use CyberSource and get &amp;quot;Internal Error&amp;quot; on the checkout page along with below error within the X-Payments error log?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
ERROR [2012-13-12 17:27:17]&lt;br /&gt;
User: unknown; IP: 68.184.224.121&lt;br /&gt;
Zone: Transport&lt;br /&gt;
Code: FILE_NOT_ACCESSIBLE (109)&lt;br /&gt;
File &amp;quot;Path/to/the/cybersource/security/key/txt/file&amp;quot; does not exist or is not readable&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Solution:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure you specified the right **server** path to the Cybersource key file on the [[X-Payments:CyberSourceSOAP | &amp;quot;CyberSource SOAP toolkit API&amp;quot; configuration page]], and it is readable by HTTP daemon on your X-Payments server.&lt;br /&gt;
&lt;br /&gt;
====You use Hosted X-Payments plans and run out of bandwidth====&lt;br /&gt;
&lt;br /&gt;
Congratulations! Your amount of transactions is impressive indeed! Most likely you used all bandwidth we provide for X-Payments Hosted accounts.&lt;br /&gt;
&lt;br /&gt;
'''Solution''':&lt;br /&gt;
&lt;br /&gt;
Please contact us using your HelpDesk account regarding the issue and we will consult you how to increase your bandwidth. Also, you should consider either upgrading to larger X-Payments Hosted plan or using X-Payments downloadable license that you can host yourself.&lt;br /&gt;
&lt;br /&gt;
====You use Hosted X-Payments plans and run out of disk space====&lt;br /&gt;
&lt;br /&gt;
One more reason for Hosted X-Payments plans can be you've run out of disk space we provide with every plan - check X-Payments folder at your X-Payments Hosted account (see [[X-Payments:X-Payments-Hosted-FAQ]]).&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Download logs files from your X-Payments Hosted account (see [[X-Payments:FAQ#Where_can_I_find_X-Payments_logs.3F]]) and remove them at X-Payments server to clear up some space.&lt;br /&gt;
&lt;br /&gt;
====Your integrated shopping cart does not pass all customer profile fields to X-Payments correctly====&lt;br /&gt;
&lt;br /&gt;
E.g. in X-Cart you can configure some vital for X-Payments customer profile fields (e.g. zipcode, address, email) as optional and your customers can miss them and do not fill in them with data during checkout. Thus X-Cart passes empty values for those data fields and X-Payments fails to process a transaction. X-Payments connector usually shows below warning&lt;br /&gt;
&lt;br /&gt;
[[File:Warning_profile_fields_XP_connector.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Either make such customer profile fields mandatory for checkout in your cart or customize your cart connector for X-Payments to pass non-empty values if they should not be mandatory for your checkout routine and customers can leave such profile fields empty.&lt;br /&gt;
&lt;br /&gt;
====PayPal PRO integration does not work in X-Cart 4.x====&lt;br /&gt;
&lt;br /&gt;
You followed [http://help.x-cart.com/index.php?title=X-Cart:Adding_and_enabling_PayPal_payment_methods_in_X-Cart Adding and enabling PayPal payment methods in X-Cart] and [[X-Payments:Configuring_PayPal_payment_modules_in_X-Payments]], made sure all configuration settings are set correctly, but PayPal PRO still does not work for you and you see &amp;quot;Internal error&amp;quot; message when you use X-Payments in iFrame mode or see &amp;quot;Internal error (The merchantEmail is missing or incorrect)&amp;quot; error message when X-Payments is configured as a separate page in your X-Cart checkout routine.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
PayPal module in X-Cart v4.x refers to &amp;quot;orders department email address&amp;quot; at General settings/Company options/Company emails section. You need to have a valid email address in that setting to fix the issue.&lt;br /&gt;
&lt;br /&gt;
====X-Cart isn't Synchronizing PayPal Payments PRO payment methods from X-Payments====&lt;br /&gt;
&lt;br /&gt;
Trying to update payment processor on the back end of the store in the X-Payments Connector. In the backend of the X-Payments Admin, there is a new payment method enabled- PayPal Payments Pro. Virtual Merchant will no longer be used. See screenshot in the attachment.&lt;br /&gt;
&lt;br /&gt;
On the backend of the site, once I try to Synchronize Payment Methods, the screen quickly shows options available to sync the new payment method. I have options to &amp;quot;set orders for...&amp;quot; then the options quickly disappear. There is a screenshot attached.&lt;br /&gt;
&lt;br /&gt;
So with that, once I try to synchronize, the system won't allow me. The old payment method still remains (although it hasn't been deleted in the X-Payment Admin Backend) but the new method SHOULD appear once they are synchronized, showing TWO payment methods on the backend of the store, with the option for me to enable either one.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
X-Cart 4 have some restrictions of PayPal usage, so that you need to first add PayPal Pro methods inside X-Cart and configure them using the same credentials like in X-Payments. Re-sync methods after that and you'll see the PayPal.&lt;br /&gt;
&lt;br /&gt;
====There are connection problems between your shopping cart and X-Payments at the time when a customer pays====&lt;br /&gt;
&lt;br /&gt;
Your cart cannot connect to X-Payments some times and your customers see &amp;quot;Internal error&amp;quot; displayed.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Make sure your cart server can connect to X-Payments server at all times (especially during your site high load times of a day).&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;Callback to online store is failed&amp;quot; notification and now all credit card transactions are failing===&lt;br /&gt;
&lt;br /&gt;
You receive below notifications from X-Payments&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&amp;quot;Callback to online store is failed. This notification has been sent by X-Payments installation at 'www.mysite.com'&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and now all credit card transactions are failing and the credit card fields for secure checkout on your website are missing.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Most likely you regenerated [[X-Payments:Encryption_keys | encryption codes in X-Payments]] but neglected to update the information in X-Cart, hence the credit card fields are not loading when the customer is attempting to use a credit card for payment.&lt;br /&gt;
&lt;br /&gt;
To remedy this go into X-Payments, copy the new encryption codes and paste them into X-Cart in the appropriate fields (Payment Methods → Credit Card → X-Payments connector module settings, see [http://help.x-cart.com/index.php?title=X-Cart:X-Payments_Connector#Configuring_X-Payments_Connector Configuring X-Payments Connector]).&lt;br /&gt;
&lt;br /&gt;
===Fatal error: Access to undeclared static property: XPay_Model_Base_Module::$this===&lt;br /&gt;
&lt;br /&gt;
You started to see error messages like below instead of working X-Payments.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
Fatal error: Access to undeclared static property: XPay_Model_Base_Module::$this in /xxxxxxxxxxx/lib/XPay/Model/Base/Module.php on line 153&lt;br /&gt;
or&lt;br /&gt;
Fatal error: Access to undeclared static property: XPay_Model_Base_Module::$this in /xxxxxxxxxxx/lib/XPay/Model/Base/Module.php on line 131&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
It is due to updating PHP to v 5.4.&lt;br /&gt;
&lt;br /&gt;
To fix the problem, in lines 131 and 153 of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;xpayments_dir&amp;gt;/lib/XPay/Model/Base/Module.php&lt;br /&gt;
&lt;br /&gt;
change&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
self::$this-&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
$this-&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===My X-Payments doesn't store customers credit cards/X-Payments subscriptions module doesn't work===&lt;br /&gt;
&lt;br /&gt;
So &amp;quot;Store credit card&amp;quot; functionality or X-Payments Subscriptions module doesn't work in your shopping cart despite of you integrated it with X-Payments?&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
# Make sure you use X-Payments v2.x because X-Payments v1.x doesn't support this functionality.&lt;br /&gt;
# Make sure you use a payment gateway that supports so called &amp;quot;tokenization&amp;quot; in X-Payments v2.x - see the list of such payment gateways at [[X-Payments:Supported_payment_gateways]]. They have &amp;quot;+&amp;quot; in &amp;quot;Tokenization&amp;quot; column. &amp;quot;-&amp;quot; means tokenization is not supported for a payment gateway.&lt;br /&gt;
# So you do use X-Payments v2.x and a payment gateway that supports tokenization in X-Payments? Please make sure tokenization functionality is enabled for your payment gateway account at payment gateway side. Sometimes payment gateways call it differently, e.g. &amp;quot;vault&amp;quot;, &amp;quot;Transformer&amp;quot;, etc. If you are not sure - contact your payment gateway to enable tokenization for your payment gateway.&lt;br /&gt;
&lt;br /&gt;
===Customer CC expires in 2022 - X-Payments stops at 2020===&lt;br /&gt;
&lt;br /&gt;
We just had a customer call in. He could not check out because our X-Payments payment page would not allow him to enter the expiration year of 2022 for his credit card. Our X-Payments only goes up to 2020.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
You need to change YEAR_RANGE from 7 to 10 for example in file lib/XPay/View/Payment/Main.php&lt;br /&gt;
&lt;br /&gt;
// Years list range&lt;br /&gt;
&lt;br /&gt;
const YEAR_RANGE = 7&lt;br /&gt;
&lt;br /&gt;
===White screen or HTTP 500 Internal server error instead of admin dashboard===&lt;br /&gt;
&lt;br /&gt;
You see white screen after logging in X-Payments admin dashboard.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Some PHP packages contain a bug that causes &amp;quot;White screen&amp;quot; or HTTP 500 Internal server error when PHP operates with the database via PDO. If you experience such issue contact your hosting support referring to:&lt;br /&gt;
&lt;br /&gt;
https://bugs.php.net/bug.php?id=60825&lt;br /&gt;
https://bugs.php.net/bug.php?id=53716&lt;br /&gt;
&lt;br /&gt;
===Magento: cannot test module connection or payment methods cannot be imported===&lt;br /&gt;
&lt;br /&gt;
You copied all configuration data from X-Payments properly but in Magento admin you see below message when you click &amp;quot;Test module&amp;quot; button&lt;br /&gt;
Test transaction failed. Please check the X-Payment Connector settings and try again. If all options is ok review your X-Payments settings and make sure you have properly defined shopping cart properties.&lt;br /&gt;
&lt;br /&gt;
Or a message that payment methods cannot be imported when you click &amp;quot;Request payment methods&amp;quot; button.&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
Possible reason - you do not have a valid SSL certificate installed for your X-Payments. Self-signed SSL cannot pass libCurl validation and thus prevent connection between Magento and X-Payments, too. You need to install a valid SSL certificate at X-Payments server.&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' users of our hosted X-Payments plans are safe since we provide SSL by default.&lt;br /&gt;
&lt;br /&gt;
===Google Chrome v41.0.2272.76 detects X-Payments v2.1 credit card form as a mobile site on desktops===&lt;br /&gt;
&lt;br /&gt;
After the update of the Google Chrome web browser to version 41.0.2272.76, the credit card form provided to your site by X-Payments v2.1 may be displayed incorrectly for Google Chrome users. &lt;br /&gt;
The problem behind this is that the value of the user-agent header sent by Chrome has changed, which causes X-Payments to identify the browser as running on a mobile device, even when, if fact, it is running on a PC. The result is that the credit card form is corrupted like on these screen shots:&lt;br /&gt;
&lt;br /&gt;
 - http://awesomescreenshot.com/0724kkas56&lt;br /&gt;
 - http://awesomescreenshot.com/04f4kkaq18&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution:'''&lt;br /&gt;
&lt;br /&gt;
To fix the issue, you need to update the Mobile Detect library in your X-Payments installation so the list of supported user agents is relevant. For that you should replace the file&lt;br /&gt;
&amp;lt;xpayments-dir&amp;gt;/lib/MobileDetect.php with this one: https://drive.google.com/file/d/0B6p7sehSZL8_QUN6VmRVMHpxaFE/view?usp=sharing (should be done via SFTP, SSH, Control panel, etc.)&lt;br /&gt;
 &lt;br /&gt;
If you find it difficult to apply the changes yourself please contact our Tech Support team using https://secure.x-cart.com.&lt;br /&gt;
&lt;br /&gt;
===Trouble with credit card logos in iFrame template for X-Cart 5===&lt;br /&gt;
&lt;br /&gt;
You use X-Cart 5 integrated with X-Payments v2.x and see credit card logos displayed like [https://drive.google.com/a/x-cart.com/file/d/0B6p7sehSZL8_T1kyQ0RCNS1nWDA/view?usp=sharing this in checkout] using Mac Safari or iPad.&lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
&lt;br /&gt;
Replace files fast.css and xc5.css in folder &amp;lt;x-pay_dir&amp;gt;/public/templates/ with these:&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/a/x-cart.com/folderview?id=0B6p7sehSZL8_OUVTeUtCUkFjY2M&amp;amp;usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===My entire shop is run in an iFrame and X-Payments does not display &amp;quot;Pay&amp;quot; button===&lt;br /&gt;
&lt;br /&gt;
There is a special code in X-Payments that hides &amp;quot;Pay&amp;quot; button if it the payment form is shown inside iframe.&lt;br /&gt;
In your case the whole store is placed inside iframe and that triggers the special code.&lt;br /&gt;
Easiest workaround which will not affect other stores connected to the X-Payments is to edit the template file css (I presume you use default.css) and where&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
div.content div.buttonRow {&lt;br /&gt;
  margin: 35px auto;&lt;br /&gt;
  width: 400px;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you should add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
display: block !important;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
e.g. after correction that code will look like&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
div.content div.buttonRow {&lt;br /&gt;
  margin: 35px auto;&lt;br /&gt;
  width: 400px;&lt;br /&gt;
  display: block !important;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do not forget to approve the changes in the admin back-end afterwards.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===X-Payments credit card form does not fit properly on Android tablet screen when used in iFrame in X-Cart 4 OPC===&lt;br /&gt;
&lt;br /&gt;
X-Payments credit card form is displayed as shown on [https://drive.google.com/file/d/0B6p7sehSZL8_ZDhac2JNVWxlQ1E/view?usp=sharing this screen shot].&lt;br /&gt;
&lt;br /&gt;
The reason is X-Cart 4 OPC shows desktop version of the site checkout while X-Payments shows mobile checkout template which is wider than needed for XC4 desktop OPC.&lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
&lt;br /&gt;
Apply [https://drive.google.com/file/d/0B6p7sehSZL8_c0JmYjhaRi1ITEE/view?usp=sharing this patch] to X-Payments connector files in your X-Cart 4.&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How to test payments via PayPal in X-Payments===&lt;br /&gt;
&lt;br /&gt;
There is a list of credit card numbers in the PayPal guides which many people assume can be used when processing credit card transactions through PayPal.  However, many of these card numbers have been blocked from PayPal system in one fashion or another (e.g. delay processing a lot so integrated software like X-Cart or Magento just fails to place a test transaction), so general advice is &amp;quot;don't use those card numbers&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
In general, when testing credit card transactions with PayPal as the processor, it is recommended using a randomized credit card number.  The number&lt;br /&gt;
must have a valid BIN, a valid check digit, and must be the correct length for the card type, but aside from that, the card number can be random.  &lt;br /&gt;
You can get such random test credit card numbers at http://getcreditcardnumbers.com&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;The TxnID field is missing or incorrect&amp;quot; message after upgrading to a new connector version in Magento===&lt;br /&gt;
&lt;br /&gt;
If after upgrading Magento connector to a new version and placing a new order you see an error message &amp;quot;The txnID field is missing or incorrect&amp;quot; instead of successful &amp;quot;Thank you for your order&amp;quot; page you need to clean/purge Magento's cache in your shop in the admin back-end. Consult with Magento user manual how to do that.&lt;br /&gt;
&lt;br /&gt;
===Browser warning about wrong SSL certificate pops up===&lt;br /&gt;
&lt;br /&gt;
If your browser shows a pop-up with warning about SSL certificate every time you test a transaction via X-Payments - this means your store installation has self-made/dummy SSL certificate. It is fine during testing, but you need to upgrade it to a real SSL certificate when your site goes live. &lt;br /&gt;
During testing just add that SSL certificate to exclusions in your browser in order not to see that warning every time you place a test transaction via X-Payments. This won't help you to hide that message from your shoppers though. The warning is not shown by a browser if a real SSL certificate is used.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;X-Payments tried to notify the store about updates in payment but failed&amp;quot; notification===&lt;br /&gt;
&lt;br /&gt;
You receive notifications that say &amp;quot;X-Payments tried to notify the store about updates in payment but failed ...&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
They mean X-Payments callback requests have failed because of timeout or because your online shop site is not reachable by X-Payments.&lt;br /&gt;
&lt;br /&gt;
In the 1st case the store didn't respond within 15 seconds coded by default in X-Payments, but the logs from the side of the store for these requests say, that the requests were received and processed with no errors. It means, that communication between the store and X-Payments actually works, but it takes to long for the store to respond. As a quick solution for this very reason it is recommended to increase the timeout limits in your X-Payments installation:&lt;br /&gt;
If X-Payments 2.x - in file lib/XPay/Model/Payment.php by changing &amp;quot;15&amp;quot; in a line of code that looks like to a bigger value (max 60):&lt;br /&gt;
&lt;br /&gt;
$requestData-&amp;gt;setTimeout(15);&lt;br /&gt;
&lt;br /&gt;
If X-Payments 3.x - in file config/config.ini.php in section [callback] change value of wait_timeout param:&lt;br /&gt;
&lt;br /&gt;
[callback]&lt;br /&gt;
&lt;br /&gt;
; Wait timeout for callback requests to the shopping cart (in seconds)&lt;br /&gt;
wait_timeout=15&lt;br /&gt;
&lt;br /&gt;
If you do not have access to your X-Payments installation code - contact vendors of the software by posting them a technical support ticket via https://secure.x-cart.com.&lt;br /&gt;
&lt;br /&gt;
But the right solution is to figure out why your web site does not respond to X-Payments callbacks within 15 seconds.&lt;br /&gt;
&lt;br /&gt;
In the 2nd case it might be firewall blocking X-Payments callback requests or your web shop was down for some time.&lt;br /&gt;
&lt;br /&gt;
===&amp;quot;No Payment Methods Available&amp;quot; message shown to a customer===&lt;br /&gt;
&lt;br /&gt;
A customer cannot place an order as he/she is displayed a message &amp;quot;No Payment Methods Available&amp;quot; at checkout and at the same time you see an error message &amp;quot;Data validation error, node &amp;quot;request&amp;quot;: String length (&amp;quot;266342&amp;quot;) exceeds the maximum allowed length for this node - &amp;quot;100000&amp;quot; in X-Payments error log file.&lt;br /&gt;
&lt;br /&gt;
'''Reason'''&lt;br /&gt;
&lt;br /&gt;
A shopper added too many line items (different products) to his/her cart (&amp;quot;too many&amp;quot; -  e.g. over a thousand) and as result data passed to X-Payments exceeds amount it is configured to accept for security reasons.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
&lt;br /&gt;
1) a customer should divide his order in several with less number of line items and process them one by one.&lt;br /&gt;
&lt;br /&gt;
2) if you face to this issue too often you can increase amount of data allowed to be processed by X-Payments by changing value of constant REQUEST_MAX_LENGTH in X-Payments file lib/XPay/Transport/Request/Api.php, but we do not recommend to large value there for security reasons.&lt;br /&gt;
&lt;br /&gt;
===Payflow PRO currency issue===&lt;br /&gt;
&lt;br /&gt;
'''NOTE''': do not confuse this with PayPal Payments PRO (PayFlow API)! There is PayFlow PRO integration, too. We are talking about PayFlow PRO here.&lt;br /&gt;
&lt;br /&gt;
You need to process payments via PayFlow PRO in other currency than USD, but there is no way to change it. You configured integrated cart in e.g. CAD but X-Payments passes data to PayFlow PRO as USD. This is caused by features of PayFlow PRO API - no exact requirements about passing currency type to PayFlow PRO - sometimes it can be passed as &amp;quot;CUR&amp;quot;, sometimes as &amp;quot;CU&amp;quot;, etc depending on payment processor you have configured at PayFlow PRO back-end.&lt;br /&gt;
&lt;br /&gt;
'''Solution'''&lt;br /&gt;
&lt;br /&gt;
1) Switch to PayPal Payments Pro (Payflow API) integration instead of PayFlow PRO in X-Payments.&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
2) change code of X-Payments as follows:&lt;br /&gt;
in file lib/XPay/Module/PayflowPro.php find function&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
private function getInitRequestBody(XPay_Transport_GatewayRequest $request)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the function find lines&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
        $fields = array(&lt;br /&gt;
            'TRXTYPE'     =&amp;gt; XPay_Model_PaymentTransaction::SALE == $request-&amp;gt;action ? 'S' : 'A',&lt;br /&gt;
            'AMT'         =&amp;gt; $this-&amp;gt;preparePrice($request-&amp;gt;payment-&amp;gt;get('total')),&lt;br /&gt;
            'TAXAMT'      =&amp;gt; $this-&amp;gt;preparePrice($additionalData-&amp;gt;get('tax_cost')),&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and add a line of code&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            'CURRENCY'    =&amp;gt; $request-&amp;gt;payment-&amp;gt;get('currency'),&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to get something like &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
            'TRXTYPE'     =&amp;gt; XPay_Model_PaymentTransaction::SALE == $request-&amp;gt;action ? 'S' : 'A',&lt;br /&gt;
            'CURRENCY'    =&amp;gt; $request-&amp;gt;payment-&amp;gt;get('currency'),&lt;br /&gt;
            'AMT'         =&amp;gt; $this-&amp;gt;preparePrice($request-&amp;gt;payment-&amp;gt;get('total')),&lt;br /&gt;
            'TAXAMT'      =&amp;gt; $this-&amp;gt;preparePrice($additionalData-&amp;gt;get('tax_cost')),&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above tweak will work if &amp;quot;PayPal&amp;quot; is configured as the gateway in your PayFlow PRO account.&lt;br /&gt;
&lt;br /&gt;
For others you should directly specify currency in format required by payment gateway.&lt;br /&gt;
&lt;br /&gt;
E.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
'CURRENCY'    =&amp;gt; 'USD',&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===X-Cart 5 and Exception message: Shopping cart server returned wrong HTTP headers for callback.===&lt;br /&gt;
&lt;br /&gt;
You use X-Cart 5 and see below error message or error log entry at X-Cart 5 side:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 Failed to send &amp;quot;check_cart&amp;quot; callback to the store &amp;quot;mydomain.com&amp;quot;&lt;br /&gt;
Url: https://www.example.com/cart.php?target=callback&amp;amp;action=callback&amp;amp;xpcBackReference=ABCDEFGHIJKL&lt;br /&gt;
Exception message: Shopping cart server returned wrong HTTP headers for callback.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Solution''':&lt;br /&gt;
&lt;br /&gt;
Most likely you try to test X-Payments with X-Cart 5 storefront closed. If so, in X-Cart 5 file etc/config.php find below piece of code:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[storefront_options]&lt;br /&gt;
; Do not close target=callback for payments if storefront is closed&lt;br /&gt;
callback_opened = Off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and change &amp;quot;Off&amp;quot; to &amp;quot;On&amp;quot; there.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments User Manual]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=629</id>
		<title>X-Payments:PCI DSS implementation guide for X-Payments 2.2</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=629"/>
		<updated>2016-04-26T12:30:42Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* X-Cart Payments versioning policy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Introduction ==&lt;br /&gt;
&lt;br /&gt;
This guide covers '''X-Cart Payments''' 1.0, 2.0, 2.1, 2.2 and is intended for merchants and integrators who wish to implement the application in accordance with guidelines set by the PCI Data Security Standard (PCI DSS).&lt;br /&gt;
&lt;br /&gt;
== X-Cart Payments versioning policy ==&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments version number must look like &amp;quot;X.Y.z&amp;quot; (e.g. 1.0.6, 2.0.1, 2.2.1, 3.0.0), where&lt;br /&gt;
&lt;br /&gt;
* X - major release version number that gets incremented when high impact changes are introduced and certified under PA-DSS requirements;&lt;br /&gt;
* Y - minor release version number that gets incremented when low impact changes are added to X-Cart Payments package;&lt;br /&gt;
* Z - maintenance/bug-fix release version number that gets incremented when no impact and administrative changes are done to X-Cart Payments package.&lt;br /&gt;
&lt;br /&gt;
See samples of changes below:&lt;br /&gt;
&lt;br /&gt;
* High-impact - major update of core X-Cart Payments functions such as login routine, credit card processing inside X-Cart Payments.&lt;br /&gt;
* Low-impact - update of integration with newer versions of DBMS, OS and middleware whose older versions have been already verified, adding or removing payment processor integrations, re-compiling source code using new code compiler or new compiler settings, change to X-Cart Payments versioning policy, other changes not related to security of the application.&lt;br /&gt;
* No impact - UI changes, changes to DB schemes, report module updates, update or adding of new payment gateway.&lt;br /&gt;
* Administrative change - change of application name, change of software vendor name.&lt;br /&gt;
&lt;br /&gt;
== PCI DSS ==&lt;br /&gt;
&lt;br /&gt;
PCI DSS specifies 12 requirements broken into 6 groups for compliance that apply both to hardware and software parts of the system that is used to collect, store, transmit and process valuable credit card data as well as the human factor.&lt;br /&gt;
&lt;br /&gt;
{| border&lt;br /&gt;
| Build and Maintain a Secure Network&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 1: Install and maintain a firewall configuration to protect cardholder data&lt;br /&gt;
* Requirement 2: Do not use vendor-supplied defaults for system passwords and other security parameters&lt;br /&gt;
|-&lt;br /&gt;
| Protect Cardholder Data&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 3: Protect stored cardholder data&lt;br /&gt;
* Requirement 4: Encrypt transmission of cardholder data across open, public networks&lt;br /&gt;
|-&lt;br /&gt;
| Maintain a Vulnerability Management Program&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 5: Use and regularly update anti-virus software&lt;br /&gt;
* Requirement 6: Develop and maintain secure systems and applications&lt;br /&gt;
|-&lt;br /&gt;
| Implement Strong Access Control Measures&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 7: Restrict access to cardholder data by business need-to-know&lt;br /&gt;
* Requirement 8: Assign a unique ID to each person with computer access&lt;br /&gt;
* Requirement 9: Restrict physical access to cardholder data&lt;br /&gt;
|-&lt;br /&gt;
| Regularly Monitor and Test Networks&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 10: Track and monitor all access to network resources and cardholder data&lt;br /&gt;
* Requirement 11: Regularly test security systems and processes&lt;br /&gt;
|-&lt;br /&gt;
| Maintain an Information Security Policy&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 12: Maintain a policy that addresses information security&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Specifically, relevant elements to an e-commerce business' PCI compliance status include:&lt;br /&gt;
&lt;br /&gt;
* Properly using your payment application. For this purpose, carefully review the section below for information on how to use '''X-Cart Payments''' in a way that ensures PCI compliance.&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant Web hosting environment&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant payment provider&lt;br /&gt;
&lt;br /&gt;
You can find and review the complete specification by visiting [https://www.pcisecuritystandards.org/ https://www.pcisecuritystandards.org/]&lt;br /&gt;
&lt;br /&gt;
This guide is intended to help merchants implement the '''X-Cart Payments''' application in a way that is compliant with version 2.0 of the PCI DSS.&lt;br /&gt;
&lt;br /&gt;
== Payment Card Industry Data Security Standard ('''PCI DSS''') ==&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry Data Security Standard is a worldwide information security standard assembled by the major credit card vendors, including American Express, Discover Financial Services, JCB International, MasterCard Worldwide, and Visa, Inc. The standard was designed to help organizations involved in processing credit card payments online make their payment systems secure from cardholder data fraud.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has been designed and certified to meet all of the requirements of the '''PA-DSS''' version 2.0. This does not automatically make you, the merchant, PCI DSS compliant. To ensure PCI DSS compliance, it is necessary that you follow the recommendations and instructions provided in this guide.&lt;br /&gt;
&lt;br /&gt;
For additional information about '''PCI DSS''' please visit the [https://www.pcisecuritystandards.org Official PCI Security Standards Council Site].&lt;br /&gt;
&lt;br /&gt;
== Cardholder data storage==&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has [[X-Payments:General_settings#Cardholder_Data | the ability to store parts of cardholder data temporarily]] for performing 3D Secure verification and certain types of transactions for some of the integrated payment processors. While stored cardholder data is encrypted using special [[X-Payments:Encryption_keys | cryptographic algorithm]]. The data is removed automatically when its storing period is over using &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can not be configured to store permanently in the database the following types of data:&lt;br /&gt;
&lt;br /&gt;
* unmasked PAN&lt;br /&gt;
* PIN&lt;br /&gt;
* CVV&lt;br /&gt;
* magnetic stripe (track data)&lt;br /&gt;
&lt;br /&gt;
Merchants and/or developers implementing '''X-Cart Payments''' should not attempt to customize this as a feature.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can display masked PAN on &amp;quot;Payment details&amp;quot; pages and in &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. '''X-Cart Payments''' does not have the ability to display full PAN anywhere and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&lt;br /&gt;
==Configuring and using '''X-Cart Payments''' in PCI compliant manner ==&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
Follow the [[X-Payments:Installation | standard procedure]] for deployment of X-Cart Payments files to the web server.&lt;br /&gt;
&lt;br /&gt;
{{Note1|Once installed, X-Cart Payments WILL NEVER:&amp;lt;br/&amp;gt;&lt;br /&gt;
* store unmasked credit card numbers (PANs)&lt;br /&gt;
* send credit card data or any other information to Qualiteam for debug purposes}}&lt;br /&gt;
&lt;br /&gt;
===Access control===&lt;br /&gt;
&lt;br /&gt;
There are no built-in/default user accounts in '''X-Cart Payments'''.&lt;br /&gt;
You must carefully control access to '''X-Cart Payments'''. Follow these rules:&lt;br /&gt;
&lt;br /&gt;
* Restrict the number of employees who have access to '''X-Cart Payments''' to only those who have a business need.&lt;br /&gt;
* Always provide unique usernames for each person who needs access.&lt;br /&gt;
* Do not use system-default usernames and/or passwords&lt;br /&gt;
* Web server must be run under a non-privileged user account. Application must access the database from a limited privilege user account.&lt;br /&gt;
* All default user accounts use secure authentication mechanisms and password policy settings that comply with all the standard requirements:&lt;br /&gt;
** user accounts inactive for more than 3 days are blocked&lt;br /&gt;
** password lifetime is set to 30 days&lt;br /&gt;
&lt;br /&gt;
:: To set password lifetime:&lt;br /&gt;
&lt;br /&gt;
::# Login to '''X-Cart Payments'''&lt;br /&gt;
::# Go to &amp;lt;u&amp;gt;Settings -&amp;gt; General Settings&amp;lt;/u&amp;gt;&lt;br /&gt;
::# Enter the number of days the user account password will be valid for in the &amp;quot;User account password lifetime&amp;quot; field. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
&lt;br /&gt;
:* minimum password length is 8 characters&lt;br /&gt;
:* password must contain both lower and upper case characters and numbers&lt;br /&gt;
:* the last 4 passwords must be unique&lt;br /&gt;
:* user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password&lt;br /&gt;
:* user is logged off after inactivity period of 10 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt; Please note that changing default password policy settings will lead to breaking PCI DSS standard requirements.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Enabling SSL (Secure Socket Layer)===&lt;br /&gt;
&lt;br /&gt;
SSL protects data that is transmitted between a browser and your web server. It is critical that you have SSL enabled on your web server, and this should be among the first steps taken after installation.&lt;br /&gt;
&lt;br /&gt;
* Your web server must be configured to use TLS v1.2 protocols with strong encryption (128-bit or longer key is required)&lt;br /&gt;
* You will need to have a certificate issued for your web domain. Read [http://help.qtmsoft.com/index.php?title=Instant_SSL_certificate guidelines on installing Comodo's Instant SSL certificates].&lt;br /&gt;
&lt;br /&gt;
If a web server does not have SSL enabled '''X-Cart Payments''' will not function or will be notifying users depending on '''allow_insecure_protocol''' parameter set in &amp;lt;u&amp;gt;config.ini.php&amp;lt;/u&amp;gt; file (disabled by default).&lt;br /&gt;
&lt;br /&gt;
===Data Collected while Testing===&lt;br /&gt;
&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments:&lt;br /&gt;
&lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever collect credit card information to troubleshoot a problem that one of your customers is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access&lt;br /&gt;
#* Only collect a limited amount of such data as needed to solve a specific problem&lt;br /&gt;
#* Sensitive authentication data must be encrypted while stored. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Such data must be securely deleted immediately after use.&lt;br /&gt;
&lt;br /&gt;
===Encryption Key Management===&lt;br /&gt;
&lt;br /&gt;
As part of your PA DSS v3.1 requirements, encryption key must be changed annually (changing every 90 days is recommended). You should also change the key any time an employee with access to the key leaves your company. Always replace the key if you know or suspect it has been compromised by any means.&lt;br /&gt;
&lt;br /&gt;
To change the encryption keys:&lt;br /&gt;
&lt;br /&gt;
# Log in to '''X-Cart Payments'''&lt;br /&gt;
# Go to &amp;lt;u&amp;gt;Maintenance -&amp;gt; Encryption keys&amp;lt;/u&amp;gt;&lt;br /&gt;
# Click &amp;quot;Generate new keys&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Use unique user IDs and secure authentication to access PCs, servers and databases ===&lt;br /&gt;
&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords:&lt;br /&gt;
&lt;br /&gt;
# For your Web hosting account administration area (Web hosting account where your online store is hosted)&lt;br /&gt;
# For FTP access to the Web server&lt;br /&gt;
# For Remote Desktop Connection to the Web server (if available)&lt;br /&gt;
# To connect to the MySQL server that contains your store data.&lt;br /&gt;
&lt;br /&gt;
The passwords for the accounts mentioned above must also meet the following requirements:&lt;br /&gt;
&lt;br /&gt;
* be at least 8 characters in length&lt;br /&gt;
* contain both numbers and letters in lower and upper case&lt;br /&gt;
* not coincide with any part of your email address&lt;br /&gt;
* not coincide with any of the last four passwords you have used&lt;br /&gt;
* have a lifetime of less than 90 days&lt;br /&gt;
* account lockout threshold must be set to 6.&lt;br /&gt;
* account lockout duration must be set to 30 minutes (or until unblocked by the administrator).&lt;br /&gt;
* user must be logged off after 15 minutes of inactivity&lt;br /&gt;
&lt;br /&gt;
===Audit trails===&lt;br /&gt;
&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. There is no option to disable audit logging. The log files are created in the &amp;lt;u&amp;gt;var/log/&amp;lt;/u&amp;gt; directory. Make sure you restrict access to the log files by business need-to-know.&lt;br /&gt;
&lt;br /&gt;
The following types of activity are logged:&lt;br /&gt;
&lt;br /&gt;
* All actions taken by any individual with root or administrative privileges&lt;br /&gt;
* Successes and failures of all individual accesses to application sections and functions&lt;br /&gt;
&lt;br /&gt;
* Initialization of the audit logs&lt;br /&gt;
* User sign in and sign out.&lt;br /&gt;
&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to files access.log and error.log.&lt;br /&gt;
&lt;br /&gt;
Each log event includes:&lt;br /&gt;
&lt;br /&gt;
* Type of event&lt;br /&gt;
* Date and time of event&lt;br /&gt;
* Username and IP address&lt;br /&gt;
* Success or failure indication&lt;br /&gt;
* Action which led to the event&lt;br /&gt;
&lt;br /&gt;
* Component which led to the event&lt;br /&gt;
&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
&lt;br /&gt;
=== OS-level audit trails ===&lt;br /&gt;
&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on server. This software should:&lt;br /&gt;
&lt;br /&gt;
* warn on a checksum change of any of X-Cart Payments source code files except of log file and database files&lt;br /&gt;
* record any file writing operations related to X-Cart Payments files&lt;br /&gt;
&lt;br /&gt;
===Encrypting network traffic===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for:&lt;br /&gt;
&lt;br /&gt;
* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
* providing remote web-based access to the application&lt;br /&gt;
&lt;br /&gt;
If you use tools to remotely access the application, you should encrypt all communication using technologies such as TLS or IPSEC.&lt;br /&gt;
&lt;br /&gt;
As per PCI DSS requirement 4.2, cardholder data should never be sent unencrypted by e-mail, and X-Cart Payments does meet this requirement '''never''' sending cardholder data by e-mail or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&lt;br /&gt;
===Wireless communications===&lt;br /&gt;
&lt;br /&gt;
If you use wireless networking to access '''X-Cart Payments''', it is your responsibility to ensure your wireless security con figuration follows the PCI DSS requirements.&lt;br /&gt;
&lt;br /&gt;
* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
* Use with a minimum 104-bit encryption key and 24 bit-initialization value&lt;br /&gt;
* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS&lt;br /&gt;
* Rotate shared WEP keys quarterly (or automatically if the technology permits)&lt;br /&gt;
* Rotate shared WEP keys whenever there are changes in personnel with access to keys&lt;br /&gt;
* Restrict access based on media access cod e (MAC) address.&lt;br /&gt;
* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&lt;br /&gt;
===Remote access===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time PIN codes. Detailed information can be found at [[X-Payments:Managing_PIN_codes | Managing PIN codes]] page.&lt;br /&gt;
&lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following:&lt;br /&gt;
&lt;br /&gt;
* Change default settings in the remote access software (for example, change default passwords and use unique passwords for each customer)&lt;br /&gt;
* Allow connections only from specific (known) IP/MAC addresses&lt;br /&gt;
* Use strong authentication or complex passwords for logins&lt;br /&gt;
* Enable encrypted data transmission&lt;br /&gt;
* Enable account lockout after a certain number of failed login attempts&lt;br /&gt;
* Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed&lt;br /&gt;
* Enable any logging or auditing functions&lt;br /&gt;
* Restrict access to customer passwords to authorized reseller/integrator personnel&lt;br /&gt;
* Establish customer passwords according to PCI DSS requirements 8.1, 8.2, 8.4, 8.5&lt;br /&gt;
&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=628</id>
		<title>X-Payments:PCI DSS implementation guide for X-Payments 2.2</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=628"/>
		<updated>2016-04-26T12:29:28Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* X-Cart Payments versioning policy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Introduction ==&lt;br /&gt;
&lt;br /&gt;
This guide covers '''X-Cart Payments''' 1.0, 2.0, 2.1, 2.2 and is intended for merchants and integrators who wish to implement the application in accordance with guidelines set by the PCI Data Security Standard (PCI DSS).&lt;br /&gt;
&lt;br /&gt;
== X-Cart Payments versioning policy ==&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments version number must look like &amp;quot;X.Y.z&amp;quot; (e.g. 1.0.6, 2.0.1, 2.2.1, 3.0.0), where&lt;br /&gt;
&lt;br /&gt;
* X - major release version number that gets incremented when high impact changes are introduced and certified under PA-DSS requirements;&lt;br /&gt;
* Y - minor release version number that gets incremented when low impact changes are added to X-Cart Payments package;&lt;br /&gt;
* Z - maintenance/bug-fix release version number that gets incremented when no impact and administrative changes are done to X-Cart Payments package.&lt;br /&gt;
&lt;br /&gt;
See samples of changes below:&lt;br /&gt;
&lt;br /&gt;
High-impact - major update of core X-Cart Payments functions such as login routine, credit card processing inside X-Cart Payments.&lt;br /&gt;
Low-impact - update of integration with newer versions of DBMS, OS and middleware whose older versions have been already verified, adding or removing payment processor integrations, re-compiling source code using new code compiler or new compiler settings, change to X-Cart Payments versioning policy, other changes not related to security of the application.&lt;br /&gt;
No impact - UI changes, changes to DB schemes, report module updates, update or adding of new payment gateway&lt;br /&gt;
&lt;br /&gt;
== PCI DSS ==&lt;br /&gt;
&lt;br /&gt;
PCI DSS specifies 12 requirements broken into 6 groups for compliance that apply both to hardware and software parts of the system that is used to collect, store, transmit and process valuable credit card data as well as the human factor.&lt;br /&gt;
&lt;br /&gt;
{| border&lt;br /&gt;
| Build and Maintain a Secure Network&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 1: Install and maintain a firewall configuration to protect cardholder data&lt;br /&gt;
* Requirement 2: Do not use vendor-supplied defaults for system passwords and other security parameters&lt;br /&gt;
|-&lt;br /&gt;
| Protect Cardholder Data&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 3: Protect stored cardholder data&lt;br /&gt;
* Requirement 4: Encrypt transmission of cardholder data across open, public networks&lt;br /&gt;
|-&lt;br /&gt;
| Maintain a Vulnerability Management Program&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 5: Use and regularly update anti-virus software&lt;br /&gt;
* Requirement 6: Develop and maintain secure systems and applications&lt;br /&gt;
|-&lt;br /&gt;
| Implement Strong Access Control Measures&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 7: Restrict access to cardholder data by business need-to-know&lt;br /&gt;
* Requirement 8: Assign a unique ID to each person with computer access&lt;br /&gt;
* Requirement 9: Restrict physical access to cardholder data&lt;br /&gt;
|-&lt;br /&gt;
| Regularly Monitor and Test Networks&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 10: Track and monitor all access to network resources and cardholder data&lt;br /&gt;
* Requirement 11: Regularly test security systems and processes&lt;br /&gt;
|-&lt;br /&gt;
| Maintain an Information Security Policy&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 12: Maintain a policy that addresses information security&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Specifically, relevant elements to an e-commerce business' PCI compliance status include:&lt;br /&gt;
&lt;br /&gt;
* Properly using your payment application. For this purpose, carefully review the section below for information on how to use '''X-Cart Payments''' in a way that ensures PCI compliance.&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant Web hosting environment&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant payment provider&lt;br /&gt;
&lt;br /&gt;
You can find and review the complete specification by visiting [https://www.pcisecuritystandards.org/ https://www.pcisecuritystandards.org/]&lt;br /&gt;
&lt;br /&gt;
This guide is intended to help merchants implement the '''X-Cart Payments''' application in a way that is compliant with version 2.0 of the PCI DSS.&lt;br /&gt;
&lt;br /&gt;
== Payment Card Industry Data Security Standard ('''PCI DSS''') ==&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry Data Security Standard is a worldwide information security standard assembled by the major credit card vendors, including American Express, Discover Financial Services, JCB International, MasterCard Worldwide, and Visa, Inc. The standard was designed to help organizations involved in processing credit card payments online make their payment systems secure from cardholder data fraud.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has been designed and certified to meet all of the requirements of the '''PA-DSS''' version 2.0. This does not automatically make you, the merchant, PCI DSS compliant. To ensure PCI DSS compliance, it is necessary that you follow the recommendations and instructions provided in this guide.&lt;br /&gt;
&lt;br /&gt;
For additional information about '''PCI DSS''' please visit the [https://www.pcisecuritystandards.org Official PCI Security Standards Council Site].&lt;br /&gt;
&lt;br /&gt;
== Cardholder data storage==&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has [[X-Payments:General_settings#Cardholder_Data | the ability to store parts of cardholder data temporarily]] for performing 3D Secure verification and certain types of transactions for some of the integrated payment processors. While stored cardholder data is encrypted using special [[X-Payments:Encryption_keys | cryptographic algorithm]]. The data is removed automatically when its storing period is over using &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can not be configured to store permanently in the database the following types of data:&lt;br /&gt;
&lt;br /&gt;
* unmasked PAN&lt;br /&gt;
* PIN&lt;br /&gt;
* CVV&lt;br /&gt;
* magnetic stripe (track data)&lt;br /&gt;
&lt;br /&gt;
Merchants and/or developers implementing '''X-Cart Payments''' should not attempt to customize this as a feature.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can display masked PAN on &amp;quot;Payment details&amp;quot; pages and in &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. '''X-Cart Payments''' does not have the ability to display full PAN anywhere and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&lt;br /&gt;
==Configuring and using '''X-Cart Payments''' in PCI compliant manner ==&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
Follow the [[X-Payments:Installation | standard procedure]] for deployment of X-Cart Payments files to the web server.&lt;br /&gt;
&lt;br /&gt;
{{Note1|Once installed, X-Cart Payments WILL NEVER:&amp;lt;br/&amp;gt;&lt;br /&gt;
* store unmasked credit card numbers (PANs)&lt;br /&gt;
* send credit card data or any other information to Qualiteam for debug purposes}}&lt;br /&gt;
&lt;br /&gt;
===Access control===&lt;br /&gt;
&lt;br /&gt;
There are no built-in/default user accounts in '''X-Cart Payments'''.&lt;br /&gt;
You must carefully control access to '''X-Cart Payments'''. Follow these rules:&lt;br /&gt;
&lt;br /&gt;
* Restrict the number of employees who have access to '''X-Cart Payments''' to only those who have a business need.&lt;br /&gt;
* Always provide unique usernames for each person who needs access.&lt;br /&gt;
* Do not use system-default usernames and/or passwords&lt;br /&gt;
* Web server must be run under a non-privileged user account. Application must access the database from a limited privilege user account.&lt;br /&gt;
* All default user accounts use secure authentication mechanisms and password policy settings that comply with all the standard requirements:&lt;br /&gt;
** user accounts inactive for more than 3 days are blocked&lt;br /&gt;
** password lifetime is set to 30 days&lt;br /&gt;
&lt;br /&gt;
:: To set password lifetime:&lt;br /&gt;
&lt;br /&gt;
::# Login to '''X-Cart Payments'''&lt;br /&gt;
::# Go to &amp;lt;u&amp;gt;Settings -&amp;gt; General Settings&amp;lt;/u&amp;gt;&lt;br /&gt;
::# Enter the number of days the user account password will be valid for in the &amp;quot;User account password lifetime&amp;quot; field. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
&lt;br /&gt;
:* minimum password length is 8 characters&lt;br /&gt;
:* password must contain both lower and upper case characters and numbers&lt;br /&gt;
:* the last 4 passwords must be unique&lt;br /&gt;
:* user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password&lt;br /&gt;
:* user is logged off after inactivity period of 10 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt; Please note that changing default password policy settings will lead to breaking PCI DSS standard requirements.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Enabling SSL (Secure Socket Layer)===&lt;br /&gt;
&lt;br /&gt;
SSL protects data that is transmitted between a browser and your web server. It is critical that you have SSL enabled on your web server, and this should be among the first steps taken after installation.&lt;br /&gt;
&lt;br /&gt;
* Your web server must be configured to use TLS v1.2 protocols with strong encryption (128-bit or longer key is required)&lt;br /&gt;
* You will need to have a certificate issued for your web domain. Read [http://help.qtmsoft.com/index.php?title=Instant_SSL_certificate guidelines on installing Comodo's Instant SSL certificates].&lt;br /&gt;
&lt;br /&gt;
If a web server does not have SSL enabled '''X-Cart Payments''' will not function or will be notifying users depending on '''allow_insecure_protocol''' parameter set in &amp;lt;u&amp;gt;config.ini.php&amp;lt;/u&amp;gt; file (disabled by default).&lt;br /&gt;
&lt;br /&gt;
===Data Collected while Testing===&lt;br /&gt;
&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments:&lt;br /&gt;
&lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever collect credit card information to troubleshoot a problem that one of your customers is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access&lt;br /&gt;
#* Only collect a limited amount of such data as needed to solve a specific problem&lt;br /&gt;
#* Sensitive authentication data must be encrypted while stored. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Such data must be securely deleted immediately after use.&lt;br /&gt;
&lt;br /&gt;
===Encryption Key Management===&lt;br /&gt;
&lt;br /&gt;
As part of your PA DSS v3.1 requirements, encryption key must be changed annually (changing every 90 days is recommended). You should also change the key any time an employee with access to the key leaves your company. Always replace the key if you know or suspect it has been compromised by any means.&lt;br /&gt;
&lt;br /&gt;
To change the encryption keys:&lt;br /&gt;
&lt;br /&gt;
# Log in to '''X-Cart Payments'''&lt;br /&gt;
# Go to &amp;lt;u&amp;gt;Maintenance -&amp;gt; Encryption keys&amp;lt;/u&amp;gt;&lt;br /&gt;
# Click &amp;quot;Generate new keys&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Use unique user IDs and secure authentication to access PCs, servers and databases ===&lt;br /&gt;
&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords:&lt;br /&gt;
&lt;br /&gt;
# For your Web hosting account administration area (Web hosting account where your online store is hosted)&lt;br /&gt;
# For FTP access to the Web server&lt;br /&gt;
# For Remote Desktop Connection to the Web server (if available)&lt;br /&gt;
# To connect to the MySQL server that contains your store data.&lt;br /&gt;
&lt;br /&gt;
The passwords for the accounts mentioned above must also meet the following requirements:&lt;br /&gt;
&lt;br /&gt;
* be at least 8 characters in length&lt;br /&gt;
* contain both numbers and letters in lower and upper case&lt;br /&gt;
* not coincide with any part of your email address&lt;br /&gt;
* not coincide with any of the last four passwords you have used&lt;br /&gt;
* have a lifetime of less than 90 days&lt;br /&gt;
* account lockout threshold must be set to 6.&lt;br /&gt;
* account lockout duration must be set to 30 minutes (or until unblocked by the administrator).&lt;br /&gt;
* user must be logged off after 15 minutes of inactivity&lt;br /&gt;
&lt;br /&gt;
===Audit trails===&lt;br /&gt;
&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. There is no option to disable audit logging. The log files are created in the &amp;lt;u&amp;gt;var/log/&amp;lt;/u&amp;gt; directory. Make sure you restrict access to the log files by business need-to-know.&lt;br /&gt;
&lt;br /&gt;
The following types of activity are logged:&lt;br /&gt;
&lt;br /&gt;
* All actions taken by any individual with root or administrative privileges&lt;br /&gt;
* Successes and failures of all individual accesses to application sections and functions&lt;br /&gt;
&lt;br /&gt;
* Initialization of the audit logs&lt;br /&gt;
* User sign in and sign out.&lt;br /&gt;
&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to files access.log and error.log.&lt;br /&gt;
&lt;br /&gt;
Each log event includes:&lt;br /&gt;
&lt;br /&gt;
* Type of event&lt;br /&gt;
* Date and time of event&lt;br /&gt;
* Username and IP address&lt;br /&gt;
* Success or failure indication&lt;br /&gt;
* Action which led to the event&lt;br /&gt;
&lt;br /&gt;
* Component which led to the event&lt;br /&gt;
&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
&lt;br /&gt;
=== OS-level audit trails ===&lt;br /&gt;
&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on server. This software should:&lt;br /&gt;
&lt;br /&gt;
* warn on a checksum change of any of X-Cart Payments source code files except of log file and database files&lt;br /&gt;
* record any file writing operations related to X-Cart Payments files&lt;br /&gt;
&lt;br /&gt;
===Encrypting network traffic===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for:&lt;br /&gt;
&lt;br /&gt;
* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
* providing remote web-based access to the application&lt;br /&gt;
&lt;br /&gt;
If you use tools to remotely access the application, you should encrypt all communication using technologies such as TLS or IPSEC.&lt;br /&gt;
&lt;br /&gt;
As per PCI DSS requirement 4.2, cardholder data should never be sent unencrypted by e-mail, and X-Cart Payments does meet this requirement '''never''' sending cardholder data by e-mail or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&lt;br /&gt;
===Wireless communications===&lt;br /&gt;
&lt;br /&gt;
If you use wireless networking to access '''X-Cart Payments''', it is your responsibility to ensure your wireless security con figuration follows the PCI DSS requirements.&lt;br /&gt;
&lt;br /&gt;
* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
* Use with a minimum 104-bit encryption key and 24 bit-initialization value&lt;br /&gt;
* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS&lt;br /&gt;
* Rotate shared WEP keys quarterly (or automatically if the technology permits)&lt;br /&gt;
* Rotate shared WEP keys whenever there are changes in personnel with access to keys&lt;br /&gt;
* Restrict access based on media access cod e (MAC) address.&lt;br /&gt;
* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&lt;br /&gt;
===Remote access===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time PIN codes. Detailed information can be found at [[X-Payments:Managing_PIN_codes | Managing PIN codes]] page.&lt;br /&gt;
&lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following:&lt;br /&gt;
&lt;br /&gt;
* Change default settings in the remote access software (for example, change default passwords and use unique passwords for each customer)&lt;br /&gt;
* Allow connections only from specific (known) IP/MAC addresses&lt;br /&gt;
* Use strong authentication or complex passwords for logins&lt;br /&gt;
* Enable encrypted data transmission&lt;br /&gt;
* Enable account lockout after a certain number of failed login attempts&lt;br /&gt;
* Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed&lt;br /&gt;
* Enable any logging or auditing functions&lt;br /&gt;
* Restrict access to customer passwords to authorized reseller/integrator personnel&lt;br /&gt;
* Establish customer passwords according to PCI DSS requirements 8.1, 8.2, 8.4, 8.5&lt;br /&gt;
&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:Supported_payment_gateways&amp;diff=614</id>
		<title>X-Payments:Supported payment gateways</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:Supported_payment_gateways&amp;diff=614"/>
		<updated>2016-03-24T14:26:52Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Legend:'''&lt;br /&gt;
&lt;br /&gt;
* '''Auth''': Allows to authorize the availability of funds for a transaction (The buyer's funds are temporarily placed on hold to ensure the availability of the authorization amount for capture).&lt;br /&gt;
* '''Capture''': Allows to capture the amount of the authorization (The money authorized for the order is moved from the buyers's account to the merchant's account).&lt;br /&gt;
* '''Sale''': Supports transactions of 'Sale' type (Authorization and capture actions are completed simultaneously at the time the payment is processed).&lt;br /&gt;
* '''Void''': Allows the removal of an authorization hold from the buyer's account by the merchant.&lt;br /&gt;
* '''Refund''': Allows to issue refunds (The money is returned to the buyer's account).&lt;br /&gt;
* '''Get Status''': Can provide information about the status of a transaction to X-Payments.&lt;br /&gt;
* '''Accept''', '''Decline''': Allows to accept or reject transactions with a higher likelihood of risk.&lt;br /&gt;
* '''Test''': Can test whether the merchant account details entered in X-Payments are valid.&lt;br /&gt;
* '''3D-Secure via Cardinal Commerce''': Supports 3-D Secure payer authentication via Cardinal Commerce.&lt;br /&gt;
* '''Tokenization''': Supports tokenization (Allows to charge customer credit cards again - without X-Payments storing cardholder data).&lt;br /&gt;
* '''p''': Supports partial transactions (For example, &amp;quot;Capture + p&amp;quot; = Allows to capture a partial amount of the authorization).&lt;br /&gt;
* '''m''': Supports multiple transactions (For example, &amp;quot;Capture + m&amp;quot; = Allows to perform the capture action multiple times).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; width=90%&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 15%;&amp;quot;| '''Payment service provider'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 20%;&amp;quot;| '''Payment system'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 6%;&amp;quot;| '''Sale'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 6%;&amp;quot;|  '''Auth'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Capture'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 6%;&amp;quot;| '''Void'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 10%;&amp;quot;| '''Refund'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 6%;&amp;quot;| '''Get status'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 6%;&amp;quot;| '''Accept'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 6%;&amp;quot;| '''Decline'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 6%;&amp;quot;| '''Test'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 6%;&amp;quot;| '''3D-Secure via &amp;lt;br/&amp;gt;Cardinal Commerce'''&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; style=&amp;quot;width: 6%;&amp;quot;| '''Tokenization'''&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.paypal.com/ PayPal]&lt;br /&gt;
| PayFlow Pro&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
| 3d Secure&amp;lt;br /&amp;gt;built in&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.paypal.com/ PayPal]&lt;br /&gt;
| PayPal Payments Pro (PayPal API)&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.paypal.com/ PayPal]&lt;br /&gt;
| PayPal Payments Pro (Payflow API)&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.anz.com/ Australia and New Zealand Banking Group Limited]&lt;br /&gt;
| ANZ eGate&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://paymentgateway.americanexpress.com/ American Express]&lt;br /&gt;
| American Express Web-Services API Integration&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.cybersource.com/ CyberSource Corporation]&lt;br /&gt;
| Authorize.Net AIM&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.cybersource.com/ CyberSource Corporation]&lt;br /&gt;
| Authorize.Net AIM XML&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.cybersource.com/ CyberSource Corporation]&lt;br /&gt;
| Authorize.Net CIM&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.beanstream.com/ Digital River, Inc.]&lt;br /&gt;
| Beanstream, a Digital River Company/FirstData Canada &amp;lt;br /&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://bluepay.com/xpayments-partner-page BluePay]&lt;br /&gt;
| BluePay &amp;lt;br /&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [https://www.braintreepayments.com/ Braintree, a division of PayPal, Inc.]&lt;br /&gt;
| Braintree&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.caledoncard.com/ Blue Pay Canada (ex. Caledon Computer Systems, Inc.)]&lt;br /&gt;
| Blue Pay Canada (ex. Caledon)&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.cardinalcommerce.com/ CardinalCommerce Corporation]&lt;br /&gt;
| Cardinal Commerce Centinel&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3d Secure&amp;lt;br /&amp;gt;built in&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.chasepaymentech.com/ Chase Paymentech]&lt;br /&gt;
| Chase Paymentech &amp;lt;br /&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.cybersource.com/ CyberSource]&lt;br /&gt;
| CyberSource - SOAP toolkit API &amp;lt;br /&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.dibspayment.com/ DIBS Payment Services AB]&lt;br /&gt;
| DIBS&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://digitalriverpayments.co.uk/ Digital River, Inc.]&lt;br /&gt;
| Digital River World Payments / Beanstream&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.securepay.com.au/ SecurePay Pty Ltd]&lt;br /&gt;
| [http://www.directone.com.au/ DirectOne - Direct Interface] &amp;lt;br /&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [https://secure.5thdl.com Sparrow (ex. 5th Dimension Logisitics, LLC)]&lt;br /&gt;
| Sparrow (ex. 5th Dimension Gateway)&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.echo-inc.com/ Electronic Clearing House, Inc.]&lt;br /&gt;
| ECHO NVP&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.elavon.com/ Elavon, Inc.]&lt;br /&gt;
| Elavon Converge&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3d Secure&amp;lt;br /&amp;gt;built in&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.barclaycardbusiness.co.uk/about_us.html Barclaycard Business]&lt;br /&gt;
| ePDQ MPI XML (Phased out) &amp;lt;br /&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.eprocessingnetwork.com/Info.html eProcessing Network, LLC]&lt;br /&gt;
| eProcessing Network - Transparent Database Engine&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.moneris.com/ Moneris Solutions]&lt;br /&gt;
| eSELECTplus &amp;lt;br /&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.eway.com.au/Company/Company.aspx Web Active Corporation Pty Ltd]&lt;br /&gt;
| eWay Realtime Payments XML&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.globalpaymentsinc.com Global Payments, Inc]&lt;br /&gt;
| Global Iris/HSBC - RealAuth Remote&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3d Secure&amp;lt;br /&amp;gt;built in&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.goemerchant.com/ GoEmerchant, LLC]&lt;br /&gt;
| GoEmerchant - XML Gateway API&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.heidelpay.de Heidelberger Payment GmbH]&lt;br /&gt;
| HeidelPay&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.innovativegateway.com/ Intuit, Inc. Innovative Gateway]&lt;br /&gt;
| Innovative Gateway&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.itransact.com/ iTransact, Inc.]&lt;br /&gt;
| iTransact XML&amp;lt;br /&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.firstdata.com/ First Data Corporation]&lt;br /&gt;
| First Data Payeezy Gateway (ex- Global Gateway e4)&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.merituspayment.com/ Meritus Payment Solutions]&lt;br /&gt;
| Meritus Web Host&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&amp;lt;br /&amp;gt;(works only in &amp;quot;Sale&amp;quot; mode, is disabled in &amp;quot;Auth only&amp;quot; mode)&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.netbilling.com/ Netbilling, Inc.]&lt;br /&gt;
| Netbilling - Direct Mode 3.1 &amp;lt;br /&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.netregistry.com.au/ Netregistry Pty Ltd]&lt;br /&gt;
| NetRegistry &amp;lt;br /&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.ogone.com/ Ingenico Payment Services (former Ogone)]&lt;br /&gt;
| Ingenico/Ogone/ePDQ e-Commerce&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.paygate.net/ PayGate]&lt;br /&gt;
| PayGate Korea &amp;lt;br /&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.psigate.com/ Payment Services Interactive Gateway Inc.]&lt;br /&gt;
| PSiGate XML API&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.quantumgateway.com/ Quantum Services LLC]&lt;br /&gt;
|  QuantumGateway - Transparent QGWdatabase Engine&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.quantumgateway.com/ Quantum Services LLC]&lt;br /&gt;
|  QuantumGateway - XML Requester&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://payments.intuit.com/ Intuit Inc.]&lt;br /&gt;
| Intuit QuickBooks Payments&amp;lt;br /&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.realexpayments.com/ Realex Payments]&lt;br /&gt;
| Realex&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| &lt;br /&gt;
| 3d Secure&amp;lt;br /&amp;gt;built in&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.sagepay.com/ Sage Pay]&lt;br /&gt;
|  Sage Pay Go - Direct Interface&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3d Secure&amp;lt;br /&amp;gt;built in&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.securepay.com/ SecurePay.com Inc.]&lt;br /&gt;
| SecurePay USA&amp;lt;br /&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.securepay.com.au/ SecurePay - A Business of Australia Post]&lt;br /&gt;
| SecurePay Australia&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [https://www.simplify.com/commerce/ MasterCard]&lt;br /&gt;
| Simplify Commerce by MasterCard&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.skipjack.com/ Skipjack Financial Services, Inc.]&lt;br /&gt;
| SkipJack&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.usaepay.com/ GorCorp Inc.]&lt;br /&gt;
| USA ePay - Transaction Gateway API&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.elavon.com/ Elavon, Inc.]&lt;br /&gt;
| Virtual Merchant - Merchant Provided Form&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.plugnpay.com/ Plug and Pay Technologies]&lt;br /&gt;
| WebXpress&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.worldpay.com/ Worldpay]&lt;br /&gt;
| Worldpay Corporate Gateway - Direct Model&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p, m&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| 3d Secure&amp;lt;br /&amp;gt;built in&lt;br /&gt;
| &lt;br /&gt;
|- style=&amp;quot;vertical-align:top;&amp;quot;&lt;br /&gt;
| [http://www.worldpay.us/ WorldPay US, Inc.]&lt;br /&gt;
| WorldPay US &amp;lt;br /&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| [[File:Check.svg|25px]] + p&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [[File:Check.svg|25px]]&lt;br /&gt;
|- &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments User Manual]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=XPH:About&amp;diff=510</id>
		<title>XPH:About</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=XPH:About&amp;diff=510"/>
		<updated>2016-02-10T11:13:25Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* Trademark policy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;background: #F7F7F7; border: 1px solid #999999; padding: 1em; &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&lt;br /&gt;
[[File:information.gif]] The goal of this website is to provide help on using X-Payments. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The list of Help resources available on X-Payments can be found on the [[Main_Page | Main Page]].&amp;lt;br /&amp;gt;&lt;br /&gt;
The following links provide some additional ways of browsing the site content that may be helpful:&lt;br /&gt;
* [[Special:Allpages/X-Payments:]] - Lists all pages in the X-Payments: namespace.&lt;br /&gt;
* [[Special:RecentChanges]] - Provides a list of recent changes.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Note1}} '''This website should not be used as a discussion board or support desk'''. Any support inquiries should be posted to &amp;lt;u&amp;gt;Message board&amp;lt;/u&amp;gt; under your {{QA}}.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Editorial guidelines==&lt;br /&gt;
&lt;br /&gt;
* Please note that all help articles on X-Payments in this MediaWiki installation must be created in the &amp;quot;X-Payments&amp;quot; namespace. To achieve this, use &amp;quot;X-Payments&amp;quot; as a prefix when naming your pages. The correct format is &amp;quot;X-Payments:Name_of_page&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Feel free to create and use [[:Category:Info templates|Templates]]&lt;br /&gt;
&lt;br /&gt;
* Consult the [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.&lt;br /&gt;
&lt;br /&gt;
==Privacy policy==&lt;br /&gt;
&lt;br /&gt;
See http://www.x-cart.com/privacy-policy.html&lt;br /&gt;
&lt;br /&gt;
==Trademark policy==&lt;br /&gt;
&lt;br /&gt;
See http://www.x-cart.com/trademark-policy.html&lt;br /&gt;
&lt;br /&gt;
==API==&lt;br /&gt;
&lt;br /&gt;
Read http://www.mediawiki.org/wiki/API on how to use MediaWiki API for retrieving data contained within this portal.&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=XPH:About&amp;diff=509</id>
		<title>XPH:About</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=XPH:About&amp;diff=509"/>
		<updated>2016-02-10T11:13:12Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* Privacy policy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;background: #F7F7F7; border: 1px solid #999999; padding: 1em; &amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&lt;br /&gt;
[[File:information.gif]] The goal of this website is to provide help on using X-Payments. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
The list of Help resources available on X-Payments can be found on the [[Main_Page | Main Page]].&amp;lt;br /&amp;gt;&lt;br /&gt;
The following links provide some additional ways of browsing the site content that may be helpful:&lt;br /&gt;
* [[Special:Allpages/X-Payments:]] - Lists all pages in the X-Payments: namespace.&lt;br /&gt;
* [[Special:RecentChanges]] - Provides a list of recent changes.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Note1}} '''This website should not be used as a discussion board or support desk'''. Any support inquiries should be posted to &amp;lt;u&amp;gt;Message board&amp;lt;/u&amp;gt; under your {{QA}}.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Editorial guidelines==&lt;br /&gt;
&lt;br /&gt;
* Please note that all help articles on X-Payments in this MediaWiki installation must be created in the &amp;quot;X-Payments&amp;quot; namespace. To achieve this, use &amp;quot;X-Payments&amp;quot; as a prefix when naming your pages. The correct format is &amp;quot;X-Payments:Name_of_page&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
* Feel free to create and use [[:Category:Info templates|Templates]]&lt;br /&gt;
&lt;br /&gt;
* Consult the [http://meta.wikimedia.org/wiki/Help:Contents User's Guide] for information on using the wiki software.&lt;br /&gt;
&lt;br /&gt;
==Privacy policy==&lt;br /&gt;
&lt;br /&gt;
See http://www.x-cart.com/privacy-policy.html&lt;br /&gt;
&lt;br /&gt;
==Trademark policy==&lt;br /&gt;
&lt;br /&gt;
See http://www.qtmsoft.com/trademark-policy.html&lt;br /&gt;
&lt;br /&gt;
==API==&lt;br /&gt;
&lt;br /&gt;
Read http://www.mediawiki.org/wiki/API on how to use MediaWiki API for retrieving data contained within this portal.&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:API&amp;diff=501</id>
		<title>X-Payments:API</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:API&amp;diff=501"/>
		<updated>2015-12-18T09:05:07Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* Check cart callback request */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== API versions supported ==&lt;br /&gt;
&lt;br /&gt;
'''API v1.1''': X-Payments 1.0.2-1.0.5 &amp;lt;br /&amp;gt;&lt;br /&gt;
'''API v1.2''': X-Payments 1.0.6, 2.0.0, 2.0.1 &amp;lt;br /&amp;gt;&lt;br /&gt;
'''API v1.3''': X-Payments 2.1.0, 2.1.1 &amp;lt;br /&amp;gt;&lt;br /&gt;
'''API v1.4''': X-Payments 2.1.2 (Nov 2014), 2.1.3 (Feb 2015)&amp;lt;br /&amp;gt;&lt;br /&gt;
'''API v1.5''': X-Payments 2.2 (June 2015)&amp;lt;br /&amp;gt;&lt;br /&gt;
'''API v1.6''': X-Payments 2.3 (planned)&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==API requests==&lt;br /&gt;
&lt;br /&gt;
All API requests are made to the '''httрs://&amp;lt;xpayments_url&amp;gt;/api.php''' URL.&lt;br /&gt;
Only HTTPS protocol is used.&lt;br /&gt;
A request is an XML document that is encrypted using RSA method with a key generated by X-Payments.&lt;br /&gt;
&lt;br /&gt;
'''Request/Response encryption'''&lt;br /&gt;
&lt;br /&gt;
* Encryption method used: RSA;&lt;br /&gt;
* Key length: 2048 bit;&lt;br /&gt;
* A private key is created with a 32 character password;&lt;br /&gt;
* The password is generated randomly;&lt;br /&gt;
* The number of password characters varies from 33 to 127.&lt;br /&gt;
&lt;br /&gt;
For each online store X-Payments generates 2 pairs of keys:&lt;br /&gt;
&lt;br /&gt;
# a public and a private key to encrypt requests/responses from the online store to X-Payments;&lt;br /&gt;
# a public and a private key to encrypt requests/responses from X-Payments to the online store.&lt;br /&gt;
&lt;br /&gt;
So when the online store sends a request to X-Payments, this request is encrypted using the public key from the first pair, X-Payments decrypts it using the private key of the first pair. Then X-Payments response is encrypted using the public key of the second pair, and the online store decrypts this response using the private key of the second pair.&lt;br /&gt;
&lt;br /&gt;
To ensure full-featured two-way commumication between X-Payments and an online store, you need to copy tree values from the X-Payments interface:&lt;br /&gt;
:* Public key from the first pair (Online store → X-Payments),&lt;br /&gt;
:* Private key from the second pair (X-Payments → Online store),&lt;br /&gt;
:* Private key password,&lt;br /&gt;
and have them stored on the side of the online store by an appropriate X-Payments connector.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Encryption algorithm:'''&lt;br /&gt;
&lt;br /&gt;
# An empty string is created for pre-prepared data.&lt;br /&gt;
# A 32-character salt-block is formed of random characters from 33 to 255.&lt;br /&gt;
# The length of the salt-block in bites is taken and transformed into a 12-character string by adding zeros before it.&lt;br /&gt;
# The salt-block length string and the salt-block are added to the pre-prepared data.&lt;br /&gt;
# MD5 digital signature is taken from the data. The signature is formed as a HEX (32-character string).&lt;br /&gt;
# The length of the digital signature in bites is taken and transformed into a 12-character string by adding zeros before it.&lt;br /&gt;
# The digital signature length string and the digital signature are added to the pre-prepared data.&lt;br /&gt;
# The length of the data string in bites is taken and transformed into a 12-character string by adding zeros before it.&lt;br /&gt;
# The data string length string and the data string are added to the pre-prepared data.&lt;br /&gt;
# The string of pre-prepared data is divided into 128 bite chunks.&lt;br /&gt;
# Each chunk is encrypted using a public key.&lt;br /&gt;
# Each chunk is encoded with base64.&lt;br /&gt;
# Chunks are glued together using a line feed character (0x0a).&lt;br /&gt;
# API prefix is added to the glued chunks.&lt;br /&gt;
&lt;br /&gt;
===cURL as a means of sending requests===&lt;br /&gt;
&lt;br /&gt;
Using libcurl v.7.10 and above is recommended.&lt;br /&gt;
&lt;br /&gt;
TTL should be specified depending on the performance of the server where X-Payments is installed. The recommended value is 120 seconds.&lt;br /&gt;
&lt;br /&gt;
It is recommended to use SSL v.3 and above.&lt;br /&gt;
&lt;br /&gt;
===Data types===&lt;br /&gt;
&lt;br /&gt;
Data types used:&lt;br /&gt;
&lt;br /&gt;
* string - a UTF-8 string;&lt;br /&gt;
* email - an email address no longer than 255 characters;&lt;br /&gt;
* URL - a URL address no longer than 255 characters;&lt;br /&gt;
* currency - a floating point number denoting a certain sum of money. The mantissa size is the same as the payment currency mantissa size, but not longer than 3. All the exceeding characters will be truncated.&lt;br /&gt;
* integer - an integer number.&lt;br /&gt;
&lt;br /&gt;
ISO 4217 Alpha-3 in the upper register is always used as the payment currency code.&lt;br /&gt;
&lt;br /&gt;
ISO 639-1 Alpha-2 in the lower register is always used as the language code.&lt;br /&gt;
&lt;br /&gt;
==Payment configurations list request==&lt;br /&gt;
&lt;br /&gt;
Returns a list of payment configurations that are configured, enabled, and assigned to this online store/shopping cart.&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment_confs&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal get&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;api_version&amp;gt;1.5&amp;lt;/api_version&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment_confs&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;get&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/name&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Name of the payment configuration, as set by the X-Payments admin&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/id&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Identifier of the payment configuration (autoincrement)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/sale&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Sale&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/auth&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Authorize only&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/capture&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Capture&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/capturePart&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows partial &amp;quot;Capture&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/captureMulti&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows multiple &amp;quot;Capture&amp;quot; operations (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/void&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Void&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/voidPart&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows partial &amp;quot;Void&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/voidMulti&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows multiple &amp;quot;Void&amp;quot; operations (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/refund&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Refund&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/refundPart&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows partial &amp;quot;Refund&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/refundMulti&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows multiple &amp;quot;Refund&amp;quot; operations (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/getInfo&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows to receive information from the payment gateway (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/accept&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Accept&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/decline&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Decline&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/transactionTypes/test&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration allows &amp;quot;Test&amp;quot; operation (&amp;quot;1&amp;quot; - allows, &amp;quot;&amp;quot; empty - doesn't allow)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/authCaptureInfo&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/authCaptureInfo/authExp&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | How many days the transaction can stay in the Authorized status before being declined automatically&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/authCaptureInfo/captMinLimit&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | float&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Minimum capture limit allowed by the payment gateway. Presented as a part of 1 (0 - no minimum limit, 0.2 - minimum 20% of authorized total, 0.5 - 50% of authorized total, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/authCaptureInfo/captMaxLimit&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Maximum capture limit allowed by the payment gateway. Presented as a part of 1 (0 - no maximum limit, 0.5 - 50% of authorized total, 1 - 100% of authorized total, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/moduleName&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Default X-Payments name of the payment configuration&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/settingsHash&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | MD5 hash of the payment configuration settings&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | 3-characters code of currency (ISO 4217). API v1.3 and later.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/canSaveCards&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the payment configuration supports tokenization, i.e. customers' credit card can be saved on the payment gateway (&amp;quot;Y&amp;quot; - supports, &amp;quot;N&amp;quot; - doesn't support). API v1.3 and later.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/class&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Service field of the class name. It is unique for a payment module so it can be used to detect a certain payment gateway. E.g. XPay_Module_SagePayDirect for SagePay, XPay_Module_AuthorizeNet for Authorize.Net AIM, etc. API v1.4 and later.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment_module/isTestMode&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Indicates if the payment configuration is configured in test mode (&amp;quot;Y&amp;quot; - test mode, &amp;quot;N&amp;quot; - live mode). API v1.4 and later.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;payment_module type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;First Data Global Gateway e4(SM) Web Service API&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;id&amp;gt;1&amp;lt;/id&amp;gt;&lt;br /&gt;
    &amp;lt;transactionTypes&amp;gt;&lt;br /&gt;
      &amp;lt;sale&amp;gt;1&amp;lt;/sale&amp;gt;&lt;br /&gt;
      &amp;lt;auth&amp;gt;1&amp;lt;/auth&amp;gt;&lt;br /&gt;
      &amp;lt;capture&amp;gt;1&amp;lt;/capture&amp;gt;&lt;br /&gt;
      &amp;lt;capturePart&amp;gt;1&amp;lt;/capturePart&amp;gt;&lt;br /&gt;
      &amp;lt;captureMulti&amp;gt;&amp;lt;/captureMulti&amp;gt;&lt;br /&gt;
      &amp;lt;void&amp;gt;1&amp;lt;/void&amp;gt;&lt;br /&gt;
      &amp;lt;voidPart&amp;gt;&amp;lt;/voidPart&amp;gt;&lt;br /&gt;
      &amp;lt;voidMulti&amp;gt;&amp;lt;/voidMulti&amp;gt;&lt;br /&gt;
      &amp;lt;refund&amp;gt;1&amp;lt;/refund&amp;gt;&lt;br /&gt;
      &amp;lt;refundPart&amp;gt;1&amp;lt;/refundPart&amp;gt;&lt;br /&gt;
      &amp;lt;refundMulti&amp;gt;1&amp;lt;/refundMulti&amp;gt;&lt;br /&gt;
      &amp;lt;getInfo&amp;gt;&amp;lt;/getInfo&amp;gt;&lt;br /&gt;
      &amp;lt;accept&amp;gt;&amp;lt;/accept&amp;gt;&lt;br /&gt;
      &amp;lt;decline&amp;gt;&amp;lt;/decline&amp;gt;&lt;br /&gt;
      &amp;lt;test&amp;gt;&amp;lt;/test&amp;gt;&lt;br /&gt;
    &amp;lt;/transactionTypes&amp;gt;&lt;br /&gt;
    &amp;lt;authCaptureInfo&amp;gt;&lt;br /&gt;
      &amp;lt;authExp&amp;gt;30&amp;lt;/authExp&amp;gt;&lt;br /&gt;
      &amp;lt;captMinLimit&amp;gt;0&amp;lt;/captMinLimit&amp;gt;&lt;br /&gt;
      &amp;lt;captMaxLimit&amp;gt;1&amp;lt;/captMaxLimit&amp;gt;&lt;br /&gt;
    &amp;lt;/authCaptureInfo&amp;gt;&lt;br /&gt;
    &amp;lt;moduleName&amp;gt;First Data Payeezy Gateway (ex- Global Gateway e4)&amp;lt;/moduleName&amp;gt;&lt;br /&gt;
    &amp;lt;settingsHash&amp;gt;d41d8cd98f00b204e9800998ecf8427e&amp;lt;/settingsHash&amp;gt;&lt;br /&gt;
    &amp;lt;currency&amp;gt;USD&amp;lt;/currency&amp;gt;&lt;br /&gt;
    &amp;lt;canSaveCards&amp;gt;Y&amp;lt;/canSaveCards&amp;gt;&lt;br /&gt;
    &amp;lt;class&amp;gt;XPay_Module_FirstDataE4&amp;lt;/class&amp;gt;&lt;br /&gt;
    &amp;lt;isTestMode&amp;gt;Y&amp;lt;/isTestMode&amp;gt;&lt;br /&gt;
  &amp;lt;/payment_module&amp;gt;&lt;br /&gt;
  &amp;lt;payment_module type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Chase Paymentech&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;id&amp;gt;2&amp;lt;/id&amp;gt;&lt;br /&gt;
    &amp;lt;transactionTypes&amp;gt;&lt;br /&gt;
      &amp;lt;sale&amp;gt;1&amp;lt;/sale&amp;gt;&lt;br /&gt;
      &amp;lt;auth&amp;gt;1&amp;lt;/auth&amp;gt;&lt;br /&gt;
      &amp;lt;capture&amp;gt;1&amp;lt;/capture&amp;gt;&lt;br /&gt;
      &amp;lt;capturePart&amp;gt;1&amp;lt;/capturePart&amp;gt;&lt;br /&gt;
      &amp;lt;captureMulti&amp;gt;&amp;lt;/captureMulti&amp;gt;&lt;br /&gt;
      &amp;lt;void&amp;gt;1&amp;lt;/void&amp;gt;&lt;br /&gt;
      &amp;lt;voidPart&amp;gt;&amp;lt;/voidPart&amp;gt;&lt;br /&gt;
      &amp;lt;voidMulti&amp;gt;&amp;lt;/voidMulti&amp;gt;&lt;br /&gt;
      &amp;lt;refund&amp;gt;1&amp;lt;/refund&amp;gt;&lt;br /&gt;
      &amp;lt;refundPart&amp;gt;1&amp;lt;/refundPart&amp;gt;&lt;br /&gt;
      &amp;lt;refundMulti&amp;gt;&amp;lt;/refundMulti&amp;gt;&lt;br /&gt;
      &amp;lt;getInfo&amp;gt;&amp;lt;/getInfo&amp;gt;&lt;br /&gt;
      &amp;lt;accept&amp;gt;&amp;lt;/accept&amp;gt;&lt;br /&gt;
      &amp;lt;decline&amp;gt;&amp;lt;/decline&amp;gt;&lt;br /&gt;
      &amp;lt;test&amp;gt;&amp;lt;/test&amp;gt;&lt;br /&gt;
    &amp;lt;/transactionTypes&amp;gt;&lt;br /&gt;
    &amp;lt;authCaptureInfo&amp;gt;&lt;br /&gt;
      &amp;lt;authExp&amp;gt;30&amp;lt;/authExp&amp;gt;&lt;br /&gt;
      &amp;lt;captMinLimit&amp;gt;0&amp;lt;/captMinLimit&amp;gt;&lt;br /&gt;
      &amp;lt;captMaxLimit&amp;gt;1&amp;lt;/captMaxLimit&amp;gt;&lt;br /&gt;
    &amp;lt;/authCaptureInfo&amp;gt;&lt;br /&gt;
    &amp;lt;moduleName&amp;gt;Chase Paymentech&amp;lt;/moduleName&amp;gt;&lt;br /&gt;
    &amp;lt;settingsHash&amp;gt;d41d8cd98f00b204e9800998ecf8427e&amp;lt;/settingsHash&amp;gt;&lt;br /&gt;
    &amp;lt;currency&amp;gt;USD&amp;lt;/currency&amp;gt;&lt;br /&gt;
    &amp;lt;canSaveCards&amp;gt;Y&amp;lt;/canSaveCards&amp;gt;&lt;br /&gt;
    &amp;lt;class&amp;gt;XPay_Module_Chase&amp;lt;/class&amp;gt;&lt;br /&gt;
    &amp;lt;isTestMode&amp;gt;Y&amp;lt;/isTestMode&amp;gt;&lt;br /&gt;
  &amp;lt;/payment_module&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Test connection request==&lt;br /&gt;
Use this request to test the connection between the store and X-Payments. It can also help to detect the version of the X-Payments installation and the API version supported by X-Payments.&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal connect&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal test&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | testCode&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Any string&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;testCode&amp;gt;123&amp;lt;/testCode&amp;gt;&lt;br /&gt;
&amp;lt;api_version&amp;gt;1.5&amp;lt;/api_version&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;connect&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;test&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | hashCode&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | MD5 hash of the sent code&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | error&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Error code (if any)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | error_message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Error message&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | is_error_message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Flag indicating the error message presence &lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | X-Payments version&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
Example of a good response:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;hashCode&amp;gt;202cb962ac59075b964b07152d234b70&amp;lt;/hashCode&amp;gt;&lt;br /&gt;
  &amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
  &amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
  &amp;lt;is_error_message&amp;gt;&amp;lt;/is_error_message&amp;gt;&lt;br /&gt;
  &amp;lt;version&amp;gt;2.2.0&amp;lt;/version&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example of a response with an error:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;error&amp;gt;506&amp;lt;/error&amp;gt;&lt;br /&gt;
  &amp;lt;error_message&amp;gt;Your X-Payments connector module supports API version &amp;quot;1.9&amp;quot;. This X-Payments supports the following API versions only: &amp;quot;1.1, 1.2, 1.3, 1.4, 1.5, 1.6&amp;quot;.&amp;lt;/error_message&amp;gt;&lt;br /&gt;
  &amp;lt;is_error_message&amp;gt;&amp;lt;/is_error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Payment initialisation request==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal init&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | confId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Payment module configuration ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | refId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Order ID in the online store&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | returnUrl&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | URL, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | URL of the page to redirect the customer after payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | callbackUrl&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | URL, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | URL to which X-Payments sends background requests with service information&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | language&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | code of ISO 639-1 (Alpha-2)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Language code. If not specified - en&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A container with addresses description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A container with the billing address description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/firstname&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/lastname&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/company&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/address&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/city&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/state&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/country&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/zipcode&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/email&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | emai, 255l&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/phone&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/billingAddress/fax&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A container with the shipping address description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/firstname&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/lastname&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/company&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/address&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/city&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/state&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/country&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/zipcode&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/email&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | email, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/phone&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingAddress/fax&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/items&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A container with product description&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/items/sku&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 64&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | SKU (product code)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/items/name&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Product name&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/items/price&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Product item price&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/items/quantity&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Ordered number of products. If not specified - 1&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/login&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique customer ID in the online store (login, username, userid, etc.)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 3&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Payment currency code (ISO 4217 Alpha-3). If not specified, default payment configuration currency is used&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/shippingCost&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Shipping cost. By default - 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/taxCost&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Tax amount. By default - 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/discount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Discount amount. By default - 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/totalCost&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Total payment amount. Must equal to a sum of cart/items/price * cart/items/quantity + cart/shippingCost + cart/taxCost - cart/discount&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/description&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/merchantEmail&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | email, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart/forceTransactionType&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | -&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | one of values: A or S or empty &amp;lt;br /&amp;gt;A - authorize &amp;lt;br /&amp;gt;S - sale&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A flag of forced Sale or Authorize operation. Overrides the setting from the payment configuration. If the value is empty or the field is omitted, the operation is performed according to the payment configuration settings.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | template &amp;lt;br /&amp;gt;(''supported by API 1.3 and later'')&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | The name of a template in X-Payments requested by the store. Forces the use of the specified template for the payment. If the string passed in this field does not match any template available in X-Payments, it will be ignored.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | saveCard &amp;lt;br /&amp;gt;(''supported by API 1.3 and later'')&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Customer's choice at checkout (“Y” if customer would like to save the card)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;  | cart/kountCustomerUniq &amp;lt;br /&amp;gt;(''supported by API 1.6 and later'')&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;  | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;  | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;  | This field is a unique customer identifier in the Kount system, which is send as a UNIQ field.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''List of template names in X-Payments 2.1.x (API v1.3)''':&lt;br /&gt;
:* '''default''': A template for the separate page. Used if the payment form is displayed on a separate page of your checkout process (not iframe).&lt;br /&gt;
:* '''fast''': Iframe for X-Cart 4 Fast Lane Checkout. Used for X-Cart 4 with the Fast Lane Checkout module. The payment form is displayed at the last step of the checkout process.&lt;br /&gt;
:* '''lite''': Iframe for X-Cart 4 One Page Checkout. Used for X-Cart 4 with the One Page Checkout module. The payment form is displayed in the payment section at checkout.&lt;br /&gt;
:* '''magento_iframe''': Iframe for Magento. Use this template for Magento and iframe.&lt;br /&gt;
:* '''mobile''': Template for mobile devices. Used with the X-Cart Mobile module.&lt;br /&gt;
:* '''xc5''': Iframe for X-Cart 5. Used for X-Cart 5 and iframe.&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;confId&amp;gt;8&amp;lt;/confId&amp;gt;&lt;br /&gt;
&amp;lt;refId&amp;gt;1120&amp;lt;/refId&amp;gt;&lt;br /&gt;
&amp;lt;cart&amp;gt;&lt;br /&gt;
&amp;lt;login&amp;gt;customer&amp;lt;/login&amp;gt;&lt;br /&gt;
&amp;lt;billingAddress&amp;gt;&lt;br /&gt;
&amp;lt;firstname&amp;gt;John&amp;lt;/firstname&amp;gt;&lt;br /&gt;
&amp;lt;lastname&amp;gt;Smith&amp;lt;/lastname&amp;gt;&lt;br /&gt;
&amp;lt;address&amp;gt;10 Main street&amp;lt;/address&amp;gt;&lt;br /&gt;
&amp;lt;city&amp;gt;Fillmore&amp;lt;/city&amp;gt;&lt;br /&gt;
&amp;lt;state&amp;gt;UT&amp;lt;/state&amp;gt;&lt;br /&gt;
&amp;lt;country&amp;gt;US&amp;lt;/country&amp;gt;&lt;br /&gt;
&amp;lt;zipcode&amp;gt;84631&amp;lt;/zipcode&amp;gt;&lt;br /&gt;
&amp;lt;company&amp;gt;IQ testing&amp;lt;/company&amp;gt;&lt;br /&gt;
&amp;lt;email&amp;gt;bit-bucket@x-cart.com&amp;lt;/email&amp;gt;&lt;br /&gt;
&amp;lt;phone&amp;gt;927348572&amp;lt;/phone&amp;gt;&lt;br /&gt;
&amp;lt;fax&amp;gt;&amp;lt;/fax&amp;gt;&lt;br /&gt;
&amp;lt;/billingAddress&amp;gt;&lt;br /&gt;
&amp;lt;shippingAddress&amp;gt;&lt;br /&gt;
&amp;lt;firstname&amp;gt;John&amp;lt;/firstname&amp;gt;&lt;br /&gt;
&amp;lt;lastname&amp;gt;Smith&amp;lt;/lastname&amp;gt;&lt;br /&gt;
&amp;lt;address&amp;gt;10 Main street&amp;lt;/address&amp;gt;&lt;br /&gt;
&amp;lt;city&amp;gt;Fillmore&amp;lt;/city&amp;gt;&lt;br /&gt;
&amp;lt;state&amp;gt;UT&amp;lt;/state&amp;gt;&lt;br /&gt;
&amp;lt;country&amp;gt;US&amp;lt;/country&amp;gt;&lt;br /&gt;
&amp;lt;zipcode&amp;gt;84631&amp;lt;/zipcode&amp;gt;&lt;br /&gt;
&amp;lt;company&amp;gt;IQ testing&amp;lt;/company&amp;gt;&lt;br /&gt;
&amp;lt;email&amp;gt;bit-bucket@x-cart.com&amp;lt;/email&amp;gt;&lt;br /&gt;
&amp;lt;phone&amp;gt;927348572&amp;lt;/phone&amp;gt;&lt;br /&gt;
&amp;lt;fax&amp;gt;&amp;lt;/fax&amp;gt;&lt;br /&gt;
&amp;lt;/shippingAddress&amp;gt;&lt;br /&gt;
&amp;lt;items type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;sku&amp;gt;SKU17513&amp;lt;/sku&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt;Three Stone Princess Cut Diamond Ring&amp;lt;/name&amp;gt;&lt;br /&gt;
&amp;lt;price&amp;gt;399.99&amp;lt;/price&amp;gt;&lt;br /&gt;
&amp;lt;quantity&amp;gt;1&amp;lt;/quantity&amp;gt;&lt;br /&gt;
&amp;lt;/items&amp;gt;&lt;br /&gt;
&amp;lt;currency&amp;gt;USD&amp;lt;/currency&amp;gt;&lt;br /&gt;
&amp;lt;shippingCost&amp;gt;15&amp;lt;/shippingCost&amp;gt;&lt;br /&gt;
&amp;lt;taxCost&amp;gt;0&amp;lt;/taxCost&amp;gt;&lt;br /&gt;
&amp;lt;discount&amp;gt;0&amp;lt;/discount&amp;gt;&lt;br /&gt;
&amp;lt;totalCost&amp;gt;414.99&amp;lt;/totalCost&amp;gt;&lt;br /&gt;
&amp;lt;description&amp;gt;Order(s) #1120&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;merchantEmail&amp;gt;bit-bucket@x-cart.com&amp;lt;/merchantEmail&amp;gt;&lt;br /&gt;
&amp;lt;forceTransactionType&amp;gt;&amp;lt;/forceTransactionType&amp;gt;&lt;br /&gt;
&amp;lt;/cart&amp;gt;&lt;br /&gt;
&amp;lt;returnUrl&amp;gt;https://example.com/xcart/payment/cc_xpc.php&amp;lt;/returnUrl&amp;gt;&lt;br /&gt;
&amp;lt;callbackUrl&amp;gt;https://example.com/xcart/payment/cc_xpc.php&amp;lt;/callbackUrl&amp;gt;&lt;br /&gt;
&amp;lt;language&amp;gt;ru&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;init&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | token&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string,32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Temporary payment token, expires immediately after the customer has submitted the cardholder data form&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string,32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A unique payment ID. Is used for all further requests to this payment through the API.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;token&amp;gt;41b2ef3b34698d4f6ed73151ae7307d2&amp;lt;/token&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
&amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Redirecting a customer to the cardholder data entering page==&lt;br /&gt;
&lt;br /&gt;
A POST form is created that sends data to the URL &amp;lt;XPayments_web_root&amp;gt;/payment.php; the form contains the following fields:&lt;br /&gt;
&lt;br /&gt;
* target - has the value &amp;quot;main&amp;quot;;&lt;br /&gt;
* token - uses the value from the token field received in the response to the payment initialisation request.&lt;br /&gt;
&lt;br /&gt;
Request protocol - HTTPS &amp;lt;br /&amp;gt;&lt;br /&gt;
The form must be sent by the POST method. All data must also be sent as POST variables.&lt;br /&gt;
&lt;br /&gt;
==Payment information request==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal get_info&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | refresh&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | 0 или 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A flag specifying that the data in X-Payments must be overwritten by the data from the payment gateway. By default - 0&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;refresh&amp;gt;0&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;get_info&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | [[#Payment status codes|Payment status code]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Human readable message containing the payment status&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | isFraudStatus&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | 0 or 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Means that the payment is blocked by the gateway, because the customer has not passed the gateway security check&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 3&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Payment currency code&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | amount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Payment total&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | authorized&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Authorized payment total&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | chargedAmount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Charged payment total&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | capturedAmount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Captured amount of the authorized amount&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | capturedAmountAvail&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that is authorized and can be captured&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | voidedAmount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that is authorized but voided&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | voidedAmountAvail&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that is authorized and can be voided&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | refundedAmount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that can be refunded&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | refundedAmountAvail&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that can be refunded&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | fraudAuthorized&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A part of the authorized amount that was blocked by the gateway because the customer had not passed the gateway security check&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | fraudCharged&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A part of the charged amount that was blocked by the gateway because the customer had not passed the gateway security check&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | authorizeInProgress&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A part of the authorized amount that is being handled by the gateway&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | chargeInProgress&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A part of the charged amount that is being handled by the gateway&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactionInProgress&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | 0 или 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Are there any payment transactions handled by the gateway?&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | capturedAmountAvailMin&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Minimum amount that can be captured from the authorized amount&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | capturedAmountAvailGateway&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that can be captured from the authorized amount through the gateway&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | capturedAmountAvailMinGateway&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Minimum amount that can be captured from the authorized amount through the gateway&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | voidedAmountAvailGateway&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that can be voided from the authorized amount through the gateway&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | refundedAmountAvailGateway&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount that can be refunded from the authorized amount through the gateway&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | lastMessage&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Last gateway message&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | error&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Error code&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | error_message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Error message&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{{Note|Fields ending in &amp;quot;Gateway&amp;quot; contain amounts that can be used in transactions through the gateway. For example, if a sum of $100 was authorized, and then a capture transaction was emulated for $100, the next refund operation will be available in the emulation mode only. The value of the refundedAmountAvailGateway field will be equal to 0.}}&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;2&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;message&amp;gt;Payment is authorized&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;isFraudStatus&amp;gt;&amp;lt;/isFraudStatus&amp;gt;&lt;br /&gt;
&amp;lt;currency&amp;gt;USD&amp;lt;/currency&amp;gt;&lt;br /&gt;
&amp;lt;amount&amp;gt;414.99&amp;lt;/amount&amp;gt;&lt;br /&gt;
&amp;lt;authorized&amp;gt;414.99&amp;lt;/authorized&amp;gt;&lt;br /&gt;
&amp;lt;chargedAmount&amp;gt;0.00&amp;lt;/chargedAmount&amp;gt;&lt;br /&gt;
&amp;lt;capturedAmount&amp;gt;0.00&amp;lt;/capturedAmount&amp;gt;&lt;br /&gt;
&amp;lt;capturedAmountAvail&amp;gt;414.99&amp;lt;/capturedAmountAvail&amp;gt;&lt;br /&gt;
&amp;lt;voidedAmount&amp;gt;0.00&amp;lt;/voidedAmount&amp;gt;&lt;br /&gt;
&amp;lt;voidedAmountAvail&amp;gt;414.99&amp;lt;/voidedAmountAvail&amp;gt;&lt;br /&gt;
&amp;lt;refundedAmount&amp;gt;0.00&amp;lt;/refundedAmount&amp;gt;&lt;br /&gt;
&amp;lt;refundedAmountAvail&amp;gt;0.00&amp;lt;/refundedAmountAvail&amp;gt;&lt;br /&gt;
&amp;lt;fraudAuthorized&amp;gt;0.00&amp;lt;/fraudAuthorized&amp;gt;&lt;br /&gt;
&amp;lt;fraudCharged&amp;gt;0.00&amp;lt;/fraudCharged&amp;gt;&lt;br /&gt;
&amp;lt;authorizeInProgress&amp;gt;0.00&amp;lt;/authorizeInProgress&amp;gt;&lt;br /&gt;
&amp;lt;chargeInProgress&amp;gt;0.00&amp;lt;/chargeInProgress&amp;gt;&lt;br /&gt;
&amp;lt;transactionInProgress&amp;gt;&amp;lt;/transactionInProgress&amp;gt;&lt;br /&gt;
&amp;lt;capturedAmountAvailMin&amp;gt;0.00&amp;lt;/capturedAmountAvailMin&amp;gt;&lt;br /&gt;
&amp;lt;capturedAmountAvailGateway&amp;gt;414.99&amp;lt;/capturedAmountAvailGateway&amp;gt;&lt;br /&gt;
&amp;lt;capturedAmountAvailMinGateway&amp;gt;0.00&amp;lt;/capturedAmountAvailMinGateway&amp;gt;&lt;br /&gt;
&amp;lt;voidedAmountAvailGateway&amp;gt;414.99&amp;lt;/voidedAmountAvailGateway&amp;gt;&lt;br /&gt;
&amp;lt;refundedAmountAvailGateway&amp;gt;0.00&amp;lt;/refundedAmountAvailGateway&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;8e67e0da23ce7ed451b2c1adbbd7373c&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;lastMessage&amp;gt;Success&amp;lt;/lastMessage&amp;gt;&lt;br /&gt;
&amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
&amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Detailed payment and transaction information request==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal get_additional_info&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A unique payment ID received in the payment initialisation request response&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;get_additional_info&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Payment information request response&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Transaction list&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/date&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 11&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Transaction date (Unix timestamp)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Transaction name&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Transaction status&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Gateway transaction message&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/total&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Transaction amount and currency&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/txnid&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Gateway transaction unique ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/payment_status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | The payment status after the transaction&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/fields&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Transaction additional fields list&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/fields/name&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Field name&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | transactions/fields/name&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 255&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Field value&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/cardValidation &amp;lt;br /&amp;gt;(API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container for Address validation system (AVS)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/cardValidation/avs_z &amp;lt;br /&amp;gt;(API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Flag for AVS ZIP-code (&amp;quot;0&amp;quot; - unknown, &amp;quot;1&amp;quot; - matches, &amp;quot;2&amp;quot; - does not match)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/cardValidation/avs_c (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Flag for AVS cardholder name (&amp;quot;0&amp;quot; - unknown, &amp;quot;1&amp;quot; - matches, &amp;quot;2&amp;quot; - does not match)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/cardValidation/avs_a (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Flag for AVS street address (&amp;quot;0&amp;quot; - unknown, &amp;quot;1&amp;quot; - matches, &amp;quot;2&amp;quot; - does not match)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/cardValidation/cvv (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Flag for CVV/CVV2/CVD (&amp;quot;0&amp;quot; - unknown, &amp;quot;1&amp;quot; - matches, &amp;quot;2&amp;quot; - does not match)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/maskedCardData (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container for Credit Card details (which are allowed to store and display by PA-DSS)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/maskedCardData/first6 (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | First six digits of the credit card number&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/maskedCardData/last4 (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Last four digits of the credit card number&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/maskedCardData/type (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Credit card type: VISA, MC, AMEX, etc&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/maskedCardData/expire_month (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Credit card expiration month&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | payment/maskedCardData/expire_year (API 1.5 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Credit card expiration year&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
  &amp;lt;payment&amp;gt;&lt;br /&gt;
    &amp;lt;status&amp;gt;2&amp;lt;/status&amp;gt;&lt;br /&gt;
    &amp;lt;message&amp;gt;Payment is authorized&amp;lt;/message&amp;gt;&lt;br /&gt;
    &amp;lt;isFraudStatus&amp;gt;1&amp;lt;/isFraudStatus&amp;gt;&lt;br /&gt;
    &amp;lt;currency&amp;gt;USD&amp;lt;/currency&amp;gt;&lt;br /&gt;
    &amp;lt;amount&amp;gt;10.61&amp;lt;/amount&amp;gt;&lt;br /&gt;
    &amp;lt;authorized&amp;gt;10.61&amp;lt;/authorized&amp;gt;&lt;br /&gt;
    &amp;lt;chargedAmount&amp;gt;0.00&amp;lt;/chargedAmount&amp;gt;&lt;br /&gt;
    &amp;lt;capturedAmount&amp;gt;0.00&amp;lt;/capturedAmount&amp;gt;&lt;br /&gt;
    &amp;lt;capturedAmountAvail&amp;gt;10.61&amp;lt;/capturedAmountAvail&amp;gt;&lt;br /&gt;
    &amp;lt;voidedAmount&amp;gt;0.00&amp;lt;/voidedAmount&amp;gt;&lt;br /&gt;
    &amp;lt;voidedAmountAvail&amp;gt;10.61&amp;lt;/voidedAmountAvail&amp;gt;&lt;br /&gt;
    &amp;lt;refundedAmount&amp;gt;0.00&amp;lt;/refundedAmount&amp;gt;&lt;br /&gt;
    &amp;lt;refundedAmountAvail&amp;gt;0.00&amp;lt;/refundedAmountAvail&amp;gt;&lt;br /&gt;
    &amp;lt;fraudAuthorized&amp;gt;0.00&amp;lt;/fraudAuthorized&amp;gt;&lt;br /&gt;
    &amp;lt;fraudCharged&amp;gt;0.00&amp;lt;/fraudCharged&amp;gt;&lt;br /&gt;
    &amp;lt;authorizeInProgress&amp;gt;0.00&amp;lt;/authorizeInProgress&amp;gt;&lt;br /&gt;
    &amp;lt;chargeInProgress&amp;gt;0.00&amp;lt;/chargeInProgress&amp;gt;&lt;br /&gt;
    &amp;lt;advinfo&amp;gt;&lt;br /&gt;
      &amp;lt;Message&amp;gt;&amp;lt;/Message&amp;gt;&lt;br /&gt;
      &amp;lt;Response code&amp;gt;1&amp;lt;/Response&amp;gt;&lt;br /&gt;
      &amp;lt;txn_id&amp;gt;6583&amp;lt;/txn_id&amp;gt;&lt;br /&gt;
      &amp;lt;Authorization number&amp;gt;ET154399&amp;lt;/Authorization&amp;gt;&lt;br /&gt;
      &amp;lt;AVS&amp;gt;5: Cardholder name incorrect, billing address and postal code match&amp;lt;/AVS&amp;gt;&lt;br /&gt;
      &amp;lt;Bank message&amp;gt;Approved&amp;lt;/Bank&amp;gt;&lt;br /&gt;
      &amp;lt;Bank response code&amp;gt;100&amp;lt;/Bank&amp;gt;&lt;br /&gt;
      &amp;lt;CVV2&amp;gt;M: CVV2 / CVC2/CVD Match.&amp;lt;/CVV2&amp;gt;&lt;br /&gt;
      &amp;lt;Processing status&amp;gt;Transaction Normal&amp;lt;/Processing&amp;gt;&lt;br /&gt;
      &amp;lt;Transarmor Token&amp;gt;8393008475641111&amp;lt;/Transarmor&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] 702650&amp;gt;Distance from Device to Billing &amp;amp;gt; 1000km&amp;lt;/[Kount] 702650&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] 702656&amp;gt;Billing Country not equal to BIN Country (Visa/MC)&amp;lt;/[Kount] 702656&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] 702662&amp;gt;Billing Country not equal to Device Country&amp;lt;/[Kount] 702662&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] Auto&amp;gt;R&amp;lt;/[Kount] Auto&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] Errors&amp;gt;&amp;lt;/[Kount] Errors&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] Score&amp;gt;26&amp;lt;/[Kount] Score&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] Transaction ID&amp;gt;3Z7903KDCTT0&amp;lt;/[Kount] Transaction ID&amp;gt;&lt;br /&gt;
      &amp;lt;[Kount] Warnings&amp;gt;&amp;lt;/[Kount] Warnings&amp;gt;&lt;br /&gt;
    &amp;lt;/advinfo&amp;gt;&lt;br /&gt;
    &amp;lt;transactionInProgress&amp;gt;&amp;lt;/transactionInProgress&amp;gt;&lt;br /&gt;
    &amp;lt;capturedAmountAvailMin&amp;gt;0.00&amp;lt;/capturedAmountAvailMin&amp;gt;&lt;br /&gt;
    &amp;lt;capturedAmountAvailGateway&amp;gt;10.61&amp;lt;/capturedAmountAvailGateway&amp;gt;&lt;br /&gt;
    &amp;lt;capturedAmountAvailMinGateway&amp;gt;0.00&amp;lt;/capturedAmountAvailMinGateway&amp;gt;&lt;br /&gt;
    &amp;lt;voidedAmountAvailGateway&amp;gt;10.61&amp;lt;/voidedAmountAvailGateway&amp;gt;&lt;br /&gt;
    &amp;lt;refundedAmountAvailGateway&amp;gt;0.00&amp;lt;/refundedAmountAvailGateway&amp;gt;&lt;br /&gt;
    &amp;lt;cardValidation&amp;gt;&lt;br /&gt;
      &amp;lt;avs_z&amp;gt;1&amp;lt;/avs_z&amp;gt;&lt;br /&gt;
      &amp;lt;avs_c&amp;gt;2&amp;lt;/avs_c&amp;gt;&lt;br /&gt;
      &amp;lt;avs_a&amp;gt;1&amp;lt;/avs_a&amp;gt;&lt;br /&gt;
      &amp;lt;cvv&amp;gt;1&amp;lt;/cvv&amp;gt;&lt;br /&gt;
    &amp;lt;/cardValidation&amp;gt;&lt;br /&gt;
    &amp;lt;maskedCardData&amp;gt;&lt;br /&gt;
      &amp;lt;first6&amp;gt;411111&amp;lt;/first6&amp;gt;&lt;br /&gt;
      &amp;lt;last4&amp;gt;1111&amp;lt;/last4&amp;gt;&lt;br /&gt;
      &amp;lt;type&amp;gt;VISA&amp;lt;/type&amp;gt;&lt;br /&gt;
      &amp;lt;expire_month&amp;gt;03&amp;lt;/expire_month&amp;gt;&lt;br /&gt;
      &amp;lt;expire_year&amp;gt;2020&amp;lt;/expire_year&amp;gt;&lt;br /&gt;
    &amp;lt;/maskedCardData&amp;gt;&lt;br /&gt;
  &amp;lt;/payment&amp;gt;&lt;br /&gt;
  &amp;lt;transactions type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;date&amp;gt;1438098759&amp;lt;/date&amp;gt;&lt;br /&gt;
    &amp;lt;action&amp;gt;Authorize&amp;lt;/action&amp;gt;&lt;br /&gt;
    &amp;lt;status&amp;gt;Success&amp;lt;/status&amp;gt;&lt;br /&gt;
    &amp;lt;message&amp;gt;Transaction Normal&amp;lt;/message&amp;gt;&lt;br /&gt;
    &amp;lt;total&amp;gt;10.61 USD&amp;lt;/total&amp;gt;&lt;br /&gt;
    &amp;lt;txnid&amp;gt;57629270&amp;lt;/txnid&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Authorization number&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;ET154399&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;AVS&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;5: Cardholder name incorrect, billing address and postal code match&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Bank message&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;Approved&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Bank response code&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;100&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;CVV2&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;M: CVV2 / CVC2/CVD Match.&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Processing status&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;Transaction Normal&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;Transarmor Token&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;8393008475641111&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;[Kount] 702650&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;Distance from Device to Billing &amp;amp;gt; 1000km&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;[Kount] 702656&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;Billing Country not equal to BIN Country (Visa/MC)&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;[Kount] 702662&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;Billing Country not equal to Device Country&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;[Kount] Auto&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;R&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;[Kount] Score&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;26&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;fields type=&amp;quot;cell&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;name&amp;gt;[Kount] Transaction ID&amp;lt;/name&amp;gt;&lt;br /&gt;
      &amp;lt;value&amp;gt;3Z7903KDCTT0&amp;lt;/value&amp;gt;&lt;br /&gt;
    &amp;lt;/fields&amp;gt;&lt;br /&gt;
    &amp;lt;payment_status&amp;gt;Charged&amp;lt;/payment_status&amp;gt;&lt;br /&gt;
  &amp;lt;/transactions&amp;gt;&lt;br /&gt;
  &amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
  &amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
  &amp;lt;is_error_message&amp;gt;&amp;lt;/is_error_message&amp;gt;&lt;br /&gt;
  &amp;lt;version&amp;gt;2.2.0&amp;lt;/version&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
''The following pertains to API 1.5 and later:''&amp;lt;br /&amp;gt;&lt;br /&gt;
If the transaction was checked by Kount antifraud screening service, the &amp;quot;advinfo&amp;quot; and &amp;quot;tansaction/fields&amp;quot; containers contain information of kount results. The field names related to Kount start with the [Kount] prefix. The information can be extracted as follows:&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| [Kount] %%%%%, where %%%%% is some number&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| triggered rule, the number is the number of this rule&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| [Kount] Auto&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| The status of the transaction in Kount (&amp;quot;R&amp;quot; - review, &amp;quot;D&amp;quot; - declined, &amp;quot;A&amp;quot; - approved)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| [Kount] Errors&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| list of errors (if any)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| [Kount] Warnings: &lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| list of warnings (if any)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| [Kount] Score&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;|  Risk score&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| [Kount] Transaction ID&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot;| Transaction ID in Kount, can be used to display the direct link to the transaction in Kount, https://awc.test.kount.net/workflow/detail.html?id=%%%%%% for test mode or https://awc.kount.net/workflow/detail.html?id=%%%%%%, where %%%%% should be replaced with the transaction ID&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Capture authorized transaction request==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string,128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal capture&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | amount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | The amount to capture from the previously authorized transaction. By default equals the amount of the authorized transaction&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Request example ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;amount&amp;gt;50.00&amp;lt;/amount&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;capture&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | [[#Operation status codes|Operation status code]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Gateway transaction message&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Response example  &amp;lt;pre&amp;gt;&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;1&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
&amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Void authorized transaction request==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal void&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | amount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount to void of the authorized transaction. By default equals to the amount of the authorized transaction&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;amount&amp;gt;50.00&amp;lt;/amount&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;void&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | [[#Operation status codes|Operation status code]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Gateway transaction message&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;1&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
&amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Refund captured transaction request==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal capture&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | amount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Amount to be refunded to the customer of the previously captured transactions. By default equals to the amount of captured transactions&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;amount&amp;gt;50.00&amp;lt;/amount&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;refund&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | [[#Operation status codes|Operation status code]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Gateway transaction message&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;1&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
&amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Blocked by gateway transaction accept request (Accept)==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal accept&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;accept&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | [[#Operation status codes|Operation status code]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Gateway transaction message&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Response example  &amp;lt;pre&amp;gt;&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;1&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
&amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Blocked by gateway transaction decline request (Decline)==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal decline&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;decline&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | [[#Operation status codes|Operation status code]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | message&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 65536&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Gateway transaction message&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Response example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;data&amp;gt;&lt;br /&gt;
&amp;lt;status&amp;gt;1&amp;lt;/status&amp;gt;&lt;br /&gt;
&amp;lt;message&amp;gt;Success&amp;lt;/message&amp;gt;&lt;br /&gt;
&amp;lt;error&amp;gt;&amp;lt;/error&amp;gt;&lt;br /&gt;
&amp;lt;error_message&amp;gt;&amp;lt;/error_message&amp;gt;&lt;br /&gt;
&amp;lt;/data&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Charge again transaction request (Tokenization)==&lt;br /&gt;
&lt;br /&gt;
===Request specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | target&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal payment&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal recharge&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 32&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Unique payment ID which references the token that will be used to identify the payment on the side of the payment gateway&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | amount&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | currency&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | The amount for which the &amp;quot;saved&amp;quot; card is to be charged using the token from the previous successful transaction&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | description&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Description of the transaction&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | api_version&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Must equal one of the following: 1.2, 1.3, 1.4, 1.5 etc.&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | refId (supported by API 1.4 and later)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string, 128&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Order ID in the online store&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Request example===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;txnId&amp;gt;e7f398cee98ec062abac0d2c937da181&amp;lt;/txnId&amp;gt;&lt;br /&gt;
&amp;lt;amount&amp;gt;50.00&amp;lt;/amount&amp;gt;&lt;br /&gt;
&amp;lt;description&amp;gt;Recurring payment for the new issue of Playboy&amp;lt;/description&amp;gt;&lt;br /&gt;
&amp;lt;target&amp;gt;payment&amp;lt;/target&amp;gt;&lt;br /&gt;
&amp;lt;action&amp;gt;recharge&amp;lt;/action&amp;gt;&lt;br /&gt;
&amp;lt;api_version&amp;gt;1.2&amp;lt;/api_version&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Response specification===&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer, 1&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | [[#Operation status codes|Operation status code]]&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | data&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | array&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | data[status]&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | integer&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Status of the new payment (See [[#Payment status codes|Payment status codes]])&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | data[transaction_id]&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | ID of the created payment for further references (capture/void/refund etc)&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | data[error]&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | data[error_message]&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | data[is_error_message]&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; |&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Callback request with service payment information==&lt;br /&gt;
&lt;br /&gt;
This is a background request that X-Payments sends to the store after a payment has been completed and it’s result (accepted, declined, etc) has been received from the payment gateway.  The request is sent via HTTP POST to the callbackURL defined in the Payment initialisation request. Once this request has been sent, the customer is redirected back to the store.&lt;br /&gt;
&lt;br /&gt;
===POSTed data===&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Value'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | callback&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | fixed string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Identifies the callback request&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | (mixed)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string (MD5 hash)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A unique ID of the payment on the side of X-Payments&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | updateData&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | (mixed)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Encrypted response from X-Payments&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
X-Payments does not expect a response from the store for this request; however, if the HTTP status of the response is not 200 OK, the request is considered failed, and a special notification is sent to the X-Payments admin. The store needs to decrypt the encrypted part of the response and update the order on its side accordingly. Once the updateData value has been decrypted, it is an XML document with the same structure as the [[X-Payments:API#Response_specification_2|response for Payment information request]].&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Check cart callback request==&lt;br /&gt;
&lt;br /&gt;
After the customer has submitted credit card data, right before sending this data to the payment gateway, X-Payments connects to the store to verify the cart total and contents.&lt;br /&gt;
&lt;br /&gt;
The HTTP POST request is sent to the '''callbackURL''' defined in the '''Payment initialisation request'''.&lt;br /&gt;
&lt;br /&gt;
===POSTed data===&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Value'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | action&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | check_cart&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | fixed string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Identifies the check-cart callback request&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | txnId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | (mixed)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string (MD5 hash)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A unique ID of the payment on the side of X-Payments&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | refId&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | (mixed)&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Order ID (or any other reference) in the online store&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
As of API v1.3, the store must respond to this callback request. The response must be an encrypted XML document (i.e. the same way as for other communication between the store and X-Payments).&lt;br /&gt;
&lt;br /&gt;
===Encrypted response for check-cart callback request===&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Field'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Required'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Type'''&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | '''Description'''&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | status&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | fixed string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Should be “cart-changed” or &amp;quot;cart-not-changed&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | cart&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Y&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | container&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | A container with cart/order description. See [[X-Payments:API#Request_specification|Payment initialisation request specification]] for details. This container must be included for &amp;quot;status = cart-changed&amp;quot; and is not necessary for &amp;quot;status = cart-not-changed&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | saveCard&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | N&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | string&lt;br /&gt;
| colspan=&amp;quot;1&amp;quot; | Whether the customer has chosen to save their card for future use (“Y” if the customer would like to save the card)&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Communication between X-Payments iframe and the store==&lt;br /&gt;
&lt;br /&gt;
===Communication structure===&lt;br /&gt;
Communication between the online store (parent frame) and X-Payments (iframe) is implemented with the help of the javascript Window.postMessage method. Notifictions to both the sides represent stringified JSON formatted texts that consist of a service message (string) and an optional list of parameters:&lt;br /&gt;
:* '''height''': height of the iframe&lt;br /&gt;
:* '''error''': human readable message&lt;br /&gt;
:* '''type''': message type. X-Payments sends it as 2, which indicates that the online store should re-initialize the payment. In API v1.3 no other values are supported.&lt;br /&gt;
&lt;br /&gt;
===Messages sent from the online store to X-Payments===&lt;br /&gt;
'''Submit payment form'''&amp;lt;br /&amp;gt;&lt;br /&gt;
X-Payments’ iframe does not have a Submit button, so instead of it the payment form should be submitted from the parent window by any kind of “Submit order” or “Place order” button at checkout. At the same time, the special message '''submitPaymentForm''' with no parameters should be sent.&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
{&lt;br /&gt;
:::message: 'submitPaymentForm',&lt;br /&gt;
:::params:  {}&lt;br /&gt;
}&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
===Messages sent from X-Payments to the online store===&lt;br /&gt;
'''Iframe is loaded and ready'''&amp;lt;br /&amp;gt;&lt;br /&gt;
The message ready notifies the parent window that the payment form is ready. The actual height of the iframe is included in the parameters, so the parent window (checkout page) can perform the necessary adjustments.&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
{&lt;br /&gt;
:::message: 'ready',&lt;br /&gt;
:::params: {&lt;br /&gt;
::::::height: $(document).height()&lt;br /&gt;
:::}&lt;br /&gt;
}&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Payment form submitted with an error'''&amp;lt;br /&amp;gt;&lt;br /&gt;
The message '''paymentFormSubmitError''' with no parameters is sent in the case of any validation error. This may be the case, for example, if  the customer’s credit card expiration date is in the past, or the credit card number does not match the card type (e.g. VISA, MasterCard), or when a required field has not been submitted (e.g. CVV2). Once the message '''paymentFormSubmitError''' with no parameters has been received, the store should not proceed to the next step of the checkout process, but should expect the payment form to be submitted again.&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
{&lt;br /&gt;
:::message: 'paymentFormSubmitError',&lt;br /&gt;
:::params: {}&lt;br /&gt;
}&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Internal error'''&amp;lt;br /&amp;gt;&lt;br /&gt;
The '''paymentFormSubmitError''' message with a special set of parameters is used to notify the store if something is wrong outside X-Payments, and X-Payments cannot do anything about it (for example, if the payment gateway has sent an unknown/unexpected piece of data).&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
{&lt;br /&gt;
:::message: 'paymentFormSubmitError',&lt;br /&gt;
:::params: {&lt;br /&gt;
::::::height: $(document).height(),&lt;br /&gt;
::::::error: 'Internal error',&lt;br /&gt;
::::::type: '2'&lt;br /&gt;
:::}&lt;br /&gt;
}&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Session is expired'''&amp;lt;br /&amp;gt;&lt;br /&gt;
For security reasons the length of the session is limited to 15 minutes. After this period the store has to re-initialize the payment. In this case X-Payments sends the '''paymentFormSubmitError''' message with the “Payment session expired” error.&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
{&lt;br /&gt;
:::message: 'paymentFormSubmitError',&lt;br /&gt;
:::params: {&lt;br /&gt;
::::::height: $(document).height(),&lt;br /&gt;
::::::error: 'Payment session expired',&lt;br /&gt;
::::::type: '2'&lt;br /&gt;
:::}&lt;br /&gt;
}&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
'''Payment form in Iframe is submitted''' (supported by API v1.4 and later)&amp;lt;br /&amp;gt;&lt;br /&gt;
The message '''paymentFormSubmit''' notifies the parent window that the payment form has been submitted from the X-Payments side; for example, if a customer clicks the Enter key inside the iframe. Once the store receives this message, it should operate in the same way as though the customer has clicked the Place order button at checkout.&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
{&lt;br /&gt;
:::message: 'paymentFormSubmit',&lt;br /&gt;
:::params: {}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------&lt;br /&gt;
&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Appendix A. Status codes.==&lt;br /&gt;
&lt;br /&gt;
===Payment status codes===&lt;br /&gt;
: 1 - New&lt;br /&gt;
: 2 - Authorized&lt;br /&gt;
: 3 - Declined&lt;br /&gt;
: 4 - Charged&lt;br /&gt;
: 5 - Refunded&lt;br /&gt;
: 6 - Partially refunded&lt;br /&gt;
&lt;br /&gt;
===Operation status codes===&lt;br /&gt;
: 0 - transaction failed&lt;br /&gt;
: 1 - transaction is successful&lt;br /&gt;
: 2 - transaction is successful and is duplicate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [http://lu53.crtdev.local/%7Emixon/google-cache-w.php?q=/index.php?title=X-Cart:X-Payments_Connector X-Cart:X-Payments Connector]&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=500</id>
		<title>X-Payments:PCI DSS implementation guide for X-Payments 2.2</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=500"/>
		<updated>2015-12-17T12:03:29Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* X-Cart Payments versioning policy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Introduction ==&lt;br /&gt;
&lt;br /&gt;
This guide covers '''X-Cart Payments''' 1.0, 2.0, 2.1, 2.2 and is intended for merchants and integrators who wish to implement the application in accordance with guidelines set by the PCI Data Security Standard (PCI DSS).&lt;br /&gt;
&lt;br /&gt;
== X-Cart Payments versioning policy ==&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments version number must look like &amp;quot;X.Y.Z&amp;quot; (e.g. 1.0.6, 2.0.1, 2.2.1, 3.0.0), where&lt;br /&gt;
&lt;br /&gt;
* X - major release version number that gets incremented when high impact changes are introduced and certified under PA-DSS requirements;&lt;br /&gt;
* Y - minor release version number that gets incremented when low impact changes are added to X-Cart Payments package;&lt;br /&gt;
* Z - maintenance/bug-fix release version number that gets incremented when no impact changes are done to X-Cart Payments package.&lt;br /&gt;
&lt;br /&gt;
== PCI DSS ==&lt;br /&gt;
&lt;br /&gt;
PCI DSS specifies 12 requirements broken into 6 groups for compliance that apply both to hardware and software parts of the system that is used to collect, store, transmit and process valuable credit card data as well as the human factor.&lt;br /&gt;
&lt;br /&gt;
{| border&lt;br /&gt;
| Build and Maintain a Secure Network&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 1: Install and maintain a firewall configuration to protect cardholder data&lt;br /&gt;
* Requirement 2: Do not use vendor-supplied defaults for system passwords and other security parameters&lt;br /&gt;
|-&lt;br /&gt;
| Protect Cardholder Data&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 3: Protect stored cardholder data&lt;br /&gt;
* Requirement 4: Encrypt transmission of cardholder data across open, public networks&lt;br /&gt;
|-&lt;br /&gt;
| Maintain a Vulnerability Management Program&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 5: Use and regularly update anti-virus software&lt;br /&gt;
* Requirement 6: Develop and maintain secure systems and applications&lt;br /&gt;
|-&lt;br /&gt;
| Implement Strong Access Control Measures&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 7: Restrict access to cardholder data by business need-to-know&lt;br /&gt;
* Requirement 8: Assign a unique ID to each person with computer access&lt;br /&gt;
* Requirement 9: Restrict physical access to cardholder data&lt;br /&gt;
|-&lt;br /&gt;
| Regularly Monitor and Test Networks&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 10: Track and monitor all access to network resources and cardholder data&lt;br /&gt;
* Requirement 11: Regularly test security systems and processes&lt;br /&gt;
|-&lt;br /&gt;
| Maintain an Information Security Policy&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 12: Maintain a policy that addresses information security&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Specifically, relevant elements to an e-commerce business' PCI compliance status include:&lt;br /&gt;
&lt;br /&gt;
* Properly using your payment application. For this purpose, carefully review the section below for information on how to use '''X-Cart Payments''' in a way that ensures PCI compliance.&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant Web hosting environment&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant payment provider&lt;br /&gt;
&lt;br /&gt;
You can find and review the complete specification by visiting [https://www.pcisecuritystandards.org/ https://www.pcisecuritystandards.org/]&lt;br /&gt;
&lt;br /&gt;
This guide is intended to help merchants implement the '''X-Cart Payments''' application in a way that is compliant with version 2.0 of the PCI DSS.&lt;br /&gt;
&lt;br /&gt;
== Payment Card Industry Data Security Standard ('''PCI DSS''') ==&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry Data Security Standard is a worldwide information security standard assembled by the major credit card vendors, including American Express, Discover Financial Services, JCB International, MasterCard Worldwide, and Visa, Inc. The standard was designed to help organizations involved in processing credit card payments online make their payment systems secure from cardholder data fraud.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has been designed and certified to meet all of the requirements of the '''PA-DSS''' version 2.0. This does not automatically make you, the merchant, PCI DSS compliant. To ensure PCI DSS compliance, it is necessary that you follow the recommendations and instructions provided in this guide.&lt;br /&gt;
&lt;br /&gt;
For additional information about '''PCI DSS''' please visit the [https://www.pcisecuritystandards.org Official PCI Security Standards Council Site].&lt;br /&gt;
&lt;br /&gt;
== Cardholder data storage==&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has [[X-Payments:General_settings#Cardholder_Data | the ability to store parts of cardholder data temporarily]] for performing 3D Secure verification and certain types of transactions for some of the integrated payment processors. While stored cardholder data is encrypted using special [[X-Payments:Encryption_keys | cryptographic algorithm]]. The data is removed automatically when its storing period is over using &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can not be configured to store permanently in the database the following types of data:&lt;br /&gt;
&lt;br /&gt;
* unmasked PAN&lt;br /&gt;
* PIN&lt;br /&gt;
* CVV&lt;br /&gt;
* magnetic stripe (track data)&lt;br /&gt;
&lt;br /&gt;
Merchants and/or developers implementing '''X-Cart Payments''' should not attempt to customize this as a feature.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can display masked PAN on &amp;quot;Payment details&amp;quot; pages and in &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. '''X-Cart Payments''' does not have the ability to display full PAN anywhere and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&lt;br /&gt;
==Configuring and using '''X-Cart Payments''' in PCI compliant manner ==&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
Follow the [[X-Payments:Installation | standard procedure]] for deployment of X-Cart Payments files to the web server.&lt;br /&gt;
&lt;br /&gt;
{{Note1|Once installed, X-Cart Payments WILL NEVER:&amp;lt;br/&amp;gt;&lt;br /&gt;
* store unmasked credit card numbers (PANs)&lt;br /&gt;
* send credit card data or any other information to Qualiteam for debug purposes}}&lt;br /&gt;
&lt;br /&gt;
===Access control===&lt;br /&gt;
&lt;br /&gt;
There are no built-in/default user accounts in '''X-Cart Payments'''.&lt;br /&gt;
You must carefully control access to '''X-Cart Payments'''. Follow these rules:&lt;br /&gt;
&lt;br /&gt;
* Restrict the number of employees who have access to '''X-Cart Payments''' to only those who have a business need.&lt;br /&gt;
* Always provide unique usernames for each person who needs access.&lt;br /&gt;
* Do not use system-default usernames and/or passwords&lt;br /&gt;
* Web server must be run under a non-privileged user account. Application must access the database from a limited privilege user account.&lt;br /&gt;
* All default user accounts use secure authentication mechanisms and password policy settings that comply with all the standard requirements:&lt;br /&gt;
** user accounts inactive for more than 3 days are blocked&lt;br /&gt;
** password lifetime is set to 30 days&lt;br /&gt;
&lt;br /&gt;
:: To set password lifetime:&lt;br /&gt;
&lt;br /&gt;
::# Login to '''X-Cart Payments'''&lt;br /&gt;
::# Go to &amp;lt;u&amp;gt;Settings -&amp;gt; General Settings&amp;lt;/u&amp;gt;&lt;br /&gt;
::# Enter the number of days the user account password will be valid for in the &amp;quot;User account password lifetime&amp;quot; field. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
&lt;br /&gt;
:* minimum password length is 8 characters&lt;br /&gt;
:* password must contain both lower and upper case characters and numbers&lt;br /&gt;
:* the last 4 passwords must be unique&lt;br /&gt;
:* user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password&lt;br /&gt;
:* user is logged off after inactivity period of 10 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt; Please note that changing default password policy settings will lead to breaking PCI DSS standard requirements.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Enabling SSL (Secure Socket Layer)===&lt;br /&gt;
&lt;br /&gt;
SSL protects data that is transmitted between a browser and your web server. It is critical that you have SSL enabled on your web server, and this should be among the first steps taken after installation.&lt;br /&gt;
&lt;br /&gt;
* Your web server must be configured to use TLS v1.2 protocols with strong encryption (128-bit or longer key is required)&lt;br /&gt;
* You will need to have a certificate issued for your web domain. Read [http://help.qtmsoft.com/index.php?title=Instant_SSL_certificate guidelines on installing Comodo's Instant SSL certificates].&lt;br /&gt;
&lt;br /&gt;
If a web server does not have SSL enabled '''X-Cart Payments''' will not function or will be notifying users depending on '''allow_insecure_protocol''' parameter set in &amp;lt;u&amp;gt;config.ini.php&amp;lt;/u&amp;gt; file (disabled by default).&lt;br /&gt;
&lt;br /&gt;
===Data Collected while Testing===&lt;br /&gt;
&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments:&lt;br /&gt;
&lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever collect credit card information to troubleshoot a problem that one of your customers is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access&lt;br /&gt;
#* Only collect a limited amount of such data as needed to solve a specific problem&lt;br /&gt;
#* Sensitive authentication data must be encrypted while stored. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Such data must be securely deleted immediately after use.&lt;br /&gt;
&lt;br /&gt;
===Encryption Key Management===&lt;br /&gt;
&lt;br /&gt;
As part of your PA DSS v3.1 requirements, encryption key must be changed annually (changing every 90 days is recommended). You should also change the key any time an employee with access to the key leaves your company. Always replace the key if you know or suspect it has been compromised by any means.&lt;br /&gt;
&lt;br /&gt;
To change the encryption keys:&lt;br /&gt;
&lt;br /&gt;
# Log in to '''X-Cart Payments'''&lt;br /&gt;
# Go to &amp;lt;u&amp;gt;Maintenance -&amp;gt; Encryption keys&amp;lt;/u&amp;gt;&lt;br /&gt;
# Click &amp;quot;Generate new keys&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Use unique user IDs and secure authentication to access PCs, servers and databases ===&lt;br /&gt;
&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords:&lt;br /&gt;
&lt;br /&gt;
# For your Web hosting account administration area (Web hosting account where your online store is hosted)&lt;br /&gt;
# For FTP access to the Web server&lt;br /&gt;
# For Remote Desktop Connection to the Web server (if available)&lt;br /&gt;
# To connect to the MySQL server that contains your store data.&lt;br /&gt;
&lt;br /&gt;
The passwords for the accounts mentioned above must also meet the following requirements:&lt;br /&gt;
&lt;br /&gt;
* be at least 8 characters in length&lt;br /&gt;
* contain both numbers and letters in lower and upper case&lt;br /&gt;
* not coincide with any part of your email address&lt;br /&gt;
* not coincide with any of the last four passwords you have used&lt;br /&gt;
* have a lifetime of less than 90 days&lt;br /&gt;
* account lockout threshold must be set to 6.&lt;br /&gt;
* account lockout duration must be set to 30 minutes (or until unblocked by the administrator).&lt;br /&gt;
* user must be logged off after 15 minutes of inactivity&lt;br /&gt;
&lt;br /&gt;
===Audit trails===&lt;br /&gt;
&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. There is no option to disable audit logging. The log files are created in the &amp;lt;u&amp;gt;var/log/&amp;lt;/u&amp;gt; directory. Make sure you restrict access to the log files by business need-to-know.&lt;br /&gt;
&lt;br /&gt;
The following types of activity are logged:&lt;br /&gt;
&lt;br /&gt;
* All actions taken by any individual with root or administrative privileges&lt;br /&gt;
* Successes and failures of all individual accesses to application sections and functions&lt;br /&gt;
&lt;br /&gt;
* Initialization of the audit logs&lt;br /&gt;
* User sign in and sign out.&lt;br /&gt;
&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to files access.log and error.log.&lt;br /&gt;
&lt;br /&gt;
Each log event includes:&lt;br /&gt;
&lt;br /&gt;
* Type of event&lt;br /&gt;
* Date and time of event&lt;br /&gt;
* Username and IP address&lt;br /&gt;
* Success or failure indication&lt;br /&gt;
* Action which led to the event&lt;br /&gt;
&lt;br /&gt;
* Component which led to the event&lt;br /&gt;
&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
&lt;br /&gt;
=== OS-level audit trails ===&lt;br /&gt;
&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on server. This software should:&lt;br /&gt;
&lt;br /&gt;
* warn on a checksum change of any of X-Cart Payments source code files except of log file and database files&lt;br /&gt;
* record any file writing operations related to X-Cart Payments files&lt;br /&gt;
&lt;br /&gt;
===Encrypting network traffic===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for:&lt;br /&gt;
&lt;br /&gt;
* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
* providing remote web-based access to the application&lt;br /&gt;
&lt;br /&gt;
If you use tools to remotely access the application, you should encrypt all communication using technologies such as TLS or IPSEC.&lt;br /&gt;
&lt;br /&gt;
As per PCI DSS requirement 4.2, cardholder data should never be sent unencrypted by e-mail, and X-Cart Payments does meet this requirement '''never''' sending cardholder data by e-mail or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&lt;br /&gt;
===Wireless communications===&lt;br /&gt;
&lt;br /&gt;
If you use wireless networking to access '''X-Cart Payments''', it is your responsibility to ensure your wireless security con figuration follows the PCI DSS requirements.&lt;br /&gt;
&lt;br /&gt;
* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
* Use with a minimum 104-bit encryption key and 24 bit-initialization value&lt;br /&gt;
* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS&lt;br /&gt;
* Rotate shared WEP keys quarterly (or automatically if the technology permits)&lt;br /&gt;
* Rotate shared WEP keys whenever there are changes in personnel with access to keys&lt;br /&gt;
* Restrict access based on media access cod e (MAC) address.&lt;br /&gt;
* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&lt;br /&gt;
===Remote access===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time PIN codes. Detailed information can be found at [[X-Payments:Managing_PIN_codes | Managing PIN codes]] page.&lt;br /&gt;
&lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following:&lt;br /&gt;
&lt;br /&gt;
* Change default settings in the remote access software (for example, change default passwords and use unique passwords for each customer)&lt;br /&gt;
* Allow connections only from specific (known) IP/MAC addresses&lt;br /&gt;
* Use strong authentication or complex passwords for logins&lt;br /&gt;
* Enable encrypted data transmission&lt;br /&gt;
* Enable account lockout after a certain number of failed login attempts&lt;br /&gt;
* Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed&lt;br /&gt;
* Enable any logging or auditing functions&lt;br /&gt;
* Restrict access to customer passwords to authorized reseller/integrator personnel&lt;br /&gt;
* Establish customer passwords according to PCI DSS requirements 8.1, 8.2, 8.4, 8.5&lt;br /&gt;
&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=499</id>
		<title>X-Payments:PCI DSS implementation guide for X-Payments 2.2</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=499"/>
		<updated>2015-12-17T12:02:10Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* X-Cart Payments versioning policy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Introduction ==&lt;br /&gt;
&lt;br /&gt;
This guide covers '''X-Cart Payments''' 1.0, 2.0, 2.1, 2.2 and is intended for merchants and integrators who wish to implement the application in accordance with guidelines set by the PCI Data Security Standard (PCI DSS).&lt;br /&gt;
&lt;br /&gt;
== X-Cart Payments versioning policy ==&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments version number must look like &amp;quot;X.Y.Z&amp;quot; (e.g. 1.0.6, 2.0.1, 2.2.1, 3.0.0), where&lt;br /&gt;
&lt;br /&gt;
* X - major version number that gets incremented when high impact changes are introduced and certified under PA-DSS requirements;&lt;br /&gt;
* Y - minor version number that gets incremented when low impact changes are added to X-Cart Payments package;&lt;br /&gt;
* Z - bug-fix version number that gets incremented when no impact changes are done to X-Cart Payments package.&lt;br /&gt;
&lt;br /&gt;
== PCI DSS ==&lt;br /&gt;
&lt;br /&gt;
PCI DSS specifies 12 requirements broken into 6 groups for compliance that apply both to hardware and software parts of the system that is used to collect, store, transmit and process valuable credit card data as well as the human factor.&lt;br /&gt;
&lt;br /&gt;
{| border&lt;br /&gt;
| Build and Maintain a Secure Network&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 1: Install and maintain a firewall configuration to protect cardholder data&lt;br /&gt;
* Requirement 2: Do not use vendor-supplied defaults for system passwords and other security parameters&lt;br /&gt;
|-&lt;br /&gt;
| Protect Cardholder Data&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 3: Protect stored cardholder data&lt;br /&gt;
* Requirement 4: Encrypt transmission of cardholder data across open, public networks&lt;br /&gt;
|-&lt;br /&gt;
| Maintain a Vulnerability Management Program&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 5: Use and regularly update anti-virus software&lt;br /&gt;
* Requirement 6: Develop and maintain secure systems and applications&lt;br /&gt;
|-&lt;br /&gt;
| Implement Strong Access Control Measures&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 7: Restrict access to cardholder data by business need-to-know&lt;br /&gt;
* Requirement 8: Assign a unique ID to each person with computer access&lt;br /&gt;
* Requirement 9: Restrict physical access to cardholder data&lt;br /&gt;
|-&lt;br /&gt;
| Regularly Monitor and Test Networks&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 10: Track and monitor all access to network resources and cardholder data&lt;br /&gt;
* Requirement 11: Regularly test security systems and processes&lt;br /&gt;
|-&lt;br /&gt;
| Maintain an Information Security Policy&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 12: Maintain a policy that addresses information security&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Specifically, relevant elements to an e-commerce business' PCI compliance status include:&lt;br /&gt;
&lt;br /&gt;
* Properly using your payment application. For this purpose, carefully review the section below for information on how to use '''X-Cart Payments''' in a way that ensures PCI compliance.&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant Web hosting environment&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant payment provider&lt;br /&gt;
&lt;br /&gt;
You can find and review the complete specification by visiting [https://www.pcisecuritystandards.org/ https://www.pcisecuritystandards.org/]&lt;br /&gt;
&lt;br /&gt;
This guide is intended to help merchants implement the '''X-Cart Payments''' application in a way that is compliant with version 2.0 of the PCI DSS.&lt;br /&gt;
&lt;br /&gt;
== Payment Card Industry Data Security Standard ('''PCI DSS''') ==&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry Data Security Standard is a worldwide information security standard assembled by the major credit card vendors, including American Express, Discover Financial Services, JCB International, MasterCard Worldwide, and Visa, Inc. The standard was designed to help organizations involved in processing credit card payments online make their payment systems secure from cardholder data fraud.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has been designed and certified to meet all of the requirements of the '''PA-DSS''' version 2.0. This does not automatically make you, the merchant, PCI DSS compliant. To ensure PCI DSS compliance, it is necessary that you follow the recommendations and instructions provided in this guide.&lt;br /&gt;
&lt;br /&gt;
For additional information about '''PCI DSS''' please visit the [https://www.pcisecuritystandards.org Official PCI Security Standards Council Site].&lt;br /&gt;
&lt;br /&gt;
== Cardholder data storage==&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has [[X-Payments:General_settings#Cardholder_Data | the ability to store parts of cardholder data temporarily]] for performing 3D Secure verification and certain types of transactions for some of the integrated payment processors. While stored cardholder data is encrypted using special [[X-Payments:Encryption_keys | cryptographic algorithm]]. The data is removed automatically when its storing period is over using &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can not be configured to store permanently in the database the following types of data:&lt;br /&gt;
&lt;br /&gt;
* unmasked PAN&lt;br /&gt;
* PIN&lt;br /&gt;
* CVV&lt;br /&gt;
* magnetic stripe (track data)&lt;br /&gt;
&lt;br /&gt;
Merchants and/or developers implementing '''X-Cart Payments''' should not attempt to customize this as a feature.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can display masked PAN on &amp;quot;Payment details&amp;quot; pages and in &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. '''X-Cart Payments''' does not have the ability to display full PAN anywhere and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&lt;br /&gt;
==Configuring and using '''X-Cart Payments''' in PCI compliant manner ==&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
Follow the [[X-Payments:Installation | standard procedure]] for deployment of X-Cart Payments files to the web server.&lt;br /&gt;
&lt;br /&gt;
{{Note1|Once installed, X-Cart Payments WILL NEVER:&amp;lt;br/&amp;gt;&lt;br /&gt;
* store unmasked credit card numbers (PANs)&lt;br /&gt;
* send credit card data or any other information to Qualiteam for debug purposes}}&lt;br /&gt;
&lt;br /&gt;
===Access control===&lt;br /&gt;
&lt;br /&gt;
There are no built-in/default user accounts in '''X-Cart Payments'''.&lt;br /&gt;
You must carefully control access to '''X-Cart Payments'''. Follow these rules:&lt;br /&gt;
&lt;br /&gt;
* Restrict the number of employees who have access to '''X-Cart Payments''' to only those who have a business need.&lt;br /&gt;
* Always provide unique usernames for each person who needs access.&lt;br /&gt;
* Do not use system-default usernames and/or passwords&lt;br /&gt;
* Web server must be run under a non-privileged user account. Application must access the database from a limited privilege user account.&lt;br /&gt;
* All default user accounts use secure authentication mechanisms and password policy settings that comply with all the standard requirements:&lt;br /&gt;
** user accounts inactive for more than 3 days are blocked&lt;br /&gt;
** password lifetime is set to 30 days&lt;br /&gt;
&lt;br /&gt;
:: To set password lifetime:&lt;br /&gt;
&lt;br /&gt;
::# Login to '''X-Cart Payments'''&lt;br /&gt;
::# Go to &amp;lt;u&amp;gt;Settings -&amp;gt; General Settings&amp;lt;/u&amp;gt;&lt;br /&gt;
::# Enter the number of days the user account password will be valid for in the &amp;quot;User account password lifetime&amp;quot; field. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
&lt;br /&gt;
:* minimum password length is 8 characters&lt;br /&gt;
:* password must contain both lower and upper case characters and numbers&lt;br /&gt;
:* the last 4 passwords must be unique&lt;br /&gt;
:* user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password&lt;br /&gt;
:* user is logged off after inactivity period of 10 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt; Please note that changing default password policy settings will lead to breaking PCI DSS standard requirements.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Enabling SSL (Secure Socket Layer)===&lt;br /&gt;
&lt;br /&gt;
SSL protects data that is transmitted between a browser and your web server. It is critical that you have SSL enabled on your web server, and this should be among the first steps taken after installation.&lt;br /&gt;
&lt;br /&gt;
* Your web server must be configured to use TLS v1.2 protocols with strong encryption (128-bit or longer key is required)&lt;br /&gt;
* You will need to have a certificate issued for your web domain. Read [http://help.qtmsoft.com/index.php?title=Instant_SSL_certificate guidelines on installing Comodo's Instant SSL certificates].&lt;br /&gt;
&lt;br /&gt;
If a web server does not have SSL enabled '''X-Cart Payments''' will not function or will be notifying users depending on '''allow_insecure_protocol''' parameter set in &amp;lt;u&amp;gt;config.ini.php&amp;lt;/u&amp;gt; file (disabled by default).&lt;br /&gt;
&lt;br /&gt;
===Data Collected while Testing===&lt;br /&gt;
&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments:&lt;br /&gt;
&lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever collect credit card information to troubleshoot a problem that one of your customers is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access&lt;br /&gt;
#* Only collect a limited amount of such data as needed to solve a specific problem&lt;br /&gt;
#* Sensitive authentication data must be encrypted while stored. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Such data must be securely deleted immediately after use.&lt;br /&gt;
&lt;br /&gt;
===Encryption Key Management===&lt;br /&gt;
&lt;br /&gt;
As part of your PA DSS v3.1 requirements, encryption key must be changed annually (changing every 90 days is recommended). You should also change the key any time an employee with access to the key leaves your company. Always replace the key if you know or suspect it has been compromised by any means.&lt;br /&gt;
&lt;br /&gt;
To change the encryption keys:&lt;br /&gt;
&lt;br /&gt;
# Log in to '''X-Cart Payments'''&lt;br /&gt;
# Go to &amp;lt;u&amp;gt;Maintenance -&amp;gt; Encryption keys&amp;lt;/u&amp;gt;&lt;br /&gt;
# Click &amp;quot;Generate new keys&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Use unique user IDs and secure authentication to access PCs, servers and databases ===&lt;br /&gt;
&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords:&lt;br /&gt;
&lt;br /&gt;
# For your Web hosting account administration area (Web hosting account where your online store is hosted)&lt;br /&gt;
# For FTP access to the Web server&lt;br /&gt;
# For Remote Desktop Connection to the Web server (if available)&lt;br /&gt;
# To connect to the MySQL server that contains your store data.&lt;br /&gt;
&lt;br /&gt;
The passwords for the accounts mentioned above must also meet the following requirements:&lt;br /&gt;
&lt;br /&gt;
* be at least 8 characters in length&lt;br /&gt;
* contain both numbers and letters in lower and upper case&lt;br /&gt;
* not coincide with any part of your email address&lt;br /&gt;
* not coincide with any of the last four passwords you have used&lt;br /&gt;
* have a lifetime of less than 90 days&lt;br /&gt;
* account lockout threshold must be set to 6.&lt;br /&gt;
* account lockout duration must be set to 30 minutes (or until unblocked by the administrator).&lt;br /&gt;
* user must be logged off after 15 minutes of inactivity&lt;br /&gt;
&lt;br /&gt;
===Audit trails===&lt;br /&gt;
&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. There is no option to disable audit logging. The log files are created in the &amp;lt;u&amp;gt;var/log/&amp;lt;/u&amp;gt; directory. Make sure you restrict access to the log files by business need-to-know.&lt;br /&gt;
&lt;br /&gt;
The following types of activity are logged:&lt;br /&gt;
&lt;br /&gt;
* All actions taken by any individual with root or administrative privileges&lt;br /&gt;
* Successes and failures of all individual accesses to application sections and functions&lt;br /&gt;
&lt;br /&gt;
* Initialization of the audit logs&lt;br /&gt;
* User sign in and sign out.&lt;br /&gt;
&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to files access.log and error.log.&lt;br /&gt;
&lt;br /&gt;
Each log event includes:&lt;br /&gt;
&lt;br /&gt;
* Type of event&lt;br /&gt;
* Date and time of event&lt;br /&gt;
* Username and IP address&lt;br /&gt;
* Success or failure indication&lt;br /&gt;
* Action which led to the event&lt;br /&gt;
&lt;br /&gt;
* Component which led to the event&lt;br /&gt;
&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
&lt;br /&gt;
=== OS-level audit trails ===&lt;br /&gt;
&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on server. This software should:&lt;br /&gt;
&lt;br /&gt;
* warn on a checksum change of any of X-Cart Payments source code files except of log file and database files&lt;br /&gt;
* record any file writing operations related to X-Cart Payments files&lt;br /&gt;
&lt;br /&gt;
===Encrypting network traffic===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for:&lt;br /&gt;
&lt;br /&gt;
* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
* providing remote web-based access to the application&lt;br /&gt;
&lt;br /&gt;
If you use tools to remotely access the application, you should encrypt all communication using technologies such as TLS or IPSEC.&lt;br /&gt;
&lt;br /&gt;
As per PCI DSS requirement 4.2, cardholder data should never be sent unencrypted by e-mail, and X-Cart Payments does meet this requirement '''never''' sending cardholder data by e-mail or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&lt;br /&gt;
===Wireless communications===&lt;br /&gt;
&lt;br /&gt;
If you use wireless networking to access '''X-Cart Payments''', it is your responsibility to ensure your wireless security con figuration follows the PCI DSS requirements.&lt;br /&gt;
&lt;br /&gt;
* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
* Use with a minimum 104-bit encryption key and 24 bit-initialization value&lt;br /&gt;
* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS&lt;br /&gt;
* Rotate shared WEP keys quarterly (or automatically if the technology permits)&lt;br /&gt;
* Rotate shared WEP keys whenever there are changes in personnel with access to keys&lt;br /&gt;
* Restrict access based on media access cod e (MAC) address.&lt;br /&gt;
* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&lt;br /&gt;
===Remote access===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time PIN codes. Detailed information can be found at [[X-Payments:Managing_PIN_codes | Managing PIN codes]] page.&lt;br /&gt;
&lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following:&lt;br /&gt;
&lt;br /&gt;
* Change default settings in the remote access software (for example, change default passwords and use unique passwords for each customer)&lt;br /&gt;
* Allow connections only from specific (known) IP/MAC addresses&lt;br /&gt;
* Use strong authentication or complex passwords for logins&lt;br /&gt;
* Enable encrypted data transmission&lt;br /&gt;
* Enable account lockout after a certain number of failed login attempts&lt;br /&gt;
* Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed&lt;br /&gt;
* Enable any logging or auditing functions&lt;br /&gt;
* Restrict access to customer passwords to authorized reseller/integrator personnel&lt;br /&gt;
* Establish customer passwords according to PCI DSS requirements 8.1, 8.2, 8.4, 8.5&lt;br /&gt;
&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=498</id>
		<title>X-Payments:PCI DSS implementation guide for X-Payments 2.2</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=498"/>
		<updated>2015-12-17T12:00:59Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* X-Cart Payments versioning policy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Introduction ==&lt;br /&gt;
&lt;br /&gt;
This guide covers '''X-Cart Payments''' 1.0, 2.0, 2.1, 2.2 and is intended for merchants and integrators who wish to implement the application in accordance with guidelines set by the PCI Data Security Standard (PCI DSS).&lt;br /&gt;
&lt;br /&gt;
== X-Cart Payments versioning policy ==&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments version number must look like &amp;quot;X.Y.Z&amp;quot; (e.g. 1.0.6, 2.0.1, 2.2.1, 3.0.0), where&lt;br /&gt;
&lt;br /&gt;
* X - major version number that gets incremented when a high impact change is introduced and certified under PA-DSS requirements;&lt;br /&gt;
* Y - minor version number that gets incremented when a low impact change is added to X-Cart Payments package;&lt;br /&gt;
* Z - bug-fix version number that gets incremented when a no impact change is done to X-Cart Payments package.&lt;br /&gt;
&lt;br /&gt;
== PCI DSS ==&lt;br /&gt;
&lt;br /&gt;
PCI DSS specifies 12 requirements broken into 6 groups for compliance that apply both to hardware and software parts of the system that is used to collect, store, transmit and process valuable credit card data as well as the human factor.&lt;br /&gt;
&lt;br /&gt;
{| border&lt;br /&gt;
| Build and Maintain a Secure Network&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 1: Install and maintain a firewall configuration to protect cardholder data&lt;br /&gt;
* Requirement 2: Do not use vendor-supplied defaults for system passwords and other security parameters&lt;br /&gt;
|-&lt;br /&gt;
| Protect Cardholder Data&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 3: Protect stored cardholder data&lt;br /&gt;
* Requirement 4: Encrypt transmission of cardholder data across open, public networks&lt;br /&gt;
|-&lt;br /&gt;
| Maintain a Vulnerability Management Program&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 5: Use and regularly update anti-virus software&lt;br /&gt;
* Requirement 6: Develop and maintain secure systems and applications&lt;br /&gt;
|-&lt;br /&gt;
| Implement Strong Access Control Measures&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 7: Restrict access to cardholder data by business need-to-know&lt;br /&gt;
* Requirement 8: Assign a unique ID to each person with computer access&lt;br /&gt;
* Requirement 9: Restrict physical access to cardholder data&lt;br /&gt;
|-&lt;br /&gt;
| Regularly Monitor and Test Networks&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 10: Track and monitor all access to network resources and cardholder data&lt;br /&gt;
* Requirement 11: Regularly test security systems and processes&lt;br /&gt;
|-&lt;br /&gt;
| Maintain an Information Security Policy&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 12: Maintain a policy that addresses information security&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Specifically, relevant elements to an e-commerce business' PCI compliance status include:&lt;br /&gt;
&lt;br /&gt;
* Properly using your payment application. For this purpose, carefully review the section below for information on how to use '''X-Cart Payments''' in a way that ensures PCI compliance.&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant Web hosting environment&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant payment provider&lt;br /&gt;
&lt;br /&gt;
You can find and review the complete specification by visiting [https://www.pcisecuritystandards.org/ https://www.pcisecuritystandards.org/]&lt;br /&gt;
&lt;br /&gt;
This guide is intended to help merchants implement the '''X-Cart Payments''' application in a way that is compliant with version 2.0 of the PCI DSS.&lt;br /&gt;
&lt;br /&gt;
== Payment Card Industry Data Security Standard ('''PCI DSS''') ==&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry Data Security Standard is a worldwide information security standard assembled by the major credit card vendors, including American Express, Discover Financial Services, JCB International, MasterCard Worldwide, and Visa, Inc. The standard was designed to help organizations involved in processing credit card payments online make their payment systems secure from cardholder data fraud.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has been designed and certified to meet all of the requirements of the '''PA-DSS''' version 2.0. This does not automatically make you, the merchant, PCI DSS compliant. To ensure PCI DSS compliance, it is necessary that you follow the recommendations and instructions provided in this guide.&lt;br /&gt;
&lt;br /&gt;
For additional information about '''PCI DSS''' please visit the [https://www.pcisecuritystandards.org Official PCI Security Standards Council Site].&lt;br /&gt;
&lt;br /&gt;
== Cardholder data storage==&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has [[X-Payments:General_settings#Cardholder_Data | the ability to store parts of cardholder data temporarily]] for performing 3D Secure verification and certain types of transactions for some of the integrated payment processors. While stored cardholder data is encrypted using special [[X-Payments:Encryption_keys | cryptographic algorithm]]. The data is removed automatically when its storing period is over using &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can not be configured to store permanently in the database the following types of data:&lt;br /&gt;
&lt;br /&gt;
* unmasked PAN&lt;br /&gt;
* PIN&lt;br /&gt;
* CVV&lt;br /&gt;
* magnetic stripe (track data)&lt;br /&gt;
&lt;br /&gt;
Merchants and/or developers implementing '''X-Cart Payments''' should not attempt to customize this as a feature.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can display masked PAN on &amp;quot;Payment details&amp;quot; pages and in &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. '''X-Cart Payments''' does not have the ability to display full PAN anywhere and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&lt;br /&gt;
==Configuring and using '''X-Cart Payments''' in PCI compliant manner ==&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
Follow the [[X-Payments:Installation | standard procedure]] for deployment of X-Cart Payments files to the web server.&lt;br /&gt;
&lt;br /&gt;
{{Note1|Once installed, X-Cart Payments WILL NEVER:&amp;lt;br/&amp;gt;&lt;br /&gt;
* store unmasked credit card numbers (PANs)&lt;br /&gt;
* send credit card data or any other information to Qualiteam for debug purposes}}&lt;br /&gt;
&lt;br /&gt;
===Access control===&lt;br /&gt;
&lt;br /&gt;
There are no built-in/default user accounts in '''X-Cart Payments'''.&lt;br /&gt;
You must carefully control access to '''X-Cart Payments'''. Follow these rules:&lt;br /&gt;
&lt;br /&gt;
* Restrict the number of employees who have access to '''X-Cart Payments''' to only those who have a business need.&lt;br /&gt;
* Always provide unique usernames for each person who needs access.&lt;br /&gt;
* Do not use system-default usernames and/or passwords&lt;br /&gt;
* Web server must be run under a non-privileged user account. Application must access the database from a limited privilege user account.&lt;br /&gt;
* All default user accounts use secure authentication mechanisms and password policy settings that comply with all the standard requirements:&lt;br /&gt;
** user accounts inactive for more than 3 days are blocked&lt;br /&gt;
** password lifetime is set to 30 days&lt;br /&gt;
&lt;br /&gt;
:: To set password lifetime:&lt;br /&gt;
&lt;br /&gt;
::# Login to '''X-Cart Payments'''&lt;br /&gt;
::# Go to &amp;lt;u&amp;gt;Settings -&amp;gt; General Settings&amp;lt;/u&amp;gt;&lt;br /&gt;
::# Enter the number of days the user account password will be valid for in the &amp;quot;User account password lifetime&amp;quot; field. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
&lt;br /&gt;
:* minimum password length is 8 characters&lt;br /&gt;
:* password must contain both lower and upper case characters and numbers&lt;br /&gt;
:* the last 4 passwords must be unique&lt;br /&gt;
:* user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password&lt;br /&gt;
:* user is logged off after inactivity period of 10 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt; Please note that changing default password policy settings will lead to breaking PCI DSS standard requirements.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Enabling SSL (Secure Socket Layer)===&lt;br /&gt;
&lt;br /&gt;
SSL protects data that is transmitted between a browser and your web server. It is critical that you have SSL enabled on your web server, and this should be among the first steps taken after installation.&lt;br /&gt;
&lt;br /&gt;
* Your web server must be configured to use TLS v1.2 protocols with strong encryption (128-bit or longer key is required)&lt;br /&gt;
* You will need to have a certificate issued for your web domain. Read [http://help.qtmsoft.com/index.php?title=Instant_SSL_certificate guidelines on installing Comodo's Instant SSL certificates].&lt;br /&gt;
&lt;br /&gt;
If a web server does not have SSL enabled '''X-Cart Payments''' will not function or will be notifying users depending on '''allow_insecure_protocol''' parameter set in &amp;lt;u&amp;gt;config.ini.php&amp;lt;/u&amp;gt; file (disabled by default).&lt;br /&gt;
&lt;br /&gt;
===Data Collected while Testing===&lt;br /&gt;
&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments:&lt;br /&gt;
&lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever collect credit card information to troubleshoot a problem that one of your customers is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access&lt;br /&gt;
#* Only collect a limited amount of such data as needed to solve a specific problem&lt;br /&gt;
#* Sensitive authentication data must be encrypted while stored. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Such data must be securely deleted immediately after use.&lt;br /&gt;
&lt;br /&gt;
===Encryption Key Management===&lt;br /&gt;
&lt;br /&gt;
As part of your PA DSS v3.1 requirements, encryption key must be changed annually (changing every 90 days is recommended). You should also change the key any time an employee with access to the key leaves your company. Always replace the key if you know or suspect it has been compromised by any means.&lt;br /&gt;
&lt;br /&gt;
To change the encryption keys:&lt;br /&gt;
&lt;br /&gt;
# Log in to '''X-Cart Payments'''&lt;br /&gt;
# Go to &amp;lt;u&amp;gt;Maintenance -&amp;gt; Encryption keys&amp;lt;/u&amp;gt;&lt;br /&gt;
# Click &amp;quot;Generate new keys&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Use unique user IDs and secure authentication to access PCs, servers and databases ===&lt;br /&gt;
&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords:&lt;br /&gt;
&lt;br /&gt;
# For your Web hosting account administration area (Web hosting account where your online store is hosted)&lt;br /&gt;
# For FTP access to the Web server&lt;br /&gt;
# For Remote Desktop Connection to the Web server (if available)&lt;br /&gt;
# To connect to the MySQL server that contains your store data.&lt;br /&gt;
&lt;br /&gt;
The passwords for the accounts mentioned above must also meet the following requirements:&lt;br /&gt;
&lt;br /&gt;
* be at least 8 characters in length&lt;br /&gt;
* contain both numbers and letters in lower and upper case&lt;br /&gt;
* not coincide with any part of your email address&lt;br /&gt;
* not coincide with any of the last four passwords you have used&lt;br /&gt;
* have a lifetime of less than 90 days&lt;br /&gt;
* account lockout threshold must be set to 6.&lt;br /&gt;
* account lockout duration must be set to 30 minutes (or until unblocked by the administrator).&lt;br /&gt;
* user must be logged off after 15 minutes of inactivity&lt;br /&gt;
&lt;br /&gt;
===Audit trails===&lt;br /&gt;
&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. There is no option to disable audit logging. The log files are created in the &amp;lt;u&amp;gt;var/log/&amp;lt;/u&amp;gt; directory. Make sure you restrict access to the log files by business need-to-know.&lt;br /&gt;
&lt;br /&gt;
The following types of activity are logged:&lt;br /&gt;
&lt;br /&gt;
* All actions taken by any individual with root or administrative privileges&lt;br /&gt;
* Successes and failures of all individual accesses to application sections and functions&lt;br /&gt;
&lt;br /&gt;
* Initialization of the audit logs&lt;br /&gt;
* User sign in and sign out.&lt;br /&gt;
&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to files access.log and error.log.&lt;br /&gt;
&lt;br /&gt;
Each log event includes:&lt;br /&gt;
&lt;br /&gt;
* Type of event&lt;br /&gt;
* Date and time of event&lt;br /&gt;
* Username and IP address&lt;br /&gt;
* Success or failure indication&lt;br /&gt;
* Action which led to the event&lt;br /&gt;
&lt;br /&gt;
* Component which led to the event&lt;br /&gt;
&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
&lt;br /&gt;
=== OS-level audit trails ===&lt;br /&gt;
&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on server. This software should:&lt;br /&gt;
&lt;br /&gt;
* warn on a checksum change of any of X-Cart Payments source code files except of log file and database files&lt;br /&gt;
* record any file writing operations related to X-Cart Payments files&lt;br /&gt;
&lt;br /&gt;
===Encrypting network traffic===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for:&lt;br /&gt;
&lt;br /&gt;
* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
* providing remote web-based access to the application&lt;br /&gt;
&lt;br /&gt;
If you use tools to remotely access the application, you should encrypt all communication using technologies such as TLS or IPSEC.&lt;br /&gt;
&lt;br /&gt;
As per PCI DSS requirement 4.2, cardholder data should never be sent unencrypted by e-mail, and X-Cart Payments does meet this requirement '''never''' sending cardholder data by e-mail or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&lt;br /&gt;
===Wireless communications===&lt;br /&gt;
&lt;br /&gt;
If you use wireless networking to access '''X-Cart Payments''', it is your responsibility to ensure your wireless security con figuration follows the PCI DSS requirements.&lt;br /&gt;
&lt;br /&gt;
* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
* Use with a minimum 104-bit encryption key and 24 bit-initialization value&lt;br /&gt;
* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS&lt;br /&gt;
* Rotate shared WEP keys quarterly (or automatically if the technology permits)&lt;br /&gt;
* Rotate shared WEP keys whenever there are changes in personnel with access to keys&lt;br /&gt;
* Restrict access based on media access cod e (MAC) address.&lt;br /&gt;
* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&lt;br /&gt;
===Remote access===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time PIN codes. Detailed information can be found at [[X-Payments:Managing_PIN_codes | Managing PIN codes]] page.&lt;br /&gt;
&lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following:&lt;br /&gt;
&lt;br /&gt;
* Change default settings in the remote access software (for example, change default passwords and use unique passwords for each customer)&lt;br /&gt;
* Allow connections only from specific (known) IP/MAC addresses&lt;br /&gt;
* Use strong authentication or complex passwords for logins&lt;br /&gt;
* Enable encrypted data transmission&lt;br /&gt;
* Enable account lockout after a certain number of failed login attempts&lt;br /&gt;
* Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed&lt;br /&gt;
* Enable any logging or auditing functions&lt;br /&gt;
* Restrict access to customer passwords to authorized reseller/integrator personnel&lt;br /&gt;
* Establish customer passwords according to PCI DSS requirements 8.1, 8.2, 8.4, 8.5&lt;br /&gt;
&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=497</id>
		<title>X-Payments:PCI DSS implementation guide for X-Payments 2.2</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=497"/>
		<updated>2015-12-17T12:00:12Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* X-Cart Payments versioning policy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Introduction ==&lt;br /&gt;
&lt;br /&gt;
This guide covers '''X-Cart Payments''' 1.0, 2.0, 2.1, 2.2 and is intended for merchants and integrators who wish to implement the application in accordance with guidelines set by the PCI Data Security Standard (PCI DSS).&lt;br /&gt;
&lt;br /&gt;
== X-Cart Payments versioning policy ==&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments version number must look like &amp;quot;X.Y.Z&amp;quot; (e.g. 1.0.6, 2.0.1, 2.2.1, 3.0.0), where&lt;br /&gt;
&lt;br /&gt;
X - major version number that gets incremented when a high impact change is introduced and certified under PA-DSS requirements;&lt;br /&gt;
&lt;br /&gt;
Y - minor version number that gets incremented when a low impact change is added to X-Cart Payments package;&lt;br /&gt;
&lt;br /&gt;
Z - bug-fix version number that gets incremented when a no impact change is done to X-Cart Payments package.&lt;br /&gt;
&lt;br /&gt;
== PCI DSS ==&lt;br /&gt;
&lt;br /&gt;
PCI DSS specifies 12 requirements broken into 6 groups for compliance that apply both to hardware and software parts of the system that is used to collect, store, transmit and process valuable credit card data as well as the human factor.&lt;br /&gt;
&lt;br /&gt;
{| border&lt;br /&gt;
| Build and Maintain a Secure Network&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 1: Install and maintain a firewall configuration to protect cardholder data&lt;br /&gt;
* Requirement 2: Do not use vendor-supplied defaults for system passwords and other security parameters&lt;br /&gt;
|-&lt;br /&gt;
| Protect Cardholder Data&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 3: Protect stored cardholder data&lt;br /&gt;
* Requirement 4: Encrypt transmission of cardholder data across open, public networks&lt;br /&gt;
|-&lt;br /&gt;
| Maintain a Vulnerability Management Program&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 5: Use and regularly update anti-virus software&lt;br /&gt;
* Requirement 6: Develop and maintain secure systems and applications&lt;br /&gt;
|-&lt;br /&gt;
| Implement Strong Access Control Measures&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 7: Restrict access to cardholder data by business need-to-know&lt;br /&gt;
* Requirement 8: Assign a unique ID to each person with computer access&lt;br /&gt;
* Requirement 9: Restrict physical access to cardholder data&lt;br /&gt;
|-&lt;br /&gt;
| Regularly Monitor and Test Networks&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 10: Track and monitor all access to network resources and cardholder data&lt;br /&gt;
* Requirement 11: Regularly test security systems and processes&lt;br /&gt;
|-&lt;br /&gt;
| Maintain an Information Security Policy&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 12: Maintain a policy that addresses information security&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Specifically, relevant elements to an e-commerce business' PCI compliance status include:&lt;br /&gt;
&lt;br /&gt;
* Properly using your payment application. For this purpose, carefully review the section below for information on how to use '''X-Cart Payments''' in a way that ensures PCI compliance.&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant Web hosting environment&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant payment provider&lt;br /&gt;
&lt;br /&gt;
You can find and review the complete specification by visiting [https://www.pcisecuritystandards.org/ https://www.pcisecuritystandards.org/]&lt;br /&gt;
&lt;br /&gt;
This guide is intended to help merchants implement the '''X-Cart Payments''' application in a way that is compliant with version 2.0 of the PCI DSS.&lt;br /&gt;
&lt;br /&gt;
== Payment Card Industry Data Security Standard ('''PCI DSS''') ==&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry Data Security Standard is a worldwide information security standard assembled by the major credit card vendors, including American Express, Discover Financial Services, JCB International, MasterCard Worldwide, and Visa, Inc. The standard was designed to help organizations involved in processing credit card payments online make their payment systems secure from cardholder data fraud.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has been designed and certified to meet all of the requirements of the '''PA-DSS''' version 2.0. This does not automatically make you, the merchant, PCI DSS compliant. To ensure PCI DSS compliance, it is necessary that you follow the recommendations and instructions provided in this guide.&lt;br /&gt;
&lt;br /&gt;
For additional information about '''PCI DSS''' please visit the [https://www.pcisecuritystandards.org Official PCI Security Standards Council Site].&lt;br /&gt;
&lt;br /&gt;
== Cardholder data storage==&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has [[X-Payments:General_settings#Cardholder_Data | the ability to store parts of cardholder data temporarily]] for performing 3D Secure verification and certain types of transactions for some of the integrated payment processors. While stored cardholder data is encrypted using special [[X-Payments:Encryption_keys | cryptographic algorithm]]. The data is removed automatically when its storing period is over using &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can not be configured to store permanently in the database the following types of data:&lt;br /&gt;
&lt;br /&gt;
* unmasked PAN&lt;br /&gt;
* PIN&lt;br /&gt;
* CVV&lt;br /&gt;
* magnetic stripe (track data)&lt;br /&gt;
&lt;br /&gt;
Merchants and/or developers implementing '''X-Cart Payments''' should not attempt to customize this as a feature.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can display masked PAN on &amp;quot;Payment details&amp;quot; pages and in &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. '''X-Cart Payments''' does not have the ability to display full PAN anywhere and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&lt;br /&gt;
==Configuring and using '''X-Cart Payments''' in PCI compliant manner ==&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
Follow the [[X-Payments:Installation | standard procedure]] for deployment of X-Cart Payments files to the web server.&lt;br /&gt;
&lt;br /&gt;
{{Note1|Once installed, X-Cart Payments WILL NEVER:&amp;lt;br/&amp;gt;&lt;br /&gt;
* store unmasked credit card numbers (PANs)&lt;br /&gt;
* send credit card data or any other information to Qualiteam for debug purposes}}&lt;br /&gt;
&lt;br /&gt;
===Access control===&lt;br /&gt;
&lt;br /&gt;
There are no built-in/default user accounts in '''X-Cart Payments'''.&lt;br /&gt;
You must carefully control access to '''X-Cart Payments'''. Follow these rules:&lt;br /&gt;
&lt;br /&gt;
* Restrict the number of employees who have access to '''X-Cart Payments''' to only those who have a business need.&lt;br /&gt;
* Always provide unique usernames for each person who needs access.&lt;br /&gt;
* Do not use system-default usernames and/or passwords&lt;br /&gt;
* Web server must be run under a non-privileged user account. Application must access the database from a limited privilege user account.&lt;br /&gt;
* All default user accounts use secure authentication mechanisms and password policy settings that comply with all the standard requirements:&lt;br /&gt;
** user accounts inactive for more than 3 days are blocked&lt;br /&gt;
** password lifetime is set to 30 days&lt;br /&gt;
&lt;br /&gt;
:: To set password lifetime:&lt;br /&gt;
&lt;br /&gt;
::# Login to '''X-Cart Payments'''&lt;br /&gt;
::# Go to &amp;lt;u&amp;gt;Settings -&amp;gt; General Settings&amp;lt;/u&amp;gt;&lt;br /&gt;
::# Enter the number of days the user account password will be valid for in the &amp;quot;User account password lifetime&amp;quot; field. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
&lt;br /&gt;
:* minimum password length is 8 characters&lt;br /&gt;
:* password must contain both lower and upper case characters and numbers&lt;br /&gt;
:* the last 4 passwords must be unique&lt;br /&gt;
:* user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password&lt;br /&gt;
:* user is logged off after inactivity period of 10 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt; Please note that changing default password policy settings will lead to breaking PCI DSS standard requirements.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Enabling SSL (Secure Socket Layer)===&lt;br /&gt;
&lt;br /&gt;
SSL protects data that is transmitted between a browser and your web server. It is critical that you have SSL enabled on your web server, and this should be among the first steps taken after installation.&lt;br /&gt;
&lt;br /&gt;
* Your web server must be configured to use TLS v1.2 protocols with strong encryption (128-bit or longer key is required)&lt;br /&gt;
* You will need to have a certificate issued for your web domain. Read [http://help.qtmsoft.com/index.php?title=Instant_SSL_certificate guidelines on installing Comodo's Instant SSL certificates].&lt;br /&gt;
&lt;br /&gt;
If a web server does not have SSL enabled '''X-Cart Payments''' will not function or will be notifying users depending on '''allow_insecure_protocol''' parameter set in &amp;lt;u&amp;gt;config.ini.php&amp;lt;/u&amp;gt; file (disabled by default).&lt;br /&gt;
&lt;br /&gt;
===Data Collected while Testing===&lt;br /&gt;
&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments:&lt;br /&gt;
&lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever collect credit card information to troubleshoot a problem that one of your customers is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access&lt;br /&gt;
#* Only collect a limited amount of such data as needed to solve a specific problem&lt;br /&gt;
#* Sensitive authentication data must be encrypted while stored. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Such data must be securely deleted immediately after use.&lt;br /&gt;
&lt;br /&gt;
===Encryption Key Management===&lt;br /&gt;
&lt;br /&gt;
As part of your PA DSS v3.1 requirements, encryption key must be changed annually (changing every 90 days is recommended). You should also change the key any time an employee with access to the key leaves your company. Always replace the key if you know or suspect it has been compromised by any means.&lt;br /&gt;
&lt;br /&gt;
To change the encryption keys:&lt;br /&gt;
&lt;br /&gt;
# Log in to '''X-Cart Payments'''&lt;br /&gt;
# Go to &amp;lt;u&amp;gt;Maintenance -&amp;gt; Encryption keys&amp;lt;/u&amp;gt;&lt;br /&gt;
# Click &amp;quot;Generate new keys&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Use unique user IDs and secure authentication to access PCs, servers and databases ===&lt;br /&gt;
&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords:&lt;br /&gt;
&lt;br /&gt;
# For your Web hosting account administration area (Web hosting account where your online store is hosted)&lt;br /&gt;
# For FTP access to the Web server&lt;br /&gt;
# For Remote Desktop Connection to the Web server (if available)&lt;br /&gt;
# To connect to the MySQL server that contains your store data.&lt;br /&gt;
&lt;br /&gt;
The passwords for the accounts mentioned above must also meet the following requirements:&lt;br /&gt;
&lt;br /&gt;
* be at least 8 characters in length&lt;br /&gt;
* contain both numbers and letters in lower and upper case&lt;br /&gt;
* not coincide with any part of your email address&lt;br /&gt;
* not coincide with any of the last four passwords you have used&lt;br /&gt;
* have a lifetime of less than 90 days&lt;br /&gt;
* account lockout threshold must be set to 6.&lt;br /&gt;
* account lockout duration must be set to 30 minutes (or until unblocked by the administrator).&lt;br /&gt;
* user must be logged off after 15 minutes of inactivity&lt;br /&gt;
&lt;br /&gt;
===Audit trails===&lt;br /&gt;
&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. There is no option to disable audit logging. The log files are created in the &amp;lt;u&amp;gt;var/log/&amp;lt;/u&amp;gt; directory. Make sure you restrict access to the log files by business need-to-know.&lt;br /&gt;
&lt;br /&gt;
The following types of activity are logged:&lt;br /&gt;
&lt;br /&gt;
* All actions taken by any individual with root or administrative privileges&lt;br /&gt;
* Successes and failures of all individual accesses to application sections and functions&lt;br /&gt;
&lt;br /&gt;
* Initialization of the audit logs&lt;br /&gt;
* User sign in and sign out.&lt;br /&gt;
&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to files access.log and error.log.&lt;br /&gt;
&lt;br /&gt;
Each log event includes:&lt;br /&gt;
&lt;br /&gt;
* Type of event&lt;br /&gt;
* Date and time of event&lt;br /&gt;
* Username and IP address&lt;br /&gt;
* Success or failure indication&lt;br /&gt;
* Action which led to the event&lt;br /&gt;
&lt;br /&gt;
* Component which led to the event&lt;br /&gt;
&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
&lt;br /&gt;
=== OS-level audit trails ===&lt;br /&gt;
&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on server. This software should:&lt;br /&gt;
&lt;br /&gt;
* warn on a checksum change of any of X-Cart Payments source code files except of log file and database files&lt;br /&gt;
* record any file writing operations related to X-Cart Payments files&lt;br /&gt;
&lt;br /&gt;
===Encrypting network traffic===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for:&lt;br /&gt;
&lt;br /&gt;
* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
* providing remote web-based access to the application&lt;br /&gt;
&lt;br /&gt;
If you use tools to remotely access the application, you should encrypt all communication using technologies such as TLS or IPSEC.&lt;br /&gt;
&lt;br /&gt;
As per PCI DSS requirement 4.2, cardholder data should never be sent unencrypted by e-mail, and X-Cart Payments does meet this requirement '''never''' sending cardholder data by e-mail or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&lt;br /&gt;
===Wireless communications===&lt;br /&gt;
&lt;br /&gt;
If you use wireless networking to access '''X-Cart Payments''', it is your responsibility to ensure your wireless security con figuration follows the PCI DSS requirements.&lt;br /&gt;
&lt;br /&gt;
* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
* Use with a minimum 104-bit encryption key and 24 bit-initialization value&lt;br /&gt;
* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS&lt;br /&gt;
* Rotate shared WEP keys quarterly (or automatically if the technology permits)&lt;br /&gt;
* Rotate shared WEP keys whenever there are changes in personnel with access to keys&lt;br /&gt;
* Restrict access based on media access cod e (MAC) address.&lt;br /&gt;
* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&lt;br /&gt;
===Remote access===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time PIN codes. Detailed information can be found at [[X-Payments:Managing_PIN_codes | Managing PIN codes]] page.&lt;br /&gt;
&lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following:&lt;br /&gt;
&lt;br /&gt;
* Change default settings in the remote access software (for example, change default passwords and use unique passwords for each customer)&lt;br /&gt;
* Allow connections only from specific (known) IP/MAC addresses&lt;br /&gt;
* Use strong authentication or complex passwords for logins&lt;br /&gt;
* Enable encrypted data transmission&lt;br /&gt;
* Enable account lockout after a certain number of failed login attempts&lt;br /&gt;
* Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed&lt;br /&gt;
* Enable any logging or auditing functions&lt;br /&gt;
* Restrict access to customer passwords to authorized reseller/integrator personnel&lt;br /&gt;
* Establish customer passwords according to PCI DSS requirements 8.1, 8.2, 8.4, 8.5&lt;br /&gt;
&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=496</id>
		<title>X-Payments:PCI DSS implementation guide for X-Payments 2.2</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=496"/>
		<updated>2015-12-17T11:58:31Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* X-Cart Payments version policy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Introduction ==&lt;br /&gt;
&lt;br /&gt;
This guide covers '''X-Cart Payments''' 1.0, 2.0, 2.1, 2.2 and is intended for merchants and integrators who wish to implement the application in accordance with guidelines set by the PCI Data Security Standard (PCI DSS).&lt;br /&gt;
&lt;br /&gt;
== X-Cart Payments versioning policy ==&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments version number must look like &amp;quot;X.Y.Z&amp;quot; (e.g. 1.0.6, 2.0.1, 2.2.1, 3.0.0), where&lt;br /&gt;
&lt;br /&gt;
X - major version number that gets incremented when a high impact change is introduced and certified under PA-DSS requirements;&lt;br /&gt;
Y - minor version number that gets incremented when a low impact change is added to X-Cart Payments package;&lt;br /&gt;
Z - bug-fix version number that gets incremented when a no impact change is done to X-Cart Payments package.&lt;br /&gt;
&lt;br /&gt;
== PCI DSS ==&lt;br /&gt;
&lt;br /&gt;
PCI DSS specifies 12 requirements broken into 6 groups for compliance that apply both to hardware and software parts of the system that is used to collect, store, transmit and process valuable credit card data as well as the human factor.&lt;br /&gt;
&lt;br /&gt;
{| border&lt;br /&gt;
| Build and Maintain a Secure Network&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 1: Install and maintain a firewall configuration to protect cardholder data&lt;br /&gt;
* Requirement 2: Do not use vendor-supplied defaults for system passwords and other security parameters&lt;br /&gt;
|-&lt;br /&gt;
| Protect Cardholder Data&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 3: Protect stored cardholder data&lt;br /&gt;
* Requirement 4: Encrypt transmission of cardholder data across open, public networks&lt;br /&gt;
|-&lt;br /&gt;
| Maintain a Vulnerability Management Program&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 5: Use and regularly update anti-virus software&lt;br /&gt;
* Requirement 6: Develop and maintain secure systems and applications&lt;br /&gt;
|-&lt;br /&gt;
| Implement Strong Access Control Measures&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 7: Restrict access to cardholder data by business need-to-know&lt;br /&gt;
* Requirement 8: Assign a unique ID to each person with computer access&lt;br /&gt;
* Requirement 9: Restrict physical access to cardholder data&lt;br /&gt;
|-&lt;br /&gt;
| Regularly Monitor and Test Networks&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 10: Track and monitor all access to network resources and cardholder data&lt;br /&gt;
* Requirement 11: Regularly test security systems and processes&lt;br /&gt;
|-&lt;br /&gt;
| Maintain an Information Security Policy&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 12: Maintain a policy that addresses information security&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Specifically, relevant elements to an e-commerce business' PCI compliance status include:&lt;br /&gt;
&lt;br /&gt;
* Properly using your payment application. For this purpose, carefully review the section below for information on how to use '''X-Cart Payments''' in a way that ensures PCI compliance.&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant Web hosting environment&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant payment provider&lt;br /&gt;
&lt;br /&gt;
You can find and review the complete specification by visiting [https://www.pcisecuritystandards.org/ https://www.pcisecuritystandards.org/]&lt;br /&gt;
&lt;br /&gt;
This guide is intended to help merchants implement the '''X-Cart Payments''' application in a way that is compliant with version 2.0 of the PCI DSS.&lt;br /&gt;
&lt;br /&gt;
== Payment Card Industry Data Security Standard ('''PCI DSS''') ==&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry Data Security Standard is a worldwide information security standard assembled by the major credit card vendors, including American Express, Discover Financial Services, JCB International, MasterCard Worldwide, and Visa, Inc. The standard was designed to help organizations involved in processing credit card payments online make their payment systems secure from cardholder data fraud.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has been designed and certified to meet all of the requirements of the '''PA-DSS''' version 2.0. This does not automatically make you, the merchant, PCI DSS compliant. To ensure PCI DSS compliance, it is necessary that you follow the recommendations and instructions provided in this guide.&lt;br /&gt;
&lt;br /&gt;
For additional information about '''PCI DSS''' please visit the [https://www.pcisecuritystandards.org Official PCI Security Standards Council Site].&lt;br /&gt;
&lt;br /&gt;
== Cardholder data storage==&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has [[X-Payments:General_settings#Cardholder_Data | the ability to store parts of cardholder data temporarily]] for performing 3D Secure verification and certain types of transactions for some of the integrated payment processors. While stored cardholder data is encrypted using special [[X-Payments:Encryption_keys | cryptographic algorithm]]. The data is removed automatically when its storing period is over using &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can not be configured to store permanently in the database the following types of data:&lt;br /&gt;
&lt;br /&gt;
* unmasked PAN&lt;br /&gt;
* PIN&lt;br /&gt;
* CVV&lt;br /&gt;
* magnetic stripe (track data)&lt;br /&gt;
&lt;br /&gt;
Merchants and/or developers implementing '''X-Cart Payments''' should not attempt to customize this as a feature.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can display masked PAN on &amp;quot;Payment details&amp;quot; pages and in &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. '''X-Cart Payments''' does not have the ability to display full PAN anywhere and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&lt;br /&gt;
==Configuring and using '''X-Cart Payments''' in PCI compliant manner ==&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
Follow the [[X-Payments:Installation | standard procedure]] for deployment of X-Cart Payments files to the web server.&lt;br /&gt;
&lt;br /&gt;
{{Note1|Once installed, X-Cart Payments WILL NEVER:&amp;lt;br/&amp;gt;&lt;br /&gt;
* store unmasked credit card numbers (PANs)&lt;br /&gt;
* send credit card data or any other information to Qualiteam for debug purposes}}&lt;br /&gt;
&lt;br /&gt;
===Access control===&lt;br /&gt;
&lt;br /&gt;
There are no built-in/default user accounts in '''X-Cart Payments'''.&lt;br /&gt;
You must carefully control access to '''X-Cart Payments'''. Follow these rules:&lt;br /&gt;
&lt;br /&gt;
* Restrict the number of employees who have access to '''X-Cart Payments''' to only those who have a business need.&lt;br /&gt;
* Always provide unique usernames for each person who needs access.&lt;br /&gt;
* Do not use system-default usernames and/or passwords&lt;br /&gt;
* Web server must be run under a non-privileged user account. Application must access the database from a limited privilege user account.&lt;br /&gt;
* All default user accounts use secure authentication mechanisms and password policy settings that comply with all the standard requirements:&lt;br /&gt;
** user accounts inactive for more than 3 days are blocked&lt;br /&gt;
** password lifetime is set to 30 days&lt;br /&gt;
&lt;br /&gt;
:: To set password lifetime:&lt;br /&gt;
&lt;br /&gt;
::# Login to '''X-Cart Payments'''&lt;br /&gt;
::# Go to &amp;lt;u&amp;gt;Settings -&amp;gt; General Settings&amp;lt;/u&amp;gt;&lt;br /&gt;
::# Enter the number of days the user account password will be valid for in the &amp;quot;User account password lifetime&amp;quot; field. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
&lt;br /&gt;
:* minimum password length is 8 characters&lt;br /&gt;
:* password must contain both lower and upper case characters and numbers&lt;br /&gt;
:* the last 4 passwords must be unique&lt;br /&gt;
:* user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password&lt;br /&gt;
:* user is logged off after inactivity period of 10 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt; Please note that changing default password policy settings will lead to breaking PCI DSS standard requirements.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Enabling SSL (Secure Socket Layer)===&lt;br /&gt;
&lt;br /&gt;
SSL protects data that is transmitted between a browser and your web server. It is critical that you have SSL enabled on your web server, and this should be among the first steps taken after installation.&lt;br /&gt;
&lt;br /&gt;
* Your web server must be configured to use TLS v1.2 protocols with strong encryption (128-bit or longer key is required)&lt;br /&gt;
* You will need to have a certificate issued for your web domain. Read [http://help.qtmsoft.com/index.php?title=Instant_SSL_certificate guidelines on installing Comodo's Instant SSL certificates].&lt;br /&gt;
&lt;br /&gt;
If a web server does not have SSL enabled '''X-Cart Payments''' will not function or will be notifying users depending on '''allow_insecure_protocol''' parameter set in &amp;lt;u&amp;gt;config.ini.php&amp;lt;/u&amp;gt; file (disabled by default).&lt;br /&gt;
&lt;br /&gt;
===Data Collected while Testing===&lt;br /&gt;
&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments:&lt;br /&gt;
&lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever collect credit card information to troubleshoot a problem that one of your customers is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access&lt;br /&gt;
#* Only collect a limited amount of such data as needed to solve a specific problem&lt;br /&gt;
#* Sensitive authentication data must be encrypted while stored. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Such data must be securely deleted immediately after use.&lt;br /&gt;
&lt;br /&gt;
===Encryption Key Management===&lt;br /&gt;
&lt;br /&gt;
As part of your PA DSS v3.1 requirements, encryption key must be changed annually (changing every 90 days is recommended). You should also change the key any time an employee with access to the key leaves your company. Always replace the key if you know or suspect it has been compromised by any means.&lt;br /&gt;
&lt;br /&gt;
To change the encryption keys:&lt;br /&gt;
&lt;br /&gt;
# Log in to '''X-Cart Payments'''&lt;br /&gt;
# Go to &amp;lt;u&amp;gt;Maintenance -&amp;gt; Encryption keys&amp;lt;/u&amp;gt;&lt;br /&gt;
# Click &amp;quot;Generate new keys&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Use unique user IDs and secure authentication to access PCs, servers and databases ===&lt;br /&gt;
&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords:&lt;br /&gt;
&lt;br /&gt;
# For your Web hosting account administration area (Web hosting account where your online store is hosted)&lt;br /&gt;
# For FTP access to the Web server&lt;br /&gt;
# For Remote Desktop Connection to the Web server (if available)&lt;br /&gt;
# To connect to the MySQL server that contains your store data.&lt;br /&gt;
&lt;br /&gt;
The passwords for the accounts mentioned above must also meet the following requirements:&lt;br /&gt;
&lt;br /&gt;
* be at least 8 characters in length&lt;br /&gt;
* contain both numbers and letters in lower and upper case&lt;br /&gt;
* not coincide with any part of your email address&lt;br /&gt;
* not coincide with any of the last four passwords you have used&lt;br /&gt;
* have a lifetime of less than 90 days&lt;br /&gt;
* account lockout threshold must be set to 6.&lt;br /&gt;
* account lockout duration must be set to 30 minutes (or until unblocked by the administrator).&lt;br /&gt;
* user must be logged off after 15 minutes of inactivity&lt;br /&gt;
&lt;br /&gt;
===Audit trails===&lt;br /&gt;
&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. There is no option to disable audit logging. The log files are created in the &amp;lt;u&amp;gt;var/log/&amp;lt;/u&amp;gt; directory. Make sure you restrict access to the log files by business need-to-know.&lt;br /&gt;
&lt;br /&gt;
The following types of activity are logged:&lt;br /&gt;
&lt;br /&gt;
* All actions taken by any individual with root or administrative privileges&lt;br /&gt;
* Successes and failures of all individual accesses to application sections and functions&lt;br /&gt;
&lt;br /&gt;
* Initialization of the audit logs&lt;br /&gt;
* User sign in and sign out.&lt;br /&gt;
&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to files access.log and error.log.&lt;br /&gt;
&lt;br /&gt;
Each log event includes:&lt;br /&gt;
&lt;br /&gt;
* Type of event&lt;br /&gt;
* Date and time of event&lt;br /&gt;
* Username and IP address&lt;br /&gt;
* Success or failure indication&lt;br /&gt;
* Action which led to the event&lt;br /&gt;
&lt;br /&gt;
* Component which led to the event&lt;br /&gt;
&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
&lt;br /&gt;
=== OS-level audit trails ===&lt;br /&gt;
&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on server. This software should:&lt;br /&gt;
&lt;br /&gt;
* warn on a checksum change of any of X-Cart Payments source code files except of log file and database files&lt;br /&gt;
* record any file writing operations related to X-Cart Payments files&lt;br /&gt;
&lt;br /&gt;
===Encrypting network traffic===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for:&lt;br /&gt;
&lt;br /&gt;
* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
* providing remote web-based access to the application&lt;br /&gt;
&lt;br /&gt;
If you use tools to remotely access the application, you should encrypt all communication using technologies such as TLS or IPSEC.&lt;br /&gt;
&lt;br /&gt;
As per PCI DSS requirement 4.2, cardholder data should never be sent unencrypted by e-mail, and X-Cart Payments does meet this requirement '''never''' sending cardholder data by e-mail or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&lt;br /&gt;
===Wireless communications===&lt;br /&gt;
&lt;br /&gt;
If you use wireless networking to access '''X-Cart Payments''', it is your responsibility to ensure your wireless security con figuration follows the PCI DSS requirements.&lt;br /&gt;
&lt;br /&gt;
* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
* Use with a minimum 104-bit encryption key and 24 bit-initialization value&lt;br /&gt;
* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS&lt;br /&gt;
* Rotate shared WEP keys quarterly (or automatically if the technology permits)&lt;br /&gt;
* Rotate shared WEP keys whenever there are changes in personnel with access to keys&lt;br /&gt;
* Restrict access based on media access cod e (MAC) address.&lt;br /&gt;
* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&lt;br /&gt;
===Remote access===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time PIN codes. Detailed information can be found at [[X-Payments:Managing_PIN_codes | Managing PIN codes]] page.&lt;br /&gt;
&lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following:&lt;br /&gt;
&lt;br /&gt;
* Change default settings in the remote access software (for example, change default passwords and use unique passwords for each customer)&lt;br /&gt;
* Allow connections only from specific (known) IP/MAC addresses&lt;br /&gt;
* Use strong authentication or complex passwords for logins&lt;br /&gt;
* Enable encrypted data transmission&lt;br /&gt;
* Enable account lockout after a certain number of failed login attempts&lt;br /&gt;
* Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed&lt;br /&gt;
* Enable any logging or auditing functions&lt;br /&gt;
* Restrict access to customer passwords to authorized reseller/integrator personnel&lt;br /&gt;
* Establish customer passwords according to PCI DSS requirements 8.1, 8.2, 8.4, 8.5&lt;br /&gt;
&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=495</id>
		<title>X-Payments:PCI DSS implementation guide for X-Payments 2.2</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=495"/>
		<updated>2015-12-17T11:56:49Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Introduction ==&lt;br /&gt;
&lt;br /&gt;
This guide covers '''X-Cart Payments''' 1.0, 2.0, 2.1, 2.2 and is intended for merchants and integrators who wish to implement the application in accordance with guidelines set by the PCI Data Security Standard (PCI DSS).&lt;br /&gt;
&lt;br /&gt;
== X-Cart Payments version policy ==&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments version number must look like &amp;quot;X.Y.Z&amp;quot; (e.g. 1.0.6, 2.0.1, 2.2.1, 3.0.0), where&lt;br /&gt;
&lt;br /&gt;
X - major version number that gets incremented when a high impact change is introduced and certified under PA-DSS requirements;&lt;br /&gt;
Y - minor version number that gets incremented when a low impact change is added to X-Cart Payments package;&lt;br /&gt;
Z - bug-fix version number that gets incremented when a no impact change is done to X-Cart Payments package.&lt;br /&gt;
&lt;br /&gt;
== PCI DSS ==&lt;br /&gt;
&lt;br /&gt;
PCI DSS specifies 12 requirements broken into 6 groups for compliance that apply both to hardware and software parts of the system that is used to collect, store, transmit and process valuable credit card data as well as the human factor.&lt;br /&gt;
&lt;br /&gt;
{| border&lt;br /&gt;
| Build and Maintain a Secure Network&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 1: Install and maintain a firewall configuration to protect cardholder data&lt;br /&gt;
* Requirement 2: Do not use vendor-supplied defaults for system passwords and other security parameters&lt;br /&gt;
|-&lt;br /&gt;
| Protect Cardholder Data&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 3: Protect stored cardholder data&lt;br /&gt;
* Requirement 4: Encrypt transmission of cardholder data across open, public networks&lt;br /&gt;
|-&lt;br /&gt;
| Maintain a Vulnerability Management Program&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 5: Use and regularly update anti-virus software&lt;br /&gt;
* Requirement 6: Develop and maintain secure systems and applications&lt;br /&gt;
|-&lt;br /&gt;
| Implement Strong Access Control Measures&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 7: Restrict access to cardholder data by business need-to-know&lt;br /&gt;
* Requirement 8: Assign a unique ID to each person with computer access&lt;br /&gt;
* Requirement 9: Restrict physical access to cardholder data&lt;br /&gt;
|-&lt;br /&gt;
| Regularly Monitor and Test Networks&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 10: Track and monitor all access to network resources and cardholder data&lt;br /&gt;
* Requirement 11: Regularly test security systems and processes&lt;br /&gt;
|-&lt;br /&gt;
| Maintain an Information Security Policy&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 12: Maintain a policy that addresses information security&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Specifically, relevant elements to an e-commerce business' PCI compliance status include:&lt;br /&gt;
&lt;br /&gt;
* Properly using your payment application. For this purpose, carefully review the section below for information on how to use '''X-Cart Payments''' in a way that ensures PCI compliance.&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant Web hosting environment&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant payment provider&lt;br /&gt;
&lt;br /&gt;
You can find and review the complete specification by visiting [https://www.pcisecuritystandards.org/ https://www.pcisecuritystandards.org/]&lt;br /&gt;
&lt;br /&gt;
This guide is intended to help merchants implement the '''X-Cart Payments''' application in a way that is compliant with version 2.0 of the PCI DSS.&lt;br /&gt;
&lt;br /&gt;
== Payment Card Industry Data Security Standard ('''PCI DSS''') ==&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry Data Security Standard is a worldwide information security standard assembled by the major credit card vendors, including American Express, Discover Financial Services, JCB International, MasterCard Worldwide, and Visa, Inc. The standard was designed to help organizations involved in processing credit card payments online make their payment systems secure from cardholder data fraud.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has been designed and certified to meet all of the requirements of the '''PA-DSS''' version 2.0. This does not automatically make you, the merchant, PCI DSS compliant. To ensure PCI DSS compliance, it is necessary that you follow the recommendations and instructions provided in this guide.&lt;br /&gt;
&lt;br /&gt;
For additional information about '''PCI DSS''' please visit the [https://www.pcisecuritystandards.org Official PCI Security Standards Council Site].&lt;br /&gt;
&lt;br /&gt;
== Cardholder data storage==&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has [[X-Payments:General_settings#Cardholder_Data | the ability to store parts of cardholder data temporarily]] for performing 3D Secure verification and certain types of transactions for some of the integrated payment processors. While stored cardholder data is encrypted using special [[X-Payments:Encryption_keys | cryptographic algorithm]]. The data is removed automatically when its storing period is over using &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can not be configured to store permanently in the database the following types of data:&lt;br /&gt;
&lt;br /&gt;
* unmasked PAN&lt;br /&gt;
* PIN&lt;br /&gt;
* CVV&lt;br /&gt;
* magnetic stripe (track data)&lt;br /&gt;
&lt;br /&gt;
Merchants and/or developers implementing '''X-Cart Payments''' should not attempt to customize this as a feature.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can display masked PAN on &amp;quot;Payment details&amp;quot; pages and in &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. '''X-Cart Payments''' does not have the ability to display full PAN anywhere and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&lt;br /&gt;
==Configuring and using '''X-Cart Payments''' in PCI compliant manner ==&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
Follow the [[X-Payments:Installation | standard procedure]] for deployment of X-Cart Payments files to the web server.&lt;br /&gt;
&lt;br /&gt;
{{Note1|Once installed, X-Cart Payments WILL NEVER:&amp;lt;br/&amp;gt;&lt;br /&gt;
* store unmasked credit card numbers (PANs)&lt;br /&gt;
* send credit card data or any other information to Qualiteam for debug purposes}}&lt;br /&gt;
&lt;br /&gt;
===Access control===&lt;br /&gt;
&lt;br /&gt;
There are no built-in/default user accounts in '''X-Cart Payments'''.&lt;br /&gt;
You must carefully control access to '''X-Cart Payments'''. Follow these rules:&lt;br /&gt;
&lt;br /&gt;
* Restrict the number of employees who have access to '''X-Cart Payments''' to only those who have a business need.&lt;br /&gt;
* Always provide unique usernames for each person who needs access.&lt;br /&gt;
* Do not use system-default usernames and/or passwords&lt;br /&gt;
* Web server must be run under a non-privileged user account. Application must access the database from a limited privilege user account.&lt;br /&gt;
* All default user accounts use secure authentication mechanisms and password policy settings that comply with all the standard requirements:&lt;br /&gt;
** user accounts inactive for more than 3 days are blocked&lt;br /&gt;
** password lifetime is set to 30 days&lt;br /&gt;
&lt;br /&gt;
:: To set password lifetime:&lt;br /&gt;
&lt;br /&gt;
::# Login to '''X-Cart Payments'''&lt;br /&gt;
::# Go to &amp;lt;u&amp;gt;Settings -&amp;gt; General Settings&amp;lt;/u&amp;gt;&lt;br /&gt;
::# Enter the number of days the user account password will be valid for in the &amp;quot;User account password lifetime&amp;quot; field. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
&lt;br /&gt;
:* minimum password length is 8 characters&lt;br /&gt;
:* password must contain both lower and upper case characters and numbers&lt;br /&gt;
:* the last 4 passwords must be unique&lt;br /&gt;
:* user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password&lt;br /&gt;
:* user is logged off after inactivity period of 10 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt; Please note that changing default password policy settings will lead to breaking PCI DSS standard requirements.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Enabling SSL (Secure Socket Layer)===&lt;br /&gt;
&lt;br /&gt;
SSL protects data that is transmitted between a browser and your web server. It is critical that you have SSL enabled on your web server, and this should be among the first steps taken after installation.&lt;br /&gt;
&lt;br /&gt;
* Your web server must be configured to use TLS v1.2 protocols with strong encryption (128-bit or longer key is required)&lt;br /&gt;
* You will need to have a certificate issued for your web domain. Read [http://help.qtmsoft.com/index.php?title=Instant_SSL_certificate guidelines on installing Comodo's Instant SSL certificates].&lt;br /&gt;
&lt;br /&gt;
If a web server does not have SSL enabled '''X-Cart Payments''' will not function or will be notifying users depending on '''allow_insecure_protocol''' parameter set in &amp;lt;u&amp;gt;config.ini.php&amp;lt;/u&amp;gt; file (disabled by default).&lt;br /&gt;
&lt;br /&gt;
===Data Collected while Testing===&lt;br /&gt;
&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments:&lt;br /&gt;
&lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever collect credit card information to troubleshoot a problem that one of your customers is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access&lt;br /&gt;
#* Only collect a limited amount of such data as needed to solve a specific problem&lt;br /&gt;
#* Sensitive authentication data must be encrypted while stored. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Such data must be securely deleted immediately after use.&lt;br /&gt;
&lt;br /&gt;
===Encryption Key Management===&lt;br /&gt;
&lt;br /&gt;
As part of your PA DSS v3.1 requirements, encryption key must be changed annually (changing every 90 days is recommended). You should also change the key any time an employee with access to the key leaves your company. Always replace the key if you know or suspect it has been compromised by any means.&lt;br /&gt;
&lt;br /&gt;
To change the encryption keys:&lt;br /&gt;
&lt;br /&gt;
# Log in to '''X-Cart Payments'''&lt;br /&gt;
# Go to &amp;lt;u&amp;gt;Maintenance -&amp;gt; Encryption keys&amp;lt;/u&amp;gt;&lt;br /&gt;
# Click &amp;quot;Generate new keys&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Use unique user IDs and secure authentication to access PCs, servers and databases ===&lt;br /&gt;
&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords:&lt;br /&gt;
&lt;br /&gt;
# For your Web hosting account administration area (Web hosting account where your online store is hosted)&lt;br /&gt;
# For FTP access to the Web server&lt;br /&gt;
# For Remote Desktop Connection to the Web server (if available)&lt;br /&gt;
# To connect to the MySQL server that contains your store data.&lt;br /&gt;
&lt;br /&gt;
The passwords for the accounts mentioned above must also meet the following requirements:&lt;br /&gt;
&lt;br /&gt;
* be at least 8 characters in length&lt;br /&gt;
* contain both numbers and letters in lower and upper case&lt;br /&gt;
* not coincide with any part of your email address&lt;br /&gt;
* not coincide with any of the last four passwords you have used&lt;br /&gt;
* have a lifetime of less than 90 days&lt;br /&gt;
* account lockout threshold must be set to 6.&lt;br /&gt;
* account lockout duration must be set to 30 minutes (or until unblocked by the administrator).&lt;br /&gt;
* user must be logged off after 15 minutes of inactivity&lt;br /&gt;
&lt;br /&gt;
===Audit trails===&lt;br /&gt;
&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. There is no option to disable audit logging. The log files are created in the &amp;lt;u&amp;gt;var/log/&amp;lt;/u&amp;gt; directory. Make sure you restrict access to the log files by business need-to-know.&lt;br /&gt;
&lt;br /&gt;
The following types of activity are logged:&lt;br /&gt;
&lt;br /&gt;
* All actions taken by any individual with root or administrative privileges&lt;br /&gt;
* Successes and failures of all individual accesses to application sections and functions&lt;br /&gt;
&lt;br /&gt;
* Initialization of the audit logs&lt;br /&gt;
* User sign in and sign out.&lt;br /&gt;
&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to files access.log and error.log.&lt;br /&gt;
&lt;br /&gt;
Each log event includes:&lt;br /&gt;
&lt;br /&gt;
* Type of event&lt;br /&gt;
* Date and time of event&lt;br /&gt;
* Username and IP address&lt;br /&gt;
* Success or failure indication&lt;br /&gt;
* Action which led to the event&lt;br /&gt;
&lt;br /&gt;
* Component which led to the event&lt;br /&gt;
&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
&lt;br /&gt;
=== OS-level audit trails ===&lt;br /&gt;
&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on server. This software should:&lt;br /&gt;
&lt;br /&gt;
* warn on a checksum change of any of X-Cart Payments source code files except of log file and database files&lt;br /&gt;
* record any file writing operations related to X-Cart Payments files&lt;br /&gt;
&lt;br /&gt;
===Encrypting network traffic===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for:&lt;br /&gt;
&lt;br /&gt;
* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
* providing remote web-based access to the application&lt;br /&gt;
&lt;br /&gt;
If you use tools to remotely access the application, you should encrypt all communication using technologies such as TLS or IPSEC.&lt;br /&gt;
&lt;br /&gt;
As per PCI DSS requirement 4.2, cardholder data should never be sent unencrypted by e-mail, and X-Cart Payments does meet this requirement '''never''' sending cardholder data by e-mail or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&lt;br /&gt;
===Wireless communications===&lt;br /&gt;
&lt;br /&gt;
If you use wireless networking to access '''X-Cart Payments''', it is your responsibility to ensure your wireless security con figuration follows the PCI DSS requirements.&lt;br /&gt;
&lt;br /&gt;
* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
* Use with a minimum 104-bit encryption key and 24 bit-initialization value&lt;br /&gt;
* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS&lt;br /&gt;
* Rotate shared WEP keys quarterly (or automatically if the technology permits)&lt;br /&gt;
* Rotate shared WEP keys whenever there are changes in personnel with access to keys&lt;br /&gt;
* Restrict access based on media access cod e (MAC) address.&lt;br /&gt;
* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&lt;br /&gt;
===Remote access===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time PIN codes. Detailed information can be found at [[X-Payments:Managing_PIN_codes | Managing PIN codes]] page.&lt;br /&gt;
&lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following:&lt;br /&gt;
&lt;br /&gt;
* Change default settings in the remote access software (for example, change default passwords and use unique passwords for each customer)&lt;br /&gt;
* Allow connections only from specific (known) IP/MAC addresses&lt;br /&gt;
* Use strong authentication or complex passwords for logins&lt;br /&gt;
* Enable encrypted data transmission&lt;br /&gt;
* Enable account lockout after a certain number of failed login attempts&lt;br /&gt;
* Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed&lt;br /&gt;
* Enable any logging or auditing functions&lt;br /&gt;
* Restrict access to customer passwords to authorized reseller/integrator personnel&lt;br /&gt;
* Establish customer passwords according to PCI DSS requirements 8.1, 8.2, 8.4, 8.5&lt;br /&gt;
&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=494</id>
		<title>X-Payments:PCI DSS implementation guide for X-Payments 2.2</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=494"/>
		<updated>2015-12-14T14:26:58Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* Access control */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Introduction ==&lt;br /&gt;
&lt;br /&gt;
This guide covers '''X-Cart Payments''' 1.0, 2.0, 2.1, 2.2 and is intended for merchants and integrators who wish to implement the application in accordance with guidelines set by the PCI Data Security Standard (PCI DSS).&lt;br /&gt;
&lt;br /&gt;
== PCI DSS ==&lt;br /&gt;
&lt;br /&gt;
PCI DSS specifies 12 requirements broken into 6 groups for compliance that apply both to hardware and software parts of the system that is used to collect, store, transmit and process valuable credit card data as well as the human factor.&lt;br /&gt;
&lt;br /&gt;
{| border&lt;br /&gt;
| Build and Maintain a Secure Network&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 1: Install and maintain a firewall configuration to protect cardholder data&lt;br /&gt;
* Requirement 2: Do not use vendor-supplied defaults for system passwords and other security parameters&lt;br /&gt;
|-&lt;br /&gt;
| Protect Cardholder Data&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 3: Protect stored cardholder data&lt;br /&gt;
* Requirement 4: Encrypt transmission of cardholder data across open, public networks&lt;br /&gt;
|-&lt;br /&gt;
| Maintain a Vulnerability Management Program&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 5: Use and regularly update anti-virus software&lt;br /&gt;
* Requirement 6: Develop and maintain secure systems and applications&lt;br /&gt;
|-&lt;br /&gt;
| Implement Strong Access Control Measures&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 7: Restrict access to cardholder data by business need-to-know&lt;br /&gt;
* Requirement 8: Assign a unique ID to each person with computer access&lt;br /&gt;
* Requirement 9: Restrict physical access to cardholder data&lt;br /&gt;
|-&lt;br /&gt;
| Regularly Monitor and Test Networks&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 10: Track and monitor all access to network resources and cardholder data&lt;br /&gt;
* Requirement 11: Regularly test security systems and processes&lt;br /&gt;
|-&lt;br /&gt;
| Maintain an Information Security Policy&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 12: Maintain a policy that addresses information security&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Specifically, relevant elements to an e-commerce business' PCI compliance status include:&lt;br /&gt;
&lt;br /&gt;
* Properly using your payment application. For this purpose, carefully review the section below for information on how to use '''X-Cart Payments''' in a way that ensures PCI compliance.&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant Web hosting environment&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant payment provider&lt;br /&gt;
&lt;br /&gt;
You can find and review the complete specification by visiting [https://www.pcisecuritystandards.org/ https://www.pcisecuritystandards.org/]&lt;br /&gt;
&lt;br /&gt;
This guide is intended to help merchants implement the '''X-Cart Payments''' application in a way that is compliant with version 2.0 of the PCI DSS.&lt;br /&gt;
&lt;br /&gt;
== Payment Card Industry Data Security Standard ('''PCI DSS''') ==&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry Data Security Standard is a worldwide information security standard assembled by the major credit card vendors, including American Express, Discover Financial Services, JCB International, MasterCard Worldwide, and Visa, Inc. The standard was designed to help organizations involved in processing credit card payments online make their payment systems secure from cardholder data fraud.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has been designed and certified to meet all of the requirements of the '''PA-DSS''' version 2.0. This does not automatically make you, the merchant, PCI DSS compliant. To ensure PCI DSS compliance, it is necessary that you follow the recommendations and instructions provided in this guide.&lt;br /&gt;
&lt;br /&gt;
For additional information about '''PCI DSS''' please visit the [https://www.pcisecuritystandards.org Official PCI Security Standards Council Site].&lt;br /&gt;
&lt;br /&gt;
== Cardholder data storage==&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has [[X-Payments:General_settings#Cardholder_Data | the ability to store parts of cardholder data temporarily]] for performing 3D Secure verification and certain types of transactions for some of the integrated payment processors. While stored cardholder data is encrypted using special [[X-Payments:Encryption_keys | cryptographic algorithm]]. The data is removed automatically when its storing period is over using &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can not be configured to store permanently in the database the following types of data:&lt;br /&gt;
&lt;br /&gt;
* unmasked PAN&lt;br /&gt;
* PIN&lt;br /&gt;
* CVV&lt;br /&gt;
* magnetic stripe (track data)&lt;br /&gt;
&lt;br /&gt;
Merchants and/or developers implementing '''X-Cart Payments''' should not attempt to customize this as a feature.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can display masked PAN on &amp;quot;Payment details&amp;quot; pages and in &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. '''X-Cart Payments''' does not have the ability to display full PAN anywhere and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&lt;br /&gt;
==Configuring and using '''X-Cart Payments''' in PCI compliant manner ==&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
Follow the [[X-Payments:Installation | standard procedure]] for deployment of X-Cart Payments files to the web server.&lt;br /&gt;
&lt;br /&gt;
{{Note1|Once installed, X-Cart Payments WILL NEVER:&amp;lt;br/&amp;gt;&lt;br /&gt;
* store unmasked credit card numbers (PANs)&lt;br /&gt;
* send credit card data or any other information to Qualiteam for debug purposes}}&lt;br /&gt;
&lt;br /&gt;
===Access control===&lt;br /&gt;
&lt;br /&gt;
There are no built-in/default user accounts in '''X-Cart Payments'''.&lt;br /&gt;
You must carefully control access to '''X-Cart Payments'''. Follow these rules:&lt;br /&gt;
&lt;br /&gt;
* Restrict the number of employees who have access to '''X-Cart Payments''' to only those who have a business need.&lt;br /&gt;
* Always provide unique usernames for each person who needs access.&lt;br /&gt;
* Do not use system-default usernames and/or passwords&lt;br /&gt;
* Web server must be run under a non-privileged user account. Application must access the database from a limited privilege user account.&lt;br /&gt;
* All default user accounts use secure authentication mechanisms and password policy settings that comply with all the standard requirements:&lt;br /&gt;
** user accounts inactive for more than 3 days are blocked&lt;br /&gt;
** password lifetime is set to 30 days&lt;br /&gt;
&lt;br /&gt;
:: To set password lifetime:&lt;br /&gt;
&lt;br /&gt;
::# Login to '''X-Cart Payments'''&lt;br /&gt;
::# Go to &amp;lt;u&amp;gt;Settings -&amp;gt; General Settings&amp;lt;/u&amp;gt;&lt;br /&gt;
::# Enter the number of days the user account password will be valid for in the &amp;quot;User account password lifetime&amp;quot; field. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
&lt;br /&gt;
:* minimum password length is 8 characters&lt;br /&gt;
:* password must contain both lower and upper case characters and numbers&lt;br /&gt;
:* the last 4 passwords must be unique&lt;br /&gt;
:* user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password&lt;br /&gt;
:* user is logged off after inactivity period of 10 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt; Please note that changing default password policy settings will lead to breaking PCI DSS standard requirements.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Enabling SSL (Secure Socket Layer)===&lt;br /&gt;
&lt;br /&gt;
SSL protects data that is transmitted between a browser and your web server. It is critical that you have SSL enabled on your web server, and this should be among the first steps taken after installation.&lt;br /&gt;
&lt;br /&gt;
* Your web server must be configured to use TLS v1.2 protocols with strong encryption (128-bit or longer key is required)&lt;br /&gt;
* You will need to have a certificate issued for your web domain. Read [http://help.qtmsoft.com/index.php?title=Instant_SSL_certificate guidelines on installing Comodo's Instant SSL certificates].&lt;br /&gt;
&lt;br /&gt;
If a web server does not have SSL enabled '''X-Cart Payments''' will not function or will be notifying users depending on '''allow_insecure_protocol''' parameter set in &amp;lt;u&amp;gt;config.ini.php&amp;lt;/u&amp;gt; file (disabled by default).&lt;br /&gt;
&lt;br /&gt;
===Data Collected while Testing===&lt;br /&gt;
&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments:&lt;br /&gt;
&lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever collect credit card information to troubleshoot a problem that one of your customers is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access&lt;br /&gt;
#* Only collect a limited amount of such data as needed to solve a specific problem&lt;br /&gt;
#* Sensitive authentication data must be encrypted while stored. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Such data must be securely deleted immediately after use.&lt;br /&gt;
&lt;br /&gt;
===Encryption Key Management===&lt;br /&gt;
&lt;br /&gt;
As part of your PA DSS v3.1 requirements, encryption key must be changed annually (changing every 90 days is recommended). You should also change the key any time an employee with access to the key leaves your company. Always replace the key if you know or suspect it has been compromised by any means.&lt;br /&gt;
&lt;br /&gt;
To change the encryption keys:&lt;br /&gt;
&lt;br /&gt;
# Log in to '''X-Cart Payments'''&lt;br /&gt;
# Go to &amp;lt;u&amp;gt;Maintenance -&amp;gt; Encryption keys&amp;lt;/u&amp;gt;&lt;br /&gt;
# Click &amp;quot;Generate new keys&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Use unique user IDs and secure authentication to access PCs, servers and databases ===&lt;br /&gt;
&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords:&lt;br /&gt;
&lt;br /&gt;
# For your Web hosting account administration area (Web hosting account where your online store is hosted)&lt;br /&gt;
# For FTP access to the Web server&lt;br /&gt;
# For Remote Desktop Connection to the Web server (if available)&lt;br /&gt;
# To connect to the MySQL server that contains your store data.&lt;br /&gt;
&lt;br /&gt;
The passwords for the accounts mentioned above must also meet the following requirements:&lt;br /&gt;
&lt;br /&gt;
* be at least 8 characters in length&lt;br /&gt;
* contain both numbers and letters in lower and upper case&lt;br /&gt;
* not coincide with any part of your email address&lt;br /&gt;
* not coincide with any of the last four passwords you have used&lt;br /&gt;
* have a lifetime of less than 90 days&lt;br /&gt;
* account lockout threshold must be set to 6.&lt;br /&gt;
* account lockout duration must be set to 30 minutes (or until unblocked by the administrator).&lt;br /&gt;
* user must be logged off after 15 minutes of inactivity&lt;br /&gt;
&lt;br /&gt;
===Audit trails===&lt;br /&gt;
&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. There is no option to disable audit logging. The log files are created in the &amp;lt;u&amp;gt;var/log/&amp;lt;/u&amp;gt; directory. Make sure you restrict access to the log files by business need-to-know.&lt;br /&gt;
&lt;br /&gt;
The following types of activity are logged:&lt;br /&gt;
&lt;br /&gt;
* All actions taken by any individual with root or administrative privileges&lt;br /&gt;
* Successes and failures of all individual accesses to application sections and functions&lt;br /&gt;
&lt;br /&gt;
* Initialization of the audit logs&lt;br /&gt;
* User sign in and sign out.&lt;br /&gt;
&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to files access.log and error.log.&lt;br /&gt;
&lt;br /&gt;
Each log event includes:&lt;br /&gt;
&lt;br /&gt;
* Type of event&lt;br /&gt;
* Date and time of event&lt;br /&gt;
* Username and IP address&lt;br /&gt;
* Success or failure indication&lt;br /&gt;
* Action which led to the event&lt;br /&gt;
&lt;br /&gt;
* Component which led to the event&lt;br /&gt;
&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
&lt;br /&gt;
=== OS-level audit trails ===&lt;br /&gt;
&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on server. This software should:&lt;br /&gt;
&lt;br /&gt;
* warn on a checksum change of any of X-Cart Payments source code files except of log file and database files&lt;br /&gt;
* record any file writing operations related to X-Cart Payments files&lt;br /&gt;
&lt;br /&gt;
===Encrypting network traffic===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for:&lt;br /&gt;
&lt;br /&gt;
* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
* providing remote web-based access to the application&lt;br /&gt;
&lt;br /&gt;
If you use tools to remotely access the application, you should encrypt all communication using technologies such as TLS or IPSEC.&lt;br /&gt;
&lt;br /&gt;
As per PCI DSS requirement 4.2, cardholder data should never be sent unencrypted by e-mail, and X-Cart Payments does meet this requirement '''never''' sending cardholder data by e-mail or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&lt;br /&gt;
===Wireless communications===&lt;br /&gt;
&lt;br /&gt;
If you use wireless networking to access '''X-Cart Payments''', it is your responsibility to ensure your wireless security con figuration follows the PCI DSS requirements.&lt;br /&gt;
&lt;br /&gt;
* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
* Use with a minimum 104-bit encryption key and 24 bit-initialization value&lt;br /&gt;
* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS&lt;br /&gt;
* Rotate shared WEP keys quarterly (or automatically if the technology permits)&lt;br /&gt;
* Rotate shared WEP keys whenever there are changes in personnel with access to keys&lt;br /&gt;
* Restrict access based on media access cod e (MAC) address.&lt;br /&gt;
* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&lt;br /&gt;
===Remote access===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time PIN codes. Detailed information can be found at [[X-Payments:Managing_PIN_codes | Managing PIN codes]] page.&lt;br /&gt;
&lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following:&lt;br /&gt;
&lt;br /&gt;
* Change default settings in the remote access software (for example, change default passwords and use unique passwords for each customer)&lt;br /&gt;
* Allow connections only from specific (known) IP/MAC addresses&lt;br /&gt;
* Use strong authentication or complex passwords for logins&lt;br /&gt;
* Enable encrypted data transmission&lt;br /&gt;
* Enable account lockout after a certain number of failed login attempts&lt;br /&gt;
* Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed&lt;br /&gt;
* Enable any logging or auditing functions&lt;br /&gt;
* Restrict access to customer passwords to authorized reseller/integrator personnel&lt;br /&gt;
* Establish customer passwords according to PCI DSS requirements 8.1, 8.2, 8.4, 8.5&lt;br /&gt;
&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=493</id>
		<title>X-Payments:PCI DSS implementation guide for X-Payments 2.2</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=493"/>
		<updated>2015-12-14T14:25:00Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* See also */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Introduction ==&lt;br /&gt;
&lt;br /&gt;
This guide covers '''X-Cart Payments''' 1.0, 2.0, 2.1, 2.2 and is intended for merchants and integrators who wish to implement the application in accordance with guidelines set by the PCI Data Security Standard (PCI DSS).&lt;br /&gt;
&lt;br /&gt;
== PCI DSS ==&lt;br /&gt;
&lt;br /&gt;
PCI DSS specifies 12 requirements broken into 6 groups for compliance that apply both to hardware and software parts of the system that is used to collect, store, transmit and process valuable credit card data as well as the human factor.&lt;br /&gt;
&lt;br /&gt;
{| border&lt;br /&gt;
| Build and Maintain a Secure Network&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 1: Install and maintain a firewall configuration to protect cardholder data&lt;br /&gt;
* Requirement 2: Do not use vendor-supplied defaults for system passwords and other security parameters&lt;br /&gt;
|-&lt;br /&gt;
| Protect Cardholder Data&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 3: Protect stored cardholder data&lt;br /&gt;
* Requirement 4: Encrypt transmission of cardholder data across open, public networks&lt;br /&gt;
|-&lt;br /&gt;
| Maintain a Vulnerability Management Program&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 5: Use and regularly update anti-virus software&lt;br /&gt;
* Requirement 6: Develop and maintain secure systems and applications&lt;br /&gt;
|-&lt;br /&gt;
| Implement Strong Access Control Measures&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 7: Restrict access to cardholder data by business need-to-know&lt;br /&gt;
* Requirement 8: Assign a unique ID to each person with computer access&lt;br /&gt;
* Requirement 9: Restrict physical access to cardholder data&lt;br /&gt;
|-&lt;br /&gt;
| Regularly Monitor and Test Networks&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 10: Track and monitor all access to network resources and cardholder data&lt;br /&gt;
* Requirement 11: Regularly test security systems and processes&lt;br /&gt;
|-&lt;br /&gt;
| Maintain an Information Security Policy&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 12: Maintain a policy that addresses information security&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Specifically, relevant elements to an e-commerce business' PCI compliance status include:&lt;br /&gt;
&lt;br /&gt;
* Properly using your payment application. For this purpose, carefully review the section below for information on how to use '''X-Cart Payments''' in a way that ensures PCI compliance.&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant Web hosting environment&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant payment provider&lt;br /&gt;
&lt;br /&gt;
You can find and review the complete specification by visiting [https://www.pcisecuritystandards.org/ https://www.pcisecuritystandards.org/]&lt;br /&gt;
&lt;br /&gt;
This guide is intended to help merchants implement the '''X-Cart Payments''' application in a way that is compliant with version 2.0 of the PCI DSS.&lt;br /&gt;
&lt;br /&gt;
== Payment Card Industry Data Security Standard ('''PCI DSS''') ==&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry Data Security Standard is a worldwide information security standard assembled by the major credit card vendors, including American Express, Discover Financial Services, JCB International, MasterCard Worldwide, and Visa, Inc. The standard was designed to help organizations involved in processing credit card payments online make their payment systems secure from cardholder data fraud.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has been designed and certified to meet all of the requirements of the '''PA-DSS''' version 2.0. This does not automatically make you, the merchant, PCI DSS compliant. To ensure PCI DSS compliance, it is necessary that you follow the recommendations and instructions provided in this guide.&lt;br /&gt;
&lt;br /&gt;
For additional information about '''PCI DSS''' please visit the [https://www.pcisecuritystandards.org Official PCI Security Standards Council Site].&lt;br /&gt;
&lt;br /&gt;
== Cardholder data storage==&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has [[X-Payments:General_settings#Cardholder_Data | the ability to store parts of cardholder data temporarily]] for performing 3D Secure verification and certain types of transactions for some of the integrated payment processors. While stored cardholder data is encrypted using special [[X-Payments:Encryption_keys | cryptographic algorithm]]. The data is removed automatically when its storing period is over using &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can not be configured to store permanently in the database the following types of data:&lt;br /&gt;
&lt;br /&gt;
* unmasked PAN&lt;br /&gt;
* PIN&lt;br /&gt;
* CVV&lt;br /&gt;
* magnetic stripe (track data)&lt;br /&gt;
&lt;br /&gt;
Merchants and/or developers implementing '''X-Cart Payments''' should not attempt to customize this as a feature.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can display masked PAN on &amp;quot;Payment details&amp;quot; pages and in &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. '''X-Cart Payments''' does not have the ability to display full PAN anywhere and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&lt;br /&gt;
==Configuring and using '''X-Cart Payments''' in PCI compliant manner ==&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
Follow the [[X-Payments:Installation | standard procedure]] for deployment of X-Cart Payments files to the web server.&lt;br /&gt;
&lt;br /&gt;
{{Note1|Once installed, X-Cart Payments WILL NEVER:&amp;lt;br/&amp;gt;&lt;br /&gt;
* store unmasked credit card numbers (PANs)&lt;br /&gt;
* send credit card data or any other information to Qualiteam for debug purposes}}&lt;br /&gt;
&lt;br /&gt;
===Access control===&lt;br /&gt;
&lt;br /&gt;
You must carefully control access to '''X-Cart Payments'''. Follow these rules:&lt;br /&gt;
&lt;br /&gt;
* Restrict the number of employees who have access to '''X-Cart Payments''' to only those who have a business need.&lt;br /&gt;
* Always provide unique usernames for each person who needs access.&lt;br /&gt;
* Do not use system-default usernames and/or passwords&lt;br /&gt;
* Web server must be run under a non-privileged user account. Application must access the database from a limited privilege user account.&lt;br /&gt;
* All default user accounts use secure authentication mechanisms and password policy settings that comply with all the standard requirements:&lt;br /&gt;
** user accounts inactive for more than 3 days are blocked&lt;br /&gt;
** password lifetime is set to 30 days&lt;br /&gt;
&lt;br /&gt;
:: To set password lifetime:&lt;br /&gt;
&lt;br /&gt;
::# Login to '''X-Cart Payments'''&lt;br /&gt;
::# Go to &amp;lt;u&amp;gt;Settings -&amp;gt; General Settings&amp;lt;/u&amp;gt;&lt;br /&gt;
::# Enter the number of days the user account password will be valid for in the &amp;quot;User account password lifetime&amp;quot; field. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
&lt;br /&gt;
:* minimum password length is 8 characters&lt;br /&gt;
:* password must contain both lower and upper case characters and numbers&lt;br /&gt;
:* the last 4 passwords must be unique&lt;br /&gt;
:* user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password&lt;br /&gt;
:* user is logged off after inactivity period of 10 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt; Please note that changing default password policy settings will lead to breaking PCI DSS standard requirements.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Enabling SSL (Secure Socket Layer)===&lt;br /&gt;
&lt;br /&gt;
SSL protects data that is transmitted between a browser and your web server. It is critical that you have SSL enabled on your web server, and this should be among the first steps taken after installation.&lt;br /&gt;
&lt;br /&gt;
* Your web server must be configured to use TLS v1.2 protocols with strong encryption (128-bit or longer key is required)&lt;br /&gt;
* You will need to have a certificate issued for your web domain. Read [http://help.qtmsoft.com/index.php?title=Instant_SSL_certificate guidelines on installing Comodo's Instant SSL certificates].&lt;br /&gt;
&lt;br /&gt;
If a web server does not have SSL enabled '''X-Cart Payments''' will not function or will be notifying users depending on '''allow_insecure_protocol''' parameter set in &amp;lt;u&amp;gt;config.ini.php&amp;lt;/u&amp;gt; file (disabled by default).&lt;br /&gt;
&lt;br /&gt;
===Data Collected while Testing===&lt;br /&gt;
&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments:&lt;br /&gt;
&lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever collect credit card information to troubleshoot a problem that one of your customers is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access&lt;br /&gt;
#* Only collect a limited amount of such data as needed to solve a specific problem&lt;br /&gt;
#* Sensitive authentication data must be encrypted while stored. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Such data must be securely deleted immediately after use.&lt;br /&gt;
&lt;br /&gt;
===Encryption Key Management===&lt;br /&gt;
&lt;br /&gt;
As part of your PA DSS v3.1 requirements, encryption key must be changed annually (changing every 90 days is recommended). You should also change the key any time an employee with access to the key leaves your company. Always replace the key if you know or suspect it has been compromised by any means.&lt;br /&gt;
&lt;br /&gt;
To change the encryption keys:&lt;br /&gt;
&lt;br /&gt;
# Log in to '''X-Cart Payments'''&lt;br /&gt;
# Go to &amp;lt;u&amp;gt;Maintenance -&amp;gt; Encryption keys&amp;lt;/u&amp;gt;&lt;br /&gt;
# Click &amp;quot;Generate new keys&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Use unique user IDs and secure authentication to access PCs, servers and databases ===&lt;br /&gt;
&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords:&lt;br /&gt;
&lt;br /&gt;
# For your Web hosting account administration area (Web hosting account where your online store is hosted)&lt;br /&gt;
# For FTP access to the Web server&lt;br /&gt;
# For Remote Desktop Connection to the Web server (if available)&lt;br /&gt;
# To connect to the MySQL server that contains your store data.&lt;br /&gt;
&lt;br /&gt;
The passwords for the accounts mentioned above must also meet the following requirements:&lt;br /&gt;
&lt;br /&gt;
* be at least 8 characters in length&lt;br /&gt;
* contain both numbers and letters in lower and upper case&lt;br /&gt;
* not coincide with any part of your email address&lt;br /&gt;
* not coincide with any of the last four passwords you have used&lt;br /&gt;
* have a lifetime of less than 90 days&lt;br /&gt;
* account lockout threshold must be set to 6.&lt;br /&gt;
* account lockout duration must be set to 30 minutes (or until unblocked by the administrator).&lt;br /&gt;
* user must be logged off after 15 minutes of inactivity&lt;br /&gt;
&lt;br /&gt;
===Audit trails===&lt;br /&gt;
&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. There is no option to disable audit logging. The log files are created in the &amp;lt;u&amp;gt;var/log/&amp;lt;/u&amp;gt; directory. Make sure you restrict access to the log files by business need-to-know.&lt;br /&gt;
&lt;br /&gt;
The following types of activity are logged:&lt;br /&gt;
&lt;br /&gt;
* All actions taken by any individual with root or administrative privileges&lt;br /&gt;
* Successes and failures of all individual accesses to application sections and functions&lt;br /&gt;
&lt;br /&gt;
* Initialization of the audit logs&lt;br /&gt;
* User sign in and sign out.&lt;br /&gt;
&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to files access.log and error.log.&lt;br /&gt;
&lt;br /&gt;
Each log event includes:&lt;br /&gt;
&lt;br /&gt;
* Type of event&lt;br /&gt;
* Date and time of event&lt;br /&gt;
* Username and IP address&lt;br /&gt;
* Success or failure indication&lt;br /&gt;
* Action which led to the event&lt;br /&gt;
&lt;br /&gt;
* Component which led to the event&lt;br /&gt;
&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
&lt;br /&gt;
=== OS-level audit trails ===&lt;br /&gt;
&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on server. This software should:&lt;br /&gt;
&lt;br /&gt;
* warn on a checksum change of any of X-Cart Payments source code files except of log file and database files&lt;br /&gt;
* record any file writing operations related to X-Cart Payments files&lt;br /&gt;
&lt;br /&gt;
===Encrypting network traffic===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for:&lt;br /&gt;
&lt;br /&gt;
* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
* providing remote web-based access to the application&lt;br /&gt;
&lt;br /&gt;
If you use tools to remotely access the application, you should encrypt all communication using technologies such as TLS or IPSEC.&lt;br /&gt;
&lt;br /&gt;
As per PCI DSS requirement 4.2, cardholder data should never be sent unencrypted by e-mail, and X-Cart Payments does meet this requirement '''never''' sending cardholder data by e-mail or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&lt;br /&gt;
===Wireless communications===&lt;br /&gt;
&lt;br /&gt;
If you use wireless networking to access '''X-Cart Payments''', it is your responsibility to ensure your wireless security con figuration follows the PCI DSS requirements.&lt;br /&gt;
&lt;br /&gt;
* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
* Use with a minimum 104-bit encryption key and 24 bit-initialization value&lt;br /&gt;
* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS&lt;br /&gt;
* Rotate shared WEP keys quarterly (or automatically if the technology permits)&lt;br /&gt;
* Rotate shared WEP keys whenever there are changes in personnel with access to keys&lt;br /&gt;
* Restrict access based on media access cod e (MAC) address.&lt;br /&gt;
* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&lt;br /&gt;
===Remote access===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time PIN codes. Detailed information can be found at [[X-Payments:Managing_PIN_codes | Managing PIN codes]] page.&lt;br /&gt;
&lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following:&lt;br /&gt;
&lt;br /&gt;
* Change default settings in the remote access software (for example, change default passwords and use unique passwords for each customer)&lt;br /&gt;
* Allow connections only from specific (known) IP/MAC addresses&lt;br /&gt;
* Use strong authentication or complex passwords for logins&lt;br /&gt;
* Enable encrypted data transmission&lt;br /&gt;
* Enable account lockout after a certain number of failed login attempts&lt;br /&gt;
* Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed&lt;br /&gt;
* Enable any logging or auditing functions&lt;br /&gt;
* Restrict access to customer passwords to authorized reseller/integrator personnel&lt;br /&gt;
* Establish customer passwords according to PCI DSS requirements 8.1, 8.2, 8.4, 8.5&lt;br /&gt;
&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=492</id>
		<title>X-Payments:PCI DSS implementation guide for X-Payments 2.2</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=492"/>
		<updated>2015-12-14T14:24:06Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* Remote access */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Introduction ==&lt;br /&gt;
&lt;br /&gt;
This guide covers '''X-Cart Payments''' 1.0, 2.0, 2.1, 2.2 and is intended for merchants and integrators who wish to implement the application in accordance with guidelines set by the PCI Data Security Standard (PCI DSS).&lt;br /&gt;
&lt;br /&gt;
== PCI DSS ==&lt;br /&gt;
&lt;br /&gt;
PCI DSS specifies 12 requirements broken into 6 groups for compliance that apply both to hardware and software parts of the system that is used to collect, store, transmit and process valuable credit card data as well as the human factor.&lt;br /&gt;
&lt;br /&gt;
{| border&lt;br /&gt;
| Build and Maintain a Secure Network&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 1: Install and maintain a firewall configuration to protect cardholder data&lt;br /&gt;
* Requirement 2: Do not use vendor-supplied defaults for system passwords and other security parameters&lt;br /&gt;
|-&lt;br /&gt;
| Protect Cardholder Data&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 3: Protect stored cardholder data&lt;br /&gt;
* Requirement 4: Encrypt transmission of cardholder data across open, public networks&lt;br /&gt;
|-&lt;br /&gt;
| Maintain a Vulnerability Management Program&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 5: Use and regularly update anti-virus software&lt;br /&gt;
* Requirement 6: Develop and maintain secure systems and applications&lt;br /&gt;
|-&lt;br /&gt;
| Implement Strong Access Control Measures&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 7: Restrict access to cardholder data by business need-to-know&lt;br /&gt;
* Requirement 8: Assign a unique ID to each person with computer access&lt;br /&gt;
* Requirement 9: Restrict physical access to cardholder data&lt;br /&gt;
|-&lt;br /&gt;
| Regularly Monitor and Test Networks&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 10: Track and monitor all access to network resources and cardholder data&lt;br /&gt;
* Requirement 11: Regularly test security systems and processes&lt;br /&gt;
|-&lt;br /&gt;
| Maintain an Information Security Policy&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 12: Maintain a policy that addresses information security&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Specifically, relevant elements to an e-commerce business' PCI compliance status include:&lt;br /&gt;
&lt;br /&gt;
* Properly using your payment application. For this purpose, carefully review the section below for information on how to use '''X-Cart Payments''' in a way that ensures PCI compliance.&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant Web hosting environment&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant payment provider&lt;br /&gt;
&lt;br /&gt;
You can find and review the complete specification by visiting [https://www.pcisecuritystandards.org/ https://www.pcisecuritystandards.org/]&lt;br /&gt;
&lt;br /&gt;
This guide is intended to help merchants implement the '''X-Cart Payments''' application in a way that is compliant with version 2.0 of the PCI DSS.&lt;br /&gt;
&lt;br /&gt;
== Payment Card Industry Data Security Standard ('''PCI DSS''') ==&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry Data Security Standard is a worldwide information security standard assembled by the major credit card vendors, including American Express, Discover Financial Services, JCB International, MasterCard Worldwide, and Visa, Inc. The standard was designed to help organizations involved in processing credit card payments online make their payment systems secure from cardholder data fraud.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has been designed and certified to meet all of the requirements of the '''PA-DSS''' version 2.0. This does not automatically make you, the merchant, PCI DSS compliant. To ensure PCI DSS compliance, it is necessary that you follow the recommendations and instructions provided in this guide.&lt;br /&gt;
&lt;br /&gt;
For additional information about '''PCI DSS''' please visit the [https://www.pcisecuritystandards.org Official PCI Security Standards Council Site].&lt;br /&gt;
&lt;br /&gt;
== Cardholder data storage==&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has [[X-Payments:General_settings#Cardholder_Data | the ability to store parts of cardholder data temporarily]] for performing 3D Secure verification and certain types of transactions for some of the integrated payment processors. While stored cardholder data is encrypted using special [[X-Payments:Encryption_keys | cryptographic algorithm]]. The data is removed automatically when its storing period is over using &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can not be configured to store permanently in the database the following types of data:&lt;br /&gt;
&lt;br /&gt;
* unmasked PAN&lt;br /&gt;
* PIN&lt;br /&gt;
* CVV&lt;br /&gt;
* magnetic stripe (track data)&lt;br /&gt;
&lt;br /&gt;
Merchants and/or developers implementing '''X-Cart Payments''' should not attempt to customize this as a feature.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can display masked PAN on &amp;quot;Payment details&amp;quot; pages and in &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. '''X-Cart Payments''' does not have the ability to display full PAN anywhere and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&lt;br /&gt;
==Configuring and using '''X-Cart Payments''' in PCI compliant manner ==&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
Follow the [[X-Payments:Installation | standard procedure]] for deployment of X-Cart Payments files to the web server.&lt;br /&gt;
&lt;br /&gt;
{{Note1|Once installed, X-Cart Payments WILL NEVER:&amp;lt;br/&amp;gt;&lt;br /&gt;
* store unmasked credit card numbers (PANs)&lt;br /&gt;
* send credit card data or any other information to Qualiteam for debug purposes}}&lt;br /&gt;
&lt;br /&gt;
===Access control===&lt;br /&gt;
&lt;br /&gt;
You must carefully control access to '''X-Cart Payments'''. Follow these rules:&lt;br /&gt;
&lt;br /&gt;
* Restrict the number of employees who have access to '''X-Cart Payments''' to only those who have a business need.&lt;br /&gt;
* Always provide unique usernames for each person who needs access.&lt;br /&gt;
* Do not use system-default usernames and/or passwords&lt;br /&gt;
* Web server must be run under a non-privileged user account. Application must access the database from a limited privilege user account.&lt;br /&gt;
* All default user accounts use secure authentication mechanisms and password policy settings that comply with all the standard requirements:&lt;br /&gt;
** user accounts inactive for more than 3 days are blocked&lt;br /&gt;
** password lifetime is set to 30 days&lt;br /&gt;
&lt;br /&gt;
:: To set password lifetime:&lt;br /&gt;
&lt;br /&gt;
::# Login to '''X-Cart Payments'''&lt;br /&gt;
::# Go to &amp;lt;u&amp;gt;Settings -&amp;gt; General Settings&amp;lt;/u&amp;gt;&lt;br /&gt;
::# Enter the number of days the user account password will be valid for in the &amp;quot;User account password lifetime&amp;quot; field. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
&lt;br /&gt;
:* minimum password length is 8 characters&lt;br /&gt;
:* password must contain both lower and upper case characters and numbers&lt;br /&gt;
:* the last 4 passwords must be unique&lt;br /&gt;
:* user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password&lt;br /&gt;
:* user is logged off after inactivity period of 10 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt; Please note that changing default password policy settings will lead to breaking PCI DSS standard requirements.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Enabling SSL (Secure Socket Layer)===&lt;br /&gt;
&lt;br /&gt;
SSL protects data that is transmitted between a browser and your web server. It is critical that you have SSL enabled on your web server, and this should be among the first steps taken after installation.&lt;br /&gt;
&lt;br /&gt;
* Your web server must be configured to use TLS v1.2 protocols with strong encryption (128-bit or longer key is required)&lt;br /&gt;
* You will need to have a certificate issued for your web domain. Read [http://help.qtmsoft.com/index.php?title=Instant_SSL_certificate guidelines on installing Comodo's Instant SSL certificates].&lt;br /&gt;
&lt;br /&gt;
If a web server does not have SSL enabled '''X-Cart Payments''' will not function or will be notifying users depending on '''allow_insecure_protocol''' parameter set in &amp;lt;u&amp;gt;config.ini.php&amp;lt;/u&amp;gt; file (disabled by default).&lt;br /&gt;
&lt;br /&gt;
===Data Collected while Testing===&lt;br /&gt;
&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments:&lt;br /&gt;
&lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever collect credit card information to troubleshoot a problem that one of your customers is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access&lt;br /&gt;
#* Only collect a limited amount of such data as needed to solve a specific problem&lt;br /&gt;
#* Sensitive authentication data must be encrypted while stored. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Such data must be securely deleted immediately after use.&lt;br /&gt;
&lt;br /&gt;
===Encryption Key Management===&lt;br /&gt;
&lt;br /&gt;
As part of your PA DSS v3.1 requirements, encryption key must be changed annually (changing every 90 days is recommended). You should also change the key any time an employee with access to the key leaves your company. Always replace the key if you know or suspect it has been compromised by any means.&lt;br /&gt;
&lt;br /&gt;
To change the encryption keys:&lt;br /&gt;
&lt;br /&gt;
# Log in to '''X-Cart Payments'''&lt;br /&gt;
# Go to &amp;lt;u&amp;gt;Maintenance -&amp;gt; Encryption keys&amp;lt;/u&amp;gt;&lt;br /&gt;
# Click &amp;quot;Generate new keys&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Use unique user IDs and secure authentication to access PCs, servers and databases ===&lt;br /&gt;
&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords:&lt;br /&gt;
&lt;br /&gt;
# For your Web hosting account administration area (Web hosting account where your online store is hosted)&lt;br /&gt;
# For FTP access to the Web server&lt;br /&gt;
# For Remote Desktop Connection to the Web server (if available)&lt;br /&gt;
# To connect to the MySQL server that contains your store data.&lt;br /&gt;
&lt;br /&gt;
The passwords for the accounts mentioned above must also meet the following requirements:&lt;br /&gt;
&lt;br /&gt;
* be at least 8 characters in length&lt;br /&gt;
* contain both numbers and letters in lower and upper case&lt;br /&gt;
* not coincide with any part of your email address&lt;br /&gt;
* not coincide with any of the last four passwords you have used&lt;br /&gt;
* have a lifetime of less than 90 days&lt;br /&gt;
* account lockout threshold must be set to 6.&lt;br /&gt;
* account lockout duration must be set to 30 minutes (or until unblocked by the administrator).&lt;br /&gt;
* user must be logged off after 15 minutes of inactivity&lt;br /&gt;
&lt;br /&gt;
===Audit trails===&lt;br /&gt;
&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. There is no option to disable audit logging. The log files are created in the &amp;lt;u&amp;gt;var/log/&amp;lt;/u&amp;gt; directory. Make sure you restrict access to the log files by business need-to-know.&lt;br /&gt;
&lt;br /&gt;
The following types of activity are logged:&lt;br /&gt;
&lt;br /&gt;
* All actions taken by any individual with root or administrative privileges&lt;br /&gt;
* Successes and failures of all individual accesses to application sections and functions&lt;br /&gt;
&lt;br /&gt;
* Initialization of the audit logs&lt;br /&gt;
* User sign in and sign out.&lt;br /&gt;
&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to files access.log and error.log.&lt;br /&gt;
&lt;br /&gt;
Each log event includes:&lt;br /&gt;
&lt;br /&gt;
* Type of event&lt;br /&gt;
* Date and time of event&lt;br /&gt;
* Username and IP address&lt;br /&gt;
* Success or failure indication&lt;br /&gt;
* Action which led to the event&lt;br /&gt;
&lt;br /&gt;
* Component which led to the event&lt;br /&gt;
&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
&lt;br /&gt;
=== OS-level audit trails ===&lt;br /&gt;
&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on server. This software should:&lt;br /&gt;
&lt;br /&gt;
* warn on a checksum change of any of X-Cart Payments source code files except of log file and database files&lt;br /&gt;
* record any file writing operations related to X-Cart Payments files&lt;br /&gt;
&lt;br /&gt;
===Encrypting network traffic===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for:&lt;br /&gt;
&lt;br /&gt;
* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
* providing remote web-based access to the application&lt;br /&gt;
&lt;br /&gt;
If you use tools to remotely access the application, you should encrypt all communication using technologies such as TLS or IPSEC.&lt;br /&gt;
&lt;br /&gt;
As per PCI DSS requirement 4.2, cardholder data should never be sent unencrypted by e-mail, and X-Cart Payments does meet this requirement '''never''' sending cardholder data by e-mail or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&lt;br /&gt;
===Wireless communications===&lt;br /&gt;
&lt;br /&gt;
If you use wireless networking to access '''X-Cart Payments''', it is your responsibility to ensure your wireless security con figuration follows the PCI DSS requirements.&lt;br /&gt;
&lt;br /&gt;
* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
* Use with a minimum 104-bit encryption key and 24 bit-initialization value&lt;br /&gt;
* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS&lt;br /&gt;
* Rotate shared WEP keys quarterly (or automatically if the technology permits)&lt;br /&gt;
* Rotate shared WEP keys whenever there are changes in personnel with access to keys&lt;br /&gt;
* Restrict access based on media access cod e (MAC) address.&lt;br /&gt;
* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&lt;br /&gt;
===Remote access===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time PIN codes. Detailed information can be found at [[X-Payments:Managing_PIN_codes | Managing PIN codes]] page.&lt;br /&gt;
&lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS 1.2 or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following:&lt;br /&gt;
&lt;br /&gt;
* Change default settings in the remote access software (for example, change default passwords and use unique passwords for each customer)&lt;br /&gt;
* Allow connections only from specific (known) IP/MAC addresses&lt;br /&gt;
* Use strong authentication or complex passwords for logins&lt;br /&gt;
* Enable encrypted data transmission&lt;br /&gt;
* Enable account lockout after a certain number of failed login attempts&lt;br /&gt;
* Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed&lt;br /&gt;
* Enable any logging or auditing functions&lt;br /&gt;
* Restrict access to customer passwords to authorized reseller/integrator personnel&lt;br /&gt;
* Establish customer passwords according to PCI DSS requirements 8.1, 8.2, 8.4, 8.5&lt;br /&gt;
&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
* [http://www.braintreepaymentsolutions.com/assets/308/PCI-Compliance.pdf Braintree PCI DSS compliance Quick Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=491</id>
		<title>X-Payments:PCI DSS implementation guide for X-Payments 2.2</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=491"/>
		<updated>2015-12-14T14:23:24Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* Cardholder data storage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Introduction ==&lt;br /&gt;
&lt;br /&gt;
This guide covers '''X-Cart Payments''' 1.0, 2.0, 2.1, 2.2 and is intended for merchants and integrators who wish to implement the application in accordance with guidelines set by the PCI Data Security Standard (PCI DSS).&lt;br /&gt;
&lt;br /&gt;
== PCI DSS ==&lt;br /&gt;
&lt;br /&gt;
PCI DSS specifies 12 requirements broken into 6 groups for compliance that apply both to hardware and software parts of the system that is used to collect, store, transmit and process valuable credit card data as well as the human factor.&lt;br /&gt;
&lt;br /&gt;
{| border&lt;br /&gt;
| Build and Maintain a Secure Network&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 1: Install and maintain a firewall configuration to protect cardholder data&lt;br /&gt;
* Requirement 2: Do not use vendor-supplied defaults for system passwords and other security parameters&lt;br /&gt;
|-&lt;br /&gt;
| Protect Cardholder Data&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 3: Protect stored cardholder data&lt;br /&gt;
* Requirement 4: Encrypt transmission of cardholder data across open, public networks&lt;br /&gt;
|-&lt;br /&gt;
| Maintain a Vulnerability Management Program&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 5: Use and regularly update anti-virus software&lt;br /&gt;
* Requirement 6: Develop and maintain secure systems and applications&lt;br /&gt;
|-&lt;br /&gt;
| Implement Strong Access Control Measures&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 7: Restrict access to cardholder data by business need-to-know&lt;br /&gt;
* Requirement 8: Assign a unique ID to each person with computer access&lt;br /&gt;
* Requirement 9: Restrict physical access to cardholder data&lt;br /&gt;
|-&lt;br /&gt;
| Regularly Monitor and Test Networks&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 10: Track and monitor all access to network resources and cardholder data&lt;br /&gt;
* Requirement 11: Regularly test security systems and processes&lt;br /&gt;
|-&lt;br /&gt;
| Maintain an Information Security Policy&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 12: Maintain a policy that addresses information security&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Specifically, relevant elements to an e-commerce business' PCI compliance status include:&lt;br /&gt;
&lt;br /&gt;
* Properly using your payment application. For this purpose, carefully review the section below for information on how to use '''X-Cart Payments''' in a way that ensures PCI compliance.&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant Web hosting environment&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant payment provider&lt;br /&gt;
&lt;br /&gt;
You can find and review the complete specification by visiting [https://www.pcisecuritystandards.org/ https://www.pcisecuritystandards.org/]&lt;br /&gt;
&lt;br /&gt;
This guide is intended to help merchants implement the '''X-Cart Payments''' application in a way that is compliant with version 2.0 of the PCI DSS.&lt;br /&gt;
&lt;br /&gt;
== Payment Card Industry Data Security Standard ('''PCI DSS''') ==&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry Data Security Standard is a worldwide information security standard assembled by the major credit card vendors, including American Express, Discover Financial Services, JCB International, MasterCard Worldwide, and Visa, Inc. The standard was designed to help organizations involved in processing credit card payments online make their payment systems secure from cardholder data fraud.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has been designed and certified to meet all of the requirements of the '''PA-DSS''' version 2.0. This does not automatically make you, the merchant, PCI DSS compliant. To ensure PCI DSS compliance, it is necessary that you follow the recommendations and instructions provided in this guide.&lt;br /&gt;
&lt;br /&gt;
For additional information about '''PCI DSS''' please visit the [https://www.pcisecuritystandards.org Official PCI Security Standards Council Site].&lt;br /&gt;
&lt;br /&gt;
== Cardholder data storage==&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has [[X-Payments:General_settings#Cardholder_Data | the ability to store parts of cardholder data temporarily]] for performing 3D Secure verification and certain types of transactions for some of the integrated payment processors. While stored cardholder data is encrypted using special [[X-Payments:Encryption_keys | cryptographic algorithm]]. The data is removed automatically when its storing period is over using &amp;quot;cron&amp;quot; software that needs to be installed and configured to run X-Cart Payments periodic tasks.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can not be configured to store permanently in the database the following types of data:&lt;br /&gt;
&lt;br /&gt;
* unmasked PAN&lt;br /&gt;
* PIN&lt;br /&gt;
* CVV&lt;br /&gt;
* magnetic stripe (track data)&lt;br /&gt;
&lt;br /&gt;
Merchants and/or developers implementing '''X-Cart Payments''' should not attempt to customize this as a feature.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can display masked PAN on &amp;quot;Payment details&amp;quot; pages and in &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. '''X-Cart Payments''' does not have the ability to display full PAN anywhere and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&lt;br /&gt;
==Configuring and using '''X-Cart Payments''' in PCI compliant manner ==&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
Follow the [[X-Payments:Installation | standard procedure]] for deployment of X-Cart Payments files to the web server.&lt;br /&gt;
&lt;br /&gt;
{{Note1|Once installed, X-Cart Payments WILL NEVER:&amp;lt;br/&amp;gt;&lt;br /&gt;
* store unmasked credit card numbers (PANs)&lt;br /&gt;
* send credit card data or any other information to Qualiteam for debug purposes}}&lt;br /&gt;
&lt;br /&gt;
===Access control===&lt;br /&gt;
&lt;br /&gt;
You must carefully control access to '''X-Cart Payments'''. Follow these rules:&lt;br /&gt;
&lt;br /&gt;
* Restrict the number of employees who have access to '''X-Cart Payments''' to only those who have a business need.&lt;br /&gt;
* Always provide unique usernames for each person who needs access.&lt;br /&gt;
* Do not use system-default usernames and/or passwords&lt;br /&gt;
* Web server must be run under a non-privileged user account. Application must access the database from a limited privilege user account.&lt;br /&gt;
* All default user accounts use secure authentication mechanisms and password policy settings that comply with all the standard requirements:&lt;br /&gt;
** user accounts inactive for more than 3 days are blocked&lt;br /&gt;
** password lifetime is set to 30 days&lt;br /&gt;
&lt;br /&gt;
:: To set password lifetime:&lt;br /&gt;
&lt;br /&gt;
::# Login to '''X-Cart Payments'''&lt;br /&gt;
::# Go to &amp;lt;u&amp;gt;Settings -&amp;gt; General Settings&amp;lt;/u&amp;gt;&lt;br /&gt;
::# Enter the number of days the user account password will be valid for in the &amp;quot;User account password lifetime&amp;quot; field. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
&lt;br /&gt;
:* minimum password length is 8 characters&lt;br /&gt;
:* password must contain both lower and upper case characters and numbers&lt;br /&gt;
:* the last 4 passwords must be unique&lt;br /&gt;
:* user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password&lt;br /&gt;
:* user is logged off after inactivity period of 10 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt; Please note that changing default password policy settings will lead to breaking PCI DSS standard requirements.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Enabling SSL (Secure Socket Layer)===&lt;br /&gt;
&lt;br /&gt;
SSL protects data that is transmitted between a browser and your web server. It is critical that you have SSL enabled on your web server, and this should be among the first steps taken after installation.&lt;br /&gt;
&lt;br /&gt;
* Your web server must be configured to use TLS v1.2 protocols with strong encryption (128-bit or longer key is required)&lt;br /&gt;
* You will need to have a certificate issued for your web domain. Read [http://help.qtmsoft.com/index.php?title=Instant_SSL_certificate guidelines on installing Comodo's Instant SSL certificates].&lt;br /&gt;
&lt;br /&gt;
If a web server does not have SSL enabled '''X-Cart Payments''' will not function or will be notifying users depending on '''allow_insecure_protocol''' parameter set in &amp;lt;u&amp;gt;config.ini.php&amp;lt;/u&amp;gt; file (disabled by default).&lt;br /&gt;
&lt;br /&gt;
===Data Collected while Testing===&lt;br /&gt;
&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments:&lt;br /&gt;
&lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever collect credit card information to troubleshoot a problem that one of your customers is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access&lt;br /&gt;
#* Only collect a limited amount of such data as needed to solve a specific problem&lt;br /&gt;
#* Sensitive authentication data must be encrypted while stored. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Such data must be securely deleted immediately after use.&lt;br /&gt;
&lt;br /&gt;
===Encryption Key Management===&lt;br /&gt;
&lt;br /&gt;
As part of your PA DSS v3.1 requirements, encryption key must be changed annually (changing every 90 days is recommended). You should also change the key any time an employee with access to the key leaves your company. Always replace the key if you know or suspect it has been compromised by any means.&lt;br /&gt;
&lt;br /&gt;
To change the encryption keys:&lt;br /&gt;
&lt;br /&gt;
# Log in to '''X-Cart Payments'''&lt;br /&gt;
# Go to &amp;lt;u&amp;gt;Maintenance -&amp;gt; Encryption keys&amp;lt;/u&amp;gt;&lt;br /&gt;
# Click &amp;quot;Generate new keys&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Use unique user IDs and secure authentication to access PCs, servers and databases ===&lt;br /&gt;
&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords:&lt;br /&gt;
&lt;br /&gt;
# For your Web hosting account administration area (Web hosting account where your online store is hosted)&lt;br /&gt;
# For FTP access to the Web server&lt;br /&gt;
# For Remote Desktop Connection to the Web server (if available)&lt;br /&gt;
# To connect to the MySQL server that contains your store data.&lt;br /&gt;
&lt;br /&gt;
The passwords for the accounts mentioned above must also meet the following requirements:&lt;br /&gt;
&lt;br /&gt;
* be at least 8 characters in length&lt;br /&gt;
* contain both numbers and letters in lower and upper case&lt;br /&gt;
* not coincide with any part of your email address&lt;br /&gt;
* not coincide with any of the last four passwords you have used&lt;br /&gt;
* have a lifetime of less than 90 days&lt;br /&gt;
* account lockout threshold must be set to 6.&lt;br /&gt;
* account lockout duration must be set to 30 minutes (or until unblocked by the administrator).&lt;br /&gt;
* user must be logged off after 15 minutes of inactivity&lt;br /&gt;
&lt;br /&gt;
===Audit trails===&lt;br /&gt;
&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. There is no option to disable audit logging. The log files are created in the &amp;lt;u&amp;gt;var/log/&amp;lt;/u&amp;gt; directory. Make sure you restrict access to the log files by business need-to-know.&lt;br /&gt;
&lt;br /&gt;
The following types of activity are logged:&lt;br /&gt;
&lt;br /&gt;
* All actions taken by any individual with root or administrative privileges&lt;br /&gt;
* Successes and failures of all individual accesses to application sections and functions&lt;br /&gt;
&lt;br /&gt;
* Initialization of the audit logs&lt;br /&gt;
* User sign in and sign out.&lt;br /&gt;
&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to files access.log and error.log.&lt;br /&gt;
&lt;br /&gt;
Each log event includes:&lt;br /&gt;
&lt;br /&gt;
* Type of event&lt;br /&gt;
* Date and time of event&lt;br /&gt;
* Username and IP address&lt;br /&gt;
* Success or failure indication&lt;br /&gt;
* Action which led to the event&lt;br /&gt;
&lt;br /&gt;
* Component which led to the event&lt;br /&gt;
&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
&lt;br /&gt;
=== OS-level audit trails ===&lt;br /&gt;
&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on server. This software should:&lt;br /&gt;
&lt;br /&gt;
* warn on a checksum change of any of X-Cart Payments source code files except of log file and database files&lt;br /&gt;
* record any file writing operations related to X-Cart Payments files&lt;br /&gt;
&lt;br /&gt;
===Encrypting network traffic===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for:&lt;br /&gt;
&lt;br /&gt;
* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
* providing remote web-based access to the application&lt;br /&gt;
&lt;br /&gt;
If you use tools to remotely access the application, you should encrypt all communication using technologies such as TLS or IPSEC.&lt;br /&gt;
&lt;br /&gt;
As per PCI DSS requirement 4.2, cardholder data should never be sent unencrypted by e-mail, and X-Cart Payments does meet this requirement '''never''' sending cardholder data by e-mail or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&lt;br /&gt;
===Wireless communications===&lt;br /&gt;
&lt;br /&gt;
If you use wireless networking to access '''X-Cart Payments''', it is your responsibility to ensure your wireless security con figuration follows the PCI DSS requirements.&lt;br /&gt;
&lt;br /&gt;
* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
* Use with a minimum 104-bit encryption key and 24 bit-initialization value&lt;br /&gt;
* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS&lt;br /&gt;
* Rotate shared WEP keys quarterly (or automatically if the technology permits)&lt;br /&gt;
* Rotate shared WEP keys whenever there are changes in personnel with access to keys&lt;br /&gt;
* Restrict access based on media access cod e (MAC) address.&lt;br /&gt;
* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&lt;br /&gt;
===Remote access===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time PIN codes. Detailed information can be found at [[X-Payments:Managing_PIN_codes | Managing PIN codes]] page.&lt;br /&gt;
&lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following:&lt;br /&gt;
&lt;br /&gt;
* Change default settings in the remote access software (for example, change default passwords and use unique passwords for each customer)&lt;br /&gt;
* Allow connections only from specific (known) IP/MAC addresses&lt;br /&gt;
* Use strong authentication or complex passwords for logins&lt;br /&gt;
* Enable encrypted data transmission&lt;br /&gt;
* Enable account lockout after a certain number of failed login attempts&lt;br /&gt;
* Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed&lt;br /&gt;
* Enable any logging or auditing functions&lt;br /&gt;
* Restrict access to customer passwords to authorized reseller/integrator personnel&lt;br /&gt;
* Establish customer passwords according to PCI DSS requirements 8.1, 8.2, 8.4, 8.5&lt;br /&gt;
&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
* [http://www.braintreepaymentsolutions.com/assets/308/PCI-Compliance.pdf Braintree PCI DSS compliance Quick Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=490</id>
		<title>X-Payments:PCI DSS implementation guide for X-Payments 2.2</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=490"/>
		<updated>2015-12-14T14:21:41Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* Encryption Key Management */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Introduction ==&lt;br /&gt;
&lt;br /&gt;
This guide covers '''X-Cart Payments''' 1.0, 2.0, 2.1, 2.2 and is intended for merchants and integrators who wish to implement the application in accordance with guidelines set by the PCI Data Security Standard (PCI DSS).&lt;br /&gt;
&lt;br /&gt;
== PCI DSS ==&lt;br /&gt;
&lt;br /&gt;
PCI DSS specifies 12 requirements broken into 6 groups for compliance that apply both to hardware and software parts of the system that is used to collect, store, transmit and process valuable credit card data as well as the human factor.&lt;br /&gt;
&lt;br /&gt;
{| border&lt;br /&gt;
| Build and Maintain a Secure Network&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 1: Install and maintain a firewall configuration to protect cardholder data&lt;br /&gt;
* Requirement 2: Do not use vendor-supplied defaults for system passwords and other security parameters&lt;br /&gt;
|-&lt;br /&gt;
| Protect Cardholder Data&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 3: Protect stored cardholder data&lt;br /&gt;
* Requirement 4: Encrypt transmission of cardholder data across open, public networks&lt;br /&gt;
|-&lt;br /&gt;
| Maintain a Vulnerability Management Program&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 5: Use and regularly update anti-virus software&lt;br /&gt;
* Requirement 6: Develop and maintain secure systems and applications&lt;br /&gt;
|-&lt;br /&gt;
| Implement Strong Access Control Measures&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 7: Restrict access to cardholder data by business need-to-know&lt;br /&gt;
* Requirement 8: Assign a unique ID to each person with computer access&lt;br /&gt;
* Requirement 9: Restrict physical access to cardholder data&lt;br /&gt;
|-&lt;br /&gt;
| Regularly Monitor and Test Networks&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 10: Track and monitor all access to network resources and cardholder data&lt;br /&gt;
* Requirement 11: Regularly test security systems and processes&lt;br /&gt;
|-&lt;br /&gt;
| Maintain an Information Security Policy&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 12: Maintain a policy that addresses information security&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Specifically, relevant elements to an e-commerce business' PCI compliance status include:&lt;br /&gt;
&lt;br /&gt;
* Properly using your payment application. For this purpose, carefully review the section below for information on how to use '''X-Cart Payments''' in a way that ensures PCI compliance.&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant Web hosting environment&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant payment provider&lt;br /&gt;
&lt;br /&gt;
You can find and review the complete specification by visiting [https://www.pcisecuritystandards.org/ https://www.pcisecuritystandards.org/]&lt;br /&gt;
&lt;br /&gt;
This guide is intended to help merchants implement the '''X-Cart Payments''' application in a way that is compliant with version 2.0 of the PCI DSS.&lt;br /&gt;
&lt;br /&gt;
== Payment Card Industry Data Security Standard ('''PCI DSS''') ==&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry Data Security Standard is a worldwide information security standard assembled by the major credit card vendors, including American Express, Discover Financial Services, JCB International, MasterCard Worldwide, and Visa, Inc. The standard was designed to help organizations involved in processing credit card payments online make their payment systems secure from cardholder data fraud.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has been designed and certified to meet all of the requirements of the '''PA-DSS''' version 2.0. This does not automatically make you, the merchant, PCI DSS compliant. To ensure PCI DSS compliance, it is necessary that you follow the recommendations and instructions provided in this guide.&lt;br /&gt;
&lt;br /&gt;
For additional information about '''PCI DSS''' please visit the [https://www.pcisecuritystandards.org Official PCI Security Standards Council Site].&lt;br /&gt;
&lt;br /&gt;
== Cardholder data storage==&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has [[X-Payments:General_settings#Cardholder_Data | the ability to store parts of cardholder data temporarily]] for performing 3D Secure verification and certain types of transactions for some of the integrated payment processors. While stored cardholder data is encrypted using special [[X-Payments:Encryption_keys | cryptographic algorithm]]. The data is removed automatically when its storing period is over.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can not be configured to store permanently in the database the following types of data:&lt;br /&gt;
&lt;br /&gt;
* unmasked PAN&lt;br /&gt;
* PIN&lt;br /&gt;
* CVV&lt;br /&gt;
* magnetic stripe (track data)&lt;br /&gt;
&lt;br /&gt;
Merchants and/or developers implementing '''X-Cart Payments''' should not attempt to customize this as a feature.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can display masked PAN on &amp;quot;Payment details&amp;quot; pages and in &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. '''X-Cart Payments''' does not have the ability to display full PAN anywhere and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&lt;br /&gt;
==Configuring and using '''X-Cart Payments''' in PCI compliant manner ==&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
Follow the [[X-Payments:Installation | standard procedure]] for deployment of X-Cart Payments files to the web server.&lt;br /&gt;
&lt;br /&gt;
{{Note1|Once installed, X-Cart Payments WILL NEVER:&amp;lt;br/&amp;gt;&lt;br /&gt;
* store unmasked credit card numbers (PANs)&lt;br /&gt;
* send credit card data or any other information to Qualiteam for debug purposes}}&lt;br /&gt;
&lt;br /&gt;
===Access control===&lt;br /&gt;
&lt;br /&gt;
You must carefully control access to '''X-Cart Payments'''. Follow these rules:&lt;br /&gt;
&lt;br /&gt;
* Restrict the number of employees who have access to '''X-Cart Payments''' to only those who have a business need.&lt;br /&gt;
* Always provide unique usernames for each person who needs access.&lt;br /&gt;
* Do not use system-default usernames and/or passwords&lt;br /&gt;
* Web server must be run under a non-privileged user account. Application must access the database from a limited privilege user account.&lt;br /&gt;
* All default user accounts use secure authentication mechanisms and password policy settings that comply with all the standard requirements:&lt;br /&gt;
** user accounts inactive for more than 3 days are blocked&lt;br /&gt;
** password lifetime is set to 30 days&lt;br /&gt;
&lt;br /&gt;
:: To set password lifetime:&lt;br /&gt;
&lt;br /&gt;
::# Login to '''X-Cart Payments'''&lt;br /&gt;
::# Go to &amp;lt;u&amp;gt;Settings -&amp;gt; General Settings&amp;lt;/u&amp;gt;&lt;br /&gt;
::# Enter the number of days the user account password will be valid for in the &amp;quot;User account password lifetime&amp;quot; field. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
&lt;br /&gt;
:* minimum password length is 8 characters&lt;br /&gt;
:* password must contain both lower and upper case characters and numbers&lt;br /&gt;
:* the last 4 passwords must be unique&lt;br /&gt;
:* user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password&lt;br /&gt;
:* user is logged off after inactivity period of 10 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt; Please note that changing default password policy settings will lead to breaking PCI DSS standard requirements.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Enabling SSL (Secure Socket Layer)===&lt;br /&gt;
&lt;br /&gt;
SSL protects data that is transmitted between a browser and your web server. It is critical that you have SSL enabled on your web server, and this should be among the first steps taken after installation.&lt;br /&gt;
&lt;br /&gt;
* Your web server must be configured to use TLS v1.2 protocols with strong encryption (128-bit or longer key is required)&lt;br /&gt;
* You will need to have a certificate issued for your web domain. Read [http://help.qtmsoft.com/index.php?title=Instant_SSL_certificate guidelines on installing Comodo's Instant SSL certificates].&lt;br /&gt;
&lt;br /&gt;
If a web server does not have SSL enabled '''X-Cart Payments''' will not function or will be notifying users depending on '''allow_insecure_protocol''' parameter set in &amp;lt;u&amp;gt;config.ini.php&amp;lt;/u&amp;gt; file (disabled by default).&lt;br /&gt;
&lt;br /&gt;
===Data Collected while Testing===&lt;br /&gt;
&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments:&lt;br /&gt;
&lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever collect credit card information to troubleshoot a problem that one of your customers is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access&lt;br /&gt;
#* Only collect a limited amount of such data as needed to solve a specific problem&lt;br /&gt;
#* Sensitive authentication data must be encrypted while stored. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Such data must be securely deleted immediately after use.&lt;br /&gt;
&lt;br /&gt;
===Encryption Key Management===&lt;br /&gt;
&lt;br /&gt;
As part of your PA DSS v3.1 requirements, encryption key must be changed annually (changing every 90 days is recommended). You should also change the key any time an employee with access to the key leaves your company. Always replace the key if you know or suspect it has been compromised by any means.&lt;br /&gt;
&lt;br /&gt;
To change the encryption keys:&lt;br /&gt;
&lt;br /&gt;
# Log in to '''X-Cart Payments'''&lt;br /&gt;
# Go to &amp;lt;u&amp;gt;Maintenance -&amp;gt; Encryption keys&amp;lt;/u&amp;gt;&lt;br /&gt;
# Click &amp;quot;Generate new keys&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Use unique user IDs and secure authentication to access PCs, servers and databases ===&lt;br /&gt;
&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords:&lt;br /&gt;
&lt;br /&gt;
# For your Web hosting account administration area (Web hosting account where your online store is hosted)&lt;br /&gt;
# For FTP access to the Web server&lt;br /&gt;
# For Remote Desktop Connection to the Web server (if available)&lt;br /&gt;
# To connect to the MySQL server that contains your store data.&lt;br /&gt;
&lt;br /&gt;
The passwords for the accounts mentioned above must also meet the following requirements:&lt;br /&gt;
&lt;br /&gt;
* be at least 8 characters in length&lt;br /&gt;
* contain both numbers and letters in lower and upper case&lt;br /&gt;
* not coincide with any part of your email address&lt;br /&gt;
* not coincide with any of the last four passwords you have used&lt;br /&gt;
* have a lifetime of less than 90 days&lt;br /&gt;
* account lockout threshold must be set to 6.&lt;br /&gt;
* account lockout duration must be set to 30 minutes (or until unblocked by the administrator).&lt;br /&gt;
* user must be logged off after 15 minutes of inactivity&lt;br /&gt;
&lt;br /&gt;
===Audit trails===&lt;br /&gt;
&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. There is no option to disable audit logging. The log files are created in the &amp;lt;u&amp;gt;var/log/&amp;lt;/u&amp;gt; directory. Make sure you restrict access to the log files by business need-to-know.&lt;br /&gt;
&lt;br /&gt;
The following types of activity are logged:&lt;br /&gt;
&lt;br /&gt;
* All actions taken by any individual with root or administrative privileges&lt;br /&gt;
* Successes and failures of all individual accesses to application sections and functions&lt;br /&gt;
&lt;br /&gt;
* Initialization of the audit logs&lt;br /&gt;
* User sign in and sign out.&lt;br /&gt;
&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to files access.log and error.log.&lt;br /&gt;
&lt;br /&gt;
Each log event includes:&lt;br /&gt;
&lt;br /&gt;
* Type of event&lt;br /&gt;
* Date and time of event&lt;br /&gt;
* Username and IP address&lt;br /&gt;
* Success or failure indication&lt;br /&gt;
* Action which led to the event&lt;br /&gt;
&lt;br /&gt;
* Component which led to the event&lt;br /&gt;
&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
&lt;br /&gt;
=== OS-level audit trails ===&lt;br /&gt;
&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on server. This software should:&lt;br /&gt;
&lt;br /&gt;
* warn on a checksum change of any of X-Cart Payments source code files except of log file and database files&lt;br /&gt;
* record any file writing operations related to X-Cart Payments files&lt;br /&gt;
&lt;br /&gt;
===Encrypting network traffic===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for:&lt;br /&gt;
&lt;br /&gt;
* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
* providing remote web-based access to the application&lt;br /&gt;
&lt;br /&gt;
If you use tools to remotely access the application, you should encrypt all communication using technologies such as TLS or IPSEC.&lt;br /&gt;
&lt;br /&gt;
As per PCI DSS requirement 4.2, cardholder data should never be sent unencrypted by e-mail, and X-Cart Payments does meet this requirement '''never''' sending cardholder data by e-mail or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&lt;br /&gt;
===Wireless communications===&lt;br /&gt;
&lt;br /&gt;
If you use wireless networking to access '''X-Cart Payments''', it is your responsibility to ensure your wireless security con figuration follows the PCI DSS requirements.&lt;br /&gt;
&lt;br /&gt;
* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
* Use with a minimum 104-bit encryption key and 24 bit-initialization value&lt;br /&gt;
* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS&lt;br /&gt;
* Rotate shared WEP keys quarterly (or automatically if the technology permits)&lt;br /&gt;
* Rotate shared WEP keys whenever there are changes in personnel with access to keys&lt;br /&gt;
* Restrict access based on media access cod e (MAC) address.&lt;br /&gt;
* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&lt;br /&gt;
===Remote access===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time PIN codes. Detailed information can be found at [[X-Payments:Managing_PIN_codes | Managing PIN codes]] page.&lt;br /&gt;
&lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following:&lt;br /&gt;
&lt;br /&gt;
* Change default settings in the remote access software (for example, change default passwords and use unique passwords for each customer)&lt;br /&gt;
* Allow connections only from specific (known) IP/MAC addresses&lt;br /&gt;
* Use strong authentication or complex passwords for logins&lt;br /&gt;
* Enable encrypted data transmission&lt;br /&gt;
* Enable account lockout after a certain number of failed login attempts&lt;br /&gt;
* Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed&lt;br /&gt;
* Enable any logging or auditing functions&lt;br /&gt;
* Restrict access to customer passwords to authorized reseller/integrator personnel&lt;br /&gt;
* Establish customer passwords according to PCI DSS requirements 8.1, 8.2, 8.4, 8.5&lt;br /&gt;
&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
* [http://www.braintreepaymentsolutions.com/assets/308/PCI-Compliance.pdf Braintree PCI DSS compliance Quick Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
	<entry>
		<id>https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=489</id>
		<title>X-Payments:PCI DSS implementation guide for X-Payments 2.2</title>
		<link rel="alternate" type="text/html" href="https://www.x-payments.com/help/?title=X-Payments:PCI_DSS_implementation_guide_for_X-Payments_2.2&amp;diff=489"/>
		<updated>2015-12-14T13:47:38Z</updated>

		<summary type="html">&lt;p&gt;Alex “Ambal” Mulin: /* Cardholder data storage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==  Introduction ==&lt;br /&gt;
&lt;br /&gt;
This guide covers '''X-Cart Payments''' 1.0, 2.0, 2.1, 2.2 and is intended for merchants and integrators who wish to implement the application in accordance with guidelines set by the PCI Data Security Standard (PCI DSS).&lt;br /&gt;
&lt;br /&gt;
== PCI DSS ==&lt;br /&gt;
&lt;br /&gt;
PCI DSS specifies 12 requirements broken into 6 groups for compliance that apply both to hardware and software parts of the system that is used to collect, store, transmit and process valuable credit card data as well as the human factor.&lt;br /&gt;
&lt;br /&gt;
{| border&lt;br /&gt;
| Build and Maintain a Secure Network&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 1: Install and maintain a firewall configuration to protect cardholder data&lt;br /&gt;
* Requirement 2: Do not use vendor-supplied defaults for system passwords and other security parameters&lt;br /&gt;
|-&lt;br /&gt;
| Protect Cardholder Data&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 3: Protect stored cardholder data&lt;br /&gt;
* Requirement 4: Encrypt transmission of cardholder data across open, public networks&lt;br /&gt;
|-&lt;br /&gt;
| Maintain a Vulnerability Management Program&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 5: Use and regularly update anti-virus software&lt;br /&gt;
* Requirement 6: Develop and maintain secure systems and applications&lt;br /&gt;
|-&lt;br /&gt;
| Implement Strong Access Control Measures&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 7: Restrict access to cardholder data by business need-to-know&lt;br /&gt;
* Requirement 8: Assign a unique ID to each person with computer access&lt;br /&gt;
* Requirement 9: Restrict physical access to cardholder data&lt;br /&gt;
|-&lt;br /&gt;
| Regularly Monitor and Test Networks&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 10: Track and monitor all access to network resources and cardholder data&lt;br /&gt;
* Requirement 11: Regularly test security systems and processes&lt;br /&gt;
|-&lt;br /&gt;
| Maintain an Information Security Policy&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
* Requirement 12: Maintain a policy that addresses information security&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Specifically, relevant elements to an e-commerce business' PCI compliance status include:&lt;br /&gt;
&lt;br /&gt;
* Properly using your payment application. For this purpose, carefully review the section below for information on how to use '''X-Cart Payments''' in a way that ensures PCI compliance.&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant Web hosting environment&lt;br /&gt;
&lt;br /&gt;
* Using a PCI compliant payment provider&lt;br /&gt;
&lt;br /&gt;
You can find and review the complete specification by visiting [https://www.pcisecuritystandards.org/ https://www.pcisecuritystandards.org/]&lt;br /&gt;
&lt;br /&gt;
This guide is intended to help merchants implement the '''X-Cart Payments''' application in a way that is compliant with version 2.0 of the PCI DSS.&lt;br /&gt;
&lt;br /&gt;
== Payment Card Industry Data Security Standard ('''PCI DSS''') ==&lt;br /&gt;
&lt;br /&gt;
The Payment Card Industry Data Security Standard is a worldwide information security standard assembled by the major credit card vendors, including American Express, Discover Financial Services, JCB International, MasterCard Worldwide, and Visa, Inc. The standard was designed to help organizations involved in processing credit card payments online make their payment systems secure from cardholder data fraud.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has been designed and certified to meet all of the requirements of the '''PA-DSS''' version 2.0. This does not automatically make you, the merchant, PCI DSS compliant. To ensure PCI DSS compliance, it is necessary that you follow the recommendations and instructions provided in this guide.&lt;br /&gt;
&lt;br /&gt;
For additional information about '''PCI DSS''' please visit the [https://www.pcisecuritystandards.org Official PCI Security Standards Council Site].&lt;br /&gt;
&lt;br /&gt;
== Cardholder data storage==&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' has [[X-Payments:General_settings#Cardholder_Data | the ability to store parts of cardholder data temporarily]] for performing 3D Secure verification and certain types of transactions for some of the integrated payment processors. While stored cardholder data is encrypted using special [[X-Payments:Encryption_keys | cryptographic algorithm]]. The data is removed automatically when its storing period is over.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can not be configured to store permanently in the database the following types of data:&lt;br /&gt;
&lt;br /&gt;
* unmasked PAN&lt;br /&gt;
* PIN&lt;br /&gt;
* CVV&lt;br /&gt;
* magnetic stripe (track data)&lt;br /&gt;
&lt;br /&gt;
Merchants and/or developers implementing '''X-Cart Payments''' should not attempt to customize this as a feature.&lt;br /&gt;
&lt;br /&gt;
'''X-Cart Payments''' can display masked PAN on &amp;quot;Payment details&amp;quot; pages and in &amp;quot;View details&amp;quot; pop-up windows for some of the integrated payment processors in the following format: 123456******1234 MM/YY or **********1234 MM/YY. '''X-Cart Payments''' does not have the ability to display full PAN anywhere and there are no settings that can change this behavior of the user interface.&lt;br /&gt;
&lt;br /&gt;
==Configuring and using '''X-Cart Payments''' in PCI compliant manner ==&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
Follow the [[X-Payments:Installation | standard procedure]] for deployment of X-Cart Payments files to the web server.&lt;br /&gt;
&lt;br /&gt;
{{Note1|Once installed, X-Cart Payments WILL NEVER:&amp;lt;br/&amp;gt;&lt;br /&gt;
* store unmasked credit card numbers (PANs)&lt;br /&gt;
* send credit card data or any other information to Qualiteam for debug purposes}}&lt;br /&gt;
&lt;br /&gt;
===Access control===&lt;br /&gt;
&lt;br /&gt;
You must carefully control access to '''X-Cart Payments'''. Follow these rules:&lt;br /&gt;
&lt;br /&gt;
* Restrict the number of employees who have access to '''X-Cart Payments''' to only those who have a business need.&lt;br /&gt;
* Always provide unique usernames for each person who needs access.&lt;br /&gt;
* Do not use system-default usernames and/or passwords&lt;br /&gt;
* Web server must be run under a non-privileged user account. Application must access the database from a limited privilege user account.&lt;br /&gt;
* All default user accounts use secure authentication mechanisms and password policy settings that comply with all the standard requirements:&lt;br /&gt;
** user accounts inactive for more than 3 days are blocked&lt;br /&gt;
** password lifetime is set to 30 days&lt;br /&gt;
&lt;br /&gt;
:: To set password lifetime:&lt;br /&gt;
&lt;br /&gt;
::# Login to '''X-Cart Payments'''&lt;br /&gt;
::# Go to &amp;lt;u&amp;gt;Settings -&amp;gt; General Settings&amp;lt;/u&amp;gt;&lt;br /&gt;
::# Enter the number of days the user account password will be valid for in the &amp;quot;User account password lifetime&amp;quot; field. The maximum allowed password lifetime is 90 days.&lt;br /&gt;
&lt;br /&gt;
:* minimum password length is 8 characters&lt;br /&gt;
:* password must contain both lower and upper case characters and numbers&lt;br /&gt;
:* the last 4 passwords must be unique&lt;br /&gt;
:* user account must be blocked for a specified period (30 minutes by default) after 6 unsuccessful attempts to enter a password&lt;br /&gt;
:* user is logged off after inactivity period of 10 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt; Please note that changing default password policy settings will lead to breaking PCI DSS standard requirements.&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Enabling SSL (Secure Socket Layer)===&lt;br /&gt;
&lt;br /&gt;
SSL protects data that is transmitted between a browser and your web server. It is critical that you have SSL enabled on your web server, and this should be among the first steps taken after installation.&lt;br /&gt;
&lt;br /&gt;
* Your web server must be configured to use TLS v1.2 protocols with strong encryption (128-bit or longer key is required)&lt;br /&gt;
* You will need to have a certificate issued for your web domain. Read [http://help.qtmsoft.com/index.php?title=Instant_SSL_certificate guidelines on installing Comodo's Instant SSL certificates].&lt;br /&gt;
&lt;br /&gt;
If a web server does not have SSL enabled '''X-Cart Payments''' will not function or will be notifying users depending on '''allow_insecure_protocol''' parameter set in &amp;lt;u&amp;gt;config.ini.php&amp;lt;/u&amp;gt; file (disabled by default).&lt;br /&gt;
&lt;br /&gt;
===Data Collected while Testing===&lt;br /&gt;
&lt;br /&gt;
Delete any sensitive authentication data (pre-authorization) gathered as a result of testing or troubleshooting your X-Cart Payments:&lt;br /&gt;
&lt;br /&gt;
# Sensitive authentication data (pre-authorization) must only be collected when needed to solve a specific problem. You should never use real credit card information when testing your store. Instead, contact your payment gateway and ask them for special credit card numbers that you can use while testing.&lt;br /&gt;
# If you ever collect credit card information to troubleshoot a problem that one of your customers is having, then please note the following:&lt;br /&gt;
#* Such data must be stored only in specific, known locations with limited access&lt;br /&gt;
#* Only collect a limited amount of such data as needed to solve a specific problem&lt;br /&gt;
#* Sensitive authentication data must be encrypted while stored. Make sure to encrypt it before storing it. There are many encryption software packages that you can install on your computer to do so.&lt;br /&gt;
# Such data must be securely deleted immediately after use.&lt;br /&gt;
&lt;br /&gt;
===Encryption Key Management===&lt;br /&gt;
&lt;br /&gt;
As part of your PCI DSS v2.0 requirements, encryption key must be changed annually (changing every 90 days is recommended). You should also change the key any time an employee with access to the key leaves your company. Always replace the key if you know or suspect it has been compromised by any means.&lt;br /&gt;
&lt;br /&gt;
To change the encryption keys:&lt;br /&gt;
&lt;br /&gt;
# Log in to '''X-Cart Payments'''&lt;br /&gt;
# Go to &amp;lt;u&amp;gt;Maintenance -&amp;gt; Encryption keys&amp;lt;/u&amp;gt;&lt;br /&gt;
# Click &amp;quot;Generate new keys&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Use unique user IDs and secure authentication to access PCs, servers and databases ===&lt;br /&gt;
&lt;br /&gt;
PCI compliance requires that you use unique user names and secure authentication to access any PCs, servers, and databases with payment applications and/or cardholder data. This means that you should use different user names/passwords:&lt;br /&gt;
&lt;br /&gt;
# For your Web hosting account administration area (Web hosting account where your online store is hosted)&lt;br /&gt;
# For FTP access to the Web server&lt;br /&gt;
# For Remote Desktop Connection to the Web server (if available)&lt;br /&gt;
# To connect to the MySQL server that contains your store data.&lt;br /&gt;
&lt;br /&gt;
The passwords for the accounts mentioned above must also meet the following requirements:&lt;br /&gt;
&lt;br /&gt;
* be at least 8 characters in length&lt;br /&gt;
* contain both numbers and letters in lower and upper case&lt;br /&gt;
* not coincide with any part of your email address&lt;br /&gt;
* not coincide with any of the last four passwords you have used&lt;br /&gt;
* have a lifetime of less than 90 days&lt;br /&gt;
* account lockout threshold must be set to 6.&lt;br /&gt;
* account lockout duration must be set to 30 minutes (or until unblocked by the administrator).&lt;br /&gt;
* user must be logged off after 15 minutes of inactivity&lt;br /&gt;
&lt;br /&gt;
===Audit trails===&lt;br /&gt;
&lt;br /&gt;
Audit trails are automatically enabled with the default installation of X-Cart Payments. There is no option to disable audit logging. The log files are created in the &amp;lt;u&amp;gt;var/log/&amp;lt;/u&amp;gt; directory. Make sure you restrict access to the log files by business need-to-know.&lt;br /&gt;
&lt;br /&gt;
The following types of activity are logged:&lt;br /&gt;
&lt;br /&gt;
* All actions taken by any individual with root or administrative privileges&lt;br /&gt;
* Successes and failures of all individual accesses to application sections and functions&lt;br /&gt;
&lt;br /&gt;
* Initialization of the audit logs&lt;br /&gt;
* User sign in and sign out.&lt;br /&gt;
&lt;br /&gt;
Individual access to cardholder data is not logged, because cardholder data is not stored before and after authentication. Access to audit trails must be provided on the operating system level. Audit trails are written to the file system, to files access.log and error.log.&lt;br /&gt;
&lt;br /&gt;
Each log event includes:&lt;br /&gt;
&lt;br /&gt;
* Type of event&lt;br /&gt;
* Date and time of event&lt;br /&gt;
* Username and IP address&lt;br /&gt;
* Success or failure indication&lt;br /&gt;
* Action which led to the event&lt;br /&gt;
&lt;br /&gt;
* Component which led to the event&lt;br /&gt;
&lt;br /&gt;
There is also a meta-log which contains information about other log files being created.&lt;br /&gt;
&lt;br /&gt;
=== OS-level audit trails ===&lt;br /&gt;
&lt;br /&gt;
Make sure you have a system-level auditing software properly configured to monitor users' activity on server. This software should:&lt;br /&gt;
&lt;br /&gt;
* warn on a checksum change of any of X-Cart Payments source code files except of log file and database files&lt;br /&gt;
* record any file writing operations related to X-Cart Payments files&lt;br /&gt;
&lt;br /&gt;
===Encrypting network traffic===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments uses encryption, such as TLS or IPSEC, for:&lt;br /&gt;
&lt;br /&gt;
* transmission of cardholder data over public networks, per PCI DSS requirement 4.1.&lt;br /&gt;
* providing remote web-based access to the application&lt;br /&gt;
&lt;br /&gt;
If you use tools to remotely access the application, you should encrypt all communication using technologies such as TLS or IPSEC.&lt;br /&gt;
&lt;br /&gt;
As per PCI DSS requirement 4.2, cardholder data should never be sent unencrypted by e-mail, and X-Cart Payments does meet this requirement '''never''' sending cardholder data by e-mail or by IMs. Merchants and/or developers implementing X-Cart Payments should not attempt to customize this as a feature unless an encryption solution is also implemented.&lt;br /&gt;
&lt;br /&gt;
===Wireless communications===&lt;br /&gt;
&lt;br /&gt;
If you use wireless networking to access '''X-Cart Payments''', it is your responsibility to ensure your wireless security con figuration follows the PCI DSS requirements.&lt;br /&gt;
&lt;br /&gt;
* Personal firewall software should be installed on any mobile and employee-owned computers that have direct access to the internet and are also used to access your network.&lt;br /&gt;
* Change wireless vendor defaults, including but not limited to, wired equivalent privacy (WEP) keys, default service set identifier (SSID), passwords and SNMP community strings. Disable SSID broadcasts. Enable WiFi protected access (WPA and WPA2) technology for encryption and authentication when WPA-capable.&lt;br /&gt;
* Encrypt wireless transmissions by using WiFi protected access (WPA or WPA2) technology, IPSEC VPN, or TLS.&lt;br /&gt;
* Never rely exclusively on wired equivalent privacy (WEP) to protect confidentiality and access to a wireless LAN. If WEP is used, do the following:&lt;br /&gt;
* Use with a minimum 104-bit encryption key and 24 bit-initialization value&lt;br /&gt;
* Use ONLY in conjunction with WiFi protected access (WPA or WPA2) technology, VPN, or TLS&lt;br /&gt;
* Rotate shared WEP keys quarterly (or automatically if the technology permits)&lt;br /&gt;
* Rotate shared WEP keys whenever there are changes in personnel with access to keys&lt;br /&gt;
* Restrict access based on media access cod e (MAC) address.&lt;br /&gt;
* Install perimeter firewalls between any wireless networks and the cardholder data environment, and configure these firewalls to deny any traffic from the wireless environment or to control any traffic if it is necessary for business purposes.&lt;br /&gt;
&lt;br /&gt;
===Remote access===&lt;br /&gt;
&lt;br /&gt;
X-Cart Payments provides web-based access using two-factor authentication based on one-time PIN codes. Detailed information can be found at [[X-Payments:Managing_PIN_codes | Managing PIN codes]] page.&lt;br /&gt;
&lt;br /&gt;
If you enable remote access to your network and the cardholder data environment, you must implement two-factor authentication. Use technologies such as remote authentication and dial-in service (RADIUS) or terminal access controller access control system (TACACS) with tokens; or VPN (based on TLS or IPSEC) with individual certificates. You should make sure that any remote access software is securely configured by keeping in mind the following:&lt;br /&gt;
&lt;br /&gt;
* Change default settings in the remote access software (for example, change default passwords and use unique passwords for each customer)&lt;br /&gt;
* Allow connections only from specific (known) IP/MAC addresses&lt;br /&gt;
* Use strong authentication or complex passwords for logins&lt;br /&gt;
* Enable encrypted data transmission&lt;br /&gt;
* Enable account lockout after a certain number of failed login attempts&lt;br /&gt;
* Configure the system so a remote user must establish a Virtual Private Network (“VPN”) connection via a firewall before access is allowed&lt;br /&gt;
* Enable any logging or auditing functions&lt;br /&gt;
* Restrict access to customer passwords to authorized reseller/integrator personnel&lt;br /&gt;
* Establish customer passwords according to PCI DSS requirements 8.1, 8.2, 8.4, 8.5&lt;br /&gt;
&lt;br /&gt;
Qualiteam does not provide software updates via remote access on an automated basis.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
&lt;br /&gt;
* [[X-Payments:PCI_FAQs | PCI FAQs]]&lt;br /&gt;
* [https://www.pcisecuritystandards.org/ PCI Security Standards Council website]&lt;br /&gt;
* [http://www.braintreepaymentsolutions.com/assets/308/PCI-Compliance.pdf Braintree PCI DSS compliance Quick Guide]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{pdf_single}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:X-Payments Developer Guide]]&lt;br /&gt;
[[Category:PCI DSS]]&lt;/div&gt;</summary>
		<author><name>Alex “Ambal” Mulin</name></author>
		
	</entry>
</feed>