Accounting Model

How LedgerLine turns app activity into double-entry accounting.

Connected apps send operational objects like customers, estimates, invoices, payments, vendors, bills, vendor payments, and documents. LedgerLine turns eligible posting and reversal actions into balanced accounting records, while keeping drafts, documents, reports, and setup metadata operational.

Double-entry by default

Accounting impact is represented as balanced journal entries. Debits and credits must net to zero before an entry is accepted.

Posting creates impact

Operational records such as draft invoices, estimates, bills, and vendor payments do not affect accounting until an explicit posting action runs.

Reversals preserve history

LedgerLine creates reversing journal entries instead of deleting or rewriting original posted history. Original journals remain visible and auditable.

Reports read posted state

A/R, A/P, ledger, P&L, balance sheet, and 1099 support views are read-only summaries over posted records and journal entries where implemented.

Money-In Model

Customers, estimates, invoices, and payments.

Money-in workflows become accounting only when invoices are posted or payments are recorded against posted receivables.

EventAccounting impactNotes
Customer createdNo accounting impactCustomer records identify the counterparty for future invoices and payments.
Estimate createdNo accounting impactEstimates are operational sales documents.
Estimate accepted or declinedNo accounting impactAcceptance changes estimate workflow state, not the ledger.
Estimate convertedNo accounting impactConversion creates a draft invoice. Accounting starts only when the invoice is posted.
Invoice createdNo accounting impactDraft or operational invoice creation does not touch the ledger.
Invoice postedDr Accounts Receivable, Cr RevenuePosting creates the customer receivable and revenue entry.
Payment recorded/appliedDr Cash or Clearing, Cr Accounts ReceivableCustomer payment reduces A/R. Payment creation does not create revenue.
Payment reversal/refundDashboard/full-refund foundation where implementedPosted payment reversal/refund restores invoice balances through reversing entries. Public refund/reversal APIs, partial refunds, disputes, and processor refund calls remain deferred.

Money-Out Model

Vendors, bills, A/P, and vendor payments.

Money-out workflows become accounting through explicit bill posting, bill reversal, vendor payment posting, and vendor payment reversal.

EventAccounting impactNotes
Vendor createdNo accounting impactVendor records identify the counterparty for bills and vendor payments.
Bill createdNo accounting impactDraft/open bills are operational until posted.
Bill postedDr Expense, Cr Accounts PayablePosting recognizes expense and the vendor liability.
Bill reversedDr Accounts Payable, Cr ExpenseBill reversal creates a reversing journal entry. Bills with active vendor payment allocations must have those payments reversed first.
Vendor payment createdNo accounting impactDraft/ready vendor payments and allocations are operational until posted.
Vendor payment postedDr Accounts Payable, Cr Cash/Bank/ClearingPosting pays down the vendor liability and reduces the selected cash, bank, or clearing account.
Vendor payment reversedDr Cash/Bank/Clearing, Cr Accounts PayableReversal restores A/P and cash/bank/clearing through a new reversing journal entry.

Example Ledger Entries

What posting writes to accounting.

EventAccounting entryNotes
Post invoiceDr A/R, Cr RevenueCreates customer receivable.
Record paymentDr Cash/Clearing, Cr A/RReduces receivable.
Post billDr Expense, Cr A/PRecognizes vendor liability.
Post vendor paymentDr A/P, Cr Cash/ClearingPays vendor liability.
Reverse billDr A/P, Cr ExpenseReverses bill expense and liability.
Reverse vendor paymentDr Cash/Clearing, Cr A/PRestores payable and cash/clearing position.

Documents And Reports

Evidence supports accounting, but does not create it.

Documents and evidence files can support transactions, invoices, estimates, bills, vendors, customers, and CPA/export packages. Files remain private and server-routed. Uploading, linking, reviewing, sharing, or archiving evidence does not create journal entries by itself.

A/R Summary

Reflects posted invoices less applied customer payments. Unposted invoices and non-accounting estimates are excluded.

A/P Summary

Reflects posted bills less posted, non-reversed vendor payment allocations.

1099 Summary

Uses posted, non-reversed vendor payments for tax-support reporting. It is not IRS filing, e-filing, payroll, or tax advice.

Ledger Reports

General Ledger, Trial Balance, Profit and Loss, and Balance Sheet views are generated from posted journal entries where implemented.

API Boundary Model

API calls are scoped and explicit.

  • Creating operational records is different from posting accounting records.
  • Public APIs expose create/list/read/update and post/reverse actions where those workflows are built.
  • API keys determine organization, connected app, and test/live environment.
  • Client-submitted trusted scope fields such as organization_id, connected_app_id, app_environment_id, environment, and mode are rejected.
  • The API Reference is read-only and never sends live requests or asks for real API keys.

External Provider Boundary

Core accounting is provider-neutral.

  • Core accounting does not require Stripe, SendGrid, Plaid, OCR/AI, IRS e-filing, or payroll providers.
  • Stripe Checkout/payment collection remains deferred unless implemented later.
  • SendGrid real email sending remains deferred unless implemented later.
  • Plaid bank feeds remain deferred.
  • OCR/AI parsing and automatic accounting from uploaded documents remain deferred.
  • IRS e-filing and payroll/HR remain deferred.

Where To Go Next

Pair the model with implementation docs.

Production Boundary

This page explains behavior. It is not production approval.

LedgerLine is ready to enter setup/testing from the code side. Production still requires operator setup, migrations, private buckets, RLS/Storage dry-run, smoke/security QA, and rollout planning.