Stock Management

URA keeps its own inventory ledger for every registered good. Stock must be reported before fiscalisation (unless negative stock is enabled in your URA settings) - otherwise invoices for those goods will not go through. Increases and decreases share one endpoint:

POST/stock-management

Stock can be increased through an import, a local purchase, manufacturing or assembly, or an opening stock load. It can be decreased for expired or damaged goods, personal use, raw materials consumed, or other reasons you describe.

A. Stock increase - import / local purchase

Record goods bought locally or imported, together with the supplier they came from.

{
    "goodsStockIn": {
        "supplierTin": "1000001234",
        "supplierName": "Supplier XYZ",
        "stockInDate": "2026-05-02",
        ...
    },
    "goodsStockInItem": [
        { "goodsCode": "SKU-BOTTLE-01", "quantity": "100", "unitPrice": "18000", ... }
    ]
}

Want a working example of a stock increase? Chat with our team

B. Stock increase - manufacture / assembling

Goods you produce yourself have no supplier. Instead, you can record the production batch and the date of manufacture:

{
    "goodsStockIn": {
        "stockInDate": "2026-05-02",
        "productionBatchNo": "BATCH-2026-001",
        "productionDate": "2026-05-01",
        ...
    },
    "goodsStockInItem": [
        { "goodsCode": "SKU-BOTTLE-01", "quantity": "500", ... }
    ]
}

Want a working example of recording manufactured stock? Chat with our team

C. Stock increase - opening stock

Use this once per good when moving an existing business onto EFRIS:

{
    "goodsStockIn": {
        "supplierName": "Opening Balance",
        "stockInDate": "2026-01-01",
        ...
    },
    "goodsStockInItem": [
        { "goodsCode": "SKU-BOTTLE-01", "quantity": "1000", "unitPrice": "18000", ... }
    ]
}

Want a working example of an opening stock load? Chat with our team

D. Stock decrease

Decreases record stock leaving your business outside of a sale, together with the reason:

{
    "goodsStockIn": {
        "remarks": "Damaged goods in warehouse",
        ...
    },
    "goodsStockInItem": [
        { "goodsCode": "SKU-BOTTLE-01", "quantity": "10", "unitPrice": "18000", ... }
    ]
}

Want a working example of a stock decrease? Chat with our team

Both increases and decreases can be tied to a specific branch, and fuel stock is supported as well.

E. Stock transfer between branches

POST/transfer-stock

Transfers stock from one branch to another within the same TIN. Your branches are available from the branches lookup.

{
    "goodsStockTransfer": {
        "sourceBranchId": "206637525568955296",
        "destinationBranchId": "206637528324276772",
        "remarks": "Restocking the Kampala branch",
        ...
    },
    "goodsStockTransferItem": [
        { "goodsCode": "SKU-BOTTLE-01", "quantity": "100", ... }
    ]
}

Want a working example of a stock transfer between branches? Chat with our team

A transfer must move stock between two different branches.

What comes next

With goods registered and stock loaded, you are ready to fiscalise sales - see Fiscal Invoices. To verify quantities at any time, use the stock queries in Data Lookups.

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.