想點就點 Point & Order
RESTful API Complete Specification

想點就點 Open API Specification

A complete RESTful API covering store tables, menu inventory, scan-to-order and payment integration with the KDS kitchen system — enabling seamless POS and ERP connectivity.

Base URL: https://api.teamotto.com.cn/v1 Format: JSON

1. Authentication

All API requests must include the authorization key in the HTTP Header:

Host: api.teamotto.com.cn
Content-Type: application/json
Authorization: Bearer pno_live_99f182c73810a4b2e
X-Store-ID: 1024

2. Common Response & Status Codes

All endpoints return a unified structure wherecode code is the business status code anddata data is the business payload.

200 Success
401 Unauthorized / Invalid Key
403 Store ID not authorized
429 Rate limit exceeded (600/min)
GET /stores
Get all group stores
Response (200 OK)
{
  "code": 200,
  "data": [
    { "store_id": 1024, "name": "Central Flagship", "status": "open" },
    { "store_id": 1025, "name": "Mong Kok Branch", "status": "open" }
  ]
}
GET /stores/{store_id}/tables
Query real-time table & seating status for a store
Response (200 OK)
{
  "code": 200,
  "data": [
    { "table_no": "A01", "seats": 4, "status": "occupied", "active_order_id": "PNO202608130088" },
    { "table_no": "A02", "seats": 2, "status": "vacant", "active_order_id": null }
  ]
}
GET /menu
Get the latest menu and item attributes
Response (200 OK)
{
  "code": 200,
  "categories": [
    {
      "category_id": 10,
      "name": "Popular HK Dim Sum",
      "items": [
        { "item_id": 8012, "name": "Signature Pineapple Bun", "price": 18.00, "stock": 45 },
        { "item_id": 8015, "name": "Silky Iced Milk Tea", "price": 22.00, "stock": 120 }
      ]
    }
  ]
}
PUT /menu/items/{item_id}/stock
Real-time sellable stock updates (sold-out sync)
Request Body
{
  "stock": 0,
  "action": "sold_out" // sold_out / restock
}
POST /orders
Create scan-to-order at table
Request Body
{
  "table_no": "A03",
  "order_type": "dine_in",
  "items": [
    { "item_id": 8012, "qty": 2, "price": 18.00 },
    { "item_id": 8015, "qty": 1, "price": 22.00, "options": ["Less Ice", "Less Sugar"] }
  ]
}
Response (200 OK)
{
  "code": 200,
  "data": {
    "order_id": "PNO202608130092",
    "total_amount": 58.00,
    "status": "pending_payment"
  }
}
GET /orders/{order_id}
Query a single order and its status flow
Response (200 OK)
{
  "code": 200,
  "data": {
    "order_id": "PNO202608130092",
    "status": "paid",           // pending_payment / paid / cooking / done
    "kds_stations": ["bar_station", "wok_station"]
  }
}
PUT /kds/orders/{order_id}/status
Update kitchen KDS cooking/serving status
Request Body
{
  "station": "bar_station",
  "status": "completed" // pending / cooking / completed
}
GET /members/{openid}
Query member points and tags (private-domain operations)
Response (200 OK)
{
  "code": 200,
  "data": {
    "openid": "oXz9s5k...",
    "points": 1280,
    "tags": ["Afternoon Tea Regular", "Milk Tea Lover"]
  }
}

Ready to integrate with your system?

We provide complete API documentation, integration examples and a dedicated technical consultant. Contact us now to get your API Key and test environment.