QuickBooks · Uganda · URA EFRIS

Fiscalise QuickBooks invoices to URA EFRIS, automatically

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

Online and Desktop connect differently

Worth settling first, because it changes what the work involves. Both end up in the same place; they get there by different routes.

QuickBooks Online

Connects over Intuit's REST API. You authorise once through Intuit's consent screen and the connection refreshes itself from then on — no password is stored and nothing is installed on your machines. New invoices are picked up as they are raised.

This is the quicker of the two, and it keeps working when your accountant is on a different laptop.

QuickBooks Desktop

The company file lives on your own machine or server, so a connector runs alongside it and reads invoices as they are saved. It needs the machine hosting the file to be reachable and switched on when invoices are raised.

Common in Ugandan businesses running older QuickBooks versions. It works well; it simply has more moving parts than the Online route.

What comes across

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

Invoices

Fiscalised to EFRIS, with the fiscal document number, verification code and QR code returned for printing.

Credit notes

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

Products and services

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, which changes what EFRIS requires on the document.

Tax treatment

Standard-rated, zero-rated, exempt and deemed VAT, plus excise duty where it applies.

Where QuickBooks 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.

Discounts are a separate line, not a field

QuickBooks treats a discount as a property of the line it reduces. EFRIS will not accept that — it must follow as its own negative line, flagged as the discount and carrying no quantity at all. A quantity there is rejected outright.

An item valid in QuickBooks 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 whatever QuickBooks calls it. Registration happens through the API — it is one of the first calls an integration makes — so this is handled, not typed in somewhere.

Goods need stock recorded before they can be sold

URA rejects an invoice for goods it holds no stock against, so opening stock and subsequent movements have to be reported. Services are not stocked and need none of this, which is a distinction QuickBooks does not draw for you.

Excise pulls the totals in opposite directions

Where excise duty applies, it is included in the EFRIS tax total and excluded from the gross total. Getting either the wrong way round is rejected with a number and no explanation of which figure was wrong.

Invoice numbers must be unique across everything

EFRIS enforces uniqueness of the seller reference per taxpayer, across every till and every integration on that TIN. Two branches numbering invoices independently will collide, and the rejection looks like 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. Software companies 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 QuickBooks 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. Or licence the whole platform as source and run it on your own infrastructure.

efrisgateway.com
Questions & Answers

QuickBooks and EFRIS — common questions

Can QuickBooks connect to URA EFRIS?
Yes. QuickBooks does not talk to EFRIS on its own, but it can be connected so that invoices raised in QuickBooks are fiscalised with URA automatically and the fiscal document number, verification code and QR code are returned for printing. Both QuickBooks Online and QuickBooks Desktop can be connected; they use different methods.
Do I have to change how I raise invoices in QuickBooks?
No. You continue raising invoices in QuickBooks 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.
Does it work with QuickBooks Desktop, or only Online?
Both. QuickBooks Online connects over Intuit’s API with a one-time authorisation. QuickBooks Desktop keeps its company file locally, so a connector runs alongside it and reads invoices as they are saved. Desktop has more moving parts but works well.
What happens when URA rejects an invoice?
The rejection is reported with the URA code and the specific reason, rather than a generic failure, so it can be corrected and resubmitted. Both sides of every submission are stored, which means a rejected document can be examined afterwards instead of reconstructed from memory.
How long does setting this up take?
Connecting QuickBooks is quick. The time goes into URA’s side — registering the taxpayer’s certificate and device, and getting the catalogue and, for goods, stock into the state URA expects. For a business with a modest product list this is usually days rather than weeks.
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.