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