Skip to main content

NRS E-Invoice API Documentation

The Wragby NRS API acts as a secure proxy between your application and the NRS Electronic Invoice Validation and Compliance (EIVC) platform. It exposes endpoints for invoice validation, signing, IRN lookup, invoice transmission, VAT/NRS reporting, and reference data retrieval.

Overview

Base URL

https://nrsmockapi.azurewebsites.net

Authentication

No authentication headers are required from API consumers. The Wragby NRS API server injects the required upstream x-api-key and x-api-secret credentials when communicating with the NRS platform.

Response format

Successful requests return:

{
"message": "Request completed successfully.",
"data": {}
}

Errors return:

{
"code": 400,
"message": "error has occurred",
"error": {
"id": "bec38e04-7558-4fa2-a1b3-d96e554f433f",
"handler": "invoice_actions",
"details": "invoicerequest.invoice.taxcurrencycode is required",
"public_message": "validation failed: unable to process your request"
}
}
CodeMeaning
200Request processed successfully.
400Missing required fields or invalid values.
401Server-side upstream credentials are invalid.
404Requested IRN or resource was not found.
422NRS business-rule validation failed or invoice state is invalid.
500Unexpected server-side error.
503NRS platform could not be reached.
504Upstream request timed out.

Quickstart

Validate an invoice, sign the same payload, then transmit or confirm by IRN.

curl https://nrsmockapi.azurewebsites.net/validate-invoice \
-H "Content-Type: application/json" \
-d '{
"business_id": "fd1267b0-8f0d-4809-bb1f-e99fe0025c43",
"irn": "TOSV00121855-56F38F0D-20260205",
"issue_date": "2026-02-05",
"invoice_type_code": "381",
"document_currency_code": "NGN",
"tax_currency_code": "NGN",
"accounting_supplier_party": {
"party_name": "Perferendis facere",
"tin": "71687109-1946",
"email": "Adejoke@workmenandtalents.com",
"postal_address": {
"street_name": "21A Olubunmi Rotimi Street.",
"city_name": "Gemeente Groningen",
"postal_zone": "7667",
"country": "NG"
}
},
"legal_monetary_total": {
"line_extension_amount": 817.10,
"tax_exclusive_amount": 817.10,
"tax_inclusive_amount": 817.10,
"payable_amount": 817.10
},
"invoice_line": [
{
"hsn_code": "8517.11",
"product_category": "Line telephone sets with cordless handsets",
"invoiced_quantity": 6.00,
"line_extension_amount": 712.80,
"item": {
"name": "Line Telephone",
"description": "Line Telephone"
},
"price": {
"price_amount": 118.80,
"base_quantity": 6.00,
"price_unit": "NGN per 1"
}
},
{
"hsn_code": "8518.10",
"product_category": "Microphones and stands therefor",
"invoiced_quantity": 7.00,
"line_extension_amount": 104.30,
"item": {
"name": "Microphone",
"description": "Microphone"
},
"price": {
"price_amount": 14.90,
"base_quantity": 7.00,
"price_unit": "NGN per 1"
}
}
],
"tax_total": [
{
"tax_amount": 61.28,
"tax_subtotal": [
{
"taxable_amount": 712.80,
"tax_amount": 53.46,
"tax_category": {
"id": "STANDARD_VAT",
"percent": 7.5
}
},
{
"taxable_amount": 104.30,
"tax_amount": 7.82,
"tax_category": {
"id": "STANDARD_VAT",
"percent": 7.5
}
}
]
}
],
"accounting_customer_party": {
"party_name": "Wragby business solutions",
"tin": "71687109-1946",
"email": "info@wragbysolutions.com",
"postal_address": {
"street_name": "Way Street",
"city_name": "Lagos",
"postal_zone": "100632",
"country": "NG"
}
}
}'

Validate Invoice

POST/validate-invoice

Validates an invoice against NRS EIVC platform rules before signing.

Required fields

FieldTypeDescription
business_idstringUnique business identifier registered on the NRS platform.
irnstringInvoice Reference Number, for example TOSV00180-56F38F0D-20260205.
issue_datestringInvoice issue date in YYYY-MM-DD format.
invoice_type_codestringUBL invoice type code, for example 381 or 396.
document_currency_codestringISO 4217 document currency code, for example NGN.
tax_currency_codestringISO 4217 tax currency code.
accounting_supplier_partyPartySeller or supplier object.
legal_monetary_totalLegalMonetaryTotalInvoice monetary totals.
invoice_lineInvoiceLine[]One or more invoice line items.
tax_totalTaxTotal[]Tax total breakdown with subtotals.

Optional fields

FieldTypeDescription
due_datestringPayment due date in YYYY-MM-DD format when supplied.
issue_timestringInvoice issue time.
payment_statusstringCurrent payment status for the invoice.
notestringAdditional free-text invoice note.
tax_point_datestringTax point date in YYYY-MM-DD format when supplied.
accounting_coststringAccounting cost reference.
buyer_referencestringBuyer-side reference identifier.
order_referencestringRelated order reference.
invoice_delivery_periodInvoiceDeliveryPeriodOptional delivery period object.
billing_referenceDocumentReference[]Related billing document references.
dispatch_document_referenceDocumentReferenceRelated dispatch document reference.
receipt_document_referenceDocumentReferenceRelated receipt document reference.
originator_document_referenceDocumentReferenceRelated originator document reference.
contract_document_referenceDocumentReferenceRelated contract document reference.
_document_referenceDocumentReference[]Additional document references.
accounting_customer_partyPartyBuyer or customer party details.
payee_partyPartyOptional payee party details.
tax_representative_partyPartyOptional tax representative party details.
actual_delivery_datestringActual delivery date in YYYY-MM-DD format when supplied.
payment_meansPaymentMeans[]Payment means entries for the invoice.
payment_terms_notestringPayment terms note.
allowance_chargeAllowanceCharge[]Optional allowances or charges applied to the invoice.

