Mosce ERP · Help Center
Accounting

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-entry permission 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.currentBalance and 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

  1. Go to Accounting → Journal entries → New journal entry.
  2. 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

  1. Press Add line at least twice - the journal entry needs a minimum of two lines.
  2. 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.
  3. 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), marks postedBy, 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

  1. Open the journal entry detail and press Reverse entry.
  2. Enter the reason for the reversal (it stays in the counterpart entry's description).
  3. Decide whether you want to Post reversal immediately or leave it in draft to adjust before posting.
  4. Confirm. Mosce ERP creates a new JournalEntry with inverted debits and credits, links it to the original with reversesEntryId and, 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.currentBalance reconcile with the reports (Trial balance, General ledger).
  • Automatic journal entries are linked to their originating entity for auditing.

Common errors

ErrorCauseSolution
JE_UNBALANCEDTotal debit ≠ total creditReview the bottom bar and adjust amounts
JE_PERIOD_CLOSEDThe journal entry's period is already closedChange the date to an open period or reopen the period
JE_ALREADY_POSTEDYou tried to post a journal entry that is already postedReload the list; another user may have posted it
JE_NOT_POSTEDYou tried to reverse a draft journal entryDelete the draft instead of reversing it
I cannot edit a journal entry generated by a saleAutomatic and immutable sourceIf you need to correct it, reverse it and create a manual one with the adjustment