Request a Demo
Platform Infrastructure

Financial Core

The general ledger, fund accounting, and fiscal management layer for the Civic platform — every module that posts financial transactions routes through Financial Core.

99.99%

Availability

<500ms

GL Posting

Full

PSAB Compliant

DECIMAL(15,2)

Precision

Purpose-Built for Canadian Municipalities

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

How It Works

The identity journey, step by step

From first registration to golden record resolution — how a resident's identity evolves across the platform.

01

Manual Journal Entry

An accountant creates an adjusting journal entry for an accrued expense.

How it works

The accountant opens the journal entry screen, selects 'Adjusting Entry' type, enters the accrued liability (credit) and expense (debit) lines with the correct COA segments, adds a description referencing the vendor invoice, and submits. Because the entry exceeds $10,000, it routes to the CFO for approval. Once approved, it posts to the GL and the balance updates in real-time.

Step 1 of 5

Purpose & Scope

What this module owns

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

Owns

15

Delegated to

7

Payment collection

payment-engine

Accounts payable processing

consuming AP module

Accounts receivable / billing

consuming AR module

Payroll processing

consuming HR/Payroll module

Property tax calculation

consuming property tax module

Budget planning/preparation

consuming budget module

Procurement

consuming procurement module

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 7 discrete capabilities — each with API surface, business rules, and data ownership.

Multi-segment account structure with validation rules, FIR-aligned natural accounts, and roll-up hierarchy for reporting.

Segmented COA

Multi-segment account structure: Fund – Department – Program – Object – Project – Sub-Project.

Account Types

Asset, Liability, Equity, Revenue, Expense, Statistical.

Segment Values

Each segment has its own code table (e.g., Fund: 01=General, 02=Water, 03=Sewer, 10=Capital).

Account Combinations

Validation rules for valid segment combinations; block invalid combos.

Natural Accounts

Pre-built object codes aligned with FIR (Financial Information Return) schedule lines.

Hierarchy

Roll-up hierarchy for reporting (e.g., Object 5110 → Salaries → Personnel → Operating Expense).

Double-entry bookkeeping engine with journal entries, batch posting, recurring entries, sub-ledger integration, and inter-fund support.

Journal Entries

Standard, adjusting, closing, correcting, statistical, reversing entries.

Debit/Credit

Double-entry bookkeeping — all entries must balance (debits = credits).

Sub-Ledger Posting

AP, AR, Payroll, Tax, Utility Billing modules post summarized or detailed entries.

Batch Posting

Group multiple journal entries in a batch for review and bulk posting.

Recurring Entries

Template recurring entries (monthly, quarterly) with auto-generate on schedule.

Approval Workflow

Journal entries > configurable threshold require approval (via workflow-automation).

Real-World Scenarios

Who uses this, and how

3 persona-driven scenarios showing how Financial Core works in practice — from resident registration to privacy compliance.

Treasurer

Inter-Fund Transfer for Capital Project

The Treasurer needs to transfer $500,000 from the General Reserve Fund to the Capital Fund for an approved road reconstruction project.

Steps

  1. 1Treasurer opens the inter-fund transfer screen
  2. 2Selects source fund (Reserve Fund - 04) and target fund (Capital - 10)
  3. 3Enters amount ($500,000) and references the Council resolution approving the transfer
  4. 4System creates balanced entries: debit Reserve Fund, credit Capital Fund with due-to/due-from entries
  5. 5Entry routes for Council authorization (above threshold)
  6. 6Once approved, entries post and both fund balances update immediately

Outcome

Funds are properly transferred with full audit trail linking to the Council resolution. Reserve balance is updated, and capital project budget reflects the new funding.

View scenario

Department Director

Budget Overspend Alert and Response

The Public Works budget for winter maintenance is 90% consumed by February due to heavy snowfall.

Steps

  1. 1Financial Core detects the winter maintenance account has reached 90% consumption
  2. 2gl.budget_warning event is emitted
  3. 3Notification-engine alerts the Public Works Director and the CFO
  4. 4Director reviews the budget variance dashboard in reporting-analytics
  5. 5Requests a budget transfer from general contingency to cover projected shortfall
  6. 6Transfer is processed through Financial Core with Council approval

Outcome

Early warning prevents surprise overspend at year-end. Budget transfer is properly documented with full approval trail.

View scenario

External Auditor

Year-End Financial Audit

External auditors need to verify GL postings, bank reconciliations, and fund balances for the annual audit.

Steps

  1. 1Auditors access read-only trial balance API for all funds
  2. 2Review journal entry detail for selected accounts with source module references
  3. 3Verify bank reconciliation reports for all accounts
  4. 4Validate fund balance integrity — no unauthorized cross-fund postings
  5. 5Confirm TCA amortization entries match the asset register
  6. 6Generate PSAB-compliant financial statements from the reporting module

Outcome

Clean audit opinion. Auditors confirm full PSAB compliance, proper fund segregation, and complete audit trail for all financial transactions.

View scenario

Internal Architecture

How it's built

3 architectural layers comprising 18 components — from API gateway to data quality engine.

3 layers · 18 total components

Financial Core

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

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

Entities

Select an entity to explore its fields and relationships

API Surface

Integration Endpoints

15 RESTful endpoints across 4 resource groups — plus 8 domain events for async integration.

|
POST

/api/v1/gl/journal-entries

Create journal entry

POST

/api/v1/gl/journal-entries/{id}/post

Post approved journal entry

GET

/api/v1/gl/accounts/{accountString}/balance

Get account balance (period or YTD)

GET

/api/v1/gl/accounts/{accountString}/transactions

Get transactions for account

GET

/api/v1/gl/trial-balance

Generate trial balance

POST

/api/v1/gl/journal-entries/{id}/reverse

Reverse a posted entry

Ecosystem

Products that depend on this module

18 Civic products consume Financial Core — making it one of the most critical platform services in the ecosystem.

Technical Specifications

Performance, Compliance & Configuration

Availability

Target99.99% — financial engine failure blocks all financial operations

GL Posting Latency

Target< 500ms per journal entry posting

Balance Query

Target< 200ms for single account balance

Trial Balance

Target< 5 seconds for full chart trial balance

Year-End Close

Target< 30 minutes for full year-end process

Precision

TargetDECIMAL(15,2) for amounts; no floating-point

Audit Trail

TargetEvery posting, reversal, and period close fully audited

PSAB Compliance

TargetFull Public Sector Accounting Board compliance for financial statements

FAQ

Frequently Asked Questions

Ready to Integrate

Build on Financial Core

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