General Ledger
The general ledger is the base of every other module in Solid Accounting. Every invoice, bill, payment, deposit, transfer, and manual entry posts to it, and every report reads from it. Open it from the sidebar (General Ledger) or Transactions → General Ledger.
If you're new to double-entry: every transaction has at least two sides, and the two sides are equal. That rule is what lets the books catch a whole class of errors on their own.
Account types and the Chart of Accounts
Solid Accounting ships with fourteen account types in five categories:
| Category | Account types | Normal balance |
|---|---|---|
| Asset | Bank and Cash · Accounts Receivable · Other Current Assets · Fixed Assets | Debit |
| Liability | Credit Card · Accounts Payable · Other Current Liabilities · Long-Term Liabilities | Credit |
| Equity | Equity | Credit |
| Revenue | Income · Other Income | Credit |
| Expense | Cost of Goods Sold · Expenses · Other Expense | Debit |
The type sets the normal balance (the side that increases the account) and where the account appears: assets, liabilities, and equity on the Balance Sheet; revenue and expense on the Income Statement. Debits increase assets and expenses; credits increase liabilities, equity, and revenue. The type suggests sensible defaults but doesn't block unusual entries — accountants sometimes need to cross type lines.
Your Chart of Accounts (sidebar or Lists → Chart of Accounts) lists every account in the company file. Each account has an optional number (leave it blank and one is assigned for you), a name, a type, an optional parent (accounts can nest), a currency, a description, and an active flag. Inactive accounts drop out of pickers but keep their history. A common numbering scheme is 1000s for assets, 2000s liabilities, 3000s equity, 4000s revenue, 5000s and up for expenses. You can rename, renumber, and re-parent freely — transactions follow the account, not its name.
For import mapping and the REST API, the stable type codes are CASH, RECEIVABLE, ASSET, FIXED_ASSET, CREDIT_CARD, PAYABLE, LIABILITY, LT_LIABILITY, EQUITY, INCOME, OTHER_INCOME, COGS, EXPENSE, and OTHER_EXPENSE, in the same order as the table above.
Journal entries
Every transaction in Solid Accounting is a journal entry: a header plus two or more lines whose debits and credits balance to the penny. You rarely write one by hand (Transactions → Journal Entry); every form posts its own:
| Transaction | What it posts |
|---|---|
| Write Check | DR Expense (per line) · CR Bank |
| Record Deposit | DR Bank · CR Income (or other source, per line) |
| Transfer | DR Destination account · CR Source account |
| Invoice | DR Accounts Receivable · CR Income (per line) |
| Receive Payment | DR Bank or Undeposited Funds · CR Accounts Receivable |
| Bill | DR Expense (per line) · CR Accounts Payable |
| Pay Bill | DR Accounts Payable · CR Bank |
| Credit Memo | DR Income · CR Accounts Receivable |
| Inventory Adjustment | DR or CR Inventory · offset to an adjustment account |
| Loan payment | DR Loan liability (principal) · DR Interest Expense · CR Bank |
| Depreciation | DR Depreciation Expense · CR Accumulated Depreciation |
| Opening balance | One side to Opening Balance Equity (Company → Opening Balances). Income and expense accounts don't take opening balances |
Every entry records who created it and when, and links back to the form that produced it. That link is what makes drilldown work: click a number on any report to see the entries behind it, then open the invoice, bill, or check that created each one.
Posted entries, voids, and the Audit Trail
Drafts can be edited or deleted freely. Posted entries are locked by default. The usual correction is one of these, followed by entering the corrected transaction:
- Void — choose a Void date and give a reason. The entry stays in the company file, marked void. Voiding a payment also removes it from the invoice or bill it paid, so that can be paid again.
- Reverse — open the entry, choose Reverse, and pick the Reverse on date. A linked reversing entry (same accounts, opposite amounts) posts on that date, and the original stays as it was. This is also the way to correct an entry in a closed period or a completed reconciliation.
For an accrual you want undone next period, tick Auto-reverse on when you post the journal entry and pick the date; the reversing entry posts with it.
A posted invoice or journal entry can be edited directly only after you confirm an explicit warning, and the change is recorded with a reason in the Audit Trail (Company → Audit Trail). No entry can be edited, even that way, if it sits in a closed period or is part of a completed bank reconciliation. See Audit Trail.
Cash vs. accrual basis
The same transactions produce both views, so you can switch basis on a report without changing the books:
- Accrual — revenue counts when the invoice is issued, expense when the bill is received. Used for GAAP, management reporting, and any business with meaningful receivables or payables.
- Cash — revenue counts when the customer pays, expense when you pay the bill. Some smaller businesses use it for tax.
Fiscal years and closed periods
A company file has one or more fiscal years (Company → Fiscal Years...), each split into periods. Closing a period stops anything from posting with a date inside it. Closing the year (Close Year) locks all its periods; no closing entry is posted, because the Balance Sheet already rolls each past year's net income into Retained Earnings. You can reopen periods, and an Accountant or Admin can reopen a closed year, if you find an error.
Before a close, Solid Accounting runs its Ledger Health checks and warns you about high-severity findings. Adjusting entries — accruals, deferrals, reclassifications — are ordinary journal entries you post before closing. See Fiscal Years & Close Year and the month-end close checklist.
Trial balance and Ledger Health
The Trial Balance (Reports → Trial Balance) lists every account's balance in its debit or credit column. Total debits must equal total credits. Because every entry is checked for balance before it posts — imported entries included — a trial balance that doesn't foot means something is wrong below normal use; stop entering data and contact support.
A balanced trial balance can still hide mistakes, so Ledger Health (Reports → Ledger Health) looks for the ones it can't show: cash accounts that aren't really cash, entries outside every fiscal period, likely duplicates. Each finding names the accounts and amounts behind it.
Imports are checked the same way: a row that won't balance is skipped rather than posted halfway, and an import batch can be undone as a unit from the import screen.
If a large report is slow, narrow it — one account or a shorter date range — before looking at hardware.
Multi-currency
Set the company file's base currency and turn on the foreign currencies you use in Settings → Currencies; bills can then be entered in a foreign currency. The exchange rate used for each transaction is stored on the transaction, so historical reports stay reproducible. When a foreign-currency bill is paid at a different rate, the difference posts as a realized FX gain or loss. At month-end you can revalue foreign-currency balances from Settings → FX Revaluation; the revaluation posts as a journal entry to an unrealized FX gain/loss account.
History imported from other software (QuickBooks®, Xero, and others) carries base-currency amounts only.
Related