Chart of Accounts Guide
Build robust financial foundations with our chart of accounts system. From business templates to custom hierarchies, learn how to structure accounts for regulatory compliance and operational efficiency.
Understanding Chart of Accounts
The foundation of any financial system - learn how accounts work and why structure matters.
What is a Chart of Accounts?
A chart of accounts is your financial roadmap - a structured list of all accounts used to categorize and track financial transactions. Think of it as the skeleton of your financial system:
- Assets - What you own (cash, receivables, equipment)
- Liabilities - What you owe (customer deposits, payables)
- Equity - Owner's stake in the business
- Revenue - Money earned from operations
- Expenses - Costs of doing business
Why Structure Matters
For Regulatory Compliance
- CBN examinations require clear account structures
- Audit trails must map to specific account categories
- Financial reporting follows standardized formats
For Business Operations
- Clear categorization of customer vs operational funds
- Separate tracking of different revenue streams
- Proper expense allocation for profitability analysis
For Scaling Your Business
- Consistent structure across multiple currencies
- Easy integration with accounting software
- Automated reconciliation and reporting
Account Numbering Convention
Our templates follow standard numbering:
- 1000-1999: Assets
- 2000-2999: Liabilities
- 3000-3999: Equity
- 4000-4999: Revenue
- 5000-5999: Expenses
This makes your books familiar to accountants and compatible with standard financial software.
Business Templates
Skip months of financial planning with our pre-built templates designed specifically for different fintech business models.
Wallet Template (Most Popular)
Perfect for digital wallets, mobile money, and stored value platforms.
curl -X POST https://api.sandbox.whocomply.com/v1/tenants/your-tenant/accounts/setup \
-H "Authorization: Bearer your_api_key" \
-H "Content-Type: application/json" \
-d '{"business_type": "wallet"}'
Wallet Template Includes:
Asset Accounts
- Settlement accounts (NGN, USD)
- Customer wallet pools
- Float accounts for operations
- Receivables from payment partners
Liability Accounts
- Customer deposit obligations
- Regulatory reserves (CBN requirements)
- Payables to merchants/partners
Revenue Accounts
- Transaction fee revenue
- FX spread revenue
- Interchange income
- Interest on float
Expense Accounts
- Payment processing costs
- Regulatory compliance costs
- Technology infrastructure
Payment Processor Template
Designed for merchant services, payment gateways, and PSP operations.
curl -X POST https://api.sandbox.whocomply.com/v1/tenants/your-tenant/accounts/setup \
-H "Authorization: Bearer your_api_key" \
-H "Content-Type: application/json" \
-d '{"business_type": "payments"}'
Payment Template Features:
- Merchant settlement accounts
- Escrow and reserve accounts
- Chargeback and dispute handling
- Rolling reserve management
- Multi-acquirer reconciliation
Lending Template
Built for lending platforms, BNPL services, and credit providers.
curl -X POST https://api.sandbox.whocomply.com/v1/tenants/your-tenant/accounts/setup \
-H "Authorization: Bearer your_api_key" \
-H "Content-Type: application/json" \
-d '{"business_type": "lending"}'
Lending Template Features:
- Loan portfolio accounts
- Interest income tracking
- Provision for bad debts
- Borrower deposit accounts
- Regulatory capital accounts
Trading Template
Perfect for crypto exchanges, forex platforms, and securities trading.
curl -X POST https://api.sandbox.whocomply.com/v1/tenants/your-tenant/accounts/setup \
-H "Authorization: Bearer your_api_key" \
-H "Content-Type: application/json" \
-d '{"business_type": "trading"}'
Trading Template Features:
- Customer trading balances
- Market maker positions
- Trading fee revenue
- Spread and commission income
- Multi-asset support
Account Hierarchy
Master the parent-child relationships that make your chart of accounts both organized and flexible.
Understanding Hierarchy Levels
curl -X GET https://api.sandbox.whocomply.com/v1/tenants/your-tenant/accounts/hierarchy \
-H "Authorization: Bearer your_api_key"
Hierarchy Best Practices
Level 0: Category Headers
- Broad categories (Assets, Liabilities, etc.)
- Usually not used for transactions
- Provide structure and organization
Level 1: Sub-Categories
- More specific groupings (Cash, Receivables)
- May or may not have transactions
- Useful for subtotals in reports
Level 2-3: Transaction Accounts
- Where actual transactions are recorded
- Specific to business operations
- Include relevant metadata
Creating Hierarchical Accounts
curl -X POST https://api.sandbox.whocomply.com/v1/tenants/your-tenant/accounts \
-H "Authorization: Bearer your_api_key" \
-H "Content-Type: application/json" \
-d '{
"code": "1102",
"name": "Settlement Account - Access Bank",
"account_type": "asset",
"parent_code": "1100",
"currency": "NGN",
"metadata": {
"bank_name": "Access Bank",
"account_number": "9876543210",
"branch": "Victoria Island"
}
}'
Path Generation: The system automatically creates paths like 1000.1100.1102 that show the complete hierarchy lineage.
Multi-Currency Accounts
Handle Nigerian Naira, US Dollars, British Pounds, and more with proper currency separation.
Currency-Specific Accounts
Why Currency Separation Matters - CBN compliance requires clear currency tracking - FX risk management needs separate balances - Regulatory reporting by currency - Customer funds segregation by currency
Supported Currencies - NGN (Nigerian Naira) - Default - USD (US Dollar) - GBP (British Pound) - EUR (Euro) - GHS (Ghana Cedi) - KES (Kenya Shilling)
Creating Multi-Currency Structure
curl -X POST https://api.sandbox.whocomply.com/v1/tenants/your-tenant/accounts \
-H "Authorization: Bearer your_api_key" \
-H "Content-Type: application/json" \
-d '{
"code": "1101",
"name": "Settlement Account - NGN",
"account_type": "asset",
"parent_code": "1100",
"currency": "NGN"
}'
Currency Balance Queries
curl -X GET https://api.sandbox.whocomply.com/v1/tenants/your-tenant/accounts/acc_xyz789/balance?currency=NGN \
-H "Authorization: Bearer your_api_key"
Multi-Currency Best Practices
Account Naming Convention
- Always include currency in account names
- Use ISO currency codes consistently
- Group by currency within categories
Balance Management
- Query balances by specific currency
- Never mix currencies in single accounts
- Use separate accounts for FX operations
Account Metadata
Enrich your accounts with custom metadata for business operations and compliance tracking.
Common Metadata Use Cases
Banking Integration
- Bank name and branch details
- Account numbers and routing codes
- SWIFT/BIC codes for international
- Contact information for reconciliation
Customer Segmentation
- Customer tiers (premium, standard)
- Geographic regions
- Product categories
- Risk classifications
Regulatory Compliance
- CBN classification codes
- Risk category assignments
- Compliance officer assignments
- Audit trail requirements
Operational Data
- Cost center allocations
- Profit center assignments
- Business unit mappings
- Integration system IDs
Setting Account Metadata
curl -X POST https://api.sandbox.whocomply.com/v1/tenants/your-tenant/accounts \
-H "Authorization: Bearer your_api_key" \
-H "Content-Type: application/json" \
-d '{
"code": "1103",
"name": "Settlement Account - Zenith Bank USD",
"account_type": "asset",
"parent_code": "1100",
"currency": "USD",
"metadata": {
"bank_name": "Zenith Bank",
"bank_code": "057",
"account_number": "5123456789",
"swift_code": "ZEIBNGLA",
"branch": "Lagos Island",
"contact_person": "Jane Doe",
"contact_email": "jane.doe@zenithbank.com",
"contact_phone": "+234-801-234-5678",
"is_primary_usd": true,
"daily_limit": 50000.00,
"monthly_limit": 1000000.00,
"requires_dual_approval": true,
"cost_center": "CC001",
"business_unit": "International",
"cbn_category": "DFI_SETTLEMENT"
}
}'
Updating Metadata
curl -X PUT https://api.sandbox.whocomply.com/v1/tenants/your-tenant/accounts/acc_abc123 \
-H "Authorization: Bearer your_api_key" \
-H "Content-Type: application/json" \
-d '{
"metadata": {
"bank_name": "Zenith Bank",
"daily_limit": 75000.00,
"last_reconciled": "2025-01-15T00:00:00Z",
"reconciliation_status": "completed"
}
}'
Metadata Querying
Use metadata to filter and organize accounts for different business needs:
- Reconciliation dashboards - Find accounts by reconciliation status
- Compliance reporting - Group by CBN categories
- Operations management - Filter by business unit or cost center
- Risk management - Identify high-limit or approval-required accounts
Nigerian Best Practices
Leverage our local expertise to build CBN-compliant financial structures from day one.
CBN Compliance Requirements
Customer Fund Segregation
- Keep customer funds separate from operational funds
- Use distinct account codes for easy identification
- Maintain proper audit trails for all customer transactions
Regulatory Reporting
- Structure accounts to match CBN reporting categories
- Include required metadata for regulatory filings
- Separate local and foreign currency operations
Reserve Requirements
- Set up regulatory reserve accounts
- Track required vs actual reserves
- Automate reserve calculations where possible
Nigerian Account Structure Template
{
"accounts": [
{
"code": "1000",
"name": "Assets",
"children": [
{
"code": "1100",
"name": "Operational Cash",
"children": [
{ "code": "1101", "name": "GTBank Operating Account - NGN" },
{ "code": "1102", "name": "Access Bank Operating Account - NGN" }
]
},
{
"code": "1200",
"name": "Customer Funds (Segregated)",
"children": [
{ "code": "1201", "name": "Customer Wallet Pool - NGN" },
{ "code": "1202", "name": "Customer Wallet Pool - USD" },
{ "code": "1203", "name": "Customer Escrow - NGN" }
]
},
{
"code": "1300",
"name": "Regulatory Reserves",
"children": [
{ "code": "1301", "name": "CBN Reserve Requirement" },
{ "code": "1302", "name": "NDIC Premium Reserve" }
]
}
]
}
]
}
Recommended Account Codes
Customer Operations
- 12xx - Customer wallet pools and balances
- 20xx - Customer deposit liabilities
- 40xx - Transaction fee revenue
- 41xx - FX spread revenue
Regulatory Compliance
- 13xx - Regulatory reserves and requirements
- 21xx - Regulatory provisions and obligations
- 50xx - Compliance and regulatory expenses
Banking Integration
- 11xx - Settlement and nostro accounts
- 22xx - Due to/from banks and payment providers
Multi-Bank Setup
# GTBank Settlement
curl -X POST https://api.sandbox.whocomply.com/v1/tenants/your-tenant/accounts \
-H "Authorization: Bearer your_api_key" \
-d '{
"code": "1101",
"name": "Settlement Account - GTBank NGN",
"currency": "NGN",
"metadata": {
"bank_name": "Guaranty Trust Bank",
"bank_code": "058",
"is_primary_ngn": true
}
}'
# Access Bank Settlement
curl -X POST https://api.sandbox.whocomply.com/v1/tenants/your-tenant/accounts \
-H "Authorization: Bearer your_api_key" \
-d '{
"code": "1102",
"name": "Settlement Account - Access Bank NGN",
"currency": "NGN",
"metadata": {
"bank_name": "Access Bank",
"bank_code": "044",
"is_backup_ngn": true
}
}'
Custom Account Creation
Go beyond templates with custom accounts tailored to your specific business needs.
Planning Your Custom Structure
Before creating custom accounts, consider:
Business Requirements
- What types of transactions will you process?
- How do you want to categorize revenue streams?
- What expense categories do you need to track?
- Do you need project or customer-specific accounts?
Regulatory Requirements
- Which CBN categories apply to your business?
- What segregation is required for customer funds?
- How will you handle multi-currency operations?
- What reserves or provisions are required?
Operational Needs
- How will you reconcile with banks and partners?
- What metadata do you need for reporting?
- How will you handle different business units?
- What integration points do you have?
Custom Account Creation Workflow
curl -X POST https://api.sandbox.whocomply.com/v1/tenants/your-tenant/accounts \
-H "Authorization: Bearer your_api_key" \
-H "Content-Type: application/json" \
-d '{
"code": "1400",
"name": "Merchant Receivables",
"account_type": "asset",
"currency": "NGN"
}'
Advanced Account Features
Conditional Logic in Metadata
{
"code": "1412",
"name": "High-Risk Merchant Settlements",
"metadata": {
"risk_level": "high",
"settlement_cycle": "T+7",
"requires_manual_approval": true,
"dual_approval_required": true,
"max_daily_settlement": 100000.0,
"auto_hold_threshold": 50000.0,
"compliance_review_required": true,
"escalation_contact": "risk@yourfintech.com"
}
}
Integration-Specific Accounts
{
"code": "1501",
"name": "Paystack Integration Clearing",
"metadata": {
"integration_type": "payment_gateway",
"provider": "paystack",
"api_key_reference": "paystack_prod_key",
"webhook_url": "https://yourapi.com/webhooks/paystack",
"auto_reconciliation": true,
"reconciliation_schedule": "hourly"
}
}
Account Validation Rules
Our system validates accounts to prevent common mistakes:
- Unique codes within each tenant
- Valid parent references (parent must exist)
- Consistent account types (assets under asset parents)
- Currency consistency within account families
- Hierarchy depth limits (maximum 5 levels)
- Reserved code ranges (system accounts protected)
Testing Your Structure
curl -X GET https://api.sandbox.whocomply.com/v1/tenants/your-tenant/accounts/stats \
-H "Authorization: Bearer your_api_key"
What's Next?
You now have a solid foundation in chart of accounts design. Here's how to continue building:
Ready for Transactions
- Transaction Posting - Record debits and credits to your accounts
- Balance Updates - Automatic balance calculations with conflict resolution
- Double-Entry Validation - Ensure debits equal credits automatically
- Multi-Currency Transactions - Handle FX and currency conversions
Integration Planning
// Your chart structure is ready for this:
const transaction = {
description: 'Customer wallet funding',
lines: [
{
account_code: '1101', // Settlement Account - GTBank
debit: 50000.0,
currency: 'NGN',
},
{
account_code: '2001', // Customer Deposits - NGN
credit: 50000.0,
currency: 'NGN',
},
],
}
Additional Resources
Get Help & Stay Updated
- Email support@whocomply.com for chart design consultation
- Join beta@whocomply.com for early transaction processing access
- Follow our updates for new features and Nigerian market insights
🏗️ Your Financial Foundation is Ready! You now have the knowledge to build robust, compliant chart of accounts that will scale with your fintech business.