Skip to content
PN Scripts

Plugins

Proverka by PN Scripts

Reject mistyped EGN, EIK, VAT and IBAN numbers before they reach your invoices: Bulgarian validation rules for Laravel with the real checksums, EN/BG messages and phones saved as +359.

  • PHP 8.2+
  • Laravel 12
  • Laravel 13
  • Composer
  • Coming soon
  • Free Lite out now

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.

Get it on

The Lite edition is free and complete for what it does; the full edition adds more.

Laravel validation code with Proverka rules next to the English and Bulgarian error messages it produced

What it solves

The gap

Bulgarian forms ask for an EGN, an EIK or a VAT number, and most Laravel apps only check the length, so typos, impossible birth dates and made-up numbers reach the database and later the invoices.

What it is

Proverka validates each identifier with its official checksum and layout, explains the error in English or Bulgarian, and normalises phone numbers to one storage format.

How you use it

One package, one line per field, the same behaviour for rule objects and string rules, and tests that never touch a real person's data.

For Laravel developers building Bulgarian shops, booking systems and back offices who need correct identifiers without writing checksum code themselves.

Who it is for

Use it when

  • Checkout and invoice forms that collect a company EIK or VAT number
  • Registration and booking forms that need an adult's EGN or a foreigner's LNCh
  • Customer databases that should store every phone number as +359 in E.164

Built for

  • Laravel developers and agencies building for Bulgarian clients
  • Teams maintaining Bulgarian e-commerce, accounting or HR applications

What is inside

Personal numbers

The EGN rule checks ten digits, the check digit with weights 2, 4, 8, 5, 10, 9, 7, 3, 6, and that the encoded birth date exists, including the 1800s and 2000s month offsets. It rejects future birth dates unless you allow them, and can require a sex or a minimum age. The LNCh rule checks the foreigner's personal number with its own weights.

Companies, VAT and banks

EIK/BULSTAT numbers are checked with 9 or 13 digits, including the second weight set that applies when the first gives a remainder of 10. VAT numbers are accepted as BG plus an EIK, EGN, LNCh or the 10-digit foreigner number, and you can limit them to companies or persons. IBANs must follow the Bulgarian layout and pass the mod 97 check.

Phones and postal codes

Phone numbers can be typed with a trunk zero, 00359, +359 or the +359 (0) habit, with spaces, slashes or brackets. Proverka classifies them as mobile, landline or non-geographic and gives you E.164 and national formats. Postal codes are four digits from 1000 to 9999 with an optional BG- prefix.

Messages, helpers and tests

All messages come in English and Bulgarian and can be published or overridden from your own validation file. Helpers return the birth date, sex and age of an EGN, the kind of a VAT number and a formatted IBAN. Generators create synthetic, checksum-valid EGN, LNCh, EIK and IBAN values, which is also how the package's own 70 tests work.

Specs

Availability
Coming soon
Vendor
PN Scripts
Type
Package
Platforms
Laravel, PHP
Pricing
One-time purchase Price to be announced.
License
Proprietary
Deployment
Download (ZIP with the Composer package, installed as a path repository)
Maturity
v1.0.0

Compatibility

Platform or runtime Supported versions Tested up to
Laravel 12.0 or newer 13.35.0
PHP 8.2 or newer 8.4.26

Stack

  • PHP 8.2+
  • Laravel 12
  • Laravel 13
  • Composer

Proverka 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 Laravel package with validation rules, translations and helpers for Bulgarian identifiers: EGN, LNCh, EIK/BULSTAT, VAT number, IBAN, phone number and postal code.

PHP 8.2 or newer and Laravel 12 or 13. It was tested on Laravel 13.35 and 12.69 with PHP 8.4. You install it with Composer from the unzipped folder.

Online lookups. Proverka does not query the Registry Agency, VIES, banks or phone operators, so it cannot tell whether a number is issued, active or whose it is. It also has no form components or front-end code.

The algorithms were written from the published checksum rules, and the expected check digits in the tests were computed with a separate script. Created with AI assistance; the checksum algorithms, rules, messages and helpers were checked by PN Scripts with 70 PHPUnit and Orchestra Testbench tests on Laravel 13.35 and 12.69, and the release ZIP was installed into a fresh Laravel app and checked through a real form.

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.