Developers

Blink Business API

Quote, book and track deliveries from your store or system. Sandbox, scoped keys, idempotency and signed webhooks.

Download openapi.yamlGet an API key

Blink API · v2.1.0 · 159 operations. Base URL: https://api-kirim.159-223-134-64.sslip.io

Orders

GET/v1/ordersbearer

List orders (newest first)

ParameterInTypeDescription
limitquerystring
beforequerystring
sandboxquerystring
Response 200
{
  "orders": [
    {
      "id": "5b1e…",
      "code": "string",
      "external_ref": "string",
      "status": "pending_payment",
      "vehicle_type": "motorcycle",
      "fare_sen": 0,
      "payment_method": "string",
      "cod_amount_sen": 0,
      "sandbox": false,
      "scheduled_at": "2026-10-26T08:00:00.000Z",
      "driver_id": "string",
      "track_token": "string",
      "district": "string",
      "created_at": "2026-10-26T08:00:00.000Z"
    }
  ]
}
200 · OKdefault · Error
POST/v1/ordersbearer

Create (book) an order

Needs orders:write. With a blink_test_ key the order is a sandbox order (never dispatched, no ledger).

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "vehicle": "motorcycle",
  "paymentMethod": "credit",
  "externalRef": "WC-10421",
  "stops": [
    {
      "address": "Warehouse, Bandar Sunway",
      "lat": 3.0733,
      "lng": 101.6078,
      "contactName": "Store",
      "contactPhone": "0123456789"
    },
    {
      "address": "12 Jalan SS2/24, Petaling Jaya",
      "lat": 3.118,
      "lng": 101.623,
      "contactName": "Aisyah",
      "contactPhone": "0172223344"
    }
  ]
}
Response 201
{
  "order": {
    "id": "5b1e…",
    "code": "string",
    "external_ref": "string",
    "status": "pending_payment",
    "vehicle_type": "motorcycle",
    "fare_sen": 0,
    "payment_method": "string",
    "cod_amount_sen": 0,
    "sandbox": false,
    "scheduled_at": "2026-10-26T08:00:00.000Z",
    "driver_id": "string",
    "track_token": "string",
    "district": "string",
    "created_at": "2026-10-26T08:00:00.000Z"
  },
  "stops": [
    {}
  ],
  "items": [
    {}
  ],
  "events": [
    {
      "status": "string",
      "note": "string",
      "at": "2026-10-26T08:00:00.000Z"
    }
  ],
  "adjustments": [
    {}
  ],
  "trackUrl": "string",
  "geometry": [
    null
  ],
  "eta": {},
  "duplicate": false,
  "checkoutUrl": "string"
}
201 · OKdefault · Error
GET/v1/orders/{code}bearer

Order with stops, items, events, driver and trackUrl

ParameterInTypeDescription
code *pathstring
Response 200
{
  "order": {
    "id": "5b1e…",
    "code": "string",
    "external_ref": "string",
    "status": "pending_payment",
    "vehicle_type": "motorcycle",
    "fare_sen": 0,
    "payment_method": "string",
    "cod_amount_sen": 0,
    "sandbox": false,
    "scheduled_at": "2026-10-26T08:00:00.000Z",
    "driver_id": "string",
    "track_token": "string",
    "district": "string",
    "created_at": "2026-10-26T08:00:00.000Z"
  },
  "stops": [
    {}
  ],
  "items": [
    {}
  ],
  "events": [
    {
      "status": "string",
      "note": "string",
      "at": "2026-10-26T08:00:00.000Z"
    }
  ],
  "adjustments": [
    {}
  ],
  "trackUrl": "string",
  "geometry": [
    null
  ],
  "eta": {},
  "duplicate": false,
  "checkoutUrl": "string"
}
200 · OKdefault · Error
POST/v1/orders/{code}/cancelbearer

Cancel an order

ParameterInTypeDescription
code *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "reason": "string"
}
Response 200
{}
200 · OKdefault · Error
POST/v1/orders/{code}/prioritybearer

Add a priority fee while searching

ParameterInTypeDescription
code *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "addSen": 0
}
Response 200
{}
200 · OKdefault · Error
GET/v1/orders/{code}/messagesbearer

Chat with the driver

ParameterInTypeDescription
code *pathstring
Response 200
{}
200 · OKdefault · Error
POST/v1/orders/{code}/messagesbearer

Send a chat message

ParameterInTypeDescription
code *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "body": "string"
}
Response 200
{}
200 · OKdefault · Error
POST/v1/orders/{code}/ratebearer

Rate the driver after delivery

ParameterInTypeDescription
code *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "stars": 0,
  "comment": "string"
}
Response 200
{}
200 · OKdefault · Error

Quotes

GET/v1/vehiclespublic

Vehicle tiers with rate card

Response 200
[
  {}
]
200 · OKdefault · Error
POST/v1/quotepublic

