- Register — add the item to your Sync2Books catalog (
POST …/catalog/items) - Sync — register the item with KRA eTIMS, assigning an
etimsItemCode(POST …/catalog/items/sync)
Goods vs Services (stock vs non-stock)
Every item is one of two types, set byitemType when you register it. The type determines whether the item is stock-tracked, which changes how sales behave:
- Goods are physical, inventoried products. Selling one reduces its stock at the branch, so you must add stock before you sell, and a sale of more than you have on hand is rejected (
Insufficient stock). Manage levels with Stock. - Services (non-stock items) are not inventoried. Sales never touch stock, so there is no “add stock” step — just register, sync, then sell. Stock adjust/transfer calls on a service have no effect.
KRA item type code. Goods default to KRA’s finished product code and services to service. If you need a different classification (e.g. raw materials), set productTypeCode explicitly when registering.
Step 1 — Register an item
Request body
externalId vs the item id
These are two different identifiers and the distinction matters:externalId— what you send (your SKU). Use it to find the item later.- the item
id— what Sync2Books assigns. Sales and stock calls reference this id, not yourexternalId.
id back from the catalog list (Step 3).
Classification codes
⚠️classificationCode is effectively required. KRA requires every item to carry a valid item classification code (itemClsCd). If you omit it and no classification mapping is pre-configured for the merchant, the register call is rejected (Missing classification mapping).
Use a valid KRA classification code for the product (e.g. 14111400), from KRA’s item classification list. For the other item codes (units, packaging, tax, product type) and which ones auto-resolve, see Codes & Values.
Step 2 — Sync items to eTIMS
Registering only stores the item. Syncing registers it with KRA and assigns anetimsItemCode:
Request body
Once the sync completes, the item’s
registrationStatus is REGISTERED and it can be sold.
Step 3 — List catalog items
Returns your catalog (use it to grab the itemid and check its registration status):
id, your externalId, and a registration status (PENDING | REGISTERED).
Recommended flow
onlyPending: true.
Read next
- Stock — add inventory so items can be sold
- Sales & Credit Notes — invoice a synced item
- Tracking Results — track the
syncBatchId