Physical POS
The Physical POS management API lets you manage the records of the POS setup in your stores from your own server: stores and registers, logical terminals, the terminals' bank details (merchant and terminal numbers), devices and the device linked to each terminal. You see and edit the same records in the panel; the API and the panel work on the same data.
This section covers the management endpoints only. Payment processing is not part of these endpoints. Vendor accounts (the details of your account with a POS vendor) are managed only in the panel; there is no API for them.
What it offers
| Capability | Description |
|---|---|
| Catalog | POS vendors, device models (with images) and the banks usable on physical POS, as defined on the platform. Read-only. → Catalog |
| Stores | Create, update, archive and restore stores; per-store change history. → Stores |
| Registers | Registers that belong to a store; create, rename, archive and restore. → Registers |
| Logical terminals | The terminal records that accept payments: terminal code, vendor, vendor-side identifiers, status and closure. → Logical Terminals |
| Bank rows | A terminal's merchant number (MID), terminal number (TID) and currencies at each bank. → Bank Rows |
| Devices | Register physical POS devices, assign them to a store or register, move them to storage and retire them; assignment and change history. → Devices |
| Device link | Replace the device linked to a terminal or unlink it; link history. → Device Link |
| Overview counts | Active and archived store and register counts, open and closed terminal counts, device counts by status. → Overview Counts |
Core concepts
Store and register
A store is a point of sale of your business (branch, shop, service point). A register is a checkout point inside a store and always belongs to exactly one store; a register is never moved to another store.
Stores and registers are environment-less: the test and live environments see the same store and register records. → Environments
Stores and registers are not deleted, they are archived. An archived record keeps its code and can be restored. When a store is archived, its active registers are archived in the same operation; when the store is restored, the registers stay archived.
Device and logical terminal
Physical POS has two separate records:
| Record | What it is | Example |
|---|---|---|
| Device | The hardware you hold: a POS device with a vendor, a model and a serial number. | A countertop POS in a store |
| Logical terminal | The identity that accepts payments: the terminal code, the vendor and the merchant and terminal numbers at the banks live on this record. | The terminal with code IST-KADIKOY-01 |
When the device changes (fault, loss, renewal), the logical terminal and its bank details stay the same; only the device linked to the terminal changes. This relation is called the device link:
- A terminal has at most one linked device at a time.
- A device is linked to at most one terminal at a time.
A logical terminal is environment-bound: every terminal is in either the test or the live environment, and this never changes.
The chain
The records connect like this:
Store
└─ Register
└─ Device (assigned to a store, optionally to a register)
└─ Logical terminal (device link)
└─ Bank rows (MID / TID at the banks)A logical terminal is not attached to a store directly but through its linked device: the device is assigned to a store (and optionally to one of that store's registers), and the terminal is linked to that device. This is why the terminal's identity and bank details are kept even when the device changes.
Catalog
The catalog is shared reference data across the platform: vendors, device models and banks. You only read it. The vendorCode you use when creating a terminal comes from the vendor list; the vendorAcquirerRef on a bank row is mapped to a catalog bank through the vendor's bank code mapping.
Endpoints
Base URL: https://api-gateway.lunixi.com/api/v1/physical-pos
| Method | Path | Scope | Page |
|---|---|---|---|
GET | /catalog/vendors | physical_pos:view | Catalog |
GET | /catalog/device-models | physical_pos:view | Catalog |
GET | /catalog/acquirers | physical_pos:view | Catalog |
GET | /stores | physical_pos:view | Stores |
POST | /stores | physical_pos:manage | Stores |
GET | /stores/{storeId} | physical_pos:view | Stores |
PATCH | /stores/{storeId} | physical_pos:manage | Stores |
POST | /stores/{storeId}/archive | physical_pos:manage | Stores |
POST | /stores/{storeId}/restore | physical_pos:manage | Stores |
GET | /stores/{storeId}/audit | physical_pos:view | Stores |
GET | /stores/{storeId}/registers | physical_pos:view | Registers |
POST | /stores/{storeId}/registers | physical_pos:manage | Registers |
PATCH | /registers/{registerId} | physical_pos:manage | Registers |
POST | /registers/{registerId}/archive | physical_pos:manage | Registers |
POST | /registers/{registerId}/restore | physical_pos:manage | Registers |
GET | /registers/{registerId}/audit | physical_pos:view | Registers |
GET | /terminals | physical_pos:view | Logical Terminals |
POST | /terminals | physical_pos:manage | Logical Terminals |
GET | /terminals/{terminalId} | physical_pos:view | Logical Terminals |
PATCH | /terminals/{terminalId} | physical_pos:manage | Logical Terminals |
POST | /terminals/{terminalId}/close | physical_pos:manage | Logical Terminals |
GET | /terminals/{terminalId}/audit | physical_pos:view | Logical Terminals |
GET | /terminals/{terminalId}/acquirers | physical_pos:view | Bank Rows |
POST | /terminals/{terminalId}/acquirers | physical_pos:manage | Bank Rows |
PATCH | /terminal-acquirers/{terminalAcquirerId} | physical_pos:manage | Bank Rows |
GET | /devices | physical_pos:view | Devices |
POST | /devices | physical_pos:manage | Devices |
GET | /devices/{deviceId} | physical_pos:view | Devices |
PATCH | /devices/{deviceId} | physical_pos:manage | Devices |
POST | /devices/{deviceId}/assignment | physical_pos:manage | Devices |
POST | /devices/{deviceId}/assignment/close | physical_pos:manage | Devices |
POST | /devices/{deviceId}/retire | physical_pos:manage | Devices |
GET | /devices/{deviceId}/assignments | physical_pos:view | Devices |
GET | /devices/{deviceId}/audit | physical_pos:view | Devices |
POST | /terminals/{terminalId}/device-link | physical_pos:manage | Device Link |
POST | /terminals/{terminalId}/device-link/close | physical_pos:manage | Device Link |
GET | /terminals/{terminalId}/links | physical_pos:view | Device Link |
GET | /overview | physical_pos:view | Overview Counts |
These endpoints require a request signed with your API key, and the key must carry the Physical POS product (PHYSICAL_POS). → Authentication and Scopes