Flick.
FIRS CompliantCountry guide

Nigeria - eInvoicing Mandates

Navigate Nigeria's e-invoicing requirements with our comprehensive FIRS-compliant solution. Our platform provides all the tools and guidance needed to ensure seamless integration and full regulatory compliance.

FIRSCertified
2024Mandatory
All VATEntities
7 DaysSetup

Reporting Mandates

  • FIRS E-Invoicing
  • VAT Compliance

Exchange Networks

  • FIRS Portal

Supported Documents

  • Tax Invoices
  • VAT Invoices
  • Credit Notes
  • Debit Notes

Introduction to Nigeria E-Invoicing

Nigeria is implementing a comprehensive electronic invoicing system through the Federal Inland Revenue Service (FIRS) as part of its digital transformation and tax compliance enhancement initiatives. The FIRS e-invoicing system aims to modernize tax collection, improve transparency, and combat tax evasion in Africa's largest economy.

Key Authorities

AuthorityRoleResponsibilities
Federal Inland Revenue Service (FIRS)Primary tax authority and e-invoicing regulator• Developing and managing the FIRS Merchant-Buyer Solution (FIRSMBS) platform
• Setting compliance requirements and standards
• Validating and issuing Invoice Reference Numbers (IRN)
• Monitoring tax compliance through e-invoice data
• Enforcing penalties for non-compliance
• Providing guidance and support to taxpayers

Website: www.firs.gov.ng
National Information Technology Development Agency (NITDA)ICT standards and accreditation• Accrediting Access Point Providers (APPs)
• Setting technical standards for system integration
• Ensuring data security and privacy compliance
• Overseeing IT infrastructure requirements

Website: www.nitda.gov.ng

Digital Transformation Vision

The e-invoicing program aligns with Nigeria's broader economic modernization agenda:

ObjectiveDescription
Tax ModernizationTransform tax collection and administration to digital platforms
Economic TransparencyEnhance visibility and accountability in business transactions
VAT ComplianceReduce tax evasion and expand the formal economy
Business EfficiencyStreamline invoice processing and reduce manual operations
Real-Time MonitoringEnable FIRS to monitor transactions and tax collection in real-time
Economic GrowthSupport government revenue generation for national development

E-Invoicing Overview

Nigeria has adopted an e-invoicing framework based on international standards, specifically the Peppol BIS Billing 3.0 Universal Business Language (UBL) format. The system operates through the FIRS Merchant-Buyer Solution (FIRSMBS) platform, which validates invoices, issues Invoice Reference Numbers (IRN), and ensures tax compliance through automated reporting.

System Architecture

The Nigerian e-invoicing system follows a clearance model:

ComponentDescription
FIRSMBS PlatformCentral validation and clearance system operated by FIRS
Access Point Providers (APPs)NITDA-accredited intermediaries for invoice transmission
Invoice Reference Number (IRN)Unique identifier issued by FIRS after invoice validation
Cryptographic Stamp ID (CSID)Digital signature ensuring invoice authenticity
QR CodeMachine-readable code for quick verification

Transaction Types

TypeDescriptionClearance Requirement
B2BBusiness-to-Business transactionsPre-clearance mandatory
B2GBusiness-to-Government transactionsPre-clearance mandatory
B2CBusiness-to-Consumer (above ₦50,000)Post-reporting within 24 hours

For official updates and detailed information, please refer to the FIRS website and official circulars.

Nigeria E-Invoicing Mandates

The Federal Inland Revenue Service (FIRS) has introduced mandatory e-invoicing as part of Nigeria's tax modernization strategy. This section outlines the key mandates affecting businesses operating in Nigeria.

FIRS E-Invoicing Mandate

The FIRS has implemented a mandatory e-invoicing system through the FIRS Merchant-Buyer Solution (FIRSMBS) platform based on international Peppol BIS Billing 3.0 UBL standards.

What is FIRSMBS?

FIRSMBS (FIRS Merchant-Buyer Solution) is Nigeria's central electronic invoicing platform that validates, stamps, and tracks all taxable invoices. Every invoice must be submitted to FIRSMBS for clearance before being sent to the buyer (for B2B/B2G) or reported within 24 hours (for B2C).

Regulatory Framework

ComponentDetails
Issuing AuthorityFederal Inland Revenue Service (FIRS)
Legal BasisFIRS Establishment Act 2007, Value Added Tax Act, Nigerian Tax Administration Bill (NTAB)
StandardPeppol BIS Billing 3.0 UBL (XML/JSON format)
PlatformFIRS Merchant-Buyer Solution (FIRSMBS)
ModelClearance-based system with pre-approval requirement

Implementation Timeline

PhaseEffective DateScopeStatus
Phase 1November 1, 2025Large taxpayers (annual turnover ≥ ₦5 billion)Active
Phase 2January 1, 2026Medium and small VAT-registered businessesUpcoming
Phase 32026 (TBD)Non-resident suppliers (under review)Planned

Who Must Comply?

CategoryRequirementTransaction Types
Large TaxpayersMandatory from November 1, 2025All B2B, B2G, and B2C (>₦50,000)
VAT-Registered EntitiesMandatory from January 1, 2026All taxable supplies
Medium/Small BusinessesMandatory from January 1, 2026B2B, B2G, and high-value B2C
Non-VAT RegisteredCurrently excludedMay be included in future phases

Transaction Coverage

Transaction TypeThresholdClearance ModelTimeline
B2B (Business-to-Business)All valuesPre-clearance mandatoryBefore invoice delivery
B2G (Business-to-Government)All valuesPre-clearance mandatoryBefore invoice delivery
B2C (Business-to-Consumer)Above ₦50,000Post-reportingWithin 24 hours of issuance
B2C (Business-to-Consumer)Below ₦50,000Exempt (for now)N/A

