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:

CategoryAccount typesNormal balance
AssetBank and Cash · Accounts Receivable · Other Current Assets · Fixed AssetsDebit
LiabilityCredit Card · Accounts Payable · Other Current Liabilities · Long-Term LiabilitiesCredit
EquityEquityCredit
RevenueIncome · Other IncomeCredit
ExpenseCost of Goods Sold · Expenses · Other ExpenseDebit

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:

TransactionWhat it posts
Write CheckDR Expense (per line) · CR Bank
Record DepositDR Bank · CR Income (or other source, per line)
TransferDR Destination account · CR Source account
InvoiceDR Accounts Receivable · CR Income (per line)
Receive PaymentDR Bank or Undeposited Funds · CR Accounts Receivable
BillDR Expense (per line) · CR Accounts Payable
Pay BillDR Accounts Payable · CR Bank
Credit MemoDR Income · CR Accounts Receivable
Inventory AdjustmentDR or CR Inventory · offset to an adjustment account
Loan paymentDR Loan liability (principal) · DR Interest Expense · CR Bank
DepreciationDR Depreciation Expense · CR Accumulated Depreciation
Opening balanceOne 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

Updated October 31, 2026
Report a problem with this page
Was this helpful?

We use this to prioritize which docs to improve. No tracking, no email follow-up.