We moved every marketplace receipt off our homegrown renderer in a single sprint.
Database rows in.
Branded invoices out.
Shipshot turns rows in Postgres, Stripe or Supabase into tax-correct PDF invoices and receipts. One API call renders, stores and delivers them.
500 renders a month free No card required
| Item | Qty | Amount |
|---|---|---|
| Espresso blend, 5 kg | 4 | €480.00 |
| Grinder service | 1 | €320.00 |
| Barista training | 2 | €440.00 |
Trusted by 160+ teams who send invoices for a living
Point it at a table. Get a finished invoice.
Map columns to template fields once. Every new row renders with the right customer, currency and tax.
Field mapping, not glue code
Bind any column, join or JSON path to a template variable and preview it against a real row.
Reads from where your data lives
Connect a database, a billing tool or send JSON straight to the API.
One call from your backend
Typed SDKs for TypeScript, Python, Go and Ruby. Idempotent by default.
import { Shipshot } from "@shipshot/sdk"; const ship = new Shipshot(process.env.SHIPSHOT_KEY); const pdf = await ship.render({ template: "invoice-standard", source: { table: "orders", id: "ord_8F2K1" }, deliver: ["email", "s3://northwind-invoices"], }); console.log(pdf.url); // https://cdn.shipshot.dev/r/INV-2026-0412.pdf
from shipshot import Shipshot ship = Shipshot(os.environ["SHIPSHOT_KEY"]) pdf = ship.render( template="invoice-standard", source={"table": "orders", "id": "ord_8F2K1"}, deliver=["email", "s3://northwind-invoices"], ) print(pdf.url) # https://cdn.shipshot.dev/r/INV-2026-0412.pdf
curl https://api.shipshot.dev/v1/renders \ -H "Authorization: Bearer $SHIPSHOT_KEY" \ -H "Idempotency-Key: ord_8F2K1" \ -d '{ "template": "invoice-standard", "source": { "table": "orders", "id": "ord_8F2K1" }, "deliver": ["email", "s3://northwind-invoices"] }' # 201 Created {"id":"rnd_7Qx2","status":"rendered"}
Money and tax, done properly
Per-line rounding, VAT and sales tax rules, reverse charge notes and 160 currencies.
We deleted four thousand lines of headless-Chrome glue and a fleet of render workers. Shipshot now produces every invoice we send, in eleven currencies, and nobody has thought about PDFs since.
Every receipt leaves the moment it's paid.
Render on a database event, a webhook or a schedule, then ship the PDF wherever it needs to go.
Deliver anywhere
Fan one render out to several destinations with per-destination retries.
A delivery log you can actually read
Every render, every destination, every retry. Replay any of them with one click.
Batch month-end in minutes
Queue a whole billing run with one request. We parallelise, you get a single webhook when it's done.
Hosted links on your domain
Each render gets a signed, expiring link customers can open, download or forward to accounts.
Month-end close used to block two engineers for two days. Now thirty thousand receipts render overnight, the audit trail is just there, and finance stopped filing tickets.
Your brand, on every page.
Design templates visually or in HTML. Finance edits the copy, engineering keeps the bindings.
A template editor built for documents
Tables that paginate, headers that repeat, totals that never split across pages.
| Item | Qty | Amount |
|---|---|---|
| Espresso blend, 5 kg | 4 | €480.00 |
| Grinder service | 1 | €320.00 |
sort: position asc
One brand kit, every template
Logo, colours and fonts apply everywhere. Change them once.
Localised for every customer
Labels, dates and number formats follow the customer's locale, not yours.
E-invoicing without a second pipeline
The same template emits PDF/A-3 with embedded XML for EU mandates.
<ram:GrandTotal>
1488.00
</ram:GrandTotal>
Everything billing needs, quietly handled.
The unglamorous parts of invoicing, built in so you don't build them twice.
Idempotent renders
Same key, same PDF. Retries never send a customer two invoices.
Signed webhooks
HMAC-signed payloads, backoff for 72 hours and a full replay log.
Archive-grade PDFs
PDF/A-3 output with embedded fonts, stored for ten years if you ask.
Versioned templates
Every publish is a version. Pin production, preview drafts on real rows.
Region pinning
Render and store in the EU or US. Rows never leave the region you pick.
Sandbox keys
Test keys watermark every page, so drafts never reach a real inbox.
Your fonts, embedded
Upload brand fonts once. We subset and embed them in every file.
Multi-currency maths
Correct minor units, rounding and per-line tax in 160 currencies.
Audit trail
Who rendered what, from which row, with which template version.
MCP server for agents
Agents can draft, preview and send invoices with scoped, revocable tokens.
SOC 2 Type II
Annual audit, SSO, SCIM and role-based access on every paid plan.
p95 under 400 ms
A warm render pool in six regions. Batches scale to 50,000 a minute.
Teams that stopped building PDFs.
Our first German e-invoicing audit passed without a single correction.
Localised invoices for forty markets shipped in a week, by one engineer.
Your next invoice is one API call away.
Connect a table, pick a template and send your first branded PDF this afternoon.