Skip to content

Developers

Invoice API

Read your invoices, clients, companies, payments, recurring schedules, uploaded supplier files, VAT or aging reports, and prioritized Next actions from your own code for free. Tax-inclusive €49 Lifetime Pro adds write operations and outbound webhooks with one payment, no monthly fee, and no annual renewal.

Base URL

https://freebillgen.com/api/v1

Authentication

Every request uses a Bearer token. Create one under Settings → API keys, give it the per-resource read/write scopes it needs, set an optional expiry, and send it on each request:

Authorization: Bearer <your-api-key>

Requests are authenticated to the account that created the key and checked against its assigned scopes. Keep the token secret and revoke it if it is exposed or no longer needed.

What you can do

  • Read invoices, clients, companies, payments and recurring schedules
  • Create and update them (write API - Pro)
  • Pull VAT and aging reports as JSON
  • Read the same bounded Next actions queue used by the dashboard
  • Read supplier e-invoice files you manually uploaded to the Inbox (not a Peppol/email receiving endpoint)
  • Download generic OASIS UBL and UN/CEFACT CII mappings for review (not profile-validated)
  • Register webhook endpoints for invoice and payment events (Pro)
  • Idempotency-Key on supported writes - changed request data under the same key returns 409
  • Cursor pagination via links.next, tunable with per_page (max 100)
  • Let AI agents read any shared invoice - schema.org/Invoice JSON-LD, plus Accept: application/json or text/markdown on every signed share link
  • No-auth, read-only MCP server at https://freebillgen.com/api/mcp (get_invoice, verify_invoice) for AI agents

Conventions

Idempotency
On supported create and action calls, send a unique Idempotency-Key. Retrying identical request data replays the original success; changed request data returns 409.
Pagination
Persisted resource lists are cursor-paginated - follow links.next (or pass ?cursor=...), and tune ?per_page= (max 100). The bounded action feed reports its limit and truncated state.
Money
Monetary amounts are exact JSON strings formatted to the currency's ISO 4217 scale, such as "121.00" for EUR or "500" for JPY. Unit prices can retain additional input precision.
IDs
Every resource is addressed by an opaque id, never a sequential number.

Example: list your invoices

curl https://freebillgen.com/api/v1/invoices \
  -H "Authorization: Bearer $FREEBILLGEN_API_KEY"

Open the full interactive API reference →

Invoice API questions

Is the invoice API free?

Yes - the read API is included in the free tier at no cost. The write API and outbound webhooks are included in tax-inclusive €49 Lifetime Pro: one payment, with no monthly fee or annual renewal.

How do I authenticate?

Create a Bearer token under Settings -> API keys, assign it read/write scopes per resource, and send it as an Authorization: Bearer header on every request. Keys are scoped to your own account and can be revoked or expired.

Can I create invoices programmatically?

Yes, via the write API, which is part of the Pro add-on. It produces the same professional invoices as the web app, with sequential numbering and configurable VAT handling applied server-side. The API does not certify local-law compliance.

How do I avoid creating duplicate invoices on retry?

Send a unique Idempotency-Key on the create call. Retrying identical request data with that key returns the original result. Reusing it with changed request data returns 409 instead of silently replaying a different invoice.

Can I read the invoices I have received?

Yes, free. GET /api/v1/inbox lists supported UBL/CII supplier files that you manually uploaded and FreeBillGen parsed, with the original retained for audit; GET /api/v1/inbox/{id} returns one. Syntax recognition is not profile validation, and these endpoints do not make FreeBillGen a Peppol, government-network, or email receiving endpoint.

Can an AI agent read an invoice without an account?

Yes. Every invoice you share by its signed public link is agent-readable on the same URL: the page embeds schema.org/Invoice JSON-LD, and sending Accept: application/json returns a structured invoice (parties, line items, totals, balance due, payment options) while Accept: text/markdown returns a clean low-token rendering. There is also a no-auth, read-only Model Context Protocol (MCP) server at https://freebillgen.com/api/mcp with get_invoice and verify_invoice tools. The link signature is the access token. Treat the full URL as a secret because anyone who receives it can open the invoice.

Get an API key free

Create an account, open Settings -> API keys, and start with the read API at no cost. No card required. If you later need write operations or outbound webhooks, Lifetime Pro is €49 once, tax included, with no renewal.

Create an account