Swiss QR-bill reference validator & generator

Validate or generate 27-digit Swiss QR references (QRR Modulo 10 recursive) and ISO 11649 Creditor References (SCOR).

Direct answer

Swiss QR-bills support two structured reference types: a 27-digit numeric QR Reference (QRR) validated with the Modulo 10 recursive check digit (mandatory with a QR-IBAN), or an alphanumeric ISO 11649 Creditor Reference starting with RF and two Modulo-97 check digits (used with a standard IBAN).

Key statutory figures & facts

  • •QRR length: 27 digits (26 payload digits + 1 Modulo-10 recursive check digit)
  • •QRR print format: XX XXXXX XXXXX XXXXX XXXXX XXXXX
  • •SCOR format: RF + 2 check digits + up to 21 alphanumeric characters (ISO 11649)
  • •QRR requires a QR-IBAN (IID 30000–31999); SCOR uses a regular IBAN

How it's calculated

  1. If the input starts with RF, it is validated as an ISO 11649 SCOR Creditor Reference using Modulo 97-10.
  2. If the input is 27 digits, the first 26 digits are passed through the SIX Modulo 10 recursive carry table to verify the 27th check digit.
  3. In generator mode (or when given a shorter invoice number), the tool left-pads digits to 26 characters to compute the 27-digit QRR and also generates the matching RF SCOR reference.

Assumptions

  • Follows SIX Swiss Implementation Guidelines for the QR-bill (v2.3).

Frequently asked questions

When do I need a 27-digit QRR vs. an RF SCOR reference on a Swiss QR-bill?
Use a 27-digit QRR when your invoice displays a QR-IBAN (clearing number 30000–31999). Use an RF SCOR reference (or no reference) when your invoice displays a normal CH/LI IBAN.
How is the 27th check digit of a Swiss QR reference calculated?
It uses the Modulo 10 recursive algorithm with the permutation table [0, 9, 4, 6, 8, 2, 7, 1, 3, 5]. Starting with carry 0, each of the 26 digits updates carry = table[(carry + digit) mod 10], and the check digit is (10 - carry) mod 10.
Can a SCOR reference be used for international EUR invoices?
Yes. ISO 11649 SCOR references (RF...) are internationally standardized and work for both CHF and EUR payments on a regular IBAN.