Back to Blog

October 28, 2026

Odoo Streamlines Kenya's eTIMS Tax Integration With Clearer Token Setup and Invoice Number Recovery

Odoo overhauls its Kenya eTIMS integration setup by relocating configuration to the Accounting settings, documenting a same-day token request flow, adding troubleshooting guidance for registration errors and duplicate invoice numbers, and clarifying the multi-company workflow for businesses operating across Kenyan branches.

Kenya’s electronic Tax Invoice Management System — eTIMS — has become the backbone of tax compliance for every registered business in the country. The Kenya Revenue Authority requires that invoices be submitted electronically through the system, and any ERP platform operating in the Kenyan market needs to handle that integration without friction. Odoo has just shipped a significant cleanup of its eTIMS setup workflow that addresses several pain points businesses have been hitting during initial configuration and day-to-day operations.

Odoo Kenya eTIMS integration settings panel showing token configuration, compliance workflow steps, and invoice recovery options

Configuration Moves Where Accountants Actually Look

The most practical change is where the eTIMS settings live. Previously, the integration was configured through General Settings — a location that makes sense from a system architecture perspective but not from a user’s perspective. Accountants setting up tax compliance don’t think in terms of “general settings.” They think in terms of accounting configuration.

The eTIMS integration settings now sit under Accounting → Configuration → Settings, grouped into a dedicated Kenya eTIMS Integration section. The OSCU serial number, integration token, branch code, and KRA PIN fields are all in one place, in the section of the application where the people responsible for tax compliance are already working. It’s the kind of relocation that eliminates a “where do I find this?” support ticket before it gets filed.

Same-Day Token Requests Replace the Guessing Game

Getting the integration token — the credential that authenticates Odoo’s connection to the eTIMS system — has been one of the more opaque parts of the setup process. The updated workflow documents exactly how it works: businesses email their eTIMS portal credentials and Odoo database URL to a dedicated address, and the token is returned the same day. Once received, it goes directly into the Integration Token field in the newly relocated settings panel.

The clarity matters because a missing or incorrect token is the single most common reason a new eTIMS setup fails to transmit invoices. Before this update, businesses often got stuck at this step, unsure whether they needed to generate the token themselves, request it through the KRA portal, or wait for it to arrive through some other channel. The documented flow removes that ambiguity completely.

Error Recovery That Doesn’t Require a Support Ticket

Two specific error scenarios now have documented recovery paths. The first is the “Device is already installed” or “The registration failed” error that appears when the KRA service request hasn’t been approved yet. The guidance is straightforward: contact the relevant parties to check approval status, because the error means the eTIMS portal isn’t ready to accept the device, not that the configuration is wrong.

The second — and arguably more valuable — recovery path addresses the “Invoice number already exists” error. This one bites businesses that have been running eTIMS for a while and hit a sequence mismatch between their Odoo database and the eTIMS portal. The fix involves checking the last invoice number in the eTIMS portal, then using developer mode to update the “eTIMS Customer Invoice Number” sequence’s Next Number to the correct value. It’s a ten-second fix once you know the steps, but without documentation it can take hours of troubleshooting to figure out.

Multi-Company and Stock Movement Clarity

Businesses operating multiple branches in Kenya get clearer guidance on how the integration handles multi-company setups. Each company in Odoo gets its own OSCU serial number, branch code, and integration token — there’s no shared configuration across entities. This is how the KRA system works (each branch is registered as a separate device), and the documentation now makes that mapping explicit rather than leaving businesses to discover it through trial and error.

The stock movement documentation has also been tightened. All products must be registered in eTIMS before any stock movement involving those products is submitted to the tax authority. The updated language emphasizes “all products” rather than the vaguer “product(s)” wording that was there before — a small change in phrasing that prevents the common mistake of registering only some products and then hitting submission errors on the rest.

The Compliance Gap Keeps Closing

Kenya’s eTIMS mandate is one of the more demanding electronic invoicing regimes in East Africa, and the operational reality of running it day to day is harder than the technical integration itself. The integration token flow, the registration errors, the invoice number mismatches — these are all problems that emerge after the software is installed and configured, in the messy reality of daily business operations.

What this update signals is that Odoo is paying attention to the post-setup experience, not just the initial connection. A localization that connects to the tax authority’s API is table stakes. A localization that tells you exactly what to do when the inevitable errors appear, and puts the recovery steps within reach of an accountant rather than a developer, is what separates a usable system from a frustrating one. For Kenyan businesses running Odoo, this round of improvements should noticeably reduce the time spent wrestling with eTIMS compliance.

Ready to experience Odoo AI?

Join hundreds of teams using DearERP to customize Odoo in minutes, not weeks. Plans start at $29/month.