Overview
Nami provides multiple integration options to connect to Nami's payment terminals. This enables automation of the billing process and avoids human errors while manually entering the amount resulting in undercharging or overcharging the customers.
NamiPay Integration Guide
Everything you need to integrate NamiPay payment terminals with your POS system, mobile app, or cloud platform.
Connection Methods
- TCP/IP - LAN / Wi-Fi network connection to terminal
- Serial / COM - Direct RS-232 serial port connection
- Bluetooth - Wireless Bluetooth pairing with terminal
- App-to-App - Intent / WebSocket between Android apps
Universal Integration Flow
All NamiPay SDKs follow the same high-level protocol regardless of platform or connection method:
Connect → Register (17) → Start Session (18) → Transaction → Parse Response
Choose Your Integration Path
- Cloud REST API - Any language via HTTPS. No SDK needed.
- Local Middleware - Spring Boot REST on port 9099 (Windows)
- Android SDK - Native JNI for mobile POS apps
- iOS SDK - Swift framework for iPad/iPhone POS
- Flutter Plugin - Cross-platform mobile integration
- .NET Library - P/Invoke DLL for Windows desktop
- C/C++ Library - Low-level headers for embedded apps
- Java ECR - JNI wrapper for Java SE desktop
Response Format (Native SDKs)
All native SDKs return a pipe-delimited response string. Use the platform-specific parse() function to extract fields.
Response Fields (pipe-delimited):
Field 0: Response Code (00 = Approved)
Field 1: Approval Code
Field 2: RRN (Retrieval Reference Number)
Field 3: Card Number (masked)
Field 4: Card Holder Name
Field 5: Expiry Date
Field 6: Transaction Date/Time
Field 7: Terminal ID
Field 8: Merchant ID
Field 9: Scheme Name (VISA, MADA, etc.)
Field 10: Amount
Field 11: Receipt Data
Updated 4 days ago