Swiss QR-Bill for Gravity PDF · Add-on für Gravity PDF

Eine echte QR-Rechnung, nicht nur ein QR-Code auf einer Seite.

Wer mit einem Konto in der Schweiz oder in Liechtenstein Rechnungen stellt, braucht einen Zahlschein, wie ihn die Schweizer Banken erwarten. Swiss QR-Bill for Gravity PDF hängt an die Rechnung, die Gravity PDF erzeugt, eine vollständige Schweizer QR-Rechnung an, mit Zahlteil und Empfangsschein und auf den Millimeter nach Vorschrift. Sie folgt bereits der Fassung 2.4 der Richtlinien für die Schweizer QR-Rechnung, die ab dem 14. November 2026 gilt.

Die QR-Rechnung ist der Schweizer Zahlschein mit QR-Code, das Gegenstück zur SEPA-Überweisung per QR-Code. Sie ist 210 × 105 mm groß und sitzt an der unteren Schnittkante der Seite. Ihr Kunde scannt sie mit seiner Banking-App, oder er trennt sie ab und gibt sie am Bankschalter ab. Gravity PDF ist die Erweiterung, die aus einem ausgefüllten Formular von Gravity Forms eine PDF-Datei erzeugt.


Auf den Millimeter

Das Dokument, das eine Schweizer Bank erwartet.

Empfangsschein
62 mm breit
Zahlteil
148 mm breit, mit dem Swiss QR Code von genau 46 × 46 mm
Der Aufbau der QR-Rechnung: ein Block von 210 × 105 mm am Fuß der Seite aus Empfangsschein (62 mm) und Zahlteil (148 mm), getrennt durch eine Schnittlinie; die Breiten stehen im richtigen Verhältnis.

Der Empfangsschein ist 62 mm breit, der Zahlteil 148 mm, und der vorgeschriebene Rand von 5 mm ist eingehalten. Die Felder für den Betrag und für „Zahlbar durch“ haben ihre festgelegten Größen, der Bereich für die Annahmestelle ist vorhanden. Gedruckt werden auch die Schnittlinien mit Scherensymbol und der Hinweis, den Schein vor der Einzahlung abzutrennen. Die Maße in der Tabelle sind keine Näherungen, denn wir haben sie aus einem erzeugten PDF zurückgemessen.

Element Vorgeschrieben Erzeugt
Gesamtblock 210 × 105 mm am Fuß der Seite 210 × 105
Empfangsschein / Zahlteil 62 / 148 mm 62 / 148
Swiss QR Code genau 46 × 46 mm 46 × 46
Freiraum um den Code mindestens 5 mm 17 / 5 / 5 / 13
Modulgröße mindestens 0,4 mm 0,667 mm
Schweizerkreuz 7 × 7 mm, zentriert 7 × 7, zentriert
Eckmarken 0,75 pt 0,75 pt
Bereich Annahmestelle mindestens 20 mm hoch 20 mm

Im Zahlteil gibt es bewusst keine eigene Überschrift. Abschnitt 3.1 der Implementation Guidelines, der Richtlinien für die Schweizer QR-Rechnung, schließt die Nutzung als Werbefläche aus, und ein freier Text im A6-Bereich würde die Rechnung normwidrig machen. Was Sie Ihrem Kunden sagen wollen, steht deshalb oberhalb der oberen Schnittlinie auf der Rechnungsfläche. Der Feed hat dafür eine eigene Einstellung. Ein Feed ist eine Zuordnung, die festlegt, welches PDF aus welchem Formular entsteht.


Fassung 2.4

Gebaut nach der Fassung 2.4, die ab dem 14. November 2026 gilt.

Die Implementation Guidelines in der Fassung 2.4 gelten ab dem 14. November 2026. Drei ihrer Änderungen wiegen schwer, denn jede einzelne kann eine Rechnung ungültig machen. Eine Umsetzung, die noch der Fassung 2.3 folgt, ist deshalb ab diesem Tag nicht mehr richtig. Mit diesem Add-on sind Sie schon heute auf den neuen Stand eingestellt.

