Journal entries
Record manual movements, review the automatic journal entries generated by operations, and edit or reverse entries.
A journal entry is the minimum unit of the general ledger: a balanced group of debit and credit lines that affects one or more accounts. Mosce ERP lets you record manual journal entries (adjustments, accruals, reclassifications) and consumes your daily operations to emit automatic journal entries. This guide covers the full life cycle: draft, posting, editing, and reversal.
Reading time: ~7 min
When to use this
- Your accountant needs to pass a manual adjustment at month-end close.
- You want to audit the journal entry generated when billing a sale or recording a supplier invoice.
- You have to reverse an incorrectly recorded journal entry.
- You are learning how Mosce ERP translates operations into double-entry postings.
Before you start
- The Accounting module must be active.
- There is an open Fiscal period covering the journal entry date. Without an open period the system rejects the posting with
JE_PERIOD_CLOSED. - Your role includes the
accounting:journal-entrypermission to create, edit, or post journal entries. - The accounts you are going to use are active in the Chart of accounts.
Journal entry states
Each JournalEntry passes through one of three states:
- Draft (DRAFT): mutable. You can edit lines, date, description, and reassign the period. It does not move balances yet.
- Posted (POSTED): immutable. It materializes the balances in
Account.currentBalanceand becomes unalterable. The only way out is to reverse it. - Reversed (REVERSED): terminal state. The original journal entry is kept, but a counterpart entry exists that neutralizes its effect.
Step by step - manual journal entry
1. Create the journal entry
- Go to Accounting → Journal entries → New journal entry.
- Complete the header:
- Date of the journal entry.
- Fiscal period (Mosce ERP suggests the one covering the date; you can change it if it overlaps).
- Mandatory description.
- Optional reference (external voucher number, e.g.
AJ-2026-001).
2. Load the lines
- Press Add line at least twice - the journal entry needs a minimum of two lines.
- On each line choose:
- Account (selector with search by code or name).
- Optional cost center for analytical segmentation.
- Debit or Credit - never both at the same time. The validator rejects both at zero or both with a value.
- Optional line description.
- The bottom bar shows Total debits, Total credits, and a Balanced / unbalanced entry indicator. You will not be able to save until both sums are equal.
3. Save and post
- Save leaves the journal entry in Draft state. Useful if you need to review it with another person.
- From the detail, press Post to confirm. Mosce ERP validates balance, open period, and active accounts within a transaction and, if everything ties out, assigns a sequential number (
JE-000123), markspostedBy, and updates the balances of the affected accounts.
Automatic journal entries
Mosce ERP emits journal entries without manual intervention when these operations occur (the journal entry's source field):
- ORDER_BILLED: a sale is billed - debit to Accounts receivable, credit to Sales and ITBIS payable.
- ORDER_PAID: an invoice is collected - debit to Cash / Bank, credit to Accounts receivable.
- PURCHASE_RECEIVED: a purchase is received and a supplier invoice is recorded.
- REFUND: a credit note or return is applied.
- DEPRECIATION: monthly depreciation run of fixed assets.
- YEAR_END_CLOSE: annual closing journal entry when closing the last period of the fiscal year.
- TEMPLATE: journal entry created from a template.
These journal entries reach the list in Posted state directly - they do not go through draft. You can filter them by Source and open the detail to see the originating entity (order, invoice, asset) with the View originating entity button.
List filters
The main screen Accounting → Journal entries brings collapsible filters to combine:
- Period and From / To range.
- State (Draft, Posted, Reversed).
- Source (Manual, invoice, depreciation, closing, template).
- Specific Account and Cost center.
Pagination is cursor-based: use Next page and First page to navigate.
Edit and delete drafts
While the journal entry is in Draft:
- Edit: modify date, description, lines, and period. The validator re-runs each time you save.
- Delete: disappears from the system. Useful for discarding experimental drafts.
Journal entries in Posted or Reversed state are neither edited nor deleted.
Reverse a posted journal entry
- Open the journal entry detail and press Reverse entry.
- Enter the reason for the reversal (it stays in the counterpart entry's description).
- Decide whether you want to Post reversal immediately or leave it in draft to adjust before posting.
- Confirm. Mosce ERP creates a new
JournalEntrywith inverted debits and credits, links it to the original withreversesEntryIdand, if you enabled the flag, posts it instantly. The original journal entry changes to Reversed state.
Expected result
- Your general ledger reflects all accounting operations of the period.
- The balances in
Account.currentBalancereconcile with the reports (Trial balance, General ledger). - Automatic journal entries are linked to their originating entity for auditing.
Common errors
| Error | Cause | Solution |
|---|---|---|
JE_UNBALANCED | Total debit ≠ total credit | Review the bottom bar and adjust amounts |
JE_PERIOD_CLOSED | The journal entry's period is already closed | Change the date to an open period or reopen the period |
JE_ALREADY_POSTED | You tried to post a journal entry that is already posted | Reload the list; another user may have posted it |
JE_NOT_POSTED | You tried to reverse a draft journal entry | Delete the draft instead of reversing it |
| I cannot edit a journal entry generated by a sale | Automatic and immutable source | If you need to correct it, reverse it and create a manual one with the adjustment |