API reference

v1 · Public

Orders

Submit website checkout orders to EquityPOS. Staff see them under Communications → Web orders with online-order notifications (enable the Web orders module and use your location API key from Developer settings).

POST/orders

Request body

json
{
  "customer": {
    "name": "Ahmed Naish",
    "email": "ahmed@example.com",
    "phone": "+960 123 4567",
    "address": "Male, Maldives"
  },
  "paymentMethod": "card",
  "currency": "MVR",
  "items": [
    {
      "productId": "01H...",
      "name": "Widget A",
      "quantity": 2,
      "unitPrice": 150.0,
      "lineTotal": 300.0,
      "note": "Colour: Z-971 — Soft Grey"
    }
  ],
  "subtotal": 300.0,
  "tax": 18.0,
  "shipping": 100.0,
  "total": 418.0
}

Each item may include an optional note string. For tint colours, send Colour: {code}{name} (for example Colour: Z-971 — Soft Grey). Staff see the note on each line in Communications → Web orders and it carries through when the order is converted to a quotation.

Response (201)

json
{
  "data": {
    "id": "01H...",
    "number": "WEB-01HABCD1",
    "status": "new",
    "statusToken": "01H...",
    "total": "418.0000",
    "currency": "MVR",
    "createdAt": "2026-06-03T10:00:00.000Z"
  }
}

Get order

GET/orders/:orderId

With Authorization: Bearer, full order for your company (including items[].note when set). For customer-facing status pages use ?statusToken=... (returned on create; no API key required).

bash
curl -s "https://equitypos.com/api/v1/public/orders/ORDER_ID?statusToken=TOKEN"

Upload payment proof

POST/orders/:orderId/payment-proof

After checkout, upload a bank transfer slip or receipt. Staff see it in Communications → Web orders and can verify or reject it. Allowed types: JPEG, PNG, WebP, PDF (max 5MB).

multipart/form-data

bash
curl -X POST "https://www.equitypos.com/api/v1/public/orders/ORDER_ID/payment-proof" \
  -H "Authorization: Bearer ep_live_..." \
  -H "Accept: application/json" \
  -F "file=@/path/to/slip.jpg" \
  -F "orderNumber=WEB-01KT634T"

Response (200)

json
{
  "data": {
    "orderId": "01H...",
    "number": "WEB-01KT634T",
    "paymentProof": {
      "status": "pending",
      "name": "slip.jpg",
      "type": "image/jpeg",
      "size": 245120,
      "uploadedAt": "2026-06-03T12:00:00.000Z"
    }
  }
}

Re-upload is allowed after staff reject the slip (409 if already pending or verified). Public order status includes paymentProof.status without the file URL.

Add note

POST/orders/:orderId/notes
json
{
  "note": "Your order is being packed.",
  "isPublic": true
}

Notes with isPublic: true appear on the public status response. Staff can also add notes in the hub.

Hub workflow

  1. Take the order in Communications → Web orders
  2. If a payment slip was uploaded, open the order and verify or reject it
  3. Assign a directory customer (or create one)
  4. Convert to sale, opens POS with quotation lines, same as API quotes
  5. Complete the sale in POS