Skip to content

Device ​

POS devices registered on the account

INFO

Every response arrives in the shared envelope — code, message, messages, status_code, time — with the payload in data. The tables below describe what is inside data.

POST /device/create ​

Register a new POS device. The backend auto-assigns a device_sign and sets status=approved.

Request body

FieldTypeRequiredDescription
namestringYesDevice display name
record_callsbooleanNoWhether the device records calls
multiple_userbooleanNoWhether multiple users can share the device
json
{
  "name": "string",
  "record_calls": false,
  "multiple_user": false
}

Response

FieldTypeDescription
_idstringDevice ObjectId
namestringDevice display name
statusstringDevice lifecycle status. One of: pending, approved, blocked
device_signstringAuto-generated unique device sign (counter-based)
device_namestringOS-reported device name (set during device activation)
imeistringDevice IMEI (set during activation; absent for unused devices)
release_typestringAndroid release type (set during activation). One of: store, standalone
record_callsbooleanWhether the device records calls
multiple_userbooleanWhether multiple users can share the device
osstringOperating system reported by the device
used_bystringObjectId of the user who last activated the device
receipt_counternumberLast receipt counter value on this device
created_atstring (date-time)
updated_atstring (date-time)
json
{
  "code": 0,
  "message": "Success",
  "status_code": 200,
  "data": {
    "_id": "string",
    "name": "string",
    "status": "pending",
    "device_sign": "string",
    "device_name": "string",
    "imei": "string",
    "release_type": "store",
    "record_calls": false,
    "multiple_user": false,
    "os": "string",
    "used_by": "string",
    "receipt_counter": 0,
    "created_at": "2025-05-01T12:00:00Z",
    "updated_at": "2025-05-01T12:00:00Z"
  },
  "time": "2025-05-01T12:00:00Z"
}

PUT /device/update/{id} ​

Update an existing POS device's name, record_calls, or multiple_user flag.

Path parameters

ParameterTypeRequiredDescription
idstringYesDevice ObjectId

Request body

FieldTypeRequiredDescription
namestringYesDevice display name
record_callsbooleanNoWhether the device records calls
multiple_userbooleanNoWhether multiple users can share the device
json
{
  "name": "string",
  "record_calls": false,
  "multiple_user": false
}

Response

json
{
  "code": 0,
  "message": "Success",
  "status_code": 200,
  "data": "string",
  "time": "2025-05-01T12:00:00Z"
}

PUT /device/set-status/{id} ​

Transition a device to a new status (pending | approved | blocked). Transitioning to blocked terminates all active sessions for the device. No-op when the target status equals the current status.

Path parameters

ParameterTypeRequiredDescription
idstringYesDevice ObjectId

Request body

FieldTypeRequiredDescription
statusstringYesNew device status. Transitioning to blocked terminates all active sessions for the device.. One of: pending, approved, blocked
json
{
  "status": "pending"
}

Response

Same response shape as PUT /device/update/{id}.

DELETE /device/delete/{id} ​

Soft-delete a POS device (sets is_deleted=true). Fails if the device has an open cashbox session.

Path parameters

ParameterTypeRequiredDescription
idstringYesDevice ObjectId

Request body

No request body.

Response

Same response shape as PUT /device/update/{id}.

GET /device/get-by-id/{id} ​

Fetch a single POS device by ObjectId.

Path parameters

ParameterTypeRequiredDescription
idstringYesDevice ObjectId

Request body

No request body.

Response

Same response shape as POST /device/create.

POST /device/get-paging ​

Paginated list of registered POS devices. Filterable by usage state, IMEI, and Android release type.

Request body

FieldTypeRequiredDescription
pagenumberYesDefault: 1
limitnumberYesDefault: 20
is_usedbooleanNoFilter by whether the device is currently in use (has an IMEI)
imeistringNoFilter by exact IMEI string
release_typestringNoFilter by Android release type. One of: store, standalone
json
{
  "page": 1,
  "limit": 20,
  "is_used": false,
  "imei": "string",
  "release_type": "store"
}

Response

FieldTypeDescription
totalnumber
listobject[]
list[]._idstringDevice ObjectId
list[].namestringDevice display name
list[].statusstringDevice lifecycle status. One of: pending, approved, blocked
list[].device_signstringAuto-generated unique device sign (counter-based)
list[].device_namestringOS-reported device name (set during device activation)
list[].imeistringDevice IMEI (set during activation; absent for unused devices)
list[].release_typestringAndroid release type (set during activation). One of: store, standalone
list[].record_callsbooleanWhether the device records calls
list[].multiple_userbooleanWhether multiple users can share the device
list[].osstringOperating system reported by the device
list[].used_bystringObjectId of the user who last activated the device
list[].receipt_counternumberLast receipt counter value on this device
list[].created_atstring (date-time)
list[].updated_atstring (date-time)
json
{
  "code": 0,
  "message": "Success",
  "status_code": 200,
  "data": {
    "total": 0,
    "list": [
      {
        "_id": "string",
        "name": "string",
        "status": "pending",
        "device_sign": "string",
        "device_name": "string",
        "imei": "string",
        "release_type": "store",
        "record_calls": false,
        "multiple_user": false,
        "os": "string",
        "used_by": "string",
        "receipt_counter": 0,
        "created_at": "2025-05-01T12:00:00Z",
        "updated_at": "2025-05-01T12:00:00Z"
      }
    ]
  },
  "time": "2025-05-01T12:00:00Z"
}

This page is generated from the OpenAPI spec.

Bito 2.0 Integration API