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?
- Yes if you're VAT-registered (annual turnover above KES 5 million)
- Recommended even if you're not yet — it's where KRA is heading for all merchants
- No if you're operating outside Kenya — Tranzo skips eTIMS submission for non-KE companies automatically
What you need before setup
- KRA PIN — your company's tax identification number
- eTIMS Branch ID — assigned by KRA when you register a physical location with them
- 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
- Drawer → Settings → eTIMS (KRA)
- Enter your KRA PIN, Branch ID, OSCU username, and password
- Tap Initialize device
- 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:
- Tranzo writes the sale to the database
- Queues a background job to submit it to KRA's eTIMS endpoint
- KRA returns a Fiscal Document Number (FDN), QR code, and invoice number
- 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:
- Your KRA PIN and Branch ID
- Customer's PIN (if they're a registered taxpayer and provided it)
- Line items with VAT rates per item
- Total VAT amount
- FDN, invoice number, QR code (verifiable on the KRA portal)
Tracking compliance
Drawer → Settings → eTIMS → Compliance. Shows:
- Submitted — sales successfully received by KRA
- Pending — queued, awaiting submission
- Failed — could not submit (network, validation, or KRA error)
- Compliance % — submitted ÷ (submitted + pending + failed)
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
| Error | Cause | Fix |
|---|---|---|
| Device not initialized | OSCU init never ran or expired | Settings → eTIMS → Initialize device |
| Invalid PIN | Customer PIN format wrong | Check format (P + 9 digits + letter) |
| Connection timeout | KRA endpoint unreachable | Wait, retries auto every few mins |
| Invalid signature | Device clock drift > 5 min | Check device time / NTP |
Who can manage eTIMS
- Owner + Manager — full eTIMS settings and compliance dashboard
- Cashier — sees eTIMS status on each receipt but can't change settings
Tips
- Initialize the device on every new shop you add — Branch ID is per-location
- Keep your OSCU credentials in a password manager — re-issuing them is a slow KRA process
- Check the compliance dashboard weekly — failures pile up silently
- If a sale must be eTIMS-compliant urgently and is stuck, email us and we'll investigate the queue