First Steps
Know Kushki ONE, our regional solution for Card Present payments.
What is Kushki ONE?
Kushki ONE is Kushki’s end-to-end card-present payments solution. It lets merchants accept physical payments through SmartPOS terminals, bringing the whole operation into a single ecosystem.
Accept payments directly from the payment app installed on the terminal, or connect your point-of-sale software through our API. Run it from a register, tablet, computer or any other networked device, or from an app installed on the terminal itself.
Markets and currencies
| Country | Currency | Decimals |
|---|---|---|
| Chile | CLP | 0 |
| Colombia | COP | 0 |
| Mexico | MXN | 2 |
| Peru | PEN | 2 |
How to use this guide
This documentation splits into two paths depending on your role.
Path 1: operators and administrators
For those who run the point of sale or manage the business: certified hardware, the Payment App, the operations catalog and the Standalone and Semi-Integrated modes.
Path 2: developers and integrators
For those who connect POS software to the terminal: Kushki ONE Connect, integration topologies, security, network requirements and the full transaction flow.
Path 1: For Merchant Operators and Administrators
Supported Hardware
Kushki ONE’s architecture is hardware-agnostic and all of its components are interoperable. To guarantee maximum performance and stability, however, the solution is certified only for these SmartPOS devices.
| Model | Display and design | Processor and memory | Operating system |
|---|---|---|---|
| Sunmi P3 (standard) | 6.75” HD+ bezel-less (350 nits). Ultra-thin at 17 mm with anti-fingerprint coating | Quad-Core A53 at 2.0 GHz, 2 GB RAM, 32 GB ROM | Sunmi OS (Android 11 Go) |
| Sunmi P2 SE | Compact display. Lightweight, resistant to dust, splashes and drops. QR and barcode scan engine | Quad-Core at 2.0 GHz, DDR4 memory | Sunmi OS (Android) |
Sunmi P3
- Built-in printer: high-speed thermal, 70 mm/s.
- Battery: removable lithium, 7.7 V and 2,630 mAh. Up to 13 days on standby.
- Design: ultra-thin at 17 mm with anti-fingerprint coating, built for high-traffic environments.
Sunmi P2 SE
- Mobility: compact and lightweight, ideal for pay-at-table, retail or delivery.
- Code reader: professional scan engine for barcodes and QR codes, even when damaged.
- Durability: resistant to dust, splashes and drops. Battery optimized for long shifts.
Kushki ONE Payment App
This is the payment app installed directly on the physical terminal. Its interface lets the operator run and manage the entire payment lifecycle without an external point of sale.
Operations Catalog
| Operation | Available by API | Description |
|---|---|---|
| Sale | ✅ | Single-step charge. Supports tip, merchant-funded installments, issuer-funded installments and cashback |
| Authorization | ✅ | Reserves the funds on the card for a later charge |
| Capture | ✅ | Charges an amount that was previously authorized |
| Re-authorization | ✅ | Changes the authorized amount or extends the window to run the capture |
| Return | ✅ | Gives the money back from a sale. Internally it runs a void or a refund depending on when it executes |
| Post-tip | ✅ | Adds a tip amount after a transaction has been authorized |
| Split the bill | ❌ | Splits one amount into several sequential payments. Standalone only — there is no endpoint for it |
Terminal Operating Modes
Standalone mode
- The terminal runs on its own, with no integration to external systems.
- The operator uses the touchscreen as a calculator. The whole cycle happens on the device.
- Ideal for merchants without an external point-of-sale system.
Semi-Integrated mode
- Required to connect your point of sale to the terminal through Kushki ONE Connect.
- The interface locks into a “Waiting for call” state and only reacts to commands sent by your POS software.
- Ideal for integrations with your own point of sale.
Path 2: For Developers and Integrators (Kushki ONE Connect)
What is Kushki ONE Connect?
Kushki ONE Connect is our API integration layer. It lets your POS software interact directly with the physical terminal while it runs in Semi-Integrated mode. Your system sends the financial commands to the payment app, which removes manual entry and human error.
The premise is simple: it is the same API regardless of the channel you use. The only thing that changes between topologies is the communication path, not the structure of the endpoints or the payloads.
Integration Topologies (Communication Paths)
| ☁️ Cloud | 📡 Local Network | 📲 Localhost | |
|---|---|---|---|
| Flow | POS → Kushki servers → Terminal | POS → Local router → Terminal | Your app ⇄ Kushki ONE App, on the same device |
| Ideal use case | Cloud POS, multi-site merchants, POS and terminal on different networks | Supermarkets, retail and restaurants on the same network | Your own POS app installed on the terminal |
| Key requirement | Stable internet at both the register and the terminal | Static IP or DHCP reservation on the terminal | No internal network needed between the apps |
1. Cloud integration
Your POS sends the request to Kushki’s servers, which identify the target terminal and route the order over the internet.
- Advantage: your POS and the terminal do not need to share a local network.
- Consideration: requires a stable internet connection at both ends.
| Environment | Base URL |
|---|---|
| UAT | https://uat-cloudt.kushkipagos.com |
| Production | https://cloudt.kushkipagos.com |
Every endpoint carries the terminal serial number in the path:
https://{host}/terminal/v1/{terminalSerial}/sync/{operation}
2. Local Network integration
Your POS sends an HTTP request straight to the terminal’s local IP, with no detour through external servers. That cuts latency noticeably.
- Advantage: lower latency, because POS-to-terminal communication does not depend on the internet.
- Consideration: the terminal needs a static IP or a DHCP reservation. If the IP changes, your POS loses communication.
How to find your terminal’s IP
- Open Settings and then Wi-Fi.
- Tap the name of the connected network.
- Expand Advanced options.
- Scroll down to the IP address field.
3. Same-device integration (Localhost)
This applies when you have your own POS app installed inside the SmartPOS terminal. Your app and the Kushki ONE Payment App live on the same hardware and talk to each other over localhost.
- Main advantage: replaces traditional app-to-app integration flows with standard HTTP calls.
- No internal network: communication between the two apps needs neither Wi-Fi nor Ethernet.
Communication Security
Every call to Kushki ONE Connect is authenticated with a signature you compute from your Business-Code.
The mechanism does not change between topologies: your authentication logic is the same on Cloud, Local Network and Localhost. There is one mechanism — hash + encryption:
| Element | Value |
|---|---|
Authorization | Basic followed by the SHA-512 hash |
timestamp | Unix timestamp in seconds, within ±5 minutes of server time |
| Body | The encrypted envelope {"data": "<iv_hex>:<ciphertext_hex>"} |
Network and Infrastructure Requirements
1. Local network setup
This applies only if you use the Local Network topology.
- Static IP or DHCP reservation: configure the router to always assign the same IP to the terminal, bound to its MAC address.
- Communication ports: the internal firewall must allow bidirectional traffic on the terminal’s TCP ports —
6868for HTTP and6869for HTTPS. A network that only opens6868blocks HTTPS access to the terminal. - Wi-Fi security: certified terminals support WPA2-PSK and WPA3.
2. Allowed domains
The terminal always needs internet access to process transactions and receive updates. If your corporate network blocks outbound traffic, your IT team must allow these hosts on port 443. Open only the column for your environment — uat-cloudt is a test host and does not belong on a production network:
| Purpose | UAT | Production | Who needs it |
|---|---|---|---|
| Cloud relay | uat-cloudt.kushkipagos.com | cloudt.kushkipagos.com | The terminal and the POS network |
| Payment processing | api-uat.kushkipagos.com | api.kushkipagos.com | The terminal only |
| Terminal management | uat-tms.kushkipagos.com | tms.kushkipagos.com | The terminal only |
All three are real egress from the terminal. The only row you also have to open from the POS network is the Cloud relay, and only if you integrate over that topology.
Full Transaction Flow
- Request generation: your POS system builds the request and sends the amount to charge over the API.
- Decision and routing: Kushki ONE Connect receives the request and routes it to the physical device according to the merchant’s configuration, over Cloud or Local Network.
- Reception and data capture: the terminal receives the request, shows the amount on screen and reads the customer’s card.
- Processing: the terminal sends the data to Kushki, which processes the financial transaction.
Verify your connection
Before your first charge, check that your POS can reach the terminal. This endpoint moves no money and is the fastest way to validate network, port and credentials at once.
- Javascript
- Python
// Local Networkconst res = await fetch("http://192.168.1.50:6868/terminal/v1/sync/local/test", {headers: buildHeaders({}),});console.log(res.status, await res.json());// 200 { success: true, data: {} }
import requests# Local Networkres = requests.get("http://192.168.1.50:6868/terminal/v1/sync/local/test",headers=build_headers({}))print(res.status_code, res.json())# 200 {'success': True, 'data': {}}
The same check exists on Cloud, where the method changes — it is a POST addressed to the terminal by serial number:
POST /terminal/v1/{terminalSerial}/sync/local/test
There is a second diagnostic endpoint worth knowing, available in both topologies:
GET /terminal/v1/sync/config/terminal_info ← local networkPOST /terminal/v1/{terminalSerial}/sync/config/terminal_info ← Cloud
It returns {model, room, serialNumber}. The room field is the terminal’s app version — the only way to know which build you are testing against, which matters while the product is in Beta.
If you get a TER-002 error, the terminal is not responding: check network connectivity and that the port is open. If you get an authentication error, check your signature.
Next steps
Amount format in Kushki ONE
Learn how to build the amount object in minor units according to each country’s currency. This is the step that prevents charging the wrong value.
Request authentication
Implement request signing and encryption: there is one mechanism, identical across all three topologies.
Accept payments with Kushki ONE
Process direct sales, authorization, capture, post-tip, void and refund.
Print from the terminal
Send print jobs to the SmartPOS: receipts, coupons and QR codes, with no drivers or SDK.
Chile
Colombia
Ecuador
Peru