Every entry must balance
The only code that writes journal rows refuses any entry whose debits and credits differ. Amounts are whole paise, never floats.
finance-tracker-backend/src/ledger/ledger.service.tsView on GitHub →
export type Side = 'D' | 'C';export interface Line { accountId: string; side: Side; amountMinor: number;} async postEntry(tx: Tx, p: { spaceId: string; lines: Line[] /* ... */ }) { if (p.lines.length < 2) throw invalid('An entry needs at least two lines'); const debit = p.lines.filter((l) => l.side === 'D').reduce((s, l) => s + l.amountMinor, 0); const credit = p.lines.filter((l) => l.side === 'C').reduce((s, l) => s + l.amountMinor, 0); if (debit !== credit) throw new AppError(HttpStatus.UNPROCESSABLE_ENTITY, 'UNBALANCED', 'Debits and credits differ', { debit, credit }); // ...writes journal_entries + journal_lines, updates account_balances atomically}