Skip to content
Scanay

How to add a payment QR code to Shopify bank transfer orders

A payment QR code turns "please transfer to this IBAN" into one scan in the customer's banking app. This is what the code contains, three ways to get it into your Shopify e-mails and how to test it before a customer does.

· 6 min read

A payment QR code in your Shopify order e-mail lets a customer pay by bank transfer by scanning it with their banking app. The app opens with your name, your IBAN, the exact amount and the order number as the reference already filled in, and the customer only confirms. For a shop that takes bank transfers it is the simplest way to stop mistyped IBANs and forgotten references. If you have not set up bank transfer in Shopify yet, start with how to accept bank transfer payments in Shopify.

Why bank transfer orders go wrong without a QR code

When a customer picks bank transfer, the order e-mail usually says “please transfer the amount to this IBAN and use this reference”. The customer then has to copy an IBAN of about 20 characters, the amount and the reference into a banking app, often on a phone.

Three things go wrong again and again:

  • A mistyped IBAN or amount. The transfer fails, comes back, or arrives with the wrong amount.
  • A missing or wrong reference. The money arrives but you cannot tell which order it belongs to, so you write to the customer and the order waits.
  • “Did you get my payment?” e-mails. Customers who are unsure ask, and every question costs you a reply.

A payment QR code removes the typing, so all three become rarer. It does not move money by itself: the customer still confirms the payment in their own banking app, and the money goes from their bank straight to your account.

What is inside a payment QR code

A payment QR code is not a link and it is not just your IBAN. It holds the whole payment as text in the format the customer’s banking app expects: recipient, IBAN, amount, currency, reference and purpose. A code that only contains your IBAN as plain text does not fill in a payment, because the app does not recognise it as one.

The format depends on the country of the customer’s bank:

  • Slovenia: UPN QR
  • Croatia: HUB3, which is a PDF417 barcode and not a QR code
  • Czechia: QR Platba
  • Slovakia: PAY by square
  • Poland: ZBP
  • Hungary: MNB QR
  • Euro area: EPC QR, also called GiroCode

The article payment QR code standards in Europe, compared explains how they differ. Each one also has its own page that explains what it contains and which banks read it.

Three ways to get a payment QR code into a Shopify e-mail

1. Make the codes by hand

You make a code for each order by hand, with a generator for the standard your customers use (the euro area uses EPC QR), and send it to the customer. This is fine for a handful of orders a week. It does not scale: Shopify sends the order confirmation immediately, so the code always arrives later, and every code is typed in by a person, with the same chance of typos you were trying to avoid.

2. Build it into the e-mail template yourself

Shopify’s notification templates are written in Liquid. Liquid can print the order number, the total and the shipping country, but it cannot draw a QR code. You would need an outside QR image service, which means your IBAN and the order amount travel to a third party inside the image address.

The format is the harder part. EPC QR is plain text and may be possible. UPN QR needs ISO 8859-2 text and a control number, PAY by square is compressed, and HUB3 is not a QR code at all. Liquid has no way to encode or compress text like that. For a shop that sells in one euro country this can work. Beyond that it becomes fragile, and you maintain it yourself.

3. Let a service build the code and place it

This is what Scanay does. It reads each bank transfer order from Shopify, builds the code in the right format for the order’s shipping country and serves it as an image. You paste one snippet into your order e-mails, and that is the only change in Shopify.

The snippet is written for your settings:

  • It shows the bank details and the code only for the manual payment methods you name, for example “Bank Deposit”. Card and PayPal orders are left alone.
  • It hides itself once the order is paid, refunded or voided.
  • It chooses the country from the shipping address, then the billing address, so the account you print is the account the code pays.
  • The code follows the order: if the total changes, the code changes.

Set it up with Scanay in four steps

  1. Connect your store. Either create a small private app that can only read orders, or use plain webhooks, which need no access to your store at all.
  2. Enter your bank details for each country you sell to. Scanay checks the IBAN and shows a preview of the code.
  3. Paste the snippet into the Order confirmation, Order edited and Order invoice templates under Settings, Notifications, Customer notifications.
  4. Place a test order and scan it.

The setup guide lists every screen and takes about ten minutes. If you would rather not touch Shopify settings, we can do the setup for you, free.

Test the code before a customer does

A code that looks right can still be wrong, so always scan it.

  1. Place a test order with your bank transfer method and a shipping address in a country you switched on.
  2. Open the confirmation e-mail on your computer and scan the code with your phone’s banking app.
  3. Check the recipient, the IBAN, the amount and the reference against the order.
  4. Scan it again with the app of a second bank. Banking apps differ in small ways, and your customers use more than one.
  5. Compare the printed details next to the code with what the app shows.

Questions

Does it work if the customer reads the e-mail on their phone?

A phone cannot scan its own screen. The printed details stay in the e-mail next to the code, so those customers copy the IBAN and reference as they do today. The code helps most for customers who open the e-mail on a computer or tablet and pay from their phone.

Do I need Shopify Plus or an app from the App Store?

No. Any Shopify plan that lets you edit notification templates works. Scanay is not installed from the App Store: it is either a small private app in your own store or plain webhooks.

Does the code appear on card and PayPal orders?

No. It appears only for the manual payment methods you name, and it disappears once the order is paid, refunded or voided.

Can I use a different bank account for each country?

Yes. Each country can pay into its own account, so a Czech customer can pay your CZK account in korunas.

Put the payment QR code into your Shopify e-mails

Scanay builds the right code for every bank transfer order and adds it to the order e-mail. Try it free, no card needed. Setup takes about ten minutes, or we do it for you.

More from the blog