CRMcy Docs

Expenses

Track staff out-of-pocket spend with receipt scanning.

Last updated 2026-05-05

Expenses capture staff out-of-pocket spending: amount, currency, category, vendor, and a receipt image or PDF (uploaded to S3, ClamAV-scanned). The optional OCR pass (see OpenAI) extracts vendor, total, tax, and date from the receipt and pre-fills the form for a one-tap submit on mobile. Submitted expenses route through an approval chain (department manager → finance) configured per tenant; approved expenses can be billed back to a Project (becoming reimbursable line items on the next invoice) or paid out via a finance export.

The detail screen shows the original receipt side-by-side with the editable fields so reviewers can verify in one glance.

Related endpoints

  • GET /api/tenant/expenses — list with status / staff / category filters.
  • POST /api/tenant/expenses — create with receipt upload.
  • POST /api/tenant/expenses/:id/submit — kick off approval chain.
  • POST /api/tenant/expenses/:id/approve — approver action.
  • POST /api/tenant/expenses/:id/reimburse — mark paid out.

See the source at apps/web/src/app/(tenant)/expenses and apps/api/src/expenses.