Create Invoice

Create a new invoice for a specified business with detailed information including amounts, customer details, and line items.

Quick Reference

Method Endpoint Content-Type
POST https://api-dev.nairainvoice.com/dev/external/businesses/:businessId/invoices application/json

Request Structure

Path Parameters

Parameter Type Required Description
businessId string âś… The unique identifier of the business

Request Body

The request body must be a JSON object containing the following sections:

đź“‹ Core Invoice Details

Field Type Required Description Validation
requesttype string Type of request Default: “B2C” (Business to Customer), “B2B” (Business to Business)
invoice_number string Unique invoice identifier
business_id string Business ID for the invoice
entity_id string Entity ID for the invoice
issue_date string Invoice issue date Format: YYYY-MM-DD
irn string Invoice Reference Number
due_date string Payment due date
issue_time string Invoice issue time
invoice_type_code string âś… Invoice type code
payment_status string âś… Payment status
note string Additional notes
tax_point_date string Tax point date
document_currency_code string âś… Invoice currency code
tax_currency_code string Tax currency code

Additional Optional Fields

Field Type Description
accounting_cost string Accounting cost reference
buyer_reference string Buyer reference number
order_reference string Order reference number
actual_delivery_date string Actual delivery date
payment_terms_note string Payment terms details

👤 Customer Information

All customer fields are optional

Contact Details

Field Type Description
customer_party_id string Customer party ID
customer_party_tin string Customer Tax ID
customer_party_email string Customer email
customer_party_telephone string Customer phone
customer_party_name string Customer name
customer_party_business_description string Customer business description

Address Information

Field Type Description
customer_city_name string Customer city
customer_postal_zone string Customer postal code
customer_country string Customer country
customer_street_name string Customer street
customer_lga string Local Government Area
customer_state string Customer state

🏢 Supplier Information

Required fields for supplier details

Contact Details

Field Type Required Description Validation
supplier_party_id string Supplier party ID
supplier_party_tin string âś… Supplier Tax ID Min 6 characters
supplier_party_email string âś… Supplier email Valid email format
supplier_party_telephone string Supplier phone
supplier_party_name string âś… Supplier name
supplier_party_business_description string âś… Business description Min 6 characters

Address Information

Field Type Required Description
supplier_lga string âś… Local Government Area
supplier_state string âś… Supplier state
supplier_city_name string âś… Supplier city
supplier_postal_zone string âś… Supplier postal code
supplier_country string âś… Supplier country
supplier_street_name string âś… Supplier street

đź’° Financial Information

Monetary Totals

All amounts are required and must be ≥ 0

Field Type Required Description
line_extension_amount number âś… Line extension amount
tax_exclusive_amount number âś… Amount excluding tax
tax_inclusive_amount number âś… Amount including tax
payable_amount number âś… Total payable amount

Allowances & Charges

Field Type Description
allowance_charge array Array of allowances/charges
allowance_charge[].invoiceAllowanceChargeIndicator boolean false = allowance, true = charge
allowance_charge[].invoiceAllowanceChargeAmount number Amount of allowance/charge

đź“‹ Invoice Line Items

Required: At least one line item must be provided

Field Type Required Description Validation
invoice_line array âś… Array of line items Cannot be empty

Line Item Structure

Field Type Required Description Validation
hsn_code string âś… HSN code for item
product_category string âś… Product category
invoiced_quantity number âś… Quantity invoiced Must be > 0
line_extension_amount number ✅ Line item amount Must be ≥ 0
item_name string âś… Item name
item_description string âś… Item description
price_amount number ✅ Price per unit Must be ≥ 0
price_base_quantity number âś… Base quantity for pricing Must be > 0
price_unit string âś… Price unit

đź§ľ Tax Information

Required: Tax totals must be provided

Tax Totals

Field Type Required Description
tax_total array âś… Array of tax totals
tax_total[].tax_amount number âś… Total tax amount
tax_total[].tax_subtotal array âś… Array of tax subtotals

Tax Subtotal Structure

Field Type Required Description Validation
taxable_amount number ✅ Taxable amount Must be ≥ 0
tax_amount number ✅ Tax amount Must be ≥ 0
category_id string âś… Tax category ID
category_percent number ✅ Tax percentage Must be ≥ 0

đź“„ Document References

All document reference fields are optional

Field Type Description
contract_document_irn string Contract document IRN
contract_document_issue_date string Contract issue date
originator_document_irn string Originator document IRN
originator_document_issue_date string Originator issue date
receipt_document_irn string Receipt document IRN
receipt_document_issue_date string Receipt issue date
dispatch_document_irn string Dispatch document IRN
dispatch_document_issue_date string Dispatch issue date
delivery_period_start_date string Delivery start date
delivery_period_end_date string Delivery end date

