Skip to content

SEPA QR code on invoices: how the EPC QR code works

A SEPA QR code on an invoice is the EPC QR code defined in European Payments Council guideline EPC069-12. It carries a euro SEPA credit transfer: the beneficiary's name, IBAN, amount and reference. The payer's banking app reads it and pre-fills the payment, though the guideline makes support optional for banks.

Updated: · By Stepan Talalayev

What the EPC QR code is

The EPC guideline EPC069-12 describes how a two-dimensional code can carry the data for a SEPA credit transfer. The current version is 3.1, issued and effective on 19 March 2024; it replaced version 3.0 of 13 September 2022 after a review by the EPC's Payment Scheme Management Board. It is meant for cases where the same transfer data also appears in plain text for the payer, such as on an invoice, so that the payer can compare the two.

  • The document is informative. Implementing the feature is optional for payment service providers, so whether a payer's app reads the code depends on the bank.
  • Error correction level M, a QR code of at most version 13, and a payload of at most 331 bytes.
  • The payload is plain text of up to 12 lines, separated by a line feed (LF) or a carriage return and line feed (CRLF).
  • The amount is in euro, from 0.01 to 999999999.99.

The fields, and what DigiTale Invoice writes

EPC069-12 version 3.1: the lines of the payload and the value DigiTale Invoice writes in each
LineFieldEPC ruleDigiTale Invoice writes
1Service tagMandatory, fixed: BCDBCD
2VersionMandatory: 001 or 002002
3Character setMandatory: 1 is UTF-8, 2 to 8 are ISO 8859 sets1 (UTF-8)
4Identification codeMandatory, fixed: SCTSCT
5BIC of the beneficiary's bankVersion 001: mandatory, 8 or 11 characters. Version 002: optional within the EEAThe BIC/SWIFT you typed, as entered; an empty line if you left it empty
6Beneficiary's nameMandatory, up to 70 charactersYour company name, cut to 70 characters
7Beneficiary's IBANMandatory, up to 34 characters; only an IBAN is allowedThe IBAN you typed, without spaces
8AmountOptional: EUR and the amount, 0.01 to 999999999.99EUR and the invoice total with two decimals; empty when the total is zero
9PurposeOptional, up to 4 charactersEmpty
10Remittance information, structuredOptional, up to 35 characters: a creditor reference (an ISO 11649 RF reference may be used)The variable symbol, when filled in
11Remittance information, unstructuredOptional, up to 140 characters; only one of lines 10 and 11 may be filledEmpty
12Beneficiary to originator informationOptional, up to 70 charactersNot written

Line 10 is meant for a structured creditor reference. DigiTale Invoice puts the variable symbol there, as a plain number, because the variable symbol is what identifies the payment to a Czech recipient. The guideline allows but doesn't require an RF reference there, and this page can't say how each bank's app treats a plain number, so test your first invoice with a payer's app.

An example, decoded

This is the text the code holds for a euro invoice of 1 210.00 EUR from a fictional supplier, with an IBAN, a BIC and the variable symbol 20260142. The IBAN is the Czech National Bank's published example for the account 19-2000145399/0800. The text was produced by the same code that builds the codes on real invoices.

EPC QR payload of the example invoice (one field per line; line 9 is empty)
BCD
002
1
SCT
GIBACZPX
Example Studio s.r.o.
CZ6508000000192000145399
EUR1210.00

20260142
The example, line by line
LineValueWhat it means
1BCDService tag
2002Version 002
31Character set UTF-8
4SCTSEPA credit transfer
5GIBACZPXBIC of the beneficiary's bank
6Example Studio s.r.o.Beneficiary
7CZ6508000000192000145399Beneficiary's IBAN
8EUR1210.00Amount: 1 210.00 euro
9(empty)No purpose code
1020260142Reference: the variable symbol

The BIC rule

Version 001 of the guideline makes the BIC of the beneficiary's bank mandatory (8 or 11 characters). Version 002 makes it conditional: it can be left out within the EEA, but remains mandatory for SEPA payments that involve scheme participants from non-EEA countries.

  • DigiTale Invoice always writes version 002.
  • It writes a BIC only when you type one into the BIC/SWIFT field. It doesn't look the BIC up from your account.
  • If your bank is outside the EEA, fill in the BIC. If you aren't sure, fill it in anyway: your bank shows it in its payment details.

Euro invoices only

The EPC code is a euro payment, so DigiTale Invoice writes it only for invoices in EUR. It also needs the IBAN to be typed in, because the code takes an IBAN and no account number, and your company name. The IBAN calculated from a Czech account number is used only for QR Platba.

Which code a payment-enabled invoice gets
InvoiceCode written
EUR, with an IBAN and your company nameSEPA QR code (EPC), as in the table above
EUR, with only an account number and bank codeA QR Platba string with EUR as its currency: not a SEPA code, and a currency the Czech standard doesn't allow. Type your IBAN to get the SEPA code
CZKQR Platba
Any other currencyA QR Platba string with that currency, which the Czech standard doesn't allow either; rely on the printed bank details

SEPA QR code and QR Platba

EPC QR code compared with the Czech QR Platba
EPC QR code (SEPA)QR Platba (SPAYD)
Published byEuropean Payments CouncilCzech Banking Association
Starts withBCDSPD*
CurrencyEuroCZK is the only currency the standard allows
AccountIBAN onlyIBAN, optionally followed by + and the BIC
Name of the payeeMandatory, up to 70 charactersOptional (RN), up to 35 characters
SeparatorLine feedAsterisk
Variable symbolNo field of its own; DigiTale Invoice writes it in the reference lineIts own key, X-VS, up to 10 digits
Bank supportOptional for banksListed by the QR Platba project for Czech banks

The QR Platba guide explains the Czech format field by field. A client paying in koruna from a Czech account should be offered QR Platba; a client paying in euro can use the SEPA code if their bank supports it.

Choose EUR, enter your IBAN and switch on the QR code.Create a euro invoice with a QR code

This guide explains the rules in general terms. It isn't tax or legal advice; for your own situation, ask a tax adviser.

Sources

  1. European Payments Council: EPC069-12 version 3.1, Quick Response Code guidelines for a SEPA credit transfer (PDF) (checked )
  2. Czech Banking Association (ČBA): QR Platba standard, version 1.2 (PDF, in Czech) (checked )
  3. Czech National Bank: IBAN, the international account number format (checked )
  • What a Czech invoice must contain

    What a Czech invoice must contain under § 29 of the VAT Act and § 435 of the Civil Code, with DUZP, VAT rates, numbering, due dates and how long to keep invoices.

  • QR Platba: how the Czech payment QR code works

    What QR Platba is, every SPAYD field with its format, a real payment string decoded, how it compares with QR Faktura and the EPC (SEPA) QR code, and how DigiTale Invoice writes it.

Create an invoice that has all of this

DigiTale Invoice is free and needs no account. Fill in the form and download a PDF with a payment QR code.

Create invoice