PHPackages                             akiftezcan38/tr-identity-validator - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. akiftezcan38/tr-identity-validator

ActiveLibrary[Validation &amp; Sanitization](/categories/validation)

akiftezcan38/tr-identity-validator
==================================

Turkish Identity Number (TCKN) and Tax Number (VKN) validator package

v1.0.1(6mo ago)05MITPHPPHP ^8.2

Since Oct 16Pushed 6mo agoCompare

[ Source](https://github.com/akiftezcan38/tr-identity-validator)[ Packagist](https://packagist.org/packages/akiftezcan38/tr-identity-validator)[ RSS](/packages/akiftezcan38-tr-identity-validator/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (2)Dependencies (1)Versions (3)Used By (0)

Turkish Identity Validator (TCKN &amp; VKN)
===========================================

[](#turkish-identity-validator-tckn--vkn)

🇹🇷 T.C. Kimlik Numarası (TCKN) ve Vergi Kimlik Numarası (VKN) doğrulama paketi

PHP 8.4+ için geliştirilmiş, basit ve hızlı bir doğrulama kütüphanesidir.

Özellikler
----------

[](#özellikler)

- ✅ TCKN (T.C. Kimlik Numarası) doğrulama
- ✅ VKN (Vergi Kimlik Numarası) doğrulama
- ✅ Otomatik tip algılama
- ✅ Detaylı doğrulama sonuçları
- ✅ %100 test coverage
- ✅ PHP 8.4+ ile modern kod yapısı
- ✅ Bağımlılık yok (sıfır dependency)

Kurulum
-------

[](#kurulum)

```
composer require akiftezcan38/tr-identity-validator

```

Kullanım
--------

[](#kullanım)

### Basit Kullanım

[](#basit-kullanım)

```
use TrIdentityValidator\IdentityValidator;

$validator = new IdentityValidator();

// TCKN Doğrulama
$isValid = $validator->validateTckn('10000000146');
// true

// VKN Doğrulama
$isValid = $validator->validateVkn('1234567801');
// true

```

### Otomatik Tip Algılama

[](#otomatik-tip-algılama)

```
$result = $validator->validateAuto('10000000146');

/*
Array
(
    [valid] => true
    [number] => 10000000146
    [type] => TCKN
    [detected_type] => TCKN
    [length] => 11
    [algorithm] => Turkish Ministry of Interior TCKN Algorithm
)
*/

```

### Detaylı Sonuç Alma

[](#detaylı-sonuç-alma)

```
// TCKN için detaylı sonuç
$result = $validator->validateTcknWithDetails('10000000146');

// VKN için detaylı sonuç
$result = $validator->validateVknWithDetails('1234567801');

```

### Doğrudan Validator Sınıflarını Kullanma

[](#doğrudan-validator-sınıflarını-kullanma)

```
use TrIdentityValidator\Validators\TcknValidator;
use TrIdentityValidator\Validators\VknValidator;

$tcknValidator = new TcknValidator();
$vknValidator = new VknValidator();

$isValidTckn = $tcknValidator->validate('10000000146');
$isValidVkn = $vknValidator->validate('1234567801');

```

API Referansı
-------------

[](#api-referansı)

### IdentityValidator

[](#identityvalidator)

Ana validator sınıfı. Tüm doğrulama işlemlerini yönetir.

#### Metodlar

[](#metodlar)

- `validateTckn(string $tckn): bool` - TCKN doğrular
- `validateVkn(string $vkn): bool` - VKN doğrular
- `validateTcknWithDetails(string $tckn): array` - Detaylı TCKN doğrulama
- `validateVknWithDetails(string $vkn): array` - Detaylı VKN doğrulama
- `validateAuto(string $number): array` - Otomatik tip algılama ile doğrulama
- `getTcknValidator(): TcknValidator` - TCKN validator instance'ı döner
- `getVknValidator(): VknValidator` - VKN validator instance'ı döner

### TcknValidator

[](#tcknvalidator)

T.C. Kimlik Numarası doğrulama sınıfı.

#### Metodlar

[](#metodlar-1)

- `validate(string $tckn): bool` - TCKN doğrular
- `validateWithDetails(string $tckn): array` - Detaylı sonuç döner

### VknValidator

[](#vknvalidator)

Vergi Kimlik Numarası doğrulama sınıfı.

#### Metodlar

[](#metodlar-2)

- `validate(string $vkn): bool` - VKN doğrular
- `validateWithDetails(string $vkn): array` - Detaylı sonuç döner

Algoritmalar
------------

[](#algoritmalar)

### TCKN Algoritması

[](#tckn-algoritması)

İçişleri Bakanlığı'nın yayınladığı TCKN algoritması kullanılır:

1. 11 haneli olmalı
2. İlk hane 0 olamaz
3. 10. hane: (1. + 3. + 5. + 7. + 9. hanelerin toplamı × 7) - (2. + 4. + 6. + 8. hanelerin toplamı) mod 10
4. 11. hane: İlk 10 hanenin toplamı mod 10

### VKN Algoritması

[](#vkn-algoritması)

Gelir İdaresi Başkanlığı'nın yayınladığı VKN algoritması kullanılır:

1. 10 haneli olmalı
2. Her hane için: ((hane + sıra) mod 10) × 2^sıra mod 9 (0 ise 9)
3. Son hane: (10 - (toplam mod 10)) mod 10

Test
----

[](#test)

```
composer test

```

veya

```
./vendor/bin/phpunit

```

Gereksinimler
-------------

[](#gereksinimler)

- PHP 8.4 veya üstü

Lisans
------

[](#lisans)

MIT License

Katkıda Bulunma
---------------

[](#katkıda-bulunma)

Pull request'ler memnuniyetle karşılanır. Büyük değişiklikler için lütfen önce bir issue açın.

Yasal Uyarı
-----------

[](#yasal-uyarı)

Bu paket sadece algoritma doğrulaması yapar. MERNİS veya herhangi bir devlet sistemine bağlanmaz. Gerçek kişi doğrulaması için resmi sistemleri kullanmanız gerekmektedir.

Destek
------

[](#destek)

Sorularınız için issue açabilir veya e-posta gönderebilirsiniz.

---

Made with ❤️ for Turkish Developers

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance66

Regular maintenance activity

Popularity4

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

2

Last Release

208d ago

PHP version history (2 changes)v1PHP ^8.4

v1.0.1PHP ^8.2

### Community

Maintainers

![](https://www.gravatar.com/avatar/1d6f87e972dc883b5873f06b59fe5fe398dddb2abfdf85bfbf8c3e6e76ee0e92?d=identicon)[akiftezcan38](/maintainers/akiftezcan38)

---

Tags

validationidentityturkeytcknTurkishvkn

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/akiftezcan38-tr-identity-validator/health.svg)

```
[![Health](https://phpackages.com/badges/akiftezcan38-tr-identity-validator/health.svg)](https://phpackages.com/packages/akiftezcan38-tr-identity-validator)
```

###  Alternatives

[composer/semver

Version comparison library that offers utilities, version constraint parsing and validation.

3.3k489.6M672](/packages/composer-semver)[giggsey/libphonenumber-for-php

A library for parsing, formatting, storing and validating international phone numbers, a PHP Port of Google's libphonenumber.

5.0k148.7M416](/packages/giggsey-libphonenumber-for-php)[respect/validation

The most awesome validation engine ever created for PHP

5.9k37.4M383](/packages/respect-validation)[propaganistas/laravel-phone

Adds phone number functionality to Laravel based on Google's libphonenumber API.

3.0k35.7M107](/packages/propaganistas-laravel-phone)[opis/json-schema

Json Schema Validator for PHP

64236.9M186](/packages/opis-json-schema)[giggsey/libphonenumber-for-php-lite

A lite version of giggsey/libphonenumber-for-php, which is a PHP Port of Google's libphonenumber

8412.9M47](/packages/giggsey-libphonenumber-for-php-lite)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
