Skip to main content

Financial Reports

The GL service provides standard financial reports derived from posted journal entries. Reports can be generated for any fiscal period, with support for comparative and consolidated views.

Available Reports

ReportEndpointDescription
Trial BalanceGET /api/v1/reports/trial-balanceDebit and credit totals per account
Profit & LossGET /api/v1/reports/profit-and-lossRevenue minus expenses for a period
Balance SheetGET /api/v1/reports/balance-sheetAssets, liabilities, and equity snapshot
Cash FlowGET /api/v1/reports/cash-flowCash inflows and outflows
Changes in EquityGET /api/v1/reports/changes-in-equityEquity movement over a period

Trial Balance

GET /api/v1/reports/trial-balance?fiscal_period_id=period-uuid
{
"fiscal_period": "February 2026",
"generated_at": "2026-02-28T23:59:00Z",
"accounts": [
{
"account_number": "1101",
"account_name": "Cash on Hand",
"category": "asset",
"debit_balance": 5000000.00,
"credit_balance": 0.00
},
{
"account_number": "2101",
"account_name": "Savings Deposits",
"category": "liability",
"debit_balance": 0.00,
"credit_balance": 12000000.00
}
],
"totals": {
"total_debits": 25000000.00,
"total_credits": 25000000.00,
"is_balanced": true
}
}

A balanced trial balance (total debits = total credits) confirms the integrity of the ledger.

Profit & Loss Statement

GET /api/v1/reports/profit-and-loss?fiscal_period_id=period-uuid
{
"fiscal_period": "February 2026",
"revenue": [
{
"account_number": "4101",
"account_name": "Interest Income",
"amount": 2500000.00
},
{
"account_number": "4201",
"account_name": "Fee Income",
"amount": 800000.00
}
],
"total_revenue": 3300000.00,
"expenses": [
{
"account_number": "5101",
"account_name": "Interest Expense",
"amount": 1200000.00
},
{
"account_number": "5201",
"account_name": "Operating Expenses",
"amount": 500000.00
}
],
"total_expenses": 1700000.00,
"net_income": 1600000.00
}

Balance Sheet

GET /api/v1/reports/balance-sheet?fiscal_period_id=period-uuid
{
"fiscal_period": "February 2026",
"assets": {
"items": [
{ "account_number": "1101", "account_name": "Cash on Hand", "amount": 5000000.00 }
],
"total": 25000000.00
},
"liabilities": {
"items": [
{ "account_number": "2101", "account_name": "Savings Deposits", "amount": 12000000.00 }
],
"total": 18000000.00
},
"equity": {
"items": [
{ "account_number": "3101", "account_name": "Share Capital", "amount": 5000000.00 },
{ "account_number": "3201", "account_name": "Retained Earnings", "amount": 2000000.00 }
],
"total": 7000000.00
},
"is_balanced": true
}

The balance sheet equation holds: Assets = Liabilities + Equity.

Cash Flow Statement

GET /api/v1/reports/cash-flow?fiscal_period_id=period-uuid

Categorizes cash movements into operating, investing, and financing activities.

Comparative Reports

Compare two fiscal periods side by side:

GET /api/v1/reports/comparative/profit-and-loss?period1=jan-uuid&period2=feb-uuid
GET /api/v1/reports/comparative/balance-sheet?period1=jan-uuid&period2=feb-uuid

Returns both periods with amount differences and percentage changes.

Consolidated Reports

Aggregate across all branches (requires manager role):

GET /api/v1/reports/consolidated/trial-balance?fiscal_period_id=period-uuid
GET /api/v1/reports/consolidated/profit-and-loss?fiscal_period_id=period-uuid

Query Parameters

All report endpoints accept:

ParameterDescription
fiscal_period_idThe fiscal period to report on
branch_codeFilter by branch (optional)
currencyFilter by currency (optional)

Next Steps