*New - Java SDK

Use the POS Lib Java SDK to integrate payment acceptance into Windows‑based POS applications and billing systems.
This guide provides step‑by‑step instructions for:

  • Configuration management
  • Transaction execution
  • Response handling

Note: Earlier versions of the Java SDK required a DLL dependency (java.library.path). The current release supports pure‑Java integration without DLLs.

For environment setup and SDK details. refer to Java SDK Library

  • Use the DLL‑free approach for new projects.
  • Use the DLL‑based approach only for backward compatibility.

Supported Connections

Connection TypeSupportedNotes
TCP/IP (Wi‑Fi)Recommended for network‑based integration
Serial (COM/USB)Supported using COM port communication

Transaction Flow

Initialize SDK → Configure POS → Connect Device → Pack Request → Execute Transaction → Receive Response → Parse Response

Integration Steps

Note: Always call posLibInitialize() before any API call.

Step 1: Initialize POS Lib

Initialize the library before scanning or configuring devices.

Call posLibInitialize() to set up the SDK:

// Signature
bool posLibInitialize(Context context)

// Code
PosLibManager.getInstance().posLibInitialize(applicationContext);

Step 2: Configure POS Library

Set communication parameters and priorities.

Call setConfiguration() with TCP/IP and COM settings:

// Signature
int setConfiguration(ConfigData configData)

// Code
ConfigData config = new ConfigData();
config.setTcpIP("192.168.0.102");
config.setTcpPort("8888");
config.setComPortNumber("COM3");
config.setConnectionTimeOut(30);
config.setRetryCount(2);
config.setPriority1(1); // TCP/IP
config.setPriority2(2); // COM
config.setConnectivityFallBackAllowed(true);

PosLib.getInstance().setConfiguration(config);

Step 3: Get Configuration

Retrieve current configuration settings.

Call getConfiguration() to load saved parameters:

// Signature
int getConfiguration(ConfigData configData)

// Code
ConfigData config = new ConfigData();
int result = PosLib.getInstance().getConfiguration(config);

Step 4: Test Connectivity

Verify communication with the terminal.

// Signature
int getConfiguration(ConfigData configData)

// Code
ConfigData config = new ConfigData();
int result = PosLib.getInstance().getConfiguration(config);
  • TCP/IP Test

Use testTCP() to confirm network connection:

boolean result = PosLib.getInstance().testTCP("192.168.0.102", "8888");
  • Serial Test

Use testSerialCom() to confirm COM port connection:

boolean result = PosLib.getInstance().testSerialCom("COM3");

Step 5: Execute Transaction

Send transaction requests to the terminal.

Call doTransaction() with request data and transaction type:

// Signature
void doTransaction(String request, int txnType, TransactionListener listener)

Transaction Types

TypeAction
3Registration
6Payment Transaction
7Set Configuration
8Get Configuration
9Last Transaction

Code Example (Payment Transaction)

String request = "4001,TX12345678,10000,,,,,,";
int txnType = 6;

PosLib.getInstance().doTransaction(request, txnType, new TransactionListener() {
    @Override
    public void onSuccess(String response) {
        // Payment response
    }
    @Override
    public void onNext(String action) {
        // Intermediate steps
    }
    @Override
    public void onFailure(String errorMsg, int errorCode) {
        // Handle error
    }
});

Step 6: Response Handling

Responses are returned in CSV format.
They contain:

  • Response Code
  • Approval Code
  • Transaction Status
  • Receipt Data

Example CSV string:

00,APPROVED,10000,140524193012,TX12345678,RECEIPT123

Parsed Output Mapping:

FieldExample ValueDescription
Response Code00Transaction result (00 = Approved)
Approval CodeAPPROVEDIssuer/host approval code
Amount10000Transaction amount (in minor units)
Timestamp140524193012Date/time in ddMMyyHHmmss format
ECR Reference NoTX12345678Merchant’s transaction reference number
Receipt DataRECEIPT123Printable receipt or structured payload

Parsing Example (C#):

string response = "00,APPROVED,10000,140524193012,TX12345678,RECEIPT123";
string[] fields = response.Split(',');

string responseCode = fields[0];
string approvalCode = fields[1];
string amount = fields[2];
string timestamp = fields[3];
string ecrRefNo = fields[4];
string receiptData = fields[5];

Step 7: Device Model Structure

public class Device {
    private String deviceIp;
    private String devicePort;
    private String devId;
    private String slNo;
    private boolean isCom;
    private String comPortNumber;
}

Step 8: Configuration Model

public class ConfigData {
    private String tcpIP;
    private String tcpPort;
    private String comPortNumber;
    private int retryCount;
    private int connectionTimeOut;
    private boolean isConnectivityFallBackAllowed;
    private int priority1;
    private int priority2;
    private String logPath;
    private boolean isLogsEnabled;
    private int logLevel;
    private int dayToRetainLogs;
    private String cashierId;
    private String cashierName;
}

Key Rules

  • Always call posLibInitialize() first.
  • Scan device before configuration.
  • TCP/IP is preferred priority.
  • COM is fallback mode.
  • Transaction type 6 is end‑to‑end payment flow.
  • Other transaction types are internal system operations.

Final Integration Flow

Initialize POS Lib

Set Configuration

Test Connection

Select Device Priority

Execute Transaction (doTransaction)

Receive Response

Parse Response

Installation Notes

  • Requires Windows 10+.
  • JDK 1.8 (for controller layer if used).
  • POS Controller must be running for device discovery.
  • Cashier setup required at first launch.