Register, update, and manage items (products/services) in the eTIMS system. Track stock movements and current inventory levels as required by KRA.
| Scope | Description |
|---|---|
etims:read |
View items, stock levels, stock report |
etims:write |
Register items, update items, submit stock movements |
| Method | Endpoint | Description | Scope |
|---|---|---|---|
POST |
/api/etims/items/register |
Register a new item | etims:write |
GET |
/api/etims/items/{item_code} |
Get item details | etims:read |
PUT |
/api/etims/items/{item_code} |
Update an item | etims:write |
POST |
/api/etims/stock/movement |
Record stock movement | etims:write |
GET |
/api/etims/stock/current |
Get current stock levels | etims:read |
GET |
/api/etims/reports/stock |
Stock summary report | etims:read |
Register a new item/product/service with KRA eTIMS.
Endpoint: POST /api/etims/items/register
Required Scope: etims:write
Request Body:
| Field | Type | Required | Description |
|---|---|---|---|
item_code |
string | Yes | Your unique item code |
item_name |
string | Yes | Item description |
item_type |
string | Yes | Item type code (see table) |
item_class_code |
string | No | HS code / classification code |
origin_country |
string | No | ISO country code (default: KE) |
taxation_type |
string | Yes | Tax type code (A-E) |
unit_price |
number | Yes | Default unit price |
package_unit |
string | No | Package unit code (default: NT) |
quantity_unit |
string | No | Quantity unit code (default: U) |
description |
string | No | Detailed description |
| Code | Description |
|---|---|
1 |
Raw material |
2 |
Finished product |
3 |
Service |
| Code | Description |
|---|---|
NT |
Net |
GRS |
Gross |
CT |
Carton |
BX |
Box |
BAG |
Bag |
BT |
Bottle |
CAN |
Can |
DZ |
Dozen |
PK |
Pack |
RL |
Roll |
| Code | Description |
|---|---|
U |
Unit/Piece |
KG |
Kilogram |
G |
Gram |
L |
Liter |
ML |
Milliliter |
M |
Meter |
M2 |
Square meter |
M3 |
Cubic meter |
HR |
Hour |
Request:
curl -X POST \
https://yourtenant.salami.dgl.co.ke/api/etims/items/register \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"item_code": "CHAIR-001",
"item_name": "Executive Office Chair",
"item_type": "2",
"item_class_code": "94017100",
"origin_country": "CN",
"taxation_type": "B",
"unit_price": 15000.00,
"package_unit": "NT",
"quantity_unit": "U",
"description": "Ergonomic executive office chair with lumbar support"
}'
Response:
{
"success": true,
"data": {
"item_id": 123,
"item_code": "CHAIR-001",
"item_name": "Executive Office Chair",
"item_type": "2",
"taxation_type": "B",
"unit_price": 15000.00,
"status": "registered",
"registered_at": "2026-03-29T16:20:00Z"
},
"message": "Item registered successfully"
}
Retrieve item details by item code.
Endpoint: GET /api/etims/items/{item_code}
Required Scope: etims:read
Request:
curl -X GET \
https://yourtenant.salami.dgl.co.ke/api/etims/items/CHAIR-001 \
-H 'Authorization: Bearer YOUR_API_TOKEN'
Response:
{
"success": true,
"data": {
"id": 123,
"item_code": "CHAIR-001",
"item_name": "Executive Office Chair",
"item_type": "2",
"item_class_code": "94017100",
"origin_country": "CN",
"taxation_type": "B",
"unit_price": 15000.00,
"package_unit": "NT",
"quantity_unit": "U",
"current_stock": 50,
"description": "Ergonomic executive office chair with lumbar support",
"status": "active",
"created_at": "2026-03-29T16:20:00Z"
}
}
Update item information. The item must already be registered.
Endpoint: PUT /api/etims/items/{item_code}
Required Scope: etims:write
Request Body:
| Field | Type | Required | Description |
|---|---|---|---|
item_name |
string | No | Updated item name |
unit_price |
number | No | Updated unit price |
taxation_type |
string | No | Updated tax type |
description |
string | No | Updated description |
Request:
curl -X PUT \
https://yourtenant.salami.dgl.co.ke/api/etims/items/CHAIR-001 \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"item_name": "Executive Office Chair - Premium",
"unit_price": 18000.00,
"description": "Premium ergonomic chair with adjustable armrests"
}'
Response:
{
"success": true,
"data": {
"item_code": "CHAIR-001",
"item_name": "Executive Office Chair - Premium",
"unit_price": 18000.00,
"status": "updated",
"updated_at": "2026-03-29T16:25:00Z"
},
"message": "Item updated successfully"
}
Record stock additions, reductions, adjustments, or transfers.
Endpoint: POST /api/etims/stock/movement
Required Scope: etims:write
Request Body:
| Field | Type | Required | Description |
|---|---|---|---|
movement_type |
string | Yes | Movement type code |
movement_date |
string | No | Date of movement (YYYY-MM-DD) |
reason |
string | No | Reason for the movement |
items |
array | Yes | Items in the movement |
| Code | Description | Effect |
|---|---|---|
01 |
Stock addition (purchase, production) | +Quantity |
02 |
Stock reduction (sale, wastage) | -Quantity |
03 |
Stock adjustment (correction) | +/- Quantity |
04 |
Stock transfer (between branches) | -Quantity (source) |
| Field | Type | Required | Description |
|---|---|---|---|
item_code |
string | Yes | Registered item code |
quantity |
number | Yes | Quantity being moved |
unit_price |
number | No | Unit price for this movement |
Request:
curl -X POST \
https://yourtenant.salami.dgl.co.ke/api/etims/stock/movement \
-H 'Authorization: Bearer YOUR_API_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"movement_type": "01",
"movement_date": "2026-03-29",
"reason": "Received stock from supplier - PO#2026-045",
"items": [
{
"item_code": "CHAIR-001",
"quantity": 100,
"unit_price": 12000.00
},
{
"item_code": "DESK-001",
"quantity": 50,
"unit_price": 20000.00
}
]
}'
Response:
{
"success": true,
"data": {
"movement_id": 234,
"movement_type": "01",
"movement_date": "2026-03-29",
"total_items": 2,
"items": [
{"item_code": "CHAIR-001", "quantity": 100, "new_stock": 150},
{"item_code": "DESK-001", "quantity": 50, "new_stock": 75}
],
"status": "submitted",
"submitted_at": "2026-03-29T16:30:00Z"
},
"message": "Stock movement recorded successfully"
}
Retrieve current stock levels for all items or a specific item.
Endpoint: GET /api/etims/stock/current
Required Scope: etims:read
Query Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
item_code |
string | No | Filter by specific item code |
Request:
curl -X GET \
'https://yourtenant.salami.dgl.co.ke/api/etims/stock/current?item_code=CHAIR-001' \
-H 'Authorization: Bearer YOUR_API_TOKEN'
Response:
{
"success": true,
"data": [
{
"item_code": "CHAIR-001",
"item_name": "Executive Office Chair - Premium",
"quantity": 150,
"unit_price": 18000.00,
"total_value": 2700000.00,
"last_movement": "2026-03-29T16:30:00Z"
}
]
}
Get a summary of current stock levels and values.
Endpoint: GET /api/etims/reports/stock
Required Scope: etims:read
Request:
curl -X GET \
https://yourtenant.salami.dgl.co.ke/api/etims/reports/stock \
-H 'Authorization: Bearer YOUR_API_TOKEN'
Response:
{
"success": true,
"data": {
"total_items": 85,
"total_stock_value": 4500000.00,
"low_stock_items": 5,
"out_of_stock_items": 2,
"by_item_type": {
"raw_material": {"count": 30, "value": 1500000.00},
"finished_product": {"count": 50, "value": 2800000.00},
"service": {"count": 5, "value": 200000.00}
}
}
}
Item classification codes follow the Harmonized System (HS) coding structure. Common codes for Kenya:
| HS Code | Description |
|---|---|
01-05 |
Animal products |
06-14 |
Vegetable products |
15 |
Fats and oils |
16-24 |
Food preparations, beverages, tobacco |
25-27 |
Mineral products |
28-38 |
Chemical products |
39-40 |
Plastics and rubber |
41-43 |
Leather and skins |
44-46 |
Wood products |
47-49 |
Paper and pulp |
50-63 |
Textiles and apparel |
64-67 |
Footwear, headgear |
68-70 |
Stone, ceramic, glass |
71 |
Precious metals/stones |
72-83 |
Base metals |
84-85 |
Machinery, electrical equipment |
86-89 |
Transport equipment |
90-92 |
Instruments, clocks, musical |
93 |
Arms and ammunition |
94-96 |
Furniture, toys, misc |
97 |
Art and antiques |
Use the eTIMS Codes API to retrieve the full classification list from KRA.
| Code | Description |
|---|---|
200 |
Success |
401 |
Invalid Salami token |
403 |
Token lacks required scope |
404 |
Item not found |
409 |
Item code already registered (for register) |
422 |
Validation error |
502 |
KRA eTIMS server error |
CAT-SKU-VARIANT)Back to: eTIMS Sales | eTIMS Codes