Skip to main content

Validate & Sign Invoice

base_url: https://firseinvoice.etranzactng.com/

Description: This endpoint validates the content of the invoice to ensure compliance with FIRS requirements and then sent to FIRS for signing. All data points follow the Universal Business Language (UBL) standard.

Request Parameters

ParameterTypeDescriptionRequired
business_idstringUnique alphanumeric ID generated when the business is registered on the e-invoicing platform. It allows the system recognize all invoices generated by the companyYes
irnstringA unique tracking number assigned to each invoice.Yes
issue_datestringThe date assigned by the sender on which the invoice was issued (YYYY-MM-DD).Yes
due_datestringThe date on which the Invoice is due for payment (YYYY-MM-DD).No
issue_timestringThe time assigned by the sender at which this document was issued (HH:MM:SS 24h format).No
invoice_type_codestringA numeric code representing the type of invoice issued. (See Resources: 1.5.1 for invoice types)Yes
payment_statusstringInvoice payment status. Where 0 = REJECTED 1 = PENDING 2 = PAIDYes
notestringFree-form encrypted text with extra invoice information.No
tax_point_datestringThe actual date when the tax becomes applicable (YYYY-MM-DD).No
document_currency_codestringThe default currency in which the invoice is issued.Yes
tax_currency_codestringThe currency in which tax amounts are calculated.Yes
accounting_costfloatRepresents the accounting category or cost center assigned to the transaction.No
buyer_referencestringA reference number or code provided by the buyer to track the invoice.No
invoice_delivery_periodobjectDefines start and end dates for delivery of goods/services.No
start_datestringStart date for delivery of goods/services.Yes
end_datestringEnd dates for delivery of goods/services.Yes
order_referencestringThe order number tied to an invoice. Reference to related sales order.No
billing_referencearrayLinks invoice to previous billing invoice/document (requires IRN and issue_date).No
dispatch_document_referenceobjectRefers to a despatch advice document used for tracking shipment (requires IRN and issue_date).No
receipt_document_referenceobjectReference to a receipt advice associated with the invoice (requires IRN and issue_date).No
originator_document_referenceobjectIdentifies the original document that initiated the invoice (requires IRN and issue_date).No
contract_document_referencearrayReferences to related contract documents. (requires IRN and issue_date).No
additional_document_referenceobjectGeneral reference field for additional related documents. (requires IRN and issue_date).No
accounting_supplier_partyobjectSeller/supplier details issuing the invoice.Yes
accounting_supplier_party.party_namestringLegal name of supplier/customer.Yes
accounting_supplier_party.tinstringTax Identification Number (TIN) is a unique number issued by FIRS (or JTB/SBIR) for filing tax returns and other tax-related transactionsYes
accounting_supplier_party.emailstringEmail AddressYes
accounting_supplier_party.telephonestringContact phone number (with country code prefix).No
accounting_supplier_party.business_descriptionstringDescription of the entity’s business.No
accounting_supplier_party.postal_addressobjectPostal address of supplier/customer.Yes
accounting_supplier_party.postal_address.street_namestringStreet address.Yes
accounting_supplier_party.postal_address.city_namestringCity nameYes
accounting_supplier_party.postal_address.postal_zonestringPostal/ZIP code.Yes
accounting_supplier_party.postal_address.lgastringLocal Government CodeYes
accounting_supplier_party.postal_address.statestringState CodeYes
accounting_supplier_party.postal_address.statestringCountry CodeYes
accounting_customer_partyobjectBuyer or recipient details (party name TIN contact address).No
payee_partyobjectPayment receiver entity details (if different).No
bill_partyobjectBilling entity details (if different). If the payment goes to someone else, this field captures that entity's details.No
ship_partyobjectShipping entity details.No
tax_representative_partyobjectTax agent details handling invoicing/compliance. If a business has a tax agent handling invoicing and compliance, their details are entered here.No
actual_delivery_datestringThe date the goods or services were delivered (Format: YYYY-MM-DD).No
payment_meansarrayDefines how the invoice will be paid and when payment is due. (payment means code + due date).No
payment_terms_notestringPayment terms and conditions description.No
allowance_chargearrayDefines any discounts (allowance) or extra charges.No
tax_totalarrayTotal tax charged on the invoice (with subtotals by category).Yes
tax_amountfloatThe total tax charged on the invoice (the actual tax applied on the taxable amount). If a business sells multiple items, this is the total tax applied across all items.Yes
tax_subtotalarrayThis section breaks down the tax into different tax categories. If an invoice contains VAT-exempt and VAT-applicable goods, only taxable items will appear here.No
taxable_amountintegerThe total value of goods/services on which tax is calculated.Yes
tax_categoryarraySpecifies what type of tax is applied to this subtotal. (See resources)Yes
legal_monetary_totalobjectThe total payable amount (inclusive/exclusive of tax).Yes
invoice_linearrayDetails about each item or service being invoiced.Yes
itemarrayA collection of product/service details included in the invoice line.Yes
descriptionarrayList of product details (each object contains product metadata).Yes
Note