How the System Works

Clearance Process Flow

B2B/B2G Transactions (Pre-Clearance Model)

StepParticipantAction
1SupplierCreates invoice in compliant UBL format
2Supplier/APPSubmits invoice to FIRSMBS via API
3FIRSMBSValidates invoice structure and data
4FIRSMBSIssues IRN, CSID, and QR code if valid
5SupplierReceives approved invoice with IRN
6SupplierDelivers invoice to buyer through APP or directly
7BuyerReceives validated invoice

B2C Transactions (Post-Reporting Model)

StepParticipantAction
1SupplierIssues invoice to consumer at point of sale
2Supplier/APPReports invoice to FIRSMBS within 24 hours
3FIRSMBSValidates and records transaction
4ConsumerCan verify invoice using QR code

Invoice Components

Every FIRS-approved invoice contains:

ComponentDescriptionFormat
Invoice Reference Number (IRN)Unique identifier issued by FIRSAlphanumeric string
Cryptographic Stamp ID (CSID)Digital signature ensuring authenticityEncrypted hash
QR CodeMachine-readable verification code2D barcode
UBL DataStructured invoice informationXML or JSON

Document Types

Document TypeCodeDescriptionUse Case
Standard Invoice380Regular commercial invoiceNormal sales transactions
Credit Note381Correction or refund documentReturns, adjustments
Debit Note383Additional chargesPrice increases, fees
Simplified Invoice394B2C simplified formatRetail, consumer sales

Key Technical Requirements

To comply with the FIRS e-invoicing mandate, businesses must:

#RequirementDescription
1UBL Format ComplianceInvoices must follow Peppol BIS Billing 3.0 UBL format (XML or JSON)
2API IntegrationIntegrate with FIRSMBS via RESTful APIs
3Access Point ProviderUse NITDA-accredited APP for invoice transmission
4Digital CertificatesObtain and maintain valid digital certificates
5Mandatory FieldsInclude all 55+ mandatory invoice fields
6Real-Time ValidationSubmit invoices for real-time FIRS validation
7IRN DisplayDisplay IRN, CSID, and QR code on all invoices
8Record RetentionMaintain electronic records for audit purposes

Non-Compliance Penalties

The FIRS has established significant penalties for non-compliance:

ViolationPenaltyLegal Basis
First Day of Non-Compliance₦1,000,000NTAB provisions
Continued Non-Compliance₦10,000 per day after first dayNTAB provisions
Administrative Penalty₦200,000FIRS Establishment Act
Failure to Process Taxable Supply100% of tax due + 2% monthly interestVAT Act
False InformationCriminal prosecution + finesFIRS Establishment Act

Example Penalty Calculation

For a business that fails to comply for 30 days:

  • First day: ₦1,000,000
  • Remaining 29 days: ₦10,000 × 29 = ₦290,000
  • Administrative penalty: ₦200,000
  • Total: ₦1,490,000 (excluding tax penalties and interest)

Benefits of Compliance

Complying with the e-invoicing mandate provides several advantages:

BenefitImpact
Avoid PenaltiesEliminate risk of substantial fines and legal action
Improved Cash FlowFaster invoice processing and payment cycles
Enhanced Record-KeepingAutomated digital records for audit readiness
Tax CertaintyReal-time validation ensures tax compliance
Competitive AdvantageDemonstrates professionalism and compliance to partners
Reduced FraudCryptographic stamps prevent invoice manipulation
Easier AuditsDigital trail simplifies tax audit processes

Implementation Steps

Businesses should follow these steps to achieve compliance:

StepActionPurpose
1. Assess Current SystemsEvaluate existing invoicing and ERP systemsIdentify gaps and integration requirements
2. Select Access Point ProviderChoose NITDA-accredited APPEstablish connection to FIRSMBS
3. System IntegrationIntegrate with APP APIsEnable invoice submission and validation
4. Staff TrainingTrain finance and operations teamsEnsure proper system usage
5. TestingConduct end-to-end testingVerify integration before go-live
6. Go LiveBegin mandatory complianceSubmit invoices through FIRSMBS
7. Monitor & MaintainTrack submissions and resolve issuesEnsure continuous compliance

Support Resources

ResourceProviderAccess
Official GuidelinesFIRSwww.firs.gov.ng
Technical DocumentationFIRS Digital ServicesPlatform portal
Accredited APPsNITDAwww.nitda.gov.ng
HelpdeskFIRS SupportPhone and email support

For the latest mandate updates and official guidance, please refer to FIRS circulars and announcements.

Nigeria Invoice Datapoints

These are the datapoints included in Nigeria's e-invoicing system following the Peppol BIS Billing 3.0 UBL standard.

Base-Level Invoice Datapoints

document_identifier

UBL Tag: cbc:ID
Requirement: Mandatory
Type: String

Unique identifier for the invoice assigned by the supplier.

Regional API

JSON
{
  "document_identifier": "CNINV-1126519001"
}

Rules:

  • Must be unique within the supplier's system
  • Used for tracking and reference
  • Will be used to generate the IRN (Invoice Reference Number) by FIRS

issue_date

UBL Tag: cbc:IssueDate
Requirement: Mandatory
Type: Date (YYYY-MM-DD)

The date when the invoice was issued.

Regional API

JSON
{
  "issue_date": "2025-05-14"
}

Rules:

  • Must be in ISO 8601 format: YYYY-MM-DD
  • Cannot be a future date
  • Must be within the current tax period

due_date

UBL Tag: cbc:DueDate
Requirement: Optional
Type: Date (YYYY-MM-DD)

The date by which payment is due.

Regional API

JSON
{
  "due_date": "2025-03-29"
}

Rules:

  • Must be in ISO 8601 format: YYYY-MM-DD
  • Should be equal to or after issue_date
  • Recommended for B2B transactions