Price a route (no booking)

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "vehicle": "motorcycle",
  "stops": [
    {
      "address": "Warehouse, Bandar Sunway",
      "lat": 3.0733,
      "lng": 101.6078,
      "contactName": "Store",
      "contactPhone": "0123456789"
    },
    {
      "address": "12 Jalan SS2/24, Petaling Jaya",
      "lat": 3.118,
      "lng": 101.623,
      "contactName": "Aisyah",
      "contactPhone": "0172223344"
    }
  ],
  "optimize": true
}
Response 200
{
  "vehicle": "motorcycle",
  "total": 0,
  "lines": [
    {
      "label": "string",
      "amount": 0
    }
  ],
  "distanceKm": 0,
  "durationMin": 0,
  "pickupEtaMin": 0,
  "order": [
    0
  ],
  "stops": [
    {
      "address": "string",
      "lat": 0,
      "lng": 0,
      "contactName": "string",
      "contactPhone": "string",
      "notes": "string",
      "kind": "pickup",
      "ref": "string",
      "windowStart": "2026-10-26T08:00:00.000Z",
      "windowEnd": "2026-10-26T08:00:00.000Z",
      "serviceMin": 0,
      "codAmountSen": 0
    }
  ],
  "schedule": [
    {}
  ],
  "lateStops": 0,
  "surge": 0,
  "district": "string",
  "routeSource": "string"
}
200 · OKdefault · Error
POST/v1/route/optimizebearer

Reorder stops for the shortest route (first stop fixed)

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "stops": [
    {
      "address": "string",
      "lat": 0,
      "lng": 0,
      "contactName": "string",
      "contactPhone": "string",
      "notes": "string",
      "kind": "pickup",
      "ref": "string",
      "windowStart": "2026-10-26T08:00:00.000Z",
      "windowEnd": "2026-10-26T08:00:00.000Z",
      "serviceMin": 0,
      "codAmountSen": 0
    }
  ]
}
Response 200
{}
200 · OKdefault · Error

Stops

PATCH/v1/orders/{code}/stops/{seq}bearer

Edit a stop (details, window, address before arrival)

ParameterInTypeDescription
code *pathstring
seq *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "ref": "string",
  "contactName": "string",
  "contactPhone": "string",
  "notes": "string",
  "windowStart": "string",
  "windowEnd": "string",
  "address": "string",
  "lat": 0,
  "lng": 0
}
Response 200
{}
200 · OKdefault · Error
POST/v1/orders/{code}/stopsbearer

Add a stop (with items)

ParameterInTypeDescription
code *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "stop": {
    "address": "string",
    "lat": 0,
    "lng": 0,
    "contactName": "string",
    "contactPhone": "string",
    "notes": "string",
    "kind": "pickup",
    "ref": "string",
    "windowStart": "2026-10-26T08:00:00.000Z",
    "windowEnd": "2026-10-26T08:00:00.000Z",
    "serviceMin": 0,
    "codAmountSen": 0
  },
  "items": [
    {}
  ]
}
Response 200
{}
200 · OKdefault · Error
POST/v1/orders/{code}/stops/{seq}/cancelbearer

Cancel one stop

ParameterInTypeDescription
code *pathstring
seq *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "reason": "string"
}
Response 200
{}
200 · OKdefault · Error
POST/v1/orders/{code}/stops/{seq}/reattemptbearer

Retry a failed drop-off

ParameterInTypeDescription
code *pathstring
seq *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "windowStart": "string",
  "windowEnd": "string"
}
Response 200
{}
200 · OKdefault · Error

Business

GET/v1/business/accountbearer

Business account, amount owed and COD payable

Response 200
{}
200 · OKdefault · Error
GET/v1/business/analyticsbearer

Daily orders and spend (reports scope)

ParameterInTypeDescription
daysquerystring
Response 200
{}
200 · OKdefault · Error
GET/v1/business/reports/stopsbearer

Delivery performance by stop (reports scope)

ParameterInTypeDescription
daysquerystring
Response 200
{}
200 · OKdefault · Error
GET/v1/business/invoicesbearer

Monthly invoices

Response 200
{}
200 · OKdefault · Error
GET/v1/business/invoices/{month}bearer

Invoice lines for YYYY-MM

ParameterInTypeDescription
month *pathstring
Response 200
{}
200 · OKdefault · Error
GET/v1/business/membersbearer

Team members (portal)

Response 200
{}
200 · OKdefault · Error
POST/v1/business/membersbearer

Add a team member (business admin)

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "phone": "string",
  "name": "string",
  "role": "admin"
}
Response 201
{}
201 · OKdefault · Error
DELETE/v1/business/members/{userId}bearer

Remove a team member

ParameterInTypeDescription
userId *pathstring
Response 200
{}
200 · OKdefault · Error
POST/v1/business/orders/bulkbearer

Create up to 500 orders (idempotent per externalRef)

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
[
  {
    "vehicle": "motorcycle",
    "stops": [
      {
        "address": "string",
        "lat": 0,
        "lng": 0,
        "contactName": "string",
        "contactPhone": "string",
        "notes": "string",
        "kind": "pickup",
        "ref": "string",
        "windowStart": "2026-10-26T08:00:00.000Z",
        "windowEnd": "2026-10-26T08:00:00.000Z",
        "serviceMin": 0,
        "codAmountSen": 0
      }
    ],
    "addOns": [
      "string"
    ],
    "optimize": false,
    "priorityFeeSen": 0,
    "items": [
      {
        "name": "string",
        "sku": "string",
        "qty": 1,
        "weightKg": 0,
        "notes": "string",
        "from": 0,
        "to": 0
      }
    ],
    "scheduledAt": "2026-10-26T08:00:00.000Z",
    "promoCode": "string",
    "paymentMethod": "online",
    "codAmountSen": 0,
    "externalRef": "string"
  }
]
Response 200
{}
200 · OKdefault · Error
GET/v1/business/recipientsbearer

