Expenses

Receipt Scanning

Use AI to read receipts and bank statements automatically, manage stored receipts, and understand per-plan scan limits.

Receipt Scanning

Receipt scanning uses AI to read a photo or PDF of a receipt and fill in the expense details for you — vendor, date, amount, taxes, and more — so you don't have to type them in. It also handles bank statements for reconciling foreign-currency transactions.

Scanning is optional and gated. It must be enabled in expense settings, requires an AI key to be configured, and counts against a monthly scan limit that depends on your plan.

How a scan works

  1. Upload a receipt image or PDF from the expense report.
  2. The AI reads the file and returns the extracted fields plus a confidence level (high / medium / low).
  3. Review the extracted values, correct anything that's off, and save them onto a line item.
PropertyValue
Accepted formatsJPG, PNG, GIF, WebP, PDF
Maximum file size10 MB
ModesReceipt (default) and Bank statement
Confidencehigh / medium / low (low-confidence scans are rejected)

What "receipt" mode extracts

FieldNotes
VendorMerchant name
DateYYYY-MM-DD
DescriptionShort summary
Expense typeOne of the standard expense categories
CurrencyDetected currency
Amount before taxPre-tax subtotal
GST / PST / HST / QSTCanadian taxes; US/foreign sales tax maps to PST
GratuityTip, if present
TotalGrand total
Line itemsIndividual purchases on the receipt
Payment methode.g. card, cash
Card last fourIf shown on the receipt
Foreign amount + exchange rateOptional, for foreign-currency receipts

What "bank statement" mode extracts

Bank-statement mode is built for reconciliation: it pulls a foreign-currency transaction, the CAD equivalent, and the exchange rate so a foreign charge can be matched to its home-currency value.

Saving the file as a receipt

When you scan, you can pass the report you're working on:

  • If you pass a draft report's id, the uploaded file is also saved as a receipt on that report.
  • Otherwise, only the extracted data is returned — nothing is stored.

There is also a bulk receipt scanner for processing several receipts at once.

Every scan uses AI tokens. A scan counts toward your monthly limit whether or not you save it — because the extraction work (and the token cost) happens regardless. The one exception is a low-confidence scan, which refunds its quota slot.

Scan limits per plan

PlanScans per month
Free20
Pro100
Business500
EnterpriseUnlimited
  • Reset. The counter resets at the start of your billing period — the Stripe invoice date for paid orgs, the 1st of the month for Free.
  • Override. A per-organization override can raise the limit above the plan default.

See limits & usage for how usage is tracked across features.

Which AI provider runs the scan

The provider is configurable — Claude by default, or OpenAI. If the active provider fails, the system automatically falls back to the other. Either way, scanning requires:

  1. Receipt scanning enabled in expense settings, and
  2. An AI key configured.

Receipt privacy

Receipts are never served from a public URL. When an image is displayed, the app mints a short-lived, single-view token per view, so the underlying file stays private and links can't be shared or guessed.

Why this matters. Receipts contain card numbers, addresses, and purchase detail. Per-view tokens mean a leaked link expires almost immediately and can't be reused.

If the service is temporarily unavailable, the token can't be minted and receipt images won't render until it recovers.

Troubleshooting

Message / symptomCauseFix
Monthly receipt scan limit reached (N/N)You've used all scans for the period (each scan counts whether saved or not)Wait for the reset, or upgrade your plan; an admin can apply a per-org override
Receipt scanning is not enabledThe feature is off in expense settingsAn admin must enable receipt scanning
No AI provider configuredNo AI key is setAn admin must configure an AI key
Could not read this receipt. Please ensure the image is clear…The scan came back low-confidenceRetake the photo in good light, flat and in focus; the quota slot for this scan is refunded
File too large. Maximum size is 10MB.File exceeds the size capCompress or re-photograph the receipt
Invalid file typeUnsupported formatUse JPG, PNG, GIF, WebP, or PDF
Failed to generate receipt token.Our systems are temporarily unable to mint the per-view tokenReceipt images won't render until the service recovers; data is unaffected