Wir sind umgezogen!
Unsere QR-Rechnung API ist ab sofort auf einer komplett neuen Plattform verfügbar — moderner und mit vielen neuen Funktionen.
- Neues übersichtliches Dashboard zur Verwaltung Ihrer API Keys und Nutzung
- Kostenloser Free-Plan mit 50 Anfragen pro Monat
- Detaillierte Nutzungsstatistiken und Abrechnungsübersicht
- Verbesserte API-Dokumentation mit Code-Beispielen in 6 Sprachen
- IBAN- und QR-Referenz-Berechnung direkt über die API
- Swico BillInformation (S1) für Pro- und Enterprise-Kunden
QR-RECHNUNG SCHWEIZ – API
Zur Vereinfachung und Harmonisierung des Zahlungsverkehrs wird in der Schweiz die QR-Rechnung eingeführt. Seit dem 30. Juni 2020 ist es möglich, QR-Rechnungen zu verwenden. Bis zum 30. September 2022 ist ein Parallelbetrieb der verschiedenen EZ-Systeme vorgesehen. Ab dem 1. Oktober 2022 kann nur noch die QR-Rechnung verwendet werden. Bei etlichen Systemen besteht also dringender Handlungsbedarf.
Rechnung oder Code kostenlos generieren lassen
Die Implementierung der QR-Rechnung in bestehende Applikationen ist nicht immer ohne Weiteres möglich. Setzt man als Entwickler die Generierung der QR-Rechnung selber um, so ist das zudem u.U. mit erheblichem Aufwand für Recherche und Programmierung verbunden. LivingTech stellt daher interessierten Entwicklern eine kostenlose API zur Generierung der QR-Rechnung zur Verfügung. Hier finden Sie ein Beispiel der generierten Daten.
Wirklich kostenlos?
Private wie kleinere Unternehmen unterstützen wir mit unserem API Service zur Zeit kostenlos. Die standardmässige tägliche Limite an Requests kann bei Bedarf individuell angepasst werden. Grössere Unternehmen oder Nutzer mit vielen API Calls können sich gerne an uns wenden.
Nutzung – code snippets
using System;
using System.Linq;
using System.Web;
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Collections.Generic;
using Newtonsoft.Json;
static void Main(string[] args)
protected byte[] generateQrInvoice(Dictionary myRequestConfiguration)
// Configuration
$myConfiguration = [
"Account" => "CH4431999123000889012",
"CreditorName" => "Muster AG",
"CreditorStreetName" => "Hauptstrasse",
"CreditorHouseNumber" => "1",
"CreditorZip" => "8000 ",
"CreditorTown" => "Zürich",
"CreditorCountryCode" => "CH",
"DebtorName" => "LivingTech GmbH",
"DebtorStreetName" => "Dörflistrasse",
"DebtorHouseNumber" => "10",
"DebtorZip" => "8057",
"DebtorTown" => "Zürich",
"DebtorCountryCode" => "CH",
"Amount" => "1.50",
"ReferenceNr" => "21000000000313947143000901",
"UnstructuredMessage" => "Mitteilung zur Rechnung",
"Currency" => "CHF",
"QrOnly" => "false",
"Format" => "PDF",
"Language" => "DE",
];
// Call function to create invoice
$myFile = generateQrInvoice($myConfiguration);
// Work with binary data
if($myFile != null)
function generateQrInvoice($myRequestConfiguration)
// Configuration
let myConfiguration =
// Call function to create invoice
let myFile = generateQrInvoice(myConfiguration);
// Work with binary data
if(myFile != null)
async function generateQrInvoice(myRequestConfiguration)
// Helper function for Base64 to Blob
function base64ToBlob(b64Data, contentType = "", sliceSize = 512)
[...]
'Create Request Object
Set objRequest = CreateObject("MSXML2.XMLHTTP")
'Run request
With objRequest
.Open "GET", strUrl, blnAsync
.SetRequestHeader "Accept", "application/json"
.SetRequestHeader "APIKEY", Trim(Range("B23").Value)
.Send
'Wait for response
While objRequest.readyState <> 4
DoEvents
Wend
'Process response
strResponse = .ResponseText
End With
'Parse JSON-response
Set dic = ParseJSON(strResponse)
'Check for error
If LCase(Trim(dic("obj.isSuccess"))) = "true" And Len(Trim(dic("obj.base64Content"))) > 0 Then
'Use workbook path as tempory path
strTempPath = Application.ActiveWorkbook.Path & "\temp.png"
'Save byte array to tempory file
Open strTempPath For Binary As #1
Put #1, 1, DecodeBase64(dic("obj.base64Content"))
Close #1
'Insert image from tempory file
Set Image = ActiveSheet.Pictures.Insert(strTempPath)
Image.Top = Range("D1").Top
Image.Left = Range("D1").Left
Image.ShapeRange.Height = 200
Image.ShapeRange.Width = 200
'Delete tempory file
Kill strTempPath
Else
'Error
MsgBox ("Es gab einen Fehler")
End If
[...]
Hinweis: der oben aufgeführte Code stellt nur einen Ausschnitt dar. Bei Bedarf kann eine Beispiel-Implementierung der API für MS Office/VBA heruntergeladen werden (für API V.1 / für API V.2). Der Code kümmert sich um die Basics wie:
- Validierung der Daten
- Aufbau und Durchführung des API-Requests
- Parsen der JSON-Daten
- Umwandlung von Base64-Content in PDF/PNG
- Einfügen der Grafik ins Office-Dokument
Sämtliche individuellen Arbeiten können auf Basis des Beispiels mit den nötigen VBA-Kenntnissen problemlos umgesetzt werden. Bei Fragen stehen wir Ihnen gerne zur Verfügung.
FAQ / Nutzungshinweise
Über uns
Die QR-Rechnungs-API ist ein kostenloser Service der LivingTech GmbH. Wir erstellen Webseiten, setzen E-Commerce-Projekte um und entwickeln kundenspezifische Webapplikationen. Alles aus einer Hand – lokal, unkompliziert und fair. Haben Sie Fragen? Melden Sie sich bei uns.
QR-RECHNUNG SCHWEIZ – API
Zur Vereinfachung und Harmonisierung des Zahlungsverkehrs wird in der Schweiz die QR-Rechnung eingeführt. Seit dem 30. Juni 2020 ist es möglich, QR-Rechnungen zu verwenden. Bis zum 30. September 2022 ist ein Parallelbetrieb der verschiedenen EZ-Systeme vorgesehen. Ab dem 1. Oktober 2022 kann nur noch die QR-Rechnung verwendet werden. Bei etlichen Systemen besteht also dringender Handlungsbedarf.
Rechnung oder Code kostenlos generieren lassen
Die Implementierung der QR-Rechnung in bestehende Applikationen ist nicht immer ohne Weiteres möglich. Setzt man als Entwickler die Generierung der QR-Rechnung selber um, so ist das zudem u.U. mit erheblichem Aufwand für Recherche und Programmierung verbunden. LivingTech stellt daher interessierten Entwicklern eine kostenlose API zur Generierung der QR-Rechnung zur Verfügung. Hier finden Sie Beispiel der generierten Daten.
Nutzung – code snippets
using System;
using System.Linq;
using System.Web;
using System.IO;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Collections.Generic;
using Newtonsoft.Json;
static void Main(string[] args)
protected byte[] generateQrInvoice(Dictionary myRequestConfiguration)
// Configuration
$myConfiguration = [
"Account" => "CH4431999123000889012",
"CreditorName" => "Muster AG",
"CreditorStreetName" => "Hauptstrasse",
"CreditorHouseNumber" => "1",
"CreditorZip" => "8000 ",
"CreditorTown" => "Zürich",
"CreditorCountryCode" => "CH",
"DebtorName" => "LivingTech GmbH",
"DebtorStreetName" => "Dörflistrasse",
"DebtorHouseNumber" => "10",
"DebtorZip" => "8057",
"DebtorTown" => "Zürich",
"DebtorCountryCode" => "CH",
"Amount" => "1.50",
"ReferenceNr" => "21000000000313947143000901",
"UnstructuredMessage" => "Mitteilung zur Rechnung",
"Currency" => "CHF",
"QrOnly" => "false",
"Format" => "PDF",
"Language" => "DE",
];
// Call function to create invoice
$myFile = generateQrInvoice($myConfiguration);
// Work with binary data
if($myFile != null)
function generateQrInvoice($myRequestConfiguration)
// Configuration
const myConfiguration =
// Call function to create invoice
let myFile = generateQrInvoice(myConfiguration);
// Work with binary data
if(myFile != null)
async function generateQrInvoice(myRequestConfiguration)
// Helper function for Base64 to Blob
function base64ToBlob(b64Data, contentType = "", sliceSize = 512)
[...]
'Create Request Object
Set objRequest = CreateObject("MSXML2.XMLHTTP")
'Run request
With objRequest
.Open "GET", strUrl, blnAsync
.SetRequestHeader "Accept", "application/json"
.SetRequestHeader "APIKEY", Trim(Range("B23").Value)
.Send
'Wait for response
While objRequest.readyState <> 4
DoEvents
Wend
'Process response
strResponse = .ResponseText
End With
'Parse JSON-response
Set dic = ParseJSON(strResponse)
'Check for error
If LCase(Trim(dic("obj.isSuccessed"))) = "true" And Len(Trim(dic("obj.base64Content"))) > 0 Then
'Use workbook path as tempory path
strTempPath = Application.ActiveWorkbook.Path & "\temp.png"
'Save byte array to tempory file
Open strTempPath For Binary As #1
Put #1, 1, DecodeBase64(dic("obj.base64Content"))
Close #1
'Insert image from tempory file
Set Image = ActiveSheet.Pictures.Insert(strTempPath)
Image.Top = Range("D1").Top
Image.Left = Range("D1").Left
Image.ShapeRange.Height = 200
Image.ShapeRange.Width = 200
'Delete tempory file
Kill strTempPath
Else
'Error
MsgBox ("Es gab einen Fehler")
End If
[...]
Hinweis: der oben aufgeführte Code stellt nur einen Ausschnitt dar. Bei Bedarf kann eine Beispiel-Implementierung der API für MS Office/VBA heruntergeladen werden (für API V.1 / für API V.2). Der Code kümmert sich um die Basics wie:
- Validierung der Daten
- Aufbau und Durchführung des API-Requests
- Parsen der JSON-Daten
- Umwandlung von Base64-Content in PDF/PNG
- Einfügen der Grafik ins Office-Dokument
Sämtliche individuellen Arbeiten können auf Basis des Beispiels mit den nötigen VBA-Kenntnissen problemlos umgesetzt werden. Bei Fragen stehen wir Ihnen gerne zur Verfügung.
FAQ / Nutzungshinweise
Wir sind umgezogen!
Unsere QR-Rechnung API ist ab sofort auf einer komplett neuen Plattform verfügbar — moderner und mit vielen neuen Funktionen.
- Neues übersichtliches Dashboard zur Verwaltung Ihrer API Keys und Nutzung
- Kostenloser Free-Plan mit 50 Anfragen pro Monat
- Detaillierte Nutzungsstatistiken und Abrechnungsübersicht
- Verbesserte API-Dokumentation mit Code-Beispielen in 6 Sprachen
- IBAN- und QR-Referenz-Berechnung direkt über die API
- Swico BillInformation (S1) für Pro- und Enterprise-Kunden
Beispiele für Rückgabe
Sie können über Parameter festlegen, welche Art von Rückgabe Sie von der API erwarten. Entweder ein normiertes PDF mit dem vollständigen Einzahlungsschein oder den reinen QR-Code. Die Daten werden jeweils als Base64-kodierter String zurückgegeben.
Einzahlungsschein als PDF
Standardmässig gibt Ihnen die API ein einseitiges PDF-Dokument mit dem QR-Einzahlungsschein am unteren Ende zurück. Dieses Dokument können Sie Ihrer Rechnung anstelle des bisherigen orangen EZ beifügen. Der QR-EZ enthält alle notwendigen Informationen und entspricht den offiziellen Vorgaben.

QR-Code als PNG
Alternativ können Sie sich den Einzahlungsschein auch selber erstellen – oder ganz darauf verzichten. In diesem Fall fordern Sie bei der API lediglich den QR-Code als PNG an. Der Code enthält alle relevanten Zahlungsinformationen und kann vom Enduser in der Banking-App gescannt werden.