Past recipients and saved places

ParameterInTypeDescription
qquerystring
limitquerystring
Response 200
{}
200 · OKdefault · Error

Planning

GET/v1/business/calendarbearer

Scheduled orders and upcoming recurring runs (up to 6 weeks)

ParameterInTypeDescription
from *querystring
to *querystring
Response 200
{}
200 · OKdefault · Error
GET/v1/business/import-mappingsbearer

Saved spreadsheet column mappings

Response 200
{}
200 · OKdefault · Error
PUT/v1/business/import-mappings/{name}bearer

Save a header → field mapping

ParameterInTypeDescription
name *pathstring
Request
{
  "mapping": {},
  "headers": [
    "string"
  ]
}
Response 200
{}
200 · OKdefault · Error
DELETE/v1/business/import-mappings/{name}bearer

Delete a mapping

ParameterInTypeDescription
name *pathstring
Response 200
{}
200 · OKdefault · Error
POST/v1/business/plan-daybearer

Split a day of drop-offs (up to 5 pickups, 200 drops) into vehicle runs

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "pickups": [
    {
      "address": "string",
      "lat": 0,
      "lng": 0,
      "contactName": "string",
      "contactPhone": "string",
      "notes": "string",
      "kind": "pickup",
      "ref": "string",
      "windowStart": "2026-10-26T08:00:00.000Z",
      "windowEnd": "2026-10-26T08:00:00.000Z",
      "serviceMin": 0,
      "codAmountSen": 0
    }
  ],
  "drops": [
    {
      "address": "string",
      "lat": 0,
      "lng": 0,
      "contactName": "string",
      "contactPhone": "string",
      "notes": "string",
      "kind": "pickup",
      "ref": "string",
      "windowStart": "2026-10-26T08:00:00.000Z",
      "windowEnd": "2026-10-26T08:00:00.000Z",
      "serviceMin": 0,
      "codAmountSen": 0
    }
  ],
  "vehicle": "string",
  "maxStopsPerRun": 0,
  "startAt": "2026-10-26T08:00:00.000Z",
  "runs": [
    [
      0
    ]
  ]
}
Response 200
{}
200 · OKdefault · Error
POST/v1/business/plan-day/bookbearer

Book planned runs

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "runs": [
    {
      "vehicle": "motorcycle",
      "stops": [
        {
          "address": "string",
          "lat": 0,
          "lng": 0,
          "contactName": "string",
          "contactPhone": "string",
          "notes": "string",
          "kind": "pickup",
          "ref": "string",
          "windowStart": "2026-10-26T08:00:00.000Z",
          "windowEnd": "2026-10-26T08:00:00.000Z",
          "serviceMin": 0,
          "codAmountSen": 0
        }
      ],
      "items": [
        {
          "name": "string",
          "sku": "string",
          "qty": 1,
          "weightKg": 0,
          "notes": "string",
          "from": 0,
          "to": 0
        }
      ]
    }
  ],
  "paymentMethod": "credit",
  "scheduledAt": "string",
  "ref": "string"
}
Response 200
{}
200 · OKdefault · Error

Recurring

GET/v1/business/recurringbearer

Recurring runs

Response 200
{
  "recurring": [
    {
      "id": "string",
      "name": "string",
      "payload": {
        "vehicle": "motorcycle",
        "stops": [
          {
            "address": null,
            "lat": null,
            "lng": null,
            "contactName": null,
            "contactPhone": null,
            "notes": null,
            "kind": null,
            "ref": null,
            "windowStart": null,
            "windowEnd": null,
            "serviceMin": null,
            "codAmountSen": null
          }
        ],
        "addOns": [
          "string"
        ],
        "optimize": false,
        "priorityFeeSen": 0,
        "items": [
          {
            "name": null,
            "sku": null,
            "qty": null,
            "weightKg": null,
            "notes": null,
            "from": null,
            "to": null
          }
        ],
        "scheduledAt": "2026-10-26T08:00:00.000Z",
        "promoCode": "string",
        "paymentMethod": "online",
        "codAmountSen": 0,
        "externalRef": "string"
      },
      "days": [
        0
      ],
      "timeOfDay": "string",
      "active": false,
      "leadMin": 0,
      "bookAt": "string",
      "nextRunAt": "string",
      "lastRunAt": "string",
      "lastOrderCode": "string",
      "lastError": "string"
    }
  ]
}
200 · OKdefault · Error
POST/v1/business/recurringbearer

