Skip to main content

Connection to a Payment Terminal

How to connect a payment terminal with ABRA Flexi?

Written by Lenka Haringerová

ABRA Flexi offers an extension module called Payment Terminal, which enables integration of the point-of-sale register with a payment terminal. A prerequisite is that the terminal communicates via the B-protocol. The integration is possible via a serial (COM) or network (TCP) interface, with the terminal operating in client mode (the terminal establishes a connection to a specified address and port). Verified terminals include, for example, the Ingenico iCT220 and the VeriFone VX 520.

The integration has been certified by BANIT (ČSOB), and we have also received positive feedback for KB terminals. Please verify the communication protocol and communication mode with your terminal supplier in advance.

Payment Terminal Setup and Integration

Before connecting the terminal to the point-of-sale register, the payment terminal must be configured to the required communication mode depending on the chosen interface.

Integration via Serial Interface (COM)

1) The payment terminal must be configured to communicate via the serial port.

2) After connecting the payment terminal, you need to identify the name of the port to which it is connected. You can find the port name by navigating to This PC / Manage / Device Manager / Ports (COM & LPT), where the port designation is shown in parentheses (in this case COM5).

3) Create a configuration file pos.xml (see the XML sample below), and in the cardAcceptanceDevicePort value, enter the serial port designation (e.g. COM5) to which the terminal is connected.

Integration via Network Interface (TCP)

1) The payment terminal must be configured with the IP address and port through which it will communicate with the point-of-sale register. The computer must be assigned a static IP address on the network.

2) Create a configuration file pos.xml, and in the cardAcceptanceDevicePort value, enter the TCP port number (e.g. 33300) on which Flexi will listen for the terminal connection.

3) When the point-of-sale register is opened in Flexi for the first time, a connection to the payment terminal is established, and you will likely need to allow the action in your Firewall.

Creating and Editing the pos.xml File

To correctly integrate the point-of-sale register with the payment terminal, you must create a configuration file named pos.xml.

Create the pos.xml file in the directory c:\Program Files (x86)\Common Files\WinStrom\ for Windows (alternatively /etc/flexi/ for Linux or /Library/Application Support/Flexi/Default/ for Mac OS X), and enter the port name:

<?xml version="1.0" encoding="UTF-8"?><settings>  <cardAcceptanceDevicePort>COM5</cardAcceptanceDevicePort>  <!-- pokud je terminal pripojen na COM5, pripadne zadame cislo TCP portu (napr. 33300) -->  <cardAcceptanceDeviceType>Ingenico</cardAcceptanceDeviceType>  <!-- na hodnote nezalezi --></settings>

You can verify the configuration is correct by entering a payment where the payment method must be set to card payment. If the payment fails or an error occurs, check whether the terminal has a data connection, or try restarting it.

Using the Payment Terminal

The payment terminal can be used from the Point-of-Sale Register module. Communication with the payment terminal is established when the editing window for creating or modifying a sales document is opened.

After creating the document, click the Payment button to open a form where you can enter the amount to be paid.

From the available payment methods, select "Card Payment" and enter the payment amount. Click the Complete button to send a signal to the payment terminal to process the requested transaction.

If the payment is not completed within approximately 1 minute, the transaction will be interrupted and an application error will be displayed.

You can repeat the card payment by clicking Complete again.

FAQ

Is it possible to send a variable symbol to the terminal in addition to the amount?

Theoretically yes, depending on whether the terminal is capable of displaying the variable symbol.

Did this answer your question?