The binaries to create validated Swiss Payments Code strings (SPC) are qrinvoice_spc.exe and qrinvoice_spc_console.exe (if you prefer a console application).

Type qrinvoice_spc.exe --help in order to see available options and arguments:

qrinvoice_spc.exe [OPTION...] [optional stdin]
Table 1. Options
Option Description Default Value


Print help

--basepath <value> -a <value>

Base path for all files. If set, all non-absolute paths are resolved relative to this base path

--inputfile <value> -b <value>

Input data (*) file name / path , if not specified, input is read from standard input.

--inputencoding <value>

Input encoding (UTF-8 | ISO-8859-1)


--inputformat <value> -c <value>

Input format (JSON|CSV)


--inputbase64 -d

Input is base64 encoded


--outputfile <value> -e <value>

Output file name, if not specified output is written into standard output

--outputbase64 -g

Output is written base64 encoded


--loglevel <value> -x <value>



--logfile <value> -y <value>

Log file name, if log should be printed to log file instead of standard output (if no output file is used, log is written to log.txt as default value)

--lazylogfile=<value> -z <value>

If log file should be lazily initialized. If no logging occurs, file is not created in lazy mode.



The input data (*) if not provided by inputfile.

*) Data can be passed as JSON or CSV document. Please make sure that UTF-8 is used as encoding, otherwise specify it with the option --inputencoding. Input can be passed as base64 encoded string in case you encounter encoding issues, especially when passing via stdin.


From JSON Input File to File

qrinvoice_spc.exe --inputfile inputdata.json --outputfile spc.txt --logfile spc.log

From JSON Input File to Standard Output

qrinvoice_spc.exe --inputfile inputdata.json