Create a recurring run

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "name": "string",
  "payload": {
    "vehicle": "motorcycle",
    "stops": [
      {
        "address": "string",
        "lat": 0,
        "lng": 0,
        "contactName": "string",
        "contactPhone": "string",
        "notes": "string",
        "kind": "pickup",
        "ref": "string",
        "windowStart": "2026-10-26T08:00:00.000Z",
        "windowEnd": "2026-10-26T08:00:00.000Z",
        "serviceMin": 0,
        "codAmountSen": 0
      }
    ],
    "addOns": [
      "string"
    ],
    "optimize": false,
    "priorityFeeSen": 0,
    "items": [
      {
        "name": "string",
        "sku": "string",
        "qty": 1,
        "weightKg": 0,
        "notes": "string",
        "from": 0,
        "to": 0
      }
    ],
    "scheduledAt": "2026-10-26T08:00:00.000Z",
    "promoCode": "string",
    "paymentMethod": "online",
    "codAmountSen": 0,
    "externalRef": "string"
  },
  "days": [
    0
  ],
  "timeOfDay": "string",
  "active": false,
  "leadMin": 0
}
Response 201
{
  "recurring": {
    "id": "string",
    "name": "string",
    "payload": {
      "vehicle": "motorcycle",
      "stops": [
        {
          "address": "string",
          "lat": 0,
          "lng": 0,
          "contactName": "string",
          "contactPhone": "string",
          "notes": "string",
          "kind": "pickup",
          "ref": "string",
          "windowStart": "2026-10-26T08:00:00.000Z",
          "windowEnd": "2026-10-26T08:00:00.000Z",
          "serviceMin": 0,
          "codAmountSen": 0
        }
      ],
      "addOns": [
        "string"
      ],
      "optimize": false,
      "priorityFeeSen": 0,
      "items": [
        {
          "name": "string",
          "sku": "string",
          "qty": 1,
          "weightKg": 0,
          "notes": "string",
          "from": 0,
          "to": 0
        }
      ],
      "scheduledAt": "2026-10-26T08:00:00.000Z",
      "promoCode": "string",
      "paymentMethod": "online",
      "codAmountSen": 0,
      "externalRef": "string"
    },
    "days": [
      0
    ],
    "timeOfDay": "string",
    "active": false,
    "leadMin": 0,
    "bookAt": "string",
    "nextRunAt": "string",
    "lastRunAt": "string",
    "lastOrderCode": "string",
    "lastError": "string"
  }
}
201 · OKdefault · Error
PATCH/v1/business/recurring/{id}bearer

Update / pause a recurring run

ParameterInTypeDescription
id *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "name": "string",
  "payload": {
    "vehicle": "motorcycle",
    "stops": [
      {
        "address": "string",
        "lat": 0,
        "lng": 0,
        "contactName": "string",
        "contactPhone": "string",
        "notes": "string",
        "kind": "pickup",
        "ref": "string",
        "windowStart": "2026-10-26T08:00:00.000Z",
        "windowEnd": "2026-10-26T08:00:00.000Z",
        "serviceMin": 0,
        "codAmountSen": 0
      }
    ],
    "addOns": [
      "string"
    ],
    "optimize": false,
    "priorityFeeSen": 0,
    "items": [
      {
        "name": "string",
        "sku": "string",
        "qty": 1,
        "weightKg": 0,
        "notes": "string",
        "from": 0,
        "to": 0
      }
    ],
    "scheduledAt": "2026-10-26T08:00:00.000Z",
    "promoCode": "string",
    "paymentMethod": "online",
    "codAmountSen": 0,
    "externalRef": "string"
  },
  "days": [
    0
  ],
  "timeOfDay": "string",
  "active": false,
  "leadMin": 0
}
Response 200
{}
200 · OKdefault · Error
DELETE/v1/business/recurring/{id}bearer

Delete a recurring run

ParameterInTypeDescription
id *pathstring
Response 200
{}
200 · OKdefault · Error

Developer

GET/v1/business/keysbearer

API keys (portal)

Response 200
{
  "keys": [
    {
      "id": "5b1e…",
      "prefix": "string",
      "name": "string",
      "kind": "secret",
      "mode": "live",
      "scopes": [
        "orders:read"
      ],
      "lastUsedAt": "string",
      "lastUsedIp": "string",
      "expiresAt": "string",
      "ipAllowlist": [
        "string"
      ],
      "domains": [
        "string"
      ],
      "widget": {},
      "revokedAt": "string",
      "createdAt": "2026-10-26T08:00:00.000Z"
    }
  ],
  "scopes": [
    "string"
  ]
}
200 · OKdefault · Error
POST/v1/business/keysbearer

Create an API key (business admin, portal only)

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "name": "Shop backend",
  "mode": "test",
  "scopes": [
    "orders:read",
    "orders:write",
    "quotes"
  ],
  "expiresInDays": 90
}
Response 201
{
  "key": "string",
  "apiKey": {
    "id": "5b1e…",
    "prefix": "string",
    "name": "string",
    "kind": "secret",
    "mode": "live",
    "scopes": [
      "orders:read"
    ],
    "lastUsedAt": "string",
    "lastUsedIp": "string",
    "expiresAt": "string",
    "ipAllowlist": [
      "string"
    ],
    "domains": [
      "string"
    ],
    "widget": {},
    "revokedAt": "string",
    "createdAt": "2026-10-26T08:00:00.000Z"
  }
}
201 · OKdefault · Error
PATCH/v1/business/keys/{id}bearer

Change name, scopes, expiry, IP allowlist, domains, widget config

