Payment QR Code (EPC / SEPA)

Paste payment instructions or fill in the fields. Check the detected details, then scan the QR code with your banking app.

Local: yes. Your input stays on your device and is not sent to an external service for this tool.

Paste payment instructions, an EPC payload or a payment link. Detection happens only in your browser.

Payload

Share links store payment fields after # in the URL, so they are not sent to this website. Anyone who has the link can read those fields.

Pasted text is parsed and the QR code is generated on your device. Nothing you paste is uploaded.

How the EPC QR code works

The European Payments Council's EPC069-12 standard defines a "SEPA Credit Transfer" QR code: a few lines of plain text that a banking app reads to pre-fill a transfer. The apps of the main Belgian banks recognise it. The payload has fixed lines in a fixed order: service tag BCD, version 002, character set 1 (UTF-8), identification SCT, the BIC, the beneficiary name (max 70 characters), the IBAN, the amount as EUR plus a number with at most two decimals, a purpose code, the structured creditor reference, and free remittance text.

The generator validates the IBAN checksum, fills in the BIC of Belgian banks from the National Bank list if you leave it blank, checks the amount range (0.01 to 999,999,999.99) and validates the payment reference before drawing the code. The code is generated in your browser and never expires.

Sample payload

Beneficiary Voorbeeld BV, IBAN BE71 0961 2345 6769, amount 125,50 and OGM +++090/9337/55493+++ produce:

BCD
002
1
SCT
GKCCBEBB
Voorbeeld BV
BE71096123456769
EUR125.50


+++090/9337/55493+++

The BIC GKCCBEBB (Belfius) was derived from bank code 096. The two empty lines are the purpose code and the structured reference.

Validation rules and edge cases

  • OGM goes in the remittance text. Belgian banking apps read a structured communication from the last line in +++.../..../.....+++ form, so the tool puts it there. An international RF reference (ISO 11649) goes in the structured reference line instead.
  • Check digits. An OGM must pass the modulo-97 check (remainder 0 becomes 97); an RF reference must pass its own mod-97 check. A wrong reference is refused rather than encoded.
  • Decimal comma. 125,50 is accepted and written as EUR125.50; amounts with three decimals are refused.
  • No amount is allowed: the payer then types it in the app.

Paste payment instructions from an email and the tool detects IBAN, amount and reference locally. The Copy share link button puts the fields after # in the URL, a part browsers never send to the server. Make a valid reference with the OGM generator and double-check an account with the IBAN checker.

Frequently asked questions

Which Belgian banking apps can scan an EPC QR code?

The apps of the main Belgian banks recognise the EPC SEPA Credit Transfer QR code and open a pre-filled transfer. Always check the beneficiary, IBAN, amount and reference in the app before confirming.

Where does the OGM go in the QR code?

In the remittance text line, written as +++090/9337/55493+++, because that is where Belgian banking apps look for a structured communication. RF creditor references go in the separate structured reference line.

Does the QR code expire or track payments?

No. The code only contains the payment details as text. Nothing is stored on a server, it does not expire, and scanning it does not notify anyone.

Do I need the BIC?

Not for Belgian IBANs: the tool fills in the BIC from the National Bank list of Belgian bank codes. For a foreign IBAN you can enter it yourself; it is optional in version 002 of the standard.

What is the maximum amount?

The EPC standard allows from 0.01 up to 999,999,999.99 euro with at most two decimals. You can also leave the amount empty so the payer enters it.