Terminal API (H2H) is the recommended starting point for most merchants because it provides managed device orchestration, standardized workflows, and the fastest route to certification.
Integration options
- Terminal API (H2H)
- Terminal API (C2C)
The Terminal API is the Host-to-Host (H2H) HTTP API. Your backend calls Xendit’s cloud endpoints to create payment sessions, manage terminals, and receive callbacks.
- Always HTTP — your backend makes REST calls to
POST /v1/terminal/sessionsand related endpoints. - Unified session and callback model that automatically handles retries and reconciliation.
- BRI/NTT terminals require the Gateway App or H2H SDK for device connectivity. Other providers connect directly.
Architecture comparison
| Capability | Terminal API (H2H) | Terminal C2C API / Terminal C2C SDK |
|---|---|---|
| API interface | Always HTTP REST via Xendit cloud | HTTP REST (C2C API) or native SDK methods (C2C SDK) |
| Device management | Gateway App or H2H SDK handles pairing | Your app or service maintains device connections |
| Session orchestration | Managed by Xendit with standardized callbacks | Fully custom — implement your own workflows |
| BRI/NTT pre-install | Gateway App or H2H SDK | Gateway App (for C2C API) or C2C SDK (for native) |
| Other providers | No pre-install needed | No pre-install needed; C2C SDK optional |
| Time-to-market | Fast — fewer edge cases and pre-built flows | Longer — requires bespoke command handling |
| Recommended for | Assisted checkout, staff POS, rapid pilots | Kiosks, unattended terminals, advanced custom flows |
Sample use cases
- Retail POS rollout (H2H)
- Custom kiosk network (C2C)
A national retail chain wants a consistent checkout experience across dozens of staffed stores. Payments need to keep flowing even when teams rotate or terminals move between counters.
- Central operations teams can monitor every device from a single dashboard instead of logging into individual terminals.
- Regional expansion is simply a matter of adding more terminals; the API contract and callbacks stay identical.