1 min lesson
Invoices and cash application
Describe what "Cash application is the inverse: it links a payment to the invoice it settles" changes in practice.
Step 1 of 3
Invoices and cash applicationwhere money meets the ledger
Invoices and their line items link back to the order, the usage period and the revenue treatment so every charge is traceable. Cash application is the inverse: it links a payment to the invoice it settles. Real life is messier than one-payment-one-invoice.
Learn more
Advanced table
Cash application is a many-to-many between payments and invoices
- Cash scenario
- Partial payment
- What it means
- Customer pays part of an invoice
- How the model handles it
- Payment applied for less than invoice total; balance stays open.
- Cash scenario
- Overpayment
- What it means
- Customer pays more than owed
- How the model handles it
- Excess becomes unapplied cash or a credit on account.
- Cash scenario
- Lump payment, many invoices
- What it means
- One wire covers several invoices
- How the model handles it
- One payment, multiple applications, each linked to its invoice.
- Cash scenario
- Unapplied cash
- What it means
- Money arrived, can't be matched yet
- How the model handles it
- Parked in an unapplied bucket until matched; a controlled liability, not lost.
| Cash scenario | What it means | How the model handles it |
|---|---|---|
| Partial payment | Customer pays part of an invoice | Payment applied for less than invoice total; balance stays open. |
| Overpayment | Customer pays more than owed | Excess becomes unapplied cash or a credit on account. |
| Lump payment, many invoices | One wire covers several invoices | One payment, multiple applications, each linked to its invoice. |
| Unapplied cash | Money arrived, can't be matched yet | Parked in an unapplied bucket until matched; a controlled liability, not lost. |
Cash application is a many-to-many between payments and invoices. Model the application link as its own entity, not a foreign key.
Learn more
Optional practice
Practice: Invoices and cash application
QWhy should a usage_event table be append-only with a unique event_id, rather than mutable rows you update when corrections come in?