Bills
Introduction
The Bills module manages client billing, GST compliance, payment collection, and Indian e-invoicing (IRN) integration. Finance teams create invoices from configured particulars, optionally generate IRNs through ZAPI credentials loaded at login, and analyze billing performance through MIS reports.
Purpose
Bills supports:
- Invoice creation with bill masters, particulars, and billing parameters
- Payment receipt against outstanding invoices
- Credit notes, debit notes, and categorized variants
- GST return preparation and bulk IRN generation
- Billing MIS and periodical analytics
When to Use
Use Bills when you:
- Raise client invoices for deployed manpower or services
- Record client payments and adjustments
- Generate or cancel IRNs for statutory e-invoice compliance
- Export GST return data or billing MIS for management review
E-invoice features require valid ZAPI credentials and URIs populated on the company user record at login. Without them, bill save may succeed but IRN calls fail.
Overview / Architecture
The Bills Area uses _BillsLayout.cshtml and stores transactional data through DAL/Bills/. IRN integration reads session keys set in LoginController after GetLoginUser returns company e-invoice configuration.
Entry URL: /Bills/BillsDashboard/Index
PageID: Bills
Module flag: Billing
Controllers
Dashboard & configuration
| Controller | Primary responsibility |
|---|---|
| BillsDashboard | Module home |
| BillMaster | Bill header templates |
| BillParticulars | Line item particulars |
| ParticularsAssigned | Particular assignment to clients/units |
| BillingParameter | Billing parameter setup |
| Configuration | Module configuration |
| ExpenseMaster / ExpenseDetails | Expense tracking |
Transactions
| Controller | Primary responsibility |
|---|---|
| CreateBills | Invoice creation and editing |
| PaymentReceive | Payment receipt |
| CreditNote / DebitNote | Standard adjustments |
| CategorizedCreditNote / CategorizedDebitNote | Categorized adjustments |
| ArrearProcess | Billing arrear processing |
Compliance & integration
| Controller | Primary responsibility |
|---|---|
| GSTReturn | GST return reporting |
| BulkGenrateIRN | Bulk IRN generation |
Reports
| Controller | Primary responsibility |
|---|---|
| BillsReportMIS | Billing MIS |
| BillReportPeriodicalMIS | Periodical MIS |
Views / Layout
| Asset | Role |
|---|---|
_BillsLayout.cshtml | Module shell with sidebar |
bills-modern.css / dashboard CSS | Module styling |
Report .aspx viewers | Crystal MIS outputs |
DAL
| DAL class | Role |
|---|---|
| BillDashBoard_DAL | Dashboard metrics |
| CreateBill_DAL | Invoice CRUD |
| PaymentReceiving_DAL | Payment allocation |
| GenerateIRN_DAL | IRN API payload and persistence |
| GSTReturnReport_DAL | GST return datasets |
| CategorizedCreditNote_DAL | Categorized credit notes |
| ExpenseMaster_DAL / ExpenseDetails_DAL | Expense modules |
| BillParticularsSetting_DAL | Particular configuration |
Business Objects
Namespace: BO.Bills
| BO type | Role |
|---|---|
| GenerateIRN_BO / GetGenerateIRN_BO | IRN request and response |
| ResponseGenerateIRN_BO | API response mapping |
| PaymentReceiving_BO | Payment lines |
| CreditNote_BO / CategorizedDebitNote_BO | Adjustments |
| UnitBillingParameters_BO | Client/unit billing rules |
| EWaybill / EWayBillByChallan | E-way bill payloads |
Typical Workflow
Invoice creation with optional IRN:
Data Flow
- Masters (particulars, parameters) configured per
CompID. - CreateBills posts BO →
CreateBill_DAL→ write SPs. - IRN actions build requests using session URIs and credentials:
| Session key | Purpose |
|---|---|
CDKEY | Company e-invoice license key |
EFUSERNAME / EFPASSWORD | E-invoice API credentials |
ZAPIPATH | ZAPI base path |
GenerateIRNUri | IRN generation endpoint |
CancelIrnUri | IRN cancellation endpoint |
PrintIRNUri | IRN print endpoint |
PrintEWayBillDetailed / PrintEWayBillSummary | E-way bill print URIs |
EWayBillDeliveryChallan | Delivery challan e-way URI |
- MIS controllers load aggregated billing tables → Crystal or grid export.
Reports
| Report | Controller |
|---|---|
| Billing MIS | BillsReportMIS |
| Periodical MIS | BillReportPeriodicalMIS |
| GST return | GSTReturn |
Permissions
| Gate | Requirement |
|---|---|
| Module flag | dtVerifyUser.Billing == true |
| Session | Valid CompID |
| IRN | Valid e-invoice session keys from login |
| Menu permissions | Per-screen database permissions |
Common Issues
| Symptom | Likely cause |
|---|---|
| IRN HTTP failure | Missing or expired EFUSERNAME / EFPASSWORD |
| Bill totals mismatch | Particular assignment or parameter not synced |
| GST report empty | Period filter or unposted bills |
| Print IRN 404 | Wrong PrintIRNUri for environment |
Related Pages
- Contracted Rates — billing rate linkage
- Management Dashboard — P&L and expense MIS
- Session Lifecycle
Important Notes
IRN credentials are loaded once at login. Users must re-login after company e-invoice settings change.
The controller is named BulkGenrateIRN (typo preserved) — use exact route names in links and tests.
Common Mistakes
| Mistake | Consequence |
|---|---|
| Generating IRN before bill finalization | Cancel/reissue overhead |
| Testing IRN on production credentials in dev | Statutory submissions to live GSTN |
| Ignoring categorized note types | GL misclassification |
Next Steps
- Verify billing masters and particulars for the client.
- Confirm e-invoice session keys on a test login.
- Create a draft bill, generate IRN in sandbox, then run MIS reconciliation.