Skip to main content
Several item, sale and credit note fields take codes. This page lists the common values so you can fill them in correctly.
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-classes lists KRA’s code groups, GET /v1/lookups/codes?codeClass=10 returns the codes in one group, and GET /v1/lookups/classifications searches item classifications. These endpoints need the lookups:read scope. See the API reference.

Tax category

Send taxCategory (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

Send productTypeCode 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 in unitCode (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 with GET /v1/lookups/codes?codeClass=10 for quantity units and GET /v1/lookups/codes?codeClass=17 for packaging units, and pass the code you choose.

Payment type (sales)

Send paymentTypeCode when creating a sale. It defaults to 01 (cash). The live list is GET /v1/lookups/codes?codeClass=07.

Credit note reasons

Send reason 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.
See Item Attributes for the full item data model this code is part of. If you try to register an item without one, the call is a 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 type S 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: