LedgerHQ
Modules

Banking & Reconciliation

Manage bank accounts, Plaid-connected bank activity, and reconciliation.

Bank Accounts

Create bank accounts linked to your chart of accounts. Each account owns its own bank transactions and reconciliation workflow.

Fields

FieldDescription
Account NameDisplay name (e.g., "Business Checking")
Account NumberMasked number for display
Bank NameName of the bank
CurrencyAccount currency
CountryCountry or region of the account
Account TypeChecking, savings, credit card, cash, loan, investment, or other
Accent ColorVisual identity used across the banking UI
GL AccountChart of accounts link

Bank Activity

Bank and card activity arrives through Plaid-connected feeds, which sync internally on a webhook-driven basis. There is no public "import rows" endpoint. Partner posting endpoints also create bank-register rows automatically when a purchase, deposit, transfer, or bill payment uses a bank-linked chart account.

Synced rows enter as bank transactions with sourceType: plaid_bank_feed and store provenance including the external transaction ID, sync batch, and raw payload metadata.

The supported flow is:

  1. Connect a bank or card through Plaid and map it to a bank account
  2. Let Plaid-connected feeds sync activity automatically
  3. Hold fresh pending rows until they settle or age past the pending window
  4. Review, categorize, match, or post eligible transactions
  5. Reclassify account/contact/tax fields when posted activity needs cleanup
  6. Reconcile or exclude posted register activity
  7. Pull financial packet JSON for report rendering

Pending Plaid rows are visible evidence, not posting work. They are held out of coding, rules, AI suggestions, matching, posting, and reconciliation until settled or aged into the normal workflow. Internal transfer and credit card payment matching can claim both sides of a movement atomically when the pair is clear.

Relevant routes:

MethodPathPurpose
GET/api/v1/bank-feedsList connected bank feeds
GET/api/v1/bank-feeds/healthPer-connection and per-account Plaid feed health
POST/api/v1/purchasesPost spend activity and create bank-register activity when bank-linked
POST/api/v1/depositsPost received money and create bank-register activity when bank-linked
POST/api/v1/transfersPost movement between two balance-sheet accounts
POST/api/v1/bill-paymentsPost a bill payment from a bank-linked or other balance-sheet account

Reconciliation

Reconciliation confirms that a bank or credit card register agrees with a statement ending balance. The workflow uses statement end date, prior completed ending balance, ending balance, and manually checked posted rows.

Transaction Statuses

  • Unreconciled — Posted and still available to check in a reconciliation
  • Reconciled — Checked in a reconciliation session
  • Excluded — Intentionally ignored (e.g., transfers between own accounts)

Reconciliation Workflow

  1. Record the account's starting date and balance.
  2. Create or resume a reconciliation session.
  3. Enter the correct signed statement balance.
  4. Check the transactions that appear on the statement. Eligible unchecked rows remain in the list regardless of date until reconciled.
  5. Edit or cancel in-progress setup if the session was started incorrectly.
  6. Finish at zero difference, or intentionally create a Reconciliation Entry for an accepted variance.

When The Statement Dates Don't Line Up

Each reconciliation starts the day after the last completed one ends. If a statement prints a start date a few days later (for example, August 3 after a July 31 reconciliation), or its opening balance equals the last ending balance, LedgerHQ still treats it as covering everything from August 1. The reconciliation opens normally; nothing is skipped.

To change the statement ending date, select the pencil next to Statement ending on the reconciliation page. The next reconciliation then starts the day after the new date, so a statement ending August 29 makes the next one start August 30.

Adding Statement Lines Missing From The Register

When a line on the statement has no match in the register, it appears under On the statement, not in the register on the reconciliation page. Pick the account for each line (LedgerHQ suggests the one used before for the same amount) and select Add, or Add all. Each line is posted to the register and checked in the reconciliation. A line is only ever added once.

For credit cards and loans, enter balances as the statement prints them: an amount owed is positive and a credit balance is negative.

Statements And Coverage

Statement PDFs and uploads live in the Statements workspace. LedgerHQ can store Plaid-provided statements, firm uploads, and client uploads. OCR/extraction reads structured statement data when available, and statement coverage policies track which account/month periods are verified, received unverified, mismatched, waived, or missing.

Statements support reconciliation and close, but they are not the reconciliation itself. A verified statement period means the firm has statement evidence. It does not mean the register is already reconciled.

On this page