invoice_type_code

UBL Tag: cbc:InvoiceTypeCode
Requirement: Mandatory
Type: Code

Specifies the type of invoice document.

Regional API

JSON
{
  "invoice_type_code": "380"
}

Allowed Values:

CodeDescription
380Commercial invoice
381Credit note
383Debit note
384Simplified invoice (B2C)

Rules:

  • Must be one of the approved codes for Nigeria
  • Credit notes (381) require reference to original invoice

payment_status

UBL Tag: Custom field
Requirement: Optional
Type: String

Current payment status of the invoice.

Regional API

JSON
{
  "payment_status": "PENDING"
}

Allowed Values:

  • PENDING - Payment not yet received
  • PAID - Payment received and confirmed
  • REJECTED - Invoice rejected by buyer

document_currency_code

UBL Tag: cbc:DocumentCurrencyCode
Requirement: Mandatory
Type: Code (ISO 4217)

The currency in which all invoice amounts are expressed.

Regional API

JSON
{
  "document_currency_code": "NGN"
}

Rules:

  • Must be coded using ISO 4217 alpha-3 code
  • For Nigerian transactions, typically "NGN" (Nigerian Naira)
  • All amounts in the invoice must use this currency

tax_currency_code

UBL Tag: cbc:TaxCurrencyCode
Requirement: Mandatory
Type: Code (ISO 4217)

The currency used for tax calculations and reporting.

Regional API

JSON
{
  "tax_currency_code": "NGN"
}

Rules:

  • Must be "NGN" for FIRS tax reporting
  • Required even if document_currency_code is also NGN

accounting_customer_party

UBL Tag: cac:AccountingCustomerParty
Requirement: Mandatory
Type: Object

Information about the buyer/customer receiving the invoice.

Regional API

JSON
{
  "accounting_customer_party": {
    "party_name": "ABC Company Limited",
    "tin": "31976634-0001",
    "email": "customer@example.com",
    "telephone": "+234802540990",
    "business_description": "Sales of Cement and building materials",
    "postal_address": {
      "street_name": "32, Owonikoko Street",
      "city_name": "Gwarinpa",
      "postal_zone": "023401",
      "country": "NG"
    }
  }
}

Key Fields:

FieldUBL TagRequirementDescription
party_namecac:PartyName/cbc:NameMandatoryLegal name of the customer
tincac:PartyTaxScheme/cbc:CompanyIDMandatoryTax Identification Number issued by FIRS
emailcac:Contact/cbc:ElectronicMailMandatoryCustomer's email address
telephonecac:Contact/cbc:TelephoneMandatoryCustomer's phone number
business_descriptionCustomOptionalDescription of customer's business
postal_addresscac:PostalAddressMandatoryCustomer's address information

Address Fields:

FieldUBL TagRequirementDescription
street_namecbc:StreetNameMandatoryStreet address of customer
city_namecbc:CityNameMandatoryCity name
postal_zonecbc:PostalZoneMandatoryPostal code
countrycbc:IdentificationCodeMandatoryCountry code (always "NG")

Rules:

  • TIN format must follow FIRS standards (e.g., "31976634-0001")
  • All mandatory fields must be present for invoice validation
  • Country code must be "NG" for Nigerian customers

invoice_line

UBL Tag: cac:InvoiceLine
Requirement: Mandatory (at least one)
Type: Array of Objects

Individual line items in the invoice representing products or services.

Regional API

JSON
{
  "invoice_line": [
    {
      "hsn_code": "2710.19",
      "invoiced_quantity": 100,
      "price_amount": 1000,
      "discount_amount": 50,
      "discount_rate": 5,
      "fee_amount": 20,
      "fee_rate": 2,
      "uom": "ST",
      "product_category": "Food and Beverages",
      "tax_rate": 7.5,
      "tax_category_id": "LOCAL_SALES_TAX",
      "item_name": "Organic Tea Leaves",
      "sellers_item_identification": "209897"
    }
  ]
}

Key Fields:

FieldUBL TagRequirementTypeDescription
hsn_codecac:Item/cac:ClassifiedTaxCategory/cbc:IDMandatoryStringHarmonized System Nomenclature code for the product
invoiced_quantitycbc:InvoicedQuantityMandatoryNumberQuantity of items sold
price_amountcbc:PriceAmountMandatoryDecimalUnit price of the product/service
discount_amountcbc:AllowanceAmountOptionalDecimalTotal discount amount applied
discount_ratecbc:MultiplierFactorNumericOptionalDecimalDiscount percentage (e.g., 5 for 5%)
fee_amountcbc:ChargeAmountOptionalDecimalAdditional fees or charges
fee_ratecbc:MultiplierFactorNumericOptionalDecimalFee percentage
uomcbc:InvoicedQuantity@unitCodeMandatoryCodeUnit of measurement code (UN/ECE Rec 20)
product_categoryCustomMandatoryStringCategory of the product
tax_ratecac:TaxTotal/cac:TaxSubtotal/cbc:PercentMandatoryDecimalTax rate percentage (e.g., 7.5 for VAT)
tax_category_idcac:TaxCategory/cbc:IDMandatoryCodeTax category identifier
item_namecac:Item/cbc:NameMandatoryStringName/description of the item
sellers_item_identificationcac:Item/cac:SellersItemIdentification/cbc:IDOptionalStringSeller's identifier for the item

UOM (Unit of Measurement) Common Codes:

CodeDescription
1Piece/Unit (Each)
H87Piece
KGMKilogram
LTRLiter
MTRMeter
SETSet
TNETonne (metric ton)

Product Categories:

Common categories include (but not limited to):

  • Food and Beverages
  • Electronics
  • Clothing and Textiles
  • Building Materials
  • Pharmaceuticals
  • Agricultural Products
  • Services

Tax Categories:

CodeDescriptionTypical Rate
LOCAL_SALES_TAXLocal sales taxVaries by state
VATValue Added Tax7.5%
ZERO_RATEDZero-rated supplies0%
EXEMPTTax exempt items0%

Rules:

  • At least one invoice line must be present
  • hsn_code is mandatory for goods classification
  • tax_rate for VAT in Nigeria is typically 7.5%
  • Line extension amount = (invoiced_quantity × price_amount) - discount_amount + fee_amount
  • All amounts must be in the invoice currency

IRN and Validation Fields

These fields are generated by Flick before invoice submission and validation:

irn (Invoice Reference Number)

Generated By: FIRS
Type: String

Unique reference number issued by Flick.

Example: "CNINV-C1B44E6C-20250814"

Format: CNINV-{sequence}-{date}


qr_code

Generated By: FIRS
Type: Base64 String or Image

QR code containing invoice verification data for quick scanning and validation.

Contents: IRN, CSID, invoice date, amount, and other verification data


Complete Invoice Example

Regional API

JSON
{
  "document_identifier": "CNINV-1126519001",
  "issue_date": "2025-05-14",
  "due_date": "2025-06-14",
  "invoice_type_code": "380",
  "payment_status": "PENDING",
  "document_currency_code": "NGN",
  "tax_currency_code": "NGN",
  "accounting_customer_party": {
    "party_name": "ABC Company Limited",
    "tin": "31976634-0001",
    "email": "customer@example.com",
    "telephone": "+234802540990",
    "business_description": "Sales of Cement and building materials",
    "postal_address": {
      "street_name": "32, Owonikoko Street",
      "city_name": "Gwarinpa",
      "postal_zone": "023401",
      "country": "NG"
    }
  },
  "invoice_line": [
    {
      "hsn_code": "2710.19",
      "invoiced_quantity": 100,
      "price_amount": 1000,
      "discount_amount": 50,
      "discount_rate": 5,
      "fee_amount": 20,
      "fee_rate": 2,
      "uom": "ST",
      "product_category": "Food and Beverages",
      "tax_rate": 7.5,
      "tax_category_id": "LOCAL_SALES_TAX",
      "item_name": "Organic Tea Leaves",
      "sellers_item_identification": "209897"
    }
  ]
}

Additional Resources

For detailed information on:

Nigeria eInvoicing Lifecycle

This guide covers the complete lifecycle of e-invoicing in Nigeria, from onboarding to FIRSMBS through sending and receiving invoices.


Onboarding to FIRSMBS

Before you can send or receive e-invoices through the FIRS platform, you must complete the onboarding process:

1. Obtain FIRS Credentials

You must obtain the following credentials from FIRS:

CredentialDescriptionFormat
CertificateCertificate from FIRS for invoice signingBase64 encoded
Public KeyRSA public key for encryptionPEM format

2. Select Access Point Provider (APP)

Choose a NITDA-accredited Access Point Provider to facilitate your connection to FIRSMBS:

  • Verify APP is on the official NITDA accredited list
  • Review APP's features and pricing
  • Confirm APP supports your ERP/accounting system
  • Establish service agreement

3. Complete Participant Onboarding

Register your business with FIRSMBS using the onboarding API:

Onboarding Endpoint

POST /onboard/participant

Required Information

FieldDescriptionExample
business_idUnique business identifier from FIRS registration"7af401ac-4e6c-480c-92b1-9b1c42bf6089"
party_nameRegistered legal business name"ABC Company Limited"
tinTax Identification Number"12345888-5789"
emailOfficial business email"contact@example.com"
telephoneBusiness phone number"+234802540990"
business_descriptionDescription of business activity"Sales of building materials"
postal_addressComplete business address{...}
certificateFIRS certificate for invoice signingBase64 encoded
public_keyRSA public key for encryptionPEM format

Regional API

JSON
{
  "business_id": "7af401ac-4e6c-480c-92b1-9b1c42bf6089",
  "party_name": "ABC Company Limited",
  "tin": "12345888-5789",
  "email": "contact@example.com",
  "telephone": "+234802540990",
  "business_description": "Sales of building materials and cement",
  "postal_address": {
    "street_name": "32, Owonikoko Street",
    "city_name": "Gwarinpa",
    "postal_zone": "023401",
    "country": "NG"
  },
  "certificate": "<base64-certificate>",
  "public_key": "<rsa-key>"
}

Request Headers:

HTTP
Content-Type: application/json
x-flick-auth-key: {{x-flick-auth-key}}

4. Configure Your System

Set up your integration:

  • Configure API authentication with client credentials
  • Map your internal data models to UBL format
  • Integrate with APP's APIs
  • Test invoice submission in sandbox environment

5. Go Live

Once testing is complete:

  • Activate your production account
  • Begin submitting invoices to FIRSMBS
  • Monitor compliance through your APP dashboard

Sending an Invoice

Sending an invoice in Nigeria involves creating the invoice, validating it with FIRSMBS, and delivering it to the buyer.

Invoice Submission Flow

B2B/B2G Transactions (Pre-Clearance)

Text
1. Create invoice with all mandatory fields

2. Submit to FIRSMBS via POST /invoice/generate

3. FIRSMBS validates invoice

4. Receive IRN and QR code

5. Deliver invoice to buyer

B2C Transactions (Post-Reporting)

Text
1. Issue invoice to customer at point of sale

2. Report to FIRSMBS within 24 hours via POST /invoice/generate

3. FIRSMBS validates and records

4. Customer can verify using QR code

Generating an Invoice

Endpoint

POST /invoice/generate

Preparing the Invoice Data

Create your invoice following the FIRS specification. The /invoice/generate endpoint handles signing, validation, and exchange in a single API call — reducing the number of requests needed.

Regional API

