A QR code consists of a square matrix of black and white squares representing the encoded data in binary. [Source: Wikipedia]
Simply put, a QR code is nothing more than a visualisation of data. When we talk about this data, we use the term "payload".
The QR code that appears on the QR payment slip is called SwissQR and its payload follows a strict standard. This standard ensures that all banks and tools that process QR invoices can communicate with each other.
The official QR payment lsip Rulebook from SIX, released in 2019, can be downloaded here.
The QR payment slip payload
The payload of a QR payment slip that has been enhanced with TWINT can look as follows.
Data structure Explanation
Line 1 - 3: Header (Contains basic information about the QR code)
Line 4: IBAN or QR-IBAN of the beneficiary
Line 5 - 11: Payee information (address type as well as address data)
Line 19 - 20: Payment amount information (amount & currency)
Line 21 - 27: Final payer (address type as well as address data)
Line 28 - 29: Payment reference (reference type as well as reference number)
Line 31: Trailer (unique identifier for end of payment data)
Line 33 - 34: Alternative procedure (parameters and data of other supported procedures)
TWINT as an alternative payment procedure
The official rules state that alternative payment methods besides bank transfer can be configured in line 33 & 34. Together with TWINT, RaiseNow has developed the technology to make any QR payment slip also TWINT capable by adding the strings from the donation form in these two lines.
Translated with DeepL