DMS
Catalog, visits (check-in), daily plans, outlets, orders and routes.
7 endpoints · base /api/v1/dms
List catalog products.
MCP tool:
dms_list_catalog_productsScope: dms.catalog.viewUser OAuthAPI key / appParameter
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
page | int | query | no | Page (starts at 1) |
pageSize | int | query | no | Rows per page |
Example
curl https://api.nextx.vn/api/v1/dms/catalog/products?page=1&pageSize=1 \
-H "Authorization: Bearer <ACCESS_TOKEN>"Sample response
{
"items": [
{
"id": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"name": "string",
"sku": "string",
"unit": "string",
"price": 0,
"categoryId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"trackingType": "string",
"taxRate": 0,
"defaultSkuId": "string",
"unitConversions": [
null
],
"variants": [
null
]
}
],
"totalCount": 0,
"page": 0,
"pageSize": 0
}List store visit check-ins.
MCP tool:
dms_list_checkinsScope: dms.checkins.viewUser OAuthAPI key / appParameter
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
page | int | query | no | Page (starts at 1) |
pageSize | int | query | no | Rows per page |
employeeId | GUID | query | no | — |
dateFrom | date | query | no | — |
dateTo | date | query | no | — |
Example
curl https://api.nextx.vn/api/v1/dms/tracking/check-ins?page=1&pageSize=1&employeeId=%3CemployeeId%3E&dateFrom=2026-06-01&dateTo=2026-06-01 \
-H "Authorization: Bearer <ACCESS_TOKEN>"Sample response
{
"items": [
{
"id": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"outletId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"outletName": "string",
"employeeId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"employeeName": "string",
"routeId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"dailyPlanId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"checkinAt": "2026-10-27T09:00:00+07:00",
"checkoutAt": "2026-10-27T09:00:00+07:00",
"checkinLat": 0,
"checkinLng": 0,
"checkinAddress": "string",
"distanceFromOutlet": 0,
"isValid": false,
"invalidReason": "string",
"photoKey": "string",
"photoKeys": [
"string"
],
"notes": "string",
"type": "Outlet",
"photoUrls": [
"string"
],
"isAutoClosed": false
}
],
"totalCount": 0,
"page": 0,
"pageSize": 0,
"totalPages": 0,
"hasNextPage": false,
"hasPreviousPage": false
}List daily visit plans.
MCP tool:
dms_list_daily_plansScope: dms.daily_plans.viewUser OAuthAPI key / appParameter
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
page | int | query | no | Page (starts at 1) |
pageSize | int | query | no | Rows per page |
employeeId | GUID | query | no | — |
planDate | date | query | no | YYYY-MM-DD |
status | string | query | no | — |
Example
curl https://api.nextx.vn/api/v1/dms/daily-plans?page=1&pageSize=1&employeeId=%3CemployeeId%3E&planDate=2026-06-01&status=... \
-H "Authorization: Bearer <ACCESS_TOKEN>"Sample response
{
"items": [
{
"id": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"employeeId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"employeeName": "string",
"planDate": "2026-10-27",
"routes": [
null
],
"status": "string",
"notes": "string",
"createdAt": "2026-10-27T09:00:00+07:00",
"totalStops": 0
}
],
"totalCount": 0,
"page": 0,
"pageSize": 0,
"totalPages": 0,
"hasNextPage": false,
"hasPreviousPage": false
}Details of one visit plan.
MCP tool:
dms_get_daily_planScope: dms.daily_plans.viewUser OAuthAPI key / appParameter
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
id | GUID | path | yes | — |
Example
curl https://api.nextx.vn/api/v1/dms/daily-plans/<id> \
-H "Authorization: Bearer <ACCESS_TOKEN>"Sample response
{
"id": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"employeeId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"employeeName": "string",
"planDate": "2026-10-27",
"routes": [
{
"id": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"code": "string",
"name": "string"
}
],
"status": "string",
"notes": "string",
"createdAt": "2026-10-27T09:00:00+07:00",
"totalStops": 0
}List outlets/points of sale.
MCP tool:
dms_list_outletsScope: dms.outlets.viewUser OAuthAPI key / appParameter
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
page | int | query | no | Page (starts at 1) |
pageSize | int | query | no | Rows per page |
q | string | query | no | Keyword |
Example
curl https://api.nextx.vn/api/v1/dms/outlets?page=1&pageSize=1&q=... \
-H "Authorization: Bearer <ACCESS_TOKEN>"Sample response
{
"items": [
{
"id": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"outletCode": "string",
"outletName": "string",
"channelCode": "string",
"outletStatus": "Active",
"gpsLat": 0,
"gpsLng": 0,
"address": "string",
"zoneId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"branchId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"visitFrequency": "Daily",
"ownerName": "string",
"ownerPhone": "string",
"ownerEmail": "string",
"lastCheckinAt": "2026-10-27T09:00:00+07:00",
"assignedRepId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"assignedRepCode": "string",
"assignedRepName": "string",
"tier": "string",
"rank": "string",
"routeCode": "string",
"assignedReps": [
null
],
"careStatusId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"careStatusName": "string",
"careStatusColor": "string",
"orderCount": 0,
"orderRevenue": 0,
"lastOrderAt": "2026-10-27T09:00:00+07:00",
"taxCode": "string",
"duplicateGroup": 0
}
],
"totalCount": 0,
"page": 0,
"pageSize": 0,
"totalPages": 0,
"hasNextPage": false,
"hasPreviousPage": false
}List DMS orders.
MCP tool:
dms_list_ordersScope: dms.orders.viewUser OAuthAPI key / appParameter
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
page | int | query | no | Page (starts at 1) |
pageSize | int | query | no | Rows per page |
outletId | GUID | query | no | — |
status | string | query | no | — |
Example
curl https://api.nextx.vn/api/v1/dms/orders?page=1&pageSize=1&outletId=%3CoutletId%3E&status=... \
-H "Authorization: Bearer <ACCESS_TOKEN>"Sample response
{
"items": [
{
"id": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"orderCode": "string",
"status": "string",
"totalAmount": 0,
"createdAt": "2026-10-27T09:00:00+07:00",
"paymentMethod": "string",
"paymentStatus": "string",
"branchId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"branchName": "string",
"assignedTo": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"assignedToName": "string",
"crmContactId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"contactName": "string",
"orderType": "string",
"outletId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"outletName": "string",
"depositAmount": 0,
"expectedDeliveryDate": "2026-10-27T09:00:00+07:00",
"paidAmount": 0,
"debtAmount": 0,
"itemCount": 0,
"subtotal": 0,
"discountAmount": 0,
"taxAmount": 0,
"shippingFee": 0,
"totalQuantity": 0,
"customerCode": "string",
"deliveryEmployeeId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"deliveryEmployeeName": "string",
"deliveryId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"deliveryStatus": "string",
"deliveredAt": "2026-10-27T09:00:00+07:00",
"lastPaymentDate": "2026-10-27T09:00:00+07:00",
"payments": [
null
]
}
],
"totalCount": 0,
"page": 0,
"pageSize": 0,
"totals": {
"subtotal": 0,
"discountAmount": 0,
"taxAmount": 0,
"total": 0,
"paidAmount": 0,
"debtAmount": 0
}
}List sales routes.
MCP tool:
dms_list_routesScope: dms.routes.viewUser OAuthAPI key / appParameter
| Parameter | Type | In | Required | Description |
|---|---|---|---|---|
page | int | query | no | Page (starts at 1) |
pageSize | int | query | no | Rows per page |
status | string | query | no | — |
Example
curl https://api.nextx.vn/api/v1/dms/routes?page=1&pageSize=1&status=... \
-H "Authorization: Bearer <ACCESS_TOKEN>"Sample response
{
"items": [
{
"id": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"routeCode": "string",
"name": "string",
"channelCode": "string",
"status": "string",
"zoneId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"branchId": "0199a1b2-c3d4-7e5f-8a9b-0c1d2e3f4a5b",
"dayOfWeek": [
0
],
"visitFrequency": "string",
"vehicleType": "string",
"colorHex": "string",
"description": "string",
"stopCount": 0,
"createdAt": "2026-10-27T09:00:00+07:00",
"assignedCount": 0,
"startDate": "2026-10-27",
"todayVisitCount": 0,
"todayCompletedCount": 0
}
],
"totalCount": 0,
"page": 0,
"pageSize": 0,
"totalPages": 0,
"hasNextPage": false,
"hasPreviousPage": false
}