-
Notifications
You must be signed in to change notification settings - Fork 0
API Usage Inventory
This page explains how third-party systems should call Inventory APIs in SimBiz 6 API V3.
https://<host>/api/v3
All inventory endpoints are protected.
Required headers:
Authorization: Bearer <token>x-uid: <uid>
Token endpoint:
-
POST /api/v3/token(seeAPI-Usage-Auth-System.md)
For filter parameters such as updated_from and updated_to, use:
YYYY-MM-DD HH:MM:SS- Example:
2026-04-09 00:00:00
| Endpoint | Method | Purpose |
|---|---|---|
/api/v3/inventory/items |
GET | List inventory items |
/api/v3/inventory/items/{id} |
GET | Get item detail by item id |
/api/v3/inventory/items/by-code/{itemCode} |
GET | Get item detail by item code |
/api/v3/inventory/items |
POST | Create item |
/api/v3/inventory/items/{id} |
PATCH | Update item |
/api/v3/inventory/items/by-barcode/{barcode} |
GET | Get item by barcode/item code |
/api/v3/inventory/stocks/by-location |
GET | Get stock balances by location |
/api/v3/inventory/reference-data/{resource} |
GET | Get reference lists |
- List endpoints return
dataas an array andmeta.paginationwith paging details. - Detail endpoints return
dataas one object andmetaas an empty object. - Use
/{id}when you already have the internal item id. - Use
/by-code/{itemCode}when you only have the item code. - Use
/by-barcode/{barcode}when you only have the barcode, or when the integration stores the barcode as its lookup key.
GET /api/v3/inventory/items
| Parameter | Type | Required | Notes |
|---|---|---|---|
page |
int | No | default 1
|
per_page |
int | No | default 50, max 200
|
q |
string | No | search by item code/name/barcode |
item_id |
string | No | exact item id |
item_code |
string | No | exact item code |
updated_from |
datetime | No | updated range start |
updated_to |
datetime | No | updated range end |
organization_id / org_id
|
string | No | org filter by id |
organization_code / org_code
|
string | No | org filter by code |
If no organization filter is provided, API uses token org context.
curl -G "https://<host>/api/v3/inventory/items" \
-H "Authorization: Bearer <token>" \
-H "x-uid: support" \
--data-urlencode "organization_code=BHH" \
--data-urlencode "q=CAMBRIDGE" \
--data-urlencode "updated_from=2026-01-01 00:00:00" \
--data-urlencode "updated_to=2026-12-31 23:59:59" \
--data-urlencode "page=1" \
--data-urlencode "per_page=20"{
"status": "OK",
"data": [
{
"item_id": "1-1-1001",
"item_code": "ITEM001",
"item_name": "Sample Item",
"item_barcode": "9551234567890",
"organization_id": "1-1",
"organization_code": "BHH",
"updated": "2026-04-09 10:22:11"
}
],
"meta": {
"pagination": {
"page": 1,
"per_page": 20,
"total": 1,
"total_pages": 1
},
"filters": {
"organization_id": "",
"organization_code": "BHH",
"q": "CAMBRIDGE",
"updated_from": "2026-01-01 00:00:00",
"updated_to": "2026-12-31 23:59:59"
}
}
}Use this when the integration already knows item_id.
GET /api/v3/inventory/items/{id}
| Parameter | Required | Notes |
|---|---|---|
id |
Yes | item id |
curl -X GET "https://<host>/api/v3/inventory/items/1-1-1001" \
-H "Authorization: Bearer <token>" \
-H "x-uid: support"{
"status": "OK",
"data": {
"item_id": "1-1-1001",
"item_code": "ITEM001",
"item_name": "Sample Item",
"item_barcode": "9551234567890",
"organization_id": "1-1",
"organization_code": "BHH",
"updated": "2026-04-09 10:22:11"
},
"meta": {}
}Use this when the caller only has a barcode or barcode-based external reference.
GET /api/v3/inventory/items/by-barcode/{barcode}
| Parameter | Required | Notes |
|---|---|---|
barcode |
Yes | barcode or item code |
curl -X GET "https://<host>/api/v3/inventory/items/by-barcode/9551234567890" \
-H "Authorization: Bearer <token>" \
-H "x-uid: support"{
"status": "OK",
"data": {
"item_id": "1-1-1001",
"item_code": "ITEM001",
"item_name": "Sample Item",
"item_barcode": "9551234567890",
"organization_id": "1-1",
"organization_code": "BHH",
"updated": "2026-04-09 10:22:11"
},
"meta": {}
}Use this when the caller only has item_code.
GET /api/v3/inventory/items/by-code/{itemCode}
| Parameter | Required | Notes |
|---|---|---|
itemCode |
Yes | exact item code |
curl -X GET "https://<host>/api/v3/inventory/items/by-code/ITEM001" \
-H "Authorization: Bearer <token>" \
-H "x-uid: support"{
"status": "OK",
"data": {
"item_id": "1-1-1001",
"item_code": "ITEM001",
"item_name": "Sample Item",
"item_barcode": "9551234567890",
"organization_id": "1-1",
"organization_code": "BHH",
"updated": "2026-04-09 10:22:11"
},
"meta": {}
}POST /api/v3/inventory/items
Top-level:
-
organization_codeororganization_id(optional if token org should be used) -
data(required)
data.header common fields:
-
item_code(required) -
item_name(required) -
category_codeorcategory_id -
type_codeortype_id -
brand_codeorbrand_id
data.line common fields:
-
baseuom_codeorbaseuom_id -
salesuom_codeorsalesuom_id -
purchaseuom_codeorpurchaseuom_id sell_pricepurchase_price-
isstock,issold,ispurchase
curl -X POST "https://<host>/api/v3/inventory/items" \
-H "Authorization: Bearer <token>" \
-H "x-uid: support" \
-H "Content-Type: application/json" \
-d '{
"organization_code": "BHH",
"data": {
"header": {
"item_code": "ITEM-API-001",
"item_name": "API Created Item",
"category_code": "CAT001",
"type_code": "TYPE001",
"brand_code": "BRAND001"
},
"line": {
"baseuom_code": "PCS",
"salesuom_code": "PCS",
"purchaseuom_code": "PCS",
"sell_price": "12.00",
"purchase_price": "10.00",
"isstock": "1",
"issold": "1",
"ispurchase": "1"
}
}
}'PATCH /api/v3/inventory/items/{id}
-
idpath parameter will be injected intodata.header.item_idif not provided. - Use same payload shape as create (
organization_*+data.header+data.line).
curl -X PATCH "https://<host>/api/v3/inventory/items/1-1-1001" \
-H "Authorization: Bearer <token>" \
-H "x-uid: support" \
-H "Content-Type: application/json" \
-d '{
"organization_code": "BHH",
"data": {
"header": {
"item_name": "Updated API Item"
},
"line": {
"sell_price": "13.00"
}
}
}'GET /api/v3/inventory/stocks/by-location
| Parameter | Type | Required | Notes |
|---|---|---|---|
branch_id |
string | No | branch filter |
item_codes |
string | No | comma-separated item codes |
separate_location |
int/string | No |
1 to sort by location |
updated_from |
datetime | No | updated range start |
updated_to |
datetime | No | updated range end |
organization_id / org_id
|
string | No | org filter by id |
organization_code / org_code
|
string | No | org filter by code |
curl -G "https://<host>/api/v3/inventory/stocks/by-location" \
-H "Authorization: Bearer <token>" \
-H "x-uid: support" \
--data-urlencode "organization_code=BHH" \
--data-urlencode "branch_id=1" \
--data-urlencode "item_codes=ITEM001,ITEM002" \
--data-urlencode "updated_from=2026-01-01 00:00:00" \
--data-urlencode "updated_to=2026-12-31 23:59:59"GET /api/v3/inventory/reference-data/{resource}
categoriesbrandstypesuomslocations
curl -X GET "https://<host>/api/v3/inventory/reference-data/categories" \
-H "Authorization: Bearer <token>" \
-H "x-uid: support"{
"status": "Failed",
"errors": [
{
"code": "V3_AUTH_MISSING_CREDENTIAL",
"message": "Missing uid or token",
"details": []
}
],
"meta": []
}{
"status": "Failed",
"errors": [
{
"code": "V3_INV_ITEM_NOT_FOUND",
"message": "Item not found",
"details": {
"id": "1-1-999999"
}
}
],
"meta": []
}