Stock Management

Inventory and supplier management for Malawi EIS.

📌 Typical order

  1. Fetch reference data: HS codes, units of measure, suppliers and adjustment reasons.
  2. Add products. Each one starts with zero quantity in the warehouse.
  3. Bring stock in with an informal purchase (non-VAT-registered suppliers) or a stock adjustment.
  4. Transfer stock from the warehouse to a site, or between sites, so the site can sell it.
  5. For manufacturing, convert raw materials into finished products.

Get stock adjustment reasons

🚀 Try it
POST/api/v1/{tin}/stock-adjustment-reasons🔒 token required

Retrieve available stock adjustment reasons from Malawi Revenue Authority (MRA) EIS system. These reasons are used when adjusting inventory quantities.

Parameters

NameInRequiredDescription
tinpathYesTaxpayer Identification Number (e.g., 20154457)
deploymentEnvironmentqueryYesMRA deployment environment - 'Sandbox' for testing or 'Production' for live One of: Sandbox, Production
tokenqueryYesAPI access token for authentication

Request Body

FieldTypeRequiredDescription
terminalIdstringYes

Terminal ID from activation (used to fetch JWT token)

Example: 193760fb-cddc-40ed-b0fb-f08f8720f86c

Responses

  • 200Stock adjustment reasons retrieved successfully
  • 400Bad request - invalid parameters or missing terminal
  • 403Forbidden - Company inactive, license expired, or environment mismatch
  • 404Terminal not found - Please activate the terminal first

Get suppliers

🚀 Try it
POST/api/v1/{tin}/get-suppliers🔒 token required

Retrieve available suppliers from Malawi Revenue Authority (MRA) EIS system. Requires an activated terminal and valid JWT token.

Parameters

NameInRequiredDescription
tinpathYesTaxpayer Identification Number (e.g., 20154457)
deploymentEnvironmentqueryYesMRA deployment environment - 'Sandbox' for testing or 'Production' for live One of: Sandbox, Production
tokenqueryYesAPI access token for authentication

Request Body

FieldTypeRequiredDescription
terminalIdstringYes

Terminal ID from activation (used to fetch JWT token)

Example: 193760fb-cddc-40ed-b0fb-f08f8720f86c

Responses

  • 200Suppliers retrieved successfully
  • 400Bad request - invalid parameters or missing terminal
  • 403Forbidden - Company inactive, license expired, or environment mismatch
  • 404Terminal not found - Please activate the terminal first

Get units of measure

🚀 Try it
POST/api/v1/{tin}/get-units-of-measure🔒 token required

Retrieve available units of measure from Malawi Revenue Authority (MRA) EIS system. Requires an activated terminal and valid JWT token.

Parameters

NameInRequiredDescription
tinpathYesTaxpayer Identification Number (e.g., 20154457)
deploymentEnvironmentqueryYesMRA deployment environment - 'Sandbox' for testing or 'Production' for live One of: Sandbox, Production
tokenqueryYesAPI access token for authentication

Request Body

FieldTypeRequiredDescription
terminalIdstringYes

Terminal ID from activation (used to fetch JWT token)

Example: 193760fb-cddc-40ed-b0fb-f08f8720f86c

Responses

  • 200Units of measure retrieved successfully
  • 400Bad request - invalid parameters or missing terminal
  • 403Forbidden - Company inactive, license expired, or environment mismatch
  • 404Terminal not found - Please activate the terminal first

Get HS codes

🚀 Try it
POST/api/v1/{tin}/get-hs-codes🔒 token required

Retrieve available Harmonized System (HS) codes from Malawi Revenue Authority (MRA) EIS system. Requires an activated terminal and valid JWT token.

Parameters

NameInRequiredDescription
tinpathYesTaxpayer Identification Number (e.g., 20154457)
deploymentEnvironmentqueryYesMRA deployment environment - 'Sandbox' for testing or 'Production' for live One of: Sandbox, Production
tokenqueryYesAPI access token for authentication

Request Body

FieldTypeRequiredDescription
terminalIdstringYes

Terminal ID from activation (used to fetch JWT token)

Example: 193760fb-cddc-40ed-b0fb-f08f8720f86c

Responses

  • 200HS codes retrieved successfully
  • 400Bad request - invalid parameters or missing terminal
  • 403Forbidden - Company inactive, license expired, or environment mismatch
  • 404Terminal not found - Please activate the terminal first

