Mailingbid
How it worksFor agenciesPricingGuidesLog inStart a request
DECSEN
Home / Payment QR code: EPC (GiroCode) & QR Platba

Create a payment QR code for payment slips and donation letters

The tool creates payment QR codes directly in your browser: the EPC QR code, often called GiroCode in Germany, for SEPA credit transfers in euros, and QR Platba for domestic koruna payments in Czechia. It checks the IBAN and reference, shows the code as plain text and sends nothing to a server.

Last updated 29 October 2026 · Published by Mailingbid

A payment QR code holds the details of a credit transfer as text: payee, IBAN, amount and remittance information. The banking app reads them in, and the payer checks and confirms. This tool creates the code in your browser. What you enter is not sent to a server, not stored and not tracked.

Test with a banking app before printing. Mailingbid does not check accounts or payee names. The tool only checks format, lengths and check digits. Before approving the print, scan the finished code with a banking app and compare payee, IBAN, amount and remittance information. Do not submit the payment.

Payment details and print size

Standard

Required, up to 70 characters. Allowed: letters, German umlauts, ß, digits, spaces and ' : ? , - ( + . ) / as well as & * $ %. Some banks display the last four converted, for example & as +.

Required; spaces are fine. The tool checks country, length and check digits, not whether the account exists or belongs to the payee.

Not needed within the EU and EEA. Required for an IBAN from Switzerland, the United Kingdom, Gibraltar, Monaco, San Marino, Andorra or the Vatican.

For example 25 or 12.30: at most two decimals, no thousands separator. Leave it empty if the payer chooses the amount.

The German DK guideline uses CHAR for donations and IVPT for transfers with a reference. If unsure, leave it empty.

Remittance text or reference

The code contains only one of the two.

Up to 70 characters, same character set as the name.

30 mm is an editable example. Input range: 10–300 mm. Country guidance follows further down.

A module is a small square in the code. At least four are kept clear on each side.

Code, content and print dimensions

Fill in the required fields and create the preview.

GiroCode and the EPC QR code: what it contains

The EPC QR code is based on guideline EPC069-12 of the European Payments Council (version 3.1 of 19 March 2024). It holds a SEPA credit transfer as plain text in fixed lines: service tag BCD, version, character set, SCT, BIC, payee, IBAN, amount, purpose code and either a reference or remittance text. Empty elements remain as empty lines; nothing follows the last populated line. The EPC describes the document as informative and optional for payment service providers. [1]

In Germany the code is often called GiroCode. The German banking industry's guideline for payment forms (Deutsche Kreditwirtschaft, DK) recommends it as an option and labels it “Zahlen mit Code”. Its rules are stricter than the EPC's. The amount has no trailing zeros: EUR12.3, not EUR12.30. [2] [4]

Rules for the EPC code by source, and how this tool applies them
ElementEPC069-12Germany (DK)Austria (PSA)This tool
Version001 or 002002001 or 002002
BICOptional in version 002, required outside the EEAOnly for countries outside the EU and EEAOptional in version 002Required only for an IBAN outside the EU and EEA
AmountEUR 0.01 to 999999999.99No trailing zerosNo trailing or leading zerosNo trailing zeros, e.g. EUR12.3
ReferenceUp to 35 characters, RF reference possibleRF reference with exactly 25 charactersUp to 35 charactersDE: RF with 25 characters; AT: RF or up to 35 digits
Remittance textUp to 140 charactersUp to 70 charactersUp to 140 charactersUp to 70 characters
Note to the payerUp to 70 charactersRecommended to leave emptyUp to 70 charactersNot offered

For all of them: at most 331 bytes, at most QR version 13, error correction level M. The tool writes UTF-8 without a byte order mark, separates lines with a line feed and stores the text as a single byte-mode segment. [1] [4]

Austria: “Zahlen mit Code”

In Austria, Payment Services Austria (PSA) specifies the same EPC code under the name “Zahlen mit Code”. Payment reference and remittance text are always both present as lines, but only one of them is filled. For the amount, PSA says EUR3 is better than EUR3.00, and leading zeros are not allowed. PSA allows 140 characters of remittance text; the tool limits it to 70 so that the same code also meets the German rules. [4]

On 23.10.2026 the PSA specification (version 3.0 of 1 May 2021) was no longer available at its address; we read an archived copy from January 2026.

QR Platba in Czechia

QR Platba follows the Czech Banking Association (ČBA) standard for domestic koruna payments, version 1.2, effective since 1 January 2022. The code starts with SPD*1.0*, followed by key and value pairs separated by an asterisk. A value must not contain an asterisk itself. [5]

According to the standard, all banks process the account (ACC), amount (AM), currency (CC), due date (DT), message (MSG) and the variable, specific and constant symbols. Only some banks use the payee name (RN). For printed media the standard recommends error correction level M and, where possible, only capitals, digits and a few symbols. [5]

