Skip to main content

General Ledger Entries

The general ledger (GL) is the core of Books. Every financial transaction — invoices, payments, bills, bank transactions — creates a balanced journal entry in the GL. Books enforces double-entry accounting at the data layer, so your books are always in balance.

How Journal Entries Work

A journal entry is a set of lines, where each line debits or credits a specific GL account. The fundamental rule: total debits must equal total credits. Books enforces this — you cannot save an unbalanced entry.

Example: Recording a $1,000 service invoice

AccountDebitCredit
Accounts Receivable (1100)$1,000
Service Revenue (4000)$1,000

Journal Entry Types

TypeDescription
ManualCreated by a user for adjustments or corrections
SystemAuto-generated by invoices, payments, bills, etc.
AdjustingMonth-end or year-end adjustments (accruals, deferrals)
ClosingYear-end entries to close revenue/expense to retained earnings
ReversingAutomatically reverses a prior entry (e.g., voided invoice)
Opening BalanceSets initial account balances when migrating to Books

Journal Entry Statuses

StatusDescription
DraftNot yet posted. No impact on account balances.
PendingAwaiting approval before posting.
PostedLive in the GL. Affects account balances and reports.
VoidedReversed. A new reversing entry is created automatically.

Auto-Generated GL Entries

Most GL entries in Books are created automatically:

From Invoices

  • Invoice sent: DR Accounts Receivable, CR Revenue (per line item account)
  • Invoice voided: Reversing entry posted automatically
  • Invoice written off: DR Bad Debt Expense, CR Accounts Receivable

From Payments

  • Payment received: DR Bank Account (or Undeposited Funds), CR Accounts Receivable
  • Deposit created: DR Bank Account, CR Undeposited Funds
  • Refund issued: DR Accounts Receivable, CR Bank Account

From Bills

  • Bill approved: DR Expense Account (per line item), CR Accounts Payable
  • Bill payment: DR Accounts Payable, CR Bank Account

From PSA Sync

  • Time entry synced: DR WIP / Labor Expense, CR appropriate account (based on COA mapping)
  • Contract revenue: DR Deferred Revenue, CR Service Revenue (based on recognition schedule)

See PSA Integration for GL mapping details.

From Stripe

  • Payment succeeded: DR Undeposited Funds, CR Revenue
  • Refund processed: DR Revenue, CR Undeposited Funds

Creating Manual Journal Entries

For transactions not captured by the automated flows:

  1. Navigate to Journal Entries
  2. Click New Journal Entry
  3. Enter a description (memo) for the entry
  4. Set the date
  5. Add lines — each line needs an account, debit or credit amount, and optional description
  6. Verify the entry balances (Books shows the difference)
  7. Click Save as Draft or Post
💡Common manual entries include accruals (recognizing revenue or expense before cash changes hands), prepaid expense amortization, and depreciation.

Reversing Entries

To reverse a posted journal entry:

  1. Open the journal entry
  2. Click Void
  3. Books creates a new entry with the debits and credits swapped
  4. Both entries remain in the audit trail
ℹ️You cannot edit a posted journal entry. To correct a mistake, void the original and create a new one.

Source Systems

Journal entries track where they originated:

SourceDescription
booksCreated within Books (manual or system)
psaSynced from PSA billable time
stripeStripe webhook events
hub_billingHub subscription billing events
importImported from external system
amsAssociation management system
chmsChurch management system

GL Entry Audit Trail

Every journal entry records:

  • Who created it (user ID)
  • When it was created and posted
  • The source system
  • An idempotency key (prevents duplicate entries from webhooks or syncs)
  • All modifications

View the full audit trail under Admin > Audit Log.

Accounting Periods

Periods control when entries can be posted:

  • Open — Entries can be posted freely
  • Soft-Locked — Warning shown, but entries can still be posted by admins
  • Hard-Locked — No new entries allowed

Manage periods under Accounting Periods in the sidebar. See Reconciliation for the month-end close workflow.

Recurring Transactions

Set up journal entries that repeat on a schedule:

  1. Navigate to Journal Entries
  2. Click New Recurring Transaction
  3. Define the entry template (accounts, amounts)
  4. Set the frequency (monthly, quarterly, etc.)
  5. Set the start date and optional end date

Books auto-generates and posts the entry on schedule. Common uses: monthly rent, insurance amortization, depreciation.

Next Steps