Add a new product

🚀 Try it
POST/api/v1/{tin}/add-product🔒 token required

Add a new product to master products and create zero-quantity warehouse inventory for the taxpayer on the Malawi Revenue Authority (MRA) EIS system. Requires an activated terminal and valid JWT token.

Sample HS Codes:

HS CodeDescriptionTax Rate
94061010GREEN HOUSES OF WOODE
94061090OTHER PREFABRICATED BUILDINGSE
94062000MODULAR BUILDING UNITS, OF STEELA
94069000OTHER PREFABRICATED BUILDINGSA

Sample UOM Codes:
UOMDescription
DRDrum
%Percentage
%OPer mille
DDay

Parameters

NameInRequiredDescription
tinpathYesTaxpayer Identification Number (e.g., 20154457)
deploymentEnvironmentqueryYesMRA deployment environment - 'Sandbox' for testing or 'Production' for live One of: Sandbox, Production
tokenqueryYesAPI access token for authentication

Request Body

FieldTypeRequiredDescription
barcodestringYes

Product barcode / item code

Example: 260306145930
hsCodestringYes

Harmonized System (HS) code. Sample HS codes: 94061010 (GREEN HOUSES OF WOOD, Tax Rate E), 94061090 (OTHER PREFABRICATED BUILDINGS, Tax Rate E), 94062000 (MODULAR BUILDING UNITS, OF STEEL, Tax Rate A), 94069000 (OTHER PREFABRICATED BUILDINGS, Tax Rate A)

Example: 94062000
namestringYes

Product name

Example: Breeding Horse Premium
descriptionstringNo

Optional product description

Example: Premium breeding horses from local farm
uomstringYes

Unit of Measure (UOM) code. Sample UOMs: DR (Drum), % (Percentage), %O (Per mille), D (Day)

Example: DR
terminalIdstringYes

Terminal ID from activation (used to fetch JWT token)

Example: 193760fb-cddc-40ed-b0fb-f08f8720f86c

Responses

  • 200Product added successfully
  • 400Bad request - invalid parameters or validation errors
  • 403Forbidden - Company inactive, license expired, or environment mismatch
  • 404Terminal not found - Please activate the terminal first

Submit Stock Adjustment

🚀 Try it
POST/api/v1/{tin}/stock-adjustment🔒 token required

Submit a stock adjustment request to the Malawi Revenue Authority (MRA) EIS system. Use this for adjustments like Theft, Damage, Loss, etc. Requires an activated terminal and valid JWT token.

Parameters

NameInRequiredDescription
tinpathYesTaxpayer Identification Number (e.g., 20154457)
deploymentEnvironmentqueryYesMRA deployment environment - 'Sandbox' for testing or 'Production' for live One of: Sandbox, Production
tokenqueryYesAPI access token for authentication

Request Body

FieldTypeRequiredDescription
purchaseOrderNumberstringYes

Your unique reference for this adjustment

Example: PO-ADJ-001
barcodestringYes

Product barcode / item code

Example: 260306145930
quantitynumberYes

Quantity to adjust

Example: 1
adjustmentReasonstringYes

Reason for adjustment (see /stock-adjustment-reasons)

Example: Theft
adjustmentTypestringYes

One of: Increase, Decrease

Example: Decrease
terminalIdstringYes

Terminal ID from activation

Example: 193760fb-cddc-40ed-b0fb-f08f8720f86c
siteIdstringNo

Optional Site ID (overrides terminal site if provided)

Example: CHecab1e71-dc53-4aa6-a5b3-2332fc41bcce
taxpayerRemarksstringNo

Optional remarks

Example: Inventory audit adjustment

Responses

  • 200Stock adjustment submitted successfully
  • 400Bad request - invalid parameters

Stock Adjustment DEBUG TESTING AID

🚀 Try it
POST/api/v1/{tin}/stock-adjustment-debug🔒 token required

Debug endpoint for stock adjustment. Returns the formatted payload that would be sent to the MRA EIS system without actually sending it.

Parameters

NameInRequiredDescription
tinpathYesTaxpayer Identification Number (e.g., 20154457)
deploymentEnvironmentqueryYesMRA deployment environment - 'Sandbox' or 'Production' One of: Sandbox, Production
tokenqueryYesAPI access token for authentication

Request Body

