URA EFRIS Uganda: Electronic Fiscal Receipting and Invoicing System Guide

Everything a Ugandan SME needs to know to comply with EFRIS: triple fiscal seal, UGX/USD/EUR/GBP/KES/TZS multi-currency, CassKai integration and PAYE/NSSF payroll. Practical, cash-oriented, ready to apply tomorrow morning.

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:

  1. 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.
  2. 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).
  3. 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.
  4. 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.
  5. 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).
  6. 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.

Frequently Asked Questions

From what turnover must a Ugandan business use EFRIS?

The EFRIS obligation applies as soon as a business is VAT-registered in Uganda. The VAT registration threshold is UGX 150 million annual turnover (around USD 40,000). Below that, a business can voluntarily register for VAT — and in that case, EFRIS applies too. The threshold is not fixed and is revised each year by the Finance Acts: check the latest update with URA or a local certified accountant.

What is the difference between FDN, anti_fake_code and verification_code?

The three codes have different and complementary roles. The FDN (Fiscal Document Number) is the unique fiscal identifier of the invoice, assigned by URA — it is the equivalent of the official reference number. The anti_fake_code is a cryptographic code designed to prevent forgery: a URA agent can scan it to instantly verify authenticity. The verification_code is for the B2B customer receiving the invoice: it allows them to confirm via the URA portal that the invoice is indeed registered and deductible. All three are encoded together in the single QR code printed on the invoice. CassKai automatically handles their retrieval, PDF integration, and archiving.

Can I invoice in Kenya Shilling or Tanzanian Shilling from Uganda via EFRIS?

Yes, EFRIS natively supports 6 currencies: UGX, USD, EUR, GBP, KES and TZS. For Ugandan businesses active in the East African Community (EAC) zone, invoicing in KES (Kenya) or TZS (Tanzania) is not only possible but officially recognised by URA. The mechanism: CassKai automatically integrates the day's Bank of Uganda rate and the UGX equivalent into the EFRIS payload, satisfying the Ugandan legal requirement. No add-on to buy, no additional module: this is included in the CassKai Uganda subscription.

What happens if I exceed 24 hours to cancel an EFRIS invoice?

EFRIS allows cancellation of an invoice via the cancelInvoice API only within 24 hours of issuance. Beyond that window, the invoice is final and only the issuance of a credit note via the creditNote API can neutralise its tax effects. The credit note must reference the FDN of the original invoice and specify the reason (pricing error, goods return, commercial discount, etc.). CassKai automates this workflow: if the 24h window has elapsed, the "Cancel" button is replaced by "Issue Credit Note", with a pre-filled form reusing the original invoice data. Full audit trail for URA guaranteed.

Is EFRIS compatible with Kenya eTIMS for businesses present in both countries?

No, EFRIS and eTIMS are two independent systems, each specific to its country: EFRIS for Uganda (URA) and eTIMS for Kenya (KRA). Each has its own API, credentials and payload formats. For a business present in both countries — for example a Kenyan SME opening a subsidiary in Kampala, or a regional group operating in the EAC — a separate integration per country is required. CassKai natively handles both countries (and more broadly the East African Community), enabling group consolidation in a few clicks, with unified reporting in USD or EUR. You avoid the complexity of juggling two distinct solutions and benefit from a consolidated multi-country cash view.

Related articles

Explore more

Ready to simplify your accounting?

Free 30-day trial

No credit card required