Physical POS
Overview

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

CapabilityDescription
CatalogPOS vendors, device models (with images) and the banks usable on physical POS, as defined on the platform. Read-only. → Catalog
StoresCreate, update, archive and restore stores; per-store change history. → Stores
RegistersRegisters that belong to a store; create, rename, archive and restore. → Registers
Logical terminalsThe terminal records that accept payments: terminal code, vendor, vendor-side identifiers, status and closure. → Logical Terminals
Bank rowsA terminal's merchant number (MID), terminal number (TID) and currencies at each bank. → Bank Rows
DevicesRegister physical POS devices, assign them to a store or register, move them to storage and retire them; assignment and change history. → Devices
Device linkReplace the device linked to a terminal or unlink it; link history. → Device Link
Overview countsActive 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:

RecordWhat it isExample
DeviceThe hardware you hold: a POS device with a vendor, a model and a serial number.A countertop POS in a store
Logical terminalThe 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

MethodPathScopePage
GET/catalog/vendorsphysical_pos:viewCatalog
GET/catalog/device-modelsphysical_pos:viewCatalog
GET/catalog/acquirersphysical_pos:viewCatalog
GET/storesphysical_pos:viewStores
POST/storesphysical_pos:manageStores
GET/stores/{storeId}physical_pos:viewStores
PATCH/stores/{storeId}physical_pos:manageStores
POST/stores/{storeId}/archivephysical_pos:manageStores
POST/stores/{storeId}/restorephysical_pos:manageStores
GET/stores/{storeId}/auditphysical_pos:viewStores
GET/stores/{storeId}/registersphysical_pos:viewRegisters
POST/stores/{storeId}/registersphysical_pos:manageRegisters
PATCH/registers/{registerId}physical_pos:manageRegisters
POST/registers/{registerId}/archivephysical_pos:manageRegisters
POST/registers/{registerId}/restorephysical_pos:manageRegisters
GET/registers/{registerId}/auditphysical_pos:viewRegisters
GET/terminalsphysical_pos:viewLogical Terminals
POST/terminalsphysical_pos:manageLogical Terminals
GET/terminals/{terminalId}physical_pos:viewLogical Terminals
PATCH/terminals/{terminalId}physical_pos:manageLogical Terminals
POST/terminals/{terminalId}/closephysical_pos:manageLogical Terminals
GET/terminals/{terminalId}/auditphysical_pos:viewLogical Terminals
GET/terminals/{terminalId}/acquirersphysical_pos:viewBank Rows
POST/terminals/{terminalId}/acquirersphysical_pos:manageBank Rows
PATCH/terminal-acquirers/{terminalAcquirerId}physical_pos:manageBank Rows
GET/devicesphysical_pos:viewDevices
POST/devicesphysical_pos:manageDevices
GET/devices/{deviceId}physical_pos:viewDevices
PATCH/devices/{deviceId}physical_pos:manageDevices
POST/devices/{deviceId}/assignmentphysical_pos:manageDevices
POST/devices/{deviceId}/assignment/closephysical_pos:manageDevices
POST/devices/{deviceId}/retirephysical_pos:manageDevices
GET/devices/{deviceId}/assignmentsphysical_pos:viewDevices
GET/devices/{deviceId}/auditphysical_pos:viewDevices
POST/terminals/{terminalId}/device-linkphysical_pos:manageDevice Link
POST/terminals/{terminalId}/device-link/closephysical_pos:manageDevice Link
GET/terminals/{terminalId}/linksphysical_pos:viewDevice Link
GET/overviewphysical_pos:viewOverview 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

Pages in this section