Ukraine Bank Payment QR Code

One scan and a Ukrainian bank app fills in the IBAN, amount and payment purpose.

Main settings

A Ukrainian account starting with UA. The checksum is verified before a code is created.
EDRPOU (8 digits) or RNOKPP (10 digits).
Leave empty to let the payer enter the amount.

QRtor only encodes the details you enter. It does not process payments and is not a banking service. Check the code in your own bank app before printing it.

Fill in the fields. QRtor will build the correct QR content automatically.
Design options
Advanced design Shapes, gradient, frame and transparency

A Ukrainian payment QR code follows the NBU standard for credit transfers: a bank app fills in the IBAN, amount and purpose instead of the payer typing them by hand. QRtor builds the code in your browser and verifies the account first; it does not process payments and is not a banking service.

Use cases

  • Invoices and receipts for sole traders (FOP).
  • Donation cards for volunteers and fundraisers.
  • Craft fairs, workshops, and on-site services.

How to create it

  1. Enter the beneficiary, the Ukrainian IBAN and the tax code (EDRPOU or RNOKPP).
  2. Add an amount in hryvnia and the payment purpose, or leave the amount for the payer.
  3. Generate the code in your browser.
  4. Scan it with a Ukrainian bank app to confirm the details, then download PNG, SVG or PDF.

Example

https:// https://qrtor.net

FAQ

Which apps read this code?

The code follows the NBU standard for credit transfers (Resolution No. 97), which Ukrainian bank apps support. Coverage is still growing, so scan your own code with the app your payers use before printing a run.

Can I use a non-Ukrainian account?

No. The format only carries Ukrainian IBANs starting with UA. A foreign account is refused in the form, because that code would scan and then be declined by the bank.

What happens if I mistype the IBAN?

An IBAN carries a checksum, which is verified before any code is created. It catches every mistyped digit and every swap of neighbouring digits, so a typo cannot reach a printed code.

Do my bank details go anywhere?

No. The code is built in your browser and the details never leave your device — check the network tab if you like. QRtor only encodes what you enter and does not process payments.

Can I leave the amount empty?

Yes. An empty amount lets the payer enter it themselves, which suits donation cards and volunteer fundraisers. Everything else stays prefilled.

Ukrainian payment QR limits, app support and printing

Capacity and limits

The NBU format holds at most 331 bytes, and that includes a fixed 23-byte prefix the standard reserves. Cyrillic costs two bytes per character, so a payment purpose well inside its 140-character limit can still overflow the code — the generator checks the byte total, not the character count. Only hryvnia amounts are carried, written in the shortest form the standard asks for: UAH3 rather than UAH3.00.

Device compatibility

The code carries an official bank.gov.ua payment link, so it works two ways: in-app scanners in Ukrainian bank apps read the requisites directly, and an ordinary phone camera opens the National Bank's page where the payer picks their bank. Error correction runs at level M per the NBU rules, which the generator applies automatically.

Common mistakes

  • Using a foreign IBAN: the format carries Ukrainian accounts only, so a structurally perfect Bulgarian or German account produces a code a bank app reads and then refuses.
  • Mixing up ЄДРПОУ and РНОКПП lengths — the beneficiary code is 8 digits for organisations and 10 for individuals, and a 9-digit value is always a typo.
  • Pasting a long agenda into the payment purpose: Cyrillic at two bytes per character exhausts the byte budget long before the visible length suggests it should.

Printing and placement

Donation cards and invoices are read at arm's length, so 25 to 35 mm is usually enough. Because the format caps the QR version, near-limit payloads print denser than a short one — give a full payload extra width, and keep the printed IBAN beside the code for payers whose app cannot scan the format yet.