The JSON/object structure is the same for all the six (accounting_customer_party, payee_party, bill_party, ship_party and tax_representative_party inclusive) however only the supplier party (accounting_supplier_party) detail is marked as mandatory/compulsory by FIRS.

The rest are optional – however if you provide either of them then the parameters/values included in the object also have some parameters as optional and others mandatory (see sample request).

invoice_line(array)

ParameterTypeDescriptionRequired?
hsn_codeintegerHarmonized System of Nomenclature (HSN) code for item classification.Yes
product_categorystringCategory of product/serviceYes
discount_ratefloatDiscount percentage applied to item.No
discount_amountfloatAbsolute monetary value of the discount (in currency) amountNo
fee_ratefloatFee/charge percentage applied to itemNo
fee_amountfloatAbsolute fee/charge amount.No
invoiced_quantityintegerQuantity of items invoicedYes
line_extension_amountintegerThe total amount of all invoice items before tax and any discounts/charges.Yes
itemarrayTA collection of product/service details included in the invoice line. Details of the invoiced item.Yes
priceobjectPrice details for this line.Yes
price.price_amountfloatThe cost per item or service unit. The price value applied to the base_quantity value.Yes
price.base_quantityintegerThe quantity to which the price_amount value applies (e.g. for bulk/package pricing)Yes
price.price_unitstringA representation of the pricing unit with currency (mainly for human readability)Yes

item(array)

ParameterTypeDescriptionRequired?
namestringName of the itemYes
descriptionstringDescription of the itemNo
sellers_item_identificationstringSeller’s unique internal reference/SKU for identifying product/service (optional but useful for mapping with inventory/ERP)No

payment_means(array)

ParameterTypeDescriptionRequired?
payment_means_codestringCode representing the payment method used. (See Resources: payment means)Yes
payment_due_datedateDue date for the paymentYes

allowance_charge(array)

ParameterTypeDescriptionRequired?
amountfloatValue of the allowance or chargeYes
charge_indicatorbooleanTrue implies charge added. False implies allowance (discount) subtracted.Yes

tax_total(array)

ParameterTypeDescriptionRequired?
tax_amountfloatThe total tax charged on the invoice (the actual tax applied on the taxable amount). If a business sells multiple items, this is the total tax applied across all items.Yes
tax_subtotalfloatThis section breaks down the tax into different tax categories. If an invoice contains VAT-exempt and VAT- applicable goods, only taxable items will appear here.Yes

tax_subtotal(array)

ParameterTypeDescriptionRequired?
taxable_amountfloatThe total value of goods/services on which tax is calculated.Yes
tax_amountbooleanThe total tax charged on the invoice (the actual tax calculated/applied on the taxable_amount). If a business sells multiple items, this is the total tax applied across all items.Yes
tax_categoryarraySpecifies what type of tax is applied to this subtotal. (See resources: tax categories)Yes

tax_category(array)

ParameterTypeDescriptionRequired?
idstringTax category identifierYes
percentfloatTax rate Yes (Example: 2.3 for 2.3%).Yes
ParameterTypeDescriptionRequired?
line_extension_amountfloatTotal amount of all invoice items/line extensions before tax and any discounts/charges.Yes
tax_exclusive_amountfloatInvoice total before tax.Yes
tax_inclusive_amountfloatInvoice total after tax.Yes
payable_amountfloatThe final amount the buyer must pay after applying discounts, charges, and tax.(usually equal to tax inclusive).Yes

Request Parameters

