# README

## Overview

The Chart of Accounts (CoA) Management module owns the minimal accounting master data needed for posting: company-scoped GL accounts.

The module deliberately does not model account groups, account hierarchies, ledger books, tax defaults, reconciliation policy, currency restrictions, or control-account semantics. Those are downstream posting, reporting, localization, or application configuration concerns.

## Key Features

- **[Account Management](docs/feature/account-management.md)**: Create, update, deactivate, reactivate, retrieve, and list company-scoped GL accounts with only code, name, type, company scope, and status

## Module Scope

### In Scope

- GL account master data with structured account code
- Company-scoped account lists
- Account type classification: ASSET, LIABILITY, EQUITY, REVENUE, EXPENSE
- ACTIVE / INACTIVE account lifecycle

### Out of Scope

- Account groups, parent/child account trees, and number-range enforcement
- AP/AR/bank/control-account semantics
- Reconciliation and open-item management
- Tax code defaults and tax validation
- Per-account currency restrictions
- Ledger/book/multi-GAAP accounting
- Posting, journal entries, balances, and financial reports
- Country-specific CoA template catalog ownership

### Scope Decision Rationale

This module is intentionally limited to the account identifiers that posting modules need. Account grouping, reporting layout, control-account policy, reconciliation, and tax defaults are useful configuration, but they are not required to define whether an account exists and can be referenced. Keeping them out preserves an Odoo-style model where the company's flat account list is the chart of accounts.

## Module Dependencies

- [organization](../organization/README.md) — Company reference for account scoping
- [audit](../audit/README.md) — Audit trail for account master data changes
