Make PDFs from links, HTML and invoices
One request in, one file out: URL to PDF, HTML to PDF, Markdown to PDF, PNG/JPEG screenshots and Factur-X / ZUGFeRD e-invoices. Try it right now in the sandbox below, no account needed.
Free plan: 100 PDFs a month, no card needed.
Paste HTML, get a real PDF
No mockups: this form submits to the same queue and Playwright workers that serve paying customers, and every status below is read live from the job API.
Tip: use inline style="…" attributes — <style> blocks and external stylesheets are removed by sanitization.
Complete the verification above to enable the render button.
Real render from the production pipeline — watermarked, a few runs per day per visitor.
What you can send, and what comes back
Every one of these goes through the same queue, the same signed webhooks, the same Idempotency-Key and the same monthly quota — one job is one job, whatever went in or came out.
- URL to PDF: point us at a public page and get the printed document back. Read the reference →
- HTML to PDF: send your own markup — sanitized before rendering — when you control the design. Read the reference →
- Markdown to PDF: a README, a report or generated notes become a styled PDF with no HTML and no stylesheet to write — CommonMark plus GFM tables and strikethrough. See Markdown to PDF →
- URL or HTML to an image: the same render, handed to you as a PNG or JPEG instead. You pick the window size and we capture exactly that. See the Screenshot API →
- Invoice XML to Factur-X / ZUGFeRD: your Cross-Industry Invoice XML comes back as a hybrid PDF/A-3 that people and software can both read. See e-invoicing →
E-invoices that people and software can both read
POST /einvoice-to-pdf takes your UN/CEFACT Cross-Industry Invoice XML and returns one Factur-X / ZUGFeRD PDF: a human-readable invoice normalized to PDF/A-3 with the machine-readable XML embedded as factur-x.xml. Same async queue, same signed webhooks, same Idempotency-Key — on every plan, Free included. PDFik never generates or alters invoice data; you supply the XML.
- Validated before you pay: the XML is checked against the official XSD of the declared profile (minimum, basicwl, basic, en16931, extended) before any quota is spent — invalid XML is a 422 with a documented error anchor, not a bill.
- Two ways in: the dedicated POST /einvoice-to-pdf endpoint builds the invoice from your XML with a block template, or add the einvoice option to your own URL or HTML render and keep your design.
- No-code invoice PDF builder: design the invoice in the dashboard with your logo, colours, 8 free fonts, A4 to Legal page formats, editable labels and a live preview, in 10 language presets across 14 locales. Mark one as default and the API renders every e-invoice with it.
- Output is checked in the release gate with veraPDF (PDF/A-3b) and Mustangproject (Factur-X structure). Schema-valid is not tax-compliant — the invoice content stays your responsibility.
- Try it without an account: paste invoice XML into the sandbox on this page and get a real, watermarked Factur-X PDF through the same pipeline customers use.
Stop babysitting Chrome in production
Headless browsers are great. Operating a fleet of them is a second job — this is the part of it you stop doing.
| Running Chrome yourself | With PDFik | |
|---|---|---|
| Chromium updates & CVEs | Track releases, patch CVEs, rebuild images on someone else’s schedule. | We patch and roll the render fleet; you keep calling the same API. |
| Memory leaks & zombie processes | Leaking tabs and orphaned processes need a 3 a.m. babysitter. | A fresh isolated browser context per job, torn down after every render. |
| Queue, retries, dead letters | Build queueing, retry ladders and dead-letter handling yourself. | Queue-backed rendering and signed webhook delivery with retries and DLQs, built in. |
| Sandbox & SSRF hardening | Harden a headless browser against hostile HTML and SSRF on your own. | Sandboxed Chromium plus SSRF blocking of private IPs and cloud metadata, on every render. |
Built for Developer Teams
The contract is the point: signed delivery, two honest meters, one file ceiling that never changes with the price, and a retention window you can plan around.
Factur-X / ZUGFeRD e-invoices
POST your CII invoice XML to /einvoice-to-pdf and get a hybrid PDF/A-3 with factur-x.xml embedded — validated against the official XSD before any quota is spent, on every plan. PDFik never alters invoice data; the content stays yours.
A file back, your way
Add wait: true and the response is the finished file itself. Or queue the job and every result is POSTed to you, HMAC-signed, with 5 retries and a dead-letter queue behind them — on every plan, including Free.
A document is a document
A 2-page receipt and a 200-page report each count as one document against your monthly quota — no page math. Data volume is a second, separate line you can actually see.
150 MB per file — on every plan
The per-file ceiling is the same 150 MB whether you are on Free or Business. Test your real documents before you pay a cent.
Guaranteed deletion in 24 hours
PDFik is a delivery pipeline, not an archive: every generated file — PDF, PNG or JPEG — is available for 24 hours after rendering, then deleted.
Test mode costs nothing
Send "test": true and the job runs the full pipeline — statuses, signed webhook, download — without a render and without touching your quotas. Wire up CI against it for free.
Idempotent by design
Pass an Idempotency-Key and a retried submit can never double-render or double-bill — the same key returns the same job. Network blips stop being a billing question.
Flexible, Predictable Plans
Whether you are converting 100 layouts or 100,000 documents a month, we have a plan for you.
Start testing with 100 free requests per month
Unlock access to the API console, set up webhook callback integration, and test with your live datasets completely free.
Frequently Asked Questions
Got questions about our architecture, rendering pipelines, security layers, or billing? We have answers.
Your choice. Add "wait": true and the response is the finished file itself — one request in, one PDF out (up to 45 seconds; past that the job is cancelled and not charged). Without it, you immediately get a Job ID, we render in our sandbox and notify you via a signed webhook — the right fit for batches and heavy pages.
Yes. POST /einvoice-to-pdf takes your UN/CEFACT Cross-Industry Invoice XML and returns a hybrid PDF/A-3 with the XML embedded as factur-x.xml, laid out by a block template you design in the dashboard. Or add the einvoice option to /url-to-pdf or /html-to-pdf to wrap your own rendered invoice. Available on every plan, Free included — the output is the same clean PDF/A-3. You can try it in the sandbox on this page without an account.
No. You supply the XML from your accounting system; PDFik validates it against the official XSD of the declared profile before any quota is spent and never alters it. The release gate checks the output with veraPDF (PDF/A-3b) and Mustangproject (Factur-X structure), but schema-valid is not the same as tax-compliant — the invoice content is your responsibility.
To prevent Server-Side Request Forgery, our engine resolves and validates all URLs before opening them. We block connections to private, local, and cloud-provider metadata IP addresses.
When a PDF render finishes, we send a HTTP POST request to your configured webhook URL with the job details and download link. Each webhook payload is HMAC-signed for security verification.
You can configure margins, orientation, header/footer templates, page ranges, custom CSS overrides, password protection, and PDF watermarking.
All API requests require your API key in the X-API-Key HTTP header. You can generate and manage live/test API keys inside the developer Console.
Rate limits scale from 10 requests/min on the Free tier up to 2,000 requests/min on the Business tier. Custom plans are available for higher volume requirements.
Yes! Our Free tier includes 100 PDF generations per month, webhooks, and full API access to try out the platform.
No. Each generated file (PDF, PNG or JPEG) is available for download for 24 hours after rendering, then it is deleted and the link stops working.
Yes, you can specify user/owner passwords and encryption permissions in the request payload to secure your PDFs.
Yes, we provide official, fully typed SDKs for Node.js/TypeScript, Python, and Java to easily integrate PDFik.net into your codebase.
Start generating PDFs on the Free plan
Create an account, grab your API token, and get your first PDF back in one request. No card needed on Free.
Create Free Account →