Overview
The Incoming Expenses page is your triage inbox for new expenses. The page is split into two sections:
- Review & Allocate Expenses (top) — draft expenses waiting for you to assign or delete.
- AI Processing Log (collapsible accordion at the bottom) — a forensic record of every inbound email or upload the AI has processed: pending, failed, attached, duplicate, skipped.
A red failed badge appears in the page header when there are unresolved AI processing failures — click it to jump to the processing log.
How Expenses Arrive Here
Expenses appear on the triage list when they are created without a project assignment. This happens when:
- Email invoices — A supplier sends an invoice to your account's processing email address. The AI extracts the details and creates an expense automatically.
- Drag & drop uploads — Drop a PDF, JPEG, PNG or DOCX onto the dropzone at the top of the page. The file is queued and processed by AI.
- API integrations — External tools create expenses via the API without specifying a
project_id. - Manual creation — An expense is created without selecting a project.
These expenses are temporarily held in an internal holding area until you assign them.
AI Invoice Processing
When a supplier sends an invoice to your account's processing email address, the AI automatically:
- Extracts invoice details — Reads the PDF or email body to identify the supplier, invoice number, amount, date, and line items.
- Matches the supplier — Finds or creates the supplier in your contacts based on the name and ABN.
- Checks for duplicates — Searches your existing expenses for potential matches from the same supplier with similar amounts and dates.
- Creates the expense — Adds the expense to Incoming with the extracted details and attaches the original PDF as a supplier invoice.
What Happens with Duplicates
If you've already entered an expense manually (e.g. from a quote or purchase order) and the supplier invoice arrives later by email, the AI will detect the overlap:
- Exact invoice number match — If the incoming invoice has the same invoice number and supplier as an existing expense, the system automatically attaches the PDF to the existing expense. No new expense appears in the triage list and no review is needed — the activity is recorded in the AI Processing Log as
attached. - Potential match — If the supplier and amount match but there's no exact invoice number match, a new draft expense is created and flagged for review. A duplicate-detection panel appears inline beneath the expense in the triage list, prompting you to either match it to the existing expense or keep both. See the Invoice Review help page for details.
AI Processing Log
The AI Processing Log accordion at the bottom of the page is a forensic view — it shows the last 25 inbound emails and uploads regardless of outcome. Use it when something seems missing or you want to investigate a processing issue. Each entry shows the date, sender email, subject line, processing status, and linked expense number (if one was created). You can:
- View the original file — Click the paperclip icon to open the original PDF or image.
- See why processing failed — Failed entries display the error reason directly below the status badge.
- Retry failed invoices — Click the retry icon (circular arrows) to resubmit the invoice for AI processing without needing to resend the email.
- Delete logs — Remove failed, skipped, or deleted entries you no longer need.
attached and duplicate entries are auto-cleared from the unacknowledged set as soon as the AI confirms the match — they live in the log purely for audit purposes and do not require any action from you.
Common Processing Errors
If an invoice fails to process, the error message will indicate the cause:
- Provider Timeout — The AI service didn't respond in time. This is usually temporary — click retry after a few minutes.
- Rate Limited — Too many invoices were sent in a short period and the AI provider is throttling requests. Wait a few minutes and retry.
- Authentication Failed — Your AI API key may be invalid or expired. Check your key in Account Settings > AI Processing.
- Provider Outage — The AI service is experiencing issues. This is temporary — retry later.
- Connection Failed — Could not reach the AI service. This may indicate a network issue or service downtime.
- Parse Error — The AI returned a response that couldn't be understood. Retrying often resolves this.
What You Can Do
Each row in the triage list shows the expense number, date, state, title, supplier and amount. Click the expense number to open the full record, or the eye icon to see a quick view without leaving the page. The actions menu (the dotted-square icon at the right of the row) gives you three choices:
Assign
Opens a single picker that lets you choose either:
- Operating Expense — confirms the expense as an overhead/operational cost. If the expense is still a draft, you can tick Finalise this draft now in the same dialog to post it to the general ledger in one step.
- A project — moves the expense into the chosen client or internal project. Once assigned, it appears on the project's financial documents and leaves this list.
Match to existing
Use this when the AI created an expense for an invoice you've already entered manually (for example from a quote or purchase order). It opens a searchable list of unpaid existing expenses; select one and the original PDF is transferred onto it, the AI-created duplicate is removed, and the processing log is updated to attached.
Delete Expense
Permanently removes the AI-created expense — useful when the AI processed something that wasn't really an invoice, or a clear duplicate you don't want to keep. Only available if the expense has no payments attached.
Best Practice
Check the Incoming Expenses page regularly so new supplier invoices don't pile up. Expenses left in the triage list won't appear in project-level financial reports until they are assigned to a project, and won't appear in operating-expense reports until they are confirmed as Operating.
If the same supplier regularly sends invoices, consider setting up a default project assignment so future invoices are automatically sorted.