Skip to main content

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.