Zoho Books · Uganda · URA EFRIS

Fiscalise Zoho Books invoices to URA EFRIS, automatically

Raise the invoice in Zoho Books as you already do. It is submitted to EFRIS, and the fiscal document number, verification code and QR code come back onto the invoice — ready to print on the document your customer receives. Nobody re-keys anything into the URA portal.

Nothing to install, but two things to get right

Zoho Books is entirely cloud, so this is the lightest connection on the list — no server in your office, no machine that has to be switched on. What replaces that work is a pair of details specific to Zoho.

Authorised once, then it runs itself

You approve the connection through Zoho's own consent screen and it refreshes from then on — no password is stored and nothing is installed. Zoho notifies us as invoices are raised, so fiscalisation follows the invoice rather than a scheduled sweep.

Your Zoho region has to match

Zoho keeps each organisation in the data centre it was created in, and an authorisation issued in one region does not work against another. It is a five-minute check at the start and a confusing afternoon if it is skipped, because the failure looks like a permissions problem rather than a regional one.

The fiscal document number, verification code and QR code are held on the invoice as fields, and placed on your invoice template — so the document that goes to your customer is the one they already recognise, carrying what URA requires.

What comes across

EFRIS needs more than the invoice itself. These are read from Zoho Books and kept in step.

Invoices

Fiscalised to EFRIS, with the fiscal document number, verification code and QR code returned onto the invoice and its template.

Credit notes

Raised against the original invoice, which URA requires — a credit note detached from its invoice is rejected.

Items

Registered with URA through the API as part of the integration, carrying their unit of measure and tax treatment. Nothing is keyed in by hand.

Stock movements

For goods: opening stock and subsequent movements, which URA requires before those goods can be invoiced. Services carry no stock.

Customers

Buyer type and TIN where the sale is business-to-business, read from the contact record, which changes what EFRIS requires on the document.

Tax rates

Standard-rated, zero-rated, exempt and deemed VAT, plus excise duty where it applies — mapped from the tax rates defined in your organisation.

Where Zoho Books and EFRIS disagree

The connection is not the difficult part. Reconciling how the two systems think about a sale is, and it is where in-house attempts usually stall.

Zoho Books has no Uganda edition, so its tax module is generic

Zoho ships tax-authority-specific editions for a handful of countries, and Uganda is not one of them. A Ugandan organisation runs the global edition, where VAT is whatever rates somebody typed in. EFRIS has one fixed set of tax categories, so the mapping between your rates and URA’s categories is specific to your organisation and has to be established once against your actual VAT return — not assumed from the rate percentage.

A goods item without inventory tracking has no stock to report

Zoho Books lets an item be marked as goods while tracking no inventory for it, which is an ordinary choice and invisible day to day. URA rejects an invoice for goods it holds no stock against, so exactly those items fail. Whether tracking is switched on in Zoho or the stock position is maintained on the EFRIS side is a decision to make deliberately, and it is easier taken before the first invoice than after.

An item valid in Zoho can still be unknown to URA

A product has to exist in the EFRIS catalogue before an invoice can mention it, and its unit of measure must come from URA’s own list rather than the free-text unit Zoho accepts on the item. Registration happens through the API — one of the first calls an integration makes — so this is handled, not typed in somewhere.

Discounts are a separate line, not a field

Zoho Books applies a discount at line level or across the whole invoice. EFRIS accepts neither as a field — the discount must follow as its own negative line, flagged as the discount and carrying no quantity at all. An invoice-level discount also has to be attributed back to the lines it reduced before it can be expressed that way.

Invoice numbers collide across organisations

EFRIS enforces uniqueness of the seller reference per taxpayer, across every till and every integration on that TIN. Zoho Books numbers invoices per organisation, so a business running more than one organisation under a single TIN — a common way to separate branches in Zoho — will produce the same number twice, and the rejection reads as a duplicate submission.

Each of these is a rejection code we have already worked through. The error-code reference documents them, free to read, whether or not you ever work with us.

Two ways to do this

Most businesses want the first. Zoho partners and teams with their own developers usually want the second.

We set it up

We set up the environment and everything your business needs to start issuing fiscalised invoices. You keep working in Zoho Books exactly as before.

Talk to us
Your developers build it

Send invoices to our API as ordinary JSON and it handles the EFRIS protocol, the signing and the tax reconciliation — your side stays a Zoho API exercise. Or licence the whole platform as source and run it on your own infrastructure.

efrisgateway.com
Questions & Answers

Zoho Books and EFRIS — common questions

Can Zoho Books connect to URA EFRIS?
Yes. Zoho Books has no EFRIS support of its own, but it can be connected so that invoices raised in Zoho Books are fiscalised with URA automatically and the fiscal document number, verification code and QR code come back onto the invoice for printing. The connection is authorised once through Zoho and needs nothing installed on your machines.
Does Zoho Books support Uganda EFRIS out of the box?
No. Zoho ships tax-authority-specific editions for only a handful of countries, and Uganda is not among them, so a Ugandan organisation runs the global edition with generic tax rates. That is why the tax mapping is established against your own VAT return at the start rather than inferred from the rate percentages.
Do I have to change how I raise invoices in Zoho Books?
No. You continue raising invoices in Zoho Books as you do now. The fiscalisation happens behind it, and what changes is that the printed document carries the EFRIS fiscal document number, verification code and QR code that URA requires.
Will the QR code appear on my Zoho invoice template?
Yes. The fiscal document number, verification code and QR code are written back onto the invoice as fields and placed on the template you already use, so the document your customer receives carries what URA requires without anyone assembling a second one.
Does this work with Zoho Invoice or Zoho Inventory as well?
Zoho Books is the usual case and the one this page describes. The other Zoho applications expose their data the same way, so where a business invoices from Zoho Invoice or holds stock in Zoho Inventory, that is workable too — it is worth saying which you use when you get in touch, because it changes where the items and stock positions are read from.
Do I need to be a URA-accredited integrator to use this?
No. The fiscalisation is done using your own taxpayer credentials and device, so the invoices are issued by your business exactly as URA expects.
Other systems

Running something else?

The EFRIS side is identical whatever you run. What changes is how the invoice leaves your system, so each has its own notes.

A custom ERP, an in-house system or a POS nobody has heard of is not a problem either — if it can produce an invoice, it can be connected. Tell us what you run.