Skip to main content

Odoo Kenya Localization 2026: KRA eTIMS, VAT & PAYE Setup

Configure Odoo for Kenya compliance: l10n_ke chart, KRA eTIMS Lite/OSCU integration, VAT 16%, withholding, SHIF & Housing Levy payroll.

E
ECOSIRE Research and Development Team
|4 मई 20269 मिनट पढ़ें1.7k शब्द|

यह लेख वर्तमान में केवल अंग्रेज़ी में उपलब्ध है। अनुवाद जल्द आ रहा है।

The Kenya Revenue Authority (KRA) operates one of East Africa's most ambitious electronic tax compliance programs. Through eTIMS (Electronic Tax Invoice Management System), Kenya requires every VAT-registered business to issue invoices through KRA-authorized solutions, with real-time data transmission to KRA servers.

The Kenya Revenue Authority (KRA) operates one of East Africa's most ambitious electronic tax compliance programs. Through eTIMS (Electronic Tax Invoice Management System), Kenya requires every VAT-registered business to issue invoices through KRA-authorized solutions, with real-time data transmission to KRA servers. The mandate became fully operational on 1 September 2023, replacing the legacy ETR (Electronic Tax Register) regime, and continues expansion through 2025-2026 to cover smaller businesses and additional transaction types. Odoo's Kenya integration requires connecting to KRA's eTIMS Online or eTIMS API, typically through partner solutions or custom modules.

Key Takeaways

  • Kenya Revenue Authority (KRA) administers VAT (16%), Corporate Tax (30%), PAYE, and withholding
  • eTIMS mandatory since September 2023 for all VAT-registered taxpayers
  • Three eTIMS deployment options: Online, Lite (web), and OSCU (Online Sales Control Unit) for retail
  • Odoo Kenya localization typically combines l10n_ke chart with custom eTIMS connector
  • Withholding tax 5-30% on services, royalties, dividends, with treaty rates for non-residents
  • Statutory reports include monthly VAT (VAT3), monthly PAYE, monthly WHT, annual CIT
  • KRA PIN (11 chars) required for all transactions; eTIMS device ID per branch

Kenya Tax Framework Overview

KRA enforces:

  • VAT: 16% standard rate; 8% on petroleum products; 0% on exports and certain agricultural inputs; exempt for healthcare, education, financial services
  • Corporate Income Tax: 30% standard for resident companies; 37.5% for non-resident; preferential rates for Special Economic Zones (10% for first 10 years)
  • PAYE (Pay As You Earn): Progressive personal income tax with brackets up to 32.5%
  • Withholding Tax: 5-30% on various payments depending on resident/non-resident status
  • Excise Duty: On specific goods (alcohol, tobacco, cosmetics, petroleum, telecom services)
  • Digital Service Tax (DST): 1.5% on digital services from non-residents (refined to Significant Economic Presence Tax in 2025)

Required Odoo Localization Modules

ModulePurposeSource
l10n_keKenya chart of accounts and VATCommunity
l10n_ke_accountLocalized financial reportsCommunity / Custom
l10n_ke_etimsKRA eTIMS connectorCustom / Partner
account_reportsTax report engineEnterprise
hr_payroll_l10n_kePAYE, NSSF, NHIF, NITACommunity / Custom

eTIMS integration is typically built as a custom module or sourced from local Kenyan partners. Major eTIMS solution providers include Tremol, Comply, EGS Kenya, Solbox, and others — most have published Odoo connectors or can develop one to specification.

Chart of Accounts Setup

Kenya's chart follows IFRS as adopted by ICPAK (Institute of Certified Public Accountants of Kenya). The community l10n_ke chart provides:

  • 1xxx: Assets (cash, debtors, stocks, fixed assets)
  • 2xxx: Liabilities (VAT payable, PAYE payable, NSSF/NHIF, withholding)
  • 3xxx: Equity
  • 4xxx: Revenue
  • 5xxx: Cost of sales
  • 6xxx-7xxx: Operating expenses

Configure the company record with:

  • KRA PIN (11 alphanumeric characters, e.g., P051234567Z)
  • Certificate of Incorporation number
  • VAT registration status (mandatory above KSH 5 million annual turnover)
  • eTIMS device ID per branch/POS
  • Excise duty registration if applicable

