Skip to main content
Client-to-client mode is an involved form of integration that requires careful network setup and management. It is designed for very specific use cases and is not recommended for most integrations.
Client-to-client lets your POS or backend call the Terminal Gateway app over the local network to initiate payments and terminal actions.
Most integrations should use the standard Terminal API instead of client-to-client mode. The Terminal API provides centralized terminal management, better scalability, and simplified network requirements.
1

Configure the Terminal Gateway app

Follow the setup in App configuration to:
  • Enable Client-to-client mode
  • Note the device IP and port (default 8189)
  • Set the API key
You should see the device IP on the app home screen and be able to reach http://{IP}:{PORT} from your network.
2

Use the Client-to-client API

After configuration, use the API documented under Terminal Gateway to:
  • Create payments (POST /commands/pay)
  • Cancel payments (POST /commands/cancel)
  • Print receipts (POST /commands/receipt)
  • Run settlement (POST /commands/settlement)
  • Query histories (POST /commands/histories)
Requests must include the correct provider header (e.g., BRI, NTT) and X-API-KEY set in the app.

Choosing a connection mode

Consider Client-to-Client only for these very specific use cases:
  • Locally managed POS systems: Your cashier/POS system runs entirely locally without a central server backend
  • Bundled distribution: You want to bundle your POS system with terminal devices for distribution to retail stores without any central backend system to manage distribution
  • Offline-capable terminals: You need terminals that can operate with intermittent connectivity, though internet access is still required for payment processing
Client-to-Client still requires internet connectivity to process payments and communicate with terminal device providers. It only removes the need for your POS to connect to a central server - the terminals and gateway app or SDK themselves must still have internet access.
This integration requires managing local network configuration, firewall rules, and direct IP/port access between your POS and terminal devices. You are responsible for ensuring secure network communication.

OpenAPI Specification

Download the complete OpenAPI 3.1.0 specification for the Client-to-Client API to integrate with your development tools. Import it into Postman, Insomnia, or any OpenAPI-compatible client.
  • Import the YAML into your API client for quick testing
  • Use it to generate client SDKs and ensure schema accuracy
  • The spec documents endpoints, headers, and request/response bodies