Let people pay you by bank transfer without typing your IBAN
An EPC code — often called a GiroCode — holds the details of a euro SEPA transfer: your name, IBAN, the amount and a reference. A payer opens their banking app, scans it, and every field is filled in for them to confirm.
This is the European counterpart to the payment apps used elsewhere. It moves money bank-to-bank with no card fees and no third party, which is why invoices, donation letters and utility bills across the eurozone print one in the corner.
Which banks actually read it
GiroCode is widely supported by German, Austrian and Finnish banking apps, and increasingly across the rest of the SEPA area. Support lives in the bank's own app, not the phone camera — a payer scans from inside their banking app, not the general camera.
Because coverage isn't universal, always print the IBAN and amount as text beside the code. Someone whose bank doesn't support scanning can still type the details, and the code just makes it faster for everyone whose bank does.
The amount format is strict
The amount is in euros with exactly two decimals and no currency symbol inside the payload — 49.90, not €49,90. This tool formats it for you, but if you build a code by hand and it's rejected, a comma or a missing decimal is the usual cause.
Leave the amount blank for a donation code so the payer enters their own sum. Fill it for an invoice so they can't accidentally underpay.
The reference is how you reconcile
The reference field is what appears on your statement when the money lands. Put an invoice number or a donor campaign code there and matching incoming payments to their source takes seconds instead of guesswork.
- Invoice: encode name, IBAN, amount and the invoice number as reference.
- Donation: encode name and IBAN, leave amount open, reference the campaign.
- Never encode a BIC guess — modern SEPA transfers work from the IBAN alone.
How to create a GiroCode
- Enter the account holder name. Use the exact name on the receiving account so the payer's bank doesn't flag a mismatch.
- Paste the IBAN. Copy it to avoid a transposed digit. Spaces are removed automatically.
- Set the amount and reference. Enter the euro amount with two decimals, or leave it blank for donations, and add your invoice or campaign reference.
- Download for the invoice. Export SVG so the code prints crisply next to the payment details on paper.
Technical details
- Maximum characters: 331
- Recommended error correction: M (medium) — the EPC specification recommends level M, and the payload is small enough that it prints cleanly.
- Follows the EPC069-12 'BCD' service structure for SEPA Credit Transfer.
- Amount is encoded as EUR with two decimals; the reference lands on the payer's statement.
Frequently asked questions
- Do I scan this with my phone camera?
- No. Open your banking app and use its built-in scanner. The plain camera will read the text but can't start a transfer — only the bank app can pre-fill the payment.
- Which currencies work?
- Euro only. The EPC standard is built for SEPA credit transfers, so it does not carry other currencies. For those, use a different payment method or a link to an online checkout.
- Is a BIC required?
- No. For transfers within the SEPA area the IBAN is sufficient. Adding a wrong BIC causes more problems than leaving it out.
- Can the payer change the amount?
- If you encoded a fixed amount, their app shows it pre-filled; most apps let them edit before confirming, so treat it as a default rather than a lock. Leave it blank when any amount is acceptable.
- Why does my bank say the code is invalid?
- Usually a malformed IBAN or an amount with a comma or three decimals. This tool formats the amount to two decimals and strips IBAN spaces to avoid exactly that.
- Is there a size limit on the details?
- Yes — the whole payload is capped around 331 characters, which is plenty for a name, IBAN, amount and a short reference but not for a long free-text note.