Skip to main content
    Back to Blog
    KRA eTIMS
    VAT 16%
    Tax Invoicing
    M-Pesa
    FinTech Kenya

    KRA eTIMS API 3.0 Integration Guide: Automated VAT 16% & M-Pesa Receipt Signing for Kenyan Businesses

    Ramon Gitau
    Sep 19, 2026
    7 min read
    Strategic Insight

    Integrate KRA eTIMS API 3.0 for electronic VAT 16% invoicing in Kenya. Generate SHA-256 control signatures, WHVAT 2% deductions, and M-Pesa receipt QR codes.

    KRA eTIMS API 3.0 Integration Guide: Automated VAT 16% & M-Pesa Receipt Signing for Kenyan Businesses

    Kenya Revenue Authority's (KRA) electronic Tax Invoice Management System (eTIMS API 3.0) mandates real-time electronic invoice signing, itemized VAT 16% calculation, and cryptographic Control Code (eTIMS-CC) verification for all VAT-registered businesses, corporate vendors, and financial institutions in Kenya.

    This guide provides developer specifications for integrating KRA eTIMS API 3.0, generating SHA-256 control signatures, handling Withholding VAT (WHVAT 2%), and auto-linking Safaricom M-Pesa transaction callbacks with eTIMS QR receipts.

    ---

    🏛️ Key Capabilities of eTIMS API 3.0

  1. SHA-256 Control Code Hashing (eTIMS-CC): Every tax invoice requires a unique cryptographic signature derived from the seller's PIN, invoice date, total amount, and KRA device serial number.
  2. Itemized VAT Breakdown: Automatic line-item parsing distinguishing standard 16% VAT, zero-rated goods, and tax-exempt financial advisory services.
  3. Withholding Tax Automations (WHVAT 2%): Automated deduction tracking for government agencies and appointed withholding agents.
  4. M-Pesa STK Push Integration: Automatic receipt generation linked directly to Safaricom Daraja 3.0 transaction IDs.
  5. ---

    💻 SHA-256 Control Code Generation Example

    import { crypto } from "node:crypto";
    
    export function generateEtimsControlCode(
      kraPin: string,
      invoiceNum: string,
      totalAmountKes: number,
      timestamp: string
    ): string {
      const rawPayload = `${kraPin}|${invoiceNum}|${totalAmountKes.toFixed(2)}|${timestamp}`;
      return crypto.createHash("sha256").update(rawPayload).digest("hex").toUpperCase();
    }
    

    ---

    📋 Developer & Business Integration Checklist

  6. [x] Register corporate PIN on the KRA eTIMS Developer Portal.
  7. [x] Implement SHA-256 invoice control code signing in backend workers.
  8. [x] Link M-Pesa Daraja callback webhooks directly to eTIMS receipt APIs.
  9. [x] Generate compliant 2D QR codes on generated PDF invoices.
  10. Test live invoice signing and QR verification on the [KRA eTIMS Signer Cockpit](https://ramongitau.uk/tools/pdf-inspector) on [ramongitau.uk](https://ramongitau.uk).

    Share Insights

    R

    Ramon Gitau

    Strategic Consultant

    Strategic consultant specializing in digital transformation and growth mechanics for financial institutions in East Africa.

    Enjoyed this insight?

    Join 5,000+ Kenyan professionals receiving strategic updates.

    Authority & Insights

    Read Next

    Continue exploring related topics and strategic insights.