EPC QR code generator (SEPA payments)
Put it on invoices: customers scan with their banking app and the transfer form is pre-filled — amount, IBAN, reference. Strictly validated against the EPC069-12 standard, generated locally, never uploaded.
- Strict EPC069-12 v3.1 compliance — banking apps are picky
- IBAN checksum (mod-97) validated as you type
- Payment data never leaves your browser
- Error correction M and ≤331 bytes, per the standard
Frequently asked questions
Which banking apps scan EPC codes?
Most European banks: Sparkasse, Volksbank, ING, Rabobank, ABN AMRO, Erste/George, and hundreds more across the SEPA area (in Germany it's marketed as GiroCode, in Austria as Zahlen mit Code). The customer opens their banking app, taps the scan/photo transfer button, and confirms.
Why does my EPC code fail in some banking apps?
Banking apps enforce the EPC standard harshly: version 002 must use UTF-8, error correction must be M (not raised!), the payload must stay under 331 bytes, and either a structured reference or free text is allowed — never both. PermaQR enforces every one of those rules at build time, which is exactly why its codes scan where hand-rolled ones don't.
Why can't I add a logo to an EPC code?
The EPC standard mandates error correction level M. A logo eats into damage tolerance that the standard doesn't let us raise (H would make the code physically larger and some apps reject it). We'd rather your invoice gets paid than look 3% prettier.
Is my IBAN uploaded anywhere?
No. Validation (including the mod-97 checksum) and generation run in your browser. You can use this page offline.