References

API Endpoints

Swagger Docs: TecsClient ECR Rest Endpoint

EndpointMethodDescription
https://{-*}.tecs.at/tecsclientrest/makeTransactionPOSTInitiate a payment transaction.

To replace {-*} with the desired environment you work in, refer to API Endpoints.

SmartPOS Message Type Table

This is the table of Transaction Message Types determining the transaction type. This is a collection of String constants defined under Transaction.MessageType

Constant FieldValue
ABORT0017
BALANCE0001
CANCEL0013
CONNECTION_STATUS2667
REFUND0011
DIAGNOSTIC2668
GET_TERMINAL_STATUS9043
PRE_AUTHORIZATION0001
RECONCILIATION_REQUEST0033
SALE0001
SCANNER7363
SCANNER_CAMER7364
TIP_SALE0907

For some transactions, these values have to be used in combination with txOrigin. For example, for a pre-auth transaction we have:

  • transaction.msgType = Transaction.MessageType.PRE_AUTHORIZATION;

  • transaction.txOrigin = "5";

For the full list of txOrigin values, refer to References

Transaction Origin Indicators

This field, originInd, specifies the type of request for card data.

Java Docs: https://doc.tecs.at/pubdoc/smartpos_sdk_javadoc/at/tecs/smartpos/data/Transaction.TransactionOriginIndicator.html

Transaction Origin Identifiers

Java Docs: https://doc.tecs.at/pubdoc/smartpos_sdk_javadoc/at/tecs/smartpos/data/Transaction.TransactionOriginIdentifier.html

Android NaTALI User Guide

Version: 1.164.1.10

Android NaTALI application provides functionality to authorize EMV and contactless transactions Android SmartPOS device. As mentioned in the Getting Started, the configuration of the terminal can be changed during runtime. Every terminal has its own unique ID (Terminal ID - TID).

Connection Types

Apart from the capability to connect to localhost:9990 via TCP, Bluetooth Connection and Serial Port Connection Solution can be implemented with SmartPOS iConnection Java Interface.

Hosts and Ports

Before initializing NaTALI, make sure to allow the following hosts and ports in the firewall to be able to connect via any connection type (e.g. 3G, 4G, Wi-Fi, Ethernet, etc.) to our TECS system and establish communication between terminals and our Test or Production environment. More precisely, This is the NaTALIE connection to the TECS Payment Backend Systems whereas localhost:9990 is where NaTALIE is hosted on for the ECR app to establish the connection to.

Production Environment

HostPort
prod-swyft.tecspayment.com8445
prod-swyft.tecspayment.com9445
prod.tecspayment.com9514
prod.tecspayment.com9440
prod-swyft.tecspayment.com8445
prod.tecspayment.com8448

Testing Environment

HostPort
test.tecs.at8445
test.tecs.at9445
test.tecs.at514
test.tecs.at9440
test.tecs.at8445
test.tecs.at8448

List of NaTALI modes

NaTALI modeConnectionNaTALI on terminal modeTerminal OSECR systemIntegration over
Stand-Alone solutionlocalhost on the terminalInternal TECS clientAndroidJavaSmartPOS SDK
Semi-integrated modelocal network (ethernet, wifi)Internal TECS clientAndroidJavaSmartPOS SDK
Semi-integrated Bridge Modelocal network (ethernet, wifi)Internal TECS clientAndroidAnySmartPOS SDK
PinPad ModecloudPIN PAD modeAndroidAnyAPI TECS engine

Bridge Mode and ISV Protocol must be delivered by the ECR

Use cases

Initialization

NaTALI runs as a background service on the device startup. In the first 30-some seconds the NaTALI is in initialization state and is not ready to be used, this state notifies the device with the status Payment is alive. When the initialization is completed, NaTALI switches to the state Payment is ready and is ready to be used.

Initiate a transaction

To initiate a transaction, it is necessary to connect the ECR app to the NaTALI application. After the connection has been established, the ECR app is ready to send transaction requests. Triggering a transaction results in NaTALI launching the SwipeTapCard activity and will change its state to Payment waiting for card. From this point on, the standard transaction flow will take place. The response of the transaction is sent back to the ECR app and NaTALI returns to the Payment is ready state. This is typically a TCP connection on localhost:9990.

SmartPOS interface

In brief, SmartPOS interface ensures communication between the external SmartPOS systems and NaTALI. It is basically used to initiate a transaction that is eventually sent to TECS Payment Backend Systems. It is the SmartPOS SDK that handles the communication with NaTALI.

Possible states of the NaTALI application

During runtime, NaTALI goes through different states which can determinate its behavior. The current state of the application is shown in the status bar through the basic Android notification. This notification shows the terminal ID of the current terminal, connection interface and state of application.

Payment is alive

> The application has started with the configuration loading.

The application has started with the configuration loading.

Payment is ready

> The application is ready to pay.

The application is ready to pay.

Payment is stopped

> The application is not running but it automatically resets within 60 seconds.

The application is not running but it automatically resets within 60 seconds.

Payment's interpreter error

> The application is running, but payment can't be made. In this scenario, kill application or restart terminal.

The application is running, but payment can't be made. In this scenario, kill application or restart terminal.

Payment is launching

> The application is turned off, but it is (re)starting. This state is hard to spot as it takes 500 milliseconds.

The application is turned off, but it is (re)starting. This state is hard to spot as it takes 500 milliseconds.

Payment is reloading

> Android reloads the application. This state occurs in case the user kills the application.

Android reloads the application. This state occurs in case the user kills the application.

Payment processing

> In this application status, the service buttons (power, back, home, last tasks buttons) are inactive during this state.

In this application status, the service buttons (power, back, home, last tasks buttons) are inactive during this state.

Payment waiting for card

> The application is waiting for card. Service buttons (power, back, home, last tasks buttons) are inactive during this state.

The application is waiting for card. Service buttons (power, back, home, last tasks buttons) are inactive during this state.

NaTALI state flow

The workflow of NaTALI states is as follows:

NaTALI

As depicted, the Payment Ready state is capable of jumping into either Payment is stopped or Payment's interpreter error state should any irregularities occur before initiating the transaction