Send JSON, get a PDF back with your logo, brand color and font already applied. Four ready-made templates, A4 or US Letter, or bring your own HTML. Built for developers and agencies who don't want to maintain a headless-Chrome setup.
This list only covers what is actually built. Anything not built yet is labeled "planned".
Invoice, receipt, report and certificate. Set logo_url, brand_color, font and company_name once and every document matches.
CSS @page sizing for A4 and US Letter (the certificate is landscape), with backgrounds kept, and totals and currency formatted for you.
Already have your own template? POST html and get a PDF. Rendering runs on Chromium via open-source Gotenberg.
Missing fields, bad colors and wrong types come back as a readable 422 before anything renders, and ?preview=html lets you check the output without spending a document.
Documents are processed transiently and streamed back in the response. They aren't saved to any database or file storage. We keep a hashed API key and a monthly document count per key.
Async rendering with webhooks, saved brand profiles, custom template upload and a dashboard. None of these exist yet.
These are live HTML previews made by the same code that feeds the PDF renderer. They use sample data: every name, amount and figure is made up.
Try a different brand color: /gallery/invoice?brand_color=7c3aed
Full reference in the docs. Base URL: https://slipmint-api.mike-tusa.workers.dev. YOUR_API_KEY is a placeholder: free keys go out by invite to waitlist members.
BASE=https://slipmint-api.mike-tusa.workers.dev
curl -X POST "$BASE/v1/pdf" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-o invoice.pdf \
-d '{
"template_id": "invoice",
"data": {
"company_name": "Northwind Studio",
"brand_color": "#0f766e",
"logo_url": "https://example.com/logo.png",
"page_size": "Letter",
"invoice_number": "INV-1042",
"issue_date": "2026-09-25",
"due_date": "2026-10-09",
"customer_name": "Acme Corp",
"customer_address": "1 Main St\nDenver, CO",
"currency": "USD",
"tax_rate": 8.25,
"items": [{ "description": "Website redesign", "quantity": 1, "unit_price": 4500 }]
}
}'
// Node 18+ (ESM, e.g. save as invoice.mjs)
import { writeFile } from "node:fs/promises";
const BASE = "https://slipmint-api.mike-tusa.workers.dev";
const res = await fetch(`${BASE}/v1/pdf`, {
method: "POST",
headers: { Authorization: `Bearer ${process.env.SLIPMINT_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
template_id: "invoice",
data: {
company_name: "Northwind Studio", brand_color: "#0f766e", page_size: "A4",
invoice_number: "INV-1042", issue_date: "2026-09-25", customer_name: "Acme Corp",
currency: "EUR", items: [{ description: "Website redesign", quantity: 1, unit_price: 4500 }],
},
}),
});
if (!res.ok) throw new Error(`${res.status}: ${await res.text()}`);
await writeFile("invoice.pdf", Buffer.from(await res.arrayBuffer()));
import os, requests
BASE = "https://slipmint-api.mike-tusa.workers.dev"
r = requests.post(
f"{BASE}/v1/pdf",
headers={"Authorization": f"Bearer {os.environ['SLIPMINT_API_KEY']}"},
json={
"template_id": "receipt",
"data": {
"company_name": "Northwind Studio", "brand_color": "#0f766e",
"receipt_number": "R-2231", "paid_at": "2026-09-25",
"payment_method": "Visa •••• 4242", "currency": "USD",
"items": [{"description": "Pro plan (monthly)", "quantity": 1, "unit_price": 29}],
},
},
timeout=60,
)
r.raise_for_status()
open("receipt.pdf", "wb").write(r.content)
Planned launch pricing. No payments are taken yet. A "document" is one successful PDF. Failed renders, validation errors and ?preview=html calls are free.
Prices are in USD, and taxes may apply at checkout once billing launches.
Short version: we render your document and don't keep it. Full policy: /privacy.
Your HTML and JSON are processed transiently to produce the PDF, which is streamed back in the response and not retained. The renderer runs on Google Cloud Run (us-central1, USA), where temporary files live in an in-memory filesystem.
A SHA-256 hash of each API key, plus key metadata (plan, label) and a document count per key per month. That's all.
Request bodies and PDFs are never logged. Standard request metadata (time, IP address, path, status) is recorded in our hosting providers' logs (Cloudflare, Google Cloud Run).
Slipmint is in development. Free API keys go out by invite to waitlist members, in batches: leave your email and we'll send you one launch invite, which includes a personal link to create a free key (50 documents per month). No newsletter, no other emails. Your address is kept until the invite is sent or for 12 months, whichever comes first, and you can delete it any time (privacy §6).