Änderung in Fassung 2.4 Was das für Sie bedeutet
QR-Referenz und QR-IBAN nur noch in CHF Eine QR-IBAN verlangt eine QR-Referenz. Die früher erlaubte Kombination „QR-IBAN plus EUR“ ist damit nicht mehr möglich. Die Feed-Seite meldet diesen Fall als Hindernis, bevor Sie etwas einstellen.
Die strukturierte Adresse ist Pflicht Der kombinierte Adresstyp „K“ entfällt. Postleitzahl, Ort und Land des Zahlungsempfängers sind Pflicht und nicht nur Empfehlung.
Rätoromanisch als fünfte Korrespondenzsprache Die Sprachliste hat fünf statt vier Einträge.

Gegen die Beispiele des Standards geprüft

Anhang A der Richtlinien enthält zwei vollständig durchgerechnete Datensätze, und das Add-on erzeugt beide Byte für Byte gleich. Dazu gehört ein Detail, das leicht übersehen wird: Die Versionszeile im Code bleibt 0200 und wird nicht 0240. Abschnitt 7.1 verlangt von Lesegeräten, diese Zeile zu prüfen, und ein Code mit 0240 wird deshalb rundweg abgelehnt.

euroSIC wird eingestellt

euroSIC ist das Schweizer System für Zahlungen in Euro. QR-Rechnungen in EUR werden spätestens ab November 2027 als SEPA-Überweisung abgewickelt. Die Richtlinien warnen, dass die Adresse des Zahlenden und eine Mitteilung neben einer strukturierten Referenz dann nicht mehr sicher bei Ihnen ankommen. Bei einer EUR-Rechnung schreibt das Add-on deshalb einen Hinweis ins Protokoll, statt zu schweigen.


Die Referenz

Was eine Zahlung einer Rechnung zuordnet.

Welche Art von Referenz Sie verwenden dürfen, entscheidet Ihr Konto und nicht Ihre Vorliebe. Das Add-on kann die richtige Art aus der IBAN ableiten, sodass Sie sich darum nicht kümmern müssen.

Typ Voraussetzung Format
QRR, die QR-Referenz eine QR-IBAN, seit Fassung 2.4 zusätzlich CHF 27 Ziffern, Prüfziffer nach Modulo 10 rekursiv
SCOR, die Creditor Reference eine gewöhnliche IBAN; CHF oder EUR RF, zwei Prüfziffern und bis zu 21 weitere Zeichen
NON, keine Referenz eine gewöhnliche IBAN die Zeile bleibt leer

Je Rechnung aufgebaut

Tragen Sie Ihre Rechnungsnummer in ein Feld ein. Dabei sind Merge-Tags erlaubt. Ein Merge-Tag ist ein Platzhalter wie {Name:1}, den Gravity Forms durch den eingegebenen Wert ersetzt. Das Add-on setzt daraus die 27-stellige Referenz zusammen und berechnet die Prüfziffer.

Oder unverändert durchgereicht

Zeigt dasselbe Feld auf eine bereits vorhandene Referenz, erkennt das Add-on eine vollständige und gültige Referenz und lässt sie unangetastet. Ohne diese Erkennung würde ein Merge-Tag auf eine gespeicherte Referenz stillschweigend Unsinn erzeugen, etwa aus RF18… ein RF97RF18…. Tritt dieser Fall ein, steht das im Protokoll.

Was die Prüfziffer kann und was nicht

Wir haben es gemessen und nicht angenommen. Eine einzelne falsche Ziffer wird immer erkannt: Von 97.200 veränderten Referenzen, die wir getestet haben, ist keine durchgerutscht. Ein Zahlendreher zweier benachbarter Ziffern wird meist erkannt, aber nicht immer, denn rund 2 % dieser Zahlendreher rutschen durch. Diese Lücke ist genau bekannt und dokumentiert.

97.200
Referenzen mit einer falschen Ziffer getestet, keine davon durchgerutscht
rund 2 %
der Zahlendreher benachbarter Ziffern bleiben unerkannt
Unsere Messung der Prüfziffer: Eine einzelne falsche Ziffer wird immer erkannt, ein Zahlendreher benachbarter Ziffern meist.

