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.
A free tier, five endpoints, and SDKs for Node and Python.