Skip to content
PPDFInvoiceAPI

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

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.