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.
Plugins
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.
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.
The Lite edition is free and complete for what it does; the full edition adds more.
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.
Use it when
Built for
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.
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.
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.
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.
1 of 5
| Platform or runtime | Supported versions | Tested up to |
|---|---|---|
| Laravel | 12.0 or newer | 13.35.0 |
| PHP | 8.2 or newer | 8.4.26 |
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.