Salami Gateway

API Documentation
Back to Dashboard

eTIMS Items & Stock API

Register, update, and manage items (products/services) in the eTIMS system. Track stock movements and current inventory levels as required by KRA.

Table of Contents

  1. Overview
  2. Register Item
  3. Get Item
  4. Update Item
  5. Stock Movement
  6. Get Current Stock
  7. Stock Report
  8. Item Classification Codes
  9. Status Codes

Overview

Required Scopes

Scope Description
etims:read View items, stock levels, stock report
etims:write Register items, update items, submit stock movements

Endpoint Summary

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 Item

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

Item Types

Code Description
1 Raw material
2 Finished product
3 Service

Common Package Units

Code Description
NT Net
GRS Gross
CT Carton
BX Box
BAG Bag
BT Bottle
CAN Can
DZ Dozen
PK Pack
RL Roll

Common Quantity Units

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"
}

Get Item

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

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"
}

Stock Movement

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

Movement Types (Stock Transaction Codes)

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)

Item Fields

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"
}

Get Current Stock

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"
    }
  ]
}

Stock Report

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

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.

Status Codes

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

Best Practices

  1. Register items before selling -- Items must exist in eTIMS before they can appear on invoices
  2. Use meaningful codes -- Use a consistent item code scheme (e.g., CAT-SKU-VARIANT)
  3. Assign correct HS codes -- HS codes determine tax treatment and customs classification
  4. Track stock movements -- Record all stock changes within 24 hours
  5. Regular stock counts -- Reconcile physical stock with eTIMS records periodically
  6. Update prices -- Keep unit prices current to match actual selling prices

Related Documentation


Back to: eTIMS Sales | eTIMS Codes


Need help? Contact us at support@dgl.co.ke
© 2026 Deadan Group Limited. All rights reserved.
⚡ API Explorer
LIVE
// Response will appear here...