FieldTypeRequiredDescription
purchaseOrderNumberstringYes Example: PO-DEBUG-001
barcodestringYes Example: 260306145930
quantitynumberYes Example: 10
adjustmentReasonstringYes Example: Damaged goods
adjustmentTypestringYes

One of: Increase, Decrease

Example: Decrease
terminalIdstring (uuid)Yes Example: 193760fb-cddc-40ed-b0fb-f08f8720f86c
siteIdstringNo

nullable

Example: CHecab1e71-dc53-4aa6-a5b3-2332fc41bcce
taxpayerRemarksstringNo

nullable

Example: Debug simulation

Responses

  • 200Debug payload generated successfully

Submit Informal Purchase

🚀 Try it
POST/api/v1/{tin}/increase-descrease-stock-request🔒 token required

Submit an informal purchase request to the Malawi Revenue Authority (MRA) EIS system. This is typically used to increase stock from non-VAT registered suppliers. Requires an activated terminal and valid JWT token.

Parameters

NameInRequiredDescription
tinpathYesTaxpayer Identification Number (e.g., 20154457)
deploymentEnvironmentqueryYesMRA deployment environment - 'Sandbox' for testing or 'Production' for live One of: Sandbox, Production
tokenqueryYesAPI access token for authentication

Request Body

FieldTypeRequiredDescription
supplierIdintegerYes Example: 346
deliveryNoteNumberstringYes Example: DN-2026-001
receivingDatestring (date-time)Yes Example: 2026-03-26T10:00:00.000Z
purchaseOrderNumberstringNo Example: PO-2026-001
receivedBystringYes Example: John Doe
totalItemsintegerYes Example: 1
totalQuantityintegerYes Example: 50
totalValuenumber (float)Yes Example: 500000
notesstringYes Example: Informal timber purchase
terminalIdstringYes

Terminal ID from activation (used to fetch JWT token)

Example: 193760fb-cddc-40ed-b0fb-f08f8720f86c
itemsarray<object>Yes
items[].itemCodestringNo Example: 260306145930
items[].descriptionstringNo Example: MDF LAMINATED
items[].quantityOrderedintegerNo Example: 50
items[].quantityReceivedintegerNo Example: 50
items[].unitOfMeasurestringNo Example: Piece
items[].unitPricenumber (float)No Example: 10000
items[].totalPricenumber (float)No Example: 500000
items[].isFinishedProductbooleanNo Example: true

Responses

  • 200Informal purchase submitted successfully

Query Stock Adjustments

🚀 Try it
POST/api/v1/{tin}/query-stock-adjustments🔒 token required

Retrieve a list of stock adjustments stored in the local database.

Parameters

NameInRequiredDescription
tinpathYesTaxpayer Identification Number

Request Body

FieldTypeRequiredDescription
purchaseOrderNumberstringNo
statusstringNo

One of: success, failed, ``

pageSizeintegerNo Example: 20
pageNointegerNo Example: 1

Responses

  • 200List of stock adjustments

Check Product Status

🚀 Try it
POST/api/v1/{tin}/check-product-status🔒 token required

Retrieve detailed stock information, tax rates, and descriptions for a specific product directly from the MRA system.

Parameters

NameInRequiredDescription
tinpathYesTaxpayer Identification Number
tokenqueryYesAPI access token for authentication
deploymentEnvironmentqueryYesMRA deployment environment One of: Sandbox, Production

Request Body

FieldTypeRequiredDescription
terminalIdstringYes Example: 193760fb-cddc-40ed-b0fb-f08f8720f86c
productIdstringYes

Barcode or product code

Example: 260306145930

Responses

  • 200Product status retrieved successfully

Stock Transfer

🚀 Try it
POST/api/v1/{tin}/stock-transfer🔒 token required

Transfer inventory from warehouse to site or between sites. Requires an activated terminal and valid JWT token.

Parameters

NameInRequiredDescription
tinpathYesTaxpayer Identification Number (e.g., 20154457)
deploymentEnvironmentqueryYesMRA deployment environment - 'Sandbox' for testing or 'Production' for live One of: Sandbox, Production
tokenqueryYesAPI access token for authentication

Request Body

FieldTypeRequiredDescription
terminalIdstringYes

Terminal ID from activation (used to fetch JWT token)

Example: 193760fb-cddc-40ed-b0fb-f08f8720f86c
fromWarehouseToSitebooleanNo

