Render a Swiss QR-bill — SPC v0200 payload + PDF / SVG / PNG / JSON output.
Encodes a Swiss QR-bill and renders to one of four output formats: payload (just the SPC v0200 text), svg, pdf, png. IBAN mod-97 + QR-IBAN range check + QRR mod-10 (Lührmann) all validated at submit. Payload capped at 997 bytes per SPC spec.
The renderer is V8-isolate-pure; the PDF path uses a stripped-down pdf-lib that ships in the Workers bundle. Same renderer runs at POST /v1/qr-bill and at the free browser-side /qrbill page.
Multilingual labels: pass language as en / de / fr / it. Default en.
See apps/api/src/routes/qrbill.ts and apps/api/src/lib/spc.ts + qrbill-pdf.ts + qrbill-svg.ts.
Mandatory header `Idempotency-Key` (UUID or other opaque ≤64 char string). A second request with the same key and the same body returns the cached response and the header `X-Iso-Compliant-Idempotent-Replay: true`. A second request with the same key but a different body returns 409.
Rate limit
Sandbox: 60 requests / minute, 1000 / day. Production: 600 requests / minute soft cap, lifted per tenant on request.