Nordlet

Docs / Glossary

What Is an EPC QR Code? Scan-to-Pay on Invoices

The European Payments Council QR standard for SEPA credit transfers — what the payload contains, why it removes payment errors, and where it is used.

An EPC QR code is a square barcode on an invoice that a customer scans with their banking app to have the payment pre-filled: your IBAN, your name, the amount, and the payment reference. They confirm and it is sent.

It is defined by the European Payments Council in its Quick Response Code Guidelines to Enable Data Capture for the Initiation of a SEPA Credit Transfer, and it is deliberately narrow: it initiates a SEPA credit transfer and nothing else.

What problem it solves

Manual payment entry is where money gets lost. A customer copying a 20-character IBAN and a reference number from a PDF into their banking app will occasionally transpose a digit, drop the reference, or type the amount wrong.

Each of those has a cost on your side. A wrong reference means the payment lands in your account unmatched, and someone has to work out which invoice it belongs to — the exact problem bank reconciliation matching exists to solve. A wrong IBAN can mean the payment goes somewhere else entirely.

A scanned QR code eliminates the typing, which eliminates the class of error. It also shortens the path from "reading the invoice" to "payment sent" to a few seconds, which measurably improves collection speed on B2C and small-business invoices.

What the payload contains

The EPC069-12 payload is plain text, one field per line, in a fixed order:

BCD                        ← service tag
002                        ← version
1                          ← character set (1 = UTF-8)
SCT                        ← identification (SEPA Credit Transfer)
                           ← BIC (optional in EEA)
UAB Pavyzdys               ← beneficiary name
LT121000011101001000       ← beneficiary IBAN
EUR605.00                  ← amount, currency-prefixed
                           ← purpose code (optional)
                           ← structured remittance reference
Invoice S-1041             ← unstructured remittance text
                           ← beneficiary-to-originator information

Constraints worth knowing: the total payload must stay within 331 bytes; the amount must be between 0.01 and 999,999,999.99 EUR; only euro is supported; and you use either the structured reference or the unstructured text, never both.

The structured field is for a creditor reference such as ISO 11649 RF, which is worth using where your market supports it — a machine-checkable reference reconciles more reliably than free text.

Notably, the payload contains no signature and no security. It is a convenience for data entry, not an authenticated instruction: the payer still authorizes the payment in their own banking app, under their own authentication. That is why a QR code cannot move money on its own — and also why a QR code on a fraudulent invoice is exactly as dangerous as a fraudulent IBAN printed in text.

Where it is used

Widely across the euro area, and effectively standard in several countries — Austria, Germany, Belgium, the Netherlands, Finland — where major banking apps recognize it natively. Some countries run their own established variants: Switzerland's QR-bill (a different, more prescriptive standard) and various national schemes that predate EPC069-12.

Support is a matter of the payer's banking app, not yours. Adding the code costs you nothing and helps every customer whose app reads it; those whose apps do not simply pay the usual way.

Related but different

  • SEPA Request-to-Pay (RTP) — a messaging standard where the payee sends a structured payment request the payer can accept or decline in their app. A conversation rather than a printed code, and it can carry a due date and installment options.
  • Payment links — a URL to a hosted checkout, usually via a PSP, supporting cards and wallets. That is a different rail with different costs; a card payment carries an acquirer fee, while a SEPA credit transfer initiated by QR does not, which is a real economic difference on large invoices. Those PSP flows produce settlements that need payment reconciliation.

Status in Nordlet

Not implemented. Invoice PDFs do not currently carry an EPC QR code, and there is no payment-link generation. Both are planned; neither exists today, and it is more useful to say so than to describe an intention as a feature.

What is in place is the data the code needs — company IBAN, partner details, invoice amount, currency and the full invoice number that serves as the payment reference — and the generation path for it: invoice PDFs are produced by the API, so the QR becomes a rendering addition rather than a new data model.

Two constraints the eventual implementation will inherit from the standard itself: euro only, so non-EUR invoices cannot carry one, and the 331-byte payload limit, which bounds how much remittance text a long invoice number and company name can carry between them.

Until then, the reconciliation-side mitigations are the ones that matter: putting the invoice number prominently on the invoice, and relying on the bank matching that scores a payment description containing the document number.

FAQ

What is an EPC QR code?

A QR code following the European Payments Council standard that encodes the details of a SEPA credit transfer — beneficiary name, IBAN, amount and reference — so a payer can scan it with their banking app instead of typing them.

Is a QR code payment secure?

The code itself carries no security and no signature; it only pre-fills a payment form. The payer still authorizes the transfer in their own banking app with their own authentication. It is a data-entry convenience, so a code on a fraudulent invoice is as risky as a fraudulent IBAN in plain text.

Which currencies does it support?

Euro only. The standard is specific to SEPA credit transfers, so invoices in other currencies cannot carry a compliant EPC QR code.

Do all European banking apps support EPC QR codes?

Most major euro-area apps do, and in several countries it is effectively standard — but support depends on the payer's bank. Adding the code helps those who can use it and costs nothing for those who cannot.

What is the difference between an EPC QR code and a payment link?

A QR code initiates a bank transfer the payer makes themselves, with no processing fee. A payment link opens a hosted checkout, usually card or wallet through a PSP, which carries a fee and produces a settlement to reconcile later.