The good news: you only ever must supply a classification code. Everything else has a sensible default or a simple enum.
The tables below list the common values. For the complete, authoritative lists, read them live:GET /v1/lookups/code-classeslists KRA’s code groups,GET /v1/lookups/codes?codeClass=10returns the codes in one group, andGET /v1/lookups/classificationssearches item classifications. These endpoints need thelookups:readscope. See the API reference.
Tax category
SendtaxCategory (an enum) when you create an item. Sync2Books maps it to the correct KRA tax type automatically — you don’t send a tax code yourself. The tax on a sale always comes from the item, never from the sale request.
Product type
SendproductTypeCode when you create an item. It is a string, and it selects the KRA product type. Goods (1 and 2) are stock-tracked and services (3) are not.
Units & packaging
Pass the KRA codes inunitCode (quantity unit) and packagingUnitCode (packaging unit) when you create an item.
Quantity unit (unitCode):
Packaging unit (
packagingUnitCode):
These are the common units. KRA defines many more. List them withGET /v1/lookups/codes?codeClass=10for quantity units andGET /v1/lookups/codes?codeClass=17for packaging units, and pass the code you choose.
Payment type (sales)
SendpaymentTypeCode when creating a sale. It defaults to 01 (cash).
The live list is
GET /v1/lookups/codes?codeClass=07.
Credit note reasons
Sendreason when you issue a credit note. It defaults to 06.
Classification code (the one you must look up)
classificationCode is the KRA item classification (itemClsCd) for the product — e.g. 50150000. Unlike the other codes, there is no default: you must supply a valid code before an item can be registered.
- Search valid codes live with
GET /v1/lookups/classifications?query=..., or browse the Item Classification Codes reference (or KRA’s own list — see references). - Pick the code that best matches the product.
- Once set, the item can be registered and sold.
422 with the code item_incomplete, and item.needs.classificationMapping is true.
Other sale codes
A sale also carries KRA receipt and invoice status codes, such as receipt typeS for a normal sale and R for a credit note. The API sets these for you, so you never send them.
KRA references
The authoritative, complete code lists are published by KRA:- TIS for OSCU/VSCU Technical Specifications v2.0 — all code lists (tax types, units, packaging, product types, payment methods, receipt/invoice status) and the item classification structure.
- See also eTIMS as a Third-Party Integrator (OSCU) for how these fit the KRA onboarding flow.
Read next
- eTIMS API Overview — how the integration is shaped
- Items — where these codes are used
- Errors & Troubleshooting — what a rejected value looks like coming back from KRA