Vergi Kimlik No Üretici
Vergi kimlik no üretici: fatura, şirket kaydı ve e-Fatura entegrasyonu testlerin için GİB algoritmasına uygun, geçerli vergi numarası tek tıkla hazır.
$ vkn --uret● 10. hane kontrol
- 10 hane
- Kontrol hanesi tutuyor
Geçmiş
Vergi kimlik no üretici 10. haneyi adım adım hesaplar
Tablo yukarıda ürettiğin numaranın hesabı. Her hane kendi sırasına göre dönüştürülür, sonuçlar toplanır.
| Sıra | Hane | Adım 1 | Adım 2 |
|---|---|---|---|
| 1 | 2 | (2 + 9) mod 10 = 1 | 1 × 512 mod 9 = 8 |
| 2 | 1 | (1 + 8) mod 10 = 9 | 9 × 256 mod 9 = 9 |
| 3 | 5 | (5 + 7) mod 10 = 2 | 2 × 128 mod 9 = 4 |
| 4 | 0 | (0 + 6) mod 10 = 6 | 6 × 64 mod 9 = 6 |
| 5 | 0 | (0 + 5) mod 10 = 5 | 5 × 32 mod 9 = 7 |
| 6 | 3 | (3 + 4) mod 10 = 7 | 7 × 16 mod 9 = 4 |
| 7 | 9 | (9 + 3) mod 10 = 2 | 2 × 8 mod 9 = 7 |
| 8 | 3 | (3 + 2) mod 10 = 5 | 5 × 4 mod 9 = 2 |
| 9 | 0 | (0 + 1) mod 10 = 1 | 1 × 2 mod 9 = 2 |
| toplam 49 → (10 − 9) mod 10 = 1 | |||
Sıraya göre kaydır
Her haneye 9'dan geriye sayan bir değer eklenir (1. haneye 9, 9. haneye 1) ve sonucun 10'a bölümünden kalan alınır.
2'nin kuvvetiyle çarp
Sonuç, 1. hane için 2⁹ = 512'den 9. hane için 2¹ = 2'ye inen sayıyla çarpılır ve 9'a bölümünden kalan alınır. Kalan 0 çıkarsa ve ilk adımın sonucu 0 değilse değer 9 sayılır.
Topla, 10'a tamamla
Dokuz değer toplanır; toplamı 10'un katına tamamlayan rakam kontrol hanesidir.
Vergi kimlik no üretici ve VKN rehberi
VKN'nin ne olduğu, TCKN'den farkı, formlarda ve faturalarda doğru kullanımı ve hazır kod.
Vergi kimlik numarası (VKN) nedir?
Vergi kimlik numarası, Gelir İdaresi Başkanlığı'nın vergi mükelleflerini tanımlamak için verdiği 10 haneli numaradır. Anonim ve limited şirketler, dernekler, vakıflar, kooperatifler ve kamu kurumları gibi tüzel kişiler faturalarda, beyannamelerde ve resmi yazışmalarda bu numarayla tanımlanır.
Numaranın ilk 9 hanesi mükellefe atanır, 10. hanesi ise ilk 9 haneden hesaplanan kontrol hanesidir. Kontrol hanesi sayesinde bir yazılım, numaranın yanlış yazılıp yazılmadığını herhangi bir servise sormadan anlayabilir.
Vergi kimlik no üretici de aynı hesabı kullanır: ilk 9 haneyi rastgele seçer, 10. haneyi kurala göre ekler. Ortaya çıkan test numarası her VKN doğrulama kontrolünden geçer. "VKN üretici" ya da "vergi no üretici" diye aranan araç da budur.
VKN mi, TC kimlik numarası mı?
Gerçek kişiler için ayrı bir vergi numarası yerine 11 haneli TC kimlik numarası kullanılır. Bu yüzden fatura ve cari hesap ekranlarında "vergi numarası / TC kimlik numarası" alanı tek bir alan olarak tasarlanır ve numaranın uzunluğuna bakılır: 10 hane ise tüzel kişi ve VKN algoritması, 11 hane ise gerçek kişi ve TCKN algoritması uygulanır.
e-Fatura ve e-Arşiv entegrasyonlarında da alıcı bilgisi bu ayrıma göre doldurulur. Test senaryolarında hem geçerli bir VKN hem de geçerli bir TC kimlik numarası kullanarak iki yolu da denemen gerekir.
Şahıs şirketleri
Şahıs şirketlerinde vergi mükellefi işletme sahibinin kendisidir. Bu nedenle şahıs şirketi faturalarında genellikle sahibinin TC kimlik numarası görülür. Formunu yalnızca 10 haneye göre tasarlarsan bu kullanıcıları kaydedemezsin.
Formlarda vergi kimlik numarası
Vergi kimlik no üretici 0 ile başlayan numaralar da üretir, çünkü TC kimlik numarasından farklı olarak VKN 0 ile başlayabilir. Numarayı sayı alanında saklarsan "0123456789" gibi bir değer "123456789" olur ve 9 haneye düşer. Bu yüzden VKN'yi her zaman metin olarak sakla ve giriş alanını inputmode="numeric" olan bir metin alanı yap.
Doğrulamayı hem tarayıcıda hem sunucuda çalıştır. Kullanıcının yapıştırdığı değerdeki boşlukları temizlemek iyi bir kolaylıktır, ama harf ya da eksik hane içeren bir değeri sessizce düzeltmeye çalışma; kullanıcıya hangi kuralın tutmadığını göster.
Algoritma kontrolü ile GİB sorgusu
Kontrol hanesi doğruysa numara biçim olarak geçerlidir, ama bu numaranın gerçekten bir mükellefe ait olduğunu göstermez. Bir vergi numarasının kime ait olduğunu, hangi vergi dairesine bağlı olduğunu ve faal olup olmadığını GİB'in mükellef sorgulama hizmetleri gösterir. Bu araç böyle bir sorgu yapmaz.
Çok sayıda TC kimlik numarasına ihtiyacın varsa toplu üretici, ödeme testleri için IBAN üretici ve sanal POS test kartları sayfalarını kullanabilirsin.
function vknKontrolHanesi(d) {
let toplam = 0;
for (let i = 0; i < 9; i++) {
const c1 = (d[i] + 9 - i) % 10;
let c2 = (c1 * 2 ** (9 - i)) % 9;
if (c1 !== 0 && c2 === 0) c2 = 9;
toplam += c2;
}
return (10 - (toplam % 10)) % 10;
}
function vknUret() {
const d = Array.from({ length: 9 }, () => Math.floor(Math.random() * 10));
return d.join('') + vknKontrolHanesi(d);
}
function vknGecerliMi(no) {
no = String(no).trim();
if (!/^\d{10}$/.test(no)) return false;
const d = [...no].map(Number);
return vknKontrolHanesi(d) === d[9];
}
function vknKontrolHanesi(array $d): int
{
$toplam = 0;
for ($i = 0; $i < 9; $i++) {
$c1 = ($d[$i] + 9 - $i) % 10;
$c2 = ($c1 * 2 ** (9 - $i)) % 9;
if ($c1 !== 0 && $c2 === 0) $c2 = 9;
$toplam += $c2;
}
return (10 - $toplam % 10) % 10;
}
function vknUret(): string
{
$d = [];
for ($i = 0; $i < 9; $i++) $d[] = random_int(0, 9);
return implode('', $d) . vknKontrolHanesi($d);
}
function vknGecerliMi(string $no): bool
{
if (!preg_match('/^[0-9]{10}$/', $no)) return false;
$d = array_map('intval', str_split($no));
return vknKontrolHanesi($d) === $d[9];
}
import random
def vkn_kontrol_hanesi(d: list[int]) -> int:
toplam = 0
for i in range(9):
c1 = (d[i] + 9 - i) % 10
c2 = (c1 * 2 ** (9 - i)) % 9
if c1 != 0 and c2 == 0:
c2 = 9
toplam += c2
return (10 - toplam % 10) % 10
def vkn_uret() -> str:
d = [random.randint(0, 9) for _ in range(9)]
return "".join(map(str, d)) + str(vkn_kontrol_hanesi(d))
def vkn_gecerli_mi(no: str) -> bool:
if len(no) != 10 or not (no.isascii() and no.isdigit()):
return False
d = [int(c) for c in no]
return vkn_kontrol_hanesi(d) == d[9]
Sık sorulan sorular
Vergi numarası yapısı, kontrol hanesi ve fatura testleri üzerine sorular.
Vergi kimlik numarası ile TC kimlik numarası arasındaki fark ne?
Vergi kimlik numarası (VKN) 10 hanelidir ve şirketler, dernekler, vakıflar gibi tüzel kişilere verilir. Gerçek kişiler için 11 haneli TC kimlik numarası vergi kimlik numarası olarak kullanılır. Bir faturada alıcının numarasının 10 ya da 11 haneli olması, alıcının tüzel mi gerçek kişi mi olduğunu gösterir.
Vergi kimlik no üretici ile üretilen numaralar gerçek bir şirkete mi ait?
Numaralar GİB algoritmasına uyar ve rastgele seçilir; tesadüfen gerçek bir mükellefe ait olabilir. Bunu bilmeyiz ve sorgulamayız. Numaraları yalnızca kendi yazılımının test ve geliştirme ortamlarında kullan.
Vergi kimlik numarası 0 ile başlayabilir mi?
Evet. TC kimlik numarasının aksine VKN'de ilk hane için bir kısıt yoktur; 0 ile başlayan numaralar da geçerlidir. Bu yüzden VKN'yi sayı olarak saklarsan baştaki sıfırı kaybedersin; her zaman metin olarak sakla.
Bu numaraları e-Fatura testinde kullanabilir miyim?
Kendi uygulamandaki form, doğrulama ve fatura şablonu testleri için kullanabilirsin. GİB ve özel entegratörlerin test ortamları genellikle kendi tanımladıkları test numaralarını ister; o ortamlar için entegratörünün dokümanına bak.
Numaralar bir sunucuya gönderiliyor mu?
Hayır. Numaralar tarayıcında üretilir ve doğrulanır. Geçmiş listesi sadece senin tarayıcında saklanır.
Algoritmaya uygun olması numaranın gerçek olduğunu gösterir mi?
Hayır. Kontrol hanesi yalnızca numaranın biçim olarak doğru yazıldığını gösterir. Bir vergi numarasının gerçekten bir mükellefe ait olup olmadığı GİB'in mükellef sorgulama hizmetleriyle öğrenilir.
Çok sayıda VKN üretebilir miyim?
Bu sayfada tek seferde 25 numaraya kadar üretebilirsin. Binlerce test VKN gerekiyorsa aşağıdaki kodu kullanabilir ya da test verisi API'si ile tek istekte 1.000 vergi numarası üretebilirsin.
Klavye kısayolları neler?
Space yeni numara üretir, C numarayı kopyalar. Numaranın üstüne tıklamak da kopyalar.
Aynı işte lazım olacak diğer araçlar
Vergi numarası, IBAN, test kartı ve sahte kişi verisi: hepsi aynı mantıkla, tarayıcında.