Documentation

Bookkeeping & expenses

Expenses, AI receipt scanning, taxes, bank accounts and QuickBooks Online sync.

Reference data

  • CRM Settings → Taxes: one row per tax and rate (GST 5 %, QST 9.975 %, HST 13 %…). Taxes are applied per line on expenses, quotes and invoices.
  • CRM Settings → Expense categories: your chart of expense accounts.
  • Bookkeeping → Bank accounts: the accounts expenses are paid from.
If you plan to sync with QuickBooks Online, name categories and bank accounts exactly as in your QuickBooks chart of accounts — the sync matches by name.

Expenses

An expense (Bookkeeping → Expenses) has a supplier, date, category, bank account, currency and a note, plus two child tables: lines (description, amount, tax) and receipts (uploaded files up to 10 MB, images shown as thumbnails).

AI receipt scanning

Drop a photo or PDF of a receipt on Scan receipt (or hand it to Claude through the accx_scan_receipt / crmx_scan_receipt tool). The AI reads supplier, date, line items and taxes and creates the expense, its lines and the receipt attachment. Unknown suppliers are created on the fly. Every AI call — model, tokens, cost — is recorded in Settings → AI call log.

Review the result before you sync: the scan is a strong first draft, not an accountant.

QuickBooks Online sync

  1. Create an app at developer.intuit.com with the QuickBooks Online Accounting scope and copy the client id and secret.
  2. Register the redirect URI https://YOUR-HOST/.admin/Sync/callback in the app’s keys.
  3. Add QB_CLIENT_ID, QB_CLIENT_SECRET and QB_ENV (sandbox or production) to .admin/.env.
  4. Make sure the cron is running (it drains sync jobs every minute and pulls payments every 15 minutes).
  5. Open Settings → Accounting sync, click Connect to QuickBooks, approve, then Run backfill to push existing records.

After that, saving a synced record (customer, invoice, payment, expense, supplier) queues a push job. Sync links lists the local ↔ QuickBooks id pairs; rows marked Error carry the QuickBooks message and can be retried; LocalDeleted flags records deleted here that still exist in QuickBooks — nothing is ever deleted remotely.

Finance summary

The finance summary (also exposed to Claude as accx_finance_summary) reports revenue, collected, outstanding, AR aging buckets and what remains to be billed for a date range.