DocsChangelog

Open the app →

Changelog

What changed in the API, SDK, CLI, and MCP server. The API is versioned by path (/v1); additive changes land here without a version bump, and breaking changes would ship as a new path with a deprecation window announced in advance.

November 2026: Quotas, held invoices, and package fixes

  • Over the monthly quota, POST /v1/invoices and retries return 402 monthly_quota_reached (was 429) with limit, used, and upgrade_url. Failed extractions are refunded; deleting an invoice does not free quota. Invoices emailed in or uploaded in the app while over quota get the new status held (filter with status=held) and are processed on upgrade or at the reset on the 1st.
  • POST /v1/invoices/:id/extract returns the invoice in queued, so pollers no longer stop on the stale status. overdue=false now means not overdue. CORS allows PATCH. Rate-limit headers are computed from the oldest request in the window.
  • Exports: new xero shape (Xero bills import, DD/MM/YYYY dates). The QuickBooks lines shape gains an Account column, empty for now.
  • Webhooks: new endpoint URLs must be https, redirects are not followed, and delivery logs keep the response status code only, not the body.
  • Reference docs now cover the invoice resource's citations (page and verbatim text per field), paid_at, and entity_tag.
  • OpenAPI spec: paid_at, entity_tag, retry_accepted, key.scope, required fields, every error status, rate-limit and idempotency headers, and webhook signature headers.
  • Packages at 0.5.0 (not on npm yet): SDK honors mimeType, takes fileName/mimeType for URLs, verifies webhooks on Node 18, and adds invoices.iterate/events.iterate. CLI --all, --starting-after, and created-date filters. MCP list_events, pagination, and tool annotations. CLI and MCP bundle the SDK and have no runtime dependencies.

July 2026: Exports everywhere

  • GET /v1/exports: render CSV or JSON exports in three shapes — lines (QuickBooks bill import), invoices (summary ledger), vendors (per-vendor statement) — with the same filters as list. Up to 10,000 invoices per export, flagged truncated past that.
  • Packages at 0.4.0 (not published): SDK exports.create, CLI export command, MCP export_invoices tool. The in-app Exports page renders from the same server builder, so every surface produces identical files.

July 2026: Reliability and scopes

  • Idempotency-Key header on POST /v1/invoices: safe retries with 24-hour response replay.
  • GET /v1/events: durable event log for reconciling missed webhook deliveries.
  • Webhook redelivery: failed deliveries retry on a +5m/+30m/+2h/+8h/+24h backoff, with a manual Redeliver button in Developers.
  • API key scopes: full or read (read-only keys get 403 insufficient_scope on writes).
  • X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers on every authenticated response.
  • Packages at 0.3.0 (not published): SDK events.list and idempotencyKey, CLI events command and --version.

July 2026: Documents and connectors

  • GET /v1/invoices/:id/file: signed one-hour download URL for the original document.
  • POST /v1/invoices/:id/extract: re-run extraction (with force for complete invoices).
  • MCP connect guides for VS Code, Windsurf, and Zed alongside Claude and Cursor.

July 2026: Query and act

  • GET /v1/vendors, list filters (vendor, paid, overdue, amount and due-date ranges), PATCH /v1/invoices/:id (mark paid, entity tag), and POST /v1/invoices/:id/approval.
  • MCP grew to ten tools; the CLI gained vendors, paid, tag, and request-approval.

July 2026: Initial release

  • POST /v1/invoices (multipart, file_url, base64) with async-by-default extraction and wait=true.
  • Signed webhooks, the Developers page with keys and playground, public docs.
  • Source for @invoicejetai/node, the invoicejet CLI, and @invoicejetai/mcp (not published to npm yet).

Questions or something broken? Email support@invoicejet.ai.