ParameterInTypeDescription
id *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "name": "string",
  "kind": "secret",
  "mode": "live",
  "scopes": [
    "string"
  ],
  "expiresAt": "2026-10-26T08:00:00.000Z",
  "expiresInDays": 0,
  "ipAllowlist": [
    "string"
  ],
  "domains": [
    "string"
  ],
  "widget": {
    "pickup": {
      "address": "string",
      "lat": 0,
      "lng": 0,
      "contactName": "string",
      "contactPhone": "string",
      "notes": "string",
      "kind": "pickup",
      "ref": "string",
      "windowStart": "2026-10-26T08:00:00.000Z",
      "windowEnd": "2026-10-26T08:00:00.000Z",
      "serviceMin": 0,
      "codAmountSen": 0
    },
    "vehicle": "motorcycle",
    "requireApproval": false,
    "maxFeeSen": 0
  }
}
Response 200
{}
200 · OKdefault · Error
DELETE/v1/business/keys/{id}bearer

Revoke a key

ParameterInTypeDescription
id *pathstring
Response 200
{}
200 · OKdefault · Error

Webhooks

PUT/v1/business/webhookbearer

v1: set the primary webhook URL (mirrors the legacy endpoint)

Request
{
  "url": "string"
}
Response 200
{}
200 · OKdefault · Error
GET/v1/business/webhooksbearer

Webhook endpoints with 7-day stats and the event catalogue

Response 200
{
  "endpoints": [
    {
      "id": "5b1e…",
      "url": "string",
      "description": "string",
      "events": [
        "string"
      ],
      "mode": "live",
      "active": false,
      "maxAttempts": 0,
      "legacy": false,
      "secret": "string",
      "createdAt": "2026-10-26T08:00:00.000Z",
      "stats": {}
    }
  ],
  "events": [
    "string"
  ],
  "signatureVersion": "string"
}
200 · OKdefault · Error
POST/v1/business/webhooksbearer

Add an endpoint

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "url": "https://shop.example.my/blink/webhook",
  "events": [
    "order.*"
  ],
  "mode": "live",
  "maxAttempts": 8
}
Response 201
{
  "endpoint": {
    "id": "5b1e…",
    "url": "string",
    "description": "string",
    "events": [
      "string"
    ],
    "mode": "live",
    "active": false,
    "maxAttempts": 0,
    "legacy": false,
    "secret": "string",
    "createdAt": "2026-10-26T08:00:00.000Z",
    "stats": {}
  }
}
201 · OKdefault · Error
PATCH/v1/business/webhooks/{id}bearer

Update an endpoint

ParameterInTypeDescription
id *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "url": "string",
  "description": "string",
  "events": [
    "string"
  ],
  "mode": "all",
  "active": false,
  "maxAttempts": 8
}
Response 200
{}
200 · OKdefault · Error
DELETE/v1/business/webhooks/{id}bearer

Delete an endpoint

ParameterInTypeDescription
id *pathstring
Response 200
{}
200 · OKdefault · Error
POST/v1/business/webhooks/{id}/rotate-secretbearer

Rotate the signing secret

ParameterInTypeDescription
id *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
POST/v1/business/webhooks/{id}/testbearer

Send a test event to one endpoint

ParameterInTypeDescription
id *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "event": "test.ping"
}
Response 200
{}
200 · OKdefault · Error
GET/v1/business/webhooks/deliveriesbearer

Delivery log

ParameterInTypeDescription
endpointquerystring
statusquerystring
eventquerystring
beforequerystring
limitquerystring
Response 200
{
  "deliveries": [
    {
      "id": "string",
      "endpointId": "string",
      "url": "string",
      "event": "string",
      "status": "pending",
      "attempts": 0,
      "lastStatus": 0,
      "lastLatencyMs": 0,
      "lastError": "string",
      "nextAttemptAt": "string",
      "deliveredAt": "string",
      "sandbox": false,
      "replayOf": "string",
      "createdAt": "2026-10-26T08:00:00.000Z"
    }
  ]
}
200 · OKdefault · Error
GET/v1/business/webhooks/deliveries/{id}bearer

Delivery with payload and every attempt (headers, status, latency, response)

ParameterInTypeDescription
id *pathstring
Response 200
{}
200 · OKdefault · Error
POST/v1/business/webhooks/deliveries/{id}/replaybearer

Replay a delivery (new delivery of the same payload)

ParameterInTypeDescription
id *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error

Sandbox

GET/v1/sandboxbearer

Sandbox info for the caller

Response 200
{}
200 · OKdefault · Error
POST/v1/sandbox/orders/{code}/statusbearer

Force a sandbox order to a status (fires every webhook in between)

ParameterInTypeDescription
code *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "status": "delivered"
}
Response 200
{
  "order": {
    "id": "5b1e…",
    "code": "string",
    "external_ref": "string",
    "status": "pending_payment",
    "vehicle_type": "motorcycle",
    "fare_sen": 0,
    "payment_method": "string",
    "cod_amount_sen": 0,
    "sandbox": false,
    "scheduled_at": "2026-10-26T08:00:00.000Z",
    "driver_id": "string",
    "track_token": "string",
    "district": "string",
    "created_at": "2026-10-26T08:00:00.000Z"
  },
  "stops": [
    {}
  ],
  "items": [
    {}
  ],
  "events": [
    {
      "status": "string",
      "note": "string",
      "at": "2026-10-26T08:00:00.000Z"
    }
  ],
  "adjustments": [
    {}
  ],
  "trackUrl": "string",
  "geometry": [
    null
  ],
  "eta": {},
  "duplicate": false,
  "checkoutUrl": "string"
}
200 · OKdefault · Error

