EFRIS Simplified API Documentation

The EFRIS Simplified API is the fastest way to make any ERP, POS, or custom business system EFRIS-compliant in Uganda. You send plain JSON over HTTPS; we take care of the rest and return the Fiscal Document Number (FDN), verification code, and QR code your invoice needs.

Environment Base URL Use for
Production https://app.efrissimplified.com/api/efris/{tin} Live traffic - every request fiscalises against URA for real
Sandbox https://sandbox.efrissimplified.com/api/efris/{tin} Building & testing your integration - reaches URA's sandbox, not their live system
Start in sandbox. Requests to the production host submit real invoices, credit notes, and stock movements to URA's live system. Build and test your integration against sandbox.efrissimplified.com first, which talks to URA's separate testing environment, then switch only the hostname when you're ready to go live.

{tin} is the TIN of the business registered on EFRIS Simplified. All endpoints are POST and accept/return JSON.

Why integrate through a middleware API?

Integrating directly with URA EFRIS is a big project. Teams routinely spend months on it. With EFRIS Simplified, your integration is reduced to a handful of JSON endpoints:

  • No EFRIS expertise needed: the heavy lifting happens on our side.
  • Plain JSON: simple requests in, readable responses out.
  • Checked before submission: clear feedback before anything reaches URA.
  • Any language: if it can make an HTTPS POST request, it can fiscalise invoices - PHP, Java, C#, Python, Node.js, Dart, Go, and everything else.

Integration at a glance

Step What you do Guide
1 Authenticate with your API key Authentication
2 Register every good or service you sell with URA Goods Registration
3 Load stock so URA's inventory ledger matches yours Stock Management
4 Fiscalise sales and receive the FDN + QR code Fiscal Invoices
5 Reverse or adjust invoices when goods are returned Credit Notes

Quick example

Every call is a normal HTTPS request. Here is a goods registration in one request:

Shown against app.efrissimplified.com (production). Swap in sandbox.efrissimplified.com to send it to URA's testing environment instead.
curl -X POST https://app.efrissimplified.com/api/efris/1000123456/register-good-or-service \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "goods": [
        {
            "operationType": "<code>",
            "goodsName": "Premium Water 500ml",
            "goodsCode": "SKU-BOTTLE-01",
            "measureUnit": "<code>",
            "unitPrice": "100000",
            "currency": "<code>",
            "commodityCategoryId": "<code>",
            "haveExciseTax": "<code>",
            "havePieceUnit": "<code>",
            "haveCustomsUnit": "<code>",
            "stockPrewarning": "10"
        }
    ]
}'

Documentation sections

Section What it covers
Authentication API keys, environments, tax-inclusive pricing, and keeping your key safe
Goods Registration Registering goods and services - standard goods, piece packaging, percentage and unit-based excise duty, services, extra selling units, customs units, and modifications
Stock Management Stock increases (purchase, import, manufacturing, opening stock), decreases, and branch-to-branch transfers
Fiscal Invoices Fiscalising sales - standard invoices, discounts, excise items, exports, deemed VAT, imported services, airline & fuel invoices, debit notes, and batch upload
Credit Notes Applying for credit notes, tracking approval, cancelling and voiding applications
Data Lookups The system dictionary, TIN validation, exchange rates, commodity categories, excise duty codes, branches, and deemed-VAT projects
Invoice Response Where to find the FDN, verification code, and QR code - plus how to print a compliant e-invoice
Best Practices Critical rules that keep your integration reliable and your tax reporting accurate

Frequently asked questions

Do I need specialist EFRIS knowledge to integrate?

No. If your developers can work with a standard JSON API, they can integrate with EFRIS Simplified - we take care of everything else.

Which systems can integrate?

Any system that can make an HTTPS POST request: custom ERPs, POS systems, e-commerce platforms, school and hospital management systems, accounting packages, and mobile apps - in any programming language.

How do I get an API key?

Register your business with EFRIS Simplified, then generate your API key from your dashboard under Security. See Authentication for how to use it.

Is this the official URA documentation?

No - this is an overview of the EFRIS Simplified middleware API. You never talk to URA's servers directly; the complete reference is available to registered businesses inside the EFRIS Simplified dashboard.

Looking for the complete reference? Field definitions, code lists, validation rules, error handling, and ready-to-run examples for every endpoint are available inside your EFRIS Simplified dashboard once your business is registered on the platform.
Sign in to the dashboard · Get started

Stuck on an integration step? Our engineers reply fast.