The tool does not convert a Czech account number (prefix-number/bank code) into an IBAN: the conversion is not part of the sources checked here. The “QR Platba” frame and label are described only in a graphics manual on the qr-platba.cz website, not in the ČBA standard. The tool therefore exports the code alone, without that label. [7]

On 23.10.2026 the file on the ČBA website could not be retrieved; we read the copy of the standard on qr-platba.cz. [6]

Slovakia: PAY by square is not supported

Slovakia uses PAY by square, the Slovak Banking Association's standard (specification 1.2.0 since 9 October 2025). It is a different format: the data is an XML data model compressed with LZMA and encoded in Base32hex. It cannot be read as plain text and is compatible with neither the EPC code nor QR Platba. This tool does not create PAY by square codes. [8] [9]

Where the code goes on a payment slip or donation letter

  • Germany (DK guideline): 15 × 15 mm on the credit transfer or payment slip form, with at least 1 mm clearance above and at least 3 mm to the payee field. On an invoice or letter 25 × 25 mm, with a black border (at least 4 modules from the code) and the words “Zahlen mit Code” on the right-hand side in at least 7 pt sans serif, preferably in the top right corner. The plain-text details on the form take precedence over the code. [2]
  • Austria (PSA): module size 15 to 20 mil, roughly 0.38 to 0.51 mm. On invoices at the bottom edge, far left or far right. On the payment order form, with a 0.4 mm module (± 5 %), bottom right, directly below the payment reference field. Border and “Zahlen mit Code” on the right, reading from bottom to top, with 4 modules of clearance and at least 7 pt. [4]
  • Czechia: the ČBA standard does not specify a print size. Plan the size with your printer and test the print. [5]

The tool exports the code with its clear margin, without border or label. Besides the total size, the results list the size of the code without margin and the module size, so you can match both against these requirements.

Before approving the print

  1. Compare the content below the preview, element by element, with the account details, ideally with a second person.
  2. Place the file in the layout at its planned size, scan the proof with at least one banking app per target country, and check payee, IBAN, amount and remittance information in the app without submitting the payment.
  3. The tool creates one code for every copy. If each letter needs its own reference, the code is produced in variable data printing; agree this with your printer or lettershop.
  4. According to the DK's 2025 notice, the payee cannot require an instant transfer; the code cannot express it. [3]

Sources

All sources checked on 23.10.2026.

  1. European Payments Council: EPC069-12, Quick Response Code – Guidelines to Enable the Data Capture for the Initiation of an SCT, version 3.1 (PDF) — Line order, lengths, 331 bytes, version 13, error correction M, official examples
  2. Die Deutsche Kreditwirtschaft: Richtlinien für einheitliche Zahlungsverkehrsvordrucke (2016), annex 4 (PDF, German) — Version 002, amount format, 25-character RF reference, 70-character remittance text, character set, print size and placement
  3. Die Deutsche Kreditwirtschaft: Merkblatt 2025 on amendments to the guidelines (PDF, German) — Instant transfer cannot be expressed in the code
  4. Payment Services Austria: Verwendung von QR-Code zur Initiierung von Zahlungsaufträgen, version 3.0 (archived copy of 20.01.2026, German) — Zahlen mit Code, amount format, reference or text, printing and labelling
  5. Česká bankovní asociace: Formát pro sdílení platebních údajů v rámci tuzemského platebního styku v CZK prostřednictvím QR kódů, version 1.2 (PDF, copy on qr-platba.cz, Czech) — SPD*1.0* structure, keys and lengths, asterisk, error correction M, example
  6. Česká bankovní asociace: article on the standard (Czech) — Publisher's page, no download
  7. QR Platba: Grafický manuál (Czech) — Border and label, not part of the ČBA standard
  8. Slovenská banková asociácia: payment services projects (Slovak) — PAY by square, current specification 1.2.0
  9. Slovenská banková asociácia: PAY by square Specifications 1.2.0 (PDF) — XML data model, LZMA compression, Base32hex

Technology: qrcode (MIT license). Text and checks: Mailingbid. qrcode · License notices. QR Code is a registered trademark of DENSO WAVE INCORPORATED.

Printing a payment slip with a QR code?

Request the payment slip together with the letter and envelope. Agree the code and its placement with your selected printer. The tool does not transfer any payment details into the request.

Start a request with a payment slip

Continue planning

  • Compare mailing formats
  • Envelope sizes compared
  • Lettershop and inserting
  • Comparing mailing quotes
  • Paper weight calculator
  • Understand paper weight
  • Compare fold types
  • Print QR codes correctly
  • QR code generator
Mailingbid

An offering by Christoph Salat · salat.tech

Mailingbid

  • How it works
  • Start a request
  • For agencies
  • Pricing
  • For printers

Guides

  • Guides and calculators
  • API documentation

Legal

  • Imprint
  • Privacy
  • Terms
  • Contact