PR
PDFRender.io
HTML to PDF API for Templates, Invoices & Automated Workflows
Template rendering

Generate production documents from hosted templates and live data

Build invoices, receipts, reports, statements, certificates, and customer-facing PDFs using reusable hosted templates with variable injection and direct delivery workflows.

Invoices Receipts Reports Statements Certificates
Template
<h1>Invoice #{{invoice.number}}</h1>
<p>{{customer.name}}</p>
<p>Due: {{invoice.due_date}}</p>
<p>Total: {{invoice.total}}</p>
Data
{
  "invoice": {
    "number": "INV-1024",
    "due_date": "30 Apr 2026",
    "total": "$499"
  },
  "customer": {
    "name": "Acme Inc"
  }
}
Output
Production PDF in seconds
Reusable templates
Build once and render on demand
Live data injection
Map JSON payloads into hosted documents
Delivery ready
Return instantly or send direct to storage
Why templates

A better way to generate documents than rebuilding HTML for every request

Hosted templates help engineering teams separate layout from data, reduce duplication, and keep document generation consistent across product workflows.

01

Build once

Create a reusable hosted template instead of maintaining repeated HTML in multiple places.

02

Inject live data

Pass structured JSON data into variables and generate clean, consistent output every time.

03

Use in workflows

Trigger rendering from billing flows, exports, background jobs, webhooks, and scheduled tasks.

04

Deliver anywhere

Return files directly, store in your own bucket, or deliver through downstream automation.

Common use cases

Built for real document workflows

Invoices and billing documents
Receipts and order confirmations
Customer account statements
Analytics and reporting exports
Certificates and branded documents
Best for teams that need
Consistent layouts

Keep branded output consistent across all customers and document types.

Less engineering overhead

Reduce repeated HTML maintenance and simplify rendering logic.

Dynamic output

Insert names, totals, tables, dates, and line items from live application data.

Production delivery

Combine templates with async jobs, storage routing, and delivery workflows.

Workflow

From template to delivered PDF in three steps

Step 1

Create a hosted template

Build a document layout once, define variables, and save it in your account.

Step 2

Send structured data

Pass JSON payloads into the template to fill customer, invoice, order, or report data.

Step 3

Return or deliver output

Stream the PDF directly, store it in your own bucket, or use async workflows and webhooks.

Example request

Render from a hosted template

Use the same structured request format as the rest of the platform and swap the source type to a hosted template.

{
  "source": {
    "type": "template",
    "template_id": "invoice-default"
  },
  "options": {
    "format": "A4",
    "print_background": true
  },
  "data": {
    "invoice": {
      "number": "INV-1024",
      "total": "$499"
    },
    "customer": {
      "name": "Acme Inc"
    }
  },
  "delivery": {
    "type": "s3"
  }
}
Why teams choose template rendering

More than just HTML-to-PDF

Template rendering helps move document generation from one-off page conversion into repeatable production workflows.

Without templates
  • • Rebuild document HTML in code
  • • Maintain layout in multiple places
  • • Harder to keep branding consistent
  • • More work for repeated document types
With hosted templates
  • • Build layout once and reuse it
  • • Inject live data from your app
  • • Keep consistent, branded output
  • • Fit directly into queues and automation
Start building

Ready to build your template workflow?

Start with a hosted template, inject live data, and generate production-ready PDFs in minutes.