JSON
{
  "document_identifier": "CNINV-1126519001",
  "issue_date": "2025-05-14",
  "invoice_type_code": "380",
  "document_currency_code": "NGN",
  "tax_currency_code": "NGN",
  "accounting_customer_party": {
    "party_name": "Customer Company Ltd",
    "tin": "31976634-0001",
    "email": "customer@example.com",
    "telephone": "+234802540990",
    "business_description": "Retail of consumer goods",
    "postal_address": {
      "street_name": "15 Marina Road",
      "city_name": "Lagos",
      "postal_zone": "100001",
      "country": "NG"
    }
  },
  "invoice_line": [
    {
      "hsn_code": "2710.19",
      "price_amount": 1000,
      "uom": "ST",
      "invoiced_quantity": 100,
      "product_category": "Food and Beverages",
      "tax_rate": 7.5,
      "tax_category_id": "LOCAL_SALES_TAX",
      "item_name": "Organic Tea Leaves",
      "sellers_item_identification": "209897"
    }
  ]
}

Request Headers:

HTTP
Content-Type: application/json
participant-id: {{participant-id}}
x-flick-auth-key: {{x-flick-auth-key}}

Key Points:

  • The invoice_type_code "380" represents a standard commercial invoice
  • Signing, validation, and exchange are all handled in this single API call
  • Customer must have valid TIN
  • At least one invoice line is mandatory
  • For B2B/B2G, submission must occur before invoice delivery to buyer

Handling Responses

Success Response

Upon successful validation, FIRSMBS returns the approved invoice with IRN:

JSON
{
  "status": "approved",
  "irn": "CNINV-112275021707261522-C1B44E6C-20250814",
  "csid": "abc123def456...",
  "qr_code": "data:image/png;base64,iVBORw0KG...",
  "document_identifier": "CNINV-1126519001",
  "validated_at": "2025-05-14T10:30:00Z"
}

Response Fields:

FieldDescription
statusApproval status: approved or rejected
irnInvoice Reference Number issued by FIRS
csidCryptographic Stamp Identifier
qr_codeQR code for invoice verification
document_identifierYour original invoice reference
validated_atTimestamp of FIRS validation

Error Response

If validation fails, FIRSMBS returns error details:

JSON
{
  "error": true,
  "error_code": "VALIDATION_FAILED",
  "message": "Missing required field: tin",
  "document_identifier": "CNINV-1126519001",
  "details": {
    "field": "accounting_customer_party.tin",
    "reason": "TIN is mandatory for all customers"
  }
}

Common Error Codes:

Error CodeDescriptionResolution
VALIDATION_FAILEDInvoice fails UBL validationCheck invoice data against datapoint requirements
INVALID_CREDENTIALSAuthentication failedVerify API credentials and participant-id
MISSING_REQUIRED_FIELDMandatory field missingAdd required field from datapoints specification
INVALID_TINCustomer TIN is invalid or not registeredVerify customer's TIN with FIRS
DUPLICATE_INVOICEInvoice identifier already existsUse unique document identifier
INVALID_TAX_CALCULATIONTax amounts don't matchRecalculate totals: 7.5% VAT for standard supplies

Retrieving Invoices

Search Invoices

Retrieve all invoices associated with your business:

GET /invoice/search

Request Headers:

HTTP
participant-id: {{participant-id}}
x-flick-auth-key: {{x-flick-auth-key}}

Response:

JSON
{
  "invoices": [
    {
      "irn": "CNINV-112275021707261522-C1B44E6C-20250814",
      "document_identifier": "CNINV-1126519001",
      "issue_date": "2025-05-14",
      "customer_name": "Customer Company Ltd",
      "total_amount": 107500,
      "payment_status": "PENDING",
      "validated_at": "2025-05-14T10:30:00Z"
    }
  ],
  "total_count": 1
}

Get Invoice Details

Retrieve detailed information for a specific invoice:

GET /invoice/details/:irn

Example: /invoice/details/CNINV-117589493872308491-C1B44E6C-20250814

Response:

JSON
{
  "irn": "CNINV-117589493872308491-C1B44E6C-20250814",
  "document_identifier": "CNINV-1126519001",
  "issue_date": "2025-05-14",
  "invoice_type_code": "380",
  "payment_status": "PENDING",
  "qr_code": "data:image/png;base64,iVBORw0KG...",
  "accounting_customer_party": {
    "party_name": "Customer Company Ltd",
    "tin": "31976634-0001"
  },
  "invoice_line": [
    {
      "item_name": "Organic Tea Leaves",
      "invoiced_quantity": 100,
      "price_amount": 1000,
      "tax_rate": 7.5
    }
  ],
  "validated_at": "2025-05-14T10:30:00Z"
}

Download Invoice

Download the complete invoice document (XML/JSON/PDF):

GET /invoice/download/:irn

Example: /invoice/download/CNINV-112275021707261522-C1B44E6C-20250814

Request Headers:

HTTP
participant-id: {{participant-id}}
x-flick-auth-key: {{x-flick-auth-key}}
Accept: application/xml  # or application/json or application/pdf

Response: Invoice document in requested format


Updating Invoice Status

After payment is received or if an invoice is rejected, update the payment status:

Update Payment Status

PATCH /invoice/:irn

Regional API

JSON
{
  "payment_status": "PAID",
  "reference": "PAYMENT-REF-12345"
}

Available Status Values:

  • PENDING - Payment not yet received
  • PAID - Payment received and confirmed
  • REJECTED - Invoice rejected by buyer

Request Headers:

HTTP
Content-Type: application/json
participant-id: {{participant-id}}
x-flick-auth-key: {{x-flick-auth-key}}

Reporting Invoices

For audit and compliance purposes, generate reports on your invoices:

POST /invoice/report/:irn

Example: /invoice/report/CNINV-117589493872308491-C1B44E6C-20250814

