Fiscal Invoice Response Structure
When fiscalisation succeeds, data contains the full EFRIS response for the invoice. The fiscal
identifiers your ERP must capture live in basicInformation and summary:
{
"response": "OK",
"message": "Invoice fiscalised successfully",
"data": {
"sellerDetails": {
"tin": "1014409555",
"legalName": "YOUR BUSINESS NAME",
"businessName": "Your Brand",
"referenceNo": "INV-2026-001",
"branchId": "207300908813650312",
"branchName": "MAIN BRANCH",
"branchCode": "00"
},
"basicInformation": {
"invoiceId": "1000002", // EFRIS internal ID - needed later as oriInvoiceId for debit/credit notes
"invoiceNo": "322000150744", // The FDN (Fiscal Document Number)
"antifakeCode": "31359767222004350398", // Verification code
"deviceNo": "1014409555_02",
"issuedDate": "2026-05-30 10:30:00",
"currency": "UGX",
"currencyRate": "1"
},
"buyerDetails": { "buyerType": "1", "buyerLegalName": "John Doe" },
"goodsDetails": [ { "...": "as submitted" } ],
"taxDetails": [
{
"taxCategory": "Standard",
"taxCategoryCode": "01",
"netAmount": "169491.53",
"taxRate": "0.18",
"taxAmount": "30508.47",
"grossAmount": "200000.00"
}
],
"summary": {
"netAmount": "169491.53",
"taxAmount": "30508.47",
"grossAmount": "200000.00",
"itemCount": "1",
"modeCode": "1",
"qrCode": "02000000416B9C..." // Encode this string as a QR image for the printed invoice
},
"payWay": [
{
"paymentMode": "102",
"paymentAmount": "200000.00",
"orderNumber": "a"
}
]
}
}
invoiceId, invoiceNo (FDN),
antifakeCode, and qrCode against your ERP invoice record. invoiceId is
required later as oriInvoiceId for
debit notes and
credit notes.
Tax category codes in the response
taxCategoryCode |
Letter | Meaning |
|---|---|---|
01 |
A | Standard VAT (18%) |
02 |
B | Zero Rate (0%) |
03 |
C | Exempt (-) |
04 |
D | Deemed VAT (18%) |
05 |
E | Excise Duty |
06 |
Over the Top Service (OTT) | |
07 |
Stamp Duty | |
08 |
Local Hotel Service Tax | |
09 |
UCC Levy | |
10 |
Others | |
11 |
F | VAT Not Applicable |
Invoice display layout - the 6 URA sections
A compliant printed (or on-screen) e-invoice renders the response in this order, as a single scrollable column:
┌───────────────────────────────────────────┐
│ EFRIS e-INVOICE/TAX INVOICE 1/1 │ ← Header
├───────────────────────────────────────────┤
│ SECTION A: Seller Details │
│ TIN · Legal Name · Address · Reference │
├───────────────────────────────────────────┤
│ SECTION B: URA / Fiscal Information │
│ FDN (invoiceNo) · Verification Code │
│ (antifakeCode) · Issued Date · Device │
├───────────────────────────────────────────┤
│ SECTION C: Buyer Details │
│ Name · TIN (if B2B) │
├───────────────────────────────────────────┤
│ SECTION D: Goods & Services │
│ Table: No | Item | Qty | Price | Tax │
├───────────────────────────────────────────┤
│ SECTION E: Tax Summary │
│ Table: Category | Net | Tax | Gross │
├───────────────────────────────────────────┤
│ SECTION F: Invoice Summary │
│ Net · Tax · Gross (bold) · Amount words │
│ Payment mode · Remarks │
├───────────────────────────────────────────┤
│ *** END OF e-INVOICE/TAX INVOICE *** │ ← Footer
├───────────────────────────────────────────┤
│ [QR CODE] — Scan to verify on URA │
└───────────────────────────────────────────┘
The qrCode string from summary should be rendered as a QR image; scanning it verifies
the invoice on URA's systems. The FDN and verification code must be printed in Section B exactly as returned.
Recovering a lost response
If your ERP times out during fiscalisation and never receives the response, do not resubmit
the invoice. Call POST /invoice-details with your referenceNo-matched FDN from
POST /query-invoices to recover the fiscal data - see
Best Practices for the full retry protocol.