eTIMS (KRA)

eTIMS is the Kenya Revenue Authority's electronic tax invoice system. Every VAT-registered business in Kenya is required to issue eTIMS-compliant receipts. Tranzo POS handles the integration so your receipts are tax-valid automatically.

Do you need eTIMS?

What you need before setup

  1. KRA PIN — your company's tax identification number
  2. eTIMS Branch ID — assigned by KRA when you register a physical location with them
  3. OSCU credentials — username and password issued during eTIMS onboarding

If you don't have these yet, log in to your KRA iTax account and follow the eTIMS onboarding flow. Or email hello@tranzopos.com and we'll walk you through it.

Connecting eTIMS to Tranzo

  1. Drawer → SettingseTIMS (KRA)
  2. Enter your KRA PIN, Branch ID, OSCU username, and password
  3. Tap Initialize device
  4. Tranzo sends an OSCU init request to KRA. On success, your device receives a unique signing key.

From this moment, every completed sale is submitted to KRA automatically.

What happens at sale time

Behind the scenes, when a sale completes:

  1. Tranzo writes the sale to the database
  2. Queues a background job to submit it to KRA's eTIMS endpoint
  3. KRA returns a Fiscal Document Number (FDN), QR code, and invoice number
  4. The receipt updates with this data — visible on the printed/emailed receipt

If KRA is down or the request fails, the sale stays in pending status. Tranzo retries automatically every few minutes.

Receipt format

eTIMS-compliant receipts include:

Tracking compliance

Drawer → SettingseTIMSCompliance. Shows:

Aim for 99%+ compliance. Anything below 95% and you're at risk during a KRA audit.

Retrying failed submissions

From the Compliance page → Retry all failed. Or retry individual sales from their detail page. Tranzo will resubmit using the original sale data.

Common errors

ErrorCauseFix
Device not initializedOSCU init never ran or expiredSettings → eTIMS → Initialize device
Invalid PINCustomer PIN format wrongCheck format (P + 9 digits + letter)
Connection timeoutKRA endpoint unreachableWait, retries auto every few mins
Invalid signatureDevice clock drift > 5 minCheck device time / NTP

Who can manage eTIMS

Tips