Integration patterns

Overview

Peach Payments terminal integrations fall into a few patterns. Pick the one that matches where your POS software runs and how you deliver payment results to your backend.

Pattern comparison

PatternTill runs onPayment initiated byResult delivery
App-to-app (Intent API)Same Android device as Payment AppPOS app calls Intent API buildersIntent callback; optional point of sale webhook
Till-point QRAny device (tablet, PC, phone)Cashier scans QR on terminalPoint of sale webhook (required)
Web POS in WebViewWebView container on terminalJavaScript bridge → Kotlin → Intent APISame as app-to-app

Decision guide

Where does your POS software run?
│
├─ Same Sunmi device as Payment App
│   ├─ Native Android (Kotlin/Java) ──► App-to-app (Intent API)
│   └─ Web UI in WebView shell      ──► Web POS in WebView (Intent API)
│
└─ Separate device from terminal
    └── Till-point QR + point of sale webhooks

Same device → app-to-app. Your POS and the Payment App share one Android device. Use com.peach:intent_api builders and receive results in your listener callbacks.

Separate till → till-point QR. Your till displays a QR code; the cashier scans it on the terminal. Your backend receives the outcome via Point of sale webhooks.

Result delivery

PatternPrimary result pathBackend notification
App-to-appIntent listener callback (PosTransactionSummary, VoidResponse)Optional Point of sale webhooks
Till-point QRNone on till deviceRequired Point of sale webhooks
📘

For both Intent callbacks and point of sale webhooks, evaluate transactionType and isApproved together to determine success. Void uses VoidResponse without isApproved.

Next steps

PatternNext step
App-to-appGet started with app-to-app
Till-point QRTill-point QR integration
Web POSApp-to-app integration (Web POS section)