Gebaut, um nicht zu brechen

Kleine Stolpersteine halten Ihre Rechnung nicht auf.

Ein Apostroph kann Ihre Rechnung nicht zerstören

Der Standard erlaubt nur eine bestimmte Auswahl von Zeichen, doch WordPress setzt ungefragt Zeichen ein, die nicht dazugehören. Aus einem getippten Apostroph wird zum Beispiel stillschweigend ein typografischer Apostroph. Das Add-on wandelt solche Zeichen in ihre einfachen Entsprechungen um, statt sie zu entfernen. So bleibt „L’Atelier“ lesbar und die Rechnung zahlbar.

Unbekannter Betrag oder Zahler ist in Ordnung

Beides ist zulässig. Der Zahlteil druckt dann ein leeres Feld mit schwarzen Eckmarken in genau den Maßen des Standards, das der Kunde von Hand ausfüllt. Ein Spendenformular funktioniert so ebenso gut wie eine Rechnung.

Es kommt Ihrer Vorlage nicht in die Quere

Der Zahlteil belegt genau die Fläche, in der sonst eine Fußzeile sitzt. Deshalb schaltet das Add-on die laufende Fußzeile der Vorlage für diese eine Seite ab, und nur für diese. Ihre Rechnungsseiten behalten ihre Fußzeile.

Fünf Sprachen, je Formular gewählt

Zur Wahl stehen Deutsch, Französisch, Italienisch, Rätoromanisch und Englisch. Die Überschriften sind vorgeschriebener Wortlaut und keine freien Übersetzungen. Die Sprache wählt der Rechnungssteller, und zwar je Formular. Ein deutschsprachiges WordPress kann also einen italienischen Zahlteil drucken.

Auch Avise

Ein Avis ist eine QR-Rechnung, die nicht bezahlt werden soll. Ein Schalter erzeugt die Variante, die die Richtlinien dafür vorsehen: Der Betrag steht fest auf 0.00, dazu kommt der vorgeschriebene Wortlaut in der gewählten Sprache. So ist zugleich sichergestellt, dass eine Umwandlung in eine eBill nicht zur Zahlung freigegeben werden kann.

Nichts zu installieren

Es gibt keinen Composer-Schritt, keine PHP-Erweiterung bcmath, keinen API-Schlüssel, keinen externen Dienst und keine fremde QR-Rechnungs-Bibliothek. Dateninhalt, Prüfziffern und Layout stecken im Plugin, deshalb läuft es schon ab PHP 7.4. Den QR-Encoder bringt Gravity PDF selbst mit.

Entwicklerfreundlich

Das Layout ist ein Array benannter Konstanten, das sich über einen Filter anpassen lässt. Die Klasse für den Dateninhalt kommt ohne WordPress aus, sodass sich die Regeln des Standards getrennt testen lassen. Die QR-Referenz liegt als tragbares Paket aus zwei Dateien bei, das Sie in jedes andere Gravity-Forms-Plugin kopieren dürfen.


Voraussetzungen

Was vorhanden sein muss.

WordPress mit Gravity Forms 2.5 oder neuer
Gravity PDF 6 oder neuer
PHP 7.4 oder neuer
Währung in Gravity Forms CHF oder EUR
IBAN Schweiz oder Liechtenstein

Das Add-on prüft sieben Voraussetzungen an einer Stelle und zeigt das Ergebnis an zwei Stellen: als Liste auf der Feed-Seite, wo Sie etwas ändern können, und als Zeile im Protokoll beim Erzeugen des PDF, wo das Add-on den Zahlteil dann still überspringt. Weil beide aus derselben Prüfung stammen, können sie sich nie darin widersprechen, was fehlt.


Einrichtung

Vier Schritte, danach läuft es von allein.

1 · Adresse hinterlegen
vollständig, nach Fassung 2.4
2 · Feed anlegen
und Sprache wählen
3 · Referenz ableiten
aus der IBAN
4 · PDF öffnen
mit Zahlteil und Empfangsschein
Die Einrichtung in vier Schritten, von der Adresse des Rechnungsstellers bis zum fertigen Zahlteil.

