# NBU QR

> Source: https://docs.barcoder.ai/docs/standards/nbu-qr
> research date 2026-10-19 · extracted at 2026-10-19
> Publisher: Barcoder — encyclopedia of QR, barcode and payment-code standards

Specifications:
- [NBU Board Resolution No. 97 of 19 August 2025 — QR code rules for credit and instant credit transfers](https://zakon.rada.gov.ua/laws/show/v0097500-25)
- [SEP 4.1 instant transfers launched — NBU](https://bank.gov.ua/en/news/all/z-01-grudnya-2024-roku-v-ukrayini-zapratsyuvala-nova-versiya-sep-z-funktsionalnistyu-mittyevih-perekaziv)
- [Instant Payments — NBU](https://bank.gov.ua/en/payments/ips)

## Overview

The **NBU QR** is the National Bank of Ukraine's standard QR code for passing a payee's details for a hryvnia credit transfer or instant credit transfer to the payer's banking app. It is defined by **NBU Board Resolution No. 97 of 19 August 2025**, "Rules for forming, transmitting and processing the data structure and graphic image of the QR code for exchanging the details of credit and instant credit transfers", in force from **1 November 2025** [[nbu-97]]. The rules define three format versions: **001** (plain text), and **002** and **003** (an `https://qr.bank.gov.ua/` link carrying the fields in Base64URL), all built from line-separated fields that start with the service tag `BCD` [[nbu-97]]. Every payment service provider that initiates or executes credit and instant credit transfers must apply the rules in its payment apps [[nbu-97]].

The NBU QR is older than SEP 4.1, the NBU's instant-payment system launched on 1 December 2024: the first QR rules for credit transfers date from Resolution No. 68 of **28 May 2020** [[nbu-97]]. SEP 4.1 is the rail for interbank instant credit transfers, and the NBU named QR codes as one way to pass their payment details <sup>[1][1]</sup>; format 003 marks such a transfer with the function `ICT` [[nbu-97]].

## History

**28 May 2020 — first QR rules.** NBU Board Resolution No. 68 approved the "Rules for forming and using the QR code for credit transfers" [[nbu-97]].

**1 February 2021 — amendment.** Resolution No. 11 amended those rules [[nbu-97]].

**1 December 2024 — SEP 4.1 goes live.** The NBU switched its System of Electronic Payments (SEP) to version 4.1 with instant-transfer functionality, and named QR codes and deeplinks as the way to pass payment details between users <sup>[1][1]</sup>. At launch the NBU and ten banks were connected directly (Oschadbank, Credit Agricole, Sky Bank, Clearing House, Ukrsibbank, Ukreximbank, European Industrial Bank, Sense Bank, Altbank and Idea Bank); PrivatBank was not among them [[liga]].

**19 August 2025 — Resolution No. 97.** The NBU Board approved the current rules, which cover both credit and instant credit transfers, and repealed Resolutions No. 68 (2020) and No. 11 (2021) [[nbu-97]].

**11 October 2025 — Resolution No. 128.** The rules were amended (the annexes carry the note "with amendments under Resolution No. 128 of 11.10.2025") [[nbu-97]].

**1 November 2025 — in force.** Resolution No. 97 took effect; the current edition on the Verkhovna Rada portal is dated 2 November 2025 [[nbu-97]].

## Technical specification

| Property | Value |
|---|---|
| **Issuer** | National Bank of Ukraine |
| **Legal basis** | NBU Board Resolution No. 97 of 19 Aug 2025 (amended by No. 128 of 11 Oct 2025) |
| **Symbology** | [QR Code](https://docs.barcoder.ai/docs/standards/qr-code) per ДСТУ ISO/IEC 18004:2019 |
| **QR version** | "from 10 to 20 inclusive"; maximum 13 (69 modules) for format 001 and 17 (85 modules) for 002/003 |
| **Error correction** | Q, M or L; format 003 is generated at M or Q; L is not allowed when the ₴ mark is added |
| **Format versions** | 001, 002, 003 |
| **Character set** | Bytes 32–255 except 127, 152, 160 in Windows-1251, or their UTF-8 equivalents |
| **Line ending** | LF or CR LF, the same for every line (format 003: LF only) |
| **Max data** | 331 bytes (001); 507 bytes (002, 003) |
| **Currency** | Hryvnia (`UAH`) |
| **Checksum** | None defined |

All facts in this table are from the resolution [[nbu-97]].

**Fields.** Each element is a text line in a fixed order. An empty element consists of the line ending alone. The rules mark each element as mandatory, optional (present but may be empty) or reserved (must be empty) [[nbu-97]]. The common opening lines are:

- `BCD`, the service tag;
- the format version (`001`, `002` or `003`);
- the encoding: `1` = UTF-8, `2` = Windows-1251. Format 001 allows only `1`;
- the function: `UCT` ("Ukrainian Credit Transfer") in 001 and 002. Format 003 also allows `ICT` ("Instant Credit Transfer") and `XCT` (instant credit transfer or credit transfer).

These are followed by a reserved BIC / payee-identifier line, the payee name, the payee account (a 29-character UA IBAN), the amount, the payee code, and the payment purpose [[nbu-97]].

**Amount.** The amount takes the form `UAH` + number, for example `UAH576.45`. The rules set a maximum of 999999999.99 and use `.` as the decimal separator. A fraction, if present, has exactly two digits, and the amount should be as short as possible ("`UAH3` is better than `UAH3.00`"). Leading zeros are forbidden [[nbu-97]].

**Format 001** is plain text in 14 lines. The first line, the "application start code", is 23 spaces. The payee name is limited to 38 characters [[nbu-97]].

**Format 002** is a hyperlink. The prefix is `https://qr.bank.gov.ua/` or `https://bank.gov.ua/qr/`. The 13 field lines follow it, encoded with **Base64URL** (up to 475 bytes) [[nbu-97]]. To build one:

1. fill the fields;
2. Base64URL-encode them;
3. append the result to the prefix;
4. render the QR;
5. add the ₴ mark.

To decode, strip the prefix and Base64URL-decode the rest [[nbu-97]].

**Format 003** is the same kind of link, with 17 field lines. Its prefix is `https://qr.bank.gov.ua/` or a "personalised" start code that contains the payment service provider's domain [[nbu-97]]. It adds these fields [[nbu-97]]:

- a mandatory category/purpose code in the form `CCCC/PPPP`, from ISO 20022 code lists;
- an invoice reference;
- a display text;
- a 4-hex-digit **field-lock bitmask**. Field *n* maps to bit *n*, and fields 1–5, 11 and 14–17 must always be locked; for example, `FEFF` leaves only the amount (field 8) editable;
- invoice validity and creation timestamps in `YYMMDDhhmmss`;
- an electronic-signature field reserved for future use.

**Hryvnia mark.** The image must carry the hryvnia sign ₴ on a white circle at the centre of the code. The circle's diameter is set per QR version, from 17 modules (version 10) to 25 modules (versions 16–17) [[nbu-97]]. The mark is optional for format 001 at level M or Q, and mandatory for formats 002 and 003. The shape of the sign is "determined by the National Bank of Ukraine" and is not drawn in the resolution [[nbu-97]].

**Display.** An X-dimension below 0.5 mm is not recommended [[nbu-97]].

**Try it.** The playground builds formats 001, 002 and 003 from the resolution's rules, and its tests reproduce seven of the resolution's own examples exactly. The official centre mark (₴) is omitted; the payload is spec-exact and decodes.

## Use cases

The resolution's own worked examples show the intended uses [[nbu-97]]:

- **Utility bills:** examples in formats 001, 002 and 003.
- **Medical services:** a dental clinic, in formats 001 and 002.
- **Retail purchases:** a shop purchase in 002 and 003, including an instant credit transfer.
- **Person-to-person instant transfers:** format 003 with function `ICT`.
- **Online shopping:** format 003, with merchant and terminal identifiers in ISO 20022 tags.

**Instant transfers over SEP 4.1.** Since 1 December 2024 SEP 4.1 carries instant credit transfers, with QR codes and deeplinks named as the way to pass payment details <sup>[1][1]</sup>.

## Implementations & ecosystem

**Issuer:** NBU. Payment service providers that initiate or execute credit and instant credit transfers must support the rules in their apps [[nbu-97]].

**Rail for instant transfers (context).** SEP 4.1 had 20 direct participants by March 2025: the NBU and 19 banks, PrivatBank among them <sup>[2][2], [interfax]</sup>. The NBU's goal was for all systemic banks to offer instant transfers in the first half of 2025 <sup>[2][2]</sup>.

**Banks' QR products.** PrivatBank publishes pages for its own QR payments and acquiring <sup>[Privat24 (PrivatBank, Ukraine)](https://docs.barcoder.ai/docs/wallets/privatbank), [privatbank-acq]</sup>. Whether those QR codes follow the NBU format was not confirmed for this page. The Ukraine country report lists PrivatBank's Privat24 QR as a separate bank QR <sup>[Ukraine report](https://docs.barcoder.ai/docs/payments/UA)</sup>.

**Wartime context.** The European Payments Council has published the NBU's account of running payments in wartime [[epc]].

**Open-source code.** No GitHub encoder or decoder was verified for this page. Barcoder's own encoder (the playground above) implements formats 001–003.

## Comparison

**vs. [EPC QR](https://docs.barcoder.ai/docs/standards/epc-qr) (EU).** Both codes open with the `BCD` service tag and use one field per line [[nbu-97]]. The NBU QR adds the 23-space start code (001) or the `https://qr.bank.gov.ua/` link wrapper (002/003), a payee-code line, the `UCT`/`ICT`/`XCT` functions, Windows-1251 as an encoding option, and a hryvnia-only amount [[nbu-97]]. Use the NBU QR for hryvnia transfers to Ukrainian accounts.

| Feature | NBU QR (UA) | [MIA QR](https://docs.barcoder.ai/docs/standards/mia-qr) (MD) | [RoPay](https://docs.barcoder.ai/docs/standards/ropay) (RO) | [Blink](https://docs.barcoder.ai/docs/standards/blink) (BG) | [NBS IPS QR](https://docs.barcoder.ai/docs/standards/nbs-ips-qr) (RS) |
|---|---|---|---|---|---|
| Operator | NBU (central bank) | NBM (central bank) | Transfond (bank consortium) | BORICA AD | NBS (central bank) |
| QR rules since | 2020 (Res. 68); current rules 1 Nov 2025 | Mar 2024 | Nov 2024 | 2021 | 22 Oct 2018 |
| Currency | UAH | MDL | RON | BGN (+EUR TIPS) | RSD |
| Instant rail | SEP 4.1 (since 1 Dec 2024) | Yes (24/7/365) | <10s | <10s | <10s |
| QR | Formats 001/002/003; 002/003 are https links | 3 QR types | EPC reference | Mobile Lookup + QR | Standardised NBS IPS QR |

## Fun facts

- **The examples break the rules.** The ₴ mark is mandatory for formats 002 and 003, and level L may not be used with it. Yet the resolution's own format 002 examples are labelled "QR version 8 (L)", "10 (L)" and "13 (L)" [[nbu-97]].
- **A date that doesn't exist.** The first format 003 example gives the invoice creation date `250229`, which would be 29 February 2025. Its IBAN also carries a trailing space, so it is 30 bytes long in a field the rules fix at 29 [[nbu-97]].

## Status

**Active.** Resolution No. 97 has been in force since 1 November 2025. As of 19 October 2026 the Verkhovna Rada portal lists it as "чинний" (in force), in the edition of 2 November 2025 [[nbu-97]]. The rules let the NBU add new format versions, each one higher than the last [[nbu-97]].

## Sources

[1]: https://bank.gov.ua/en/news/all/z-01-grudnya-2024-roku-v-ukrayini-zapratsyuvala-nova-versiya-sep-z-funktsionalnistyu-mittyevih-perekaziv "SEP 4.1 instant transfers launched"
[2]: https://baltimorechronicle.com/finansy/2025/03/21/all-systemic-banks-to-launch-instant-transfers-in-the-first-half-of-2025-nbu/ "All systemic banks instant transfer H1 2025 — Baltimore Chronicle"
[epc]: https://www.europeanpaymentscouncil.eu/news-insights/insight/payments-wartime-story-national-bank-ukraine "Payments in wartime — NBU story — EPC"
[privatbank]: https://privatbank.ua/en/qr "PrivatBank QR payment"
[privatbank-acq]: https://privatbank.ua/en/business/ekvairynh "PrivatBank acquiring"
[liga]: https://biz.ligazakon.net/news/232331_v-ukran-zapratsyuvala-nova-versya-sep-z-funktsonalnstyu-mittvikh-perekazv "В Україні запрацювала нова версія СЕП з функціональністю миттєвих переказів — LIGA ZAKON (2 Dec 2024)"
[interfax]: https://interfax.com.ua/news/economic/1057367.html "Нацбанк очікує запуск усіма системними банками миттєвих переказів у I півріччі-2025 — Interfax-Ukraine (20 Mar 2025)"
[nbu-97]: https://zakon.rada.gov.ua/laws/show/v0097500-25 "NBU Board Resolution No. 97 of 19 August 2025 — QR code rules for credit and instant credit transfers"

- [nbu-97] [NBU Board Resolution No. 97 (19 Aug 2025) — QR code rules][nbu-97], accessed 2026-10-19 (print edition of 2 Nov 2025)
- [1] [SEP 4.1 instant transfers launched — NBU][1]
- [2] [Systemic banks instant transfer — Baltimore Chronicle][2]
- [liga] [New SEP version with instant transfers launched — LIGA ZAKON][liga]
- [interfax] [NBU expects all systemic banks to launch instant transfers in H1 2025 — Interfax-Ukraine][interfax]
- [epc] [Payments in wartime — EPC][epc]
- [privatbank] [PrivatBank QR payment][privatbank]
- [privatbank-acq] [PrivatBank acquiring][privatbank-acq]
- <sup>[Ukraine report](https://docs.barcoder.ai/docs/payments/UA)</sup> `reports/countries/UA-ukraine.md`

## Deployments

Found in the following country reports (grep across `reports/countries/`):

- **UA** — [UA-ukraine.md](https://docs.barcoder.ai/docs/payments/UA)
