Raw schema
{
"type": "object",
"properties": {
"business_id": {
"type": "string",
"description": "Your FIRS business_id (UUID) from your NRSMBS Dashboard โ identifies the taxpayer entity submitting the invoice."
},
"invoice_number": {
"type": "string",
"description": "Your own invoice/document number (used to build the IRN, unless you pass irn directly). E.g. INV001."
},
"service_id": {
"type": "string",
"description": "Your FIRS-issued Service ID (the middle segment of the IRN, e.g. 6997D6BB). Used with invoice_number + issue_date to build the IRN. Not needed if you pass irn directly."
},
"irn": {
"type": "string",
"description": "Optional ready-made IRN, format InvoiceNumber-ServiceID-YYYYMMDD (e.g. ITW20853450-6997D6BB-20240703). If omitted, built from invoice_number + service_id + issue_date."
},
"issue_date": {
"type": "string",
"description": "Invoice date YYYY-MM-DD. Defaults to today (UTC)."
},
"invoice_type_code": {
"type": "string",
"description": "FIRS invoice type code. Default 396 (commercial invoice). See the MBS GetInvoiceTypes list for others."
},
"document_currency_code": {
"type": "string",
"description": "ISO currency of the invoice. Default NGN."
},
"supplier_name": {
"type": "string",
"description": "Seller (supplier) legal party_name as registered with FIRS."
},
"supplier_tin": {
"type": "string",
"description": "Seller Tax Identification Number (TIN), e.g. TIN-0099990001."
},
"supplier_email": {
"type": "string",
"description": "Optional seller email."
},
"supplier_street": {
"type": "string",
"description": "Optional seller street_name (postal_address)."
},
"supplier_city": {
"type": "string",
"description": "Optional seller city_name."
},
"supplier_postal_zone": {
"type": "string",
"description": "Optional seller postal_zone (post code)."
},
"customer_name": {
"type": "string",
"description": "Buyer (customer) legal party_name."
},
"customer_tin": {
"type": "string",
"description": "Buyer Tax Identification Number (TIN)."
},
"customer_email": {
"type": "string",
"description": "Optional buyer email."
},
"customer_street": {
"type": "string",
"description": "Optional buyer street_name (postal_address)."
},
"customer_city": {
"type": "string",
"description": "Optional buyer city_name."
},
"customer_postal_zone": {
"type": "string",
"description": "Optional buyer postal_zone (post code)."
},
"tax_category_id": {
"type": "string",
"description": "Optional FIRS tax_category id for the VAT lines. Default VAT (value-added tax). Use another MBS tax-category code only if the goods fall under a different regime."
},
"items": {
"type": "array",
"minItems": 1,
"description": "Line items. Each: name, price (unit price in NGN, tax-EXCLUSIVE), optional quantity (default 1), vat_rate (percent, default 7.5), hsn_code, description, product_category. VAT is computed on top of price*quantity.",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"description": {
"type": "string"
},
"price": {
"type": "number",
"description": "Tax-exclusive unit price in NGN."
},
"quantity": {
"type": "number",
"description": "Default 1."
},
"vat_rate": {
"type": "number",
"description": "VAT percent for this line. Default 7.5 (Nigeria standard rate). Use 0 for exempt/zero-rated."
},
"hsn_code": {
"type": "string",
"description": "Optional product/commodity code."
},
"product_category": {
"type": "string",
"description": "Optional product category."
}
},
"required": [
"name",
"price"
]
}
}
},
"required": [
"business_id",
"supplier_name",
"supplier_tin",
"customer_name",
"customer_tin",
"items"
]
}