New

Just launched: Vueblocks, a brand-new search engine for Vue packages! Explore Vueblocks →

farzai/thai-citizen-id-validation

Thai citizen id validation
1,029 11
Install
composer require farzai/thai-citizen-id-validation
Latest Version:1.3.0
PHP:^8.1
Older releases:8 · 9 · 10
License:MIT
Last Updated:Mar 30, 2026
Links: GitHub  ·  Packagist
Maintainer: parsilver

Thai Citizen ID Validator PHP

Latest Version on Packagist Tests codecov Total Downloads

Thai Citizen ID validator is a easy-to-use PHP library designed to help validate Thai National Identification Card numbers

Installation

You can install the package via composer:

composer require farzai/thai-citizen-id-validation

Usage for validation

Example usage for validating Thai Citizen ID

use Farzai\ThaiIdValidation\Validator;
use Farzai\ThaiIdValidation\Exceptions\InvalidThaiCitizenIdException;

$validator = new Validator();

try {
    $validator->validate('1410100100000');
} catch (InvalidThaiCitizenIdException $e) {
    // Handle invalid citizen id
}

Usage for generating

Sometimes you need to generate a random Thai Citizen ID for testing purpose. This library can help you with that.

use Farzai\ThaiIdValidation\Generator;

$generator = new Generator();

// Optional
$generator
    ->personType(1) // ประเภทบุคคล
    ->provinceOfBirth('10') // เลขจังหวัดที่เกิด
    ->districtOfBirth('10'); // เลขอำเภอที่เกิด

// Generate
$idCard = $generator->generate();

echo (string)$idCard; // 1410100100000

echo $idCard->getId(); // 1410100100000
echo $idCard->getType(); // 1 digit
echo $idCard->getProvinceOfBirth(); // 2 digit
echo $idCard->getDistrictOfBirth(); // 2 digit
echo $idCard->getVolume(); // 5 digit
echo $idCard->getNumber(); // 2 digit
echo $idCard->getCheckDigit(); // 1 digit

Usage with Laravel

You can use the IdCard rule to validate Thai Citizen ID in Laravel.

use Farzai\ThaiIdValidation\Laravel\Rules\IdCard;

$request->validate([
    'id_card' => ['required', new IdCard],
]);

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.

Related Packages

doctrine/dbal

Powerful PHP database abstraction layer (DBAL) with many features for database s...

655,942,320 9,702
laravel/framework

The Laravel Framework.

610,364,751 34,988
laravel/tinker

Powerful REPL for the Laravel framework.

518,004,183 7,444
laravel/serializable-closure

Laravel Serializable Closure provides an easy and secure way to serialize closur...

435,097,283 607
nunomaduro/collision

Cli error handling for console/command-line PHP applications.

412,228,818 4,664

Version History

Version Released PHP Laravel License
1.3.0 ^8.1 MIT
1.2.1 ^8.0 MIT
1.2.0 ^8.0 ^8.0|^9.0|^10.0 MIT
1.1.1 ^8.1 MIT
1.1.0 ^8.1 MIT