Generates a compliance report for the specified invoice including:

  • Invoice validation details
  • Tax calculation breakdown
  • Submission timestamps
  • Current payment status

Resource APIs

FIRSMBS provides resource APIs to help with invoice creation:

Get All Resources

Retrieve master data for invoice categorization:

GET /resources/all

Returns all available resource codes including:

  • Countries
  • Currencies
  • Tax categories
  • Payment means
  • Invoice types
  • Service codes
  • VAT exemptions
  • HS codes

Specific Resource Endpoints

EndpointDescription
GET /resources/countriesList of supported countries
GET /resources/currenciesList of supported currencies (ISO 4217)
GET /resources/tax-categoriesTax category codes and descriptions
GET /resources/payment-meansPayment method codes
GET /resources/invoice-typesInvoice type codes (380, 381, etc.)
GET /resources/services-codesService classification codes
GET /resources/vat-exemptionsVAT exemption reason codes
GET /resources/hs-codesHarmonized System codes for products

Request Headers:

HTTP
Content-Type: application/json
participant-id: {{participant-id}}
x-flick-auth-key: {{x-flick-auth-key}}

Complete Lifecycle Example

Sending Flow

Text
1. Onboard to FIRSMBS
   POST /onboard/participant

2. Retrieve resource codes (optional)
   GET /resources/all

3. Create invoice with all mandatory fields

4. Submit invoice for validation
   POST /invoice/generate

5. Receive IRN, CSID, and QR code

6. Deliver invoice to buyer (B2B/B2G)
   or Display to customer (B2C)

7. Monitor payment status
   GET /invoice/details/:irn

8. Update payment status when paid
   PATCH /invoice/:irn

Receiving Flow

Text
1. Buyer receives invoice with IRN

2. Verify invoice authenticity
   - Scan QR code, or
   - Check IRN via GET /invoice/details/:irn

3. Process invoice in accounting system

4. Make payment to supplier

5. Supplier updates payment status
   PATCH /invoice/:irn

Integration Checklist

Before Going Live

  • Complete FIRSMBS participant onboarding
  • Obtain and secure certificate and public key from FIRS
  • Establish connection with NITDA-accredited APP
  • Implement invoice data preparation following UBL format
  • Set up error handling for all API responses
  • Test invoice generation in sandbox environment
  • Verify IRN, CSID, and QR code generation
  • Test invoice retrieval and download functions
  • Implement payment status update mechanism
  • Train users on the new system
  • Have rollback plan ready

Compliance Requirements

  • All invoices must follow Peppol BIS Billing 3.0 UBL format
  • Supplier and customer must have valid FIRS TIN
  • B2B/B2G invoices must be pre-cleared before delivery
  • B2C invoices (>₦50,000) must be reported within 24 hours
  • Display IRN, CSID, and QR code on all invoices
  • Tax calculations must be accurate (7.5% standard VAT rate)
  • Retain all invoices and validation records for audit
  • Implement proper data security measures
  • Use secure API authentication
  • Monitor for FIRSMBS system updates

Additional Resources

For detailed information on:

Nigeria E-Invoicing Examples

Complete collection of FIRS-compliant invoice examples covering standard invoices, credit notes, and various transaction scenarios.


Standard Invoices

Standard Commercial Invoice

A typical B2B commercial invoice with standard 7.5% VAT rate.

Key Features:

  • Invoice Type Code: 380 (Commercial invoice)
  • Standard VAT rate: 7.5%
  • Full customer information with TIN
  • Mandatory fields only

Regional API

JSON
{
  "document_identifier": "CNINV-1126519001",
  "issue_date": "2025-05-14",
  "due_date": "2025-06-14",
  "invoice_type_code": "380",
  "payment_status": "PENDING",
  "document_currency_code": "NGN",
  "tax_currency_code": "NGN",
  "accounting_customer_party": {
    "party_name": "ABC Company Limited",
    "tin": "31976634-0001",
    "email": "customer@example.com",
    "telephone": "+234802540990",
    "business_description": "Sales of Cement and building materials",
    "postal_address": {
      "street_name": "32, Owonikoko Street",
      "city_name": "Gwarinpa",
      "postal_zone": "023401",
      "country": "NG"
    }
  },
  "invoice_line": [
    {
      "hsn_code": "CC-00001",
      "invoiced_quantity": 100,
      "price_amount": 1000,
      "uom": "1",
      "product_category": "Food and Beverages",
      "tax_rate": 7.5,
      "tax_category_id": "STANDARD_VAT",
      "item_name": "Organic Tea Leaves",
      "sellers_item_identification": "TEA-ORG-001"
    }
  ]
}

Invoice with Discounts and Fees

Standard invoice including line-level discounts and additional fees.

Key Features:

  • Discount amount and rate applied
  • Additional fees included
  • Net amount calculation

Regional API

JSON
{
  "document_identifier": "CNINV-2025-00542",
  "issue_date": "2025-06-20",
  "due_date": "2025-07-20",
  "invoice_type_code": "380",
  "payment_status": "PENDING",
  "document_currency_code": "NGN",
  "tax_currency_code": "NGN",
  "accounting_customer_party": {
    "party_name": "XYZ Retailers Limited",
    "tin": "45678901-0001",
    "email": "accounts@xyzretailers.ng",
    "telephone": "+234803456789",
    "business_description": "Retail and distribution",
    "postal_address": {
      "street_name": "Plot 45, Adeola Odeku Street",
      "city_name": "Lagos",
      "postal_zone": "100001",
      "country": "NG"
    }
  },
  "invoice_line": [
    {
      "hsn_code": "HS-84716020",
      "invoiced_quantity": 50,
      "price_amount": 25000,
      "discount_amount": 125000,
      "discount_rate": 10,
      "fee_amount": 50000,
      "fee_rate": 4,
      "uom": "1",
      "product_category": "Electronics",
      "tax_rate": 7.5,
      "tax_category_id": "STANDARD_VAT",
      "item_name": "Laptop Computer - Model X500",
      "sellers_item_identification": "LAP-X500-BLK"
    },
    {
      "hsn_code": "HS-85176200",
      "invoiced_quantity": 100,
      "price_amount": 5000,
      "discount_amount": 25000,
      "discount_rate": 5,
      "uom": "1",
      "product_category": "Electronics",
      "tax_rate": 7.5,
      "tax_category_id": "STANDARD_VAT",
      "item_name": "Wireless Mouse",
      "sellers_item_identification": "MSE-WL-002"
    }
  ]
}

