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
- If the input starts with RF, it is validated as an ISO 11649 SCOR Creditor Reference using Modulo 97-10.
- 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.
- 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.