Period close
The general ledger runs real accounting periods: they open, they close, and they lock. A closed period rejects new postings; a locked one rejects reopening. This is the workflow for month-end, and the order matters because a close is a one-way gate for everything upstream of it.The period lifecycle
The close, in order
1 — Sweep unposted entries
POST /api/v1/gl/journal-entries/{id}/post) or voided
(/{id}/void). A draft left behind is a number that changes after you’ve reported it.
2 — Revalue foreign currency
3 — Reconcile the subledgers
The AR and AP views must agree with their control accounts:4 — Review the trial balance
5 — Close
The admin console runs this same close as a
dry run first with a per-step report, and requires typed confirmation for the real one.
Per-item failures do not abort a close — read the report rather than assuming success. If you close
via API, mirror that: check the response’s per-step results, not just the status code.
6 — Report, then lock
The correction that arrives late
An invoice for June surfaces in July, after the close:- June closed but not locked — reopen, post, re-close. Cheap now, impossible later.
- June locked — post to July with a memo referencing the June document. Do not be tempted by
reverseon old entries to “make room”:POST /api/v1/gl/journal-entries/{id}/reversecreates the reversal in the current period, which is correct behaviour — it will not un-happen June.
Related
- Order to cash — where the AR entries come from
- Procure to pay — where the AP entries come from
- General ledger reference