Calculation Breakdown:

Line 1 (Laptops):

  • Gross Amount: 50 × ₦25,000 = ₦1,250,000
  • Discount (10%): -₦125,000
  • Fee (4%): +₦50,000
  • Net Amount: ₦1,175,000
  • VAT (7.5%): ₦88,125
  • Total: ₦1,263,125

Line 2 (Mice):

  • Gross Amount: 100 × ₦5,000 = ₦500,000
  • Discount (5%): -₦25,000
  • Net Amount: ₦475,000
  • VAT (7.5%): ₦35,625
  • Total: ₦510,625

Invoice Total: ₦1,773,750


Credit Notes

Standard Credit Note

Credit note for returns or adjustments.

Key Features:

  • Invoice Type Code: 381 (Credit note)
  • References original invoice
  • Negative or reduced amounts

Regional API

JSON
{
  "document_identifier": "CN-2025-00123",
  "issue_date": "2025-06-25",
  "invoice_type_code": "381",
  "payment_status": "PENDING",
  "document_currency_code": "NGN",
  "tax_currency_code": "NGN",
  "original_invoice_reference": "CNINV-1126519001",
  "accounting_customer_party": {
    "party_name": "ABC Company Limited",
    "tin": "31976634-0001",
    "email": "customer@example.com",
    "telephone": "+234802540990",
    "business_description": "Sales of Cement and building materials",
    "postal_address": {
      "street_name": "32, Owonikoko Street",
      "city_name": "Gwarinpa",
      "postal_zone": "023401",
      "country": "NG"
    }
  },
  "invoice_line": [
    {
      "hsn_code": "CC-00001",
      "invoiced_quantity": 10,
      "price_amount": 1000,
      "uom": "1",
      "product_category": "Food and Beverages",
      "tax_rate": 7.5,
      "tax_category_id": "STANDARD_VAT",
      "item_name": "Organic Tea Leaves - Returned",
      "sellers_item_identification": "TEA-ORG-001"
    }
  ]
}

Simplified Invoices (B2C)

Simplified B2C Invoice

Invoice for high-value consumer transactions (above ₦50,000).

Key Features:

  • Invoice Type Code: 394 (Simplified invoice)
  • For B2C transactions
  • Reported within 24 hours
  • Simplified customer details

Regional API

JSON
{
  "document_identifier": "B2C-2025-089456",
  "issue_date": "2025-07-15",
  "invoice_type_code": "394",
  "payment_status": "PAID",
  "document_currency_code": "NGN",
  "tax_currency_code": "NGN",
  "accounting_customer_party": {
    "party_name": "Walk-in Customer",
    "tin": "00000000-0000",
    "email": "customer@retail.ng",
    "telephone": "+234803123456",
    "business_description": "Consumer",
    "postal_address": {
      "street_name": "N/A",
      "city_name": "Abuja",
      "postal_zone": "900001",
      "country": "NG"
    }
  },
  "invoice_line": [
    {
      "hsn_code": "HS-61091000",
      "invoiced_quantity": 2,
      "price_amount": 35000,
      "uom": "1",
      "product_category": "Clothing and Textiles",
      "tax_rate": 7.5,
      "tax_category_id": "STANDARD_VAT",
      "item_name": "Designer T-Shirt",
      "sellers_item_identification": "TSH-DSN-BLU"
    }
  ]
}

Total Calculation:

  • Subtotal: 2 × ₦35,000 = ₦70,000
  • VAT (7.5%): ₦5,250
  • Total: ₦75,250

Multi-Line Invoice

Invoice with Multiple Products

Complex invoice with various products, different tax rates, and categories.

Regional API

JSON
{
  "document_identifier": "CNINV-2025-01234",
  "issue_date": "2025-08-01",
  "due_date": "2025-08-31",
  "invoice_type_code": "380",
  "payment_status": "PENDING",
  "document_currency_code": "NGN",
  "tax_currency_code": "NGN",
  "accounting_customer_party": {
    "party_name": "General Hospital Abuja",
    "tin": "78901234-0001",
    "email": "procurement@ghospital.ng",
    "telephone": "+234809876543",
    "business_description": "Healthcare services",
    "postal_address": {
      "street_name": "Maitama District",
      "city_name": "Abuja",
      "postal_zone": "900001",
      "country": "NG"
    }
  },
  "invoice_line": [
    {
      "hsn_code": "HS-30049099",
      "invoiced_quantity": 500,
      "price_amount": 1200,
      "uom": "1",
      "product_category": "Pharmaceuticals",
      "tax_rate": 0,
      "tax_category_id": "EXEMPT",
      "item_name": "Antibiotic Tablets - Pack of 10",
      "sellers_item_identification": "MED-ANT-010"
    },
    {
      "hsn_code": "HS-90181990",
      "invoiced_quantity": 20,
      "price_amount": 85000,
      "uom": "1",
      "product_category": "Medical Equipment",
      "tax_rate": 7.5,
      "tax_category_id": "STANDARD_VAT",
      "item_name": "Blood Pressure Monitor",
      "sellers_item_identification": "MED-BPM-200"
    },
    {
      "hsn_code": "HS-30051010",
      "invoiced_quantity": 1000,
      "price_amount": 150,
      "uom": "1",
      "product_category": "Pharmaceuticals",
      "tax_rate": 0,
      "tax_category_id": "EXEMPT",
      "item_name": "Surgical Bandages",
      "sellers_item_identification": "MED-BND-050"
    },
    {
      "hsn_code": "HS-94029000",
      "invoiced_quantity": 10,
      "price_amount": 125000,
      "uom": "1",
      "product_category": "Furniture",
      "tax_rate": 7.5,
      "tax_category_id": "STANDARD_VAT",
      "item_name": "Hospital Bed",
      "sellers_item_identification": "FRN-BED-HOS"
    }
  ]
}

