Skip to content

Invoice PDF API

Invoices your billing system already knows how to draw

Send the invoice HTML your application renders and get back the PDF you send the customer. Correct page numbers, the paper size their country expects, a whole billing run in one submission, and the archived copy in storage you own.

Create a free accountRead the API docs

  • Two credits per invoice
  • Batched billing runs
  • Delivered to your own S3
  • UK-operated infrastructure
INV-1042Issued 29 August 2026
A4

Rendering credits, August720.00

Additional sites45.00

Support retainer180.00

VAT at 20%189.00

Total due1,134.00

Page 1 of 2

The billing run

The hard part is not drawing one invoice

Rendering a single invoice is a solved problem in any language. What breaks is the rest of it: four thousand documents on the first of the month, a layout that paginates differently once a customer has thirty line items, an archive somebody will ask you to produce in five years, and a download link that does not stream every byte through your application.

Ironfang Render takes the HTML you already render and handles the run around it. Submit the cycle as a batch, take a webhook per document, deliver each one into your own bucket, and let the customer download it from there.

POST /render/v1/pdf
Authorization: Bearer if_live_...
Content-Type: application/json

{
  "html": "<html>...invoice INV-1042...</html>",
  "paper_format": "a4",
  "print_background": true,
  "margin": { "top": 0.6, "bottom": 0.8 },
  "header_html": "<span></span>",
  "footer_html": "<p style='font-size:9px'>Page <span class='pageNumber'></span></p>"
}

200 OK
Content-Type: application/pdf

Capabilities

What an invoice needs that a print button does not

Pagination, paper size, volume, custody and delivery: the five things that turn one document into a billing process.

One invoice template

The markup your billing screen renders is the markup that prints. No second layout in a drawing API, and no way for the on-screen invoice and the attached one to disagree.

Page numbers that are correct

Footer templates carry Chrome's pageNumber and totalPages, so a five-page invoice numbers itself rather than being counted by your code before it knows how it paginates.

A4 or Letter, per request

Six paper sizes with per-side margins and a scale factor, so the same template serves a UK customer on A4 and a US one on Letter without a branch in your code.

A month end in one submission

Batches and asynchronous jobs render thousands of documents without holding a connection open, with a webhook when each one is ready.

Archived where you keep records

Deliver straight to your own S3-compatible storage, so the copy you must keep for seven years sits in a bucket under your retention and access rules.

Customer downloads, unproxied

Deliver to your own bucket and hand out links under your own rules, or pass on a finished job's signed result link, valid for 15 minutes, without streaming the bytes or exposing a key.

Use cases

Documents a billing system sends

Anything your application already renders on screen and somebody expects to arrive as a file.

Invoices and credit notes

Render the document from the same template and data your billing screen uses, at the moment you issue it.

Monthly billing runs

Submit the whole cycle as a batch overnight and take a webhook as each document lands in your bucket.

Statements and remittances

Period statements and remittance advice from the same pipeline, with the paper size the recipient expects.

Receipts and order confirmations

Attach a printable copy to the email your application already sends, produced from one request.

Purchase orders and quotes

Outbound documents that need to look like the rest of your brand, without a word processor template nobody owns.

Self-serve invoice history

Keep each issued PDF in your own bucket, so a customer downloads any past invoice from their account without a support request.

Other documents, and the code to start with

Invoices are one shape of a wider capability. The same endpoint prints statements, contracts, reports and certificates from the same markup you already maintain. The guide has a complete invoice template to download, a multipage version, the request that renders them and the PDFs they produce.

HTML to PDF APIInvoice PDF guide

Pricing

Two credits per invoice, with failures refunded

Start with 250 free credits each month and no card required. Paid plans begin at £9 per month for 5,000 credits, shared across screenshots, PDFs, images and video. Failed work is refunded, and reaching a cap pauses rendering rather than billing overage.

See Ironfang Render pricingCompare with other providers

Questions

Before you integrate

The details that decide whether this fits, without reading the whole reference first.

Do I have to rebuild my invoice layout?
No. Send the HTML your billing screen already renders. It is printed in a real browser, so the document the customer receives is the document you can see in your own application.
How do I get page numbers on a multi-page invoice?
Supply footer HTML using Chrome's pageNumber and totalPages classes and it repeats on every sheet. Header and footer templates render in their own context and inherit nothing from the page, so set their font and size inside the template.
Can I generate a whole month of invoices at once?
Yes. Submit them as a batch and poll the batch for progress, or send them as asynchronous jobs and take a webhook per document. Neither path holds a connection open while thousands of PDFs render.
Where does the finished PDF go?
Back in the response for a single document, or straight into your own S3-compatible storage when you configure a delivery destination. The archived copy then lives in the bucket your retention policy already covers.
How do I let a customer download their invoice?
Deliver each PDF to your own S3-compatible bucket and give the customer a link from there, under the expiry and access rules you already use. For an immediate download, a finished asynchronous job also returns a signed result link that works without an API key for 15 minutes.
What does an invoice cost to generate?
Two credits per PDF, and failed work is refunded. Every PDF request renders the document afresh, so keep the copy you issue and serve repeat downloads from it rather than rendering the invoice again.
Are the totals and the numbering handled for me?
No, and they should not be. Your billing system owns the invoice number, the tax treatment and the totals. Ironfang Render renders the document your system produced, which is what keeps the PDF and your ledger in agreement.
Do you output PDF/A or a structured e-invoicing format?
No. The output is a standard PDF. PDF/A archival profiles and the structured formats such as Factur-X, ZUGFeRD and PEPPOL are not produced, so if a customer or a tax authority requires one, you will need a step that emits it.

Less to operate. More to ship.

Render your next invoice

Create an account, take a key and post the HTML your billing screen already produces. The first invoice is inside your free credits.

250 free credits each month, with no card required, hard usage caps and refunds on failed work.