POS Terminal Connection from Mobile App

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
Development and support of all types of mobile applications:
Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1 servicesAll 1735 services
POS Terminal Connection from Mobile App
Complex
~5 business days
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

POS Terminal Connection Implementation in Mobile App

Connecting a mobile app to a POS terminal isn't simply "send amount to terminal." It's integration with proprietary hardware protocols—each manufacturer has their own—plus handling every possible communication failure during a financial operation.

Protocols and Manufacturers

Most retail POS terminals communicate via one of the standard interface protocols:

ECR Protocol (Electronic Cash Register) — set of commands to pass amount from cash app to terminal. Each bank-acquirer or manufacturer implements differently. Sberbank (SBOL), VTB, Ingenico, Verifone—all have different command syntax and response fields.

OPI (Open Payment Initiative) / OPOS (OLE for POS) — more standardized, popular in Europe.

Proprietary SDK: PAX A-series, Sunmi V2, Newland have their own Android SDKs (the terminal itself runs Android, invoke AIDL interface or Intent).

Before development, confirm with the client: which specific terminal, which bank-acquirer, which protocol. This isn't a developer choice—it's hardware fact.

Connection Interfaces

Bluetooth (BLE + Classic). Terminal is a GATT server (BLE) or classic Bluetooth serial device. iOS: CoreBluetooth for BLE; classic Bluetooth only via ExternalAccessory framework with MFi certification. Important: most POS terminals use classic Bluetooth SPP profile, and iOS without MFi certification from the terminal manufacturer can't connect via classic BT. Android has no restrictions—BluetoothSocket + RFCOMM.

USB. Android: UsbManager, UsbDeviceConnection. iOS: Lightning/USB-C accessory—again, MFi required. USB is rarer than Bluetooth in practice.

TCP/IP (Wi-Fi/LAN). Terminal on local network, app connects by IP:Port, sends commands in text or binary. URLSession / OkHttp for HTTP or CFStream / Java Socket for raw TCP. Most predictable for iOS.

Payment Operation Flow

  1. App formats "sale" command with amount and extra params.
  2. Sends to terminal.
  3. Terminal shows payment screen to user, accepts card.
  4. Returns response: status (approved/declined/error), auth code, RRN, masked PAN.
  5. App processes and continues (close receipt, update order).

Steps 2–4 can take 60–90 seconds with slow acquiring. Show spinner "Waiting for terminal response" and a "Cancel" button (sends cancel command to terminal, not just closes screen).

Error Handling

Worst case: transaction sent, connection lost—the app doesn't know if payment succeeded or not. Terminal authorized the card but response didn't arrive.

Correct approach: on connection loss, try getting the last transaction status (command "query last operation"). If terminal responds, take the status. If not, show operator "Status unknown, check terminal" and save transaction as PENDING. Never auto-debit on unknown status.

Reconnect logic: Bluetooth drop → auto-reconnect with 3–5 attempts, exponential backoff. Connection state always visible in UI (icon).

Reversal and Refund

Reversal (cancellation)—before close of business day. Refund—after. Both require separate commands to terminal with RRN from original transaction. Support both—operator must correct mistakes.

Android vs iOS

Aspect Android iOS
Classic BT (SPP) Native, BluetoothSocket MFi devices only
BLE BluetoothGatt CoreBluetooth
USB UsbManager MFi only
TCP/IP Socket / OkHttp CFStream / URLSession

If the client requires iOS and the terminal only works via classic Bluetooth without MFi, the only path: TCP/IP via intermediate adapter or switch to a terminal with BLE/TCP support.

Process

Determine terminal model and protocol → study acquirer docs → implement transport layer (BT/USB/TCP) → command protocol (sale, reversal, refund, query status) → edge-case handling (connection loss, timeout) → test on real terminal in acquirer test mode → live testing → deployment.

Timeline Estimates

Basic integration (sale + response) for a specific protocol, one interface: 3–5 days. Full operation set (sale, reversal, refund, status query) + retry/reconnect + multiple interfaces: 2–3 weeks.