Which of four things is this debit?
Read the worklist (triage_bank_feed, or get_bookkeeper_worklist for the
counts by stream) and, for each debit, decide:
| The debit is | Do this | Where it lands |
|---|---|---|
| Paying a contractor's bill | Settle the bill | Purchases and GST report, 1B, the contractor's TPAR row |
| Buying from a supplier | Code it to a category with its GST | Purchases GST, 1B when substantiated, the P&L |
| Your own money moving to another account | Pair it as a transfer | Nowhere, by design |
| Personal | Code it to an excluded category | Nowhere |
Contractor bills
A contractor's tax invoice is recorded once with record_bill: a multi-line
bill whose lines link to the open payables that the platform accrued when the
work orders were released. When the debit that paid it lands:
"That $1,540 transfer is the window contractor's August bill."
settle_bill_with_bank_debit fans the debit across the bill's payables oldest
first, releases every payable the settlement now covers, marks the debit
matched, learns the contractor's bank alias, and sets the bill part paid or
paid. Part payments are first class: a debit smaller than the outstanding
leaves the bill part paid with the split recorded per payable. The bank's
value date is the paid date. Reversible with reverse_bill_settlement.
Two shortcuts: record_paid_bill records and settles a bill you never entered
in one call, and match_bank_debit_to_payable confirms a single payable
without a bill. A bill paid outside the feed (cash, a card not in the books)
is settle_bill_externally.
If the contractor is not registered for GST, finance.ap.unregistered_gst_enforcement
(default block) refuses a bill that claims GST from them.
Supplier spend
Register a supplier once with create_vendor (with verify_vendor_abn to take
its GST registration from the ABR rather than a guess). Then, per debit, the
best coding is the one the invoice itself states:
"Code the hardware store debit from the invoice I attached."
stage_vendor_coding_from_document reads the document's own lines and stages
a coding: vendor, reporting category, and claimable GST in cents. Staging
writes no figure. confirm_vendor_coding is the only door through which a
staged coding becomes a number any report shows. For a supplier you pay
every month, create_vendor_coding_rule matches a description substring to
the vendor and stages from its defaults after each import when
finance.vendors.auto_apply_coding_rules is on; you still confirm.
A one-off line with no document is triaged straight to a category
(triage_bank_feed in decide mode). Above the receipt-only threshold its GST
is held out of 1B as missing_evidence until a document lands; see
cash-basis BAS.
The shoebox: paper that arrived first
A receipt photographed in the car park has nowhere to live until the debit turns up in a statement days later. The shoebox is that place.
create_shoebox_upload_linkgives you a short-lived, single-use link to snap the receipt from a phone. A document Biloh already holds can be moved in withmove_document_to_shoebox.list_shoebox_itemsshows what is waiting, with the figures already read off the paper (supplier, ABN, total, GST, date) andneeds_human: truewhen part of it could not be read.- When the statement lands,
suggest_shoebox_pairingsoffers each receipt against an unspoken-for debit withinfinance.shoebox.pairing_window_days. It writes nothing. confirm_shoebox_pairingis the decision: it attaches the receipt as the debit's evidence and re-derives substantiation on both sides, so the purchases GST report claims what it now can with no further action.
A receipt for a purchase that will never appear in any bank feed (paid in
cash) leaves the shoebox with record_shoebox_cash_expense, dated the day
of the expense. An item is never deleted or aged out by time alone; past
finance.shoebox.aging_window_days it is named in your attention digest.
Mixed lines
A bank line carries one category and one GST figure. A supermarket debit that
is mostly groceries and partly cleaning supplies cannot be coded honestly as
one thing. split_bank_transaction divides it into typed splits, each with
its own category, GST in cents, treatment, note and optional receipt. The
splits must sum exactly to the line, no split may claim more than one
eleventh of its own amount, and a split claiming GST needs a document or an
on-record attestation of where the paper is. Every refusal happens before any
row is written. Reversible with unsplit_bank_transaction.
Your own money
A debit that is the weekly sweep to the tax set-aside is not an expense. Pair
it with the matching credit in the other account using match_transfer_pair;
get_reconciliation_suggestions lists the candidates under
possible_transfers. If only one half is in the feed, triage the line to the
own-account-transfer category instead. See
envelopes.
Fixed assets
A debit that bought a laptop, a mower or a trailer is not an expense either. Mint the asset from the debit so the register and the bank agree to the cent: track assets and depreciation.
Check the coding before you close
"What have I coded this month, by category?"
get_category_totals groups the period's money by reporting category with
each category's P&L treatment beside it. list_expense_records filtered on
missing receipt is the substantiation worklist. get_bank_triage_report is
the month's summary by category or rollup class.