The newest version of this document can be found online at:
Last modified: 2019-11-05 17:21 ➔ reload

QR code for receipts

The QR code is meant to be printed onto receipts and scanned with the TCS app.
It has to be used by cash registers that cannot be connected to the apNet backend via an API.
The customer will then be credited with the amount of cashback stored within the qr code.

Graphical representation

The graphical representation on the receipt must look like this.
This is a template and the QR code is an example. It does not contain correct data!
You cannot just copy this template onto your receipt!
The QR code on you receipt must contain dynamic and unique data for each receipt - it must be generated on the fly.

Specification of the QR code

Content of the QR code

url#location id|encrypted message

Please be aware of the separators between the three parts of the code.
The URL is followed by a # (hash) symbol and the encrypted message is separated from the location ID with a | (pipe) symbol.


The encrypted message part of the QR code is encrypted with "AES-256-ECB".
If the result is not already "BASE64" encoded by your encryption method, it then has to be encoded with "BASE64", to prevent characters without a printable representation.
The password for the AES encryption is unique per partner and will be delivered to you by apNet, together with the location ID.

Content of the encrypted message

location id|receipt id|date time|total value|cashback relevant value|currency

Please be aware of the separators between the parts of the code, which is a | (pipe) symbol.

Testing / Debugging

Via the following URL you could generate a valid QR code, which you can compare to the ones your system generates: id/password/receipt id/date time (integer)/total value