POST {base_url}/api/v1/app/invoice/validate
curl -X POST
-H "X-API-Key: {{CLIENT_API_KEY}}"
-H "X-API-Signature: {{HMAC_SHA256_SIGNATURE}}"
-H "X-API-Timestamp: {{ISO_20022_TIMESTAMP}}"
-H "Content-Type: application/json"
-d '{
"business_id": "6f19a0f0-c8f3-4d2b-8a8b-1b2c45e89d0f",
"irn": "INV285-47AT78FN-20250417",
"issue_date": "2025-08-01",
"due_date": "2025-08-08",
"issue_time": "14:10:04",
"invoice_type_code": "396",
"payment_status": "PENDING",
"note": "sample note (will be encrypted)", // Optional
"tax_point_date": "2025-08-01",
"document_currency_code": "NGN",
"tax_currency_code": "NGN",
"accounting_cost": "2000 NGN",
"buyer_reference": "BUYREF-12345",
"order_reference": "ITW001-E9E0C0D3-20240619",
"invoice_delivery_period": {
"start_date": "2025-08-01",
"end_date": "2025-08-07"
},
"billing_reference": [ // Optional
{
"irn": "ITW001-E9E0C0D3-20240619",
"issue_date": "2024-05-14"
}
],
"dispatch_document_reference": { // Optional
"irn": "IXTDISP-B457EFE1-20250731",
"issue_date": "2025-07-31"
},
"receipt_document_reference": { // Optional
"irn": "IVRCPT-B457EFE1-20250731",
"issue_date": "2025-07-31"
},
"originator_document_reference": { // Optional
"irn": "CRORIG-B457EFE1-20250730",
"issue_date": "2025-07-30"
},
"contract_document_reference": { // Optional
"irn": "MJCONT-B457EFE1-20250729",
"issue_date": "2025-07-29"
},
"additional_document_reference": [ // Optional
{
"irn": "TXDOC-B457EFE1-20250731",
"issue_date": "2025-07-28"
}
],
"accounting_supplier_party": {
"party_name": "Felidan Gross Nig. Ltd",
"tin": "TIN-0099990001",
"email": "supplier@felidangroup.com",
"telephone": "+23480254099000",
"business_description": "Telecom services and data solutions",
"postal_address": {
"street_name": "173 Courtney Street, Victoria Island",
"city_name": "Lagos",
"postal_zone": "100001",
"country": "NG"
}
},
"accounting_customer_party": { // Optional
"party_name": "Dangote Group",
"tin": "TIN-000001",
"email": "business@dangote.com",
"telephone": "+23480254000000",
"business_description": "Cement and building materials",
"postal_address": {
"street_name": "1, Dangote Avenue",
"city_name": "Abuja",
"postal_zone": "900001",
"country": "NG"
}
},
"payee_party":{ // Optional
"party_name": "Mega Logistics",
"tin": "45678901-0003",
"email": "dispatch@megalogistics.net",
"telephone": "+81312345678",
"business_description": "Shipping and Logistics",
"postal_address": {
"street_name": "2-3-4 Akasaka",
"city_name": "Minato-ku",
"postal_zone": "107-0052",
"country": "JP"
}
},
"bill_party":{ // Optional
"party_name": "ABC Holdings Ltd",
"tin": "89487982-0001",
"email": "paytest@email.com",
"telephone": "+23480254000000",
"business_description": "Holding Company",
"postal_address": {
"street_name": "45 Marina Road",
"city_name": "Ikeja",
"postal_zone": "101233",
"country": "NG"
}
},
"ship_party":{ // Optional
"party_name": "XYZ Corporation",
"tin": "12345678-0001",
"email": "info@xyzcorp.com",
"telephone": "+12125551234",
"business_description": "Software and IT Services",
"postal_address": {
"street_name": "100 Main Street",
"city_name": "New York",
"postal_zone": "10001",
"country": "US"
}
},
"tax_representative_party":{
"party_name": "Global Solutions Inc.",
"tin": "98765432-0002",
"email": "contact@globalsolutions.com",
"telephone": "+442079460123",
"business_description": "Consulting Firm",
"postal_address": {
"street_name": "500 Regents Lane",
"city_name": "London",
"postal_zone": "SW1A 0AA",
"country": "GB"
}
},
"actual_delivery_date": "2025-08-05",
"payment_means": [ // Optional
{
"payment_means_code": "43",
"payment_due_date": "2025-08-10"
}
],
"payment_terms_note": "Payment within 7 days of issue", // Optional
"allowance_charge": [ // Optional
{
"charge_indicator": true,
"amount": 800.6
},
{
"charge_indicator": false,
"amount": 10
}
],
"tax_total": [
{
"tax_amount": 20.71,
"tax_subtotal": [
{
"taxable_amount": 900.6,
"tax_amount": 20.71,
"tax_category": {
"id": "LOCAL_SALES_TAX",
"percent": 2.3
},
"tax_category_percent": 2.3
}
]
}
],
"legal_monetary_total": {
"line_extension_amount": 110,
"tax_exclusive_amount": 900.60,
"tax_inclusive_amount": 921.31,
"payable_amount": 921.31
},
"invoice_line": [
{
"item": {
"name": "300mm Cables",
"description": "300mm cables for servicing [stdx10]",
"sellers_item_identification": "XTZ-2471"
},
"price": {
"price_amount": 6000,
"base_quantity": 1,
"price_unit": "NGN per 1"
},
"hsn_code": "CC-058",
"product_category": "Telecom Equipment",
"discount_rate": 2.01,
"discount_amount": 3500,
"fee_rate": 1.01,
"fee_amount": 50,
"invoiced_quantity": 15,
"line_extension_amount": 50
},
{
"item": {
"name": "Iron Rod 12mm",
"description": "Steel rods for telecom tower construction",
"sellers_item_identification": "DTN-171"
},
"price": {
"price_amount": 4000,
"base_quantity": 1,
"price_unit": "NGN per 1"
},
"hsn_code": "CC-018",
"product_category": "Telecom Accessories",
"discount_rate": 1.5,
"discount_amount": 2000,
"fee_rate": 1.01,
"fee_amount": 50,
"invoiced_quantity": 15,
"line_extension_amount": 60
}
]
}
'