Learning contextDemo Retail Group LLC12 stores · 2 distribution centres · AED/SAR/USD · omnichannel replenishmentChange scenario details →
Skip to content

Journal Entry field guide ​

The journal entry is OSERP’s controlled bridge between an operational event and the general ledger. A good entry explains who created it, why it exists, which period and company it belongs to, what source document caused it, and how every debit and credit balances. Use Demo Retail Group LLC and fiscal period 2026-09 while practising.

Header fields ​

Open Finance → Journal Entry → New. Complete the header before entering lines.

FieldExamplePurpose and impact
Journal numberJE-2026-009841Unique audit and API key
CompanyDemo Retail Group LLCLegal ledger boundary
BranchDXB-MAINResponsibility and reporting
Posting date2026-09-30Ledger and tax period
Document date2026-09-29Source-event date
Journal typeAccrual / adjustmentWorkflow and report classification
Source moduleInventory receiptOperational drill-down
Source IDGRN-0041Link to originating document
CurrencyAEDTransaction currency
Exchange rate3.6725Functional-currency conversion
ReferenceSeptember landed costSearch and reconciliation
Reversal date2026-10-01Automatic reversal scheduling
StatusDraft / approved / postedPosting gate

Posting date determines the period and lock rules. Document date explains when the business event occurred. A backdated posting after close needs controlled reopen or an adjustment period, never a silent date edit.

Line fields ​

Each debit or credit line requires account, amount, currency, description, dimensions, tax where relevant, and source allocation.

FieldExampleImpact
Account131100 Medicines inventoryLedger classification
Debit7,200.00Increase asset/expense or reduce liability/revenue
Credit0.00Opposite balance effect
Foreign amount1,960.84 USDTransaction-currency evidence
Rate3.6725Functional conversion
DescriptionGRN-0041 landed costAudit explanation
Cost centreDXB-COLDDepartment responsibility
Project/WBSPRK-2026Project margin and budget
WarehouseDXB-FC-01Inventory reconciliation
Tax codeSTANDARDTax reporting
PartnerNovaBio GmbHSubledger control
Due date2026-10-31Payable/receivable ageing

Debit and credit amounts must not both be populated on one line unless the API contract explicitly supports signed amounts. The entry total must balance in functional currency and, where required, in transaction currency.

Dimensions and subledgers ​

Dimensions add management meaning without creating an account for every branch or product. Common dimensions are company, branch, department, cost centre, project, WBS, warehouse, item, batch, partner, salesperson, fund, grant, and channel. Required dimensions are configured by account and source module.

An inventory receipt may require company, warehouse, item category, and batch. A project invoice may require project, WBS, customer, and tax jurisdiction. A general overhead line may require department but not warehouse. Missing dimensions should create a validation message naming the field and policy.

Partner, inventory, tax, fixed-asset, and payroll subledgers must reconcile to their control accounts. Do not post directly to a control account to hide an unresolved subledger difference unless an approved reconciliation adjustment explains it.

Balancing and validation ​

Before approval OSERP validates debits equal credits, account active status, period open, company scope, currency rate, tax code, required dimensions, partner role, source status, duplicate reference, and permission. A journal with one debit AED 10,000 and credits AED 6,000 and AED 4,000 balances; one with AED 9,999.99 does not.

Use a suspense account only under documented policy with owner, ageing, reason, and clearing deadline. A balanced journal can still be wrong if the account, company, period, tax, or dimension is wrong.

Accruals and reversals ​

An accrual header records estimate, source, period, owner, basis, amount, and reversal date. For AED 50,000 unbilled freight, debit landed cost or inventory and credit accrued liability on 30 September; reverse on 1 October. When the supplier invoice arrives, match and clear the accrual rather than creating duplicate expense.

Reversal entries reference original journal, reversal reason, date, and approver. A user must not delete a posted accrual. If the estimate changes, post a delta adjustment with evidence.

Allocations and recurring journals ​

An allocation rule stores source amount, basis, target dimensions, effective dates, rounding, owner, and approval. Allocate AED 120,000 rent by floor area: DXB 60%, AUH 25%, and AIN 15%. The generated lines total exactly AED 120,000; any rounding difference goes to a configured account with explanation.

Recurring journals record template, frequency, start/end, account lines, dimensions, currency, approval, and next run. Generated entries remain individually reviewable. A failed recurring run creates an exception; it does not silently skip a period.

Tax and withholding ​

Tax fields include tax code, taxable base, rate, tax amount, jurisdiction, exemption, withholding class, and certificate. Tax on a journal is allowed only where policy supports manual tax postings. Source invoices and returns remain authoritative for most transactional tax.

