Structured finance from invoices — for teams that ship.
Upload PDFs or images (or pass a URL), get validated JSON, persisted rows, BI, reporting currency, and rule-based insights — without re-sending full documents to a model for analytics. Built for developers, agencies, and finance operators wiring their own pipeline.
POST /api/extract-invoice-file multipart field "file" Authorization: Bearer API key (bf_live_…) or session JWT // Response — example parsed fields + meta { "counterparty": "Acme Corp", "invoice_number": "INV-8829", "total": 1450.0, "tax": 116.0, "currency": "USD", "meta": { "source": "extracted", "invoiceId": "…" } }
One pipeline from upload to numbers you trust
OCR and PDF text, heuristics, and model-assisted JSON extraction — then storage, dedupe, quotas, and finance APIs on the structured data (not re-reading every PDF for BI).
Ingestion
PDFs, JPEGs, or PNGs — URL or multipart upload. Optional expense vs revenue per document.
Extract & merge
OCR when needed, model-assisted JSON extraction with fallbacks, merged with heuristics and schema repair so line items and totals stay coherent.
Persist & analyze
Stored in the database with usage accounting and dedupe. Same HTTP surface powers the dashboard and your integrations — aggregates, trends, and insights on fields already saved.
Built for messy real-world PDFs
International dates, currencies, VAT-style lines, and weak scans: text layers plus OCR, then extraction and validation tuned for invoice-shaped documents — not a generic “drop any PDF” toy.
Throughput you can plan for
Async-friendly extraction with clear quotas and duplicate detection — scale from a single integration to higher volume without surprise billing on mystery metrics.
Drop into your stack
REST on your deployment: Bearer JWT or bf_live_ API keys, predictable JSON, and interactive explorers in the dashboard so you debug before you wire production.
Sensible data boundaries
BI, insights, and aggregates run on structured fields already stored — we do not send full PDFs back through a model for analytics. TLS in transit; encryption at rest follows your hosting platform. You own your compliance story.
curl -X POST "$NEXT_PUBLIC_APP_URL/api/extract-invoice-file" \
-H "Authorization: Bearer $BILLFLOW_API_KEY" \
-F "file=@invoice.pdf" \
-F "invoice_kind=expense"Same routes your dashboard calls
Reference docs and in-app API explorers for extraction, invoices, BI, charts, and insights. Copy working examples, then run them against your project URL and API key.
Open documentationShip the invoice layer you do not want to rebuild
Free tier: limited successful extractions per rolling window (see Pricing). No credit card required.