I had two piles. LLC in one, side hustle in the other. The receipts sat on the table. The spreadsheet was whatever I typed at 11pm.
I built XPENZNET on Expo / React Native so the scan stays on the phone. On-device OCR: Apple Foundation Models + Vision first, llama as the fallback when Vision lies about the total. Android ML Kit is in the code but not in a store yet.
The hard part was not the camera. It was trusting folio fields and keeping a separate ledger per pile.
PDF export is free. CSV is a one-time IAP. No account. Nothing leaves the phone until you share the file.
App Store: https://apps.apple.com/app/id6744484775
If you want the receipt → CSV writeup: https://www.xpenz.net/receipt-scanner-csv-for-accountant/
If you have shipped on-device OCR: what did you use when Vision invented a total?
Not legal advice.