Evenbead docs

Receipts and bank lines

How a receipt joins the bank line it pays for, how to post it in one step, and where you see it afterwards. (Dated 2026-10-16; ADR-0169.)

Add a receipt

On Receipts, choose a photo or a PDF (on a phone, Take a photo) and press Upload, or forward it to your receipt address (Settings, Receipt inbox). A PDF's text is read at once; reading a photo takes up to about 10 seconds. While it is read, the page says "Uploading and reading the receipt" and the button waits, so the receipt is not sent twice. Without JavaScript the hint under the button says how long it takes.

Match it to its bank line

The receipt's page lists the bank lines it could be, best first, with the reasons ("Same amount; Same day; Vendor matches"). Match attaches it to one.

When none is listed, or the suggestion is wrong, Choose a bank line opens a list of the charges and payments that have no receipt yet. Narrow it by account, dates (14 days before the receipt's date to 45 days after, at first), an amount range and words from the bank's description or the payee. The closest amounts come first; the list has pages. Match works the same as for a suggested line, and Unmatch on the receipt takes it off again.

Over the API: GET /v1/receipts/{id}/bank-lines (bank_account_id, from, to, min_cents, max_cents, q, limit, offset), then POST /v1/receipts/{id}/match. MCP: find_bank_lines_for_receipt, match_receipt, unmatch_receipt.

Post it

A receipt matched to a line that is not posted yet shows Post it: the line is categorized with this receipt attached, in one step.

  • Payee is the receipt's vendor (your existing vendor of that name, or a new one).
  • Category is filled in from, in order: your rule for the line, what this vendor was coded to before, the line's own suggestion, your default expense account. The page says which. Change either before posting if it is wrong.

Spending with a payee posts as an expense from that vendor with the receipt attached; the line then reads Categorized in Banking. If it was wrong, use Undo… on the bank line: the expense is voided and the receipt goes back to matched, ready to post again.

Over the API: GET /v1/receipts/{id} returns post (the pre-filled category, its source and reason, the payee) and bank_line; POST /v1/receipts/{id}/post takes account, payee_id or payee, class, project, memo and dry_run. MCP: post_receipt.

No double posting

Once a receipt is matched to a bank line, Create an expense is not offered: the line is what records the purchase, and an expense too would count it twice. The page says so and links to the line. The API refuses it as well (receipt_invalid): an expense from a matched receipt, or an expense or check that carries it as an attachment. If the receipt is not that charge, unmatch it first. A receipt already posted says what it is posted with.

The paperclip

Wherever a bank line, an entry or a document is shown, its receipts are shown with it:

  • Banking: each line (on every tab) with a matched or attached receipt has a paperclip, named for screen readers as "Receipt attached: Tallow Creek, $42.17". It opens the receipt.
  • Search: bank lines, documents and entries with a receipt have the same paperclip beside the result.
  • Expenses and Journal entries (lists): the same paperclip in the row (beside the payee, or under the memo and accounts), also inside each row's card on a phone.
  • An expense, check or bill and a journal entry: "Receipt attached: …" under the title, linking to each receipt.

Over the API, bank lines, GET /v1/journal-entries and GET /v1/journal-entries/{id}, GET /v1/documents and GET /v1/documents/{id}, and search hits carry receipts (MCP list_journal_entries, list_documents too).

What agents may do

Agents may upload, read, match and unmatch receipts. An agent's Post it (and its expense from a receipt) always waits for a person to approve it in Proposals (reason: receipt review); once approved, the line is posted with the receipt attached.