VAT Configuration

Configure VAT tax records:

Tax NameRateTypeNotes
VAT 16% Output16%SalesStandard
VAT 8% Output (Petroleum)8%SalesPetroleum products
VAT 0% Output (Exports)0%SalesExports, qualifying agricultural
VAT Exempt0%SalesHealthcare, education, financial
VAT 16% Input16%PurchaseRecoverable
VAT Reverse Charge16%PurchaseImports of services

Reverse charge applies to imports of services from non-residents — the recipient self-charges VAT and may simultaneously claim it as input (cancelling out for fully taxable activities).

eTIMS Integration

eTIMS deployment options:

OptionUse CaseIntegration
eTIMS OnlineWeb-based for low-volumeManual entry / portal
eTIMS LiteAPI for SMEsREST API
OSCU (Online Sales Control Unit)High-volume retailHardware device + API
Multi-paying ModesHybridCombination

Most Odoo deployments use eTIMS API integration. The flow:

  1. Invoice approved in Odoo
  2. eTIMS connector formats payload per KRA spec (signature, items, taxes)
  3. Submits to KRA eTIMS API
  4. KRA validates and returns:
    • SCU Information (Receipt Number, Date, Time)
    • Internal Data (signature)
    • Receipt Signature (verification code)
    • QR Code data
  5. Odoo stores eTIMS metadata and prints invoice with QR code

Required fields:

  • KRA PIN (seller and buyer)
  • Item codes (Kenya Standards Bureau or KEBS-aligned classifications)
  • Tax breakdown
  • Receipt label (NS/NR for normal sale/refund, etc.)
def submit_to_etims(self, invoice):
    payload = {
        'tin': invoice.company_id.l10n_ke_pin,
        'bhfId': invoice.company_id.l10n_ke_branch_id,
        'invcNo': invoice.name,
        'orgInvcNo': 0,  # 0 for new invoice; original number for refund
        'custTin': invoice.partner_id.l10n_ke_pin,
        'custNm': invoice.partner_id.name,
        'salesTyCd': 'N',  # Normal sale
        'rcptTyCd': 'S',  # Sale (R for refund)
        'pmtTyCd': 'CASH',  # Or BANK, CHEQUE, etc.
        'salesSttsCd': '02',  # Confirmed
        'cfmDt': invoice.invoice_date.strftime('%Y%m%d%H%M%S'),
        'salesDt': invoice.invoice_date.strftime('%Y%m%d'),
        'totItemCnt': len(invoice.invoice_line_ids),
        'totAmt': float(invoice.amount_total),
        'totTaxAmt': float(invoice.amount_tax),
        'taxblAmtA': 0.0,  # Exempt
        'taxblAmtB': float(invoice.amount_untaxed),  # Standard 16%
        'itemList': [...],
    }
    return self._call_etims_api('saveTrnsSalesOsdc', payload)

Withholding Tax

Configure WHT codes:

TypeRate (Resident)Rate (Non-Resident)
Management/Professional fees5%20%
Royalties5%20%
Interest15%15%
Dividends5%15%
Rent (commercial)10%30%
Insurance commissions5%20%
Service fees (general)N/A20%

Withholding agents must:

  • File monthly returns by the 20th of the following month via iTax
  • Issue WHT certificates to suppliers
  • Allow suppliers to credit WHT against CIT/PAYE

Payroll Considerations

Kenyan payroll components:

ItemEmployeeEmployerNotes
PAYEPer progressive scaleN/AUp to 35% per Finance Act 2023
NSSF (Tier 1 + 2)6%6%New rates per NSSF Act 2013
SHIF (Social Health Insurance Fund)2.75%N/AReplaces NHIF from October 2024
Housing Levy1.5%1.5%Affordable Housing Act 2024
NITAN/AKSH 50/employeeIndustrial training

PAYE brackets (2026):

  • First KSH 24,000: 10%
  • Next KSH 8,333: 25%
  • Next KSH 467,667: 30%
  • Next KSH 300,000: 32.5%
  • Above KSH 800,000: 35%

Personal Relief: KSH 2,400/month (KSH 28,800/year).

Reporting Requirements

