In this article
- When the eTIMS portal stops fitting the operation
- An illustrative low-volume decision
- Choose the correct KRA system-to-system route
- An illustrative multi-branch decision
- Step-by-step: move invoice volume from the portal into Odoo
- 1. Map the current invoice process
- 2. Confirm whether OSCU fits your connectivity model
- 3. Configure the Odoo Kenya localisation
- 4. Submit the OSCU service request to KRA
- 5. Initialise each branch before production
- 6. Test invoices, corrections and reconciliation
- What KRA approval and certification mean
- Controls that make the integration auditable
- Frequently Asked Questions
- Can we keep using the eTIMS Online Portal while implementing Odoo?
- Is Odoo installed with eTIMS compliance already live?
- Should our business use OSCU or VSCU?
- Is there a confirmed KRA penalty specific to system-to-system eTIMS integration?
A finance manager in Nairobi can keep up with eTIMS while the business sends a handful of service invoices each month. The pressure changes when branches, credit notes, stock dispatches and month-end reconciliations all depend on the same manual portal process.
An Odoo KRA eTIMS integration moves invoice issuance from a stand-alone portal workflow into the ERP that already holds the customer, product, tax and branch data. For Kenyan businesses with rising invoice volume, that creates a more controlled route to eTIMS compliance and auditable financial reporting.
As of 16 October 2026, the Kenya Revenue Authority, not the eTIMS portal itself, requires all persons engaged in business to onboard eTIMS and issue electronic tax invoices. The practical question is not whether to issue eTIMS invoices. It is whether the portal remains suitable for the way your business now invoices.
When the eTIMS portal stops fitting the operation
KRA describes the eTIMS Online Portal as intended for service-sector taxpayers issuing no more than 10 invoices per month. That makes it a reasonable starting point for a low-volume professional practice, but a poor operating model for a business processing regular sales, recurring invoices or multi-branch transactions.
The portal may still issue a compliant invoice. The problem is what happens around the invoice:
● Sales staff may rekey customer and item data already held in the ERP.
● Finance teams may reconcile two records, the ERP invoice and the portal invoice.
● Branch teams may use inconsistent tax, customer or stock references.
● Credit notes and corrections may be harder to trace back to the original commercial transaction.
We recommend retaining the portal for its intended low-volume service use. If you regularly exceed 10 service invoices per month, or invoice from several operational locations, assess system-to-system integration before manual workarounds become the permanent process.
That recommendation is about operational control, not a new tax threshold. KRA’s obligation to issue electronic tax invoices applies more broadly, while the 10-invoice figure describes the intended portal use case.
An illustrative low-volume decision
Take a Nairobi consulting firm with six staff, eight service invoices per month and monthly billings of US$40,000. The firm can usually operate through the eTIMS Online Portal because its volume sits within KRA’s stated intended use. A hypothetical US$8,000 ERP integration budget would be hard to justify on invoice processing alone while the business stays at that volume.
The managing partner should instead make sure each invoice is issued through eTIMS, retain clear records, and review the choice if invoice volume rises. The step often skipped is estimating invoices at the next growth stage, rather than using last month’s volume as the only measure.
Choose the correct KRA system-to-system route
KRA supports system-to-system integration through an API for businesses that already use a billing system or ERP. It identifies two routes: Online Sales Control Unit, known as OSCU, and Virtual Sales Control Unit, known as VSCU.
| Operating condition | KRA route to assess | Why it matters | | Invoices are issued from a system that operates online | OSCU | KRA positions OSCU for online systems, which fits a connected Odoo deployment. | | The business issues invoices in bulk or does not have continuous connectivity | VSCU | KRA positions VSCU for bulk invoicing and intermittently connected systems. | | Service business with no more than 10 invoices per month | eTIMS Online Portal | This is the portal’s stated intended use case. | OSCU and VSCU are not interchangeable labels. Selecting the wrong route can force a redesign after configuration has begun, particularly where field teams or remote locations lose connectivity.
For a connected Odoo ERP environment, OSCU is commonly the route to assess. Odoo’s Kenya localisation includes the Kenya eTIMS EDI Integration module, identified in Odoo 19 documentation as `l10n_ke_edi_oscu`. Odoo states that its OSCU flow validates, encrypts, signs, transmits and stores tax invoices.
Those capabilities matter because the invoice should not become a disconnected tax event. It needs to remain tied to the sales order, delivery, customer account, payment status and general ledger entries that support an audit trail.
An illustrative multi-branch decision
Consider an illustrative hardware distributor with three Kenyan branches, 25 staff and 450 invoices per month. Its monthly invoiced sales are US$300,000, and the finance team has set a hypothetical US$25,000 implementation budget for Odoo, data preparation and eTIMS configuration. At that volume, manually reproducing invoice details on a portal creates a material control risk even before the time cost is measured.
The distributor should design branch structure before turning on production invoicing. The common mistake would be configuring one head-office process and assuming it automatically covers every outlet. Odoo’s Kenya documentation requires separate KRA branch IDs, independent OSCU initialisation for each branch, and KRA invoice sequences per branch.
If the team had to redo anything, it would likely be branch master data. That is why we place legal entity, branch, warehouse and invoice-sequence decisions before user training.
Step-by-step: move invoice volume from the portal into Odoo
1. Map the current invoice process
List every invoice source: counter sales, field sales, recurring services, online orders, project billing and credit notes. Then record which legal entity and branch issue each document.
This reveals whether your problem is invoice volume, branch control, connectivity, or all three. A finance team often counts only final invoices and misses credit notes, pro forma conversions or invoices raised by a separate business unit.
2. Confirm whether OSCU fits your connectivity model
Choose OSCU where invoicing occurs from an online system. Consider VSCU where bulk issuance or unreliable connectivity defines the operation.
Do not select a route because it sounds more advanced. The correct choice follows how invoices are actually issued at the point of sale, warehouse, branch or service desk.
3. Configure the Odoo Kenya localisation
The Odoo Kenya localisation must be configured alongside the eTIMS integration module. Odoo documents that OSCU initialisation is required before production use.
An Odoo installation alone is not live eTIMS compliance. The tax setup, OSCU service request, initialisation and production configuration must all be complete before the business relies on the ERP to issue live tax invoices.
Your implementation team should test the practical invoice scenarios that create exceptions: a tax-inclusive price, a credit note, a customer address correction and a branch invoice. These cases show whether commercial data and tax data stay aligned.
4. Submit the OSCU service request to KRA
Odoo’s official Kenya documentation sets out the taxpayer flow. The taxpayer submits an OSCU service request in eTIMS, selects OSCU, identifies Odoo KE LTD as the third-party integrator, provides the Odoo OSCU serial number, and uploads the signed commitment form plus the owner’s or director’s identification.
Each item exists for a reason. The service request connects the taxpayer’s KRA eTIMS profile to the integration, while the serial number identifies the OSCU instance being authorised.
Confirm the exact fields and required documents in eTIMS at the time of submission. Requirements can change, and the current portal workflow is the operational record KRA will assess.
5. Initialise each branch before production
For multi-branch businesses, configure the relevant KRA branch IDs and complete independent OSCU initialisation for every branch. Maintain the KRA invoice sequence separately for each branch.
This is not a cosmetic configuration detail. A branch invoice needs to carry the branch identity and sequence expected by the tax process, so finance can reconcile activity to the correct operating location.
6. Test invoices, corrections and reconciliation
Before production, issue test transactions that represent the actual workday. Check that the Odoo invoice, eTIMS response, invoice number, customer details, tax treatment and accounting entry agree.
Then test a correction. Many implementations test only a successful sale, while the operational risk appears when an item quantity changes, an invoice is cancelled or a credit note is needed after month-end.
We recommend assigning named ownership for daily exception handling. Finance should own reconciliation, while IT or the implementation partner should own integration errors and technical changes. Without this split, rejected or incomplete documents can sit unresolved between departments.
What KRA approval and certification mean
A business may self-integrate or work with a KRA-certified third-party integrator. KRA states that both self-integrators and third-party vendors must develop and test in the sandbox, submit the eTIMS Bio Data Form and supporting documents to KRA eTIMS Operations, pass technical and administrative review, and receive interim approval before issuing receipts through the integration.
Self-integration carries additional delivery responsibilities. KRA lists a Tax Compliance Certificate, proof of at least three qualified technical staff, integration architecture documentation, and read-only optical media containing the TIS integration software and certification PDFs.
For most enterprises, the judgement call is straightforward. If eTIMS integration is not a core internal capability, do not treat self-integration as a shortcut. The internal resourcing and certification evidence can outweigh the perceived control benefit.
KRA’s search index identifies a refreshed list of approved eTIMS third-party system-to-system software integrators dated 26 January 2026. Verify the current approved status of any implementation partner immediately before publication, contracting or production deployment.
Odoo documentation identifies Odoo KE LTD within the OSCU service-request flow. That does not remove the taxpayer’s responsibility to confirm current KRA status and complete the required request, documentation and production steps.
Controls that make the integration auditable
An eTIMS project should be measured against finance controls, not only against whether an invoice transmits. We normally structure the readiness review around the following evidence.
| Control area | Evidence to retain | Why the board should care | | Branch setup | KRA branch IDs, branch-to-Odoo mapping and invoice sequences | Supports traceability across operating locations. | | Invoice integrity | Odoo invoice, eTIMS response and correction records | Shows whether commercial and tax records agree. | | User access | Roles for sales, finance, tax and system administration | Limits unauthorised invoice changes. | | Exception handling | Rejection log, owner and resolution date | Prevents failed submissions from being ignored. | | Partner governance | Current KRA approval check and implementation documentation | Reduces reliance on unverified vendor claims. | This is where a Unified ERP approach earns its ROI. Odoo can keep sales, inventory, invoicing and accounting data in one operating system, while the Kenya tax localisation supports the eTIMS workflow. The result is better real-time visibility, provided the master data and branch configuration are governed properly.
Frequently Asked Questions
Can we keep using the eTIMS Online Portal while implementing Odoo?
Yes, provided you continue to meet the obligation to issue eTIMS electronic tax invoices. The portal is intended for service-sector taxpayers issuing no more than 10 invoices per month, so it can serve as a temporary or low-volume route while the Odoo implementation is prepared.
Is Odoo installed with eTIMS compliance already live?
No. Odoo’s Kenya localisation includes an OSCU integration module, but live use still requires the KRA service request, required documentation, OSCU initialisation and production configuration. Each branch also requires its own relevant configuration and initialisation.
Should our business use OSCU or VSCU?
Use OSCU where the invoicing system operates online. Assess VSCU for bulk invoicing or where systems are not always online. Confirm the decision against your actual connectivity and invoice-issuance process before development begins.
Is there a confirmed KRA penalty specific to system-to-system eTIMS integration?
The official KRA integration sources reviewed as of 16 October 2026 did not confirm a specific monetary penalty for system-to-system integration. The compliance obligation supported by KRA’s guidance is that persons engaged in business must onboard eTIMS and issue electronic tax invoices.
If your invoice volume has outgrown the portal, Request a Consultation through our Odoo KRA eTIMS integration service.