*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 Type | Supported | Notes |
|---|---|---|
| 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
| Type | Action |
|---|---|
| 3 | Registration |
| 6 | Payment Transaction |
| 7 | Set Configuration |
| 8 | Get Configuration |
| 9 | Last 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:
| Field | Example Value | Description |
|---|---|---|
| Response Code | 00 | Transaction result (00 = Approved) |
| Approval Code | APPROVED | Issuer/host approval code |
| Amount | 10000 | Transaction amount (in minor units) |
| Timestamp | 140524193012 | Date/time in ddMMyyHHmmss format |
| ECR Reference No | TX12345678 | Merchant’s transaction reference number |
| Receipt Data | RECEIPT123 | Printable 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.
Updated about 2 hours ago