Widgets

GET/v1/business/widget-requestsbearer

Booking-widget requests

ParameterInTypeDescription
statusquerystring
Response 200
{}
200 · OKdefault · Error
POST/v1/business/widget-requests/{id}/approvebearer

Approve and book (credit)

ParameterInTypeDescription
id *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
POST/v1/business/widget-requests/{id}/rejectbearer

Decline a request

ParameterInTypeDescription
id *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "reason": "string"
}
Response 200
{}
200 · OKdefault · Error
GET/v1/widget/configpublishable

Widget config for a publishable key

ParameterInTypeDescription
keyquerystring
Response 200
{}
200 · OKdefault · Error
POST/v1/widget/quotepublishable

Delivery fee + ETA to an address

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "to": {
    "address": "SS2, Petaling Jaya",
    "lat": 3.118,
    "lng": 101.623
  }
}
Response 200
{
  "vehicle": "string",
  "totalSen": 0,
  "currency": "string",
  "distanceKm": 0,
  "durationMin": 0,
  "etaMin": 0,
  "sandbox": false
}
200 · OKdefault · Error
POST/v1/widget/requestspublishable

Customer requests a delivery charged to the merchant

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "key": "string",
  "from": {
    "address": "string",
    "lat": 0,
    "lng": 0,
    "contactName": "string",
    "contactPhone": "string",
    "notes": "string",
    "kind": "pickup",
    "ref": "string",
    "windowStart": "2026-10-26T08:00:00.000Z",
    "windowEnd": "2026-10-26T08:00:00.000Z",
    "serviceMin": 0,
    "codAmountSen": 0
  },
  "to": {
    "address": "string",
    "lat": 0,
    "lng": 0,
    "contactName": "string",
    "contactPhone": "string",
    "notes": "string",
    "kind": "pickup",
    "ref": "string",
    "windowStart": "2026-10-26T08:00:00.000Z",
    "windowEnd": "2026-10-26T08:00:00.000Z",
    "serviceMin": 0,
    "codAmountSen": 0
  },
  "vehicle": "motorcycle",
  "requester": {
    "name": "string",
    "phone": "string"
  },
  "note": "string",
  "scheduledAt": "string"
}
Response 201
{}
201 · OKdefault · Error
GET/v1/widget/requests/{id}publishable

Request status (+ trackUrl once booked)

ParameterInTypeDescription
id *pathstring
Response 200
{}
200 · OKdefault · Error

Driver

POST/v1/driver/registerbearer

Register as a driver

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "vehicleType": "motorcycle",
  "plate": "string",
  "name": "string"
}
Response 200
{}
200 · OKdefault · Error
POST/v1/driver/onlinebearer

Go online / offline

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "online": false,
  "lat": 0,
  "lng": 0
}
Response 200
{}
200 · OKdefault · Error
POST/v1/driver/locationbearer

Batch location pings

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
[
  {
    "lat": 0,
    "lng": 0,
    "ts": 0
  }
]
Response 200
{}
200 · OKdefault · Error
POST/v1/driver/offers/{orderId}/declinebearer

Decline an offer

ParameterInTypeDescription
orderId *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
POST/v1/driver/offers/{orderId}/acceptbearer

Accept an offer

ParameterInTypeDescription
orderId *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
GET/v1/driver/currentbearer

Current job

Response 200
{}
200 · OKdefault · Error
POST/v1/driver/orders/{id}/statusbearer

Advance order status

ParameterInTypeDescription
id *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "status": "string",
  "podRecipient": "string",
  "note": "string"
}
Response 200
{}
200 · OKdefault · Error
POST/v1/driver/orders/{id}/stops/{seq}/arrivebearer

Arrive at a stop

ParameterInTypeDescription
id *pathstring
seq *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
POST/v1/driver/orders/{id}/stops/{seq}/completebearer

Complete or fail a stop

ParameterInTypeDescription
id *pathstring
seq *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "failed": false,
  "failReason": "string",
  "podRecipient": "string"
}
Response 200
{}
200 · OKdefault · Error
GET/v1/driver/orders/{id}/planbearer

Remaining stop plan

ParameterInTypeDescription
id *pathstring
Response 200
{}
200 · OKdefault · Error
POST/v1/driver/orders/{id}/planbearer

Re-plan remaining stops

ParameterInTypeDescription
id *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
POST/v1/driver/orders/{id}/podbearer

Upload proof-of-delivery photo (multipart)

ParameterInTypeDescription
id *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
GET/v1/driver/walletbearer

Earnings wallet

Response 200
{}
200 · OKdefault · Error
GET/v1/driver/boardbearer

Open orders board

Response 200
{}
200 · OKdefault · Error
POST/v1/driver/board/{orderId}/takebearer

Take an order from the board

ParameterInTypeDescription
orderId *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
GET/v1/driver/demandbearer

Demand map

Response 200
{}
200 · OKdefault · Error
GET/v1/driver/documentsbearer

Documents

Response 200
{}
200 · OKdefault · Error
POST/v1/driver/documentsbearer

Upload a document (multipart)

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
GET/v1/driver/bankbearer

Bank details

Response 200
{}
200 · OKdefault · Error
PUT/v1/driver/bankbearer

Set bank details

