For developers

The InvoiceJet API

POST an invoice, get verified structured data back in about 30 seconds. The same engine behind the app: every field carries a confidence level and cites where it came from on the document.

RESTJSONWebhooksIdempotent
curl -X POST 'https://nzsktgwehyzltgagloox.supabase.co/functions/v1/api/v1/invoices?wait=true' \
  -H 'Authorization: Bearer $INVOICEJET_API_KEY' \
  -F 'file=@invoice.pdf'
200 · response
{
  "id": "9b2f…", "object": "invoice", "status": "complete",
  "auto_verified": true, "quality_score": 0.97,
  "vendor_name": "Jetstream Supplies Co.",
  "invoice_number": "INV-2026-0042",
  "amount": 415.44, "currency": "USD",
  "issued_at": "2026-06-24", "due_at": "2026-07-24",
  "tax": 24.44,
  "line_items": [
    { "description": "Thermal shipping labels (roll of 500)",
      "quantity": 4, "unit_price": 28.5, "confidence": "high" }
  ],
  "field_confidence": { "vendor": "high", "amount": "high", "…": "…" }
}

wait=true returns the finished invoice inline, typically 10 to 30 seconds. Without it you get a 202, then poll or use webhooks. Create keys in the app under Developers. View the OpenAPI spec.


What you can build

Invoices in, verified data out, over HTTP.

Send invoices your way

POST a file, forward it to a private ingest address, or drag it into the app. A batch PDF splits into one record per invoice, automatically.

Verified JSON, not raw OCR

Two models must agree and the math has to check out before a field is marked high confidence. Every value cites its source on the page.

Signed webhooks

We POST a signed event to your endpoint when extraction finishes, so you can react without polling. Verify the signature before you trust it.

Get data out

Pull results as JSON or CSV. Confidence levels and sources travel with the data so your own systems can decide what needs review.


Auth and limits

Keys you can trust, limits you can plan for.

API keys

Authenticate with a bearer token. Create and rotate keys in the app under Developers. Keys are stored only as SHA-256 hashes, so no one, including us, can read them back.

How we protect your data

Rate limits and quotas

Your monthly extraction quota follows your plan: 10 on Free, 200 on Pro, and 1,000 on Business. Requests are rate limited per key; retries are safe thanks to idempotency keys.

See plans

SDKs and tooling

The API is plain REST, so it works with any HTTP client today. Official SDKs, a CLI, and an MCP server for AI agents are on the way.

coming soon

Ready to send your first invoice?

Create an account, generate a key, and POST a PDF. The full reference walks through every endpoint, the webhook signature scheme, and the response schema.