Skip to main content

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
IRN prerequisites

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

ControllerPrimary responsibility
BillsDashboardModule home
BillMasterBill header templates
BillParticularsLine item particulars
ParticularsAssignedParticular assignment to clients/units
BillingParameterBilling parameter setup
ConfigurationModule configuration
ExpenseMaster / ExpenseDetailsExpense tracking

Transactions

ControllerPrimary responsibility
CreateBillsInvoice creation and editing
PaymentReceivePayment receipt
CreditNote / DebitNoteStandard adjustments
CategorizedCreditNote / CategorizedDebitNoteCategorized adjustments
ArrearProcessBilling arrear processing

Compliance & integration

ControllerPrimary responsibility
GSTReturnGST return reporting
BulkGenrateIRNBulk IRN generation

Reports

ControllerPrimary responsibility
BillsReportMISBilling MIS
BillReportPeriodicalMISPeriodical MIS

Views / Layout

AssetRole
_BillsLayout.cshtmlModule shell with sidebar
bills-modern.css / dashboard CSSModule styling
Report .aspx viewersCrystal MIS outputs

DAL

DAL classRole
BillDashBoard_DALDashboard metrics
CreateBill_DALInvoice CRUD
PaymentReceiving_DALPayment allocation
GenerateIRN_DALIRN API payload and persistence
GSTReturnReport_DALGST return datasets
CategorizedCreditNote_DALCategorized credit notes
ExpenseMaster_DAL / ExpenseDetails_DALExpense modules
BillParticularsSetting_DALParticular configuration

Business Objects

Namespace: BO.Bills

BO typeRole
GenerateIRN_BO / GetGenerateIRN_BOIRN request and response
ResponseGenerateIRN_BOAPI response mapping
PaymentReceiving_BOPayment lines
CreditNote_BO / CategorizedDebitNote_BOAdjustments
UnitBillingParameters_BOClient/unit billing rules
EWaybill / EWayBillByChallanE-way bill payloads

Typical Workflow

Invoice creation with optional IRN:

Data Flow

  1. Masters (particulars, parameters) configured per CompID.
  2. CreateBills posts BO → CreateBill_DAL → write SPs.
  3. IRN actions build requests using session URIs and credentials:
Session keyPurpose
CDKEYCompany e-invoice license key
EFUSERNAME / EFPASSWORDE-invoice API credentials
ZAPIPATHZAPI base path
GenerateIRNUriIRN generation endpoint
CancelIrnUriIRN cancellation endpoint
PrintIRNUriIRN print endpoint
PrintEWayBillDetailed / PrintEWayBillSummaryE-way bill print URIs
EWayBillDeliveryChallanDelivery challan e-way URI
  1. MIS controllers load aggregated billing tables → Crystal or grid export.

Reports

ReportController
Billing MISBillsReportMIS
Periodical MISBillReportPeriodicalMIS
GST returnGSTReturn

Permissions

GateRequirement
Module flagdtVerifyUser.Billing == true
SessionValid CompID
IRNValid e-invoice session keys from login
Menu permissionsPer-screen database permissions

Common Issues

SymptomLikely cause
IRN HTTP failureMissing or expired EFUSERNAME / EFPASSWORD
Bill totals mismatchParticular assignment or parameter not synced
GST report emptyPeriod filter or unposted bills
Print IRN 404Wrong PrintIRNUri for environment

Important Notes

Session-bound credentials

IRN credentials are loaded once at login. Users must re-login after company e-invoice settings change.

Bulk IRN spelling

The controller is named BulkGenrateIRN (typo preserved) — use exact route names in links and tests.

Common Mistakes

MistakeConsequence
Generating IRN before bill finalizationCancel/reissue overhead
Testing IRN on production credentials in devStatutory submissions to live GSTN
Ignoring categorized note typesGL misclassification

Next Steps

  1. Verify billing masters and particulars for the client.
  2. Confirm e-invoice session keys on a test login.
  3. Create a draft bill, generate IRN in sandbox, then run MIS reconciliation.