Use case · Invoices
The invoice PDF API
Every billing system eventually needs to produce invoice PDFs — thousands of them, on the 1st, each personalised from your database. Doing that in-house means running a headless-browser farm you'd rather not own.
Send the invoice HTML you already render in your app; get back a pixel-perfect PDF in one request. Page numbers, headers and footers, precise totals — all in plain CSS.
01How it works
Month-end at scale
Fire thousands of renders when the billing job runs. A warm browser pool and concurrency control keep it fast and predictable.
On your brand
Full modern CSS — your fonts, colours and layout, exactly as designed, not a spreadsheet export.
Safe retries
Send an Idempotency-Key so a retried invoice returns the same document and never double-charges quota.
02One request
curl https://rendral.com/api/v1/pdf \
-H "Authorization: Bearer sk_live_…" \
-H "Content-Type: application/json" \
-d '{ "html": "<h1>Invoice #1042</h1>…",
"options": { "pageNumbers": true, "format": "A4" } }' \
-o invoice-1042.pdfFrequently asked
Can each invoice use live data?
Yes — render the HTML your app already produces per customer, with their line items, totals and branding.
Do you support page numbers and footers?
Yes. Set pageNumbers: true for a centered footer, or supply your own header/footer HTML.
How do I avoid duplicate invoices on retry?
Send an Idempotency-Key header; a repeated request returns the original PDF and doesn't count against your quota.
Related
Shipping labels PDF API
Generate 4x6 thermal shipping labels and packing slips as PDFs from HTML.
Compare vs DocRaptor
How DocRaptor and Rendral differ on pricing, features, and setup.
PDFs in Python
A step-by-step guide to generating PDFs from Python.
A free tier, 20 endpoints, and SDKs for Node and Python.