General Ledger (GL)
1. Overview
Section titled “1. Overview”The General Ledger (GL) module is the financial backbone of the system. It maintains the chart of accounts, records all financial transactions through journal entries, enforces close-date controls, manages subledgers and cost centers, and provides budget tracking. Postings from other modules (Accounts Receivable, Accounts Payable, Jobs, etc.) flow into the GL through the approval workflow and are visible here in the Unapproved Postings screen.
2. Key Concepts
Section titled “2. Key Concepts”-
Chart of Accounts — The complete list of ledger accounts that categorize every financial transaction. Each account has a type (Income or Balance Sheet), a natural balance (Debit or Credit), and belongs to a hierarchical category.
-
Journal Entry (Document Posting) — A balanced set of debit and credit lines recorded against ledger accounts on a specific date. Every financial event in the system — whether entered manually or generated by another module — becomes a journal entry in the GL.
-
Double-Entry Accounting — Every journal entry must have equal debits and credits. The system enforces this: attempting to post an unbalanced entry displays an error message. This ensures the accounting equation (Assets = Liabilities + Equity) always holds.
-
Subledger — A subsidiary ledger that groups related postings and controls its own open-date window. For example, the “Accounts Payable” subledger receives all AP-generated postings, and its date window can be closed independently of other subledgers.
-
Cost Center — An organizational unit (department, division, branch) assigned to ledger accounts. Cost centers enable departmental reporting — you can see how much each division spent on materials or earned in revenue without creating separate accounts for each.
-
Fiscal Period & Close Date — Each subledger has its own open-date window (Start/End Close Date) that controls which posting dates are accepted; closing a period adjusts a subledger’s window, locking those dates and preventing retroactive changes. GL Settings also exposes a Master Close Date field, but it is not consumed by the posting/close-date enforcement code.
3. How It Connects
Section titled “3. How It Connects”Upstream — Every module posts to the GL:
- Accounts Payable → vendor invoice postings debit the configured expense accounts and credit the AP Control account
- Accounts Receivable → sales invoice postings debit the AR Control account and credit the configured revenue accounts
- Inventory → receiving and adjustment postings move value between the configured Inventory, Inventory Suspense, and Inventory Variance accounts
- Job Costing → job expense postings and job close distributions flow through configured GL accounts
- Service → work order invoicing posts revenue and cost entries to the GL
- Payroll → payroll runs post to the configured wage, employer tax, and liability accounts
Downstream — GL feeds financial outputs:
- Financial Reports — Trial balance, income statement, and balance sheet are generated directly from GL balances
- Budget vs. Actual — GL actuals are compared against budget amounts set in the Budgets screen
- Bank Reconciliation — GL bank account transactions are matched against bank statement lines
Key Integration Point — Posting Configuration: The Posting Configuration screen maps each module’s transaction types to specific subledgers. This routing determines which subledger receives the posting and which date-window rules apply. For example, the AP module’s individual transaction types (Post Invoice, Pay Invoices, Issue Check, Void Check) and the Payroll run each map to whichever subledger an administrator assigns to that posting-configuration detail row. The destination subledger is configurable, not a fixed per-module name.
4. GL Settings
Section titled “4. GL Settings”Navigation: General Ledger → GL Settings
This screen configures system-wide GL parameters. All changes save automatically when you leave a field.
Category Mappings (Required)
Section titled “Category Mappings (Required)”These settings tell the system which top-level ledger category represents each financial statement section. They are used for financial reporting and period-end closing.
| Field | Description |
|---|---|
| Assets Category | The ledger category representing all asset accounts |
| Liabilities Category | The ledger category representing all liability accounts |
| Equity Category | The ledger category representing all equity accounts |
| Income Category | The ledger category representing all revenue accounts |
| Cost of Goods Sold Category | The ledger category representing COGS accounts |
| Expense Category | The ledger category representing all expense accounts |
All six category fields are required to save GL Settings, and they drive the income-statement and retained-earnings computations. They are not separately re-validated by the GL close action, which only requires that all subledgers be closed.
Special Accounts (Required)
Section titled “Special Accounts (Required)”| Field | Description |
|---|---|
| YTD Income Account | The balance sheet account that holds year-to-date net income during the fiscal year |
| Retained Earnings Account | The equity account that receives net income during the annual GL close |
Document Posting Controls (Required)
Section titled “Document Posting Controls (Required)”| Field | Options | Description |
|---|---|---|
| Document Posting Close Type | Approval, Password | The actual routing is controlled per subledger’s Close Type field; new subledgers are created with Close Type Approval regardless of this setting. Approval routes postings through the Unapproved Postings screen. Password requires the posting user (who must be an authorized user of the subledger) to re-enter their own login password to post directly. |
| Master Close Date | Date picker | A date field in GL Settings. Note: posting locks are enforced per subledger via each subledger’s open-date window (Start/End Close Date); this Master Close Date field is not consumed by the posting/close-date enforcement code. |
Reset Master Close Password
Section titled “Reset Master Close Password”The Reset Master Close Password button (shown in red) opens a dialog where an administrator can set a new master close password. Note: when a Password-type subledger’s date window is closed, posting directly requires the posting user’s own login password (and the user must be listed as an authorized user on that subledger) — the master close password stored here is not consumed by the journal-entry posting flow.
5. Chart of Accounts — Ledger Accounts
Section titled “5. Chart of Accounts — Ledger Accounts”Navigation: General Ledger → Manage Ledger Accounts
This screen (page title Ledger Management) displays all ledger accounts in the chart of accounts and allows creating, editing, and navigating to account details.
Search List
Section titled “Search List”| Column | Description |
|---|---|
| Ledger ID | The account code (humanId) |
| Description | Account name |
| Category | Hierarchical category path (e.g., Assets › Current Assets) |
| Cost Center | The cost center assigned to this account |
| Type | Income or Balance Sheet |
- Use the search field above the grid to filter by Ledger ID or Description in real time.
- Click any row to navigate to the View Ledger Account detail screen.
- Click the + icon in the column header to create a new ledger account (requires create permission).
- Click the Edit icon on any row to edit that account (requires update permission).
Create / Edit Ledger Account
Section titled “Create / Edit Ledger Account”The create/edit dialog contains the following fields:
| Field | Required | Description |
|---|---|---|
| Ledger ID | Yes | The account code. Must be unique across all accounts. |
| Description | Yes | The human-readable account name. |
| Type | Yes | Income (profit/loss accounts) or Balance Sheet (asset/liability/equity accounts) |
| Natural Balance | Yes | Debit or Credit — the side of the ledger this account normally carries a balance on |
| Category | Yes | Select the hierarchical ledger category this account belongs to |
| Cost Center | Conditional | Required unless the account is flagged as a root account |
| Prevent Direct Posting | No | If checked, the UI prevents this account from being used directly in journal entries; it is reserved for system postings only |
| Is Root Account | No | This field defaults to true for new accounts and is not exposed as a user-editable control. |
6. Ledger Categories
Section titled “6. Ledger Categories”Navigation: General Ledger → Ledger Categories
Ledger categories organize accounts into a hierarchical tree (e.g., Assets → Current Assets → Cash). This structure drives financial statement formatting and the GL Settings category mappings.
Category Tree
Section titled “Category Tree”The screen displays categories as a collapsible tree. Each row shows the category name. Expand a category to see its subcategories.
Actions per row:
| Button | Description |
|---|---|
| + (Add) | Create a new subcategory under this category |
| Edit | Rename this category |
| Delete | Delete this category (only available for subcategories that have a parent). All subcategories and accounts under the deleted category are moved to the parent. |
Category Detail — Managing Accounts
Section titled “Category Detail — Managing Accounts”Click the expand arrow on any category row to open its detail panel:
- Ledger Account Selector — Autocomplete field to search for and assign an existing ledger account to this category.
- Category Ledgers Grid — Lists all accounts currently in this category, showing Ledger ID and Name.
- Move Up button — Moves the account to the parent category.
7. Cost Centers
Section titled “7. Cost Centers”Navigation: General Ledger → Cost Centers
Cost centers represent divisions, departments, or other organizational units. Every ledger account is assigned to a cost center (unless it is a root account), enabling reporting broken down by department.
Cost Center List
Section titled “Cost Center List”| Column | Description |
|---|---|
| Code | The short cost center code (humanId) |
| Description | The full cost center name |
| Actions | Edit and Delete buttons |
- Click + in the header to create a new cost center (requires create permission).
- Click Edit to modify a cost center’s code or description (requires update permission).
- Click Delete to remove a cost center (requires delete permission).
Create / Edit Cost Center
Section titled “Create / Edit Cost Center”| Field | Required | Description |
|---|---|---|
| Code | Yes | Short identifier for the cost center. Must be unique. |
| Description | Yes | Full name or description |
8. Subledgers
Section titled “8. Subledgers”Navigation: General Ledger → Subledgers
Subledgers are subsidiary ledgers that group related postings (for example, Accounts Receivable, Accounts Payable, Payroll). Each subledger has its own close date range and authorized users, providing granular control over who can post to which subledger and for which periods.
Subledger List
Section titled “Subledger List”| Column | Description |
|---|---|
| Name | Subledger name |
| Close Type | How the subledger is closed (Approval or Password) |
| Start Open Date | The earliest date that can be posted to; editable inline |
| End Open Date | The latest date that can be posted to; editable inline |
| Authorized Users | Users allowed to supply a password to post into a closed period for this subledger (the password-override path); multi-select chips |
| Is Realtime | If checked, postings appear immediately without batching |
Inline editing: Click on the Start or End date cells to open a date picker and change the date directly. Changes save on blur/accept. Similarly, click the Authorized Users field to add or remove users.
Advance Close Date button (Redo icon): Bumps both the Start and End close dates forward by one month in a single click. Useful during month-end when you are ready to open the next period.
More menu (⋮) per row:
- Edit — Opens the full edit dialog
- Delete — Deletes the subledger after confirmation
Create Subledger
Section titled “Create Subledger”| Field | Required | Description |
|---|---|---|
| Name | Yes | Subledger name |
| Close Type | Yes | Approval or Password |
| Start Open Date | Yes | Earliest postable date |
| End Open Date | Yes | Latest postable date |
| Is Realtime | No | Whether postings are immediately visible |
Edit Subledger
Section titled “Edit Subledger”The Edit dialog only lets you change Name, Close Type, and Is Realtime. The Start/End Open Date fields are not in the edit dialog; change them inline in the subledger list grid.
9. Journal Entries (Document Posting)
Section titled “9. Journal Entries (Document Posting)”Navigation: General Ledger → Journal Entries
This screen is used to manually post journal entries to the general ledger. Every entry must be in balance (total debits must equal total credits) before it can be posted.
Header Fields
Section titled “Header Fields”| Field | Required | Description |
|---|---|---|
| Date | Yes | Posting date for the journal entry. Must be within an open period. Auto-focuses when the screen loads. |
| Reverse Date | No | If specified, the system automatically creates a reversing entry on this date. Disabled if Recurring is checked. |
| Reference | Yes | A reference code or description (max 255 characters). You can also type or select a saved template name here — selecting a template loads its line items automatically. |
| Description | No | Optional free-text description of the entry (max 255 characters) |
Recurring Entry Section
Section titled “Recurring Entry Section”Check the Recurring checkbox to convert this entry into a recurring posting schedule.
| Field | Required | Description |
|---|---|---|
| Until | No | Date when recurring entries should stop. If blank, the entry recurs indefinitely. |
| Schedule | No | Monthly or Weekly |
| Interval | No | Frequency multiplier (e.g., Interval = 2 with Monthly schedule = every 2 months) |
Details Tab
Section titled “Details Tab”The entry grid where you add debit and credit lines:
| Column | Required | Description |
|---|---|---|
| Ledger | Conditional | The ledger account. Required if either Debit or Credit is non-zero. |
| Debit | No | Debit amount. Entering a debit disables the credit field for that row. |
| Credit | No | Credit amount. Entering a credit disables the debit field for that row. |
| Reference | No | Per-line reference (max 255 characters) |
| Description | No | Per-line description (max 255 characters) |
| Delete (×) | — | Removes that entry row |
- A new blank row is automatically added when you focus on the last row.
- The footer shows the running totals for Debit and Credit columns.
- Click Post to submit the entry. If the entry is out of balance or empty, an error message is displayed.
Attachments Tab
Section titled “Attachments Tab”Attach supporting documents (e.g., invoices, receipts) to the journal entry. Visible only if you have the viewAttachments permission. Attachments are saved with the document when it is posted.
Data Import
Section titled “Data Import”The Upload File button allows bulk-loading of entry lines from an Excel file. Its menu offers Download Template (to get the Excel template) and Upload Data (to import a filled-in file). Importing replaces the current entries grid with the imported rows.
Posting
Section titled “Posting”Click Post to submit the journal entry. The system validates:
- Total debits must equal total credits (otherwise: “Document is out of balance”).
- At least one entry line must have a ledger account (otherwise: “Document is empty”).
On success, a notification appears: Document Posted # [number]. Click Acknowledge to dismiss it. The form resets for the next entry.
10. Document Templates
Section titled “10. Document Templates”Navigation: General Ledger → Manage Document Templates
Document templates are pre-built journal entry patterns that can be loaded into the Journal Entries screen to save time on recurring manual postings.
Template List
Section titled “Template List”| Column | Description |
|---|---|
| Reference | Template identifier (used as the reference when loading) |
| Description | Optional description of the template’s purpose |
| Actions | Edit and Delete buttons |
Create / Edit Template
Section titled “Create / Edit Template”Header fields:
| Field | Required | Description |
|---|---|---|
| Reference | Yes | Unique identifier for the template (max 255 characters) |
| Description | No | Description of the template (max 255 characters) |
Template line items grid:
| Column | Required | Description |
|---|---|---|
| Ledger Account | Yes | The account for this line. Rows left without an account are dropped when the template is saved. |
| Reference | No | Per-line reference text (max 255 characters) |
| Description | No | Per-line description (max 255 characters) |
| Debit | No | Debit amount (mutually exclusive with Credit) |
| Credit | No | Credit amount (mutually exclusive with Debit) |
| Delete | — | Remove this line |
- A new blank row is added automatically as you tab through the last row.
- The Save button is disabled if the template is out of balance. Templates must be balanced (debits = credits) before they can be saved.
11. Recurring Entries
Section titled “11. Recurring Entries”Navigation: General Ledger → Manage Recurring Entries
This screen manages the schedule of recurring journal entries. Recurring entry auto-posting is not currently operational.
Recurring Entry List
Section titled “Recurring Entry List”| Column | Description |
|---|---|
| Reference | Template reference used for the recurring entry |
| Description | Template description |
| Start Date | When the recurring schedule begins |
| Last Posted Date | When the entry was most recently posted |
| Until | When the schedule ends (blank = indefinite) |
| Actions | Edit and Delete buttons |
Create / Edit Recurring Entry
Section titled “Create / Edit Recurring Entry”| Field | Required | Description |
|---|---|---|
| Template | Yes | Select the document template to use for this recurring entry |
| Schedule | Yes | Monthly or Weekly |
| Start Date | Yes | First date the entry should be posted |
| Until | No | Last date the entry should be posted |
| Posting Interval | Yes | Frequency multiplier (minimum 1). For example, Schedule = Monthly and Interval = 3 means once per quarter. |
12. Unapproved Postings
Section titled “12. Unapproved Postings”Navigation: General Ledger → Unapproved Postings
When a subledger’s Close Type is set to Approval, postings routed to that subledger from any module (AR, AP, Jobs, Payroll, etc.) that have not yet been approved appear here. An authorized approver reviews and approves or denies each posting before it is committed to the ledger.
Tab Layout
Section titled “Tab Layout”Postings are organized into tabs by source module. Each tab label includes a badge showing the number of pending postings for that source (e.g., AR 3, AP 7). Click a tab to view postings from that source.
Posting Grid
Section titled “Posting Grid”Each source tab displays a grid of pending postings. The columns vary by source but typically include fields such as:
- Date, Reference, Description
- Customer, Vendor, Job, or other entity links (clickable to open in a new tab)
- Dollar amounts, quantities, percentages
- User — the person who submitted the posting
Click the expand arrow on a row to see its detail entries (individual debit/credit lines) in a secondary grid below.
Approving or Denying Postings
Section titled “Approving or Denying Postings”- Check the checkbox next to one or more postings to select them.
- Selections persist across tabs — you can select postings from multiple sources.
- Click Approve Selected to approve all selected postings. A confirmation dialog appears before the action is taken.
- Click Deny Selected to reject all selected postings. A confirmation dialog appears before the action is taken.
- Both buttons are disabled if no postings are selected.
Approved postings are committed to the general ledger. Denied postings are marked denied and drop out of the pending queue (the row is retained, not deleted). The originating module is not notified.
13. View Ledger Account
Section titled “13. View Ledger Account”Navigation: General Ledger → Manage Ledger Accounts → (click a row)
This screen displays all details for a single ledger account along with its full transaction history.
Account Header
Section titled “Account Header”| Field | Description |
|---|---|
| Ledger ID | The account code |
| Description | Account name |
| Category | Hierarchical category path |
| Cost Center | Associated cost center |
| Type | Income or Balance Sheet |
| Direct Posting Allowed | Whether manual journal entries can post to this account |
| Natural Balance | Debit or Credit |
Transaction History
Section titled “Transaction History”Below the header is the transaction history grid with date range filtering:
- Start Date / End Date — Filter transactions to a specific date range.
- Collapse by Subledger — Group transactions by subledger instead of showing individual lines.
- For Balance Sheet accounts, a Balance Forward line appears at the top showing the net balance as of the start of the selected period.
| Column | Description |
|---|---|
| Date | Transaction date |
| Reference | Document reference |
| Name | Name associated with the transaction |
| Description | Transaction description |
| Debit | Debit amount |
| Credit | Credit amount |
| Balance | Running cumulative balance |
| View Document | Icon link to open the full source document |
Expand a grouped row (when Collapse by Subledger is on) to see individual transactions within that subledger group.
View Ledger Document
Section titled “View Ledger Document”Clicking the View Document (eye) icon on a transaction row opens the View Ledger Document dialog, which shows the complete source document behind that posting — its header and every general ledger line it generated.
The dialog header displays:
| Field | Description |
|---|---|
| Date | The document’s transaction date |
| Document Number | The document number |
| Reference | The document reference. When the document is an AP payment, vendor invoice, or customer invoice, this is a link that opens that record in a new tab |
| Name | The associated customer or vendor. When present, this is a link that opens that record in a new tab |
| Description | The document description |
Below the header, the Details tab lists every GL line of the document, sorted by ledger account:
| Column | Description |
|---|---|
| Ledger Account | The account the line posted to. Click it to open that account’s View Ledger Account screen in a new tab |
| Name | The customer, vendor, employee, or job associated with the line (a link to that record’s view, when present) |
| Reference | The line reference (a link to the source AP payment or invoice, when applicable) |
| Description | The line description |
| Debit | The debit amount |
| Credit | The credit amount |
A second Attachments tab lets you view and manage files attached to the document. This tab only appears for users with the View Attachments permission.
Use Close to dismiss the dialog.
Expanded Transaction Detail
Section titled “Expanded Transaction Detail”When Collapse by Subledger is on, each grouped subledger row can be expanded with the toggle arrow at the left of the row to reveal a child grid listing the individual transactions that make up that group. Rows that have no underlying transactions cannot be expanded.
The expanded detail grid shows the following columns:
| Column | Description |
|---|---|
| Date | Transaction date |
| Reference | Document reference for the individual posting |
| Name | Name associated with the transaction |
| Source | The module or process that generated the posting (for example, the source recorded when the entry was posted, such as a posting-configuration source or “Document Posting”) |
| Description | Transaction description |
| Debit | Debit amount |
| Credit | Credit amount |
| View Document | Icon link to open the full source document |
The Source column makes it possible to see, line by line, which area of the system originated each posting within a collapsed subledger group.
Actions
Section titled “Actions”The Actions dropdown in the top-right contains:
- Edit Ledger Account — Opens the create/edit dialog to modify the account’s properties (requires update permission).
14. Bank Accounts
Section titled “14. Bank Accounts”Navigation: General Ledger → Banks
Bank accounts define the institution and account details used for check printing (AP), ACH transfers, and bank reconciliation. Each bank is linked to a GL ledger account.
Bank List
Section titled “Bank List”| Column | Description |
|---|---|
| Name | Bank name |
| Address | Street address |
| Address 2 | Suite/unit |
| City | City |
| State | State or province |
| Zip | Postal code |
| Check # | Current check number sequence |
| (unlabeled) | Edit and Delete icon buttons per row; the column header holds a Create (+) icon |
Click the expand arrow on a bank row to see its full details:
Left panel: Full address including country.
Right panel:
| Field | Description |
|---|---|
| Account Number | Bank account number |
| Routing Number | ABA routing number |
| Fractional Routing Number | Check fractional routing code |
| Check Number | Current check sequence number |
| Ledger Account | The GL account this bank is tied to |
| ACH Bank ID | ACH bank identifier |
| ACH Company ID | Company ID used in ACH files |
| ACH Bank Name | Bank name as it appears in ACH files |
| ACH Origin Prefix | Single-character prefix for ACH origin |
| ACH Enabled | Whether ACH transfers are active |
| ACH Balanced | Whether ACH file should be balanced |
| Print Checks | Whether checks are printed for this bank |
Create / Edit Bank
Section titled “Create / Edit Bank”| Field | Required | Description |
|---|---|---|
| Name | Yes | Bank institution name (max 255 characters) |
| Address | Yes | Street address (via Google Places autocomplete) |
| Address 2 | No | Suite, floor, or unit (max 255 characters) |
| City | Yes | City (max 255 characters) |
| State | Conditional | Required for US addresses; optional for international |
| ZIP | Yes | Postal code (max 255 characters) |
| Country | Yes | Defaults to United States |
| Account Number | No | Bank account number (max 25 characters) |
| Routing Number | No | ABA routing number (max 15 characters) |
| Fractional Routing Number | No | Check fractional code (max 15 characters) |
| Check Number | No | Current check number in sequence |
| Ledger Account | Yes | GL account linked to this bank |
| Default Fee Account | No | GL account for bank fees |
| ACH Company ID | No | ACH company identifier (max 15 characters) |
| ACH Company Name | No | ACH company name (max 23 characters) |
| ACH Bank Name | No | Bank name in ACH file (max 25 characters) |
| ACH Origin Prefix | No | Single-character ACH prefix (max 1 character) |
| ACH Enabled | No | Enable ACH transfers |
| ACH Balanced | No | Create balanced ACH files |
| Print Checks | No | Enable check printing for this bank |
15. Budgets
Section titled “15. Budgets”Navigation: General Ledger → Budgets
Budgets allow you to set target amounts by ledger account and period for comparison against actual results.
Budget List
Section titled “Budget List”| Column | Description |
|---|---|
| Name | Budget name |
| Start Date | First period of the budget |
| End Date | Last period of the budget |
| Finalized | Whether the budget has been locked |
| Closed | Whether the budget period has closed |
| Actions | Edit and Delete buttons |
Click a budget row to open the Budget Amounts detail screen.
Create / Edit Budget
Section titled “Create / Edit Budget”| Field | Required | Description |
|---|---|---|
| Name | Yes | Budget name (max 255 characters) |
| Start Date | Yes | First date of the budget period |
| End Date | Yes | Last date of the budget period |
Budget Amounts
Section titled “Budget Amounts”After creating a budget, click its row in the list to open the Budget Amounts screen. This screen has a dynamic column layout:
- The first column is the Ledger Account (autocomplete, restricted to Income-type accounts).
- The second column is labeled Distribute (internally the equal distribution amount) — enter an amount here to automatically split it evenly across all period columns.
- Remaining columns are one per calendar month within the budget’s date range (e.g., “Jan”, “Feb”, “Mar”). Enter the target amount for each account in each period.
To add a row, click in the blank row at the bottom. To remove a row, click the Delete button on that row.
Click Save to persist all budget amounts. A Data Import button is available to load budget amounts from a CSV or Excel file.
16. Ledger Closings
Section titled “16. Ledger Closings”Navigation: General Ledger → Ledger Closing
This screen shows the history of all GL close operations and allows initiating a new close.
Closing History
Section titled “Closing History”| Column | Description |
|---|---|
| Timestamp Created | When the close was initiated |
| Last Updated | When the close record was last updated |
| Close Date | The date through which the ledger was closed |
| User | The user who performed the close |
History is displayed in reverse chronological order (most recent first). This is a read-only log.
Closing the General Ledger
Section titled “Closing the General Ledger”Click Close Ledger to open the Close General Ledger dialog.
| Field | Required | Description |
|---|---|---|
| Close Date | Yes | The date through which you want to close. When the dialog opens, this field is pre-filled automatically with the earliest Start Close Date found across all subledgers. You can change it before closing, subject to the validation below. |
The pre-filled Close Date is the earliest Start Close Date among all subledgers, so the default value reflects how far the most-behind subledger has been advanced.
To close the ledger:
- Navigate to General Ledger → Ledger Closing and click Close Ledger.
- Review the Close Date, which defaults to the earliest subledger Start Close Date. Adjust it if needed.
- If you see the error All subledgers must be closed to close general ledger, advance any subledger still open within the period (Subledgers → Advance Close Date), then reopen this dialog.
- Click Close Ledger to commit. A new record appears in the Ledger Closings list.
17. Posting Configuration
Section titled “17. Posting Configuration”Navigation: General Ledger → Posting Configuration
Posting configuration defines how transaction types from other modules are routed to specific subledgers. This is typically set up during initial system configuration and rarely changed thereafter.
Configuration List
Section titled “Configuration List”Each posting configuration row shows its Name. Expand a row to see its subledger mappings:
| Column | Description |
|---|---|
| Description | The posting configuration detail description |
| Subledger | The subledger this configuration routes to (editable autocomplete, saves on blur) |
GL Sources
Section titled “GL Sources”The following modules generate GL postings that are routed through the Posting Configuration mappings:
| Source Module | Transaction Types | Typical GL Accounts |
|---|---|---|
| Accounts Payable | Vendor invoices, payments, prepayments, voids | AP Control, configured expense accounts, Cash |
| Accounts Receivable | Sales invoices, cash receipts, deposits, adjustments | AR Control, configured revenue accounts, Cash |
| Inventory | Receiving, adjustments, counts, movement, cost updates | Configured Inventory, Inventory Suspense, Inventory Variance accounts |
| Job Costing | Job expenses, overhead, job close distributions | Expense accounts per job type, contract closing accounts |
| Service | Work order invoicing, service contract billings | Revenue and cost accounts per service configuration |
| Payroll | Payroll runs (earnings, deductions, employer contributions) | Configured wage, employer tax, Cash, and liability accounts |
| Manual (GL) | Journal entries, recurring entries, templates | Any ledger account (subject to direct-posting restrictions) |
Each source module’s postings are routed to the subledger defined in its Posting Configuration row. The subledger’s date window and authorized users control when and by whom postings can be made.
18. Permissions
Section titled “18. Permissions”Access to GL screens and functions is controlled by the following permissions:
| Permission | Actions | Description |
|---|---|---|
| ledgerAccount | create, read, update, delete | Manage chart of accounts |
| ledgerCategory | create, update, delete | Manage category hierarchy |
| ledgerCostCenter | create, update, delete | Manage cost centers |
| subledger | create, update, delete | Manage subledgers; also controls ability to authorize users |
| bank | create, update, delete | Manage bank accounts |
| budget | create, update, delete | Manage budgets and budget amounts |
| ledgerDocumentTemplate | create, update, delete | Manage journal entry templates |
| recurringLedgerEntry | create, update, delete | Manage recurring entries |
| generalLedgerBalances | read | View running balances in the ledger account detail |
| unapprovedPostings | — | Approve or deny postings on the Unapproved Postings screen |
| viewAttachments | — | Misc permission; enables the Attachments tab on Journal Entries |
19. Worked Examples
Section titled “19. Worked Examples”Example 1: Monthly Rent Accrual via Template
Section titled “Example 1: Monthly Rent Accrual via Template”Scenario: Sarah (Controller) needs to record the $4,500 monthly office rent for Precision Mechanical. She creates a reusable template so the accrual posts automatically each month.
Step 1 — Create the template:
- Navigate to General Ledger → Manage Document Templates and click +.
- Set Reference =
RENT-MONTHLYand Description =Monthly Office Rent Accrual. - Add two lines:
- Line 1: Ledger = 6100 Rent Expense, Debit = $4,500.00
- Line 2: Ledger = 2200 Accrued Liabilities, Credit = $4,500.00
- Footer shows Debit Total = $4,500.00, Credit Total = $4,500.00 — balanced.
- Click Save.
Step 2 — Post using the template:
- Navigate to General Ledger → Journal Entries.
- Set Date =
01/31/2026, typeRENT-MONTHLYin the Reference field — the two lines auto-populate. - Click Post. Notification: Document Posted # 4821.
Step 3 — Convert to recurring:
- Navigate to General Ledger → Manage Recurring Entries and click +.
- Select Template =
RENT-MONTHLY, Schedule = Monthly, Interval = 1, Start Date =02/28/2026. - Click Save. The recurring entry is saved for the configured schedule. Note: recurring entry auto-posting is not currently operational; entries must be posted manually.
Result:
| Account | Debit | Credit |
|---|---|---|
| 6100 Rent Expense | $4,500.00 | |
| 2200 Accrued Liabilities | $4,500.00 |
Example 2: Approving Cross-Module Postings
Section titled “Example 2: Approving Cross-Module Postings”Scenario: Mike (GL Manager) logs in Monday morning and sees pending postings from AP, AR, and Payroll that need GL approval before they hit the books.
Step 1 — Review pending postings:
- Navigate to General Ledger → Unapproved Postings.
- The tabs show: AP 5, AR 4, Payroll 3 — 12 total pending postings.
Step 2 — Review AP postings:
- Click the AP tab. Five vendor invoice postings appear.
- Expand the first row (FastPipe Supply, $2,350.00) to verify the GL distribution:
- Debit 5200 Materials Expense $2,350.00
- Credit 2000 AP Control $2,350.00
- Check all five AP postings.
Step 3 — Review AR postings:
- Click the AR tab. Four cash receipt postings appear.
- Expand the first row (Greenfield Construction, $17,000.00):
- Debit 1010 Cash $17,000.00
- Credit 1200 AR Control $17,000.00
- Check all four AR postings.
Step 4 — Review Payroll postings:
- Click the Payroll tab. Three entries from last Friday’s payroll run.
- Expand the first (Wages posting):
- Debit 6010 Wages Expense $24,500.00
- Credit 1010 Cash $19,200.00
- Credit 2100 Federal Tax Payable $5,300.00
- Check all three Payroll postings.
Step 5 — Approve all:
- All 12 postings selected across three tabs.
- Click Approve Selected. A confirmation dialog appears titled Approve Postings asking “Are you sure you want to approve these ledger postings?” (no posting count is shown). Confirm to proceed.
- All 12 entries are committed to the general ledger.
Example 3: Month-End Close (January)
Section titled “Example 3: Month-End Close (January)”Scenario: Sarah (Controller) is closing the books for January 2026. All AP, AR, and Payroll activity has been posted and approved.
Step 1 — Verify subledger dates:
- Navigate to General Ledger → Subledgers.
- Confirm all subledgers have Start Open Date =
02/01/2026or later:- Accounts Payable: Start = 02/01/2026, End = 02/28/2026 ✓
- Accounts Receivable: Start = 02/01/2026, End = 02/28/2026 ✓
- Payroll: Start = 02/01/2026, End = 02/28/2026 ✓
- For any subledger still showing January dates, click the Advance Close Date button (Redo icon) to bump forward one month.
Step 2 — Clear unapproved postings:
- Navigate to General Ledger → Unapproved Postings.
- Verify all tabs show 0 pending items. If any remain, approve or deny them.
Step 3 — Close the ledger:
- Navigate to General Ledger → Ledger Closing and click Close Ledger.
- Enter Close Date =
01/31/2026. - Click Close. The system:
- Updates the retained earnings balance based on January net income
- Creates a ledger closing record with timestamp and Sarah’s username
Step 4 — Verify:
- Navigate to General Ledger → Ledger Closing.
- Confirm a closing record exists for
01/31/2026with Sarah’s username.
20. Business Rules
Section titled “20. Business Rules”Rules are grouped by category. Each rule has an ID for cross-referencing.
Constraints
Section titled “Constraints”- BR-GL-C1: Double-Entry Balance — Journal entry cannot post unless total debits = total credits.
- BR-GL-C2: Close Date Window — Posting dates are validated against each affected subledger’s open-date window (Start/End Close Date). The Master Close Date field in GL Settings is not enforced by the posting engine.
- BR-GL-C3: Prevent Direct Posting — Accounts flagged “Prevent Direct Posting” are hidden from the account lists on the Document Templates, Post Invoice, Issue Check, Post Sale, Post Cash Receipt, and Sales Orders screens. However, the Journal Entries (Document Posting) autocomplete lists all accounts regardless of this flag, and neither backend rejects a manual posting to a flagged account, so the flag does not currently block direct posting on the Journal Entries screen.
- BR-GL-C4: Category Mapping Required — All six GL category mappings (Assets, Liabilities, Equity, Income, Cost of Goods Sold, Expense) are required fields in GL Settings and must be configured to save settings and for the income-statement and retained-earnings computations to be correct. They are not separately re-validated by the GL close action, which only checks that all subledgers are closed.
Automations
Section titled “Automations”- BR-GL-A1: Template Auto-Load — Typing a template reference in the Journal Entry Reference field auto-populates saved line items.
- BR-GL-A2: Recurring Entry Auto-Post — Recurring entry auto-posting is not currently operational.
- BR-GL-A3: Reversing Entry — If a Reverse Date is set, the system auto-creates a mirror-image reversal entry on that date.
- BR-GL-A4: Retained Earnings Update — GL close updates the retained earnings balance based on net income for the closed period. This is a balance update, not a GL journal entry.
Workflows
Section titled “Workflows”- BR-GL-W1: Subledger Date Windows — Each subledger has its own date window controlling when postings can be made.
- BR-GL-W2: Approval Workflow — When a subledger’s close type is set to “Approval,” postings routed to that subledger enter the Unapproved Postings queue for manual approval before committing to the ledger.
Cross-Module Effects
Section titled “Cross-Module Effects”- BR-GL-X1: Universal Posting Destination — AP, AR, Inventory, Job Costing, Service, and Payroll all post journal entries to GL.
- BR-GL-X2: Posting Configuration Routing — Each module’s transaction types are routed to specific subledgers via Posting Configuration mappings.
21. Troubleshooting / FAQ
Section titled “21. Troubleshooting / FAQ”Q: My journal entry won’t post — I get an error when clicking Post. The entry is out of balance. Check the footer totals: Debit Total must exactly equal Credit Total (BR-GL-C1). Add or adjust lines until both sides match.
Q: I get “posting date is in a closed period” when saving an entry. The posting date falls outside the affected subledger’s open-date window — before its Start Close Date or after its End Close Date (BR-GL-C2). Check that subledger’s date window on the Subledgers (Subledger Management) screen — review its Start Close Date and End Close Date — then use a posting date inside that window.
Q: An account I need doesn’t appear in the Ledger Account autocomplete. The Journal Entries (Document Posting) screen lists all ledger accounts in the Ledger Account autocomplete, regardless of the Prevent Direct Posting flag, so that flag is not the cause here. Prevent Direct Posting accounts are hidden from the account lists on the Document Templates, Post Invoice, Issue Check, Post Sale, Post Cash Receipt, and Sales Orders screens — but not from the Journal Entries (Document Posting) autocomplete. If an account is missing from the Journal Entries autocomplete, the likely cause is something else — for example the account does not exist yet, or the account list had not finished loading when you opened the screen.
Q: I want to close the GL but subledger date windows are still open. As a best practice, advance subledger date windows past the close date before closing the GL. Navigate to Subledgers, find any subledger still showing dates within the period you’re closing, and click Advance Close Date to bump it forward.
Q: A user can’t post to a specific subledger. While the subledger period is open, any user can post; the Authorized Users field does not restrict normal posting. That list only governs who may enter a password to post into a closed period (the password-override path). If a user needs that override ability, add them to Authorized Users on the subledger record — the change takes effect immediately.
Q: Unapproved postings are blocking my month-end close. Navigate to Unapproved Postings and review each tab (AP, AR, Payroll). Approve or deny all pending items before attempting the GL close to ensure all transactions are reflected in the closed period.
Q: My recurring entry didn’t auto-post. Recurring entry auto-posting is not currently operational. Recurring entries must be posted manually.
Q: I need to correct an entry in a closed period. You cannot post directly to a closed period. Instead, create a reversing entry and a correcting entry in the current open period. Use a Reverse Date on the original entry template to auto-generate the reversal.
22. Tips & Notes
Section titled “22. Tips & Notes”Month-End Close Workflow
Section titled “Month-End Close Workflow”- Ensure all AP and AR transactions for the period have been posted and approved.
- Navigate to Subledgers and verify the End Open Date for each subledger has passed (or advance it with the Advance Close Date button).
- If using the Approval close type, go to Unapproved Postings and approve or deny all pending items.
- Navigate to Ledger Closings and click Close Ledger. Enter the close date (last day of the period).
- Confirm that a closing record appears in the Ledger Closings list.
Using Templates for Recurring Accruals
Section titled “Using Templates for Recurring Accruals”- Create a Document Template for the accrual (e.g., “Monthly Rent Accrual”) with the debit to the expense account and credit to the accrued liability account.
- On the Journal Entries screen, type the template reference in the Reference field to load it.
- Alternatively, set up a Recurring Entry that references the template. Note: recurring entry auto-posting is not currently operational.
Balancing Entries
Section titled “Balancing Entries”The system will not post a journal entry unless debits exactly equal credits. Watch the footer totals in the entry grid as you work. If the entry is out of balance, the system shows a “Document is out of balance” error when you click Post.
Subledger Authorization
Section titled “Subledger Authorization”The Authorized Users field on the Subledger record does not control normal posting — while the period is open, any user can post. It controls who may supply a password to post into a closed period (the password-override path). To grant a user that override ability, add them to the list; changes take effect immediately.
Budget vs. Actual Reporting
Section titled “Budget vs. Actual Reporting”Set up a budget in Budgets that covers your fiscal year. Enter monthly targets per ledger account. The system compares these targets against actual postings for management reporting. Use the Distribute column to spread an annual target evenly across all months with a single entry.
Direct Posting Restrictions
Section titled “Direct Posting Restrictions”If an account has Prevent Direct Posting checked, it is omitted from the account lists on the Document Templates, Post Invoice, Issue Check, Post Sale, Post Cash Receipt, and Sales Orders screens. It is not removed from the Ledger Account autocomplete on the Journal Entries (Document Posting) screen, which lists all accounts, and neither backend rejects a posting to a flagged account. As a result this flag does not currently prevent control accounts (such as the AR or AP control account) from being adjusted through a manual journal entry — treat that as a known gap rather than a guarantee.