Request
{
  "bankName": "string",
  "accountNo": "string",
  "accountName": "string"
}
Response 200
{}
200 · OKdefault · Error
GET/v1/driver/payoutsbearer

Payouts

Response 200
{}
200 · OKdefault · Error
POST/v1/driver/sosbearer

Raise an SOS

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "lat": 0,
  "lng": 0,
  "note": "string"
}
Response 200
{}
200 · OKdefault · Error
GET/v1/driver/orders/{id}/messagesbearer

Chat messages

ParameterInTypeDescription
id *pathstring
Response 200
{}
200 · OKdefault · Error
POST/v1/driver/orders/{id}/messagesbearer

Send chat message

ParameterInTypeDescription
id *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "body": "string"
}
Response 200
{}
200 · OKdefault · Error
POST/v1/driver/orders/{id}/rate-customerbearer

Rate the customer

ParameterInTypeDescription
id *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "stars": 0
}
Response 200
{}
200 · OKdefault · Error

Admin

GET/v1/admin/overviewbearer

Today at a glance

Response 200
{}
200 · OKdefault · Error
GET/v1/admin/analyticsbearer

Platform analytics

Response 200
{}
200 · OKdefault · Error
GET/v1/admin/ordersbearer

Search / list orders

Response 200
{}
200 · OKdefault · Error
GET/v1/admin/orders/{code}bearer

Order detail

ParameterInTypeDescription
code *pathstring
Response 200
{}
200 · OKdefault · Error
POST/v1/admin/orders/{code}/statusbearer

Force order status

ParameterInTypeDescription
code *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
POST/v1/admin/orders/{code}/redispatchbearer

Re-dispatch

ParameterInTypeDescription
code *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
PATCH/v1/admin/orders/{code}/stops/{seq}bearer

Edit a stop

ParameterInTypeDescription
code *pathstring
seq *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
POST/v1/admin/orders/{code}/stopsbearer

Add a stop

ParameterInTypeDescription
code *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
POST/v1/admin/orders/{code}/stops/{seq}/cancelbearer

Cancel a stop

ParameterInTypeDescription
code *pathstring
seq *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
POST/v1/admin/orders/{code}/stops/{seq}/reattemptbearer

Re-attempt a stop

ParameterInTypeDescription
code *pathstring
seq *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
POST/v1/admin/orders/{code}/stops/{seq}/statusbearer

Force-complete / fail a stop

ParameterInTypeDescription
code *pathstring
seq *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
POST/v1/admin/orders/{code}/adjustbearer

Price adjustment

ParameterInTypeDescription
code *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
GET/v1/admin/orders/{code}/supportbearer

Notes and tickets for an order

ParameterInTypeDescription
code *pathstring
Response 200
{}
200 · OKdefault · Error
POST/v1/admin/orders/{code}/notesbearer

Internal note

ParameterInTypeDescription
code *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
GET/v1/admin/ticketsbearer

Support queue

Response 200
{}
200 · OKdefault · Error
POST/v1/admin/ticketsbearer

Open a ticket

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
GET/v1/admin/tickets/{code}bearer

Ticket

ParameterInTypeDescription
code *pathstring
Response 200
{}
200 · OKdefault · Error
PATCH/v1/admin/tickets/{code}bearer

Assign / change status

ParameterInTypeDescription
code *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
POST/v1/admin/tickets/{code}/replybearer

Reply

ParameterInTypeDescription
code *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
GET/v1/admin/routes/livebearer

Live route board

Response 200
{}
200 · OKdefault · Error
GET/v1/admin/reports/stopsbearer

Stop reports

Response 200
{}
200 · OKdefault · Error
GET/v1/admin/driversbearer

Drivers

Response 200
{}
200 · OKdefault · Error
GET/v1/admin/drivers/livebearer

Online drivers

Response 200
{}
200 · OKdefault · Error
POST/v1/admin/drivers/{id}/statusbearer

Approve / suspend

ParameterInTypeDescription
id *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
GET/v1/admin/businessesbearer

Businesses

Response 200
{}
200 · OKdefault · Error
POST/v1/admin/businessesbearer

Create a business

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
GET/v1/admin/drivers/{id}/documentsbearer

Driver documents

ParameterInTypeDescription
id *pathstring
Response 200
{}
200 · OKdefault · Error
POST/v1/admin/documents/{id}/statusbearer

Review a document

ParameterInTypeDescription
id *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
POST/v1/admin/payouts/runbearer

Run payouts

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
GET/v1/admin/payoutsbearer

Payouts

Response 200
{}
200 · OKdefault · Error
POST/v1/admin/payouts/{id}/paidbearer

Mark payout paid

ParameterInTypeDescription
id *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
GET/v1/admin/payouts/export.csvbearer

Payouts CSV

Response 200
{}
200 · OKdefault · Error
GET/v1/admin/invoicesbearer

Invoices

Response 200
{}
200 · OKdefault · Error
POST/v1/admin/invoices/{businessId}/{month}/paidbearer

Mark invoice paid

ParameterInTypeDescription
businessId *pathstring
month *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
POST/v1/admin/adminsbearer

Add an ops admin

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
GET/v1/admin/auditbearer

Audit log

Response 200
{}
200 · OKdefault · Error
GET/v1/admin/sosbearer

SOS alerts

Response 200
{}
200 · OKdefault · Error
POST/v1/admin/sos/{id}/resolvebearer

