Skip to content
ignitai Get the app
← Back to blog · · 10 min read

Scan receipts to a spreadsheet on iPhone (2026 workflow)

Capture paper receipts with the iPhone camera and turn them into a clean spreadsheet — on-device on iOS 26+, with categories, totals, and tax broken out by row.

guides receipts iphone expense-reports

You’re at lunch. The waiter drops the check. You photograph it on your iPhone and put the paper in your wallet, where it will fade, get crumpled, and eventually become unreadable a week before your accountant asks for it. Multiply by twenty-three lunches, eight Ubers, four hotel nights, and the conference week you keep meaning to file. Month-end arrives. The receipts are everywhere — in Photos, in Mail, in Files, screenshotted from confirmation emails — and your spreadsheet is empty.

The iPhone is the device the receipts already live on. The camera is the one you used to capture them. The work — turning that pile of images into one row-per-receipt spreadsheet your accountant or your expense system can ingest — should happen there too, without uploading photos of every place you ate to a service that promises to be private.

This guide walks through the workflow that actually works in 2026: scan receipts to a spreadsheet on iPhone, on-device on iOS 26+, with categories, dates, tax, and totals landing in the right columns the first time.

Why iPhone (not iPad, not Mac) for receipt capture

The iPad-side workflow exists for desk-mode review — the larger screen wins for spot-checking forty rows. The iPhone version exists for everything before that: the capture itself, and the cases where the iPad isn’t with you.

Three reasons the iPhone is genuinely the right tool for receipt scanning specifically:

  • It’s the camera you have. Receipts arrive in moments — at the table, at the checkout, getting out of an Uber. The iPhone is in your hand. Any workflow that requires you to “scan it later on the iPad” is a workflow that doesn’t survive contact with how receipts actually arrive.
  • Apple’s Vision framework on iOS 26 is genuinely good at thermal paper. De-skew, shadow correction, glare suppression — the document-scan path in iOS handles fluorescent restaurant lighting better than most flatbed scanners did a decade ago. For thermal receipts that fade within weeks, capturing immediately is the only path.
  • On-device extraction means the receipt never leaves the phone. A receipt has your card’s last four digits, where you were, and when you were there. For a freelancer or a small-business owner that’s a real privacy surface, and the on-device path on iPhone 15 Pro or newer running iOS 26 means none of it goes anywhere.

If you’re a Mac- or iPad-primary person who only uses the iPhone for capture, that’s fine — outputs sync via iCloud, so the iPhone scan shows up on the iPad spreadsheet within seconds. For a phone-primary user the entire workflow can stay on the device.

Why receipts are the worst kind of “image to spreadsheet” problem

If bank statements are hard, receipts are harder. Every receipt is a one-off. Every restaurant prints differently. Every retailer puts the total in a different place. The substrate fights you — thermal paper that fades, paper that gets crumpled in a wallet, photos at angles in fluorescent lighting.

Concretely, the failure modes a receipt extractor has to handle:

  1. Multiple totals on one receipt. Subtotal, tax, tip, grand total. The “amount” you want for an expense report is the grand total. The “amount” your accountant wants for sales-tax recovery is subtotal plus tax broken out separately. A naive extractor grabs whichever number it sees first.
  2. Currency ambiguity. A $ on a Tokyo hotel receipt might be USD (the hotel quoted in dollars) or a sloppy template using the wrong symbol for JPY. You want both the original currency and the amount as a number.
  3. Date format chaos. US receipts say 04/17/26. UK receipts say 17/04/26. European retailers say 17.04.2026. Asian hotels sometimes say 2026/04/17. Without a hint, no parser gets this right uniformly across a mixed stack.
  4. Handwritten tips on a printed restaurant slip. OCR has to read the print, the model has to recognize the handwriting overlay, and the math has to reconcile against the printed subtotal.
  5. Photo geometry. Receipt photographed at an angle on a wood-grain table with one side in shadow. Apple’s Vision framework on iOS 26 de-skews and contrast-corrects on capture, but the downstream extractor still has to be trained on the result.

