FEATURES
Everything the API does — on every plan.
One endpoint turns your HTML into a pixel-perfect, multi-page PDF. No capability is gated behind a tier — the only differences are how many renders and templates each plan includes.
No credit card · 25 free credits to start
Documents never stored
Each PDF is streamed back in the response and discarded — nothing persisted on our side.
EU-based · GDPR-friendly
Operated by Matfy in the Netherlands. Your document content is processed transiently, never stored.
Chrome-grade rendering
The same /v1 API powering the live examples on this page — pixel-perfect HTML & CSS.
Your HTML, no lock-in
Templates are standard HTML/CSS that you own — no proprietary format, export and walk away anytime.
THE RENDER ENGINE
One call in, a PDF out
A single synchronous request returns finished PDF bytes — no queue, no polling, no infrastructure of your own.
One synchronous API call
POST your HTML (or a stored template + JSON) and the response body is the PDF. No job to enqueue, no webhook to wait on, no status to poll.
Fast renders, ~400ms
A clean invoice comes back in roughly 400ms — fast enough to generate on the click that triggered it and stream straight to the user.
Zero infrastructure
No headless-Chrome cluster to run, patch, scale or wake from cold starts. One endpoint replaces a whole class of moving parts you would otherwise own.
TEMPLATES & BRANDING
Total control over how it looks
It is your HTML, so the PDF looks exactly like your HTML — and a stored template means you POST tiny JSON forever.
Stored templates
Version your layout once, then POST just the data. Merge is plain {{ }} / {{{ }}} and dotted keys — predictable, no surprise template DSL.
Total branding control
Your logo, your colours, your CSS — the PDF is your own HTML. Drive the logo and accent colour from data so one template fits every client.
Web fonts, your way
Load fonts the standard web way — a Google Fonts link or your own @font-face over HTTPS. Correct € glyphs, real type, no substitution.
Images, SVG & full CSS
Logos via a normal <img>, inline SVG, gradients, flexbox, grid — the renderer is Chrome-grade, so what you see in the browser is what prints.
Store the layout once, POST the data forever
Save a template with {{ }} placeholders, render it by id with a tiny JSON payload, and let a raw {{{ }}} placeholder drop in repeating rows. Small requests, one consistent look across every client.
- Logo and accent colour both read from data
- No template loops to learn — rows are a raw placeholder
- Page size, margins and orientation set per request
<header style="display:flex;justify-content:space-between">
<img src="{{ from.logoUrl }}" height="40" alt="logo" />
<h1 style="color:{{ brandColor }}">INVOICE {{ number }}</h1>
</header>
<table>
<thead><tr><th>Item</th><th>Total</th></tr></thead>
<tbody>{{{ lineItemsHtml }}}</tbody>
</table>
<p style="text-align:right;font-weight:700">Total {{ total }}</p>BUILT FOR INVOICES
Multi-page documents that hold up
Page numbers, running headers and footers, page-break control and any paper size — the parts that make a real invoice, not a screenshot.
Page numbers & running footers
"Page 2 of 5" and a running header/footer on every page, driven by Chrome's built-in templating — no manual pagination math.
Page-break control
Force breaks where you want them and keep rows or cards intact across pages with standard CSS break rules — clean splits, never a row cut in half.
Repeating table headers
Long line-item tables repeat their header row on every page automatically, so a 12-page statement still reads like one document.
Any paper, any orientation
A4, Letter, Legal or A3, portrait or landscape, custom margins, print backgrounds — set the page geometry per request.
DEVELOPER EXPERIENCE
Everything you need to ship
Multiple keys, a live Playground, usage logs and full docs — the boring-but-essential parts, done.
Multiple API keys
Mint as many keys as you need — separate by environment or service, revoke any one — on every plan, including the free trial.
A live Playground & usage logs
Test renders straight from the dashboard, then track usage and read per-key activity logs to see exactly what every key did.
Full docs & examples
Every parameter, every error code and copy-paste invoice, receipt and statement templates — wired so you can go from zero to first PDF in minutes.
PRIVACY & PRICING
Private by default, priced fairly
Rendered PDFs are streamed back and never stored, and paid plans render completely unbranded.
Documents never stored
The HTML and data you send are processed transiently to produce the PDF, streamed back in the response, then discarded — nothing persisted on our side.
Remove the footer
The free trial adds a small "Generated with PDFInvoiceAPI" footer. Every paid plan removes it, so your documents are completely your own.
FAQ
Capabilities, answered
- Does it handle multi-page documents?
- Yes — a document flows onto as many pages as it needs, with page numbers, a running header and footer on every page, and table headers that repeat. CSS break rules keep rows and cards from being cut in half, so a long statement still reads like one document.
- Can I use my own fonts, logo and brand colours?
- Always — the PDF is your own HTML and CSS, so it looks exactly like your markup. Load web fonts the normal way, drop in your logo as an <img> or inline SVG, and drive the logo and accent colour from data so one template covers every client.
- What paper sizes and orientations are supported?
- A4, Letter, Legal, A3 and more, in portrait or landscape, with custom margins and print backgrounds — set the page geometry per request in the pdf options.
- Is there an SDK to install?
- No — it is one HTTP POST to /v1/render with your API key, so it works from any language. There are copy-paste examples for cURL, Node and Python, and nothing to add to your build.
- How is this different from running headless Chrome or a PDF library myself?
- You get Chrome-grade rendering — the same engine, so what renders in the browser renders in the PDF — without owning the headless-Chrome cluster, the memory leaks, the cold starts or the page-break math. One call replaces the whole pipeline.
- Can I remove the PDFInvoiceAPI footer?
- Yes. The free trial adds a small "Generated with PDFInvoiceAPI" line at the bottom of the page; every paid plan renders completely unbranded, so the document is entirely your own.
See it render your first PDF
Every feature on this page is live on every plan. Grab a key and POST your HTML — 25 free credits, no credit card.