Invoice
Introduction
The Invoice module under Sale is designed to manage customer-facing transactions with precision, flexibility, and full ledger traceability. It allows users to create, view, and manage sales invoices while ensuring real-time synchronization with inventory levels, customer accounts, and financial records. Every invoice entry reflects across multiple modules, including Inventory, Parties, Receivable, and Settings, enabling seamless operational and accounting workflows.
This documentation outlines the complete flow of invoice creation, record management, and inter-module dependencies, based on the interface and logic visible in the system.
Interface Overview
Upon accessing Sales → Invoice, users are presented with a structured table view listing all invoice records. Each row represents a distinct transaction and includes the following columns:
Invoice No: A system-generated unique identifier for each invoice (e.g., S-24, S-23)
Reference No: Optional field for external or manual reference tagging
Date: The transaction date, either auto-populated or manually selected
Customer: The name of the customer, pulled from the Parties module
Amount: The total invoice amount including product value, tax, and discount
Payables: The net amount due from the customer after adjustments
Payment Mode: Indicates whether the transaction was settled via Cash or Bank
Actions: Includes options to Print, Edit, or initiate a Return
Invoice Creation Workflow
To create a new invoice, users follow a structured process that ensures all relevant data is captured and synchronized across modules:
Step 1: Initiate Invoice
Click the Add Icon or Create button from the Invoice dashboard
The system opens a new invoice form with editable fields
Step 2: Define Transaction Details
Date: Defaults to the current date but can be manually adjusted
Reference No: Optional field for tagging external references (e.g., PO numbers)
Customer Selection:
Choose from existing customer profiles listed in the Parties module
If the customer is not listed, use the “Add Customer” dialog to create a new profile instantly
Step 3: Add Products
Select products from the Inventory module
Each product entry auto-fetches:
Description
Packing unit
Sale price
Tax percentage (defined in [Settings](#settings → Tax Configuration))
Enter the quantity sold
The system calculates line totals based on quantity, price, and tax
Step 4: Apply Discounts (If Enabled)
Discount functionality is governed by [Settings](#settings → Discount Controls)
If enabled:
Users can apply discounts per item or across the entire invoice
Discounts can be fixed amounts or percentage-based
The system recalculates totals accordingly
Step 5: Select Payment Method
Choose between Cash or Bank
Available payment modes are configured in [Settings](#settings → Payment Modes)
This selection determines how the transaction is reflected in the Receivable module
Step 6: Finalize and Submit
Review all fields for accuracy
Click Submit to finalize the invoice
Upon submission:
Inventory stock is reduced based on sold quantities
A receivable entry is created in the Receivable module
The customer’s ledger is updated in the Parties module with a debit transaction
The invoice becomes available for printing and return processing
Invoice Record Actions
Each invoice entry in the table includes the following actionable options:
Print: Generates a formatted invoice document suitable for customer delivery or internal archiving
Edit: Opens the invoice form for modification of any field, including customer, products, amounts, or payment method
Return: Initiates the return workflow, pre-filling the return form with invoice data (see Return Documentation for full flow)
Filtering & Search
The Invoice module includes a dynamic filter panel allowing users to refine records based on:
Customer name
Reference number
Date range
Amount
Payment mode
This ensures quick access to specific transactions and supports audit, reporting, and reconciliation workflows.
Interconnected Modules
The Invoice module does not operate in isolation. It is deeply integrated with the following modules:
Inventory: Product selection, pricing, and stock deduction are handled here. When an invoice is submitted, the corresponding product quantities are automatically reduced from available stock.
Parties: Customer profiles are sourced from this module. Every invoice updates the customer’s ledger with a debit entry reflecting the payable amount.
Receivable: Upon invoice submission, a receivable entry is created, tracking the amount owed by the customer. This module also handles incoming payments and reconciliations.
Discount Controls: Enable/disable discount functionality, define discount types (fixed or percentage), and set application scope (per item or invoice-wide)
Tax Configuration: Define default tax percentages and application logic (before/after discount)
Payment Modes: Configure available payment methods (Cash, Bank, etc.)
Currency Settings: If users wish to alter the currency format or symbol, this is managed from Settings → Currency Configuration
Ledger Impact
Once an invoice is submitted:
The customer’s ledger in the Parties module reflects a debit transaction
The Receivable module logs the amount due
The Inventory module updates stock levels
The system maintains full traceability for audit and financial reporting