01   Vollständige Adresse des Rechnungsstellers hinterlegen

Die Fassung 2.4 hat die strukturierte Adresse des Zahlungsempfängers zur Pflicht gemacht, also Straße, Postleitzahl, Ort und Land und nicht nur einen Namen. Diese Angaben stehen zusammen mit der IBAN auf der gemeinsamen Seite (e)invoice Settings, und jedes Add-on der Familie liest sie von dort.

02   Feed anlegen und Sprache wählen

Ein Feed entscheidet, welches PDF den Zahlteil trägt. Die Überschriften sind vorgeschriebener Wortlaut in Deutsch, Französisch, Italienisch, Rätoromanisch und Englisch, und die Sprache wählen Sie je Feed. Eine deutsche Website kann also einen italienischen Zahlteil drucken.

03   Die IBAN über die Referenz entscheiden lassen

Eine QR-IBAN verlangt eine QR-Referenz und CHF, eine gewöhnliche IBAN nimmt eine Creditor Reference oder gar keine Referenz. Belassen Sie die Einstellung auf Aus der IBAN ableiten, dann wählt das Add-on die richtige Art. Kann Ihre Kombination nicht funktionieren, sagt es Ihnen das auf der Feed-Seite.

04   PDF öffnen

Empfangsschein und Zahlteil stehen an der unteren Schnittkante der letzten Seite, zusammen mit den Schnittlinien und dem Hinweis, vor der Einzahlung abzutrennen.


Die gemeinsame Seite (e)invoice Settings. Seit der Fassung 2.4 ist die Adresse des Rechnungsstellers ein Pflichtbestandteil.

Für jedes Dokument, das den Zahlteil tragen soll, gibt es einen Feed.

Die Einstellungen eines Feeds. Sie legen fest, welches PDF den Zahlteil trägt, welche der fünf Sprachen gilt und welcher Referenztyp verwendet wird.

Die erzeugte QR-Rechnung: Der Empfangsschein ist 62 mm breit, der Zahlteil 148 mm, dazu kommen die Schnittlinien mit Scherensymbol.


Handbuch

Alles zum Nachlesen.

Das Handbuch beschreibt die Installation, die ersten Schritte, alle Einstellungen und besondere Fälle. Es gilt für die Version 1.1.8 des Plugins.


Passt dazu

Diese Erweiterungen ergänzen das Add-on.

EPC-QR-Code

EPC-QR for Gravity PDF hängt an das PDF eine Zahlseite mit einem QR-Code für die SEPA-Überweisung an. Das ist der passende Zusatz für Rechnungen in Euro an Kunden im SEPA-Raum.

E-Rechnung aus Gravity PDF

eInvoice Generator for Gravity PDF macht aus dem Rechnungs-PDF, das Gravity PDF ohnehin erzeugt, eine E-Rechnung nach EN 16931. Eine E-Rechnung ist eine Rechnung als strukturierte Datei, die ein Programm lesen kann. Das Plugin ist ein Kaufprodukt und im Shop von invoicePress.de erhältlich.

SEPA-Felder

SEPA Fields for Gravity Forms bringt drei geprüfte Felder für Bankdaten in Gravity Forms: IBAN, BIC (auch SWIFT-Code genannt) und Gläubigerreferenz nach ISO 11649.


Erlaubt Ihr Konto eine QR-Referenz?

Das entscheidet Ihre IBAN: Eine QR-IBAN verlangt eine QR-Referenz und CHF, eine gewöhnliche IBAN nimmt eine Creditor Reference oder keine Referenz. Das Add-on kann die richtige Art selbst ableiten und sagt Ihnen auf der Feed-Seite, wenn die Fassung 2.4 Ihre Kombination ausschließt. In der Demo sehen Sie bald eine fertige QR-Rechnung aus einem Beispielformular. Swiss QR-Bill for Gravity PDF ist ein Kaufprodukt. Alles Weitere zum Bezug finden Sie auf der Produktseite.