Skip to content
PN Scripts

Developer tools

Vyarno

A React library with fields and checks for ЕГН, ЛНЧ, ЕИК/БУЛСТАТ, Bulgarian and EU VAT numbers, IBAN, phone numbers and postal codes, with real check digits and messages in Bulgarian or English.

  • React
  • JavaScript
  • TypeScript types
  • ESM and CommonJS
  • Coming soon

Coming soon

Not published on its store yet, so there is no buy or download link. PN Scripts does not take payment for it here.

An invoice details form in Bulgarian with ЕИК, VAT number, ЕГН, IBAN, phone and postal code fields, one ЕГН marked as not valid

What it solves

The gap

Forms for Bulgarian customers ask for an ЕГН, an ЕИК, a VAT number or an IBAN, and most React projects check them with a length or a regular expression, so typing mistakes reach invoices and contracts, and every team writes the same check digits again.

What it is

Vyarno gives ready React fields and plain functions that check the real check digits, read the birth date, bank code or phone type, format as people type and explain mistakes in Bulgarian or English.

How you use it

Fewer wrong numbers on invoices and contracts, with one line per field.

The React counterpart of Proverka: correct Bulgarian identifiers in forms for shops, accounting, HR, banking and public services.

Who it is for

Use it when

  • An online shop that asks companies for ЕИК, VAT number and IBAN for their invoices
  • An HR or payroll app that reads birth date and sex from an employee's ЕГН
  • A booking form that accepts only Bulgarian mobile numbers and stores them as +359

Built for

  • React developers and agencies building forms for Bulgarian businesses and customers
  • Teams with a Laravel back end that already validates with Proverka

What is inside

Real checks, not patterns

Check digits for ЕГН, ЛНЧ and ЕИК of 9 and 13 digits, dates that exist and are not in the future, Bulgarian VAT numbers from an ЕИК, ЕГН, ЛНЧ or other number, IBAN length and check digits for 77 countries, EU VAT formats, Bulgarian phone numbers and postal codes.

What the number says

A valid ЕГН gives the birth date, sex and age, with options for a minimum age or one sex; an IBAN gives its groups of four and the bank code; a phone number gives its +359 form, national form and whether it is mobile, landline or national.

Typing that feels right

Digits only for personal and company numbers, upper case and groups of four for an IBAN, national groups for a phone, with the caret kept where you type. Messages wait until the person leaves the field or submits, and the browser's own validation agrees.

Fits any React form

VyarnoField with a label and message, VyarnoInput for React Hook Form and other libraries, the useVyarno hook for your own markup, and vyarno/core without React for servers. ESM, CommonJS, TypeScript types, React 18 and 19.

Specs

Availability
Coming soon
Vendor
PN Scripts
Type
Package
Platforms
JavaScript, React
Pricing
One-time purchase Price to be announced.
License
Proprietary
Deployment
npm package installed from a file into React 18 or 19 apps
Maturity
v1.0.0

Compatibility

Platform or runtime Supported versions Tested up to
React 18 or newer 18.3.1 and 19.3.1
React Hook Form 7 or newer 7.90.0

Stack

  • React
  • JavaScript
  • TypeScript types
  • ESM and CommonJS

Vyarno is coming soon

It is finished and tested. It is not on sale yet; this page will say where to get it when it is.

Coming soon

Not published on its store yet, so there is no buy or download link. PN Scripts does not take payment for it here.

Questions

A React library with input fields, a hook and plain functions that check and format Bulgarian and European identifiers: ЕГН, ЛНЧ, ЕИК/БУЛСТАТ, VAT numbers, IBAN, phone numbers and postal codes, with messages in Bulgarian and English. It comes as an npm package file with its source, a demo form and a README.

A React 18 or 19 app; the checks alone run anywhere JavaScript runs. It was tested with React 19.3.1 and 18.3.1, React Hook Form 7.90 and TypeScript 5.9 on Node 22, and in Chrome.

Looking numbers up in the Commercial Register, VIES or a bank, so a well formed number may still not exist; ID card and passport numbers; foreign personal numbers and phone numbers; address fields. It is not on the public npm registry; you install it from the file.

Made by PN Scripts, a Sofia studio that builds games and tools, in plain JavaScript with handwritten TypeScript types, using the same test numbers as its Laravel edition Proverka. Created with AI assistance; the code was written for this library and checked by PN Scripts with 18 automated tests, a TypeScript check of its types, typing into a demo form in Chrome and a buyer install with React 18 and 19.

It is not on sale yet. When it is, this page will link to the store; PN Scripts does not take payment on this site.