Invoice Breakdown:

LineItemQuantityUnit PriceSubtotalTax RateTaxTotal
1Antibiotic Tablets500₦1,200₦600,0000% (Exempt)₦0₦600,000
2Blood Pressure Monitor20₦85,000₦1,700,0007.5%₦127,500₦1,827,500
3Surgical Bandages1000₦150₦150,0000% (Exempt)₦0₦150,000
4Hospital Bed10₦125,000₦1,250,0007.5%₦93,750₦1,343,750
₦3,700,000₦221,250₦3,921,250

API Response Examples

Successful Invoice Generation

After submitting an invoice to FIRSMBS:

JSON
{
  "status": "approved",
  "irn": "CNINV-112275021707261522-C1B44E6C-20250814",
  "csid": "7f8d9e1a2b3c4d5e6f7g8h9i0j1k2l3m4n5o6p7q8r9s",
  "qr_code": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA...",
  "document_identifier": "CNINV-1126519001",
  "validated_at": "2025-05-14T10:30:00Z",
  "message": "Invoice successfully validated and approved"
}

Error Response Example

Validation failure due to missing required field:

JSON
{
  "error": true,
  "error_code": "VALIDATION_FAILED",
  "message": "Missing required field: tin",
  "document_identifier": "CNINV-1126519001",
  "details": {
    "field": "accounting_customer_party.tin",
    "reason": "TIN is mandatory for all customers",
    "expected_format": "########-####"
  },
  "timestamp": "2025-05-14T10:30:00Z"
}

Invoice Search Response

Result from GET /invoice/search:

JSON
{
  "invoices": [
    {
      "irn": "CNINV-112275021707261522-C1B44E6C-20250814",
      "document_identifier": "CNINV-1126519001",
      "issue_date": "2025-05-14",
      "invoice_type_code": "380",
      "customer_name": "ABC Company Limited",
      "customer_tin": "31976634-0001",
      "total_amount": 107500,
      "tax_amount": 7500,
      "payment_status": "PENDING",
      "validated_at": "2025-05-14T10:30:00Z"
    },
    {
      "irn": "CNINV-117589493872308491-C1B44E6C-20250814",
      "document_identifier": "CNINV-2025-00542",
      "issue_date": "2025-06-20",
      "invoice_type_code": "380",
      "customer_name": "XYZ Retailers Limited",
      "customer_tin": "45678901-0001",
      "total_amount": 1773750,
      "tax_amount": 123750,
      "payment_status": "PAID",
      "validated_at": "2025-06-20T14:15:30Z"
    }
  ],
  "total_count": 2,
  "page": 1,
  "per_page": 20
}

Invoice Type Codes Reference

CodeDocument TypeDescriptionUse Case
380Commercial invoiceStandard business invoiceRegular B2B/B2G sales
381Credit noteCorrection or refund documentReturns, adjustments, corrections
383Debit noteAdditional charges documentPrice increases, additional fees
394Simplified invoiceSimplified B2C formatRetail, consumer sales above ₦50,000

Tax Category Codes Reference

CodeCategoryRateDescription
STANDARD_VATValue Added Tax7.5%Standard taxable supplies
ZERO_VATZero rated0%Exports, certain essential goods
EXEMPTTax exempt0%Healthcare, education, basic necessities
LOCAL_SALES_TAXLocal sales taxVariesState-level sales taxes

Common Product Categories

CategoryDescriptionTypical Items
Food and BeveragesFood products and drinksTea, coffee, packaged food
ElectronicsElectronic devices and componentsComputers, phones, accessories
PharmaceuticalsMedical drugs and suppliesMedicines, bandages
Building MaterialsConstruction materialsCement, steel, timber
Clothing and TextilesApparel and fabricsShirts, pants, fabric rolls
Agricultural ProductsFarm produceGrains, vegetables, livestock
Medical EquipmentHealthcare devicesMonitors, diagnostic tools
FurnitureFurniture itemsBeds, chairs, tables
ServicesProfessional servicesConsulting, repair, maintenance

Best Practices for Examples

Using Examples Effectively

  1. Start Simple: Begin with standard invoice template and add complexity as needed
  2. Verify TIN Format: Ensure customer TIN follows FIRS format (########-####)
  3. Validate Tax Calculations: Standard VAT rate is 7.5%
  4. Test in Sandbox: Always test with example data before production
  5. Save Successful Examples: Keep records for reference and troubleshooting

Common Patterns

Simple B2B Sale (Standard VAT):

Text
Type Code: 380
Tax Category: STANDARD_VAT (7.5%)
Required: Customer TIN, line items, amounts

B2C Retail Transaction:

Text
Type Code: 394
Threshold: > ₦50,000
Reporting: Within 24 hours
Simplified customer details allowed

Credit Adjustment:

Text
Type Code: 381
Must Reference: Original invoice identifier
Reduced or negative quantities

Exempt Supplies:

Text
Type Code: 380
Tax Category: EXEMPT (0%)
Examples: Pharmaceuticals, educational materials

Additional Resources