In this article
- OSCU vs VSCU: the operational difference
- What Odoo supports, and what must still be verified
- The certification question to ask before contracting
- Branch design is where many Odoo eTIMS projects fail
- Worked example: a connected multi-branch distributor
- Worked example: a remote supply operation
- Compliance controls that belong in the ERP design
- Capture the buyer PIN in the transmitted data
- Reconcile more than sales invoices
- A practical route-selection process
- Our verdict: which route fits your Odoo ERP?
- Frequently Asked Questions
- Is OSCU or VSCU mandatory for Odoo in Kenya?
- Can VSCU issue invoices when there is no internet connection?
- Does every Odoo branch need separate eTIMS setup?
- Why does the buyer PIN matter on an eTIMS invoice?
A Nairobi finance team closes the month, only to find that invoices from two branches were issued under the wrong receipt sequence and several buyer PINs never reached KRA. The invoices were printed, but the data required to support a purchaser’s tax position was incomplete.
That is the practical question behind eTIMS OSCU vs VSCU. The choice determines how an Odoo ERP sends tax data to the Kenya Revenue Authority, how each outlet operates, and what happens when connectivity fails. Our Odoo KRA eTIMS integration work starts with those operating conditions, not with a generic connector demonstration.
For connected enterprises, OSCU can support consistent invoice transmission and simpler reconciliation. VSCU can protect business continuity where bulk invoicing or unreliable connectivity is a genuine operational challenge. The route is selected by operating needs, not turnover or a published pricing band. SERPA helps businesses evaluate the right fit before committing to an integration.
OSCU vs VSCU: the operational difference
Both OSCU and VSCU are KRA eTIMS system-to-system integration routes. Both can connect an ERP such as Odoo to eTIMS. The difference is how the business works when internet availability, invoice volume and site conditions vary.
| Decision area | OSCU | VSCU | What this means for an Odoo ERP programme | | Primary operating model | Continuously online invoicing | Bulk invoicing or intermittent connectivity | Select the route around actual branch conditions, not the ERP brand. | | Internet requirement | Requires stable internet connectivity | Can continue invoicing offline, then transmit when connectivity returns | VSCU protects invoice continuity at sites with repeated outages. It does not remove the duty to transmit. | | Best fit | Head office, urban retail, service businesses and connected distribution sites | Remote depots, field operations and high-volume batch billing environments | A multi-entity business may need route decisions that reflect its approved product and deployment design. | | eTIMS integration status | KRA system-to-system route | KRA system-to-system route | Neither route is a manual workaround or an exemption from eTIMS. | | Certification check | Must be verified by integrator, product and version | Must be verified by integrator, product and version | Do not assume an Odoo connector is approved simply because another Odoo product appears on KRA’s list. | | Data transmission | KRA technical specifications require scheduled transmission at least every 15 minutes | Delayed transmission is possible while offline, followed by transmission when service returns | Finance and IT need an exception process to identify unsent documents before they become a tax risk. | KRA introduced the eTIMS system-to-system routes effective 1 September 2023. Its distinction is clear: OSCU suits businesses that invoice online, while VSCU is intended for businesses that need to issue invoices in bulk or continue operating through internet outages.
The practical mistake we see most often in eTIMS planning is calling VSCU “the offline version of OSCU” and stopping there. That description leaves out the control requirement. VSCU permits delayed transmission. It is not permission to leave invoice data untransmitted indefinitely.
What Odoo supports, and what must still be verified
Odoo’s official Kenya documentation describes its standard eTIMS module as OSCU. The technical module name is `l10n_ke_edi_oscu`. According to Odoo’s 2026 documentation, OSCU validates, encrypts, signs, transmits and stores tax invoices. Odoo also provides optional eTIMS components for Point of Sale and manufacturing workflows.
That is useful evidence for an OSCU implementation. It is not evidence that every Odoo deployment, connector or implementation partner is approved for every route.
KRA’s approved third-party integrator list dated 26 January 2026 records Odoo KE Ltd, ODOO Version 16, as an OSCU product. The same KRA list records other approved Odoo Version 16 products as VSCU or as both routes. Certification is therefore specific to the integrator, the product version and the certification entry. A board should ask for those three items before approving an implementation scope.
The certification question to ask before contracting
Ask the proposed provider to identify the exact approved product name, Odoo version, integration route and KRA certification entry that will be used in production.
This is more than procurement paperwork. KRA requires self-integrators and third-party vendors to develop and test in the eTIMS sandbox before certification. The certification submission includes the eTIMS Bio Data Form and supporting documents. For third-party vendors, KRA’s stated requirements include registration documents, a business permit, directors’ IDs, a tax compliance certificate, proof of at least three qualified technical staff and a notarised solvency declaration.
If a provider cannot match its proposed connector to the current KRA approved-integrator record, pause the decision. An attractive Odoo demonstration does not establish compliance status.
Branch design is where many Odoo eTIMS projects fail
KRA branch treatment is often discovered too late, after the chart of accounts, POS setup or warehouse structure is already configured. Odoo’s Kenya documentation states that each place of supply is a separate branch. Each branch’s OSCU must be independently initialised, and KRA receipt sequences are independent for each branch.
A business operating from a Nairobi headquarters, a Mombasa outlet and a Kisumu warehouse cannot treat its invoicing locations as one fiscal device simply because they share a legal entity and an Odoo database. Mapping each place of supply, its registration, initialisation and receipt sequence helps preserve reliable reporting and traceable records.
This matters because duplicate or incorrectly assigned receipt sequences make reconciliation harder. It also affects auditability. A finance team needs to trace a customer invoice from its Odoo document number to the correct KRA branch, fiscal receipt and transmitted record without relying on a spreadsheet maintained outside the ERP.
Worked example: a connected multi-branch distributor
Consider a distributor with several connected branches, a central Odoo environment and invoices issued throughout the day. With reliable internet, OSCU can enable timely transmission and give finance clearer visibility of invoice and credit-note exceptions. Independent branch initialisation and receipt sequences, together with testing of sales, returns, inventory, purchases and imports, help prevent reconciliation problems at go-live.
The business avoids the risk of a shared fiscal sequence across branches. Correct branch-level configuration supports accurate records, easier audits and more confident operational decisions.
Worked example: a remote supply operation
Consider an agricultural input supplier operating regional depots, including a location where connectivity frequently drops. The team still needs to issue invoices when collection vehicles arrive. Subject to verification of the exact KRA-certified Odoo product, version and integrator, VSCU may allow invoicing to continue offline and records to transmit when service returns. A clear exception report and assigned responsibility for synchronisation help protect customer service, transaction visibility and compliance.
If that depot has reliable connectivity after a network upgrade, the company should reassess rather than keep VSCU by habit. Route selection should reflect the current operating condition, not the conditions that existed when the project began.
Compliance controls that belong in the ERP design
All persons carrying on business, including non-VAT taxpayers, must electronically generate and transmit invoices through eTIMS. KRA has stated that non-compliance with VAT electronic-tax-invoice rules may attract a fine of up to KES 1 million, imprisonment of up to three years, or both.
The control objective is not simply to produce a receipt. It is to retain a valid, transmitted and reconcilable tax record.
Capture the buyer PIN in the transmitted data
From 1 January 2026, KRA began validating income and expense claims in individual and non-individual income tax returns against TIMS or eTIMS, withholding-tax and customs data. This affects the 2025 year-of-income or accounting-period return filed through iTax.
Where applicable, the buyer PIN must be correctly transmitted with the electronic invoice. A PIN printed on a document but missing from the transmitted eTIMS data can prevent the purchaser from supporting an expense or input-tax claim. In an Odoo implementation, this means defining whether the PIN is mandatory by customer type, validating its format at order or invoice stage, and reporting invoices that were submitted without it.
The step teams commonly skip is testing buyer data under real workflow conditions. They test a perfect sample customer created by IT, then discover that cash sales, counter sales and imported legacy records do not follow the same validation rules.
Reconcile more than sales invoices
KRA’s technical specification requires the Tax Invoice System to handle invoices, credit notes, debit notes, item data, inventory data, purchase data and import data. It also requires maximum scheduled data transmission every 15 minutes.
That requirement changes the scope of an ERP implementation. Finance should not sign off after a successful sales-invoice demonstration. The test pack should include returns, price corrections, stock movements, supplier purchasing and import processes where they apply to the business.
For a manufacturer using Odoo, the item and inventory elements matter because a fiscal integration must reflect operational records, not only general-ledger output. For a retail group, Point of Sale transactions require the same branch and receipt-sequence discipline as back-office invoices.
A practical route-selection process
We recommend making the OSCU versus VSCU decision before configuration begins. It avoids rework in branch setup, invoice workflows and exception reporting.
1. Map every place of supply. List every location that issues taxable documents, including outlets, depots and service counters. KRA’s branch approach means each place of supply requires separate treatment.
2. Measure connectivity by site. Use actual outage records and transaction timing, not a general statement that connectivity is “sometimes poor.” OSCU needs stable connectivity, while VSCU is designed for operations that must continue through outages.
3. Identify bulk-invoicing workflows. Review batch billing, field invoicing, POS activity and delivery-based billing. VSCU may fit bulk or intermittently connected operations, subject to certification verification.
4. Verify the exact certification entry. Confirm the proposed integrator, connector, Odoo version and approved route against KRA’s 26 January 2026 list. An approved OSCU product does not automatically validate a VSCU deployment.
5. Design the transmission exception process. Assign an owner for failed or delayed transmissions, set a review cadence and retain an auditable resolution log. KRA’s technical specification sets a maximum scheduled transmission interval of 15 minutes.
6. Test tax and operating documents together. Include invoices, credit notes, debit notes, stock data, purchases and imports where relevant. This reflects the data categories in KRA’s technical specification.
7. Prepare for government customer workflows where applicable. In August 2026, KRA announced eTIMS-IFMIS integration. Suppliers to Government entities must generate valid eTIMS invoices and ensure invoice details match eTIMS records.
Our verdict: which route fits your Odoo ERP?
Choose OSCU if your invoice points have stable connectivity and you need real-time fiscal processing across connected branches. This is the default direction for many established urban enterprises using Odoo, and it aligns with Odoo’s standard Kenya eTIMS documentation.
Choose VSCU when an operating site genuinely needs to invoice during recurring outages or when its billing model requires bulk processing. Do not choose it merely because offline capability sounds safer. It adds an important control obligation: the business must detect and clear delayed transmissions when connectivity returns.
If your turnover is under or over any particular amount, do not use that figure to select a route. KRA has not identified an OSCU or VSCU turnover threshold. Start with connectivity, invoice volume, branch structure and the current approval status of the exact Odoo integration product.
Frequently Asked Questions
Is OSCU or VSCU mandatory for Odoo in Kenya?
KRA recognises both as system-to-system eTIMS routes. The appropriate route depends on whether the business operates continuously online or needs offline and bulk-invoicing capability. The exact Odoo connector and version must have the relevant KRA approval.
Can VSCU issue invoices when there is no internet connection?
Yes. KRA positions VSCU for businesses that need to continue invoicing during internet outages, then transmit once connectivity returns. Delayed transmission does not mean the data can remain unsent.
Does every Odoo branch need separate eTIMS setup?
Each place of supply is treated as a separate branch in Odoo’s Kenya eTIMS documentation. Each branch’s OSCU is independently initialised and has independent KRA receipt sequences.
Why does the buyer PIN matter on an eTIMS invoice?
From 1 January 2026, KRA has validated income and expense claims against eTIMS, withholding-tax and customs data. Where applicable, a correctly transmitted buyer PIN supports matching between the purchaser’s claim and the electronic invoice record.
Choosing the appropriate eTIMS route before implementation helps prevent branch-level rework, strengthens invoice accuracy and gives finance teams greater confidence in their records. Contact SERPA Africa to discuss your Odoo KRA eTIMS integration requirements and request a tailored quote based on your business processes and operating environment.