The Generate fiscal invoice endpoint submits an invoice to the Uganda Revenue Authority (URA) Electronic Fiscal Receipting and Invoicing System (EFRIS).
The Kumusoft EFRIS API simplifies the invoice creation process by abstracting many of the technical requirements of the underlying EFRIS platform.Unlike direct EFRIS integrations, developers do not need to manage:Seller registration information
The Kumusoft platform automatically handles these requirements and submits the invoice to EFRIS on your behalf.Endpoint#
Request Structure#
{
"data": {
"sellerDetails": {
"referenceNo": "b005"
},
"basicInformation": {
"currency": "UGX",
"invoiceType": 1,
"invoiceKind": 1,
"invoiceIndustryCode": "101"
},
"buyerDetails": {
"buyerBusinessName": "Buyer Name",
"buyerLegalName": "Buyer Legal Name",
"buyerType": "1",
"buyerTin": ""
},
"itemsBought": [
{
"itemCode": "A001",
"quantity": 1,
"unitPrice": 45600,
"total": 45600,
"taxForm": "101",
"taxRule": "STANDARD",
"discountFlag": 1,
"discountTotal": 600,
"exciseFlag": "2",
"exciseRate": "",
"exciseUnit": "",
"exciseTax": "",
"exciseCurrency": "UGX"
}
]
}
}
Request Sections#
The invoice request consists of four logical sections:| Section | Description |
|---|
| sellerDetails | Seller-specific information |
| basicInformation | Invoice configuration and metadata |
| buyerDetails | Customer information |
| itemsBought | Products or services being invoiced |
The Kumusoft platform automatically derives seller information from the authenticated taxpayer account.Only a limited set of seller fields are exposed to API consumers.Seller Details#
| Field | Required | Description |
|---|
| referenceNo | No | Seller reference number used for internal tracking and reconciliation. |
Invoice configuration information.| Field | Required | Description |
|---|
| currency | Yes | Invoice currency code. |
| invoiceType | Yes | Fiscal document type. |
| invoiceKind | Yes | Invoice classification. |
| invoiceIndustryCode | Yes | Industry classification. See Invoice Industry Codes. |
Future versions of the API may automatically populate some of these values where a suitable default exists.
Customer information associated with the invoice.Buyer Details#
| Field | Required | Description |
|---|
| buyerBusinessName | Yes | Customer business name. |
| buyerLegalName | Yes | Customer legal name. |
| buyerType | Yes | Customer classification. |
| buyerTin | Conditional | Customer TIN where applicable. |
Invoice Items#
Products or services included on the invoice.Each invoice must contain at least one item.Item Fields#
| Field | Required | Description |
|---|
| itemCode | Yes | Product or service code. |
| quantity | Yes | Quantity being invoiced. |
| unitPrice | Yes | Price per unit. |
| total | Yes | Total line amount. |
| taxForm | Yes | EFRIS tax category code. |
| taxRule | No | Kumusoft tax calculation rule. |
| discountFlag | No | Indicates whether a discount has been applied. |
| discountTotal | No | Discount amount applied to the line item. |
| exciseFlag | No | Indicates whether excise duty applies. |
| exciseRate | No | Excise duty rate. |
| exciseUnit | No | Excise duty unit of measure. |
| exciseTax | No | Excise duty amount. |
| exciseCurrency | No | Excise duty currency. |
Response#
A successful request returns the generated EFRIS invoice information and associated fiscal identifiers.{
"status": {
"returnCode": "00",
"returnMessage": "SUCCESS"
},
"data": {
...
}
}
Next Steps#
The following sections provide detailed documentation for every field in the invoice request payload, including: