A journal is a balanced set of debit and credit lines, and posting it is how a value movement reaches the general ledger. Documents such as invoices, bills, payments, expense vouchers, payroll and depreciation create and post their own journals; users enter manual journals for opening balances, accruals, reclassifications and corrections. Post checks that there are at least two lines, one positive side per line, a GL account on every line, no inactive accounts, a party on every control-account line and equal totals, then resolves an Open fiscal period and Open fiscal year from the document date, stamps the totals and updates the GL and party period balances. A posted journal's lines can never change and the journal cannot be deleted; Reverse posts a mirror journal and marks the original Reversed.
Fields
| Field | Label | Type | Required | What it does |
|---|---|---|---|---|
BranchId | Branch | Lookup → Branch | Yes | Branch of the journal; the seeded New form lets you leave it empty. Lines without a branch take it on posting, and a line's branch then supplies its business unit and GST registration. The lookup is limited to the selected company's branches. Hidden when the organization runs a single location. |
BusinessUnitId | Business Unit | Lookup → BusinessUnit | Business unit of the journal, shown in the record header but on no form. On posting it fills lines that have no business unit before the branch's business unit and the GL account's Default Business Unit are tried. When lines end in two or more units and the company has an inter-business-unit clearing account, posting adds one clearing line per unit. | |
CreatedById | Created By | Lookup → UserAccount | Yes | |
CreatedDateTime | Created Date | DateAndTime | Yes | |
FiscalPeriodId | Fiscal Period | Lookup → FiscalPeriod | Yes | The fiscal period the journal posts into, assigned from the document date when the journal is first saved and assigned again on posting. Saving or posting is refused when that period or its fiscal year is not Open. If the company has no period covering the date, an April to March fiscal year with open monthly periods is created. |
Id | Id | Guid | Yes | |
JournalDate | Document Date | Date | The accounting date, defaulting to today. It decides the fiscal period and is copied to every line. The seeded future-date rule does not take effect on journals, so a future date is accepted. | |
JournalTypeName | Journal Type Name | Text | Kind of entry: Manual, DocumentPosting, OpeningBalance, Reversal, Closing, Depreciation, Payroll or Allocation. Defaults to Manual and is free text on the form. Recurring runs and some document postings also carry Manual, so use Source Entity Name to tell whether a document created the journal. A Reversal journal cannot itself be reversed. | |
Label | Label | Text | Optional display label. Reversals get Reversal of followed by the original's label or number; recurring runs get the template label and run month. | |
ModifiedById | Modified By | Lookup → UserAccount | Yes | |
Name | Name | Text, unique | Yes | The journal's document number, taken only from the tenant's active document-name setting for Journal. That setting numbers every journal, whether keyed in, produced by a document, a reversal or a recurring run. No such setting ships with xMatix, and without one journals are saved with no number. |
Narration | Narration | Text | Free-text reason for the entry, edited on the record's Details tab. Reversals made from the journal page get Reversal of followed by the original number. | |
OwnerId | Owner | Lookup → UserAccount | Yes | |
PartnerAccountId | Partner Account | Lookup → Account | Yes | Your own company, the legal entity whose ledger receives the journal, not a customer or supplier. Only active partner accounts are offered. It decides the fiscal calendar and scopes the balances. Hidden when the organization runs a single company. |
PostedById | Posted By | Lookup → UserAccount | The user who posted the journal, stamped on posting. | |
PostedDateTime | Posted Date Time | Date | When the journal was posted (UTC), stamped on posting. Use the document date, not this, for period questions. | |
PostingPurpose | Posting Purpose | Text | Set only on journals that documents create, to tell apart the several journals one document can produce, for example Invoice, InvoiceCOGS or InvoiceTcs. A reversal copies it from the original. | |
RecordTypeId | Record Type | Guid, hidden | ||
ReversalOfJournalId | Reversal Of Journal | Lookup → Journal | On a reversal journal, the journal it reverses. Set by the Reverse action, which also marks the original Reversed. | |
SourceEntityName | Source Entity Name | Text | Type of the document that produced the journal, for example Invoice or RecurringJournal. Empty on journals entered by hand. | |
SourceRecordId | Source Record | Lookup → @sourceEntityName | The document that produced the journal. Empty on journals entered by hand; a reversal copies it from the original. | |
Status | Status | Text | Draft when created; Posted only through the Post action; Reversed only through the Reverse action. PendingApproval is accepted and can be posted, but nothing seeded sets it. A journal cannot be created as Posted and its status cannot be typed in. Draft journals can be deleted; Posted and Reversed ones cannot. | |
TotalCredit | Total Credit | Calculated (calculated) | Sum of the line credits rounded to two decimals, stamped on posting and always equal to the debit total. Empty on a draft keyed in by hand. Includes any inter-business-unit clearing lines. | |
TotalDebit | Total Debit | Calculated (calculated) | Sum of the line debits rounded to two decimals, stamped on posting and always equal to the credit total. Empty on a draft keyed in by hand. | |
UIProps | UI Props | Text | ||
UpdatedDateTime | Modified Date | DateAndTime | Yes |
Actions
| Action | Label | Type | What it does |
|---|---|---|---|
BulkDelete | Delete | Delete | Delete the selected records. |
Clone | Clone | ServerAction (Clone) | Create a copy of this record |
Delete | Delete | Delete | Only works while the journal is Draft or PendingApproval. A Posted or Reversed journal cannot be deleted — the ledger is append-only — and the attempt is rejected with a prompt to reverse it instead. |
DeleteInList | Delete | Delete | Delete in a list page |
Edit | Edit | Edit | Only meaningful while the journal is Draft or PendingApproval. Once the status is Posted or Reversed the record is immutable outside the posting service, and a status change is refused with a prompt to use the reversal action. |
EditInLine | Edit | EditInline | Edit |
EditListRow | Edit | Edit | EditListRow |
New | New | New | New |
PostJournal | Post | ServerAction (PostJournal) | Posts a Draft journal: checks the lines, resolves an Open fiscal period and fiscal year from the document date, fills missing line branch, business unit and GST registration, adds inter-business-unit clearing lines where configured, stamps totals, Posted status, posting user and time, and updates the GL and party period balances in one save. Nothing is saved if any check fails. |
ReverseJournal | Reverse | ServerAction (ReverseJournal) | Creates and posts a journal of type Reversal, labelled Reversal of followed by the original's label or number and numbered by the Journal document-name setting, with every line's debit and credit swapped and Reversal Of Journal pointing at the original, then marks the original Reversed. From the journal page the reversal is dated today. Only Posted journals can be reversed, and a reversal cannot be reversed. |
Validations
| Validation | Applies to | Error message | Notes |
|---|---|---|---|
| Fiscal Period | FiscalPeriodId, Error | Fiscal Period cannot be null! | Fiscal Period cannot be null! |
| Journal Date Validation | JournalDate, Error | Document Date cannot be future date. | Document Date cannot be future date. |
Lookup filters
| Filter | Lookup field | Notes |
|---|---|---|
| Branch For Partner Account | BranchId | |
| Fiscal Period Active | FiscalPeriodId | |
| Partner Account Filter | PartnerAccountId |
Related entities
- Invoice — looks up via
SourceRecordId - ExpenseAdvance — looks up via
SourceRecordId - CompanyCard — looks up via
SourceRecordId - AssetDisposal — looks up via
SourceRecordId - PayrollStatutoryChallan — looks up via
SourceRecordId - BankTransfer — looks up via
SourceRecordId - RecurringDepreciation — looks up via
SourceRecordId - Payment — looks up via
SourceRecordId - RecurringJournal — looks up via
SourceRecordId - UserAccount — looks up via
PostedById - Branch — looks up via
BranchId - UserAccount — looks up via
CreatedById - DeliveryOrder — looks up via
SourceRecordId - GoodsReceipt — looks up via
SourceRecordId - ExpenseReimbursementBatch — looks up via
SourceRecordId - PayrollRun — looks up via
SourceRecordId - LandedCost — looks up via
SourceRecordId - Bill — looks up via
SourceRecordId - Account — looks up via
PartnerAccountId - InterestCharge — looks up via
SourceRecordId - UserAccount — looks up via
OwnerId - UserAccount — looks up via
ModifiedById - ExpenseClaim — looks up via
SourceRecordId - CreditNote — looks up via
SourceRecordId - ChequeTransaction — looks up via
SourceRecordId - FullAndFinalSettlement — looks up via
SourceRecordId - CompanyCardTransaction — looks up via
SourceRecordId - RevenueRecognitionSchedule — looks up via
SourceRecordId - PayrollPaymentBatch — looks up via
SourceRecordId - CurrencyRevaluation — looks up via
SourceRecordId - LoanAdvance — looks up via
SourceRecordId - ExpenseVoucher — looks up via
SourceRecordId - BusinessUnit — looks up via
BusinessUnitId - ExpenseAdvanceSettlement — looks up via
SourceRecordId - InventoryLedger — looks up via
SourceRecordId - Journal — looks up via
ReversalOfJournalId - FiscalPeriod — looks up via
FiscalPeriodId - DebitNote — looks up via
SourceRecordId - TdsChallan — looks up via
SourceRecordId - CompanyCardTransaction — referenced by via
GLId - ExpenseClaim — referenced by via
GLId - TdsTransaction — referenced by via
GLId - ExpenseReimbursementBatch — referenced by via
GLId - CurrencyRevaluation — referenced by via
GLId - LoanAdvance — referenced by via
GLId - AssetDisposal — referenced by via
GLId - JournalLine — referenced by via
JournalId - InventoryNrvAssessment — referenced by via
JournalId - SettlementAllocation — referenced by via
JournalId - ExpenseVoucher — referenced by via
JournalId - PayrollPaymentBatch — referenced by via
GLId - OpenTransaction — referenced by via
JournalId - PayrollRun — referenced by via
GLId - FullAndFinalSettlement — referenced by via
GLId - LandedCost — referenced by via
GLId - ExpenseAdvance — referenced by via
GLId - ExpenseAdvanceSettlement — referenced by via
JournalId - PayrollStatutoryChallan — referenced by via
GLId - BankTransfer — referenced by via
GLId - RevenueRecognitionScheduleLine — referenced by via
JournalId - Journal — referenced by via
ReversalOfJournalId - TdsChallan — referenced by via
GLId
