Android ECR SDK
Purpose
The Android ECR SDK provides native JNI integration with Nami payment terminals using SkyBandSDK-release.aar. It enables Android POS applications to perform transactions over TCP/IP, Bluetooth, or App‑to‑App connections, without requiring developers to implement raw socket communication manually.
Prerequisites
- Android Studio Arctic Fox or later
- Minimum SDK: API 21 (Android 5.0)
- Terminal connected via TCP/IP (Wi‑Fi) or paired via Bluetooth
Required Permissions
Add the following to AndroidManifest.xml:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
Installation
// app/build.gradle
dependencies {
implementation files('libs/SkyBandSDK-release.aar')
}
Usage Example
val ecrLib = CLibraryLoad()
// Connect via TCP/IP
val socket = Socket("192.168.0.102", 8888)
// Register ECR (txnType = 17) – Legacy only
val registerReq = ecrLib.pack(requestData, 17, signature)
socket.outputStream.write(registerReq)
val response = socket.inputStream.read(buffer)
val parsed = ecrLib.parse(response)
// Purchase (txnType = 0)
val purchaseReq = ecrLib.pack(requestData, 0, signature)
socket.outputStream.write(purchaseReq)
val purchaseResp = socket.inputStream.read(buffer)
val result = ecrLib.parse(purchaseResp)
⚠️ Legacy vs Adapter Separation
- Legacy ECR integrations require:
- Register Terminal (
txnType = 17) - Start Session (
txnType = 18)
- Register Terminal (
- Adapter/Middleware integrations (Local REST API, Cloud REST API) do not require registration or session steps.
Request and Response Details
When performing a transaction, include:
- Date (
ddMMyyHHmmss) - ECR Reference Number (String)
- Amount (Integer in halalas, e.g.,
100 = SAR 1.00)
Responses return:
- Response Code (Approved/Failed)
- Approval Code
- Receipt Data
Transaction Type Codes
| Code | Transaction Type |
|---|---|
| 0 | Purchase |
| 1 | Purchase with Naqd/Cashback |
| 2 | Refund |
| 3 | Authorization |
| 4 | Purchase Advice (Full) |
| 5 | Purchase Advice (Partial) |
| 6 | Auth Extension |
| 7 | Auth Void |
| 9 | Cash Advance |
| 10 | Reconciliation |
| 11 | Reversal |
| 15 | Bill Payment |
| 17 | Register (Legacy only) |
| 18 | Start Session (Legacy only) |
| 19 | End Session |
| 23 | Duplicate / Previous Txn |
| 24 | Check Status |
| 25 | Health Check |
Updated 10 days ago
