Real-time eTIMS transmission to KRA plus withholding VAT and income tax on one bill — built, installed and supported by ECOSIRE. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $499.00 USD; request a quote for a scoped proposal.
Aperçu illustratifReal-time eTIMS transmission to KRA plus withholding VAT and income tax on one bill
— built, installed and supported by ECOSIRE.
Aucune configuration à faire vous-même — une app fonctionnelle conçue, installée et prise en charge par ECOSIRE.
Commencez par un prix de développement unique. Nous cadrons le projet avec vous au lancement.
ECOSIRE la développe, la configure et l'installe sur votre Odoo.
Vous êtes en ligne en 2–4 semaines environ, avec une période d’assistance après le lancement.
Kenya's eTIMS (electronic Tax Invoice Management System) mandate means every invoice your business issues must be transmitted to the Kenya Revenue Authority (KRA) in real time, stamped with a control unit invoice number and a scannable QR code — and any withholding VAT or withholding income tax you deduct has to reconcile cleanly against the same bill. Doing that by hand, or bolting a spreadsheet onto Odoo, is exactly how businesses fall out of compliance and lose input-VAT claims.
This is a BUILD-TO-ORDER module. It is not an existing apps.odoo.com download and there is no instant-download link. ECOSIRE designs, builds, installs and supports a Kenya eTIMS / KRA compliance module tailored to your chart of accounts, service catalogue and OSCU/VSCU setup, then hands it over running on your instance. Typical lead time is 2–4 weeks from signed scope to go-live, depending on KRA sandbox onboarding and the number of company/branch tax registrations involved.
Under the hood it is a proper Odoo application. A dedicated __manifest__.py declares dependencies on account, l10n_ke and base; new models.Model classes extend account.move and account.move.line with the fields KRA requires (control unit invoice number, receipt signature, item classification code, tax-point date). Withholding amounts are derived with @api.depends computed fields so a 2% WHT-VAT deduction or a 3–30% withholding income tax rate is calculated the moment the service line is priced — never keyed twice. Transmission to the eTIMS OSCU/VSCU device API runs through a queued service layer with retry and idempotency, so a slow KRA endpoint never blocks your invoicing. Every access path is locked down with ir.model.access.csv plus record rules so only authorised finance users can re-transmit or void; QWeb reports render a KRA-compliant tax invoice with the returned control number and QR; and automated actions flag any invoice that failed to reach KRA for follow-up. The module exposes its transmission status over Odoo's XML-RPC/JSON-RPC API so your POS, e-commerce or external billing tools can trigger and confirm eTIMS submission programmatically. It targets Odoo 17, 18 and 19 on both Community and Enterprise.
The result: you invoice inside Odoo exactly as you do today, the KRA submission happens in the background, and your withholding taxes land on the correct control accounts ready for the monthly return — with ECOSIRE on the hook to keep it aligned as KRA revises the eTIMS specification.
Runs invoicing and the monthly VAT return inside Odoo and needs every invoice to reach KRA in real time without adding manual steps, so input-VAT claims and WHT deductions stay defensible at audit.
Delivers Odoo to multiple Kenyan clients and wants a maintained eTIMS/KRA compliance layer they can resell and deploy per client rather than rebuilding OSCU integration and withholding logic on every project.
Oversees several KRA-registered branches or companies and needs per-branch device credentials, consolidated WHT control accounts and a dashboard that surfaces any failed transmission before it becomes a compliance gap.
Issues consultancy, management-fee, rent or royalty invoices that attract 3–30% withholding income tax and 2% WHT-VAT, and needs the correct rate applied per service type and a printable WHT certificate for each client.
| Critère | ÉCOSIRE | Construction personnalisée | Concurrent | Natif Odoo |
|---|---|---|---|---|
| Real-time eTIMS transmission to KRA with control unit number & QR | Inclus | Prise en charge partielle | Prise en charge partielle | Non inclus |
| Withholding VAT (2%) auto-deduction to a control account | Inclus | Prise en charge partielle | Prise en charge partielle | Non inclus |
| Withholding income tax by service type (3–30%) | Inclus | Prise en charge partielle | Non inclus | Non inclus |
| Idempotent queued transmission with retry & failure dashboard | Inclus | Non inclus | Prise en charge partielle | Non inclus |
| Tailored to your chart of accounts, service catalogue & branches | Inclus | Inclus | Non inclus | Non inclus |
| Ongoing alignment with KRA eTIMS spec changes under SLA | Inclus | Non inclus | Prise en charge partielle | Non inclus |
| XML-RPC/JSON-RPC hooks for POS / e-commerce submission | Inclus | Prise en charge partielle | Non inclus | Non inclus |
| Role-based access & audit trail on tax re-transmission | Inclus | Prise en charge partielle | Prise en charge partielle | Prise en charge partielle |
| Supported across Odoo 17, 18 & 19 (Community & Enterprise) | Inclus | Prise en charge partielle | Prise en charge partielle | Inclus |
This is a build-to-order module, not an instant download. Typical lead time is 2–4 weeks from a signed scope to go-live on your instance. The main variables are KRA eTIMS sandbox onboarding, the number of KRA PINs/branches to register, and how much your chart of accounts and service catalogue need mapping. We agree the exact timeline in writing before we start and keep you updated through sandbox testing and production cut-over.
Every engagement includes a defined post-go-live support and updates window under an SLA set in your scope. That covers bug fixes, help with re-transmissions and reconciliation questions, and — critically — alignment with KRA eTIMS specification changes, since KRA revises the API and payload requirements over time. We ship updates as tagged releases per Odoo version so upgrades stay clean. Extended or ongoing support can be arranged as an annual agreement.
We build and test against Odoo 17, 18 and 19, on both Community and Enterprise. The module layers on top of the standard Kenyan localisation (l10n_ke) and extends account.move, so it fits your existing accounting flow. We target the specific version and edition you run in production.
Withholding amounts are computed with @api.depends fields on the bill lines. WHT-VAT is deducted at 2% on qualifying supplies, and withholding income tax is applied at the correct statutory band (3–30%) based on the service type mapped to each product/service category. Both post to dedicated control accounts and generate the data for a printable WHT certificate, so a single bill can carry both deductions and still reconcile against your monthly return.
Transmission runs through an idempotent, queued service layer with automatic retry and back-off, so a slow or down KRA endpoint never blocks your invoicing or creates duplicate submissions. Any invoice that fails to reach KRA is flagged on the compliance dashboard with the raw eTIMS error, and an authorised user can re-transmit with one click once the endpoint recovers.
Yes. The module exposes transmission and status over Odoo's XML-RPC/JSON-RPC API, so a connected POS, e-commerce checkout or third-party billing system can trigger an eTIMS submission and confirm the returned control unit number programmatically. We scope those integration points with you during the build.
Yes. Security is enforced with ir.model.access.csv plus record rules. Only members of the eTIMS Officer group can re-transmit, void or edit KRA tax metadata; everyone else invoices normally without touching the compliance layer. Every submission and re-transmission is logged in the record's chatter for a full audit trail.

A build-to-order Odoo localization that loads Algeria's full wilaya and commune hierarchy with bilingual French and Arabic names, wired into partner addresses and reporting. ECOSIRE builds, installs, and supports it after your quotation.

A build-to-order Odoo payment provider that connects your checkout to 2C2P for cards, local ASEAN wallets, and over-the-counter payments. ECOSIRE builds, installs, and supports it on Odoo 17, 18, or 19.

Automated multi-step abandoned-cart and checkout recovery emails with discounts, resume links, and recovered-revenue reporting — built for your Odoo.

A build-to-order Odoo module that lets you render any accounting report — P&L, Balance Sheet, aged reports, journals, trial balance — in a currency of your choice, with automatic conversion at the rate you define. ECOSIRE scopes, builds, installs and supports it for your Odoo 17/18/19 environment.
Real-time eTIMS transmission to KRA plus withholding VAT and income tax on one bill — built, installed and supported by ECOSIRE.