QR-Bill: the complete guide for Switzerland
The official Swiss invoicing standard, explained without the fluff. What it is, how it works, how to generate it correctly. For small businesses and freelancers across Switzerland.
In this guide
What is the QR-Bill
The QR-Bill (in German QR-Rechnung, in French QR-facture) is the official Swiss invoicing standard for payments via bank transfer. It was introduced by SIX Interbank Clearing on 30 June 2020 and since 1 October 2022 it has been the only standard accepted by banks and PostFinance: the old red (BVR) and orange (ESR) payment slips are no longer valid.
The idea is simple: instead of manually copying IBAN, amount, reference and recipient address into the phone screen, the payer scans a QR code with a Swiss cross at the bottom of the invoice. The banking software reads all the data and populates the transfer — the user confirms and pays. The result: fewer typos, less time spent, less customer frustration.
For anyone issuing invoices in Switzerland — small businesses, freelancers, craftsmen, studios from Zurich to Geneva to Bellinzona and everywhere in between — the QR-Bill is not optional: it's the standard way to get paid. Not having it means making life difficult for your customers.
How a QR-Bill is structured
A QR-Bill has a fixed structure, printed in A4 format on perforated paper or embedded directly into the invoice PDF. It is made up of three clearly defined zones:
- Invoice section — the upper part: header, line items, total, VAT. Free layout (the design is up to you).
- Receipt section — bottom-left (62×105 mm): the customer keeps it as proof of payment.
- Payment section — bottom-right (148×105 mm): contains the QR code, amount, IBAN, reference and debtor details.
The QR code itself is a QR ISO/IEC 18004 in Byte/Binary mode, with minimum capacity for error correction level M and the distinctive white Swiss cross on a black background printed in the centre (7×7 mm). It's this cross that makes a QR-Bill instantly recognisable compared to any generic QR code.
The difference between QR-Bill and the old BVR/ESR slips
For anyone who worked in Switzerland before 2022, the contrast is sharp. The old BVR (red) and ESR (orange) slips required:
- Bank-assigned numbering — you had to order numbered blocks of slips from your institution, one per invoice.
- OCR-B encoding on the bottom line, to be printed with a high-quality laser printer.
- Certified paper — you couldn't print BVR on plain paper.
- 27-digit numeric reference calculated with a check digit, generated and tracked manually.
The QR-Bill eliminates all of this. You print on plain A4 paper, generate the code via software, and any Swiss bank will accept it. The reference still exists (see below), but it's optional for many use cases.
Mandatory and optional data
SIX's SPC 0200 v2.2 standard defines exactly which fields appear in the QR code. The main ones are:
| Field | Mandatory | Notes |
|---|---|---|
| IBAN or QR-IBAN | Yes | 21 characters (CH...). QR-IBAN only if you use a QRR reference. |
| Creditor (name, address, city, country) | Yes | Maximum 70 chars for the name, structured or combined address. |
| Amount | Optional | If empty, the payer enters it manually (useful for donations or open prepayments). |
| Currency | Yes | Only CHF or EUR. Others not supported. |
| Debtor | Optional | If filled in, it appears pre-populated in the customer's transfer. |
| Reference | Conditional | QRR (with QR-IBAN), SCOR (Creditor Reference ISO 11649), or NON. |
| Additional information | Optional | Max 140 characters of free text (invoice number, etc.). |
How to generate a QR-Bill correctly (common mistakes)
Generating a valid QR-Bill is technically delicate. The mistakes we see often, the ones that get an invoice rejected by the customer's banking system:
- Wrong IBAN type. A QR-IBAN starts with a bank code that identifies it as such (IID range 30000-31999). If you use a normal IBAN with a QRR reference, the QR is rejected. If you use a QR-IBAN without a QRR reference, same result.
- Wrong QRR check digit. The 27-digit QRR reference includes a check digit calculated according to the recursive modulo 10. If the software doesn't compute it correctly, the payment fails.
- Wrong encoding for non-ASCII characters. The QR-Bill requires Latin-1, not UTF-8. A poorly encoded "ò" or "ü" breaks the read.
- Swiss cross missing or misplaced. Without the 7×7 mm white cross in the centre, the QR is not recognised as a Swiss QR-Bill.
- Address not structured according to the standard. Address type "S" (structured) requires a precise separation of street, number, postcode, city.
Use software that validates the QR-Bill before exporting the PDF. Vidima runs a complete SPC 0200 v2.2 validation on every generation and blocks the export if it finds even a single error. No surprises the day after.
Technical standard: SIX's SPC 0200 v2.2
SPC stands for "Swiss Payments Council". The current version (as of 2026) is v2.2, published by SIX and in force for several years now. The specification is public and downloadable from the SIX Group website.
Key changes in v2.2 compared to previous versions:
- Stricter validation of structured addresses.
- Extended support for the QR Reference combined with SCOR.
- Clarifications on end-of-record characters (CR/LF) inside the payload.
- More precision on print parameters (perforation, cut-mark positioning).
Professional software has to be up to date with v2.2. Vidima is.
Reference types explained
QRR — QR Reference (27 digits)
The classic 27-digit numeric reference, inherited directly from the old BVR. It enables perfect automatic payment reconciliation: the bank returns it in the camt.053 statement exactly as you issued it, so your accounting software knows immediately which invoice has been paid. Requires a QR-IBAN (not a normal IBAN).
SCOR — Creditor Reference (ISO 11649)
An international reference in the form "RF" + 2 check digits + max 21 alphanumeric characters. Works with a normal IBAN. More modern, also accepted for SEPA payments into the EU.
No reference (NON)
Leaving the reference empty is valid. In this case you use a normal IBAN. You'll have to reconcile manually (or via the "additional information" field if the customer fills it in). Fine for those who invoice a small number of different customers and recognise them at a glance.
How a QR-Bill is paid
The customer who receives your QR-Bill has 4 ways to pay it:
- Mobile banking app. Opens the app (PostFinance, UBS, Raiffeisen, ZKB, cantonal banks), taps "scan QR", points the camera at the code. Everything is pre-filled. Confirm and pay.
- E-banking via browser. Upload the PDF or use the computer's scanner. Same outcome.
- Post office counter. Bring the printed invoice: the clerk scans the QR, pays in cash or from the account.
- Manual transfer. If they really want to, they can type the IBAN and reference by hand from the text of the payment section.
Vidima and the QR-Bill
Vidima is a native desktop software for Windows, designed from the ground up to generate SPC 0200 v2.2-compliant QR-Bills. For anyone working in Switzerland — from Zurich to Geneva, Basel to Bellinzona — Vidima is built to be the simplest possible tool:
- You create a customer once (with automatic validation of Swiss postcode, UID and AFC VAT number).
- You add the invoice line items.
- You select IBAN or QR-IBAN, reference QRR / SCOR / none.
- Vidima validates everything, generates the QR with Swiss cross, and produces a digitally sealed PDF (see cryptographic seal).
- 30 seconds total. No cloud, no monthly subscription. CHF 149 one-time.
Quick frequently asked questions
Do I have to have a QR-IBAN?
Can I issue a QR-Bill in EUR?
How much does a Vidima licence cost for generating QR-Bills?
What happens if the QR is damaged on the printout?
Can customers across Switzerland pay Swiss QR-Bills?
Can I use Vidima if I operate in Switzerland and invoice customers in Germany?
Ready to generate your first QR-Bill?
Download Vidima, try it free for 14 days, generate compliant invoices in 30 seconds.