How to create a Swiss QR-bill that does not get rejected

Updated · 2 sources

Direct answer

A Swiss QR-bill is accepted only if the account and reference types match: a QR-IBAN (clearing number 30000–31999) requires the 27-digit numeric QR reference (QRR) with its Modulo 10 recursive check digit, while a normal IBAN takes an RF creditor reference (SCOR, ISO 11649) or no reference. Mismatched pairs are rejected by Swiss Interbank Clearing before the money moves.

Key facts

  • QR-IBAN (IID 30000–31999) + 27-digit QRR: only this combination is valid
  • Normal IBAN + RF reference (SCOR) or no reference; never a QRR
  • QRR check digit: Modulo 10 recursive over the first 26 digits
  • Currencies: CHF or EUR; creditor needs a structured address

Create the bill in this order

  1. 1Decide which account the money lands on. Ask your bank whether your IBAN is a QR-IBAN (characters 5–9 between 30000 and 31999).
  2. 2Generate the matching reference: for a QR-IBAN, build the 27-digit QRR from your invoice number left-padded to 26 digits plus the Modulo 10 recursive check digit; for a normal IBAN, generate the RF reference with its Modulo 97 check digits.
  3. 3Fill the QR code payload: creditor IBAN, creditor name and structured address, amount (or blank for the payer to complete), currency CHF or EUR, and the reference, character-exact.
  4. 4Print or export with the SIX layout: A6 receipt and payment part, QR code 46×46 mm, no logos or text inside the quiet zone.
  5. 5Test before sending: scan with your own banking app and validate IBAN and reference; a test payment of CHF 1 catches most pairing errors.
  6. 6Reconcile incoming payments on the reference, not the amount; the reference is the only reliable matching key.
AccountReferenceResult
QR-IBAN27-digit QRRValid
Normal IBANRF (SCOR) or noneValid
QR-IBANRF or noneRejected by SIC

Why bills get rejected

Almost every rejection is one of three pairing errors: a QRR printed next to a normal IBAN, an RF reference next to a QR-IBAN, or a check digit computed with plain Modulo 10 instead of the recursive carry table. The fourth is typographic: shrinking the QR code or placing it over a coloured background so banking apps cannot scan it.

Open Swiss QR-bill reference validator & generator →Open Swiss IBAN & bank clearing validator →

FAQ

Can I use my normal IBAN on a QR-bill?
Yes, with an RF creditor reference (SCOR) or no reference. Only QR-IBANs force the 27-digit QRR reference.
How do I know if my IBAN is a QR-IBAN?
Look at characters 5 to 9 (the bank clearing number / IID). Between 30000 and 31999 it is a QR-IBAN; for example PostFinance and most banks issue them on request for invoicing.
What happens if the reference check digit is wrong?
Payer banks validate the reference before execution; a wrong Modulo 10 recursive digit on a QRR (or Modulo 97 on an RF reference) blocks the payment with an error, so the invoice stays unpaid.

Related guides

Sources

  1. SIX — QR-bill implementation guidelines
  2. SIX — IBAN and IID