A tool that solves only the easy case — a single, perfectly photographed restaurant receipt under bright neutral light — is useless for an actual end-of-month batch. Solving the messy cases is the entire job.

Method 1: ignitai with the iPhone camera (the main path)

ignitai handles receipt extraction as a vision-plus-language task: capture the image, run on-device OCR, then ask the on-device language model to find the fields you want. The end-to-end flow on iPhone:

  1. Open ignitai. Tap the camera button. This launches the system document-scan UI tuned for receipts — high contrast, edge-detection on dark surfaces, automatic capture when the receipt is in frame and stable.

  2. Capture the receipt (or several). Hold the iPhone over the receipt. The shutter fires automatically when geometry locks. For batch capture — the conference-week stack of twelve — keep flipping receipts under the camera; each one becomes a page in the same document. iOS 26’s document scanner handles a stack of fifteen in about two minutes of physical motion.

  3. Describe what to extract. Plain English, once for the whole batch. The prompt that works for a typical mixed expense stack:

    “For each receipt, return date (ISO 8601), merchant, category, subtotal, tax, tip, total, currency, and payment_method (card last four if visible). If category isn’t printed, infer from merchant name. If currency isn’t printed, infer from merchant locale.”

    Save it as a preset. Next month it’s one tap.

  4. Pick CSV or XLSX. CSV if you’re piping into Expensify, QuickBooks, Xero, or your accountant’s spreadsheet. XLSX if you want number formatting (currency, percentages) preserved for review.

  5. Hit Extract. ignitai runs the OCR locally via Apple’s Vision framework, then routes the OCR’d text plus image embeddings through the on-device Foundation Model. A 12-receipt stack on iPhone 15 Pro or newer takes about 20–30 seconds end to end.

  6. Review the preview. ignitai shows a paginated table view of the extracted rows before saving. Spot-check three things per row: the merchant name matches what the receipt actually says, the total matches the bottom-line number on the receipt, and the date is in this calendar year (date misreads on faded thermal paper are the most common error mode).

  7. Save to Files. Drop into iCloud Drive, OneDrive, or Dropbox. Numbers, Excel for iOS, or Google Sheets opens it natively. Or share directly into Expensify or your expense tool’s iOS share extension.

For an existing photo (already in Photos or Mail), skip step 2: from the share sheet on a photo, tap ignitai instead. The same prompt and output pipeline runs against the photo as if you’d just captured it.

Method 2: Apple Notes scan + manual transcription

If you only have one receipt and don’t want to install anything:

  1. Open Notes.
  2. Tap the camera icon → Scan Documents.
  3. Capture the receipt. Notes runs Apple’s standard document scan and saves the image.
  4. Long-press the scanned text to copy. Paste into Numbers manually.
  5. Type the merchant, date, total into separate cells by hand.

This is fine for a single receipt and impossibly slow for any real batch. The Notes scan is good (it’s the same Vision framework underneath) but the parsing-and-typing step is yours. For one receipt, four minutes. For twenty, two hours. The math stops favoring the manual path almost immediately.

Method 3: Photos + Live Text → manual

iOS’s Live Text feature lets you long-press text in any photo and copy it. So:

  1. Open the receipt photo in Photos.
  2. Long-press the merchant name. Copy. Paste into Numbers.
  3. Repeat for date, total, tax.

This works. It’s also one row in a spreadsheet per ninety seconds of tapping, and it gets nothing right about category, currency normalization, or tip reconciliation. For the one receipt you forgot to scan, fine. For the actual job, no.

Method 4: Cloud expense apps (Expensify, Zoho Expense, Concur)

Expensify, Zoho Expense, and SAP Concur all have iPhone apps that do exactly the receipt-to-spreadsheet job. They work — and for a corporate user whose company already pays for one, you should use that. The reasons they’re not the right answer for a freelancer or small-business owner:

  • Per-user monthly pricing. Expensify is $5–18/user/month after a small free tier. For a sole operator that’s $60–216/year for a job that should take 30 seconds per receipt with a one-time app cost.
  • Receipts go to their cloud. Privacy policies vary, but every one of them retains the image. For business expenses that include client lunches and travel patterns, that’s a surface your books don’t need to live on.
  • Lock-in. The export from Expensify to a generic CSV is fine; the export of two years of receipt images out of Expensify if you switch is its own project.

