All applications583

Find your application

583 applications

Open full catalog

Browse applications by category or open the full catalog.

  1. Invoicing & Billing System
  2. Data model
Reference

The tables behind Invoicing & Billing System

Invoicing & Billing System ships with 17 tables, grouped here by the feature that uses them. Every record your team works with lives in one of them, and you can add fields and tables in Proto.

Tables
17
Features
6, plus shared settings
Change it
Add fields and tables in Proto

How the model is organised

Business setup

Business profile, Clients, Items, sales tax rates. Business identities, classifications and reviewed defaults provide stable references for prices and customer documents.

Billing documents

Estimates, estimate lines, Invoices, invoice lines. Documents preserve dates, amounts, customer decisions and issued versions. Detail records retain their owning document and cannot move across unrelated estimates or invoices.

Recurring work and receipts

Recurring schedules, recurring schedule lines, payment links, Payments, Reminders, Expenses, time entries. Schedules retain each billing occurrence, billable work remains reserved once, and verified receipts explain the collectible invoice balance.

Reporting and evidence

Tax forms1099 sent, audit events. Reviewed outgoing-payment workpapers remain separate from customer receipts. Immutable audit events explain protected changes and external acknowledgments.

Every table, by feature

Clients and estimates

4 tablesAbout this feature
  • Clients

    The customer record — kept light. Email is the natural key for dedupe. Carries a default payment term that overrides the business default at invoice creation time.

  • Items

    Reusable line-item catalog. Items can be services (priced per hour / day / project) or tangible goods (priced per each). IsTaxable controls whether sales tax is added at invoice line time.

  • Estimates

    Pre-invoice quote sent to a Client. Draft is sent as a sealed document revision. Sent may become Viewed; Sent or Viewed may become Approved, Declined or Expired. Only Approved can become Converted. Declined, Expired and Converted are terminal for that offer. An accepted offer stays Approved after its response deadline; it does not expire while waiting for conversion. Conversion copies the accepted snapshot into exactly one invoice. Changed terms after acceptance require a new linked estimate and a new customer decision.

    Linked to Clients, Invoices (set when converted)
  • Estimate lines

    Per-line detail on an Estimate. Snapshot item description, rate, taxable decision and the resolved fractional tax rate at line creation. Draft changes recalculate under the reviewed inputs; sending seals those values with the document. Later catalogue or tax-rate edits cannot recalculate a sent or accepted offer.

    Linked to Estimates, Items (null when ad-hoc line), Sales tax rates (resolved from Client billing state + ZIP)

Invoice preparation

5 tablesAbout this feature
  • Invoices

    The bill the Client owes. Draft becomes Sent after validation and sealing; the first permitted view may mark an unpaid Sent document Viewed. Recognized receipts derive partial paid or Paid from the issued balance. An unpaid Sent, Viewed or partial paid invoice becomes Overdue only after its due date. Paid never becomes Overdue merely as time passes. An evidenced refund or reversal can reopen a positive balance into partial paid or Overdue. An authorized void produces terminal Voided; viewing, reminders or delayed callbacks cannot undo it. Generated by direct user create, by estimate-converts-to-invoice, or by recurring-invoice-generation on the RecurringSchedules cadence. The rendered invoice PDF and the line-snapshot are frozen on Send. Line snapshot is a sealed JSON snapshot frozen at Status: Sent — never edited; for the live editable line set see invoice lines.

    Linked to Clients, Estimates (set when converted), Recurring schedules (set when generated)
  • Invoice lines

    Per-line detail on an Invoice. Snapshots Item info at line creation. Carries the tax-rate resolution and the optional billable-source link to an Expense or time entry that this line came from.

    Linked to Invoices, Items (null when ad-hoc), Sales tax rates, Expenses (set when line was rebilled from a billable Expense)
  • Clients

    The customer record — kept light. Email is the natural key for dedupe. Carries a default payment term that overrides the business default at invoice creation time.

  • Items

    Reusable line-item catalog. Items can be services (priced per hour / day / project) or tangible goods (priced per each). IsTaxable controls whether sales tax is added at invoice line time.

  • Sales tax rates

    US sales-tax rate per state plus optional ZIP override. Refreshed from a rate-data provider (tax jar / Avalara rate-only). The sales-tax-auto-calc workflow resolves the rate from the Client’s billing state + ZIP at line creation. This is rate auto-fill only — no nexus tracking, no marketplace facilitator logic, no filing; the user is responsible for filing.

Recurring billing

