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 the statement ending balance for a period. The current workflow uses statement end date, prior completed ending balance, ending balance, and cleared posted rows.

Transaction Statuses

  • Unreconciled — Not yet matched
  • Reconciled — Matched to a journal entry
  • Excluded — Intentionally ignored (e.g., transfers between own accounts)

Reconciliation Workflow

  1. Prepare the account and statement period.
  2. Create or resume a reconciliation session.
  3. Enter the correct signed statement balance.
  4. Clear the transactions that appear on the statement.
  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.

For liability-style registers such as credit cards and loans, positive institution balance-due amounts usually become negative LedgerHQ balances.

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