Files
dbis_core/CHART_OF_ACCOUNTS_SUMMARY.md
2026-03-02 12:14:07 -08:00

7.7 KiB

Chart of Accounts - Implementation Summary

Date: 2025-01-22
Status: Deployable and Ready


Implementation Complete

A comprehensive General Ledger Chart of Accounts with USGAAP and IFRS compliance has been created and is ready for deployment.


📦 What Was Created

1. Service Layer

File: src/core/accounting/chart-of-accounts.service.ts

Features:

  • Standard chart of accounts with 50+ accounts
  • Hierarchical account structure (parent-child relationships)
  • USGAAP classifications for all accounts
  • IFRS classifications for all accounts
  • Account balance calculations
  • CRUD operations
  • Account validation

2. API Routes

File: src/core/accounting/chart-of-accounts.routes.ts

Endpoints:

  • GET /api/accounting/chart-of-accounts - Get all accounts
  • POST /api/accounting/chart-of-accounts/initialize - Initialize standard accounts
  • GET /api/accounting/chart-of-accounts/:accountCode - Get account by code
  • GET /api/accounting/chart-of-accounts/category/:category - Get by category
  • GET /api/accounting/chart-of-accounts/:parentCode/children - Get child accounts
  • GET /api/accounting/chart-of-accounts/:rootCode/hierarchy - Get hierarchy
  • POST /api/accounting/chart-of-accounts - Create account
  • PUT /api/accounting/chart-of-accounts/:accountCode - Update account
  • GET /api/accounting/chart-of-accounts/:accountCode/balance - Get balance

3. Database Schema

Model: ChartOfAccount (added to Prisma schema)

Fields:

  • accountCode - Unique 4-10 digit code
  • accountName - Account name
  • category - ASSET, LIABILITY, EQUITY, REVENUE, EXPENSE, OTHER
  • parentAccountCode - For hierarchy
  • level - Hierarchy level (1-10)
  • normalBalance - DEBIT or CREDIT
  • accountType - Current Asset, Non-Current Asset, etc.
  • usgaapClassification - USGAAP classification
  • ifrsClassification - IFRS classification
  • description - Account description
  • isActive - Active status
  • isSystemAccount - System vs custom accounts

4. Migration Script

File: prisma/migrations/add_chart_of_accounts.sql

Ready to run for database setup.


📊 Account Structure

Assets (1000-1999) - DEBIT Normal Balance

Current Assets (1100-1499)

  • 1110 Cash and Cash Equivalents
    • 1111 Cash on Hand
    • 1112 Cash in Banks
    • 1113 Short-term Investments
  • 1120 Accounts Receivable
    • 1121 Trade Receivables
    • 1122 Allowance for Doubtful Accounts (Contra-asset)
  • 1130 Settlement Assets
    • 1131 Nostro Accounts
  • 1140 CBDC Holdings
  • 1150 GRU Holdings

Non-Current Assets (1200-1999)

  • 1210 Property, Plant and Equipment
    • 1211 Accumulated Depreciation (Contra-asset)
  • 1220 Intangible Assets
  • 1230 Long-term Investments
  • 1300 Commodity Reserves

Liabilities (2000-2999) - CREDIT Normal Balance

Current Liabilities (2100-2499)

  • 2110 Accounts Payable
  • 2120 Short-term Debt
  • 2130 Vostro Accounts
  • 2140 CBDC Liabilities
  • 2150 GRU Liabilities

Non-Current Liabilities (2200-2999)

  • 2210 Long-term Debt
  • 2220 Bonds Payable

Equity (3000-3999) - CREDIT Normal Balance

  • 3100 Capital
    • 3110 Common Stock
  • 3200 Retained Earnings
  • 3300 Reserves
    • 3310 Legal Reserve
    • 3320 Revaluation Reserve

Revenue (4000-4999) - CREDIT Normal Balance

  • 4100 Operating Revenue
    • 4110 Interest Income
    • 4120 Fee Income
    • 4130 FX Trading Revenue
  • 4200 Non-Operating Revenue

