Skip to Content

Matt O'Bell NRS System Integrator

NRS E-Invoice API — Create Invoice Request Payload

Version 1.4 — NRS Reviewer Response Edition
Prepared by Matt O'Bell Limited • 1 September 2026

1. NRS API Operation

NRS documents the invoice request under Invoice Schema and identifies POST base_url/api/v1/invoice/validate. The schema is UBL-based and supports JSON and XML.

2. Complete Top-Level Request Schema

JSON field Requirement Description
business_idMandatoryUnique business identification number.
irnMandatoryUnique invoice tracking number.
issue_dateMandatoryInvoice issue date (YYYY-MM-DD).
due_dateOptionalPayment due date.
issue_timeOptionalIssue time (HH:MM:SS).
invoice_type_codeMandatoryInvoice type code.
invoice_kindMandatoryInvoice kind, e.g. B2B.
payment_statusOptionalInvoice payment status.
noteOptionalAdditional invoice note.
tax_point_dateOptionalDate tax becomes applicable.
document_currency_codeMandatoryInvoice currency.
tax_currency_codeMandatoryTax calculation currency.
accounting_costOptionalAccounting cost centre.
buyer_referenceOptionalBuyer reference.
invoice_delivery_periodOptionalStart/end delivery period.
order_referenceOptionalOrder reference.
billing_referenceOptional / repeatablePrevious billing document reference.
dispatch_document_referenceOptionalDespatch reference.
receipt_document_referenceOptionalReceipt reference.
originator_document_referenceOptionalOriginator reference.
contract_document_referenceOptional / repeatableContract reference.
additional_document_referenceOptionalAdditional document reference.
accounting_supplier_partyMandatorySeller issuing invoice.
payee_partyOptionalPayee where different.
bill_partyOptionalBilling party.
ship_partyOptionalShipping party.
tax_representative_partyOptionalTax representative.
actual_delivery_dateOptionalActual delivery date.
payment_meansOptional / repeatablePayment method and due date.
payment_terms_noteOptionalPayment terms.
allowance_chargeOptional / repeatableDiscounts/charges.
tax_totalMandatory / repeatableTax total and subtotals.
legal_monetary_totalMandatoryInvoice monetary totals.
invoice_lineMandatory / repeatableGoods/services invoiced.

3. Complete Create Invoice Request — JSON

Complete illustrative request. Optional structures should only be populated when applicable.

