One platform for finance, people, sales, operations, fleet, commerce, and BI.
XOERP
Let's meet

General Ledger

Set up your chart of accounts, post journal entries, and keep a real-time, always-balanced ledger in XO Books.

Updated February 11, 2026

The Ledger is the heart of XO Books. Every invoice, payment, payroll run, and stock movement across XO ends up here as a balanced double-entry posting — in real time, with no month-end batch. This guide walks you through structuring your chart of accounts, recording entries, and the controls that keep your books audit-ready.

Who this is for: finance owners and accountants setting up XO Books for the first time, or migrating from spreadsheets, Qoyod, Wafeq, or a legacy ERP.

Before you begin

  • Make sure your organization, branches, and financial year are configured in XO Core → Org. The ledger inherits its currency and fiscal calendar from there.
  • Decide your base currency (usually SAR). Foreign-currency accounts can be added later.
  • If you’re migrating, export your existing chart of accounts and trial balance to Excel — you’ll import them in the steps below.

How the XO ledger works

  • Real-time & always balanced. Postings are double-entry; XO blocks any entry whose debits and credits don’t match, so your trial balance is correct at every moment.
  • Up to 7 levels. Accounts nest from 1-digit roots down to detailed sub-accounts.
  • Dimensions, not extra accounts. Tag a single account with cost center, project, branch, or location instead of duplicating accounts per branch — reporting stays clean.
  • One ledger, many sources. Sales, Purchasing, Payroll, Assets, and Inventory post here automatically; you rarely hand-key routine activity.

Set up your chart of accounts

Navigate to XO Books → Ledger → Chart of Accounts. You have three ways to build it.

  1. Open Chart of Accounts.
  2. Click Use a template.
  3. Choose the Saudi SMB (ZATCA-ready) template — pre-built with the five roots (Assets, Liabilities, Equity, Revenue, Expenses), VAT control accounts, Zakat, and GOSI payable.
  4. Review the suggested accounts and click Apply.

📷 Screenshot: the template picker with the Saudi SMB chart selected.

Method 2 — Add an account manually

  1. Click Add account.
  2. Select the parent account (e.g. 1102 Cash at Bank).
  3. Choose the account type (e.g. Bank, Receivable, Fixed Asset).
  4. Enter the account name in Arabic and English.
  5. Enter the account code. XO suggests a unique code that matches the parent’s structure — accept it or edit it, as long as it stays unique.
  6. (Optional) Add a description.
  7. Enable Payable / Receivable if the account settles against a customer or supplier.
  8. Click Save.

Quick add a sub-account: click the + beside any account, fill the fields, and Continue — the new account is nested under that parent automatically.

Method 3 — Import from Excel

  1. From the top bar, click Import → Download template.
  2. Fill in code, name (AR/EN), type, and parent for each account.
  3. Upload the completed file under Import → Upload.
  4. Review the validation summary, then Confirm import.

Account coding

XO follows a numeric hierarchy — a sub-account’s code always begins with its parent’s code:

LevelDigitsExample
1 — Roots11 Assets · 2 Liabilities · 3 Equity · 4 Revenue · 5 Expenses
2 — Groups211 Current Assets · 12 Non-current Assets
3 — Accounts41101 Cash & equivalents · 1102 Cash at bank
4+ — Sub-accounts6+110201 Al Rajhi · 110202 SNB

Note: an account flagged Payable/Receivable can’t have sub-accounts beneath it.

Record a journal entry

Go to XO Books → Ledger → Journal Entries → New entry.

Simple entry (one debit, one credit)

  1. Pick the date.
  2. Choose the from and to accounts.
  3. Enter the amount and a description.
  4. Click Post.

Manual multi-line entry

  1. Click New entry → Multi-line.
  2. Add a row per account, entering debit or credit on each.
  3. Watch the running balance indicator — XO won’t let you post until debits equal credits.
  4. Attach supporting documents (PDF/image) if needed.
  5. (Optional) tag each line with a cost center, project, or branch (see Dimensions below).
  6. Save as draft to route for approval, or Post directly if you have permission.

📷 Screenshot: a balanced multi-line entry showing the green “Balanced” indicator.

Recurring & deferred entries

  • Recurring: for fixed monthly postings (rent, depreciation accruals). Create the entry, toggle Make recurring, set the frequency and end date. XO posts each period automatically.
  • Deferred revenue/expense: use a deferral template to spread an amount across future months (e.g. a 12-month prepaid insurance). XO generates the schedule and posts each tranche.

Tag entries with dimensions

Dimensions let one account report across many views without bloating the chart.

  1. In XO Core → Org, define your cost centers, projects, and locations.
  2. On any journal line (or source document), pick the relevant dimension(s).
  3. Report by dimension in XO Analytics → Reports (e.g. P&L by project).

Approval workflow

For controlled environments, route entries before they hit the ledger:

  1. In XO Core → Workflow, enable Journal approval.
  2. Set the cycle: Draft → Pending → Posted, with approvers and thresholds.
  3. Creators Save as draft; approvers review under Ledger → Pending and Approve or Return with a comment.

Enter opening balances

When going live mid-year:

  1. Go to Ledger → Opening Balances.
  2. Enter balances for accounts, then the sub-ledgers (customers, suppliers, products, assets).
  3. XO posts the offset to the Opening Balance Equity account and flags any imbalance to resolve.

Note: opening entries are locked once the period is closed — review carefully before closing.

Best practices

  • Keep the chart shallow and reusable — push detail into dimensions, not new accounts.
  • Lock each period in XO Core → Org → Period locking after reconciliation to prevent back-dated edits.
  • Use recurring entries for accruals so nothing is forgotten at month-end.
  • Reconcile bank and control accounts monthly (see Banking).

Troubleshooting

  • “This entry isn’t balanced.” Debits ≠ credits — check the balance indicator before posting.
  • An account doesn’t appear when posting. It may be archived, or flagged Payable/Receivable (which requires selecting the customer/supplier). Re-check the account settings.
  • Can’t edit a posted entry. The period is likely closed, or your role is create-only. Reopen the period (admin) or request edit permission.