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
| Pattern | Till runs on | Payment initiated by | Result delivery |
|---|---|---|---|
| App-to-app (Intent API) | Payment terminal | POS app calls Intent API builders | Intent callback; optional point of sale webhook |
| Web POS in WebView | WebView container on terminal | JavaScript bridge → Kotlin → Intent API | Same as app-to-app |
| POS Integrations API | Any device (tablet, PC, phone) | Till calls the Integrations API | Point of sale webhook (required) |
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
└── POS Integrations API + point of sale webhooksSame 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 → POS Integrations API. Your till calls Peach Payments over HTTPS to push the payment to the terminal. Your backend receives the outcome via Point of sale webhooks.
Result delivery
| Pattern | Primary result path | Backend notification |
|---|---|---|
| App-to-app | Intent listener callback (PosTransactionSummary, VoidResponse) | Optional Point of sale webhooks |
| POS Integrations API | None on till device | Required Point of sale webhooks |
For both Intent callbacks and point of sale webhooks, evaluate
transactionTypeandisApprovedtogether to determine success. Void usesVoidResponsewithoutisApproved.
Next steps
| Pattern | Next step |
|---|---|
| App-to-app | Get started with app-to-app |
| POS Integrations API | POS Integrations API |
| Web POS | App-to-app integration (Web POS section) |
Updated 1 day ago
Did this page help you?