EFRIS Overview: A Pioneer System in East Africa
Uganda has been one of the first East African countries to equip itself with a fully digitalised electronic invoicing system. Launched in 2020 by the Uganda Revenue Authority (URA), EFRIS (Electronic Fiscal Receipting and Invoicing System) became mandatory for all VAT-registered businesses in 2023. Unlike Kenya which offers multiple modes (OSCU/VSCU/Online/App), Uganda opted for an API-first approach: every VAT-registered business must transmit its invoices via the EFRIS API, either directly or through a certified software vendor.
The legal framework rests on the Tax Procedures Code Act (TPCA) 2014 and its amendments, as well as the VAT Act CAP 349. EFRIS applies to any person or entity VAT-registered in Uganda, with no distinctive turnover threshold beyond the VAT threshold itself (UGX 150 million annual turnover for VAT registration).
Uganda's specificity — and its innovation compared with neighbouring models — lies in the triple cryptographic validation of each invoice (see next section) and in the native support for 6 currencies (UGX, USD, EUR, GBP, KES, TZS), which reflects Uganda's position as a regional trading hub. Kampala is indeed a crossroad between the East African Community (EAC) and the Economic Community of Central African States, with a sharply growing volume of cross-border transactions.
For Ugandan SMEs, EFRIS represents both an obligation and an opportunity: obligation because non-compliance exposes businesses to penalties of UGX 6 million per infraction and the loss of the right to deduct VAT; opportunity because EFRIS instantly digitalises commercial traceability, enabling real-time treasury steering and accelerating legitimate VAT credit refunds.
EFRIS is mandatory for every VAT-registered business in Uganda. Non-compliance can cost up to UGX 6 million per infraction — an avoidable cash drain with a compliant system from day one.
Triple Seal: FDN + anti_fake_code + verification_code
Where most African systems content themselves with a unique identifier and a QR code, Uganda has pushed security one notch further with a triple cryptographic seal. Every valid EFRIS invoice carries three distinct elements, which makes forgery extremely difficult and facilitates audits. This is, to our knowledge, a unique mechanism in East Africa.
1. FDN (Fiscal Document Number) — the unique fiscal identifier
The FDN is the official tax number assigned by the URA server to each validated invoice. It is the equivalent of the CUIN in Kenya or the NIM in Benin. An alphanumeric format, sequentially generated by URA, it is unique at the national level and allows tracing of any invoice back to source. The FDN must appear clearly on the printed invoice and is embedded in the QR code.
2. anti_fake_code — anti-forgery code
The anti_fake_code is an EFRIS-specific innovation: a cryptographic code generated by URA that combines the invoice hash, the validation timestamp and a URA-side secret. It allows any URA agent — including in the field with a smartphone — to instantly verify the invoice's authenticity by scanning the QR code or entering the anti_fake_code into the URA mobile application. No physical forgery is possible without access to the URA server.
3. verification_code — customer verification code
The verification_code is intended for the customer who receives the invoice. It enables them to confirm within seconds, via the URA portal or mobile application, that the invoice they received is indeed registered with URA — and that they will therefore be able to effectively deduct VAT. This is a very powerful B2B trust mechanism: the customer has an immediate guarantee that their supplier is compliant, and URA collects behavioural data on actual verifications, which it uses to target its audits.
The entire triple seal is encoded in a single QR code printed on the invoice. A scan is enough to reveal the three elements and validate authenticity. For CassKai, this means that the EFRIS integration must handle the retrieval and storage of these three codes, their integration into the invoice PDF, and their availability for later audit. That is why a URA-certified connector is essential — an in-house development would be costly and risky.
Uganda's triple seal (FDN + anti_fake_code + verification_code) is the most robust anti-fraud mechanism in East Africa. For your B2B customers, it is also an immediate trust signal.
Multi-currency UGX/USD/EUR/GBP/KES/TZS: Uganda as a Regional Hub
EFRIS natively supports 6 currencies on electronic invoices: UGX (Ugandan shilling, national currency), USD, EUR, GBP, KES (Kenyan shilling) and TZS (Tanzanian shilling). It is one of the broadest multi-currency supports in East Africa on a clearance system — and it is no coincidence: Uganda is a major regional trading hub.
Why such currency diversity?
- EAC (East African Community): with Kenya and Tanzania as immediate neighbours and trading partners, many Ugandan businesses invoice in KES or TZS for their regional exports. EFRIS makes this native, with no manual conversion or adaptation.
- International donors and NGOs: Kampala is a major hub for NGOs and international development agencies. Many local providers issue invoices in USD or EUR for their institutional clients.
- Intra-African and international trade: exports to neighbouring DRC (often USD), to South Sudan (USD), imports from Europe (EUR) or the United Kingdom (GBP).
EFRIS exchange mechanism: when an invoice is issued in a currency other than UGX, EFRIS requires mention of the day's exchange rate and the UGX equivalent value. The official rate source is the Bank of Uganda (BoU), published every business day. CassKai automatically updates BoU rates and calculates the UGX equivalent, eliminating any error-prone manual entry.
Accounting implications: entries are automatically generated in dual currency (transaction currency + UGX bookkeeping), with foreign exchange gains/losses managed according to IAS 21 or local accounting standards. Reporting can be consolidated in UGX, USD or EUR depending on governance needs.
For a Ugandan SME exporting to Kenya (for example an IT services provider invoicing customers in Nairobi) or for a Kenyan SME opening a subsidiary in Kampala, EFRIS multi-currency support via CassKai is a game-changer: a single system, a single chart of accounts, consolidated group reporting in a few clicks.
CassKai EFRIS Integration: initializeDevice and Technical Workflow
The CassKai integration with the URA EFRIS API follows a precise technical workflow, with a central entry point: the initializeDevice operation. This step — which has no equivalent in Kenya or Benin — is what enables CassKai to identify the business with URA and retrieve the authentication token used for all subsequent transmissions.
CassKai EFRIS technical workflow, step by step:
- initializeDevice (once, at onboarding): CassKai sends to the EFRIS API the company credentials (TIN, technical password, terminal identifier). In return, URA returns a device_id and a session_token that will be used to authenticate all invoice transmissions.
- Invoice entry in CassKai: the salesperson or accountant creates the invoice (customer TIN, items, VAT rate 18%/0%/exempt, UGX currency or other among the 6 supported).
- uploadInvoice (per invoice): on the click of "Issue", CassKai builds the payload compliant with the EFRIS specification and transmits it to URA using the session_token.
- URA response: the EFRIS server validates the invoice, assigns the FDN, generates the anti_fake_code and the verification_code, and returns everything with the consolidated QR code.
- Normalised PDF generation: CassKai assembles the PDF with the three codes, the QR, the mandatory legal mentions (issuer and buyer TIN if B2B, description, net/VAT/gross totals, currency and exchange rate if non-UGX).
- Archiving and notification: PDF sent to the customer by email/WhatsApp Business, archived with AES-256 encryption for 5 years (Uganda's legal duration).
Handling EFRIS degraded mode: if the URA server is temporarily unavailable (rare but possible), CassKai queues the invoice and automatically retries resubmission until success, within the 24-hour window allowed by URA. Any invoice issued in degraded mode is flagged and auditable.
Multi-currency at payload level: for each foreign-currency invoice, CassKai automatically includes the day's Bank of Uganda rate and the UGX equivalent. EFRIS validates consistency and rejects the payload if the gap with the official rate exceeds 2%.
Cancellation and credit notes: EFRIS allows cancellation of an invoice within 24h via a dedicated API (cancelInvoice). Beyond that, only a credit note is admissible (creditNote API). CassKai offers both workflows with mandatory visual validation to avoid errors.
The full EFRIS integration is included in the CassKai Uganda subscription, with no additional cost or specific development. This is the SaaS advantage: a single provider, a single invoice, a certified and continuously maintained integration.
The initializeDevice operation is EFRIS-specific — it is what technically distinguishes the Ugandan integration from other African systems. CassKai handles it automatically; you have nothing to code.
Uganda PAYE + NSSF 5% + 10%: Local Payroll
Beyond EFRIS invoicing, a Ugandan SME must manage local salary taxation. The system is simpler than Kenya's — no SHIF or AHL in Uganda — but has two notable features: the progressive PAYE bracket up to 40% with surcharge, and the dual NSSF 5% + 10% contribution.
PAYE (Pay As You Earn) — monthly income tax on wages
Uganda PAYE bracket 2026 (on monthly taxable salary):
- 0%: up to UGX 235,000/month (exemption threshold)
- 10%: bracket UGX 235,001 - 335,000
- 20%: bracket UGX 335,001 - 410,000
- 30%: bracket UGX 410,001 - 10,000,000
- 30% + 10% surcharge on the portion exceeding UGX 10,000,000/month (i.e. an effective marginal rate of 40% for very high salaries)
The employer is responsible for calculation, withholding and monthly remittance to URA. Filing is done via the URA Online portal and payment via the national EFT (Electronic Funds Transfer) system.
NSSF (National Social Security Fund) — dual employee + employer contribution
Unlike Kenya which structures NSSF in Tier I/Tier II, Uganda applies a simple two-rate system:
- Employee: 5% of gross salary, no cap
- Employer: 10% of gross salary, no cap
- Total NSSF: 15% of gross salary (5% employee + 10% employer)
Uganda NSSF funds retirement benefits and is mandatory for any employee aged 16 to 60 in a company of 5 employees or more. The funds are managed by NSSF Uganda Ltd, a public fund with joint governance.
Local Service Tax (LST) — local tax
An additional local service tax is added, capped at UGX 100,000/year, levied by local authorities (Kampala Capital City Authority for Kampala, municipal councils elsewhere). It is owed by any employee residing in the relevant jurisdiction and may be withheld at source by the employer if more convenient.
CassKai Uganda Payroll Module: CassKai automatically calculates progressive PAYE with surcharge, NSSF 5% + 10%, LST, generates compliant payslips, URA declarations and NSSF Monthly Returns. Cash benefit: zero late penalty, zero rework, and freed-up time of 10 to 15 hours per month on the finance side for an SME of 20 employees.
30-Day EFRIS Compliance Roadmap
Here is the concrete trajectory we recommend to any Ugandan SME to move from a paper/Excel invoicing system to full operational EFRIS compliance in 30 days, with CassKai as the foundation.
Week 1: URA registration and existing audit
- Verify TIN (Tax Identification Number) activation on the URA Online portal — absolute prerequisite
- Confirm VAT registration (UGX 150 million annual turnover threshold)
- Map the current invoicing process: who issues, in what format, how often, towards what types of customers (B2B/B2C, local/export)
- Identify currencies used in practice (UGX alone, or also USD/KES/TZS/EUR)
- Quantify monthly volumes and identify peaks (month-end, quarter-end)
Week 2: CassKai onboarding and accounting setup
- CassKai account creation and company configuration (TIN, primary currency UGX, fiscal year)
- Chart of accounts import: CassKai offers a ready-to-use IFRS mapping adapted to Uganda
- Customer/supplier database import (with mandatory TIN for B2B)
- Bank connection (Stanbic, Centenary, DFCU, Standard Chartered Uganda — native connectors)
- Initial team training (2 hours via video with a Customer Success Manager based in Kampala)
Week 3: initializeDevice and URA sandbox testing
- Request EFRIS credentials from URA (online procedure, 24-72h average)
- Configure the initializeDevice operation in CassKai (TIN entry, technical password, terminal identifier)
- Issue 10 test invoices in the URA sandbox
- Visual validation: FDN present, anti_fake_code and verification_code visible, QR scannable
- Specific scenario tests: multi-currency invoice (UGX + USD), 24h cancellation, credit note, anonymous B2C invoice
Week 4: production go-live and final training
- Switch to URA production (sandbox -> production credentials)
- Issue the first real invoice, visual validation by the controller or CEO
- In-depth team training: sales (issuance + tracking), accounting (monthly VAT reconciliations), CEO (cash dashboards + KPIs)
- Configuration of proactive alerts (errored invoices, threshold breaches, URA deadlines)
- Activation of DSO, customer aging, multi-currency treasury forecast dashboards
At the end of the 30 days, the company has a 100% EFRIS-compliant, multi-currency invoicing system, integrated with its IFRS accounting, with real-time treasury tracking and zero duplicate data entry. Average ROI measured at our Ugandan clients: DSO reduction of 7 to 18 days (depending on starting point), total elimination of URA penalties, and freed-up time of 12 to 25 hours per month on the finance side.
30 days to move from paper to full EFRIS compliance, with a dedicated Customer Success Manager in Kampala. Your SME's treasury benefits from the second month onwards.