EPC QR-code Validator (SEPA)
The QR code that appears on a growing number of European invoices: scanned by a banking app, it pre-fills a SEPA credit transfer. Paste its decoded text to check every field — IBAN and BIC included — right in the browser.
Local validation of the EPC069-12 (SEPA Credit Transfer) payload. Paste the decoded text of a payment QR code — the IBAN and BIC are checked along the way. Nothing is sent.
How it works
The European Payments Council's EPC069-12 standard defines the content of a SEPA Credit Transfer QR code (often called a Girocode in Germany and Austria). The QR encodes a short text: one field per line. The validator:
- splits the payload line by line and checks the header (
BCD, version, character set,SCT); - verifies the IBAN (mod 97) and the BIC (ISO 9362) by reusing our dedicated validators;
- checks the amount format (
EUR12.50), and the lengths of the name, remittance and purpose code.
Payload structure
| # | Field | Required |
|---|---|---|
| 1 | Service Tag — BCD | Yes |
| 2 | Version — 001 or 002 | Yes |
| 3 | Character set (1 = UTF-8) | Yes |
| 4 | Identification — SCT | Yes |
| 5 | BIC | v001 yes · v002 optional |
| 6 | Beneficiary name (≤ 70) | Yes |
| 7 | IBAN | Yes |
| 8 | Amount (EUR0.01–EUR999999999.99) | No |
| 9 | Purpose code (≤ 4) | No |
| 10 | Structured remittance (≤ 35) | No |
| 11 | Unstructured remittance (≤ 140) | No |
| 12 | Beneficiary → originator info (≤ 70) | No |
Privacy
Limits
Related documentation
- IBAN Validator / BIC Validator — the building blocks reused here.
- ISO 20022 — the payment messaging behind SEPA transfers.