Belarus UNP Validator

Validate a 9-character Belarusian UNP taxpayer number (modulo-11).

Free Belarusian UNP validator. Applies the official 29,23,19,17,13,7,5,3 weighted modulo-11 check-digit algorithm to the 9-character payer's account number used by the MNS for e-invoicing and customs. Runs entirely in your browser. It runs free in your browser on Gera Tools, with nothing uploaded.

Last updated Source: Gera Tools

How is the Belarusian UNP check digit calculated?

Each of the first eight characters is mapped to a numeric value, multiplied by the weights 29,23,19,17,13,7,5,3, and summed. The remainder modulo 11 is the expected check digit, which must equal the ninth character.

The UNP (payer’s account number) is the 9-character taxpayer identifier issued by the Ministry of Taxes and Duties (MNS) of Belarus. It is required on invoices, e-invoicing submissions and customs declarations. The final character is a modulo-11 check digit, so a single mistyped character is detectable. This free validator runs the exact algorithm in your browser.

How the UNP check digit works

The official check-digit algorithm operates on the first eight characters:

  1. Map each character to a numeric value: digits map to themselves, and the Latin letters used in older codes map via a fixed table (A=10, B=11, C=12, E=13, H=14, K=15, M=16, O=17, P=18, T=19).
  2. Multiply each value by its weight: 29, 23, 19, 17, 13, 7, 5, 3.
  3. Sum the products and take the remainder control = sum mod 11.
  4. If control equals 10 the UNP is invalid. Otherwise the ninth character must equal control.

Worked example

Take the candidate UNP 190345677 — first eight characters 19034567, stated check digit 7:

PositionCharacterValueWeightProduct
1112929
29923207
300190
4331751
5441352
655735
766530
877321
Sum425

425 mod 11 = 7, which matches the ninth character, so the structure is valid. Change any single character — say the 4 to a 1 — and the sum drops to 386, whose remainder (1) no longer matches, so the tool flags it.

A valid check digit confirms the UNP is well-formed, not that the taxpayer is registered. All processing stays on your device.

Inputs that fail for reasons other than typos

  • Check digit resolving to 10. The official rule declares such combinations invalid rather than using a two-character check, so some 8-character prefixes simply cannot exist as UNPs. If a supplier’s number consistently fails with an expected check of 10, the whole number is wrong, not just one digit.
  • Lost leading zeros. A UNP stored in a spreadsheet number cell silently drops a leading zero and arrives as 8 characters. Format UNP columns as text.
  • Letter lookalikes. Older letter-bearing codes use a restricted alphabet (A, B, C, E, H, K, M, O, P, T). A Cyrillic С or О pasted from a Belarusian document looks identical to the Latin letter but is a different Unicode character — retype the letter if a visually correct code fails.
  • Confusing UNP with other identifiers. Belarusian documents also carry OKPO codes and bank account numbers; a 9-character string near the company name is not automatically the UNP. The check digit is a good discriminator: genuine UNPs pass, other identifiers usually don’t.

When you need to validate a UNP

E-invoicing and accounting systems. Belarus requires UNP numbers on invoices and reporting documents submitted to the MNS. An accounting system that accepts a malformed UNP will pass the data through to a filing that the tax authority will reject. Catching malformed UNPs at data-entry time avoids downstream filing rejections.

Customs declarations and trade documents. Cross-border trade into and out of Belarus requires counterparty UNP numbers on customs documentation. Importers and freight forwarders who collect supplier UNPs before preparing declarations can use this validator to catch typos before submitting.

B2B data quality. Companies maintaining supplier or customer master records with Belarusian entities should run UNPs through a check-digit validator as part of their data-quality pipeline. A failed check digit is a reliable signal that the number was mistyped during data entry, eliminating a class of errors before they propagate.

The weight sequence and why modulo-11 is used

The weights 29, 23, 19, 17, 13, 7, 5, 3 are all prime numbers, which is intentional. Weighting by primes maximises the detectability of single-character transpositions and substitutions. Modulo-11 was chosen because 11 is prime and produces a check digit ranging from 0 to 10 — with the rule that a result of 10 is declared invalid, rather than requiring two-digit check characters. This makes the algorithm simple to implement and fast to verify manually with a calculator, which was important when the system was designed for manual administrative use.

Sources and references

Maintained by the Gera Tools editorial team. The weight sequence and modulo-11 rule are the official UNP check; this tool validates the check digit only and never contacts a register — confirm active registration with the MNS. Last reviewed 2026-07-02.