Businesses send invoices to clients to request payment. You may want to track, eg:
How to record invoices and payments varies depending on whether the business uses the Accrual or Cash accounting method.
Revenue is recorded (and taxed) in the period when the corresponding goods/services are provided - not at the time of payment, which usually happens after some delay. The expected payment is tracked as a receivable, which is a type of asset.
A good time to record revenue is when the receivable is created (by sending the invoice). So:
2020-02-01 * (202001ab) AB Inc. | invoice for work done in january
revenues:consulting:ab $-1000
assets:receivable:ab $1000
2020-02-15 * AB Inc. | receive full payment for 202001ab
assets:receivable:ab $-1000 ;= $0 ; optional: when paid in full, assert that
assets:checking $1000
Revenue is recorded when money is actually received:
2020-02-15 * AB Inc. | receive full payment
revenues:consulting:ab $-1000
assets:checking $1000
Invoices are strictly speaking not part of cash accounting. But if you want to track them, you could use equity to balance the transactions, as follows:
2020-02-01 * (202001ab) AB Inc. | invoice for work done in january
assets:receivable:ab $1000
equity:receivable $-1000
2020-02-15 * AB Inc. | receive full payment for 202001ab
equity:receivable $1000
assets:receivable:ab $-1000 = $0
revenues:consulting:ab $-1000
assets:checking $1000
Or use unbalanced postings (use a special top level account to avoid unbalancing the accounting equation, if you care about that):
2020-02-01 * AB Inc. | invoice for work done in january
(invoices:receivable:ab:202001ab) $1000
2020-02-15 * AB Inc. | receive full payment for 202001ab
(invoices:receivable:ab:202001ab) $-1000 = $0
revenues:consulting:ab $-1000
assets:checking $1000
If you're a freelancer in the US, eg, you may be responsible for paying estimated income taxes. Here's the above transaction, with additional postings to track and save for tax owed:
2020-02-15 * AB Inc. | receive full payment for 202001ab and save estimated tax
equity:receivable $1000
assets:receivable:ab $-1000 ;= $0
revenues:consulting:ab $-1000
equity:payable:us:2020 $150 ; estimate new tax owed, eg 15%
liabilities:tax:us:2020 $-150
assets:checking:tax:us:2020 $150 ; save that amount (in a virtual subaccount)
assets:checking $850
Another example:
2025-11-10 * AB Inc. | some expense
assets:bank:wf:bchecking $-50
assets:receivable:ab:202511ab $50
2025-11-14 * AB Inc. | another expense
assets:bank:wf:bchecking $-40
assets:receivable:ab:202511ab $40
2025-12-05 * AB Inc. | invoice
equity:unrecognisedrevenue $-1000
assets:receivable:ab:202511ab $1000
; + $90 reimbursements, already recorded
2025-12-12 * AB Inc. | payment for 202511ab invoiced on 2025-12-05
; receive payment
assets:receivable:ab:202511ab $ -1090 = $0
assets:bank:wf:bchecking $ 1090
; recognise revenue
revenues:ab $ -1000
equity:unrecognisedrevenue $ 1000 = $0
; estimate income tax
liabilities:tax:2025:us $ -250 ; 25% of revenue (eg)
expenses:tax:2025:us $ 250
liabilities:tax:2025:hi $ -60 ; 6% of revenue (eg)
expenses:tax:2025:hi $ 60
Examples tested on 2022-01-09 with:
(c) 2016-2025 Simon Michael & contributors |
Send updates via github,
matrix,
or IRC