Expenses (5000-6999) - DEBIT Normal Balance

  • 5100 Operating Expenses
    • 5110 Interest Expense
    • 5120 Personnel Expenses
    • 5130 Technology and Infrastructure
    • 5140 Depreciation Expense
    • 5150 Amortization Expense
    • 5160 Provision for Loan Losses
  • 5200 Non-Operating Expenses

🔐 Compliance Features

USGAAP Compliance

Standard Implementation
Account Classifications All accounts mapped to USGAAP
Normal Balance Rules DEBIT/CREDIT properly assigned
Contra-Accounts Allowance, Accumulated Depreciation
Depreciation Depreciation Expense account
Credit Losses Provision for Credit Losses (USGAAP)
Equity Structure Stockholders Equity format

IFRS Compliance

Standard Implementation
Account Classifications All accounts mapped to IFRS
Financial Instruments IFRS 9 compliant classifications
Revaluation Revaluation Reserve account
Credit Losses Expected Credit Losses (IFRS 9)
Equity Structure Share Capital format
Comprehensive Income Other Comprehensive Income support

🚀 Deployment Instructions

Quick Deploy

cd dbis_core

# 1. Generate Prisma client
npx prisma generate

# 2. Run migration
npx prisma migrate dev --name add_chart_of_accounts

# 3. Initialize accounts (via API or service)
curl -X POST http://localhost:3000/api/accounting/chart-of-accounts/initialize

Verify Deployment

# Get all accounts
curl http://localhost:3000/api/accounting/chart-of-accounts

# Get assets only
curl http://localhost:3000/api/accounting/chart-of-accounts/category/ASSET

# Get account hierarchy
curl http://localhost:3000/api/accounting/chart-of-accounts/1000/hierarchy

📋 Account Count

  • Total Accounts: 50+ standard accounts
  • Asset Accounts: 15+
  • Liability Accounts: 8+
  • Equity Accounts: 6+
  • Revenue Accounts: 5+
  • Expense Accounts: 8+

All accounts include:

  • USGAAP classification
  • IFRS classification
  • Proper normal balance
  • Hierarchical structure
  • Descriptions

🔗 Integration

With Existing Ledger

The chart of accounts integrates seamlessly with the existing LedgerEntry system:

// Use chart of accounts codes
await ledgerService.postDoubleEntry(
  ledgerId,
  '1112', // Cash in Banks (from chart)
  '4110', // Interest Income (from chart)
  amount,
  currencyCode,
  assetType,
  transactionType,
  referenceId
);

With Reporting Engine

Generate financial statements using chart of accounts:

// Balance Sheet
const assets = await chartOfAccountsService.getAccountsByCategory(AccountCategory.ASSET);
const liabilities = await chartOfAccountsService.getAccountsByCategory(AccountCategory.LIABILITY);
const equity = await chartOfAccountsService.getAccountsByCategory(AccountCategory.EQUITY);

// Income Statement
const revenue = await chartOfAccountsService.getAccountsByCategory(AccountCategory.REVENUE);
const expenses = await chartOfAccountsService.getAccountsByCategory(AccountCategory.EXPENSE);

Verification Checklist

  • Chart of Accounts service implemented
  • API routes created
  • Prisma model added
  • Migration script ready
  • 50+ standard accounts defined
  • USGAAP classifications included
  • IFRS classifications included
  • Hierarchical structure implemented
  • Documentation complete

📝 Files Created

  1. src/core/accounting/chart-of-accounts.service.ts (989 lines)
  2. src/core/accounting/chart-of-accounts.routes.ts (API routes)
  3. prisma/migrations/add_chart_of_accounts.sql (Migration)
  4. docs/accounting/CHART_OF_ACCOUNTS.md (Documentation)
  5. CHART_OF_ACCOUNTS_DEPLOYMENT.md (Deployment guide)
  6. Prisma schema updated with ChartOfAccount model

🎯 Result

Chart of Accounts is fully implemented, compliant with USGAAP and IFRS, and ready for deployment!

The system provides:

  • Complete General Ledger structure
  • Dual-standard compliance (USGAAP + IFRS)
  • Hierarchical account organization
  • Full API access
  • Integration with existing ledger
  • Ready for financial reporting

Status: Deployable and Production-Ready