Appearance
Chart of Accounts
The Chart of Accounts (COA) is the complete list of GL accounts used to record financial transactions. PinkApple uses a structured, hierarchical COA with automatic GL code generation.
Navigation: Administration → Accounting → Chart of Accounts
COA Hierarchy
The chart of accounts is built in layers. Each layer adds specificity:
Foundation Account Details (system-seeded, 7 types)
└── GL Code Template (defines code pattern per foundation)
└── Major Account Header (first grouping level)
└── Account Header (second grouping level)
└── Chart of Account (the actual ledger account)
└── Sub-Ledger (optional granular tracking)Level 1: Foundation Accounts
Foundation accounts are pre-seeded by the system and cannot be modified. They represent the fundamental accounting categories:
| Prefix | Type | Normal Balance | Financial Statement |
|---|---|---|---|
| 1 | Asset | Debit | Balance Sheet |
| 2 | Liability | Credit | Balance Sheet |
| 3 | Equity | Credit | Balance Sheet |
| 4 | Income | Credit | Profit & Loss |
| 5 | Expense | Debit | Profit & Loss |
| 6 | Contingent Asset | Debit | Balance Sheet |
| 7 | Contingent Liability | Credit | Balance Sheet |
Level 2: GL Code Templates
A GL code template defines the segment pattern for generating GL codes under a foundation. Each foundation has one template.
| Field | Description |
|---|---|
| Template Name | e.g., "ASSET-TPL" |
| Foundation | The foundation this template belongs to |
| Pattern | The code generation pattern (e.g., {FOUNDATION}-{SEGMENT}) |
| Delimiter | Character separating code segments (typically -) |
INFO
GL code templates are typically set up once during initial configuration and rarely changed afterward. They ensure consistent GL code formatting across all accounts.
Level 3: Major Account Headers
Major account headers are the first level of user-defined grouping within a foundation.
Examples under the Asset foundation:
| GL Code | Major Account Name |
|---|---|
| 11 | Cash & Bank Balances |
| 12 | Loans & Advances |
| 13 | Fixed Assets |
| 14 | Other Assets |
Creating a Major Account Header
- Click Create on the Major Account Headers section
- Fill in the form:
| Field | Description | Required |
|---|---|---|
| Major Account Name | Descriptive name | Yes |
| Foundation | The parent foundation type | Yes |
| Segment Code | The 2-digit segment code (e.g., "11") | Yes |
| Description | Optional description | No |
- Submit the form
Level 4: Account Headers
Account headers provide the second level of grouping, sitting below major account headers.
Examples under "Cash & Bank Balances" (11):
| GL Code | Account Header Name |
|---|---|
| 1100 | Cash on Hand |
| 1110 | Bank Current Accounts |
| 1120 | Bank Savings Accounts |
| 1130 | Short-term Deposits |
Creating an Account Header
- Click Create on the Account Headers section
- Fill in the form:
| Field | Description | Required |
|---|---|---|
| Account Header Name | Descriptive name | Yes |
| Major Account | The parent major account header | Yes |
| Segment Code | The 4-digit segment code (e.g., "1100") | Yes |
| Description | Optional description | No |
- Submit the form
Level 5: Chart of Account (Leaf Accounts)
These are the actual GL accounts where transactions are posted. Each leaf account sits under an account header.
Examples under "Cash on Hand" (1100):
| Full GL Code | Account Name | Currency |
|---|---|---|
| 1100-110 | Cash on Hand — UGX | UGX |
| 1100-120 | Cash on Hand — USD | USD |
Creating a Chart of Account Entry
- Click Create on the Chart of Accounts section
- Fill in the form:
| Field | Description | Required |
|---|---|---|
| Account Name | Descriptive name | Yes |
| Account Header | The parent account header | Yes |
| Segment Code | The leaf segment code | Yes |
| Currency | The currency for this account | Yes |
| Contra Status | Whether this is a contra account | No |
| Description | Optional description | No |
- Submit the form
The full GL code is automatically generated by combining the codes from each level using the GL code template pattern. For example: 1100-110 (Account Header 1100 + delimiter - + segment 110).
Level 6: Sub-Ledgers
Sub-ledgers provide the most granular tracking beneath a COA account. They represent individual parties, products, tills, or other trackable entities.
| Sub-Ledger Class | Use Case |
|---|---|
| PARTY_CONTROL | Per-client balances (e.g., individual loan receivables) |
| PRODUCT | Per-product tracking |
| TILL | Per-till cash tracking |
| BANK | Per-bank-account tracking |
| VENDOR | Per-vendor payables |
| CUSTOMER | Per-customer receivables |
| STAFF | Per-employee tracking |
| INTERNAL | Internal reconciliation accounts |
TIP
Sub-ledgers are often created automatically by the system when domain objects (loan accounts, deposit accounts) are linked to GL accounts. Manual creation is also supported for custom tracking needs.
COA Page Layout
The Chart of Accounts page presents the hierarchy in an interactive table view:
- Tree view — Expand/collapse the hierarchy to see accounts at each level
- Search — Filter accounts by name, code, or type
- Filters — Filter by foundation, currency, or status
- Bulk actions — Approve or delete multiple accounts at once
Approval Workflow
New COA entries go through an approval process:
- Created — Entry is saved as draft
- Pending Approval — Submitted for review
- Approved — Ready for use in transactions and rules
- Rejected — Sent back for correction
Only approved COA entries can be used in GL posting rules and journal entries.
Best Practices
- Plan before creating — Design your COA structure on paper before entering it into the system
- Use consistent naming — Follow a naming convention (e.g., "Cash on Hand — {Currency}")
- Keep it flat where possible — Don't create unnecessary hierarchy levels
- Use sub-ledgers for granularity — Rather than creating hundreds of COA accounts, use sub-ledgers for per-client or per-product tracking
- Document your codes — Keep a reference document mapping GL codes to their business purpose
Next Steps
- GL Posting Rules — Define how transactions map to these accounts
- GL Rule Details — Configure the debit/credit lines
