What the invoice schema defines
A schema is the agreed shape of the data: what fields exist, which are required, their types and how they nest. The eTIMS invoice schema is what your integration must produce for KRA to accept and register an invoice. Conceptually it covers the seller and PIN, the buyer PIN, item lines with quantity, price and tax treatment, totals and tax, and the control fields.
For a developer, the schema is the contract you build to, and the authoritative, current version lives in KRA's official documentation. Schemas are versioned and change, so building to an outdated schema, or assuming fields, causes rejections. The practical approach is to obtain the current schema, map your invoice data to it exactly, and validate against KRA's environment until it passes. Confirm the current schema and any versioning with KRA.
The cheapest eTIMS integration is often the one you do not have to build, certify and maintain yourself.
How to approach it
A practical path. Confirm exact technical details against KRA's official documentation.
- 1
Obtain the current schema
Get the current eTIMS invoice schema from KRA's official documentation, including which fields are required and their types.
- 2
Map your data exactly
Map every required field from your invoice model to the schema, with the right types, tax treatment per line and buyer PIN.
- 3
Validate required and conditional fields
Confirm required fields are always present and conditional ones are handled, since omissions fail validation.
- 4
Test and version-track
Validate in the sandbox, and record which schema version you built to so you can adapt when KRA updates it.
What to check before you build
Building to an outdated schema
Schemas are versioned and change. Building to an old version causes rejections. Use the current official schema.
Assuming optional fields are unused
Conditional and optional fields still have rules. Handle them per the schema rather than ignoring them.
Not tracking the schema version
Record the version you built to so you can identify and adapt to changes when KRA updates it.
An integrator builds to the contract
An integrator in Nairobi treated the eTIMS invoice schema as the contract, obtaining the current version from KRA's documentation rather than inferring fields.
They mapped every required field with correct types, handled the conditional ones, validated in the sandbox, and recorded the schema version they built to.
When KRA released an updated schema, they compared versions and adjusted quickly, so their invoices kept validating without a scramble.
Trading without eTIMS-compliant tax invoices risks KRA penalties, blocked VAT input claims for your customers, and receipts a business buyer cannot expense.
Veira signs every sale to KRA eTIMS automatically, so each receipt is compliant the moment it prints, with no separate device to reconcile.
When you can skip the integration
The biggest decision here is whether you need to build an integration at all. Veira is already a compliant eTIMS system: it issues compliant KRA invoices automatically, applies the right tax treatment, captures the buyer PIN, transmits to KRA, and works offline. For many businesses that removes the need to build, certify and maintain a custom integration yourself.
If you do run an ERP or a custom stack, weigh the cost of building and maintaining an integration against running point of sale and invoicing on Veira and reconciling. Veira runs from KES 2,999 a month with a free terminal and a 30-day money-back guarantee. See how Veira works, or book a free demo to talk through your setup.
Frequently asked questions
What is the eTIMS invoice schema?
Where do I get the eTIMS invoice schema?
Why do my invoices fail the schema?
Can I avoid dealing with the schema?
Do I have to build my own eTIMS integration?
Where is the authoritative eTIMS technical spec?
eTIMS invoice schema comes down to the concepts above plus KRA's official documentation for the exact details, and for many businesses the simplest path is compliant software that handles it for you. See how Veira works, or book a free demo. Always build against KRA's current official eTIMS documentation.