InvoiceFlow
PDF invoices → structured JSON
No account required.
Nothing is stored.
What comes back
- Invoice #
- INV-2026-0042
- Vendor
- Acme Office Supplies, LLC
- Bill date
- 2026-04-15
- Due date
- 2026-05-15
- Subtotal
- 2,007.00
- Total
- 2,167.56
Plus line items, currency, confidence flags, and reasoning per field.
Custom fields (0, add fields beyond the standard 9)
Tell Claude to extract additional fields beyond the standard nine (cost center, GL code, project number, anything domain-specific). Definitions are stored in your browser only and sent with each extraction request. Up to 10 fields.
No custom fields yet.
Zero retention
No database, no PDF persistence, no log line containing invoice content. The promise lives in the code, not a policy.
How it's enforced
The structured logger in src/lib/log.ts allows only this set of fields: correlation_id, pdf_size_bytes, pdf_num_pages, error_code, cost_usd, retry_count. Anything else is a compile-time type error.
The webhook endpoint in src/app/api/webhook/route.ts strips the model's reasoning strings (which contain extracted text) before forwarding to the user's URL.
No PDF bytes, no extracted fields, no invoice content is written to disk, queued, or persisted anywhere. There's no persistence layer to leak from.