swissinvoice.dev

Swiss QR-bill generator

Create a spec-compliant QR-bill payment part. Download it as SVG or PDF, or copy the API call to generate it from your own code.

Creditor (payable to)
Payment
Debtor (payable by)

Optional — leave empty for a blank box the payer fills in.

Preview

Fill in the required fields to see a preview.
API request for this QR-bill
curl
curl -X POST https://swissinvoice.dev/api/v1/qr-bill \
  -H "Content-Type: application/json" \
  -d '{
  "creditor": {
    "account": "CH04 3000 0001 2345 6789 0",
    "name": "Robert Schneider AG",
    "street": "Rue du Lac",
    "buildingNumber": "1268",
    "postalCode": "2501",
    "town": "Biel",
    "country": "CH"
  },
  "debtor": {
    "name": "Pia-Maria Rutschmann-Schnyder",
    "street": "Grosse Marktgasse",
    "buildingNumber": "28",
    "postalCode": "9400",
    "town": "Rorschach",
    "country": "CH"
  },
  "amount": 1949.75,
  "currency": "CHF",
  "reference": "210000000003139471430009017",
  "message": "Order of 15 June 2026",
  "language": "en",
  "format": "pdf"
}' \
  -o qr-bill.pdf

What we check

  • ✓Payment part rendered according to the SIX layout and style guide
  • ✓Payment part text in English, German, French, Italian or Romansh
  • ✓Validation of IBAN, reference and addresses before rendering
  • ✓SVG for web and email, PDF as full A4 page or 210 × 105 mm slip

Use it from code

Same checks, as a free JSON API. No key needed, rate-limited per IP. Full API docs →

curl
curl -X POST https://swissinvoice.dev/api/v1/qr-bill \
  -H "Content-Type: application/json" \
  -d '{"creditor":{"account":"CH3900700110000209138","name":"Muster AG","street":"Bahnhofstrasse","buildingNumber":"1","postalCode":"8001","town":"Zürich","country":"CH"},"amount":100,"currency":"CHF","format":"pdf"}' \
  -o qr-bill.pdf

Frequently asked questions

Which reference should I use?

+

With a QR-IBAN you must use a 27-digit QR reference. With a normal IBAN you can use a creditor reference starting with RF, or no reference at all.

Can I leave the amount empty?

+

Yes. If the amount is empty, the payment part shows a blank box and the payer enters the amount. This is common for donations.

Can I print the QR-bill on my own paper?

+

Yes. Print at 100% size without scaling. The payment part must be 210 × 105 mm at the bottom of an A4 page, and the QR code must stay 46 × 46 mm.

Is this a complete invoice?

+

No — this tool creates the payment part only. For full invoices with line items, VAT and payment tracking, use Magic Heidi.

Need complete invoices, not just the QR part?

Magic Heidi creates QR-bill invoices, tracks payments and expenses — on iPhone, Android, Mac and web.

Try Magic Heidi →