SEPA QR code vs RoPay: why the code does not work with Romanian banks

14 June 2026 · 6 min read read

You generate a payment QR code, send it to a customer, and they tell you their "banking app can't see it". It is not a bug — in Romania two payment QR standards coexist and do not talk to each other: SEPA/EPC (European) and RoPay (national). Here is the difference, in plain terms, and what actually works today.

The "SEPA" QR code (EPC / GiroCode)

The most common one online is EPC, also known as GiroCode, defined by the European Payments Council. It holds the details of a SEPA transfer — beneficiary, IBAN, amount, reference — encoded per the EPC069-12 standard. You scan it, the app pre-fills the transfer, you just confirm. It is a European standard, denominated in euro (EUR) and, importantly, open: anyone can generate an EPC code for any IBAN. Details in the guide on what GiroCode and the EPC standard are.

RoPay — Romania's national standard

Romanian banks took their own route. RoPay, developed by Transfond together with the country's banks, is the national instant-payment infrastructure via QR codes and "payment requests": money arrives in seconds, in lei (RON). Unlike EPC, RoPay is closed and identity-bound: the code is generated from inside the banking app. An individual requests money straight from the app, and a merchant enables it through their bank. There is no public RoPay code generator, because the bank does the validation.

Why the code "isn't seen"

This is the crux. Romanian bank apps (ING, BCR, BT, etc.) are built around RoPay, not EPC. So an EPC code generated online — perfectly valid in Germany — is simply not recognised by the local bank app. Nothing is broken: they are two different "languages", and the phone does not speak the foreign one. See also which banks support the SEPA QR code.

In short: EPC = European, in euro, open, scanned by Revolut/bunq. RoPay = Romanian, in lei, closed, generated from your bank's app. There is (not yet) a universal code that works everywhere.

What actually works in Romania today

The good news: there is a bridge. Revolut — used by millions in Romania — recognises EPC codes. So does bunq. In practice:

  • If you want to receive money via an EPC code, generate it from a euro IBAN (for example the EUR IBAN in Revolut), and whoever pays you scans it from Revolut or bunq.
  • If you want an instant payment in lei from someone with a classic Romanian bank, the native solution is RoPay, generated from their banking app.

A few notes: N26 supports EPC, but cannot be opened in Romania. Wise uses other code types. Salt Bank, a Romanian neobank, also runs on RoPay.

What it means for freelancers and merchants

If you are a freelancer working with clients abroad too, the EPC code is great for them (especially via Revolut), but do not rely on it for a client paying from a Romanian bank app. For the local instant market, RoPay is the way. For merchants, RoPay through the bank is the route for instant in-store payments, while EPC stays useful for invoices and European customers.

How to choose, simply

The practical rule is one question: "which app does the customer scan with?" For European customers or Revolut users — EPC. For instant payments in lei from Romanian banks — RoPay. See also the guide on how to pay with a SEPA QR code.

Want to generate an EPC code?

If you get paid by European customers or Revolut/bunq users, you can create your own code in seconds, free and without an account, with the SEPA payment QR code generator. Add the beneficiary, the IBAN and (optionally) the amount, and the code is ready to put on an invoice or website.

Frequently asked questions

Why does my Romanian bank not read the SEPA QR code? +
Because Romanian bank apps use the national RoPay standard (in lei), not the European EPC standard (in euro). They are two different formats, so an EPC code is not recognised by the local bank app.
What can I scan a SEPA (EPC) QR code with in Romania? +
With an EPC-compatible app such as Revolut or bunq. These recognise EPC codes in euro; classic Romanian bank apps do not.
Can I generate a RoPay code myself? +
Not through a public generator. A RoPay code is created from inside the banking app — individuals request money from the app, merchants enable it through their bank. An EPC code, by contrast, you can freely generate for any IBAN.
What do I use if I get paid by clients abroad? +
The EPC/SEPA code is ideal, especially if the payer uses Revolut or bunq. You generate it from a euro IBAN.

Generate a SEPA payment QR code

Free, no account, works with Revolut and bunq.

Open the generator