4 tablesAbout this feature
  • Recurring schedules

    Auto-generates an Invoice on a fixed cadence. The recurring-invoice-generation workflow runs nightly, sees NextRunDate <= today, instantiates a new Invoice by copying the child RecurringScheduleLines rows into fresh InvoiceLines, advances NextRunDate, and (if AutoSend = true) fires invoice-send-via-email.

    Linked to Clients, Invoices (most-recent generated)
  • Recurring schedule lines

    Per-line template detail on a recurring schedule. The recurring-invoice-generation workflow reads these rows nightly and copies each into a fresh InvoiceLines row on the generated Invoice (re-resolving tax rate from the current Client billing state + ZIP).

    Linked to Recurring schedules, Items
  • Invoices

    The bill the Client owes. Draft becomes Sent after validation and sealing; the first permitted view may mark an unpaid Sent document Viewed. Recognized receipts derive partial paid or Paid from the issued balance. An unpaid Sent, Viewed or partial paid invoice becomes Overdue only after its due date. Paid never becomes Overdue merely as time passes. An evidenced refund or reversal can reopen a positive balance into partial paid or Overdue. An authorized void produces terminal Voided; viewing, reminders or delayed callbacks cannot undo it. Generated by direct user create, by estimate-converts-to-invoice, or by recurring-invoice-generation on the RecurringSchedules cadence. The rendered invoice PDF and the line-snapshot are frozen on Send. Line snapshot is a sealed JSON snapshot frozen at Status: Sent — never edited; for the live editable line set see invoice lines.

    Linked to Clients, Estimates (set when converted), Recurring schedules (set when generated)
  • Invoice lines

    Per-line detail on an Invoice. Snapshots Item info at line creation. Carries the tax-rate resolution and the optional billable-source link to an Expense or time entry that this line came from.

    Linked to Invoices, Items (null when ad-hoc), Sales tax rates, Expenses (set when line was rebilled from a billable Expense)

Payments and reconciliation

4 tablesAbout this feature
  • Payments

    Records of money received against an Invoice. Webhook-fed for Stripe / Square; manually entered for Check, Cash, and Other. Carries the processor reference and the processor fee so the net deposit reconciles to the bank.

    Linked to Invoices, Clients (snapshot from Invoice)
  • Invoices

    The bill the Client owes. Draft becomes Sent after validation and sealing; the first permitted view may mark an unpaid Sent document Viewed. Recognized receipts derive partial paid or Paid from the issued balance. An unpaid Sent, Viewed or partial paid invoice becomes Overdue only after its due date. Paid never becomes Overdue merely as time passes. An evidenced refund or reversal can reopen a positive balance into partial paid or Overdue. An authorized void produces terminal Voided; viewing, reminders or delayed callbacks cannot undo it. Generated by direct user create, by estimate-converts-to-invoice, or by recurring-invoice-generation on the RecurringSchedules cadence. The rendered invoice PDF and the line-snapshot are frozen on Send. Line snapshot is a sealed JSON snapshot frozen at Status: Sent — never edited; for the live editable line set see invoice lines.

    Linked to Clients, Estimates (set when converted), Recurring schedules (set when generated)
  • Business profile

    Single-row configuration for the small business itself. Carries the legal name, logo, federal tax ID (used on 1099 forms), and the bank account that payouts land in. Only the Owner / Admin can edit; FederalTaxID and BankAccountNumber are masked to all other roles.

Billable work

6 tablesAbout this feature
  • Expenses

    Lightweight expense capture — a vendor, an amount, a category, and a snapped receipt photo. When BillableToClient is true and a Client is set, the Expense becomes available to add as a line on the next Invoice for that Client.

    Linked to Clients (required when BillableToClient = true), Invoices (set when this Expense was added to an Invoice)
  • Time entries

    Lightweight billable hours capture. When Billable = true and a Client is set, the time entry becomes available to add as a line on the next Invoice for that Client at the entry’s Rate.

    Linked to Clients (required when Billable = true), Items (used to default Rate and Description), Invoices
  • Invoice lines

    Per-line detail on an Invoice. Snapshots Item info at line creation. Carries the tax-rate resolution and the optional billable-source link to an Expense or time entry that this line came from.

    Linked to Invoices, Items (null when ad-hoc), Sales tax rates, Expenses (set when line was rebilled from a billable Expense)
  • Invoices

    The bill the Client owes. Draft becomes Sent after validation and sealing; the first permitted view may mark an unpaid Sent document Viewed. Recognized receipts derive partial paid or Paid from the issued balance. An unpaid Sent, Viewed or partial paid invoice becomes Overdue only after its due date. Paid never becomes Overdue merely as time passes. An evidenced refund or reversal can reopen a positive balance into partial paid or Overdue. An authorized void produces terminal Voided; viewing, reminders or delayed callbacks cannot undo it. Generated by direct user create, by estimate-converts-to-invoice, or by recurring-invoice-generation on the RecurringSchedules cadence. The rendered invoice PDF and the line-snapshot are frozen on Send. Line snapshot is a sealed JSON snapshot frozen at Status: Sent — never edited; for the live editable line set see invoice lines.

    Linked to Clients, Estimates (set when converted), Recurring schedules (set when generated)
  • Clients

    The customer record — kept light. Email is the natural key for dedupe. Carries a default payment term that overrides the business default at invoice creation time.

  • Items

    Reusable line-item catalog. Items can be services (priced per hour / day / project) or tangible goods (priced per each). IsTaxable controls whether sales tax is added at invoice line time.

