# Reconcile money out

> Every debit in the feed is one of four things: a contractor bill (settle it with settle_bill_with_bank_debit), a supplier purchase (code it to a category with its GST, from the invoice's own lines where you have one), a movement of your own money (pair it as a transfer), or personal spend (a category treated as excluded). A receipt photographed before the debit arrived waits in the shoebox and is paired when the line lands; a mixed line is split so GST is claimed only on the business part. GST without evidence is held out of the BAS until the paper arrives.

URL: https://biloh.com.au/docs/how-to/reconcile-money-out
Category: How-to guides | Audience: operator | Updated: 2026-09-18

## 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](/docs/concepts/cash-basis-bas-from-the-bank-feed).

## 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.

1. `create_shoebox_upload_link` gives you a short-lived, single-use link to
   snap the receipt from a phone. A document Biloh already holds can be moved
   in with `move_document_to_shoebox`.
2. `list_shoebox_items` shows what is waiting, with the figures already read
   off the paper (supplier, ABN, total, GST, date) and `needs_human: true`
   when part of it could not be read.
3. When the statement lands, `suggest_shoebox_pairings` offers each receipt
   against an unspoken-for debit within `finance.shoebox.pairing_window_days`.
   It writes nothing.
4. `confirm_shoebox_pairing` is 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](/docs/concepts/envelopes-tax-set-aside-and-contractor-buffer).

## 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](/docs/how-to/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.

## Related

- [Reconcile money in](/docs/how-to/reconcile-money-in)
- [Close a month and a quarter](/docs/how-to/close-a-month-and-a-quarter)
