Invoicing & OHADA accounting
Why
Every invoice issued and every payment collected must be posted in accounting that complies with the SYSCOHADA framework, so that the company stays within its legal obligations. But that same invoice, once properly settled, is also the raw material for financing: without reliable invoicing and without accounting that is kept up to date, no file can be reviewed or analyzed further down the chain.
How, in the application
Two notions of "invoice" coexist and must not be confused. The ERP invoice (customer issuance, collection) feeds the general ledger; the invoice submitted to the financing pipeline (see the next process) is a distinct object, which can be backed by an existing ERP invoice.
Issuance. An invoice is born in DRAFT, numbered automatically, with its pre-tax/VAT/total amounts calculated line by line. Sending it moves it to SENT, triggers a summary e-mail, and, for a French tenant or customer, submits it to the e-invoicing partner (PDP). The statuses that follow: PARTIALLY_PAID, PAID, OVERDUE, CANCELLED, or FINANCING_REQUESTED when financing is engaged on that invoice.
Collection. A payment is refused if the invoice is already cancelled, already settled, or already engaged in a financing, or if the amount is zero or exceeds the balance due. Each collection recalculates the invoice's status.
Posting. The SYSCOHADA reference (full chart of accounts, classes 1 to 9) is maintained by a dedicated service, which also maintains a parallel general chart of accounts (PCG) for French tenants. Posting an invoice to the accounts (debiting the customer account 411, crediting the sales and output-VAT accounts) is an action triggered by an authorized accountant — it is not automatic at invoice issuance or sending.
Accounting periods. Each period follows a strict three-status cycle: OPEN, CLOSED, LOCKED. A period can only be locked if it has first been closed — there is no shortcut from OPEN to LOCKED. Closing can generate closing entries (settling expense and revenue accounts to the income-statement account).
Reconciliation. Matching the debit and credit lines of a single account (customer 411, supplier 401) is done by pairing identical amounts — the oldest unreconciled debit line with an unreconciled credit line of the same amount — and produces a sequential matching code. An invoice fully settled through this matching moves to FULLY_LETTERED, a partial match to PARTIALLY_LETTERED. This accounting reconciliation is a process distinct from the reconciliation of institutional financing movements (see process 7), which compares facility balances rather than account entries.

Safeguards
- An accounting entry can never be created or modified in a
CLOSEDorLOCKEDperiod — any correction requires a reversing entry in the next open period, never an in-place edit. - On an existing entry, only the label and the account can be corrected; amounts are immutable once posted — this is the OHADA audit guarantee.
- Closing or locking a period, as well as triggering an invoice's posting, are actions reserved for accounting and administration roles — never accessible to a standard ERP user.
- An entry can never be created with a zero sum, and the engine rejects any entry where debit and credit do not balance.