Is there a central library for generating a Swiss QR Code?
Every ERP software publisher and each bank has its preferred programming language on their preferred operating system. The financial center has decided against a central library because there are enough established open source or licensed libraries for generating Swiss QR Codes on the market.
This simple code example in Java 1.7, which was created using the widely-used ZXing open source library, shows how a Swiss QR Code can be generated.
How do I integrate the Swiss cross in the Swiss QR Code?
To integrate the Swiss cross, you only need to overlay the QR code, centered, with the appropriate image – respecting the proper and length and width ratios.
This simple code example in Java 1.7 which was created using the widely used ZXing open source library, provides support for generating the Swiss QR Code.
In the Swiss QR Code, the character series CR + LF (0x0d + 0x0a) is used as as separator for the individual data elements. Can only the character CR (or LF) be used instead?
The character series CR + LF was specified to be able to ensure the maximum size of the Swiss QR Code – regardless of the hardware platform or code library used. The use of LF alone, however, is also possible, since it thereby does not result in a exceeding the maximum size of the Swiss QR Code. The same separator must be used throughout the entire Swiss QR Code.
May the element separator used (CR + LF / LF or CR) also be used within a data element (e.g. line return in "Additional information")?
No. The separator may only be delivered at the end, not within a data element.
Does the line shift (CR+LF) used in the Swiss QR Code have to be taken into account for the maximum number of characters in an element?
No. The information pertaining to the maximum character count always relates to the net data without element separators.
We have created a specification or software for QR-bill. Can you check this?
No. We cannot take responsibility for the quality of third party offers.
Which Swiss QR Code version should be generated and with which coding?
All Swiss QR Codes are to be generated in the smallest version and scaled only to the dimensions 46mm x 46mm. Version 25 is the maximum possible version. However, it is rarely used.
The Swiss QR Code must be in UTF-8 without BOM coding. The ISO Latin 8859-1 (Latin-1) is to be used as the character set.
Which version of the IG should be entered in the QR code (the elements "QRCH +Header ++Version")?
Currently, QR-bills are based on IG Version 2.1, which is why the value "0210" in the data element "Version" would be correct and this is also used by some software manufacturers. However, IG version 2.1 does not clearly describe that the text "Fixed value 0200" is only an example for version 2.0.
As a consequence, the IG have been implemented differently by different banks and software partners and there is no consistency in the version validation of the QR code – some banks only validate the main version ("02"), while others only allow QR-bills with the value "0200" as version number. In order to solve the described problem and reduce the risk of QR-bill rejections, SIX, in cooperation with representatives of the financial center, has decided to recommend in the short term only the implementation of version "0200" in the QR code. The SIX validation portal was adapted accordingly and now only accepts version "0200".
In the long term, the other versions of the QR code should be allowed as long as they are implemented in accordance with the IG. The banks have time until the first "breaking change", but no later than November 2022, to validate only the main version of the IG on the basis of which the Swiss QR Code was created (e.g. "02"). SIX will provide further information on this topic as soon as a breaking change is planned or the banks have implemented this long-term solution.