Resolve SOS

ParameterInTypeDescription
id *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error

Super

GET/v1/super/settingsbearer

Platform settings

Response 200
{}
200 · OKdefault · Error
PUT/v1/super/settings/{key}bearer

Change a setting

ParameterInTypeDescription
key *pathstring
Request
{}
Response 200
{}
200 · OKdefault · Error
GET/v1/super/districtsbearer

Districts

Response 200
{}
200 · OKdefault · Error
GET/v1/super/adminsbearer

Admins

Response 200
{}
200 · OKdefault · Error
POST/v1/super/adminsbearer

Add admin

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
PATCH/v1/super/admins/{id}bearer

Update admin

ParameterInTypeDescription
id *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
DELETE/v1/super/admins/{id}bearer

Remove admin

ParameterInTypeDescription
id *pathstring
Response 200
{}
200 · OKdefault · Error
GET/v1/super/financebearer

Finance

Response 200
{}
200 · OKdefault · Error
GET/v1/super/systembearer

System health and queues

Response 200
{}
200 · OKdefault · Error
GET/v1/super/usersbearer

Users

Response 200
{}
200 · OKdefault · Error
GET/v1/super/users/{id}bearer

User detail

ParameterInTypeDescription
id *pathstring
Response 200
{}
200 · OKdefault · Error
POST/v1/super/users/{id}/logoutbearer

Force logout

ParameterInTypeDescription
id *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
GET/v1/super/insightsbearer

ETA insights

Response 200
{}
200 · OKdefault · Error
POST/v1/super/insights/rebuildbearer

Rebuild insights

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
GET/v1/super/promosbearer

Promo codes

Response 200
{}
200 · OKdefault · Error
POST/v1/super/promosbearer

Create promo

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
PATCH/v1/super/promos/{code}bearer

Update promo

ParameterInTypeDescription
code *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error

Public

GET/healthpublic

Health check

Response 200
{}
200 · OKdefault · Error
GET/v1/configpublic

Public feature flags

Response 200
{}
200 · OKdefault · Error
POST/v1/auth/otppublic

Send a sign-in code by SMS

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "phone": "string"
}
Response 200
{}
200 · OKdefault · Error
POST/v1/auth/verifypublic

Exchange the code for a JWT

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "phone": "string",
  "code": "string",
  "name": "string"
}
Response 200
{}
200 · OKdefault · Error
POST/v1/auth/logout-allbearer

Revoke every session of the signed-in user

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{}
Response 200
{}
200 · OKdefault · Error
GET/v1/mebearer

Current user (or API-key principal)

Response 200
{}
200 · OKdefault · Error
GET/v1/places/autocompletepublic

Address suggestions (Malaysia)

ParameterInTypeDescription
q *querystring
Response 200
{}
200 · OKdefault · Error
GET/v1/places/{id}public

Resolve a place id to address + lat/lng

ParameterInTypeDescription
id *pathstring
Response 200
{}
200 · OKdefault · Error
POST/v1/payments/billplz/callbackpublic

Billplz payment callback (form encoded)

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Response 200
{}
200 · OKdefault · Error
GET/v1/payments/mock/{ref}/paypublic

Development only: mark a mock payment paid

ParameterInTypeDescription
ref *pathstring
Response 200
{}
200 · OKdefault · Error
GET/v1/track/{token}public

Public tracking (no phones, no prices)

ParameterInTypeDescription
token *pathstring
Response 200
{}
200 · OKdefault · Error
GET/v1/files/{folder}/{name}public

Uploaded media (proof of delivery, documents)

ParameterInTypeDescription
folder *pathstring
name *pathstring
Response 200
{}
200 · OKdefault · Error
GET/v1/wspublic

WebSocket: realtime events (token=JWT query)

Response 200
{}
200 · OKdefault · Error
GET/v1/ws/trackpublic

WebSocket: public tracking stream (token=track token)

Response 200
{}
200 · OKdefault · Error
GET/v1/me/placesbearer

Saved places

Response 200
{}
200 · OKdefault · Error
POST/v1/me/placesbearer

Save a place

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "label": "string",
  "address": "string",
  "lat": 0,
  "lng": 0,
  "contactName": "string",
  "contactPhone": "string"
}
Response 201
{}
201 · OKdefault · Error
DELETE/v1/me/places/{id}bearer

Delete a saved place

ParameterInTypeDescription
id *pathstring
Response 200
{}
200 · OKdefault · Error
GET/v1/me/ticketsbearer

My support tickets

Response 200
{}
200 · OKdefault · Error
POST/v1/me/ticketsbearer

Open a support ticket

ParameterInTypeDescription
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "category": "string",
  "subject": "string",
  "body": "string",
  "orderCode": "string"
}
Response 200
{}
200 · OKdefault · Error
GET/v1/me/tickets/{code}bearer

Ticket with messages

ParameterInTypeDescription
code *pathstring
Response 200
{}
200 · OKdefault · Error
POST/v1/me/tickets/{code}/replybearer

Reply to my ticket

ParameterInTypeDescription
code *pathstring
Idempotency-KeyheaderstringReplays the stored response for 24 h; same key with a different body = 422; still running = 409.
Request
{
  "body": "string"
}
Response 200
{}
200 · OKdefault · Error