The three-pane layout
Reviewing an invoice means comparing three things: what the client's books say, what the original document says, and what you want to do about it. The workbench puts all three side by side — the invoice list on the left, a preview of the original document in the center, and the data, comment thread, and review actions on the right. Shift+F opens the document preview fullscreen when you need to squint at a line item.
Six issue buckets
The filter pills above the list sort the period's invoices by what's wrong with them:
- All — everything in the period.
- No document — no usable supporting document. A generated PDF of a finalized sales invoice counts as the document; a deleted upload does not.
- Check data — the data looks incomplete: missing invoice number, no vendor assigned, or a zero amount.
- Duplicate? — possible duplicates. Same-number detection (dismissable per invoice) plus amount-based hints: same amount within ±0.05 in the invoice currency and ±7 days. Opposite-sign pairs are labeled as a possible credit-note pair rather than a duplicate.
- Flagged — sent back to the client with a reason; waiting on their correction.
- Done — reviewed or ignored.
Counts come from the server over the full period — the list caps at 100 rows per page, but the pills never read a truncated page. The default sort is needs-attention: no document → check data → duplicate → pending → flagged → reviewed (dimmed), with ignored invoices collapsed into their own group.
Keyboard-first review
Every review action has a key, so a routine month is mostly two fingers:
| Key | Action |
|---|---|
| A | Approve |
| F | Flag (opens the reason modal) |
| S | Skip |
| I | Ignore |
| J / N / ↓ | Next invoice |
| K / P / ↑ | Previous invoice |
| D | Flip direction (incoming ↔ outgoing) |
| C | Focus the category picker |
| V | Focus the VAT-rate picker |
| M | Open match candidates |
| R | Request the document from the client |
| Shift+F | Document preview fullscreen |
| Cmd/Ctrl+K | Focus workspace search |
| ← / → | Switch workspace tabs |
| Cmd/Ctrl+Enter | Submit the flag modal |
Shortcuts are inert while a dialog is open or while you're typing in a field, and modified key combos never trigger review actions — no accidental approvals. A shortcut legend renders in the panel itself.
Flagging requires a reason: the modal offers six quick picks (Amount incorrect, Invoice number incorrect, Vendor missing, VAT issue, Payment proof missing, Document missing) plus free text, and Cmd/Ctrl+Enter submits.
Fixing data without leaving the screen
- Split-screen invoice editor — correct the supplier's invoice number, vendor, date, and net/VAT/gross amounts in a modal that keeps the original document on the left and the fields on the right, so the numbers you're correcting stay visible.
- VAT rate — correct via dropdown; the gross amount stays fixed while net and VAT recompute.
- Reclassify a wrongly finalized sales invoice — behind a deliberate danger confirm ("Void RE-…?"). The invoice number is voided but its sequence slot is kept and annotated — never a missing-number gap — the generated PDF is removed, and the invoice converts to incoming so the supplier's real number can be entered. Documents locked in a cancellation chain stay locked.
- Currency override — when a payment and an invoice disagree on currency, you can force the link: "Link anyway using your conversion?" It's an explicit advisor override, and audited like everything else.
Approve all — honest by design
"Approve all" processes the loaded page's pending invoices in sequential chunks of up to 50 (the server cap per bulk request). The confirm dialog is page-honest: if the period holds more pending invoices than the page you've loaded, it says "N of M" and never promises the server-wide count. The server decides skips — any VAT-bearing invoice without a usable document is skipped, not approved — and the result toast reports exactly what happened: "Approved N · M skipped (no document)". The button hides itself when the loaded page has no pending rows.
Nothing here is destructive: approve, flag, and ignore are all status changes you can revise later, and every action lands in the audit log.
Related
- Why VAT bookings need a receipt — the gate behind those skips
- Request a receipt from your client — the R shortcut's other half
- The transaction work queue, explained — the bank side of the same period
- Period checklist and VAT return prep — when the buckets read zero
- Credit notes and cancellations — the opposite-sign pairs in Duplicate?