Rendral

Use case · Purchase orders

The purchase order PDF API

A purchase order is a document two organisations both keep. The copy your supplier files and the copy your finance team archives have to be the same document, months or years later.

Render the PO from your procurement data with an idempotency key tied to the PO number. Re-requesting returns the original bytes rather than a fresh render, so the archived copy and the supplier's copy never drift.

01How it works

01

Reproducible by PO number

Key the render on the PO number and a repeat request returns the identical document — the same file both sides filed.

02

Terms that stay put

Standard terms and approval blocks render in plain CSS, with page breaks where you put them.

03

Straight into your archive

The response is the PDF, so stream it into S3 or your document store without a temporary file.

02One request

request.sh
curl https://rendral.com/api/v1/pdf \
  -H "Authorization: Bearer sk_live_…" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: po-2026-004471" \
  -d '{ "html": "<h1>Purchase Order PO-2026-004471</h1>…",
        "options": { "format": "A4", "pageNumbers": true } }' \
  -o po-2026-004471.pdf

Frequently asked

How do I guarantee the archived copy matches the supplier's?

Use the PO number as the Idempotency-Key. A repeat request returns the stored document instead of re-rendering, so both copies are byte-identical.

Can I attach terms and conditions?

Yes — include them in the HTML, or render them separately and merge. Both approaches keep everything in one file.

Does a retried request count against quota twice?

No. An idempotent replay returns the original document and doesn't consume quota again.

Can I store it directly in S3?

Yes. The response body is the PDF, so pipe it into your uploader without buffering the whole document in memory.

Related

Start rendering in minutes.

A free tier, five endpoints, and SDKs for Node and Python.