{
  "business_id": "f771e1dd-b3ba-4628-83d0-5f3d8a52f890",
  "irn": "INV202600002-4894B3BA-20260813",
  "issue_date": "2026-08-13",
  "due_date": "2026-08-14",
  "issue_time": "00:00:00",
  "invoice_type_code": "381",
  "invoice_kind": "B2B",
  "payment_status": "PENDING",
  "note": "Odoo Implementation & Configuration",
  "tax_point_date": "2026-08-13",
  "document_currency_code": "NGN",
  "tax_currency_code": "NGN",
  "accounting_cost": "2000",
  "buyer_reference": "ITW001-E9E0C0D3-20260813",

  "invoice_delivery_period": {
    "start_date": "2026-08-13",
    "end_date": "2026-08-13"
  },

  "order_reference": "ITW001-E9E0C0D3-20260813",

  "billing_reference": [
    {
      "irn": "ITW001-E9E0C0D3-20260812",
      "issue_date": "2026-08-12"
    }
  ],

  "dispatch_document_reference": {
    "irn": "ITW001-E9E0C0D3-20260812",
    "issue_date": "2026-08-12"
  },

  "receipt_document_reference": {
    "irn": "ITW001-E9E0C0D3-20260812",
    "issue_date": "2026-08-12"
  },

  "originator_document_reference": {
    "irn": "ITW001-E9E0C0D3-20260812",
    "issue_date": "2026-08-12"
  },

  "contract_document_reference": [
    {
      "irn": "CTR001-94ND90NR-20260801",
      "issue_date": "2026-08-01"
    }
  ],

  "additional_document_reference": {
    "irn": "DOC001-94ND90NR-20260801",
    "issue_date": "2026-08-01"
  },

  "accounting_supplier_party": {
    "party_name": "Mattobell Limited",
    "tin": "14530564-0001",
    "email": "erp@mattobell.net",
    "telephone": "+2347068693119",
    "business_description": "Business activity",
    "postal_address": {
      "street_name": "71 CMD Road",
      "city_name": "Magodo",
      "postal_zone": "23401",
      "country": "NG",
      "state": "Lagos State",
      "lga": ""
    }
  },

  "accounting_customer_party": {
    "party_name": "Example Customer Limited",
    "tin": "12345678-0001",
    "email": "customer@example.com",
    "telephone": "+2348000000000",
    "business_description": "Customer business activity",
    "postal_address": {
      "street_name": "10 Customer Street",
      "city_name": "Ikeja",
      "postal_zone": "100001",
      "country": "NG",
      "state": "Lagos State",
      "lga": ""
    }
  },

  "payee_party": {
    "party_name": "Mattobell Limited",
    "tin": "14530564-0001",
    "email": "erp@mattobell.net",
    "telephone": "+2347068693119",
    "business_description": "Business activity",
    "postal_address": {
      "street_name": "71 CMD Road",
      "city_name": "Magodo",
      "postal_zone": "23401",
      "country": "NG"
    }
  },

  "bill_party": {
    "party_name": "Mattobell Limited",
    "tin": "14530564-0001",
    "email": "erp@mattobell.net",
    "telephone": "+2347068693119",
    "business_description": "Business activity",
    "postal_address": {
      "street_name": "71 CMD Road",
      "city_name": "Magodo",
      "postal_zone": "23401",
      "country": "NG"
    }
  },

  "ship_party": {
    "party_name": "Mattobell Limited",
    "tin": "14530564-0001",
    "email": "erp@mattobell.net",
    "telephone": "+2347068693119",
    "business_description": "Business activity",
    "postal_address": {
      "street_name": "71 CMD Road",
      "city_name": "Magodo",
      "postal_zone": "23401",
      "country": "NG"
    }
  },

  "tax_representative_party": {
    "party_name": "Mattobell Limited",
    "tin": "14530564-0001",
    "email": "erp@mattobell.net",
    "telephone": "+2347068693119",
    "business_description": "Tax filings and compliance",
    "postal_address": {
      "street_name": "71 CMD Road",
      "city_name": "Magodo",
      "postal_zone": "23401",
      "country": "NG"
    }
  },

  "actual_delivery_date": "2026-08-13",

  "payment_means": [
    {
      "payment_means_code": "10",
      "payment_due_date": "2026-08-14"
    }
  ],

  "payment_terms_note": "Payment due within 30 days of invoice issue.",

  "allowance_charge": [
    {
      "charge_indicator": true,
      "discount_rate": 0,
      "discount_amount": 0,
      "fee_rate": 0,
      "fee_amount": 0
    }
  ],

  "tax_total": [
    {
      "tax_amount": 6750.0,
      "tax_subtotal": [
        {
          "taxable_amount": 90000.0,
          "tax_amount": 6750.0,
          "tax_category": {
            "id": "STANDARD_VAT",
            "percent": 7.5
          }
        }
      ]
    }
  ],

  "legal_monetary_total": {
    "line_extension_amount": 90000.0,
    "tax_exclusive_amount": 90000.0,
    "tax_inclusive_amount": 96750.0,
    "payable_amount": 96750.0
  },

  "invoice_line": [
    {
      "discount_amount": 0.0,
      "discount_rate": 0.0,
      "fee_amount": 0.0,
      "fee_rate": 0.0,
      "hsn_code": "",
      "invoiced_quantity": 1.0,
      "isic_code": "7020",
      "item": {
        "description": "Odoo Implementation & Configuration",
        "name": "Odoo Implementation & Configuration",
        "sellers_item_identification": ""
      },
      "line_extension_amount": 90000.0,
      "price": {
        "base_quantity": 1,
        "price_amount": 90000.0,
        "price_unit": "XBG"
      },
      "product_category": "",
      "service_category": "Management consultancy activities"
    }
  ]
}

4. Invoice Line Schema

Field Requirement / Applicability Description
discount_amountOptionalLine discount amount.
discount_rateOptionalLine discount rate.
fee_amountOptionalLine fee amount.
fee_rateOptionalLine fee rate.
hsn_codeGoodsNRS HSN/product code.
invoiced_quantityMandatoryQuantity invoiced.
isic_codeServicesNRS four-digit ISIC code.
itemMandatoryItem/service object.
line_extension_amountMandatoryLine amount.
priceMandatoryPrice object.
product_categoryGoodsNRS product category.
service_categoryServicesNRS service category.

5. Price Object

{"price_amount":90000.0,"base_quantity":1,"price_unit":"XBG"}

6. Tax and Monetary Totals

TaxTotal contains TaxAmount and TaxSubtotal. LegalMonetaryTotal contains line_extension_amount, tax_exclusive_amount, tax_inclusive_amount and payable_amount.

7. IRN

Invoice Number + Service ID + YYYYMMDD. Mattobell test: INV202600002-4894B3BA-20260813.

8. Test Evidence

Mattobell successfully demonstrated validation HTTP 200 and signing HTTP 201 in Sandbox.

9. Terminology Note

The public NRS documentation uses POST base_url/api/v1/invoice/validate. This documentation does not invent a separate undocumented Create Invoice endpoint.