Electronic Invoicing System API v1
Developers Guide
×
Menu
Index

5.3.1.1. Request

 
 
curl -X 'POST' \
  'https: //dev-eis-api.mra.mw//api/v1/api/v1/sales/submit-sales-transaction' \
  -H 'accept: text/plain' \
  -H 'Content-Type: application/json' \
  -H 'Authorization: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoiMjAxNjI5MzkiLCJodHRwczovL21yYS5tdy9EZXZpY2VJZCI6IjNhNmQzNzAzLTFjMzktNDFlOC05OGNlLWIzOGQ5NTc0NTQwZCIsImh0dHBzOi8vbXJhLm13L1NlY3JldEtleSI6ImY3NTQyODE2YTA4ODMzMTRhMTQ2YTZkMTI3NjM0OWQ5ZTczNmEwMCIsImh0dHBzOi8vbXJhLm13L0FQSUtleSI6ImY3NTQyODE2YTA4ODMzMTRhMTQ2YTZkMTI3NjM0OWQ5ZTczNmEwMCIsImh0dHBzOi8vbXJhLm13L1RJTiI6IjIwMTYyOTM5IiwiZXhwIjoxNzI4OTI2NzI2LCJpc3MiOiJNUkEiLCJhdWQiOiJFSVNUZXJtaW5hbHMifQ.pg-jKtsxKh6L0pEbu4RdJaj_bMijXmUGRmoH9k6Mh4g'\
  -d '{
  "invoiceHeader": {
    "invoiceNumber": "string",
    "invoiceDateTime": "2025-05-28T06:57:11.368Z",
    "sellerTIN": "string",
    "buyerTIN": "string",
    "buyerName": "string",
    "buyerAuthorizationCode": "string",
    "siteId": "string",
    "globalConfigVersion": 0,
    "taxpayerConfigVersion": 0,
    "terminalConfigVersion": 0,
    "isReliefSupply": true,
    "vat5CertificateDetails": {
      "id": 0,
      "projectNumber": "string",
      "certificateNumber": "string",
      "quantity": 0
    },
    "paymentMethod": "string"
  },
  "invoiceLineItems": [
    {
      "id": 0,
      "productCode": "string",
      "description": "string",
      "unitPrice": 0,
      "quantity": 0,
      "discount": 0,
      "total": 0,
      "totalVAT": 0,
      "taxRateId": "string",
      "isProduct": true
    }
  ],
  "invoiceSummary": {
    "taxBreakDown": [
      {
        "rateId": "string",
        "taxableAmount": 0,
        "taxAmount": 0
      }
    ],
    "levyBreakDown": [
      {
        "levyTypeId": "string",
        "levyRate": 0,
        "levyAmount": 0
      }
    ],
   
    "totalVAT": 0,
    "offlineSignature": "string",
    "invoiceTotal": 0
  }
}'
 
 
     The call to the submit sales transactions endpoint will be successful with the following parameters.
Field
Data Type
Mandatory
Comments
Authorization
string
-yes
This will be computed from a  Terminal Activation Code
invoiceHeader.invoiceNumber
string
-yes
 
invoiceHeader.invoiceDateTime
datetime
-yes
The date and time the invoice was issued
invoiceHeader.sellerTIN
string
-yes
The Taxpayer Identification Number of the seller
invoiceHeader.buyerTIN
string
-no
Needed if  its a B2B transaction
invoiceHeader.buyerName
string
-no
 
invoiceHeader.buyerAuthorizationCode
string
-no
It is required when the TIN is protected. It is generated from the taxpayers portal
invoiceHeader.siteId
string
-yes
This is the site id where the terminal is operating
invoiceHeader.globalConfigVersion
integer
-yes
this is the configuration that will be received from the terminal activation response
invoiceHeader.taxpayerConfigVersion
integer
-yes
 
invoiceHeader.terminalConfigVersion
integer
-yes
 
invoiceHeader.isReliefSupply
boolean
-no
Marks whether the supply is relief exempt. It requires VAT 5 certificate using the Validate VAT 5 Certificate endpoint.
invoiceHeader.paymentMethod
string
-yes
The method of payment (e.g., Cash, Card, MobileMoney).
invoiceLineItems[].productCode
string
-yes
Unique product or service code.
invoiceLineItems[].description
string
-yes
description of the Product or service
invoiceLineItems[].unitPrice
decimal
-yes
Price per unit product or service.
invoiceLineItems[].quantity
decimal
-yes
Quantity of items sold
invoiceLineItems[].discount
decimal
-no
Any discount applied to the line item.
invoiceLineItems[].total
decimal
-yes
The net total (after discount, before VAT) for the line item.
invoiceLineItems[].totalVAT
decimal
-yes
VAT amount for this line item.
invoiceLineItems[].taxRateId
string
-yes
Identifier for the applied tax rate.
invoiceLineItems[].isProduct
boolean
-yes
True if item is a product, false if it is a service.
invoiceSummary.taxBreakDown[].rateId
string
-yes
Tax rate identifier (matches taxRateId in line items).
invoiceSummary.taxBreakDown[].taxableAmount
decimal
-yes
Sum of taxable amounts under this rate.
invoiceSummary.taxBreakDown[].taxAmount
decimal
-yes
Total tax calculated for this rate.
invoiceSummary.levyBreakDown.levyTypeId
string
-no
dentifier of the levy type (e.g., Environmental Levy, Tourism Levy). Required only if a levy applies.
invoiceSummary.levyBreakDown.levyRate
decimal
-no
Percentage rate (%) applied for this levy.
invoiceSummary.levyBreakDown.levyAmount
decimal
-no
Monetary value of the levy calculated from the levyRate.
invoiceSummary.totalVAT
decimal
-yes
Total VAT across all line items.
invoiceSummary.invoiceTotal
decimal
-yes
Final invoice total including VAT.
invoiceSummary.offlineSignature
string
-no
If the transaction was issued offline, the offline signature is included.
invoiceSummary.amountTendered
decimal
-yes
Amount paid by the customer before giving back any change.
 
 
Notes
 
   If the isReliefSupply field in the invoiceHeader of the request is set to true, it means the transaction qualifies for VAT relief under Malawi’s regulations. In such cases:
  Additionally, if a buyerTIN is provided, it indicates a business-to-business (B2B) transaction. On the taxpayer portal, the taxpayer can choose to protect their TIN: