Paperomat Document generation infrastructure
Status
Private beta · by invitation
General availability
October 2026
Revision
2026-08-16

Data in. Finished document out.

Invoices, certificates, contracts and statements, rendered as PDFs in about two tenths of a second. Business teams design the templates without a developer. Developers call one endpoint. On Growth and above the finished document is written straight into your own cloud storage, and we never hold a copy of it.

How it works Your storage Platform Rates Access Bulk generation Your storage No lock-in Documentation — in preparation
Fig. 1
invoice.liquid Template
<!-- the footer is defined once, shared by every template -->
  <h1>Invoice {{ invoice.number }}</h1>

  {% for line in invoice.lines %}
    <tr>
      <td>{{ line.description }}</td>
      <td>{{ line.qty }}</td>
      <td>{{ line.total | money }}</td>
    </tr>
  {% endfor %}

  {% include 'footer' %}
payload.json Your data
"number": "2026-0417",
  "customer": "Northwind Logistics, Inc.",
  "lines": [ 3 items ]

Invoice

Northwind Logistics, Inc.
1420 Harbor Ave SW, Seattle, WA 98126
No. 2026-0417
Issued Aug 14, 2026
Due Sep 13, 2026
DescriptionQtyAmount
Freight forwarding, week 3211,840.00
Customs handling3285.00
Warehouse storage, pallet-day62434.00
Subtotal2,559.00
Sales tax 10.25%262.30
Total USD2,821.30
Payable within 30 days by ACH or check. Late balances accrue 1.5% monthly.
A template and a payload, left; the document they produce, right. Measured warm render: 142 ms. The template is standard Liquid and standard HTML — the file you see is the file that runs, byte for byte.
Method

Three steps, and only one of them is yours to maintain.

i

Design the template

Upload the HTML you already have — it is already a valid template, because Liquid passes plain markup through untouched. Add {{ }} where the data goes. Developers author in code with a preview that renders through the production engine; visual editing for business users arrives before general availability.

ii

Publish to an environment

Dev, QA and Prod behave like branches. One version publishes to several environments at once, and production asks a second time — by name.

iii

Call the endpoint

Post your JSON and take the PDF back, or send a hundred thousand of them through the batch endpoint and collect a manifest when it finishes.

Storage

The document lands in your bucket, not ours.

Most document APIs keep your customers' documents on their own servers. That is the first question an enterprise security review asks, and it is the one this product was designed around. Paperomat renders and writes; it stores nothing, and it holds no secret of yours in either direction. Available on Growth and Enterprise.

Amazon S3

A cross-account role you create, assumed with an external ID and a session policy scoped to a single prefix. Revoking us is deleting a role.

Azure Blob Storage

Workload identity federation against our published OIDC issuer. No Azure client secret is ever created — there is nothing to leak and nothing to rotate.

id.paperomat.com — RS256, keys held in AWS KMS

Platform

What the rest of the platform is for.

Environments that behave like branches

Every template version carries a timeline: which version rendered, in which environment, when, and who last changed it. Test environments are never rate limited — QA output is watermarked and counted, never blocked.

An editor with no proprietary format

No JSON document model and no invented markup. The editor emits standard HTML and standard Liquid, so the template is diffable, reviewable, and portable on the day you create it rather than on the day you ask for an export.

Who edits the templates →

Shared partials

Legal footers, logos and addresses are defined once and included everywhere. Change the snippet, and every template that includes it changes with it.

{% include 'footer' %}

An exit that actually works

Export every template and partial as a folder of files, then reproduce the identical PDF offline with our open-source renderer. Liquid has independent implementations in five languages, so leaving is not a rewrite.

$ paperomat-render invoice.liquid payload.json

Fast enough to render while somebody waits

A warm render finishes in roughly 142 ms, which is what makes an editor preview of the real document possible instead of an approximation of it.

Rates

Priced by documents, never by seats.

Nothing is for sale on this page. Beta accounts run on the Growth limits at no charge, and no one is billed before general availability in October. Annual billing saves 10% on every plan.

Free$0 Starter$11 Growth$79 Enterprise$499
Paid annually, per month$9.90$71.10$449.10
Documents included1003,00025,000200,000
Each additional 1,000not available$3.00$2.50$2.00
Active templates22501,000Unlimited
Environments113Unlimited, named
Parallel renders15301,000
Bring your own storageIncludedIncluded
Reserved warm capacityBy arrangement

Parallel renders are limits rather than reservations: requests over the line are held briefly and queued, never refused. Documents past the included volume are billed at the rate above rather than blocked — except on Free, which is a hard stop at 100, so a free account can never run up a bill. Bring your own storage begins at Growth; on Free and Starter the finished PDF comes back in the API response and nothing is kept beyond the day. Growth becomes the cheaper plan at around 25,700 documents a month and Enterprise at 193,000.

Access

We are letting teams in a few at a time.

Tell us where to reach you and roughly what you render. Beta accounts get the whole platform, direct access to the person building it, and no invoice.

© 2026 Paperomat info@paperomat.com Terms Privacy Refunds