Collections and reporting

5 tablesAbout this feature
  • Reminders

    Scheduled and sent late-payment reminders against an Invoice. The late-payment-reminder workflow seeds the four standard rows on Invoices.Status = Sent (Day 1 before due, Day 7 / 14 / 30 after due) and sends each at its scheduled time unless the Invoice is already Paid or Voided.

    Linked to Invoices
  • Invoices

    The bill the Client owes. Draft becomes Sent after validation and sealing; the first permitted view may mark an unpaid Sent document Viewed. Recognized receipts derive partial paid or Paid from the issued balance. An unpaid Sent, Viewed or partial paid invoice becomes Overdue only after its due date. Paid never becomes Overdue merely as time passes. An evidenced refund or reversal can reopen a positive balance into partial paid or Overdue. An authorized void produces terminal Voided; viewing, reminders or delayed callbacks cannot undo it. Generated by direct user create, by estimate-converts-to-invoice, or by recurring-invoice-generation on the RecurringSchedules cadence. The rendered invoice PDF and the line-snapshot are frozen on Send. Line snapshot is a sealed JSON snapshot frozen at Status: Sent — never edited; for the live editable line set see invoice lines.

    Linked to Clients, Estimates (set when converted), Recurring schedules (set when generated)
  • Payments

    Records of money received against an Invoice. Webhook-fed for Stripe / Square; manually entered for Check, Cash, and Other. Carries the processor reference and the processor fee so the net deposit reconciles to the bank.

    Linked to Invoices, Clients (snapshot from Invoice)
  • Tax forms 1099sent

    Year-end 1099-MISC forms issued by the user (the small business) to Clients (typically contractor / vendor clients) the user paid above the IRS reporting threshold during the calendar year. The year-end-1099-misc-generation workflow runs in late January, identifies eligible Clients (Issue1099 = true AND YTDPaidAmount > Threshold for the closed tax year), generates one row per Client per tax year, and queues e-file via the IRS filing partner. Note: this is the user issuing 1099-MISC outbound to their own contractors — the reverse direction of a 1099-NEC the user receives from clients of theirs.

    Linked to Clients (the contractor receiving the 1099)
  • Clients

    The customer record — kept light. Email is the natural key for dedupe. Carries a default payment term that overrides the business default at invoice creation time.

Shared and settings

1 table
  • Audit events

    Append-only business decisions, denied operations and completed effects.

Keys and references

Preserve canonical record identifiers, source-system identifiers and the workspace or legal-entity scope. A readable name is not a unique identity. Validate every referenced record before saving a transaction. Derived monetary fields are server-computed; imports cannot bypass that calculation or change issued history.

Migration order

  1. Confirm scope. Agree entities, currencies, responsible people and imported opening positions.
  2. Load masters. Resolve duplicate identities and reviewed policy defaults.
  3. Load documents. Preserve source references, line ownership and supporting files.
  4. Reconcile history. Compare balances and outcomes before enabling automated work.
  5. Verify access. Test permitted and denied actions using actual assigned roles.

Set up Invoicing & Billing System your way.

Start free, then use Proto to change fields, steps and approvals before your team goes live.

How to get started

A personal agent for your business

Get started with Proto

Your app is selected. Download Proto, then open it with this context.

Selected appInvoicing & Billing System

Choose your computer’s platform.

Download Proto

Install Proto, then return to this panel.

Already installed? Open Proto

Free to use. Your own model provider may charge for usage.