---
id: UJ-022
title: Capture, correct, approve, and report an expense
actors: [staff user, approver]
surface: app.zync.is/expenses
goal: Turn a business expense receipt into an approved, categorized, reportable record.
trigger: User uploads a receipt, enters an expense, or receives a recurring expense.
preconditions:
  - Expense module enabled; user has expense permission; approver policy may apply.
success_state: Expense has vendor/category, tax treatment, business split, approval state, and report/invoice eligibility.
source_specs:
  - docs/specs/2026-05-30-expenses-module.md
  - docs/specs/2026-05-31-expense-ocr-correction-ux.md
  - docs/specs/2026-05-31-expense-approval-workflow.md
  - docs/specs/2026-05-31-expense-personal-business-split.md
  - docs/specs/2026-05-31-expense-reports-ui.md
  - docs/specs/2026-06-01-recurring-expenses.md
  - docs/specs/2026-06-01-vendors-suppliers.md
  - docs/specs/2026-05-31-expense-settings-ui.md
  - docs/specs/2026-05-31-expense-to-invoice-line.md
  - docs/specs/2026-05-31-product-service-library.md
---

## Happy path

1. User uploads receipt or enters expense → Zync stores attachment and extracts fields with OCR when enabled.
2. User reviews/corrects vendor, date, amount, currency, category, VAT, and personal/business allocation → save validates totals and tax semantics.
3. If approval is required, expense enters pending approval; approver approves or rejects with reason.
4. Approved expense appears in reports and can be included in invoice or accounting workflows; recurring rules generate future drafts when configured.
5. User opens vendor history/report → sees linked expenses and balances without changing source entries.

## Alternate and failure paths

- OCR confidence low → require user correction before finalization.
- Invalid receipt type, unsupported file, tax mismatch, rejected approval, or duplicate expense → preserve the source and show the exact correction/review state.
- Personal portion exceeds total or split is invalid → block save.

## Permissions and boundaries

- Approval is distinct from submission; submitter cannot approve when policy forbids it.
- Vendor and expense visibility is tenant/permission scoped.

## Source specs

- `docs/specs/2026-05-30-expenses-module.md`
- `docs/specs/2026-05-31-expense-ocr-correction-ux.md`
- `docs/specs/2026-05-31-expense-approval-workflow.md`
- `docs/specs/2026-05-31-expense-personal-business-split.md`
- `docs/specs/2026-05-31-expense-reports-ui.md`
- `docs/specs/2026-06-01-recurring-expenses.md`
- `docs/specs/2026-06-01-vendors-suppliers.md`
- `docs/specs/2026-05-31-expense-settings-ui.md`
- `docs/specs/2026-05-31-expense-to-invoice-line.md`
- `docs/specs/2026-05-31-product-service-library.md`
