What the Swiss QR Code is
The Swiss QR Code is a standard QR Code (ISO/IEC 18004) carrying the structured Swiss payment data used on Swiss QR-bill invoices, per the Swiss payment standards body SIX.
Generate it now
Enter your Swiss QR-bill payment fields to see a live preview.
Valid input
Input follows the Swiss QR-bill structured data format (IBAN, amount, reference, etc.), beginning with SPC, version 0200, and coding type 1. Fields in these examples use the literal ^CR^LF escape token; bwip-js decodes it to line breaks only when parse is enabled.
Key options
For a QR-bill, error correction is fixed at M by the SIX specification; it is not a workflow choice. parse must be true for the seeded caret-escaped example so literal "^CR^LF" tokens become real line breaks. Omitting parse encodes the token text instead and is non-conformant.
Output and printing
Export SVG, then size the Swiss QR Code itself to 46x46mm in the payment-part artwork without removing its required surrounding quiet space.
Common uses
Swiss QR Code is used on Swiss QR-bill invoices for structured, scannable payment initiation.
Example
See the live preview above, seeded with a value that passes both the repository's Swiss QR-bill structure checks and the pinned encoder.
Size guidance
SIX requires the printed Swiss QR Code area to be 46x46mm and requires surrounding quiet space; preserve both when placing the SVG.
Troubleshooting
If the payment app cannot read the fields, verify the structured data follows the exact Swiss QR-bill field order.
Related formats
Related formats: plain QR Code.
FAQ
Why does my QR code look wrong even though bwip-js did not reject my input?
bwip-js does not validate Swiss QR-bill field semantics -- it only encodes whatever text it is given. If parse is left off, the literal "^CR^LF" text is encoded instead of real line breaks between fields, which most payment apps will not parse correctly even though bwip-js itself renders a valid QR Code. Set parse: true.