API Reference
REST API for POS integration · Base URL: https://api.gocart.io/v1
GET
/products/{barcode}
Look up a product by barcode. Returns name, price, image, stock level, and promotions.
{
"barcode": "4891028500198",
"name": "Organic Whole Milk 1L",
"price": 18.90,
"currency": "HKD",
"emoji": "🥛",
"category": "Dairy",
"in_stock": true,
"promo": null
}
POST
/sessions/{cart_id}/items
Add or update an item in the cart session. Returns updated basket.
{
"barcode": "4891028500198",
"qty": 2,
"action": "add" // "add" | "remove" | "set"
}
POST
/orders
Submit basket and create an order. Returns order ID and payment QR code URL.
{
"cart_id": "GC-042",
"session_id": "GC042-0816",
"payment_method": "qr_code", // "qr_code" | "nfc" | "cash"
"member_id": null
}
GET
/orders/{order_id}/status
Poll payment status. POS calls this after processing payment to confirm completion.
{
"order_id": "ORD-20260816-0042",
"status": "paid", // "pending" | "paid" | "cancelled"
"paid_at": "2026-08-16T10:32:11Z",
"receipt_url": "https://receipt.gocart.io/ORD-20260816-0042"
}
POST
/addons/status
GoCart hardware reports battery, WiFi, location zone, and port status every 10 seconds.
{
"cart_id": "GC-042",
"uuid": "c3a1f2b0-...",
"battery_pct": 78,
"wifi_rssi": -52,
"zone": "Aisle-3-B",
"bms_temp": 29.4,
"ntc_temp": 31.1
}