Recording an expense
There are three ways to get an expense into CartonCrew: type it in by hand, snap a receipt on your phone and let AI read it, or import a batch from CSV. All three need at least a date and an amount — everything else is optional.
Who this is for: anyone with editor access or above. A viewer can see expenses and receipts but not add or change them.
Manual entry
- On the Expenses screen, click Actions, then New expense (or + New expense when the list is still empty).
- The New expense form has two tabs, Enter manually and Upload receipt. Leave it on Enter manually. (Snapping a receipt with a phone camera is a separate screen, described below — it is not a tab of this form.)
- Fill in the fields. Most are named by the grey text inside the box rather than a label above it:
- Vendor / payee — free text, with autocomplete suggestions drawn from vendors you’ve used before.
- The date (required) and Category (from your organization’s category list).
- Amount (required) and Tax amount (optional).
- Payment method — Card, Cash, Check, Bank transfer, or Other.
- Paid by (e.g. Org card, Jane) — who or what account paid.
- Invoice / reference number.
- Under Reimbursement, the Reimbursable and Reimbursed checkboxes.
- Notes.
- Click Save expense.
To edit later, click the vendor name, or Edit at the end of the row. Edit expense is the same form, plus a Receipt section with 📷 Take photo and Attach file for adding a receipt. Save expense keeps the changes.
Delete (on the row, and in Edit expense) removes the expense and its receipt for good. Only an Owner or Admin can delete, so only they see the button; an editor sees “Only an Admin or Owner can delete an expense.” under the list instead.
Snap a receipt (mobile capture + AI parse)
The fastest way to log spend on a phone. CartonCrew is an installable PWA, so adding it to your home screen makes this a one-tap, camera-first flow.
- Open the capture screen — the Snap receipt button (desktop), the floating camera button (phones), or Actions → Snap a receipt. This goes to
/expenses/capture. - Take photo to open the rear camera, or Upload image or PDF to pick an existing file. (Or tap or enter manually to skip the photo.)
- The photo is held on your device and previewed — nothing is uploaded yet.
- Read the receipt:
- If AI is on, tap ✨ Read receipt. CartonCrew uploads the photo, reads it, and prefills the vendor, date, amount, tax, category, and notes. A ”✓ Read by AI — verify below” note appears.
- If AI is off, you’ll see “Auto-read off” with a link to enable AI. You can still type the fields in.
- Check every field — AI can misread amounts and dates. The Amount field is front and center; expand More details for tax, payment method, paid by, reimbursable, and notes.
- Tap Save expense. On the confirmation screen, Add another keeps you in the flow for the next receipt, or Done — view all returns to the list.
Notes on the capture flow
- Photos are auto-compressed before upload (a multi-megabyte phone capture becomes a few hundred KB), so parsing is faster and cheaper.
- The 25MB limit and the JPG/PNG/WebP/HEIC/PDF allowlist apply here too.
- If you hit a network blip, your photo is kept in memory — just tap Read receipt or Save again; nothing is lost.
- AI’s category guess is mapped to the closest one of your category labels; if there’s no good fit it’s left blank for you to set.
- Start over (and the ← All expenses link, once a photo has been read or a save attempted) discards an unsaved receipt draft the same way Cancel does on the desktop form, so it never shows up as a $0 expense. If it can’t be removed, a message says so and you stay put to retry.
- Retake after Read receipt does the same: once you’ve taken or chosen the new photo, the draft made for the first one is discarded, and the new photo starts fresh. If you cancel the camera, you keep the photo you had. If the draft can’t be removed, a message says so and the first photo stays on screen.
Receipt-first entry on desktop
The full New-expense form also has an Upload receipt tab. Choose a file (or take a photo), and CartonCrew stores it against a draft expense. Click Parse with AI to prefill the fields, review them next to the receipt preview (a PDF receipt shows in the preview the same way a photo does), then Save expense. The same AI-on requirement applies.
Changed your mind? Cancel, or closing the form with its ✕, throws the draft away, receipt and all, so no $0 expense is left in the list — every way out of an unfinished receipt-first draft discards it the same way. Any editor can do this for a draft they started themselves; it is not the same as Delete, which stays Owner or Admin only. If the draft cannot be removed, for example because the connection dropped, a message says so and the form stays open so you can try again or save it. A draft someone else started, or an expense that already has details saved, can only be deleted by an Owner or Admin.
Bulk import from CSV
Use this to load many expenses at once — for example a card statement export.
- Open Actions → Import from CSV.
- Upload a
.csvfile or paste CSV text. You need a header row and at least a date column and an amount column. Dates must be inYYYY-MM-DDformat. - CartonCrew auto-matches your columns to the expense fields. On the Match your columns step, fix any mapping using the dropdowns. Mappable fields: Date (required), Amount (required), Vendor, Category, Tax, Payment method, Paid by, Reference, Notes, and Reimbursable.
- The preview shows how many rows are ready to import and how many will be skipped (a row is skipped if its date or amount is missing or invalid). Skipped rows are highlighted.
- Click Import to create the valid rows. You’ll get a toast confirming how many were inserted (and how many were skipped).
Bulk import does not attach receipts — add those afterward by editing the expense.
Last updated: 2026-10-09 · Applies to: CartonCrew v1.110+