The programs to create Payment Part & Receipts (PPR) are qrinvoice_ppr.exe and qrinvoice_ppr_console.exe (if you prefer console application).

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

qrinvoice_ppr.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.

--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

--outputformat <value> -f <value>

Output format (PDF | PNG | JPG)


--outputbase64 -g

Output is written base64 encoded


--language <value> -h <value>

Language in which the payment part & receipt is to be generated. (DE | FR | IT | EN)


--pagesize <value> -i <value>

Output page size (A4 | A5 | DIN_LANG)


--fontfamily <value> -j <value>

Font family (LiberationSans | Helvetica | Arial)


--fontpath <value> -k <value>

Font path where the font files (TTF files) are located.

--resolution <value> -l <value>

The number of DPI to use in order to rasterize the output (irrelevant for PDF) (150 | 300)


--boundarylines=<value> -m=<value>

boundary lines are printed (separation between Bill and payment part & receipt). This is needed if QR Bill is digitally distributed and not printed on paper without perforation. Only relevant for Output type 'PaymentPartReceipt'


--boundarylinescissors=<value> -n=<value>

scissor pictogram is printed on the boundary lines to indicate the need for separation. requires boundarylines flag


--boundarylineseparationtext=<value> -o=<value>

a separation text ("Separate before paying in") is written above the payment part. Can only be used if pagesize is larger than DIN_LANG


--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


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. Input can be passed as base64 encoded string in case you encounter encoding issues, especially when passing via stdin.


A4 PDF from JSON Input File in German

qrinvoice_ppr.exe --inputfile inputdata.json --outputfile qrinvoice_a4.pdf --logfile qrinvoice.log

DIN_LANG PDF from JSON Input File in French

qrinvoice_ppr.exe --inputfile inputdata.json --pagesize DIN_LANG --language FRENCH --outputfile qrinvoice_din_lang.pdf --logfile qrinvoice.log

DIN_LANG PNG from JSON Input File in French

qrinvoice_ppr.exe --inputfile inputdata.json --pagesize DIN_LANG --language FRENCH --outputformat PNG --outputfile qrinvoice_din_lang.png --logfile qrinvoice.log

A5 PDF from JSON Input File in Italian without boundary lines

qrinvoice_ppr.exe --inputfile inputdata.json --pagesize A5 --language ITALIAN --outputformat PDF --outputfile qrinvoice_a5.pdf --logfile qrinvoice.log --boundarylines=false