Withholding entries record partner, base, rate, authority, certificate, and payment reference. A manual tax override requires permission, reason, and audit event. Tax reports reconcile journal tax lines to source documents and statutory returns.

Foreign currency ​

For a USD invoice of 1,000 at rate 3.6725, functional value is AED 3,672.50. Store transaction amount, functional amount, rate source, rate date, and currency. Settlement at another rate posts realised FX; month-end revaluation posts unrealised FX for open balances. Never edit the original rate to make a later payment agree.

Approval and posting ​

Approval policy may depend on amount, journal type, account, source, fund, or user. The approval event records reviewer, timestamp, decision, comment, and version. Posting assigns immutable number, updates ledger, writes audit event, and triggers downstream reports or webhooks.

A rejected journal returns to draft with reason. A posted journal is corrected by reversal and replacement or an approved adjustment, not by editing history. Period locks prevent posting into a closed period.

API and audit mapping ​

API creation should include company, posting date, currency, source type/ID, idempotency key, and explicit lines. Use decimal strings for money when required. The response should return journal ID, number, status, totals, and correlation ID. A timeout is retried with the same idempotency key.

json
{"companyId":"company_uae","postingDate":"2026-09-30","currency":"AED",
 "source":{"type":"LANDED_COST","id":"LC-0041"},
 "lines":[
  {"accountId":"131100","debit":"7200.00","costCentre":"DXB-COLD"},
  {"accountId":"211400","credit":"7200.00","partnerId":"supplier_novabio"}
 ]}

Audit evidence includes creator, approver, poster, old/new values, source, request ID, correlation ID, IP or session reference where available, and reversal relationship. Redact credentials and sensitive partner data in support logs.

Practice checklist ​

Create a balanced landed-cost journal, add required dimensions, schedule an accrual reversal, allocate rent, post a USD supplier entry, revalue an open payable, reject a missing-dimension journal, and correct a posted error through reversal. Explain every field’s owner, format or precision, status, permission, source, tax, currency, and report impact.

Related: Accounting, Advanced GL Mapping, Inventory field guide, API cookbook, and Month-end close.

Journal-entry implementation worksheet ​

AreaFieldExampleAcceptance evidence
ScopeCompany/book/branchDGV UAE / IFRS / DubaiCorrect legal and reporting boundary
DatesPosting/document/reversal30 Sep / 29 Sep / 1 OctPeriod and source dates differ correctly
SourceModule and source IDLanded cost / LC-0041Drill-down reaches originating event
HeaderType/referenceAccrual / September freightSearch and reporting classification
LinesAccount/side/amountDr inventory AED 7,200Debit-credit and precision pass
DimensionsCost centre/project/warehouseDXB-COLD / PRK-2026Ownership is complete
TaxCode/base/rateImport / policy basisReturn and source reconcile
ApprovalReviewer/version/commentFinance Manager / V3Maker-checker evidence
PostingNumber/status/correlationJE-009841 / postedImmutable ledger result

Journal test pack ​

Run a balanced entry, an unbalanced entry, an inactive-account entry, a missing-dimension entry, a closed-period entry, a duplicate source reference, a foreign-currency entry without a rate, a tax override without evidence, and a posted-entry correction. The expected refusal must occur before any ledger line or downstream webhook is created. Save request ID, response, user, timestamp, and audit event for each case.

For a landed-cost accrual of AED 50,000, post Dr inventory or freight-in AED 50,000 and Cr accrued liability AED 50,000 on 30 September. Schedule a reversal on 1 October. When the supplier invoice arrives, match it to the accrual and clear the liability. If the invoice is AED 51,200, post the AED 1,200 delta with source and approval rather than creating a second AED 51,200 expense.

Reconciliation by dimension ​

Reconcile the journal ledger to each subledger by company, branch, account, currency, period, and source. Inventory control must agree to item/warehouse/batch value; AR and AP controls must agree to open partner balances; tax accounts must agree to source documents and returns; fixed assets must agree to the asset register; payroll must agree to approved payroll batches. A control-account adjustment without a subledger explanation is an exception, not a reconciliation.

API safeguards ​

Use an idempotency key per intended journal, not per HTTP retry. Require tenant/company scope server-side and reject client attempts to post to another company. Validate decimal strings, currency precision, account status, period, dimensions, source ownership, and balanced totals before persistence. Return a correlation ID that links API request, journal, audit event, and webhook. A duplicate request returns the original journal; a changed payload with the same key returns a conflict.

OSERP™ Atlas · Understand every field. Master every workflow.