For a corporate user with the subscription paid: use Expensify. For everyone else: a one-time-cost on-device app does the same job without the recurring spend or the upload.

The three reconciliation checks per receipt

Once the spreadsheet is written, three quick checks separate “I have a file” from “I have a clean expense report”:

  1. Subtotal + tax + tip = total. Add a column: =subtotal + tax + tip. It should equal the extracted total for every row. Where it doesn’t, the OCR misread one of the four numbers — usually tax (a 5.40 read as 8.40 because the 5 was a faded thermal 5). Catching it now costs ten seconds; catching it at expense-report submission costs your finance team’s patience.
  2. Currency normalization. If the batch includes a Tokyo hotel and a London dinner alongside US lunches, you want a total_usd (or whatever your home currency is) column populated with total * fx_rate(currency, date). ignitai can return both original_amount and converted_amount if you ask in the prompt; otherwise add the conversion column in Numbers using the Currency Conversion live data.
  3. Date sanity. Sort by date ascending. Anything dated more than a year in the past is almost certainly an OCR misread on a faded thermal slip (the 26 got read as 21). Re-photograph or correct manually. Anything dated in the future is an OCR misread on a hotel folio (the check-out date got pulled instead of the check-in date).

Skip these three and you’ll find the error when your reimbursement is denied or your books don’t reconcile against your card statement.

Batch mode: a month (or a quarter) in one pass

The whole point at month-end:

  1. Pile the paper receipts on your desk. Open ignitai.
  2. Tap camera. Flip through the stack, letting auto-capture fire on each.
  3. For receipts that arrived as photos (Uber, hotel, online purchase confirmations), open the share sheet from Photos and pick ignitai to add them to the same batch.
  4. Apply the saved prompt preset.
  5. Pick CSV.
  6. Extract. Single output, one row per receipt, with source_image populated so each row traces back to the original photo for audit.

For a month of mixed expenses, this is the difference between a Saturday afternoon and the time it takes a coffee to brew. For per-trip expense reports it’s the difference between filing and not.

When this workflow doesn’t fit

Honest edge cases:

  • Mileage receipts (gas station receipts where you actually want odometer-based mileage). The receipt itself is an extraction job; the mileage calculation isn’t. Use the IRS or HMRC mileage rate in a separate Numbers column.
  • Hotel folios with itemized day-by-day charges. A multi-night hotel folio is structurally an invoice with line items, not a receipt. Adapt the prompt: “Return one row per line item with date, description, amount, and tax. In a separate sheet, return the folio metadata: hotel name, check-in, check-out, guest, total.”
  • Receipts in non-Latin scripts. ignitai’s OCR handles Japanese, Chinese, Korean, Arabic, Hebrew, and Cyrillic on iOS 26 (Vision framework support). The prompt should specify whether you want descriptions preserved in original language or translated to English — pick one explicitly or you’ll get inconsistent output across the batch.
  • Reimbursable vs. personal mixed in the same batch. Add a reimbursable column to the prompt — “return reimbursable as ‘yes’ if the merchant is a business expense category (restaurant, transit, hotel, office supply) and ‘no’ otherwise” — and filter in Numbers before submission.

Bottom line

For paper receipts that need to end up in a spreadsheet on iPhone: install ignitai, tap the camera, capture the stack, write the prompt once, pick CSV, hit Extract. For one stray receipt the iPhone happens to have, Notes scan plus manual transcription works in a pinch. For corporate users with Expensify already paid for, use that. For everyone else, the on-device path is the shortest distance from a stack of paper to an expense report your accountant can actually use.

The iPad-side review workflow for the same scans is in the iPad receipts guide; the bank-statement equivalent on iPhone is here; the Mac-side batch for end-of-quarter consolidation is in the Mac CSV guide. The app is the same across all three; presets and outputs sync via iCloud, so the iPhone is the always-on capture surface and the larger devices are where review happens.

Get ignitai on the App Store — free download, $19.99/mo unlocks unlimited extractions after the 3-day trial.