Additional References

Field Type Description
additional_document_reference array Additional document references
billing_reference array Billing references
payment_means array Payment means information

📤 Response Format

Success Response (200)

Copy to Clipboard

📝 Example Request

Copy to Clipboard

âś… Validation Rules

Required Field Validation

  • All fields marked with âś… must be provided
  • Arrays marked as required cannot be empty
  • supplier_party_tin: minimum 6 characters
  • supplier_party_email: valid email format required
  • supplier_party_business_description: minimum 6 characters

Data Format Validation

  • Dates: Must use YYYY-MM-DD format

  • Numbers: Must meet minimum value requirements (≥ 0 or > 0 as specified)
  • Strings: Accept text values
  • Booleans: Accept true/false values
  • Arrays: Must contain objects with specified structure

Business Logic Validation

  • At least one invoice line item must be provided

  • At least one tax total must be provided
  • Monetary amounts must be consistent across totals
  • Tax calculations must align with line item amounts

đź”— Related Endpoints

Required Field Validation

This endpoint is part of the invoice management system. Consider these related operations:

  • GET /invoices/ – Retrieve invoice details
  • PUT /invoices/ – Update invoice
  • DELETE /invoices/ – Cancel invoice
  • GET /invoices – List invoices

This endpoint is essential for managing invoices within the system, ensuring all necessary details are captured for processing and tracking.

Request

Header Params

Header Type Required Description Example
X-Business-Key string âś… (Required) X-Business-Key BK-26EDE24BAC50475FAACC5EA6339F0863-DEV-B2Z6QCEHI3X9
Content-Type string âś… Specifies content format application/json
Accept string âś… Accepted response type */*

Body Params

Field Type Required
requestType string Optional
invoiceNumber string âś… Required
invoiceBusinessId string âś… Required
invoiceEntityId string âś… Required
invoiceIssueDate string âś… Required
invoiceDueDate string âś… Required
invoiceIssueTime string âś… Required
invoiceTypeCode string âś… Required
invoicePaymentStatus string âś… Required
invoiceNote string âś… Required
invoiceTaxPointDate string âś… Required
invoiceDocumentCurrencyCode string âś… Required
invoiceTaxCurrencyCode string âś… Required
invoiceCustomerPartyTin string âś… Required
invoiceCustomerPartyEmail string âś… Required
invoiceCustomerPartyTelephone string âś… Required
invoiceCustomerPartyBusinessDescription string âś… Required
invoiceCustomerPartyName string âś… Required
invoiceCustomerCityName string âś… Required
invoiceCustomerPostalZone string âś… Required
invoiceCustomerCountry string âś… Required
invoiceCustomerStreetName string âś… Required
invoiceCustomerLga string âś… Required
invoiceCustomerState string âś… Required
invoiceSupplierPartyTin string âś… Required
invoiceSupplierPartyEmail string âś… Required
invoiceSupplierPartyTelephone string âś… Required
invoiceSupplierPartyBusinessDescription string âś… Required
invoiceSupplierPartyName string âś… Required
invoiceSupplierLga string âś… Required
invoiceSupplierState string âś… Required
invoiceSupplierCityName string âś… Required
invoiceSupplierPostalZone string âś… Required
invoiceSupplierCountry string âś… Required
invoiceSupplierStreetName string âś… Required
invoiceLineExtensionAmount integer âś… Required
invoiceTaxExclusiveAmount integer âś… Required
invoiceTaxInclusiveAmount integer âś… Required
invoicePayableAmount integer âś… Required
invoiceAllowanceCharge array [object] âś… Required
invoiceAllowanceChargeIndicator boolean Optional
invoiceAllowanceChargeAmount integer Optional
invoiceLine array [object] âś… Required
invoiceLineHsnCode string âś… Required
invoiceLineProductCategory string âś… Required
invoiceLineInvoicedQuantity integer âś… Required
invoiceLineExtensionAmount integer âś… Required
invoiceLineItemName string âś… Required
invoiceLineItemDescription string âś… Required
invoiceLinePriceAmount number âś… Required
invoiceLinePriceBaseQuantity integer âś… Required
invoiceLinePriceUnit string âś… Required
invoiceTaxTotal array [object] âś… Required
invoiceTaxTotalAmount integer âś… Required
invoiceTaxTotalSubTotal array [object] âś… Required

Example

Copy to Clipboard

Response

Response Status

  • 200 OK

  • 201 Created
  • 401 Unauthorized

  • 403 Forbidden
  • 404 Not Found