One Terminal. Every Payment.

Accept card, WeChat, Alipay, UnionPay, EFTPOS, and wallet payments — all from a single Android terminal. Built for speed, secured by design.

Trusted by leading payment networks

VisaMastercardWeChat PayAlipayUnionPayCentraPayPOLiZipEFTPOSVisaMastercardWeChat PayAlipayUnionPayCentraPayPOLiZipEFTPOS

Everything you need to accept payments

Built from real-world POS requirements — every feature listed here ships in the product today.

Multi-Gateway Payments

Card, WeChat Pay, Alipay, UnionPay, CentraPay, EFTPOS, and cash — all from a single terminal with automatic routing.

Tap-to-Pay NFC

One-tap card detection via Sunmi PaySDK. Apple Pay, Google Pay, and contactless cards with EMV processing and tip dialogs.

Smart Payment Routing

Automatic fallback to the next available provider on failures. The router selects the best match for every transaction.

Real-Time Reports

Filterable transaction logs, per-gateway channel summaries, settlement batching, and end-of-day reconciliation.

OTA Updates

Self-updating over S3 with SHA-256 integrity verification. Mandatory and optional update modes. No app store required.

Enterprise Security

Root detection, AES-256 encrypted storage, JWT + HMAC authentication, environment segregation, and tamper-proof OTA.

How it works

Three steps from unboxing to accepting payments.

01

Activate

Scan the 6-digit code. Your terminal connects and configures itself automatically.

02

Accept Payments

Customer taps, scans, or swipes. Payment routes to the best available gateway.

03

Settle & Report

End-of-day batch settlement. Email receipts. Filterable reports in the admin portal.

Built for the counter

  • Contactless / NFC (Apple Pay, Google Pay)
  • QR code scanning + generation
  • Configurable tips & surcharges
  • Real-time network quality monitoring
  • Multi-terminal LAN networking
Ready to accept

Integrate in minutes

Native SDKs for Android, Web, and iOS. Same contract, three platforms.

Kotlin
val client = OneMyPosMateClient.Builder(
    baseUrl = "https://payus.co.nz",
    system = "pos"
).build()

val resp = client.payments.payNow(
    PayNowRequest(
        grandTotal = "10.00",
        referenceId = "REF-001",
        branchId = 17,
        configId = 123,
        channel = "WECHAT"
    )
)
TypeScript
const client = new OneMyPosMateClient({
  baseUrl: 'https://payus.co.nz',
  system: 'pos',
});

const resp = await client.payments.payNow({
  grandTotal: '10.00',
  referenceId: 'REF-001',
  branchId: 17,
  configId: 123,
  channel: 'WECHAT',
});
Swift
let client = OneMyPosMateClient(
    baseUrl: "https://payus.co.nz",
    system: "pos"
)

let resp = try await client.payments.payNow(
    PayNowRequest(
        grandTotal: "10.00",
        referenceId: "REF-001",
        branchId: 17,
        configId: 123,
        channel: "WECHAT"
    )
)

Runs on your hardware

Tested and supported on Sunmi terminals and any Android 8+ device.

Sunmi P2

NFC + Built-in Printer

Sunmi V2

NFC + Built-in Printer

Sunmi V2 Pro

NFC + Built-in Printer

Sunmi T2

Countertop + Printer

Sunmi D2

Desktop + Printer

Android 8+ Device

Wi-Fi / Bluetooth Printers

Ready to modernise your payment stack?

Get started with our SDKs or talk to our team about a custom integration.