Example response

{
"message": "Request completed successfully.",
"data": {
"ok": true
}
}

Sign Invoice

POST/sign-invoice

Submits an invoice to the NRS platform for cryptographic signing and official registration. The signed invoice receives a QR code and digital signature that can be used for compliance verification.

Use the same invoice payload structure documented under Validate Invoice.

{
"message": "Request completed successfully.",
"data": {
"irn": "TOSV00180-56F38F0D-20260205",
"signed": true
}
}

Transmit Invoice

POST/transmit-invoice/{irn}

Transmits a signed invoice to the recipient through the NRS platform. The IRN must already be signed before transmission.

ParameterTypeRequiredDescription
irnstringYesInvoice Reference Number.

Pull Invoice

GET/transmit/pull

Returns a paginated list of invoices that have been transmitted to the customer or receiving party.

Query parameterTypeRequiredDescription
pageintegerNoPage number to retrieve. Defaults to 1.
sizeintegerNoNumber of items per page. Defaults to 10.
{
"message": "Request completed successfully.",
"data": {
"items": [
{
"irn": "TOSV00180-56F38F0D-20260205",
"pushed_at": "2026-04-08T01:48:57.812317Z",
"confirmed_at": "2026-04-08T01:55:46.409796Z"
}
],
"page": {
"page": 1,
"size": 10,
"hasNextPage": false,
"hasPreviousPage": false,
"totalCount": 5
},
"attributes": null
}
}

Confirm Receipt

PATCH/confirm-receipt/{irn}

Confirms receipt of a transmitted invoice on the NRS platform. This acknowledges to the sender that the invoice has been received.

Confirm Invoice

GET/confirm-invoice/{irn}

Confirms an invoice by IRN and returns status and compliance metadata.

{
"message": "Request completed successfully.",
"data": {
"issue_date": "2026-02-05",
"due_date": "",
"sync_date": "2026-04-08",
"payment_status": "PENDING",
"entry_status": "TRANSMITTED",
"transmitted": true,
"delivered": true
}
}

Report E-Invoice

POST/report-einvoice

Reports invoices to the NRS e-invoice team for financial actions and forwards payment data to the NRS VAT post-payment endpoint.

FieldTypeDescription
agent_tinstringAccounting supplier party TIN.
base_amountstringAmount to be taxed.
beneficiary_tinstringAccounting buyer party TIN.
currencystringDocument currency code, for example NGN.
item_descriptionstringInvoice line item description.
irnstringInvoice Reference Number.
other_taxesstringSum of tax amounts outside VAT.
total_amountstringPayable amount.
transaction_datestringIssue date in YYYY-MM-DD format.
vat_calculatedstringVAT tax amount.
integrator_service_idstringService ID of the Access Point Provider.
vat_ratestringVAT percentage, for example 7.5.
vat_statusstringVAT category, for example STANDARD_VAT.

Reference Data

Get Countries

GET/get-countries

Returns the list of countries supported by NRS EIVC. Use returned alpha_2 values in postal address country fields.

Get Product Codes

GET/get-product-codes

Returns Harmonized System product codes recognised by NRS. Use hscode values in invoice line item hsn_code.

Get Product Services

GET/get-product-services

Returns service codes supported by NRS. Use these for service-based invoice line items.

Get Tax Categories

GET/get-tax-categories

Returns tax categories defined on the NRS platform. Use code values in tax_category.id.

Object Reference

Party

FieldTypeRequiredDescription
party_namestringYesLegal name of the party.
tinstringYesTax Identification Number.
emailstringYesContact email address.
postal_addressAddressYesPhysical address.
telephonestringNoContact phone number.
business_descriptionstringNoBrief description of business activities.

Address

FieldTypeRequiredDescription
street_namestringYesStreet name and number.
city_namestringYesCity or locality name.
postal_zonestringYesPostal or ZIP code.
countrystringYesISO 3166-1 alpha-2 country code, for example NG.

LegalMonetaryTotal

FieldTypeRequiredDescription
line_extension_amountnumberYesSum of invoice line extension amounts before tax.
tax_exclusive_amountnumberYesAmount excluding tax.
tax_inclusive_amountnumberYesAmount including tax.
payable_amountnumberYesFinal amount payable.

InvoiceLine

FieldTypeRequiredDescription
hsn_codestringYesProduct or service code.
product_categorystringYesProduct or service category description.
invoiced_quantitynumberYesQuantity invoiced.
line_extension_amountnumberYesLine total before tax.
itemItemYesItem name and description.
pricePriceYesPrice amount, base quantity, and price unit.

TaxTotal

FieldTypeRequiredDescription
tax_amountnumberYesTotal tax amount.
tax_subtotalTaxSubtotal[]YesTax breakdown by category.