A GL account is one line of a company's chart of accounts: the place every journal line debits or credits, and the unit every financial statement adds up. Each account belongs to exactly one company. Its type decides which documents can find it automatically, its classification decides where its balance appears on the statements, and its control settings decide whether postings to it must name a customer or supplier. You set the chart up once per company, before the first invoice, bill or payment posts. After that, you add an account now and then, retire ones you no longer use, and read balances from the ledger screens.
Overview
The GL accounts list lives in the Finance app. A company usually gets its first chart automatically, from a chart template when an administrator enables finance for the company. Most of the work after that is adjusting the chart to the business: adding accounts, setting the statement classification, and tagging the control accounts the posting services look for.
Documents rarely ask you to pick a GL account. Invoices, bills, payments and other documents find their accounts through posting definitions, and fall back to the account type when no definition matches. See Chart of accounts, books and periods for how those pieces fit together.
When to use it
- Setting up a new company — review the seeded chart, add what is missing, and tag the control accounts before going live.
- Adding an account — a new expense head, a second bank account, a separate income stream.
- Fixing statement placement — an account appears under the wrong heading on the Balance Sheet or P&L.
- Retiring an account — stop new postings to it while keeping its history.
- Investigating a balance — see every posted line behind an account's figure for a date range.
How xMatix handles it
- One company per account. Every account carries a Partner Account — the company that owns it. Account lookups, control-account lookups and the GL Account Ledger all work within one company, so two companies never share an account.
- Account Type drives automatic account choice. When a document line has no matching posting definition, posting looks for an account of the required type in the document's company. It prefers one whose Branch matches the document's branch. Several types are treated as the same during this lookup: Tax Payable is treated as Other Current Liability, Service Income and Other Income as Sales, Purchases as Cost Of Goods Sold, and Rent Expense, Salaries and Employee Wages and General and Administrative Expense all as Expense. Use a posting definition when you need to target one of those accounts specifically.
- Schedule III Classification drives statement placement. The statements place an account by its Schedule III Classification. When that is blank, they derive a classification from the Account Type. Posting Type does not change where anything posts or appears.
- Control accounts demand a party. When Is Control Account is ticked, posting refuses any journal line on the account that has no party (customer or supplier), and keeps a balance per party for the subledger.
- Control Type lets features find an account. Withholding tax, payroll, expenses, company cards and inter-business-unit clearing each look up "the account of control type X" for the company. If none is tagged, the posting stops with a message naming the missing control account.
- Inactive accounts block posting. A journal line on an account whose Is Active is cleared fails to post. An account where the flag was never set is treated as active.
- Default dimensions. A transaction or journal line that leaves its branch empty inherits the account's Branch. The account's Default Business Unit is used only as a last resort, after the line, the journal header and the branch have all failed to supply a business unit.
- Hierarchy for reporting only. An account can have a parent account so the grouped statements roll it up. Posting always goes to the account named on the line, never to its parent.
Prerequisites
- The company exists as an onboarded company. See Tenants and companies.
- You can see the GL Accounts list in the Finance app and have create or edit access to it (see Permissions).
- To seed a chart from a template, you need access to Setup → Feature Hub → Administration → Org Settings → Companies.
Procedure
Step 1 — Seed the company's chart
- Go to Setup → Feature Hub → Administration → Org Settings and open the Companies list.
- On the company's row, click Enable finance. The button only shows while finance is still off for that company.
- In the Enable finance dialog, pick a template from Select a COA template. The list shows each template's name, country and version — for example India — SMB (Services / General) or India — Trading (Goods / Inventory).
- Click Seed Chart of Accounts.
You see "Finance enabled — Chart of Accounts seeded". The company's Finance column now shows the template, GL posting is turned on for the company, and the template's accounts appear in GL Accounts. They come with their codes and Schedule III classifications filled in, and the template's control accounts tagged. Accounts whose Account Code already exists for the company are skipped, so running it again only adds what is missing.
Step 2 — Find an account
- In the Finance app, open GL Accounts. The default view, Chart Of Accounts, shows GL Account Name, Partner Account, Account Number, Account Type, Posting Type, Control Type, Account Balance and Branch.
- Search by name, or filter on Partner Account to see one company's chart.
- Click an account's name to open it.
Step 3 — Create an account
- In GL Accounts, click New.
- Enter a Name. It is required.
- Choose the Account Type (required), and enter an Account Code if your chart uses codes.
- Set Schedule III Classification if the account must appear under a heading other than the one its type implies. Leave it blank to use the type's default.
- Set Control Type only for an account a feature looks up by control type (see Configuration).
- If you chose Tax Payable, Tax Credit or Other Current Liability, the Sub Type field appears. Pick the tax component (CGST, SGST, IGST, UTGST, Cess, VAT, TDS or TCS) when this account holds one component only.
- Leave Is Active ticked.
- Open the System Details tab and choose the Partner Account — the company that owns the account. It is required, and only active companies are offered. Optionally choose a Branch (only the selected company's branches are offered) and a Default Business Unit.
- Save.
The account is immediately available to posting definitions, journal lines and type-based account lookups for that company.
Step 4 — Mark a control account
Is Control Account is not on the New or Edit form. It appears on the account's record page, in the Applicability section of the Details tab. There are three ways to set it:
- Use a chart template. Accounts seeded by Enable finance already have it ticked on the receivables and payables controls.
- Run Seed Classifications on a fiscal year of the company (see Fiscal years and periods). It ticks the box on every Accounts Receivable and Accounts Payable account of that company that does not have it yet.
- Set it by hand. If your layout lets you change the field on the record page, tick it there and save. If it does not, ask your administrator to add Is Control Account to the GL account form layout.
Once it is ticked, every journal line on this account must carry a party. Tick it only for customer and supplier controls — receivables and payables. Leave it cleared for tax, withholding, payroll and employee accounts, whose counterpart is not a customer or supplier.
Step 5 — Change or retire an account
- Open the account and click Edit. The edit dialog has the same tabs and fields as the create form.
- Change what you need. If the account has a parent or children, the new type or classification must stay in the same statement section (see Business rules).
- To stop postings to the account, clear Is Active and save. Any later journal line that names it fails to post, with a message telling you to update the posting definition or journal line.
Clearing Is Active keeps the account and its history. Before you do, repoint any posting definition that uses the account, or documents relying on it will stop posting.
Step 6 — Read the account's ledger
- Open the account. Its record page has Journals, Balances and Commitments tabs listing the records linked to the account, and a Details tab with its settings.
- For a full ledger with running balance, open the Finance app's Statements page and choose GL Account Ledger under Ledgers & Valuation.
- Pick the Company, then the GL Account. Optionally narrow by Branch or Party (optional) — on a receivables or payables control account, the party narrows it to one customer or supplier.
- Choose a Period (Today, Week to Date, Month to Date, Quarter to Date, Year to Date or Custom range…). For a custom range, set From – To.
- Click Submit.
The ledger shows the opening balance at the start of the window, each posted line with a running balance, and the closing balance. It reads posted journals only — drafts are not included. For every account side by side, use GL Account Balances on the same Statements page.
Fields
The New and Edit form has a main GL Accounts tab and a System Details tab. The record page's Details tab groups the account's settings into Key Information, Posting Criteria, Applicability and System Information sections. Company, branch and sub type are on the form only; Is Control Account and Item Group are on the record page only.
| Field | What it means | Notes |
|---|---|---|
| Name | The account's name as it appears in lookups, ledgers and statements. | Required. |
| Account Type | The economic category of the account. | Required. Drives type-based account lookup and is the fallback for statement placement. Values include Cash, Bank, Accounts Receivable, Accounts Payable, Inventory, Fixed Asset, Accumulated Depreciation, Other Current Asset, Other Current Liability, Tax Credit, Tax Payable, Credit Card, Long Term Liability, Equity, Retained Earnings, Opening Balance Equity, Sales, Service Income, Other Income, Cost Of Goods Sold, Purchases, Expense, Depreciation Expense and more — see the field reference for the full list. |
| Account Code | Your chart's code for the account. | Optional, up to 80 characters. Chart templates and Enable finance use it to recognise accounts that already exist. |
| Posting Type | A broad grouping: Asset, Liability, Equity, Income, Expense or Cost of Goods Sold. | Optional. For display and filtering only; it does not change where anything posts or appears. |
| Schedule III Classification | The statement heading the account's balance adds into, for example Trade Receivables, Cash and Cash Equivalents, Revenue from Operations or Other Expenses. | Optional. Blank means "derive from Account Type". An Account Type with no default classification lands under Other Expenses unless you set one here. |
| Is Active | Whether the account can be posted to. | Cleared means any journal line on it fails to post. |
| Control Type | Which control the account is, for the features that look one up. | Optional. See Configuration for which values posting recognises. |
| Sub Type | The tax component the account holds. | Shown only when Account Type is Tax Payable, Tax Credit or Other Current Liability. Values: CGST, SGST, IGST, UTGST, Cess, VAT, TDS, TCS. When set, a tax amount of that component posts to this account. Blank changes nothing. |
| Account Balance | A calculated balance figure shown on the form and in the list. | Read-only. For a balance at a date, use GL Account Ledger or GL Account Balances, which read the posted ledger. |
| Account Group | An optional grouping of accounts. | Optional. |
| Partner Account | The company that owns the account. | Required. On the System Details tab. Only active companies are offered. |
| Branch | The account's default branch. | Optional. Only the selected company's branches are offered. Lines that leave their branch empty inherit it, and type-based lookup prefers an account whose branch matches the document. It does not restrict who can post. |
| Default Business Unit | The account's default business unit. | Optional. Used only when the line, the journal header and the branch all leave the business unit empty. |
| Item Group | An item group linked to the account. | On the record page's Applicability section. |
| Is Control Account | Whether the account is a customer or supplier control. | On the record page only. Ticked means every line on the account needs a party. |
| Parent GL Account | The account this one rolls up into on grouped statements. | Not on the standard forms; an administrator can add it to the layout. Same company and same statement section required. |
Business rules
- Posting checks. When a journal posts, every line needs a GL account. An inactive account stops the post: "GL Account '…' is inactive. Please update the Posting Definition or journal line before posting." A line on a control account with no party stops it too: "Party Account is required on lines posting to a control account."
- Missing control account. Features that need a control account stop with a message naming it, for example "No TDS Payable control account … is configured." or "No Bank control account is configured for this payroll company."
- Hierarchy rules — checked whenever an account's parent, type, classification or company changes:
- "A GL account cannot be its own parent."
- "The selected parent GL account does not exist."
- "Parent GL account '…' belongs to a different company."
- The parent must be in the same statement section as the child, or you see "A parent must belong to the same statement section as its children."
- A link that would loop back on itself is refused with "… would create a cycle in the chart of accounts."
- Changing a parent's type or classification is refused if its children would be left in another section: "Re-parent the children first or keep the account in its current section."
- Inherited classification. A child account whose type has no default classification, and which has no classification of its own, takes its parent's Schedule III Classification when saved.
- Seeding.
- Enable finance adds the template's accounts the company lacks, matched by Account Code. On an existing account whose code and name still match the template, it also fills in an empty Control Type. It never overwrites a Control Type that is already set, and never touches a renamed account.
- Ticking GL Posting Enabled on a company's account record adds a standard starter set of 26 accounts (Cash, Petty Cash, Bank, Accounts Receivable, Inventory, Accounts Payable, GST Payable, Retained Earnings, Sales, Cost of Goods Sold, Rent Expense and others). Each is named after the company — for example Cash - Larkspur Advisory — with a four-digit code, and marked Is System. Enable finance also turns GL posting on. After enabling, check the list: if starter accounts named after the company appear beside the template's, clear Is Active on the ones you do not use.
- Is System only records where an account came from. It does not lock the account.
- Seed Classifications. On a fiscal year, Seed Classifications fills in Schedule III Classification from Account Type for every account of that company that has none. It also ticks Is Control Account on Accounts Receivable and Accounts Payable accounts and sets their control type. See Fiscal years and periods.
Example
A services company has just been onboarded as Larkspur Advisory. The finance lead goes to Org Settings → Companies, clicks Enable finance and seeds India — SMB (Services / General). The GL Accounts list now shows the company's chart, including Trade Receivables (control account for receivables), TDS Receivable, TDS Payable and Bank Current Account.
The company also earns training fees and wants them separate from consulting income. The finance lead clicks New and enters:
- Name: Training Fees.
- Account Type: Service Income.
- Account Code: 4120.
- Schedule III Classification: Revenue from Operations.
- Partner Account (System Details tab): Larkspur Advisory.
Because Service Income is treated as Sales during type-based lookup, the lead also adds a posting definition for training items pointing at Training Fees. Otherwise those invoices could land on the general sales account.
Payroll will pay salaries from Bank Current Account. The lead goes to Org Settings → Companies and clicks Set default bank. The dialog says "No Bank control account", because the template does not tag the bank account. The lead opens Bank Current Account, sets Control Type to Bank, saves, and returns to Set default bank to select it.
At month end, the lead opens GL Account Ledger, picks Training Fees and Month to Date, and clicks Submit to check every invoice that posted to it.
Training
Practice exercise
In a sandbox with at least one onboarded company:
- Create a GL account Practice Expense of type Expense for that company, with no Schedule III Classification.
- Open the record and confirm the Details tab shows Account Type Expense and Is Active ticked.
- Create a draft manual journal: debit Practice Expense 100, credit the company's cash account 100. Post it.
- Open GL Account Ledger for Practice Expense with Month to Date, and click Submit.
- Clear Is Active on Practice Expense, then try to post a second journal that uses it.
Expected result: step 4 shows one line of 100 with a closing balance of 100. Step 5 fails with "GL Account 'Practice Expense' is inactive. Please update the Posting Definition or journal line before posting."
Quick reference
- Every account belongs to one company — set Partner Account on the System Details tab.
- Account Type drives automatic account choice; Schedule III Classification drives statement placement; Posting Type drives neither.
- Tick Is Control Account only on customer and supplier controls; it makes a party mandatory.
- Withholding, payroll and expense controls need Control Type but not Is Control Account.
- Clear Is Active to retire an account; repoint its posting definitions first.
- Enable finance is safe to re-run: it only adds missing accounts.
- Use GL Account Ledger for an account's lines and running balance, GL Account Balances for all accounts at once.
Permissions
Access to GL accounts follows the user's security profile: its entity permission on GL Account decides whether the user can see the list, create, edit or delete accounts. The standard System Admin, Standard User, Sales Manager and Sales Executive profiles ship with full access to GL Account. Review that if sales users should not change the chart.
On the Companies list in Org Settings, the Onboard company, Enable finance, Set default bank and Withholding tax timing buttons appear only for users whose profile grants the capability to manage companies.
Configuration
Chart templates. Setup → Feature Hub → Administration → Org Settings → Companies → Enable finance seeds a company's chart from a template. Two templates ship: India — SMB (Services / General) and India — Trading (Goods / Inventory). Both tag the receivables and payables controls (with Is Control Account ticked) and the TDS Receivable, TDS Payable and TCS Payable controls (with Is Control Account cleared). Once enabled, the button disappears from that company's row.
Control types that posting looks up. Each feature finds its account by an exact match on Control Type within the company, so keep exactly one account per control type per company:
| Feature | Control the company needs |
|---|---|
| Withholding on invoices, bills and receipts | Accounts receivable, accounts payable |
| TDS on bills and invoices, TCS on sales | TDS payable, TDS receivable, TCS payable |
| Payroll payment batches | Bank — see Default bank below |
| Payroll posting, full and final settlement, statutory challans | Payroll payable and the statutory payables (PF, ESI, professional tax, TDS on salary, LWF), gratuity provision |
| Expense claims and advances | Employee payable, employee advance |
| Company card transactions, when the card names no payable account | Credit card payable |
| Journals spanning several business units | Inter-business-unit clearing — if no account has it, the balancing lines are simply not added |
Tick Is Control Account only on the receivables and payables controls. The withholding, payroll, statutory, employee and inter-business-unit controls are designed with it cleared, because their lines carry no customer or supplier.
Posting matches the stored control-type value exactly, without spaces: AccountsReceivable, AccountsPayable, TdsPayable, TdsReceivable, TcsPayable and so on. The chart templates write exactly those values. The Control Type list on the form offers the multi-word ones with spaces (for example TDS Payable), and posting does not recognise that spelling. Single-word values such as Bank and Inventory match either way. So, for multi-word controls, rely on Enable finance — run it again to fill in a missing tag — or ask your administrator to set the value through the Setup Copilot or a data import.
Default bank. Org Settings → Companies → Set default bank chooses which Bank control account money leaves from when a disbursement does not name one; payroll's payment batch reads it. Only the company's accounts with Control Type Bank are offered. A company with more than one bank account must set it.
Statement classification. After importing a chart, run Seed Classifications on a fiscal year of the company, then override individual accounts by hand.
Posting definitions. To target a specific account rather than "the first account of this type", create a posting definition in the Finance app's Settings. See Chart of accounts, books and periods.
Numbering. GL accounts ship with a document-name setting (series GLA) that is inactive, so account names are whatever you type.
Common problems
Posting fails with "GL Account '…' is inactive"
Cause: a journal line, or the posting definition behind a document, points at an account whose Is Active is cleared.
Fix: re-activate the account, or change the posting definition or journal line to an active account, then post again.
Posting fails with "Party Account is required on lines posting to a control account"
Cause: the line's account has Is Control Account ticked and the line has no customer or supplier.
Fix: add the party to the line. If the account is a tax, withholding, payroll or employee account, Is Control Account should not be ticked on it — have it cleared on the record page (see Step 4), because those controls must not demand a party.
An invoice or bill with TDS or TCS will not post: "No TDS … control account is configured"
Cause: no account in the company has the matching control type, or it was set with spaces from the form's list.
Fix: go to Org Settings → Companies and run Enable finance again with the company's template; it adds the missing withholding accounts and fills empty tags. If the chart was imported or built by hand, have an administrator set the exact control-type value on the right account.
"Set default bank" says "No Bank control account"
Cause: none of the company's accounts has Control Type Bank. Chart templates do not tag the bank account.
Fix: open the bank account, set Control Type to Bank, save, and try again.
An account appears under the wrong heading on the statements
Cause: its Schedule III Classification is blank and the default for its Account Type is not what you want, or the type has no default and the account fell into Other Expenses.
Fix: set the Schedule III Classification explicitly. The statements change as soon as you save.
Saving fails with "A parent must belong to the same statement section as its children"
Cause: the account and its parent resolve to different statement sections.
Fix: choose a parent in the same section, or correct the type or classification so both land in the same section.
GL Account Ledger says "GL account has no company; cannot run the ledger."
Cause: the account has no Partner Account.
Fix: click Edit on the account, set Partner Account on the System Details tab, save, and run the ledger again.
Common questions
Should I delete an account I no longer use?
Clear Is Active instead. A deactivated account keeps its posted history and refuses new postings with a clear message. Before deactivating, repoint any posting definition that uses the account. Otherwise invoices, bills or payments that resolve to it will fail to post until someone changes the definition. Deleting is meant for accounts created by mistake that never received a posting.
What is the difference between Account Type, Posting Type and Schedule III Classification?
Account Type is the economic category, and posting uses it to find an account when no posting definition matches. Schedule III Classification is the statement heading the balance adds into; when blank, it is derived from the Account Type. Posting Type is a broad label for display and filtering, and changing it does not move any posting or any statement line. To move an account on the statements, change its Schedule III Classification.
When do I tick Is Control Account?
Only for accounts that summarise customer or supplier balances — the receivables and payables controls. Ticking it makes a customer or supplier mandatory on every line, and keeps a balance per party for the subledger. Tax, withholding, payroll, employee, bank and credit-card controls also carry a Control Type, but leave Is Control Account cleared on them. Their counterpart is a tax authority, an employee or a bank, so their lines carry no customer or supplier and would otherwise fail to post.
Do I need a separate chart for each branch?
No. The chart belongs to the company, and branches share it. Give an account a Branch only when it should be that branch's default. Lines that leave the branch empty inherit it, and type-based lookup prefers the account whose branch matches the document. The branch does not stop other branches from posting to the account. For branch-wise figures, filter the ledger or statements by branch.
