Request a Demo
Shared Functional

Billing & Invoicing

Universal bill and invoice generation engine — produces tax bills, utility bills, invoices, and statements across all revenue products with instalment plans, consolidated billing, and multi-format delivery.

≤4hrs

Billing Run (100K)

≤3s

Invoice Generation

≤2s/bill

PDF Generation

100%

Financial Accuracy

Purpose-Built for Canadian Municipalities

Ontario Compliant
MFIPPA Ready
AODA Accessible
Bilingual Support
Canadian Hosted
SOC 2 Aligned

Purpose & Scope

What this module owns

Clear ownership boundaries prevent duplication and ensure every capability has exactly one authoritative home.

Owns

8

Delegated to

7

Rate/fee calculation

rate-fee-engine

GL posting

financial-core

Payment processing

payment-engine

Collections follow-up

arrears-collections

PDF generation

document-records

Delivery channels

notification-engine

Customer account lookup

civic-identity

These capabilities are handled by dedicated modules and consumed via stable API contracts — keeping boundaries clean and ownership unambiguous.

Core Capabilities

What it does

4 capability groups comprising 8 discrete capabilities — each with API surface, business rules, and data ownership.

Mass billing runs: calculate charges via rate-fee-engine, apply credits/adjustments, generate bill documents, assign due dates, post to GL; supports interim/final/supplementary cycles.

Mass Billing Runs

Calculate charges via rate-fee-engine, apply credits/adjustments, generate bill documents, and assign due dates in a single automated run.

GL Posting

Calculated amounts are posted to the general ledger via financial-core as part of the billing run.

Billing Cycles

Supports interim, final, and supplementary billing cycles for property tax and other revenue streams.

Due Date Assignment

Due dates automatically assigned based on configurable payment terms (default 21 days after bill date).

Individual invoices for one-time charges (permits, fees, rentals); invoice numbering, line items, tax calculation, terms (Net 30/60/90).

One-Time Invoices

Create individual invoices for permits, fees, rentals, and other one-time charges outside mass billing runs.

Invoice Numbering

Sequential, formatted invoice numbers with configurable prefix (e.g., INV-2026-001234).

Line Items

Multiple line items per invoice with description, quantity, unit price, HST calculation, and GL account mapping.

Payment Terms

Configurable payment terms: Net 30, Net 60, Net 90, or custom terms per invoice.

Every module owns a single bounded context, exposes stable APIs, and can be composed into any Civic product — that's the architecture that scales.

Krutik Parikh

Creator of Civic

Data Model

Entity Architecture

4 entities with 6 relationships — the authoritative schema for this bounded context.

Entities

Select an entity to explore its fields and relationships

API Surface

Integration Endpoints

11 RESTful endpoints across 7 resource groups — plus 6 domain events for async integration.

|
POST

/api/v1/billing/runs

Initiate billing run

GET

/api/v1/billing/runs/{id}/status

Billing run status

Technical Specifications

Performance, Compliance & Configuration

Billing Run (100K accounts)

Target≤ 4 hours

Individual Invoice Generation

Target≤ 3 seconds

PDF Generation

Target≤ 2 seconds per bill

Bill Delivery (email)

TargetWithin 1 hour of generation

PAD File Generation (CPA 005)

Target≤ 30 minutes

Financial Accuracy

Target100% (to the penny)

Availability

Target99.9%

FAQ

Frequently Asked Questions

Ready to Integrate

Build on Billing & Invoicing

Request an architecture brief, integration guide, or live demo environment for your team.