Connect your custom storefront, WooCommerce, Shopify, or mobile application to automate incoming order management, courier waybill generation, and stock sync.
https://app.nexlymate.com/api/v1
Auth: Authorization: Bearer vs_live_...
Payload: application/json
Every HTTP request to the Nexlymate REST API must include your store's API Key. You can generate and view your API Key and Secret inside the Settings → Developer Options tab in your Nexlymate dashboard.
| Method | Header / Parameter | Example |
|---|---|---|
| Bearer Token (Recommended) | Authorization: Bearer <api_key> |
Authorization: Bearer vs_live_3f9b... |
| Custom Header | X-API-KEY: <api_key> |
X-API-KEY: vs_live_3f9b... |
| Optional Strict Secret | X-API-SECRET: <api_secret> |
X-API-SECRET: vss_live_e91a... |
curl -X GET https://app.nexlymate.com/api/v1/ping \
-H "Authorization: Bearer vs_live_your_api_key_here"
{
"success": true,
"message": "Nexlymate Developer API v1 is online and operational.",
"storeId": "store_9941a0",
"storeName": "Aura Fashion Lanka",
"timestamp": "2026-10-08T00:15:00.000Z"
}
Nexlymate OMS prevents accidental parcel mismatches by enforcing a strict immutability rule once an order is booked with a courier partner (such as Koombiyo, Domex, or Royal Express) and a waybill number is issued.
Dispatched, In-Transit, or Delivered:
PATCH /api/v1/orders/:id will be rejected with 409 Conflict (ORDER_COURIER_SYNCED).DELETE /api/v1/orders/:id will be rejected with 409 Conflict (ORDER_COURIER_SYNCED).POST /api/v1/orders/:id/unsync.
Send incoming checkout orders from your external WooCommerce, Shopify, or custom React/PHP website directly to Nexlymate OMS.
/api/v1/orders
| Field | Type | Status | Description & Example |
|---|---|---|---|
customerName |
String | Required | Customer's full name. e.g. "Kasun Wickramasinghe" |
phone |
String | Required | 10-digit Sri Lankan phone number. e.g. "0771234567" |
address |
String | Required | Delivery street address. e.g. "No 45/2 Galle Road" |
city |
String | Required | Delivery city. e.g. "Bambalapitiya" |
district |
String | Required | District for courier routing. e.g. "Colombo" |
items |
Array | Required | List of products: [ { "name": "Classic T-Shirt", "qty": 2, "price": 1500 } ] |
paymentMethod |
String | Optional | "COD", "Card", or "Bank". Defaults to "COD". |
shippingFee |
Number | Optional | Delivery charge in LKR. e.g. 350 |
notes |
String | Optional | Special delivery instructions for warehouse or courier. |
email |
String | Optional | Customer email for digital invoice delivery. |
{
"customerName": "Kasun Wickramasinghe",
"phone": "0771234567",
"address": "No 45/2 Galle Road, Bambalapitiya",
"city": "Colombo",
"district": "Colombo",
"items": [
{
"name": "Classic Heavyweight Tee - Black (L)",
"qty": 2,
"price": 2450.00
}
],
"shippingFee": 350.00,
"paymentMethod": "COD",
"notes": "Call customer before delivery"
}
{
"success": true,
"message": "Order created successfully.",
"order": {
"id": "ord_89f02a",
"orderId": "STO-10492",
"customerName": "Kasun Wickramasinghe",
"phone": "0771234567",
"totalPayable": 5250,
"paymentMethod": "COD",
"deliveryStatus": "Open",
"syncStatus": "Sync Not Started"
}
}
Fetch paginated orders from your store pipeline with filtering by delivery status and search keyword.
/api/v1/orders?page=1&limit=20&deliveryStatus=Open
{
"success": true,
"data": [
{
"id": "ord_89f02a",
"orderId": "STO-10492",
"customerName": "Kasun Wickramasinghe",
"phone": "0771234567",
"totalPayable": 5250,
"deliveryStatus": "Open",
"waybillNumber": ""
}
],
"pagination": {
"total": 142,
"page": 1,
"limit": 20,
"totalPages": 8
}
}
Inspect an individual order including live courier waybill tracking and customer contacts.
/api/v1/orders/:id
Update customer details, items, or notes. Blocked if the order is already synced to a courier.
/api/v1/orders/:id
409 Conflict (ORDER_COURIER_SYNCED).
Soft-deletes the order, restores allocated stock, and archives it into the order history archive.
/api/v1/orders/:id
Book a consignment with Koombiyo, Domex, or Royal Express and immediately receive an official tracking waybill number.
/api/v1/orders/:id/dispatch
{
"success": true,
"message": "Order dispatched successfully to koombiyo",
"courier": "koombiyo",
"waybillNumber": "KMB-COL-8829104",
"trackingUrl": "https://nexlymate.com/track?wb=KMB-COL-8829104"
}
Cancels the courier consignment with the courier partner and unlocks the order so that customer details or items can be modified again.
/api/v1/orders/:id/unsync
Query live product stock quantities across your warehouses or sync stock changes atomically from your in-store POS system.
/api/v1/products
/api/v1/products/:id/stock
{
"adjustment": -2
}
Copy and paste these battle-tested code snippets into your external store codebase:
curl -X POST https://app.nexlymate.com/api/v1/orders \
-H "Authorization: Bearer vs_live_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"customerName": "Kamal Perera",
"phone": "0771234567",
"address": "No 45, Galle Road, Colombo 3",
"city": "Colombo",
"district": "Colombo",
"items": [
{ "name": "Blue Polo Shirt (L)", "qty": 2, "price": 1850 }
],
"shippingFee": 350,
"paymentMethod": "COD"
}'
Standard HTTP status codes are used to communicate API execution outcomes. Rate limiting is 120 requests/minute per API key.
| Status Code | Error Code | Meaning & Guidance |
|---|---|---|
| 200 OK | — | Request succeeded cleanly. |
| 201 Created | — | Order or resource successfully recorded. |
| 400 Bad Request | INVALID_PAYLOAD |
Malformed JSON or missing required fields (customerName, phone, etc.). |
| 401 Unauthorized | AUTH_MISSING_KEY |
Missing or invalid Bearer key. Check your key in Settings → Developer Options. |
| 404 Not Found | NOT_FOUND |
Requested order or product ID does not exist in your store. |
| 409 Conflict | ORDER_COURIER_SYNCED |
Order is locked because it is already synced with a courier partner. |
| 429 Too Many Requests | RATE_LIMITED |
Exceeded 120 req/min limit. Implement exponential backoff retry. |
| 500 Server Error | SERVER_ERROR |
Internal server error. Contact Nexlymate developer support. |
Get your API credentials and start pushing orders to Nexlymate OMS in under five minutes.