EPC QR Code Generator
Typing a 22 character IBAN from a PDF is where payments go wrong. An EPC QR code, also called a GiroCode, lets the payer scan your details instead.
Fill in the form and download the code as PNG or SVG. The IBAN is checked first, and nothing you type leaves this browser tab.
Inside the EEA you can leave this empty. Add it only if a bank app complains.
Leave it empty and the payer types the amount in the banking app. No thousands separator, please.
Fill in the form and your code shows up here
What the code contains
How to use it:
- Enter the name and IBAN the money should go to.
- Generate the code and download it as PNG or SVG.
- Scan it with your own banking app before you print or send it.
Everything runs in this browser tab. Your bank details are never sent to our server.
What an EPC QR code does
An EPC QR code is a normal QR code with a payment order inside it. The European Payments Council published the format so that a banking app can read a code and open a pre-filled SEPA credit transfer. Your customer points the phone at the invoice, checks what they see, and confirms. They never touch the IBAN.
You'll see it under a few names. In Germany and Austria people say GiroCode or just "Überweisung per QR". Some invoices print "Scan to Pay" or "Zahlen mit Code" next to it. Those are all the same thing, as long as the code follows the EPC layout.
Sending the money is still a normal bank transfer. There's no payment provider in the middle, no fee from us and no account to create. The code only saves the typing.
When it's worth adding one
Invoices
If you don't have an invoice yet, build one with the invoice generator and add the downloaded code to it.
This is the main use. Freelancers and small companies put it in the corner of a PDF invoice, right next to the bank details. A customer paying from their phone gets the amount and the invoice number without any copying, which also means you get a reference you can actually match against your statement.
Membership fees and donations
Clubs, schools and charities print one on a letter or a poster. Leave the amount empty for donations, so the person giving decides how much.
Splitting a bill between friends
Send a screenshot of the code in the group chat. It's quicker than dictating your IBAN for the fifth time.
Market stalls and tradespeople
A printed code on a clipboard works when you don't want a card terminal. Set an amount per job, or leave it open and let the customer enter it.
What the fields mean
- Recipient name: required, up to 70 characters. Use the name on the account. Banks are now comparing the name with the IBAN on many transfers, so a nickname can trigger a warning for your payer.
- IBAN: required. Type it with or without spaces. The spaces get removed before the code is built, because some apps refuse a code that contains them.
- BIC: optional here. Version 002 of the format, which this tool uses, doesn't need it within the European Economic Area.
- Amount: optional, euros only. The format allows 0.01 up to 999,999,999.99.
- Reference: optional. Choose free text for up to 140 characters, or a structured RF creditor reference if your accounting software produces those. The format lets you use one or the other, never both.
What's inside the code
Less than you'd expect. A payment code is a short list of text lines in a fixed order: the letters BCD, the format version 002, the character set, the letters SCT for SEPA credit transfer, then the BIC, name, IBAN, amount, and reference. Empty fields stay as blank lines, and the whole thing can't go over 331 bytes. That's why a long name plus a long reference can hit the limit, especially with accented letters, since they take more than one byte each.
The checks it runs first
No phone nearby? Drop the PNG into our QR code scanner and it shows you the same lines of text.
I didn't want this tool to hand you a good looking code that fails at the customer's bank, so it looks for mistakes before drawing anything.
The IBAN goes through the mod 97 check digit calculation that banks use. One wrong digit gets caught almost every time, and you're told before the code is made. The length is compared with what that country uses too, so a German IBAN with 21 characters gets flagged as a missing character. An RF reference gets the same treatment.
Under the code you can read the exact text it contains. Worth a look. It's plain lines of text, and it means you don't have to trust this page: scan the code with any QR reader and you'll get the same lines back.
Will my customer's bank read it?
Mostly yes in Germany, Austria, the Netherlands, Belgium and Finland, where these codes have been in use for years. Support also exists in Luxembourg, Italy and the Baltic countries, though it varies by bank. In France and Spain it's less common, and plenty of apps there still won't open one. So keep the printed IBAN on your invoice. The code is a shortcut, not a replacement.
The feature is usually tucked away in the transfer screen of the app, under something like "Scan" or "Photo transfer". The phone's own camera often just shows the text and doesn't start a payment. If a customer says the code is broken, that's the first thing to check.
Printing it so it scans
Need a code for your contact details as well? The vCard QR generator does that one, and it also runs in your browser.
Download the SVG if the code is going into a PDF or anything that will be printed. It stays sharp at any size. The PNG is 1024 pixels wide or close to it, which is fine for email and most documents.
Keep the white border around the code. It's part of the standard, and scanners use it to find the edges. Don't recolour it or put a logo on it. A black code on white paper, around 3 cm or larger on an invoice, is the safe choice.
Before you send it to anyone, scan it with your own banking app. You don't have to confirm the transfer. Just check that the name, IBAN, amount and reference look right, then cancel. That takes twenty seconds and it's the only test that really counts, because every bank app behaves a little differently.
Why your bank details stay here
Most people's first reaction to a site like this is a fair one: why would I type my IBAN into a stranger's website? So this page does the whole job with JavaScript inside your browser. There's no upload and no form submission. We count that the tool was used, as with every tool on the site, but the count has none of your details in it.
You can check that yourself. Open the Network tab in your browser's developer tools, click Generate, and look at what gets sent.
What it won't do
This only handles euro SEPA credit transfers, because that's all the EPC format covers. No pounds, no francs, no US dollars. It can't tell whether an IBAN belongs to the person you named, only whether it's correctly formed. And it can't confirm that a payment arrived, since the money moves between the banks without passing through here.
EPC QR Code Questions
Similar tools to explore
QR Code Scanner from Image
Instantly scan and decode QR codes from JPG, PNG, SVG, WebP, and HEIC images. Fast, free, and works directly in your browser with complete privacy.
Scan QR CodeWiFi QR Code Generator
Create a QR code for your WiFi network. Guests scan it with their phone camera and connect instantly, no password typing needed.
Generate WiFi QR CodeMenu QR Generator
Create QR codes that link to your digital menu. Perfect for restaurants, cafes, and food trucks going touchless.
Generate Menu QRvCard QR Generator
Create a QR code that saves your contact info directly to phones. Include name, phone, email, company, and social links.
Generate Contact QRCase Converter
Paste text and switch it from uppercase to lowercase, Title Case, Sentence case, camelCase, snake_case or kebab-case in one click. It all happens in your browser.
Convert CaseNumber to Words Converter
Type a number and get it written out in words, as a cheque amount in dollars and cents, or as an ordinal. Works in seven languages and runs in your browser.
Convert to Words