Android SDK

Android ECR Library

Native integration with Nami payment terminals from Android applications using JNI.

Prerequisites

  • Android Studio Arctic Fox+
  • Minimum SDK: API 21 (Android 5.0)
  • Terminal on same Wi-Fi or Bluetooth paired

Installation

// app/build.gradle
dependencies {
    implementation files('libs/SkyBandSDK-release.aar')
}

Usage

val ecrLib = CLibraryLoad()

// Connect via TCP/IP
val socket = Socket("192.168.0.102", 8888)

// Register ECR (txnType = 17)
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)

Transaction Flow

Connect (TCP/BT) → Register (17) → Start Session (18) → Purchase (0) → Parse Response

Transaction Type Codes

CodeTransaction Type
0Purchase
1Purchase with Naqd/Cashback
2Refund
3Authorization
4Purchase Advice (Full)
5Purchase Advice (Partial)
6Auth Extension
7Auth Void
9Cash Advance
10Reconciliation
11Reversal
15Bill Payment
17Register
18Start Session
19End Session
23Duplicate / Previous Txn
24Check Status
25Health Check