Flag indicating if transfer is from warehouse to site

Example: true
fromSiteIdstringNo

Source site or warehouse ID

Example: warehouse-001
toSiteIdstringNo

Destination site ID

Example: CHecab1e71-dc53-4aa6-a5b3-2332fc41bcce
itemsarray<object>No
items[].barcodestringNo

Product barcode

Example: 260306145930
items[].quantitynumberNo

Quantity to transfer

Example: 10
items[].pricenumberNo

Unit price of the item

Example: 1000

Responses

  • 200Stock transfer processed successfully
  • 400Bad request - invalid parameters
  • 403Forbidden - Company error or environment mismatch
  • 404Not Found - Terminal or company not found

Get Raw Materials

🚀 Try it
POST/api/v1/{tin}/get-raw-materials🔒 token required

Retrieve a paginated list of raw materials from the Malawi Revenue Authority (MRA) EIS system. This refers to goods that are used as inputs for production processes.

Parameters

NameInRequiredDescription
tinpathYesTaxpayer Identification Number (e.g., 20154457)
deploymentEnvironmentqueryYesMRA deployment environment - 'Sandbox' or 'Production' One of: Sandbox, Production
tokenqueryYesAPI access token for authentication

Request Body

FieldTypeRequiredDescription
terminalIdstring (uuid)Yes

Terminal ID from activation

Example: 193760fb-cddc-40ed-b0fb-f08f8720f86c
pageintegerNo

Page number to retrieve

Example: 1
pageSizeintegerNo

Number of items per page (max 200)

Example: 50

Responses

  • 200Raw materials retrieved successfully
  • 401Unauthorized - Session expired
  • 404Company or Terminal not found

Submit Raw Material Conversion

🚀 Try it
POST/api/v1/{tin}/submit-raw-material-conversion🔒 token required

Submit a production conversion request to the Malawi Revenue Authority (MRA) EIS system. This endpoint records the processing of raw materials into finished goods, ensuring inventory levels are adjusted accordingly for both input and output products.

Parameters

NameInRequiredDescription
tinpathYesTaxpayer Identification Number (e.g., 20154457)
deploymentEnvironmentqueryYesMRA deployment environment - 'Sandbox' or 'Production' One of: Sandbox, Production
tokenqueryYesAPI access token for authentication

Request Body

FieldTypeRequiredDescription
terminalIdstring (uuid)Yes

Terminal ID from activation

Example: 193760fb-cddc-40ed-b0fb-f08f8720f86c
productionBatchIdstringYes

Unique batch identifier for this production run

Example: BATCH-2026-001
productionDatestring (date-time)Yes

The date and time production occurred

Example: 2026-04-16T09:52:52.772Z
rawMaterialsarray<object>Yes

List of raw materials consumed

rawMaterials[].productIdstringNo Example: RM-001
rawMaterials[].productNamestringNo Example: Timber Log
rawMaterials[].availableQuantitynumber (float)No Example: 10.5
rawMaterials[].usedQuantitynumber (float)No Example: 2
finishedProductsarray<object>Yes

List of finished products generated

finishedProducts[].quantitynumber (float)No Example: 5
finishedProducts[].unitOfMeasurestringNo Example: Piece
finishedProducts[].expiryDatestring (date-time)No Example: 2027-04-16T09:52:52.772Z
finishedProducts[].productDescriptionstringNo Example: MDF Board
finishedProducts[].barcodestringNo Example: 260306145930

Responses

  • 200Conversion submitted successfully
  • 400MRA Validation Error or Processing Error
  • 401Unauthorized - Terminal session expired
  • 404Company or Terminal not found

Ping MRA Server

🚀 Try it
POST/api/v1/{tin}/ping-server🔒 token required

Check the connectivity between the WEAF system and the Malawi Revenue Authority (MRA) EIS system. This endpoint verifies that the terminal is correctly activated and the JWT token is valid for the selected environment.

Parameters

NameInRequiredDescription
tinpathYesTaxpayer Identification Number (e.g., 20154457)
deploymentEnvironmentqueryYesMRA deployment environment - 'Sandbox' or 'Production' One of: Sandbox, Production
tokenqueryYesAPI access token for authentication

Request Body

FieldTypeRequiredDescription
terminalIdstring (uuid)Yes Example: 193760fb-cddc-40ed-b0fb-f08f8720f86c

Responses

  • 200Ping successful