A Kenya Odoo deployment must produce:

  • VAT3 Return: Monthly via iTax, by the 20th
  • PAYE Return (P10/P10A): Monthly via iTax, by the 9th
  • Withholding Tax Returns: Monthly via iTax, by the 20th
  • Excise Duty Returns: If applicable, monthly
  • CIT Return: Annually, within 6 months of fiscal year end
  • Annual Return for Resident Individuals: For employees with multiple income sources
  • NSSF / SHIF / Housing Levy: Monthly to respective authorities

Implementation Checklist

  1. Confirm KRA PIN, VAT registration, branch IDs
  2. Choose eTIMS deployment option (Online, Lite, OSCU based on volume)
  3. Install community l10n_ke; configure PIN, branch, VAT status
  4. Build or integrate eTIMS connector module
  5. Configure VAT 16%, 8%, 0%, exempt categories
  6. Configure WHT codes for resident and non-resident scenarios
  7. Configure payroll with PAYE, NSSF Tier 1+2, SHIF, Housing Levy
  8. Test eTIMS submission in KRA sandbox before production
  9. Build VAT3 export aligned to iTax format
  10. Schedule monthly filings: PAYE by 9th, VAT/WHT by 20th

Common Pitfalls

Wrong PAYE personal relief: Personal Relief of KSH 2,400/month must be applied per employee. Multiple-job scenarios complicate this — only one employer can grant relief.

SHIF transition gaps: The transition from NHIF to SHIF (October 2024) changed the contribution mechanic from tiered amount to 2.75% of gross. Old configurations under-deduct.

Housing Levy missed: The Affordable Housing Levy (1.5% employee + 1.5% employer) is mandatory since 2024. Many ERPs configured before mid-2024 lack this.

eTIMS PIN mismatches: Customer PIN must be valid in KRA's registry. Invalid or wrong PIN causes submission rejection.

VAT input on disallowed expenses: Entertainment, employee benefits, and certain motor vehicle expenses have restricted input VAT. Configure separate codes.

ECOSIRE provides Odoo localization for Kenya, including eTIMS integration, multi-branch invoicing, and SHIF/Housing Levy payroll. Contact us for implementation or explore accounting services.

Frequently Asked Questions

Which eTIMS deployment option works best for Odoo?

For most Odoo deployments, eTIMS Lite (API-based) is the right choice — it integrates cleanly with Odoo's invoice approval workflow without requiring physical OSCU hardware. OSCU is mandated for high-volume retail/POS scenarios. eTIMS Online (manual portal entry) is impractical for ERP-driven operations.

Does Odoo support eTIMS natively?

Odoo's official localization doesn't include native eTIMS as of early 2026 — integration is via custom modules or partner-provided connectors. Several Kenyan Odoo partners maintain commercial eTIMS connectors. ECOSIRE has built eTIMS Lite connectors for Kenyan clients in distribution, manufacturing, and services.

How does the new SHIF differ from the old NHIF?

NHIF used tiered contribution amounts (e.g., KSH 1,700/month for high earners). SHIF, effective October 2024 under the Social Health Insurance Act 2023, charges 2.75% of gross monthly salary with no cap. For high earners, SHIF is significantly higher. Update Odoo payroll structures during the transition.

Can we issue credit notes through eTIMS?

Yes, eTIMS supports refund/cancellation receipts (rcptTyCd='R' or 'C'). The original receipt's eTIMS reference must be linked. Odoo's reverse functionality should populate the orgInvcNo field with the original eTIMS receipt number for proper KRA reconciliation.

What about non-VAT-registered businesses?

Businesses below the VAT registration threshold (KSH 5M) are not required to use eTIMS for VAT purposes but may opt in voluntarily. CIT obligations still apply. Most pre-revenue or small businesses skip eTIMS until they cross the threshold; Odoo's VAT codes can be configured as inactive until registration occurs.

शेयर करें:
E

लेखक

ECOSIRE Team

Technical Writing

The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.

ECOSIRE

Odoo ERP के साथ अपना व्यवसाय बदलें

आपके संचालन को सुव्यवस्थित करने के लिए विशेषज्ञ ओडू कार्यान्वयन, अनुकूलन और समर्थन।