Türkiye GİB e-Belge Sistemi — Portal Geliştirme Referansı

Durum tarihi: 1 Eylül 2026 Kapsam: e-Fatura, e-Arşiv Fatura, e-İrsaliye, e-SMM, e-Müstahsil Makbuzu, e-Gider Pusulası, e-Adisyon, e-Bilet, e-Döviz/Kıymetli Maden, e-Sigorta Poliçesi, e-Sigorta Komisyon Gider Belgesi, e-Dekont, kamu faturası, SGK, HKS, ihracat, yatırım teşvik, ilaç/tıbbi cihaz, İDİS, enerji (şarj) Amaç: Logo / Paraşüt / Robom muadili bir fatura kesme portalinin mevzuat ve teknik kural motorunu kurmak


Bu rapor nasıl üretildi — ve neden diğerlerinden farklı

Bu rapor internet aramasıyla değil, GİB'in kendi dosyaları indirilip makine düzeyinde okunarak hazırlandı.

Kaynak korpusu (31.08.2026'da ebelge.gib.gov.tr'den indirildi):

KaynakSürüm / tarihNeden kritik
e-FaturaPaketi (29).zipschematron/24.08.2026GİB'in canlı sistemde fiilen çalıştırdığı doğrulama kuralları. UBL-TR_Codelist.xml, UBL-TR_Common_Schematron.xml, UBL-TR_Main_Schematron.xml
earsiv_paket_v1.1_8.zip11.08.2026e-Arşiv XSD + schematron
UBLTR_1.2.1_Kilavuzlar.zipUBL-TR Kod Listeleri V1.4327.07.2026Kodların Türkçe açıklamaları
UBLTR_1.2.1_Paketi.zip, UBL-TR1.2.1_Paketi.zip27.07.2026 / 16.03.2026Örnek XML'ler, XSLT'ler, XSD'ler
509 SN VUK GT — dipnotlu konsolide metingüncelDipnotlar "hangi tebliğ neyi ne zaman değiştirdi"yi gösterir
573 ve 589 SN VUK GT tam metinleri12.11.2024 / 31.12.2025Son iki değişiklik tebliği
40+ GİB teknik kılavuzuçeşitlie-İrsaliye V1.2, e-Arşiv V1.18, İptal/İtiraz V1.2, Özel Entegrasyon v1.14 (29.06.2026), Kamu v1.5, SGK, Gümrük, YTB V1.2, İlaç/Tıbbi Cihaz V1.2, İDİS V1.0, Şarj V1.0, Karekod V1.2, UserList V1.0 (02.04.2026) vb.

Buna ek olarak kullanıcının elindeki 13 XSLT görüntüleme şablonu, RAR paketlerinden çıkan XSD/örnek XML'ler (e-Gider Pusulası, e-Döviz, e-Sigorta ×2), e-Defter kılavuzu ve web üzerinden KDV/tevkifat mevzuatı analize dahil edildi. Toplam 70+ dosya / ~3 MB birincil metin. Toplam 481 bulgu üretildi. Denetim düzeyi bölümden bölüme farklıdır — bu rapordaki her satır aynı güvende değildir:

KatmanKapsamDenetimGüven
A — Makine-okunurKod listeleri, senaryo×tip matrisi, schematron assert'leriGİB'in kendi XML dosyasından birebir kopya; kaynak-dosyalar/UBL-TR_Codelist.xml ile karşılaştırılabilirEn yüksek
B — Tebliğ metniEşikler, zorunluluklar, tarihler (Bölüm 1-6)Çıkarım ajanı + ayrı hakem ajanı kaynağa geri dönüp denetledi (285 bulgu)Yüksek
C — Tek aşamalıBölüm 7-8-9: vergi hesaplama, XSLT, e-Defter, kalan mevzuat (196 bulgu)Oturum limiti nedeniyle ayrı hakem turu çalışmadı; doğrulama sentez adımına gömüldüOrta — koda gömmeden önce teyit edin
D — Üçüncü parti[TEK KAYNAK] etiketli maddelerBirincil kaynağa erişilemedi (RG taranmış görüntü, mevzuat.gov.tr anti-bot vb.)Düşük

Ayrıca 850 KB'lık bu metnin tamamı satır satır insan gözüyle okunmamıştır; yapısal doğrulama ve örneklem kontrolü yapılmıştır.

Güven etiketleri

EtiketAnlamı
(etiketsiz)Kaynaktan birebir alıntıyla doğrulandı
DOĞRULANAMADIKorpusta karşılığı bulunamadı — GİB'e sorulmalı veya kılavuzdan teyit edilmeli
ÇELİŞKİKılavuz ile schematron farklı şey söylüyor. Bu raporda her zaman schematron esas alınmıştır — canlı sistemde çalışan odur

Uyarılar

  1. Bu rapor mali müşavirlik veya hukuki görüş değildir. Mevzuat yorumu gerektiren kararlarda YMM/SMMM görüşü alın.
  2. 14.09.2026 kritik tarihtir. 27.07.2026 tarihli kod listesi ve paket güncellemeleri bu tarihte devreye girer. Bu rapordaki kod listeleri o güncellemeyi zaten içerir.
  3. Eşikler ve kod listeleri koda gömülmemelidir. Son 9 ayda ENERJI, IDIS, YATIRIMTESVIK senaryoları ve 555 kodu eklendi. Bunları veritabanı/konfigürasyon olarak tutun ve GİB paketi güncellendiğinde yeniden üretilebilir yapın.

Yönetici Özeti — En Kritik 15 Bulgu

#BulguEtki
1GİB'in kendi yardımcı dokümanları bayat. 509 Çok Sorulan Sorular, Geçiş Takvimi Tablosu ve Zorunluluk Karşılaştırma Tablosu hâlâ 5 Milyon TL ve 30 Bin / 5 Bin TL yazıyor. Bağlayıcı olan konsolide 509 metnidir.İnternetteki yanlış bilginin ana kaynağı bu tablolardır
2e-Arşiv'de tutar sınırı 1/1/2026 itibarıyla KALKTI. Artık "tutarına bakılmaksızın". Tek istisna: basit usul ve işletme hesabı esasına göre defter tutanlarda 3.000 TL sınırı 31/12/2026'ya kadar sürüyor, 1/1/2027'de o da kalkıyor (589 SN GT).Eski 30.000/5.000 TL mantığı tamamen geçersiz
3e-Fatura ciro haddi: 2018-2020 → 5M ₺, 2021 → 4M ₺, 2022 ve müteakip → 3M ₺. İnternet satışı yapanlarda 2022+ için 500 Bin ₺.Kural motorunun temeli
4Güncel kod listesi V1.43 (27.07.2026). V1.26 ve V1.31 eskidir. Güncel e-Fatura paketi e-FaturaPaketi (29).zip (24.08.2026) — sitedeki e-FaturaPaketi.zip bir sürüm geridir.Yanlış paketle kodlarsanız 14.09.2026'da patlar
5ProfileID tek liste değil, DÖRT ayrı listedir: e-Fatura (11 değer), e-Arşiv (1), e-İrsaliye (3), görüntüleme (12). Validatör belge kanalına göre $type set etmeli.Yanlış liste = yanlış ret
6STDKODFATURA tuzağı: V1.43 kılavuzunda tanımlı, UBL-TR_Codelist.xml'de yok → schematron reddeder.Kılavuza güvenip kodlamayın
7GİB'in kendi örnek XML'i kendi kuralından geçmiyor. Temel Fatura Senaryosu V0.2'deki GIB20090000000001 17 karakter; InvoiceIDCheck tam 16 dayatıyor.Bu örneği şablon alan portal 1150 hatası alır
8555 "KDV Oran Kontrolüne Tabi Olmayan Satışlar" ertelendi. 16.03.2026'da duyuruldu, 27.03.2026'da ikinci bir duyuruya kadar ertelendi. Kod pakette duruyor ama kontrol aktif değil.16.03 duyurusuna göre kod yazan yanılır
9İkincil belgelerden genel zorunluluğu olan tek belge e-SMM. e-MM ve e-Bilet dar gruplar için koşullu zorunlu. e-Gider Pusulası, e-Adisyon, e-Döviz, e-Sigorta ×2 ve e-Dekont ihtiyaridir.Yaygın "hepsi zorunlu" sanısı yanlış
10e-İrsaliye Yanıtı'nda KABUL/RED/KISMİ KABUL kod alanı YOKTUR. Semantik yalnızca miktar alanlarıyla (ReceivedQuantity/ShortQuantity/RejectedQuantity) ifade edilir. ResponseCode e-Fatura Uygulama Yanıtı'na aittir.En sık yapılan tasarım hatası
11e-MM'de 5.11.2026 son tarihli yeni zorunluluk: ıslak imza yerine SMS kodu + telefon + operatör bilgisi belgeye yazılacak (22.05.2026 duyurusu).Somut geliştirme kalemi, takvimli
12Ticari faturada "düzeltme" yoktur. Reddedilen fatura değiştirilmeksizin saklanır, yerine yeni fatura kesilir. RED'e RED gönderilemez; iade faturasına KABUL/RED verilemez.Durum makinesi bu terminal durumları modellemeli
13Tevkifatta tarih kontrolünü GİB yapmıyor, siz yapacaksınız. Schematron kod+oran çiftini doğruluyor ama tarih koşulu yok — 601'i bugün eski %30 oranıyla göndersen geçer. Oran geçiş tarihlerini portal zorlamak zorunda.Sessiz vergi hatası riski
14KDV geçişi: %18→%20 ve %8→%10, 7346 sayılı Cumhurbaşkanı Kararı (RG 07.07.2023-32241), yürürlük 10.07.2023. Oran, fatura tarihine değil vergiyi doğuran olay tarihine göre seçilir.Geriye dönük fatura için şart
15Elinizdeki "GİB varsayılan" XSLT'ler aslında GİB'in değil — Foriba/Sovos türevi (dosyada ©2026 Foriba notu ve qr.sovostr.com çağrısı var).Referans sandığınız şey üçüncü parti

BÖLÜM 1 — Senaryolar, Fatura Tipleri ve Kod Listeleri

Senaryolar, Fatura Tipleri ve Geçerlilik Matrisi

Bu bölümün tamamı 24.08.2026 tarihli GİB e-Fatura paketindeki UBL-TR_Codelist.xml, UBL-TR_Common_Schematron.xml, UBL-TR_Main_Schematron.xml dosyaları ile 27.07.2026 tarihli UBL-TR Kod Listeleri V1.43 kılavuzundan türetilmiştir. Verilen tüm kod listeleri eksiksizdir; hata mesajları schematron'dan birebir alıntıdır.

Doğrulama kanalı ($type) — matrisi okumadan önce

Senaryo ve fatura tipi kurallarının hangisinin devreye gireceği, schematron'un $type değişkenine bağlıdır. Bu, portal validatörünün belge kanalına göre set etmesi gereken tek parametredir.

$typeKullanılan ProfileID listesiInvoiceTypeCodeCheck assert-3 (ENERJI ⇔ SARJ/SARJANLIK)
efatura (veya boş / tanımsız)ProfileIDType (11 değer)AKTİF
earchiveProfileIDTypeEarchive (1 değer)Devre dışı (vacuous geçer)
goruntulemeProfileIDTypeGoruntuleme (12 değer)Devre dışı (vacuous geçer)

UBL-TR_Main_Schematron.xml satır 17'de <let name="type" value="efatura"/> sabittir. Yani korpustaki ana schematron yalnızca e-Fatura doğrular; e-Arşiv ve görüntüleme için aynı Common_Schematron'u farklı $type ile include eden ayrı main dosyaları gerekir.


1. ProfileID (Senaryo) — tam liste ve belge türü geçerliliği

UBL-TR_Codelist.xml içinde dört ayrı ProfileID listesi tanımlıdır (satır 5-8):

<sch:let name="ProfileIDType" value="',TICARIFATURA,TEMELFATURA,YOLCUBERABERFATURA,IHRACAT,OZELFATURA,KAMU,HKS,ENERJI,ILAC_TIBBICIHAZ,YATIRIMTESVIK,IDIS,'"/>
<sch:let name="ProfileIDTypeEarchive" value="',EARSIVFATURA,'"/>
<sch:let name="ProfileIDTypeDespatchAdvice" value="',TEMELIRSALIYE,HKSIRSALIYE,IDISIRSALIYE,'"/>
<sch:let name="ProfileIDTypeGoruntuleme" value="',TICARIFATURA,TEMELFATURA,YOLCUBERABERFATURA,IHRACAT,EARSIVFATURA,OZELFATURA,KAMU,HKS,ENERJI,ILAC_TIBBICIHAZ,YATIRIMTESVIK,IDIS,'"/>
ProfileIDV1.43 açıklaması (birebir)e-Faturae-Arşive-İrsaliyeGörüntülemeNe zaman kullanılır
TEMELFATURA"Temel Fatura sürecini belirtir."OKOKSadece düzenleme + gönderme. Alıcı uygulama yanıtı (KABUL/RED) düzenleyemez. TEMELFATURA ve KAMU, e-Fatura tarafında IADE tipine izin verilen sektörel olmayan iki senaryodur.
TICARIFATURA"Ticari Fatura sürecini belirtir."OKOKAlıcının uygulama yanıtı (KABUL/RED/IADE) düzenlemesine imkân veren senaryo.
YOLCUBERABERFATURA"Yolcu Beraber Eşya Fatura sürecini belirtir."OKOKTax-free satışlar. Alıcı PARTYTYPE=TAXFREE, aracı kurum zorunlu. Zarf alıcısı urn:mail:yolcuberaberpk@gtb.gov.tr.
IHRACAT"İhracat Fatura sürecini belirtir."OKOKİhracat faturaları. Alıcı PARTYTYPE=EXPORT, zarf alıcısı urn:mail:ihracatpk@gtb.gov.tr, GTB onay süreci.
OZELFATURA"Özel Fatura sürecini belirtir."OKOKBavul ticareti / özel fatura. Zarf alıcısı urn:mail:ihracatpk@gtb.gov.tr olabilir.
KAMU"Kamu Fatura sürecini belirtir."OKOKKamu kurumlarına düzenlenen faturalar; geçerli TR IBAN zorunlu.
HKS"Hal Kayıt Sistemi Fatura sürecini belirtir."OKOKHal Kayıt Sistemi kapsamındaki satışlar; her satırda 19 karakter KUNYENO.
ENERJI"Elektrikli Araçlar için düzenlenecek faturayı belirtir."OKOKElektrikli araç şarj hizmetleri; sadece SARJ veya SARJANLIK tipi.
ILAC_TIBBICIHAZ"İlaç ve Tıbbi Cihaz için düzenlenecek faturayı belirtir."OKOKİTS/ÜTS bildirimli ilaç ve tıbbi cihaz ticareti.
YATIRIMTESVIK"Yatırım Teşvik için düzenlenecek faturayı belirtir."OKOKYatırım Teşvik Belgesi kapsamı; 6 haneli YTBNO zorunlu.
IDIS"İnşaat Demiri İzleme Sistemleri için düzenlenecek faturayı belirtir."OKOKİnşaat demiri teslimleri; SEVKIYATNO + ETIKETNO zorunlu.
EARSIVFATURA"e-Arşiv Fatura sürecini belirtir."OKOKe-Arşiv Fatura ($type='earchive' ile doğrulanır).
TEMELIRSALIYE"İrsaliye sürecini belirtir."OKe-İrsaliye (DespatchAdvice) temel senaryosu.
HKSIRSALIYE"Hal Kayıt Sistemi İrsaliye sürecini belirtir."OKHKS kapsamında e-İrsaliye; her DespatchLine'da 19 karakter KUNYENO.
IDISIRSALIYE"İnşaat Demiri İzleme Sistemleri için düzenlenecek irsaliye sürecini belirtir."OKIDIS kapsamında e-İrsaliye.
STDKODFATURA"Standart Kod Fatura sürecini belirtir."V1.43'te tanımlı, Codelist XML'de yok → schematron reddeder. Bkz. Doğrulanamayanlar.

Ek olarak: ApplicationResponse (uygulama/sistem yanıtı) belgelerinde S_APR yanıt kodu için ProfileID sabit olarak UBL-TR-PROFILE-1 olmalıdır; bu değer yukarıdaki dört listede yer almaz, ayrı kuralla (ApplicationResponseProfileIDCheck) doğrulanır.

Senaryo doğrulayan kurallar:

KuralBağlamTürkçe hata mesajı
ProfileIDCheck assert-1inv:Invoice, $type=efatura/boş"Geçersiz cbc:ProfileID elemanı değeri : '…'. Geçerli cbc:ProfileID değerleri için ProfileIDType listesine bakınız."
ProfileIDCheck assert-2$type=earchive"Geçersiz cbc:ProfileID elemanı değeri : '…'. Geçerli cbc:ProfileID değerleri için ProfileIDTypeEarchive listesine bakınız."
ProfileIDCheck assert-3$type=goruntuleme"Geçersiz cbc:ProfileID elemanı değeri : '…'. Geçerli cbc:ProfileID değerleri için ProfileIDTypeGoruntuleme listesine bakınız."
ProfileIDCheck assert-4inv:Invoice"Invoice alanın xsi:schemaLocation özeliği 'UBL-Invoice-2.1.xsd' olmalıdır"
ProfileIDTypeDespatchAdvicedesp:DespatchAdvice"Geçersiz cbc:ProfileID elemanı değeri : '…'. Geçerli cbc:ProfileID değerleri için ProfileIDTypeDespatchAdvice listesine bakınız."

recp:ReceiptAdvice (İrsaliye Yanıtı) belgesinde ProfileID kontrolü yoktur; bu context'e yalnızca ReceiptAdviceTypeCodeCheck, ReceiptAdviceIDCheck ve CustomizationIDCheck bağlıdır.


2. InvoiceTypeCode (Fatura Tipi) — tam liste (20 değer)

UBL-TR_Codelist.xml satır 10:

<sch:let name="InvoiceTypeCodeList" value="',SATIS,IADE,TEVKIFAT,TEVKIFATIADE,ISTISNA,OZELMATRAH,IHRACKAYITLI,SGK,KOMISYONCU,HKSSATIS,HKSKOMISYONCU,KONAKLAMAVERGISI,SARJ,SARJANLIK,TEKNOLOJIDESTEK,YTBSATIS,YTBIADE,YTBISTISNA,YTBTEVKIFAT,YTBTEVKIFATIADE,'"/>
#KodV1.43 açıklaması
1SATISHer türlü mal ve hizmet satışı ile ilgili düzenlenen faturalar
2IADEBir malın iadesi amacıyla alıcı tarafından düzenlenen faturalar
3TEVKIFATTevkifat içeren faturalar
4TEVKIFATIADETevkifat içeren faturaların iadesi
5ISTISNAVergi istisnası içeren faturalar
6OZELMATRAHÖzel matrah faturaları
7IHRACKAYITLIİhraç kayıtlı satışlar ile DİİB (Dahilde İşleme İzin Belgesi) ve geçici kabul rejimi kapsamındaki satışlar için düzenlenen faturalar
8SGKSosyal Güvenlik Kurumu kapsamındaki satışlar için düzenlenen faturalar
9KOMISYONCUHal Kayıt sistemi kapsamındaki satışlar için düzenlenen faturalar
10HKSSATISV1.43 metninde ayrıca açıklanmamıştır (bkz. Doğrulanamayanlar)
11HKSKOMISYONCUV1.43 metninde ayrıca açıklanmamıştır (bkz. Doğrulanamayanlar)
12KONAKLAMAVERGISIKonaklama kapsamındaki satışlar için düzenlenen faturalar
13SARJElektrikli araçlar şarj istasyonunda haftalık olarak düzenlecek faturalar
14SARJANLIKElektrikli araçlar şarj istasyonunda anlık olarak düzenlecek faturalar
15TEKNOLOJIDESTEKTeknolojik cihaz desteği kapsamında telefon, bilgisayar/tablet satışlarında düzenlenecek e-Arşiv Faturalar
16YTBSATISYatırım Teşvik kapsamında düzenlenecek e-Arşiv satış faturaları
17YTBIADEYatırım Teşvik kapsamında düzenlenecek e-Arşiv iade faturaları
18YTBISTISNAYatırım Teşvik kapsamında düzenlenecek e-Arşiv istisna faturaları
19YTBTEVKIFATYatırım Teşvik kapsamında düzenlenecek e-Arşiv Tevkifat faturaları
20YTBTEVKIFATIADEYatırım Teşvik kapsamında düzenlenecek e-Arşiv Tevkifat İade faturaları

İsimlendirme tuzağı: SARJ = HAFTALIK, SARJANLIK = ANLIK. Sezgiye ters olduğu için kod üretiminde en sık yapılan hatadır.

e-Arşiv'e özgü ek grup (UBL-TR_Codelist.xml satır 68) — e-Arşiv'de ProfileID daima EARSIVFATURA olduğundan, yatırım teşvik faturaları senaryo yerine tip üzerinden yakalanır:

<sch:let name="YatirimTesvikEArsivInvoiceTypeCodeList" value="',YTBSATIS,YTBIADE,YTBISTISNA,YTBTEVKIFAT,YTBTEVKIFATIADE,'"/>
e-Fatura (ProfileID = YATIRIMTESVIK)e-Arşiv (ProfileID = EARSIVFATURA)
SATISYTBSATIS
ISTISNAYTBISTISNA
IADEYTBIADE
TEVKIFATYTBTEVKIFAT
TEVKIFATIADEYTBTEVKIFATIADE

3. Senaryo × Fatura Tipi geçerlilik matrisi

Lejant

  • OK — schematron ve kılavuz düzeyinde serbest; ek zorunlu alan yok
  • KOSULLU — geçerli, ancak senaryo/tip nedeniyle ek zorunlu alan(lar) devreye girer
  • KOSULLU* — schematron engellemez, ancak Yatırım Teşvik Teknik Kılavuzu V1.2 bu tipleri e-Arşiv'e özgü kılar; portal kendi katmanında bloklamalıdır
  • YASAK — schematron assert hatası verir

Satır = ProfileID (11 e-Fatura senaryosu + EARSIVFATURA), sütun = InvoiceTypeCode (20 tip). Toplam 240 hücre: 153 geçerli (OK + KOSULLU + KOSULLU*), 87 YASAK.

Tablo A — Genel fatura tipleri

Senaryo \ TipSATISIADETEVKIFATTEVKIFATIADEISTISNAOZELMATRAHIHRACKAYITLISGK
TEMELFATURAOKKOSULLUOKKOSULLUOKOKKOSULLUOK
TICARIFATURAOKYASAKOKKOSULLUOKOKKOSULLUOK
YOLCUBERABERFATURAKOSULLUYASAKKOSULLUKOSULLUKOSULLUKOSULLUKOSULLUKOSULLU
IHRACATKOSULLUYASAKKOSULLUKOSULLUKOSULLUKOSULLUKOSULLUKOSULLU
OZELFATURAOKYASAKOKKOSULLUOKOKKOSULLUOK
KAMUKOSULLUKOSULLUKOSULLUKOSULLUKOSULLUKOSULLUKOSULLUKOSULLU
HKSKOSULLUYASAKKOSULLUKOSULLUKOSULLUKOSULLUKOSULLUKOSULLU
ENERJIYASAKYASAKYASAKYASAKYASAKYASAKYASAKYASAK
ILAC_TIBBICIHAZKOSULLUKOSULLUKOSULLUKOSULLUKOSULLUYASAKKOSULLUYASAK
YATIRIMTESVIKKOSULLUKOSULLUKOSULLUKOSULLUKOSULLUYASAKYASAKYASAK
IDISKOSULLUKOSULLUKOSULLUKOSULLUKOSULLUYASAKKOSULLUYASAK
EARSIVFATURAOKKOSULLUOKKOSULLUOKOKKOSULLUOK

Tablo B — Özel / sektörel fatura tipleri

Senaryo \ TipKOMISYONCUHKSSATISHKSKOMISYONCUKONAKLAMAVERGISISARJSARJANLIKTEKNOLOJIDESTEKYTBSATISYTBIADEYTBISTISNAYTBTEVKIFATYTBTEVKIFATIADE
TEMELFATURAOKOKOKOKYASAKYASAKYASAKKOSULLU*KOSULLU*KOSULLU*KOSULLU*KOSULLU*
TICARIFATURAOKOKOKOKYASAKYASAKYASAKKOSULLU*KOSULLU*KOSULLU*KOSULLU*KOSULLU*
YOLCUBERABERFATURAKOSULLUKOSULLUKOSULLUKOSULLUYASAKYASAKYASAKKOSULLU*KOSULLU*KOSULLU*KOSULLU*KOSULLU*
IHRACATKOSULLUKOSULLUKOSULLUKOSULLUYASAKYASAKYASAKKOSULLU*KOSULLU*KOSULLU*KOSULLU*KOSULLU*
OZELFATURAOKOKOKOKYASAKYASAKYASAKKOSULLU*KOSULLU*KOSULLU*KOSULLU*KOSULLU*
KAMUKOSULLUKOSULLUKOSULLUKOSULLUYASAKYASAKYASAKKOSULLU*KOSULLU*KOSULLU*KOSULLU*KOSULLU*
HKSKOSULLUKOSULLUKOSULLUKOSULLUYASAKYASAKYASAKKOSULLU*KOSULLU*KOSULLU*KOSULLU*KOSULLU*
ENERJIYASAKYASAKYASAKYASAKKOSULLUKOSULLUYASAKYASAKYASAKYASAKYASAKYASAK
ILAC_TIBBICIHAZYASAKYASAKYASAKYASAKYASAKYASAKYASAKYASAKYASAKYASAKYASAKYASAK
YATIRIMTESVIKYASAKYASAKYASAKYASAKYASAKYASAKYASAKYASAKYASAKYASAKYASAKYASAK
IDISYASAKYASAKYASAKYASAKYASAKYASAKYASAKYASAKYASAKYASAKYASAKYASAK
EARSIVFATURAOKOKOKOKKOSULLUKOSULLUKOSULLUKOSULLUKOSULLUKOSULLUKOSULLUKOSULLU

3.1 YASAK hücrelerinin dayanağı

#Etkilenen hücrelerAssert adı (kural / sıra)Kaynak satırTürkçe hata mesajı (birebir)
Y1IADE sütunu × TICARIFATURA, YOLCUBERABERFATURA, IHRACAT, OZELFATURA, HKS, ENERJI (6 hücre)InvoiceTypeCodeCheck assert-2Common 176"Fatura tipi IADE iken fatura profili sadece TEMELFATURA , EARSIVFATURA, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS veya KAMU olabilir"
Y2ENERJI satırı × SARJ ve SARJANLIK dışındaki 18 tipInvoiceTypeCodeCheck assert-3Common 177"Geçersiz cbc:ProfileID ve cbc:InvoiceTypeCode elemanı değeri : '\<ProfileID\> ve \<InvoiceTypeCode\>'. cbc:ProfileID değeri ENERJI olduğu durumda cbc:InvoiceTypeCode değeri SARJ veya SARJANLIK olmalıdır."
Y3SARJ / SARJANLIK sütunları × ENERJI ve EARSIVFATURA dışındaki 10 e-Fatura senaryosu (20 hücre)InvoiceTypeCodeCheck assert-3 (aynı çift koşullunun ters yönü)Common 177(Y2 ile aynı mesaj)
Y4TEKNOLOJIDESTEK sütunu × EARSIVFATURA dışındaki 11 senaryoInvoiceTypeCodeCheck assert-4Common 178"Geçersiz cbc:ProfileID ve cbc:InvoiceTypeCode elemanı değeri : '\<ProfileID\> ve \<InvoiceTypeCode\>'. cbc:InvoiceTypeCode değeri \<InvoiceTypeCode\> olduğu durumda cbc:ProfileID değeri EARSIVFATURA olmalıdır."
Y5ILAC_TIBBICIHAZ satırı × OZELMATRAH, SGK, KOMISYONCU, HKSSATIS, HKSKOMISYONCU, KONAKLAMAVERGISI, SARJ, SARJANLIK, TEKNOLOJIDESTEK, YTBSATIS, YTBIADE, YTBISTISNA, YTBTEVKIFAT, YTBTEVKIFATIADE (14 hücre)IlacTibbiCihazInvoiceTypeCodeCheckCommon 365-367"ILAC_TIBBICIHAZ Fatura senaryosunda fatura tipi “SATIS”, “ISTISNA” “TEVKIFAT”, “TEVKIFATIADE”, “IADE” ve “IHRACKAYITLI” tiplerinden biri olmalıdır."
Y6YATIRIMTESVIK satırı × Y5'teki 14 tip + IHRACKAYITLI (15 hücre)YatirimTesvikInvoiceTypeCodeCheckCommon 369-371"Yatırım Teşvik Faturasında fatura tipi “SATIS”, “ISTISNA” , “IADE” , \"TEVKIFAT\" ve \"TEVKIFATIADE\" tiplerinden biri olmalıdır."
Y7IDIS satırı × Y5'teki 14 tipIdisInvoiceTypeCodeCheckCommon 373-375"IDIS fatura senaryosunda fatura tipi SATIS, ISTISNA, IADE, TEVKIFAT, TEVKIFATIADE ve IHRACKAYITLI tiplerinden biri olmalıdır."
Y8Listede olmayan herhangi bir tip (matris dışı)InvoiceTypeCodeCheck assert-1Common 175"Geçersiz cbc:InvoiceTypeCode elemanı değeri : '…'. Geçerli cbc:InvoiceTypeCode değerleri için kod listesine bakınız."

Y2/Y3'ün kaynağı tek bir çift koşulludur: $type ∈ {efatura, ''} iken ProfileID = 'ENERJI'InvoiceTypeCode ∈ {SARJ, SARJANLIK}. $type = 'earchive' veya 'goruntuleme' iken assert vacuous geçer — EARSIVFATURA + SARJ/SARJANLIK bu nedenle geçerlidir.

Sektörel satırlarda birden fazla assert aynı hücreyi reddeder (örn. ILAC_TIBBICIHAZ × SARJ hem Y3 hem Y5'e takılır); portal ilk hatayı vermekle yetinmemeli, tüm ihlalleri raporlamalıdır.

3.2 KOSULLU hücrelerinin dayanağı

#Etkilenen hücrelerAssert adıKaynak satırTürkçe hata mesajı (birebir)
K1IADE, TEVKIFATIADE, YTBIADE, YTBTEVKIFATIADE tiplerinin tüm geçerli hücreleriIADEInvioceCheckCommon 361-363"IADE, TEVKIFATIADE ve YTBIADE fatura tiplerinde iade bilgilerini içeren cbc:DocumentTypeCode değeri IADE ve 16 haneli ID değeri olan iade fatura sayısı kadar cac:BillingReference/cac:InvoiceDocumentReference elemanı içermelidir."
K2KAMU satırının tamamıKamuFaturaCheckCommon 535-537"inv:Invoice/cbc:ProfileID elemanının değeri 'KAMU' iken cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID alanına geçerli bir Türkiye IBAN numarası yazılmalıdır"
K3HKS satırının tamamıHKSInvioceCheckCommon 357-359"ProfileID='HKS' iken, her cac:InvoiceLine elemanı 19 karakterli 'KUNYENO' içermelidir."
K4IHRACAT satırının tamamıIhracatYolcuBeraberCheck assert-4Common 349"inv:Invoice elemanı inv:Invoice/cbc:ProfileID elemanının değeri 'IHRACAT' iken, schemeID özelliği PARTYTYPE olan ve değeri EXPORT olan cbc:ID elemanı içeren bir cac:BuyerCustomerParty elemanı içermelidir."
K5IHRACAT satırının tamamıPriceAmountCheckCommon 416-419"cbc:ProfileID elemanının değeri IHRACAT iken, cac:InvoiceLine elemanı geçerli ve boş değer içermeyen cac:Price/cbc:PriceAmount elemanı içermelidir." / "… cbc:LineExtensionAmount elemanı içermelidir."
K6IHRACAT satırının tamamıPackageCheckCommon 447-449"cbc:ProfileID elemanının değeri IHRACAT iken, cac:InvoiceLine elemanı geçerli ve boş değer içermeyen cbc:InvoicedQuantity elemanı içermelidir."
K7IHRACAT satırının tamamıLineDeliveryCheck (4 assert)Common 429-437"cbc:ProfileID elemanının değeri IHRACAT iken, cac:InvoiceLine/cac:Delivery/cac:DeliveryTerms elamanı schemeID niteliği değeri 'INCOTERMS' olan en az bir cbc:ID elemanı içermiyorsa, Invoice/cac:Delivery/cac:DeliveryTerms elamanı … içermelidir." · "… Invoice ve cac:InvoiceLine elemanlarından en az bir tanesi cac:Delivery/cac:DeliveryAddress elemanı içermelidir" · "… cac:InvoiceLine elemanı Delivery/cac:Shipment/cac:ShipmentStage/cbc:TransportModeCode elamanı içermiyorsa Invoice elemanı … içermelidir" · "… cac:InvoiceLine elemanı geçerli ve boş değer içermeyen ccac:Delivery/cac:Shipment/cac:GoodsItem/cbc:RequiredCustomsID elemanı içermelidir."
K8IHRACAT satırının tamamıPartyVDCheckCommon 439-441"cbc:ProfileID elemanının değeri IHRACAT iken, cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cac:TaxScheme/cbc:Name elamanı dolu olmalıdır."
K9IHRACAT satırının tamamıOfficelTitleCheckCommon 450-452"cbc:ProfileID elemanının değeri IHRACAT iken, cac:BuyerCustomerParty/cac:Party/cac:PartyLegalEntity/cbc:RegistrationName elamanı dolu olmalıdır."
K10YOLCUBERABERFATURA satırının tamamıIhracatYolcuBeraberCheck assert-3Common 348"inv:Invoice/cbc:ProfileID elemanının değeri 'YOLCUBERABERFATURA' iken cbc:ID elemanının değeri TAXFREE ve schemeID özelliği PARTYTYPE olan bir cac:BuyerCustomerParty içermelidir."
K11YOLCUBERABERFATURA satırının tamamıTaxRepresentativePartyCheck (2 assert)Common 352-355"cbc:ProfileID elemanının değeri YOLCUBERABERFATURA iken, cac:TaxRepresentativeParty/cac:PartyIdentification elemanı schemeID niteliği değeri 'ARACIKURUMVKN' olan ve değeri geçerli bir vkn/tckn olan bir tane cbc:ID elemanı içermelidir." · "… 'ARACIKURUMETIKET' olan ve değeri boş olmayan bir tane cbc:ID elemanı içermelidir."
K12YOLCUBERABERFATURA satırının tamamıTaxFreeNationalityIDCheckCommon 389-391"Invoice/BuyerCustomerParty/Party/PartyIdentification/cbc:ID elemanının değeri TAXFREE ve schemeID özelliği PARTYTYPE iken cac:Party/cac:Person/cbc:NationalityID elamanı dolu ve geçerli bir değer olmalıdır. Geçerli değerler için kod listesine bakınız."
K13YOLCUBERABERFATURA satırının tamamıPassportIDCheckCommon 393-395"Invoice/BuyerCustomerParty/Party/PartyIdentification/cbc:ID elemanının değeri TAXFREE ve schemeID özelliği PARTYTYPE iken cac:Party/cac:Person/cac:IdentityDocumentReference elamanı geçerli ve boş değer içermeyen bir cbc:ID elemanı içermelidir."
K14ILAC_TIBBICIHAZ satırının 6 geçerli hücresiIlacTibbiCihazAdditionalItemIdentificationCheckCommon 454-456"cbc:ProfileID elemanının değeri ILAC_TIBBICIHAZ iken, satır bazında geçerli kod listesinde yer alan en az 1 tane AdditionalItemIdentification elementi içermelidir"
K15YATIRIMTESVIK satırının 5 geçerli hücresi + EARSIVFATURA × YTB* 5 hücresiYatirimTesvikContractDocumentReferenceIDCheckCommon 377-379"Yatırım Teşvik Faturasında 6 Haneli Yatırım Teşvik Numarası olmalıdır."
K16K15 ile aynı hücrelerYatirimTesvikCommodityClassificationCheck, YatirimTesvikItemClassificationCodeCheck, YatirimTesvikItemInstanceCheck, YatirimTesvikKDVCheck, YatirimTesvikLineKDVCheckCommon 467-473, 491-501Harcama tipi (01/02/03/04) ve KDV kuralları — bkz. §4
K17IDIS satırının 6 geçerli hücresiIdisSevkiyatNoCheckCommon 443-445"Sevkiyat Numarası değeri SE-0000000 veya ES-0000000 formatında girilmelidir."
K18IDIS satırının 6 geçerli hücresiIdisEtiketNoCheckCommon 504-506"İlk iki hanesi karakter ve sonraki 7 hanesi rakam olan 9 karakterli en az bir Etiket Numarası bulunmalıdır."
K19ENERJI × SARJ, ENERJI × SARJANLIK, EARSIVFATURA × SARJ/SARJANLIKEnerjiInvoicePeriodCheckCommon 381-383"Geçersiz cac:InvoicePeriod değeri: SARJ veya SARJANLIK faturalarında en az bir cac:InvoicePeriod elementi bulunmalı; altında cbc:StartDate, cbc:StartTime, cbc:EndDate ve cbc:EndTime alanları dolu olmalıdır. Tarih alanları yyyy-MM-dd,saat alanları HH:mm:ss formatında girilmelidir."
K20SARJ hücreleriEnerjiESURaporIDCheckCommon 385-387"Geçersiz cac:AdditionalDocumentReference değeri: SARJ faturalarında en az bir cac:AdditionalDocumentReference elementi bulunmalı; bu element altında schemeID değeri ESURaporID olan geçerli GUID formatında bir cbc:ID ve geçerli yyyy-MM-dd formatında cbc:IssueDate bulunmalıdır."
K21SARJ ve SARJANLIK hücreleriEnerjiPartyIdentificationPlakaCheckCommon 288-290"SARJ veya SARJANLIK faturalarında inv:Invoice/cac:AccountingCustomerParty/cac:Party altında schemeID değeri PLAKA olan geçerli bir plaka değeri içeren 1 adet cac:PartyIdentification/cbc:ID bulunmalıdır."
K22SARJANLIK hücreleriEnerjiItemInstanceSerialIDCheckCommon 508-510"Geçersiz kalem seri numarası bilgisi: SARJANLIK faturalarında kalem altında cac:Item/cac:ItemInstance/cbc:SerialID bulunmalı ve boş olmamalıdır."
K23EARSIVFATURA × TEKNOLOJIDESTEKPartyIdentificationTEKNOLOJIDESTEKCheckCommon 261-263"TEKNOLOJIDESTEK fatura tipinde alıcı kimlik numarası TCKN olmalıdır."
K24EARSIVFATURA × TEKNOLOJIDESTEKTeknolojiDestekAdditionalItemIdentificationCheckCommon 458-460"TEKNOLOJIDESTEK fatura tipinde yer alan tüm kalemler TELEFON, TABLET_PC schemeID li cac:AdditionalItemIdentification bulunmalıdır."
K25IHRACKAYITLI hücreleri (yalnızca 702 muafiyet kodu kullanılırsa)TaxExemptionReasonCodeCheck assert-6Common 326"IHRACKAYITLI fatura tipinde 702 Muafiyet sebebi için GTİP ve Alıcı Satır Kodu bilgisi girilmelidir"
K26IHRACKAYITLI hücreleri (702 ile)IhracKayitliPartyIdentificationIDTypeCheckCommon 462-464"Geçersiz Ihraç Kayıtlı schemeID niteliği. Geçerli değerler için kod listesine bakınız.\""
K27*YTB* sütunları × EARSIVFATURA dışındaki 7 senaryo (35 hücre)Schematron kuralı YOK — yalnızca Yatırım Teşvik Teknik Kılavuzu V1.2(Kılavuz düzeyi kısıt; portal bloklamalıdır)

Özel VKN tetikleyicisi (matrisi daraltır): alıcı VKN'si 1460415308 (Gümrük ve Ticaret Bakanlığı BİDB) ise TaxFreeInvoiceCheck (Common 275-277) devreye girer — "1460415308 vergi Numaralı mükellefe (GÜMRÜK VE TİCARET BAKANLIĞI BİLGİ İŞLEMDAİRESİ BAŞKANLIĞI) yollanan fatura senaryosu 'YOLCUBERABERFATURA' veya IHRACAT olabilir". XPath fiilen YOLCUBERABERFATURA, IHRACAT, OZELFATURA, KAMU dördünü kabul eder; mesaj metni ikisini sayar.


4. Senaryo ve tip bazlı ek zorunlu alanlar

4.1 Senaryo bazlı

SenaryoKuralZorunlu alan(lar) ve format
IHRACATIhracatYolcuBeraberCheckcac:BuyerCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID = 'EXPORT', @schemeID='PARTYTYPE'
IHRACATPriceAmountCheckHer satırda cac:Price/cbc:PriceAmount ve cbc:LineExtensionAmount dolu
IHRACATPackageCheckHer satırda cbc:InvoicedQuantity dolu
IHRACATLineDeliveryCheck(a) satır veya fatura düzeyinde cac:Delivery/cac:DeliveryTerms/cbc:ID[@schemeID='INCOTERMS']; (b) satır veya fatura düzeyinde cac:Delivery/cac:DeliveryAddress; (c) satır veya fatura düzeyinde cac:Delivery/cac:Shipment/cac:ShipmentStage/cbc:TransportModeCode; (d) her satırda cac:Delivery/cac:Shipment/cac:GoodsItem/cbc:RequiredCustomsID (GTİP)
IHRACATPartyVDCheckcac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cac:TaxScheme/cbc:Name (vergi dairesi) dolu
IHRACATOfficelTitleCheckcac:BuyerCustomerParty/cac:Party/cac:PartyLegalEntity/cbc:RegistrationName dolu
YOLCUBERABERFATURAIhracatYolcuBeraberCheckcac:BuyerCustomerParty/…/cbc:ID = 'TAXFREE', @schemeID='PARTYTYPE'
YOLCUBERABERFATURATaxRepresentativePartyCheckcac:TaxRepresentativeParty/cac:PartyIdentification/cbc:ID[@schemeID='ARACIKURUMVKN'] — 10 veya 11 hane, tam 1 adet; [@schemeID='ARACIKURUMETIKET'] — boş değil, tam 1 adet
YOLCUBERABERFATURATaxFreeNationalityIDCheckcac:BuyerCustomerParty/cac:Party/cac:Person/cbc:NationalityID geçerli ülke kodu
YOLCUBERABERFATURAPassportIDCheckcac:BuyerCustomerParty/cac:Party/cac:Person/cac:IdentityDocumentReference/cbc:ID (pasaport) dolu
KAMUKamuFaturaCheckcac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID — regex ^TR\d{7}[A-Z0-9]{17}$
HKSHKSInvioceCheckHer cac:InvoiceLine içinde cac:Item/cac:AdditionalItemIdentification/cbc:ID[@schemeID='KUNYENO'], tam 19 karakter
ILAC_TIBBICIHAZIlacTibbiCihazAdditionalItemIdentificationCheckHer satırda en az 1 cac:Item/cac:AdditionalItemIdentification/cbc:ID@schemeID ∈ {ILAC, TIBBICIHAZ, DIGER}, değer boş değil
YATIRIMTESVIK (ve EARSIVFATURA + YTB*)YatirimTesvikContractDocumentReferenceIDCheckTam 1 adet cac:ContractDocumentReference; içinde cbc:ID[@schemeID='YTBNO'], tam 6 hane, yalnızca rakam. Kılavuz ayrıca cbc:IssueDate = YTB belge tarihi der.
YATIRIMTESVIK (ve EARSIVFATURA + YTB*)YatirimTesvikCommodityClassificationCheckHer satırda en az 1 cac:Item/cac:CommodityClassification/cbc:ItemClassificationCode
YATIRIMTESVIK (ve EARSIVFATURA + YTB*)YatirimTesvikItemClassificationCodeCheckKod $YatirimTesvikItemClassificationCodeList = ',01,02,03,04,' içinde olmalı
YATIRIMTESVIK (ve EARSIVFATURA + YTB*)YatirimTesvikItemInstanceCheckItemClassificationCode='01' ise cac:Item/cbc:ModelName + cac:ItemInstance/cbc:ProductTraceID + cac:ItemInstance/cbc:SerialID
YATIRIMTESVIK (ve EARSIVFATURA + YTB*)YatirimTesvikKDVCheck, YatirimTesvikLineKDVCheckIADE / TEVKIFATIADE / YTBIADE / YTBTEVKIFATIADE dışındaki tüm tiplerde 0015 kodlu TaxSubtotal için Percent > 0 ve TaxAmount > 0
YATIRIMTESVIK (ISTISNA / YTBISTISNA)YatirimTesvikItemClassificationCodeIstisnaCalculationSequenceNumericCheckcac:TaxSubtotal/cbc:CalculationSequenceNumeric = '-1' (0015 vergi kodu ile)
IDISIdisSevkiyatNoCheckcac:AccountingSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID[@schemeID='SEVKIYATNO']SE-####### veya ES-#######, toplam 10 karakter, 4.–10. haneler rakam
IDISIdisEtiketNoCheckHer satırda cac:Item/cac:AdditionalItemIdentification/cbc:ID[@schemeID='ETIKETNO'] — 9 karakter: ilk 2 harf + 7 rakam
HKSIRSALIYEDespatchAdviceHKSKunyeCheckHer cac:DespatchLine'da 19 karakter KUNYENO
IDISIRSALIYEDespatchIdisSevkiyatNoCheck, DespatchIdisEtiketNoCheckFatura tarafıyla aynı SEVKIYATNO / ETIKETNO kuralları

Yatırım Teşvik harcama tipi (ItemClassificationCode) zinciri — hem e-Fatura hem e-Arşiv için:

KodV1.43 açıklamasıISTISNA/YTBISTISNA'da kullanılacak istisna koduKDV kuralı (schematron)
01"Makine ve teçhizat teslimleri ile yazılım ve gayrimaddi hak satış ve kiralamaları"308IADE/TEVKIFATIADE/YTBIADE/YTBTEVKIFATIADE dışındaki her tipte KDV oranı ve tutarı > 0
02"İnşaat işlerine ilişkin mal teslimleri ve hizmet ifalarını belirtir."339Aynı
03"Arsa /Arazi Satışlarını belirtir."– (ISTISNA kullanılamaz)Aynı
04"Diğer harcamaları belirtir."– (ISTISNA kullanılamaz)Aynı

Paket içi çelişki: YatirimTesvikKDVCheck / YatirimTesvikLineKDVCheck KDV > 0 zorunluluğundan yalnızca dört iade tipini muaf tutar; ISTISNA ve YTBISTISNA muaf değildir. Oysa Yatırım Teşvik Teknik Kılavuzu V1.2, KDV tutarının "0" geçilmesi durumunda ISTISNA/YTBISTISNA tipiyle 308/339 kullanılmasını söyler. Bkz. Doğrulanamayanlar.

4.2 Fatura tipi bazlı

Fatura tipiKuralZorunlu alan(lar)
IADE / TEVKIFATIADE / YTBIADE / YTBTEVKIFATIADEIADEInvioceCheckEn az 1 cac:BillingReference/cac:InvoiceDocumentReference; hepsinin cbc:DocumentTypeCode değeri IADE veya İADE ve cbc:ID tam 16 karakter
SARJEnerjiInvoicePeriodCheck≥1 cac:InvoicePeriod; hepsinde cbc:StartDate, cbc:StartTime, cbc:EndDate, cbc:EndTime dolu (tarih yyyy-MM-dd ve ≥ 2005-01-01, saat HH:mm:ss)
SARJEnerjiESURaporIDCheck≥1 cac:AdditionalDocumentReference içinde cbc:ID[@schemeID='ESURaporID'] GUID formatında + cbc:IssueDate regex ^20\d{2}-\d{2}-\d{2}$
SARJ / SARJANLIKEnerjiPartyIdentificationPlakaCheckcac:AccountingCustomerParty/cac:Party altında tam 1 cac:PartyIdentification/cbc:ID[@schemeID='PLAKA'], boş değil, ≤ 50 karakter, regex ^[A-Z0-9_-]+$
SARJANLIKEnerjiItemInstanceSerialIDCheckHer satırda cac:Item/cac:ItemInstance/cbc:SerialID dolu
SARJANLIKEnerjiInvoicePeriodCheckInvoicePeriod (SARJ ile aynı kural, iki tipi de kapsar)
TEKNOLOJIDESTEKPartyIdentificationTEKNOLOJIDESTEKCheckAlıcı kimliği @schemeID='TCKN' (VKN kabul edilmez)
TEKNOLOJIDESTEKTeknolojiDestekAdditionalItemIdentificationCheckHer satırda cac:Item/cac:AdditionalItemIdentification/cbc:ID[@schemeID='TELEFON' or @schemeID='TABLET_PC']
IHRACKAYITLI + muafiyet kodu 702TaxExemptionReasonCodeCheck assert-6Her cac:InvoiceLine'da 12 haneli cbc:RequiredCustomsID (GTİP) ve 11 haneli cbc:ID[@schemeID='ALICIDIBSATIRKOD']
IHRACKAYITLI + 702IhracKayitliPartyIdentificationIDTypeCheckCustomsDeclaration/IssuerParty altındaki schemeID'ler yalnızca SATICIDIBSATIRKOD veya ALICIDIBSATIRKOD olabilir
TEVKIFAT / YTBTEVKIFAT / IADE / YTBIADE / SGK / SARJ / SARJANLIKGeneralWithholdingTaxTotalCheck assert-1cac:WithholdingTaxTotal yalnızca bu 7 tipte bulunabilir (kural yalnız UBLVersionID='2.1' iken devrededir)
TEVKIFAT / IADE / SGK / YTBIADEGeneralWithholdingTaxTotalCheck assert-2TaxTypeCode='4171' yalnızca bu 4 tipte kullanılabilir
IADE / YTBIADE / IHRACKAYITLI / OZELMATRAH / SGK / KONAKLAMAVERGISI dışındaki tüm tiplerTaxExemptionReasonCheck0015 kodlu ve TaxAmount = 0 olan TaxSubtotal varsa cac:TaxCategory/cbc:TaxExemptionReason dolu olmalıdır

4.3 Her belgede koşulsuz çalışan kurallar

KuralKontrol
UBLVersionIDCheckcbc:UBLVersionID = '2.1'
CustomizationIDCheckcbc:CustomizationID = 'TR1.2' veya 'TR1.2.1'
InvoiceIDCheckmatches(cbc:ID,'^[A-Z0-9]{3}20[0-9]{2}[0-9]{9}$') — 3 alfanümerik seri + 20YY + 9 hane sıra
CopyIndicatorCheckcbc:CopyIndicator = 'false'
TimeCheckYalnızca global context="//cbc:IssueDate" kuralı üzerinden çalışır — belgedeki her cbc:IssueDate alanına uygulanır (yalnız fatura tarihine değil). Tarih bugünden ileri olamaz ve 01.01.2005'ten önce olamaz. inv:Invoice context'indeki <sch:extends rule="TimeCheck"/> satırı Main schematron'da yorum satırıdır.
CurrencyCodeCheckTRY dışı para biriminde cac:PricingExchangeRate/cbc:CalculationRate zorunlu; regex ^(\s)*?[0-9][0-9]{0,16}(,[0-9]{3})*(\.[0-9]{1,6}(\s)*?)?(\s)*?$noktadan önce en fazla 17 hane (GİB hata mesajı "15" der; portal regex'e göre uygulamalıdır)
PartyIdentificationPartyNamePersonCheckSatıcı/alıcı Party'de VKN veya TCKN'den tam 1 adet (ikisi birden olamaz); VKN ise cac:PartyName/cbc:Name, TCKN ise cbc:FirstName + cbc:FamilyName dolu
PartyIdentificationTCKNVKNCheckVKN = 10 hane, TCKN = 11 hane
DocumentSenderCheck / DocumentReceiverCheckZarf gönderen/alıcı kimliği ile belge düzenleyen/alan aynı olmalı; alıcı tarafında yalnız 3900892152 VKN'si muaftır

5. DespatchAdviceTypeCode, ReceiptAdviceTypeCode ve ResponseCodeType

5.1 DespatchAdviceTypeCodeList (e-İrsaliye tipi) — 2 değer

<sch:let name="DespatchAdviceTypeCodeList" value="',SEVK,MATBUDAN,'"/>
KodAnlam / ne zaman kullanılır
SEVKDoğrudan elektronik olarak düzenlenen normal sevk irsaliyesi
MATBUDANKâğıt/matbu sevk irsaliyesinin e-İrsaliyeye dönüştürülmesi. e-İrsaliye Uygulama Kılavuzu 1.2: matbu sevk irsaliyeleri en geç izleyen gün içinde "MATBUDAN" türünde e-İrsaliye olarak düzenlenir.

DespatchAdviceTypeCodeCheck (Common 720-724), 2 assert:

AssertTürkçe hata mesajı
1 — kod listesi"Geçersiz cbc:DespatchAdviceTypeCode elemanı değeri : '…'. Geçerli cbc:DespatchAdviceTypeCode değerleri için kod listesine bakınız."
2 — MATBUDAN eki"DespatchAdviceTypeCode değeri 'MATBUDAN' iken cbc:ID ve cbc:IssueDate alanları dolu olan en az bir tane cac:AdditionalDocumentReference alanı olmalıdır."

UBL-TR İrsaliye V1.2 ayrıca aynı AdditionalDocumentReference altındaki DocumentType alanına sabit MATBU yazılmasını şart koşar.

e-İrsaliye senaryo × tip matrisi

ProfileIDSEVKMATBUDAN
TEMELIRSALIYEOKKOSULLU (AdditionalDocumentReference zorunlu)
HKSIRSALIYEKOSULLU (her satırda 19 karakter KUNYENO)KOSULLU (KUNYENO + AdditionalDocumentReference)
IDISIRSALIYEKOSULLU (SEVKIYATNO + ETIKETNO)KOSULLU (aynısı + AdditionalDocumentReference)

Her e-İrsaliyede koşulsuz zorunlu olanlar: cac:Shipment/cac:Delivery/cac:Despatch/cbc:ActualDespatchDate (YYYY-MM-DD), cbc:ActualDespatchTime, teslimat adresinde CitySubdivisionName + CityName + Country/Name + PostalZone (regex ^((0[1-9])|([1-7][0-9])|(8[0-1]))[0-9]{3}$), ve cac:ShipmentStage/cac:DriverPerson ile cac:Delivery/cac:CarrierParty'den en az biri. Şoför bilgisi varsa geçerli LicensePlateID zorunludur — schemeID='PLAKA' için regex ^(0[1-9]|[1-7][0-9]|8[01])[A-Z]+[0-9]+$, schemeID='YABANCIPLAKA' için ^[A-Z0-9_-]+$.

5.2 ReceiptAdviceTypeCodeList (e-İrsaliye Yanıtı tipi) — 1 değer

<sch:let name="ReceiptAdviceTypeCodeList" value="',SEVK,'"/>
KodAnlam
SEVKSevk irsaliyesine karşı düzenlenen irsaliye yanıtı. Tek geçerli değerdir.

ReceiptAdviceTypeCodeCheck (Common 797-799): "Geçersiz cbc:ReceiptAdviceTypeCode elemanı değeri : '…'. Geçerli cbc:ReceiptAdviceTypeCode değerleri için kod listesine bakınız."

Ayrıca ReceiptAdviceIDCheck (Common 158-160): cbc:ID tam 16 hane olmalıdır.

5.3 ResponseCodeType (uygulama yanıtı) — 5 değer

<sch:let name="ResponseCodeType" value="',KABUL,RED,IADE,S_APR,GUMRUKONAY,'"/>
KodNe zaman kullanılırZarf türüZorunlu ProfileIDEk zorunluluklar
KABULV1.43: "Uygulama yanıtı faturanın kabul edildiğini gösteriyor ise KABUL". IHRACAT'ta gümrük süreci sonunda.POSTBOXENVELOPETICARIFATURA veya IHRACATGönderen/alıcı kimliği zarf ile eşleşmeli; VKN ise cac:PartyName, TCKN ise cac:Person dolu. IHRACAT'ta cac:Signature + ext:UBLExtensions (ARSignatureCheck). IHRACAT + KABUL: cac:SenderParty/cac:PartyIdentification/cbc:ID[@schemeID='GTB_GCB_TESCILNO'] tam 1 adet ve [@schemeID='GTB_FIILI_IHRACAT_TARIHI'] tam 1 adet, regex ^\d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])$
REDV1.43: "faturanın reddedildiğini gösteriyor ise RED". TEMELFATURA'da uygulama yanıtı düzenlenemez.POSTBOXENVELOPETICARIFATURA veya IHRACATKABUL ile aynı taraf/imza kuralları
IADEV1.43: "iade faturası ile ilişkili olarak düzenlenmişse IADE değerini alacaktır."POSTBOXENVELOPETICARIFATURA veya IHRACATKABUL ile aynı
S_APRSistem yanıtı — zarfın/belgenin teknik işlenme sonucu. İş süreci yanıtı değildir.SYSTEMENVELOPEUBL-TR-PROFILE-1 (sabit)cac:DocumentResponse tam 1; içinde tam 1 cac:LineResponse, onda tam 1 cac:Response ve cbc:ResponseCode; bu kod $AppResponseCodeType listesinden olmalı; cbc:Description tam 1 adet
GUMRUKONAYYolcu beraberi eşya faturasının gümrük memurunca onaylanması sonrası aracı kuruma giden KDV-iade yanıtı.POSTBOXENVELOPEYOLCUBERABERFATURAGümrük İşlemleri Kılavuzu: bu işlemde kullanılan yanıtta imza aranmaz. SenderParty VKN = 1460415308, SenderParty/EndpointID = gümrük çıkış kapı no; DocumentReference/DocumentTypeCode = INVOICE + zip'lenmiş faturanın base64'ü

Zarf türü kısıtıPostBoxResponseCodeCheck (Common 599-601): POSTBOXENVELOPE zarflarında ResponseCode yalnızca RED, KABUL, IADE, GUMRUKONAY olabilir; yani S_APR posta kutusu zarfı ile gönderilemez.

AppResponseCodeType — tam liste (32 değer): 1000, 1100, 1110, 1111, 1120, 1130, 1131, 1132, 1133, 1140, 1141, 1142, 1143, 1150, 1160, 1161, 1162, 1163, 1170, 1171, 1172, 1175, 1176, 1177, 1180, 1181, 1182, 1183, 1190, 1191, 1195, 1200

EnvelopeType — tam liste (4 değer): SENDERENVELOPE, POSTBOXENVELOPE, SYSTEMENVELOPE, USERENVELOPE

ElementType — tam liste (7 değer): INVOICE, APPLICATIONRESPONSE, PROCESSUSERACCOUNT, CANCELUSERACCOUNT, DESPATCHADVICE, RECEIPTADVICE, CREDITNOTE


6. Portal için uygulanabilir validasyon kural seti

Aşağıdaki zincir, schematron'un fiilî değerlendirme sırasını yansıtır. Portal bu kuralları koda gömülü sabit olarak değil, veri tabanı tablosu / konfigürasyon dosyası olarak tutmalıdır: matrisin ENERJI, IDIS, Yatırım Teşvik ve 555 satırları son 9 ayda eklenmiştir (History.txt: 20251209, 20260109, 20260312, 20260701).

Adım 0 — Kanal seçimi

type = 'efatura' | 'earchive' | 'goruntuleme'

Adım 1 — ProfileID geçerliliği

if type == 'efatura' or type == '':
    ProfileID ∈ [TICARIFATURA, TEMELFATURA, YOLCUBERABERFATURA, IHRACAT, OZELFATURA,
                 KAMU, HKS, ENERJI, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS]        else -> RED
if type == 'earchive':
    ProfileID == 'EARSIVFATURA'                                                  else -> RED
if type == 'goruntuleme':
    ProfileID ∈ (yukaridaki 11 + EARSIVFATURA)                                   else -> RED
# DespatchAdvice belgesi icin (type efatura/goruntuleme/'' iken):
    ProfileID ∈ [TEMELIRSALIYE, HKSIRSALIYE, IDISIRSALIYE]                       else -> RED
# STDKODFATURA hicbir listede yoktur -> portal uretmemelidir

Adım 2 — InvoiceTypeCode kod listesi

InvoiceTypeCode ∈ [SATIS, IADE, TEVKIFAT, TEVKIFATIADE, ISTISNA, OZELMATRAH,
                   IHRACKAYITLI, SGK, KOMISYONCU, HKSSATIS, HKSKOMISYONCU,
                   KONAKLAMAVERGISI, SARJ, SARJANLIK, TEKNOLOJIDESTEK,
                   YTBSATIS, YTBIADE, YTBISTISNA, YTBTEVKIFAT, YTBTEVKIFATIADE]  else -> RED

Adım 3 — Genel senaryo/tip kombinasyon kuralları

R2 (InvoiceTypeCodeCheck#2):
    if InvoiceTypeCode == 'IADE'
       and ProfileID not in [TEMELFATURA, EARSIVFATURA, ILAC_TIBBICIHAZ,
                             YATIRIMTESVIK, IDIS, KAMU]                          -> RED
R3 (InvoiceTypeCodeCheck#3):  # yalnizca type in ('efatura','')
    if ProfileID == 'ENERJI' and InvoiceTypeCode not in [SARJ, SARJANLIK]        -> RED
    if InvoiceTypeCode in [SARJ, SARJANLIK] and ProfileID != 'ENERJI'            -> RED
R4 (InvoiceTypeCodeCheck#4):
    if InvoiceTypeCode == 'TEKNOLOJIDESTEK' and ProfileID != 'EARSIVFATURA'      -> RED

Adım 4 — Sektörel beyaz listeler

R5 (IlacTibbiCihazInvoiceTypeCodeCheck):
    if ProfileID == 'ILAC_TIBBICIHAZ'
       and InvoiceTypeCode not in [SATIS, ISTISNA, TEVKIFAT, TEVKIFATIADE,
                                   IADE, IHRACKAYITLI]                           -> RED
R6 (YatirimTesvikInvoiceTypeCodeCheck):
    if ProfileID == 'YATIRIMTESVIK'
       and InvoiceTypeCode not in [SATIS, ISTISNA, IADE, TEVKIFAT,
                                   TEVKIFATIADE]                                 -> RED
R7 (IdisInvoiceTypeCodeCheck):
    if ProfileID == 'IDIS'
       and InvoiceTypeCode not in [SATIS, ISTISNA, IADE, TEVKIFAT,
                                   TEVKIFATIADE, IHRACKAYITLI]                   -> RED

Adım 5 — Portal ek kuralı (schematron'da YOK, kılavuzda VAR)

R8: if InvoiceTypeCode startswith 'YTB' and ProfileID != 'EARSIVFATURA'
        -> RED/UYARI   (Yatirim Tesvik Teknik Kilavuzu V1.2; matriste KOSULLU*)

Adım 6 — Tevkifat bloğu (her iki kural da yalnızca UBLVersionID = '2.1' iken devrededir)

if exists(cac:WithholdingTaxTotal)
   and InvoiceTypeCode not in [TEVKIFAT, YTBTEVKIFAT, IADE, YTBIADE,
                               SGK, SARJ, SARJANLIK]                             -> RED
   # DIKKAT: TEVKIFATIADE ve YTBTEVKIFATIADE bu listede YOKTUR
if exists(TaxTotal/.../TaxTypeCode == '4171')
   and InvoiceTypeCode not in [TEVKIFAT, IADE, SGK, YTBIADE]                     -> RED
   # DIKKAT: YTBTEVKIFAT bu listede YOKTUR (assert-1 ile asimetrik)
foreach WithholdingTaxTotal/TaxSubtotal:
    TaxTypeCode ve Percent dolu olmali
    TaxTypeCode ∈ WithholdingTaxType (52 kod)
    concat(TaxTypeCode, Percent) ∈ WithholdingTaxTypeWithPercent (64 deger)

WithholdingTaxType — tam liste (52 kod): 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825

WithholdingTaxTypeWithPercent — tam liste (64 değer; okuma: 60130 = 601 kodu + %30, 801100 = 801 kodu + %100): 60130, 60140, 60290, 60350, 60370, 60450, 60550, 60690, 60790, 60890, 60950, 60970, 61090, 61190, 61270, 61290, 61370, 61390, 61450, 61550, 61570, 61650, 61770, 61870, 61970, 62070, 62190, 62290, 62350, 62420, 62530, 62620, 65090, 65050, 65070, 65020, 65030, 62740, 62750, 801100, 802100, 803100, 804100, 805100, 806100, 807100, 808100, 809100, 810100, 811100, 812100, 813100, 814100, 815100, 816100, 817100, 818100, 819100, 820100, 821100, 822100, 823100, 824100, 825100

Adım 7 — İstisna / özel matrah / ihraç kayıtlı kodu bloğu

if TaxExemptionReason dolu:
    TaxExemptionReasonCode dolu olmali                                           else -> RED
    if code in [308, 339]:
        (ProfileID == 'YATIRIMTESVIK'
         or InvoiceTypeCode in [YTBSATIS, YTBIADE, YTBISTISNA,
                                YTBTEVKIFAT, YTBTEVKIFATIADE])                   else -> RED
    elif code not in TaxExemptionReasonCodeType (111 kod)                        -> RED
    if code != 555 and code in istisnaTaxExemptionReasonCodeType (94 kod):
        InvoiceTypeCode in [ISTISNA, IADE, IHRACKAYITLI, SGK,
                            YTBISTISNA, YTBIADE]                                 else -> RED
    if code in [801,802,803,804,805,806,807,808,809,810,811,812]:
        InvoiceTypeCode in [OZELMATRAH, IADE, SGK]                               else -> RED
    if code in [701, 702, 703, 704]:
        InvoiceTypeCode in [IHRACKAYITLI, IADE, SGK]                             else -> RED
    if code == 702 and InvoiceTypeCode == 'IHRACKAYITLI':
        her InvoiceLine'da 12 haneli RequiredCustomsID (GTIP)
        ve 11 haneli ALICIDIBSATIRKOD                                            else -> RED
    if code == 555:
        ProfileID in [TEMELFATURA, TICARIFATURA, EARSIVFATURA]                   else -> RED
        InvoiceTypeCode not in [ISTISNA, IHRACKAYITLI]                           else -> RED
        not (ProfileID == 'EARSIVFATURA' and InvoiceTypeCode startswith 'YTB')   else -> RED
        hicbir 0015 TaxSubtotal'da Percent == 0 veya TaxAmount == 0 olamaz
        (fatura basi TaxTotal + ../cac:InvoiceLine/cac:TaxTotal birlikte taranir)
    if code in [151, 351]:
        fatura tipi kisiti YOKTUR — bu iki kod hicbir alt listede degildir,
        yalnizca ana TaxExemptionReasonCodeType listesindedir

if KDV(0015) TaxAmount == 0
   and InvoiceTypeCode not in [IADE, YTBIADE, IHRACKAYITLI, OZELMATRAH,
                               SGK, KONAKLAMAVERGISI]:
    TaxExemptionReason ZORUNLU                                                   else -> RED

istisnaTaxExemptionReasonCodeType — tam liste (94 kod; 201-250 aralığı sürekli DEĞİLDİR): 001, 101, 102, 103, 104, 105, 106, 107, 108, 201, 202, 204, 205, 206, 207, 208, 209, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 223, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 250, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 350, 501 Bu listede bulunmayan ara değerler: 203, 210, 222, 224, 243, 244, 245, 246, 247, 248, 249.

308 / 339 kapısı: $YatirimTesvikTaxExemptionReasonCodeType = ',308,339,' ve bu iki kod ana $TaxExemptionReasonCodeType listesinde yoktur. Yani 308 ("13/d Teşvikli Yatırım Mallarının Teslimi") ve 339 ("İmalat Sanayii ile Turizme Yönelik Yatırım Teşvik Belgesi Kapsamındaki İnşaat İşlerine İlişkin Teslim ve Hizmetler") yalnızca ProfileID='YATIRIMTESVIK' iken veya tip YTB* iken kullanılabilir.

"0 KDV'li SATIS" çıkış yolu: 351 ("KDV - İstisna Olmayan Diğer") veya OTV için 151. Bu iki kod istisna alt listesinde olmadığı için fatura tipini ISTISNA'ya çevirmek gerekmez; SATIS tipiyle geçerlidir. 555 bu problemin çözümü değildirDemirbasKDVTaxExemptionCheck assert-2 555 ile KDV 0'ı yasaklar.

Adım 8 — Senaryo/tip bazlı zorunlu alan enjeksiyonu: §4'teki tablolardan üretilir.

Adım 9 — Regresyon testi: 12 senaryo × 20 tip = 240 kombinasyon; beklenen sonuç 153 geçerli / 87 RED. Portal test paketi bu 240 hücrenin tamamını kapsamalı, schematron paketi her güncellendiğinde matris yeniden üretilip bu testle karşılaştırılmalıdır.


Doğrulanamayanlar

Aşağıdaki maddeler korpustan kesin sonuca bağlanamamıştır veya kaynaklar arasında çelişki içerir. Portal bu maddeleri olgu olarak uygulamamalı, gerekiyorsa GİB'e sormalıdır.

#KonuDurum
1STDKODFATURA çelişkisiV1.43 bölüm 2.2 "STDKODFATURA — Standart Kod Fatura sürecini belirtir." senaryosunu tanımlar; 24.08.2026 paketindeki UBL-TR_Codelist.xml'in ProfileIDType ve ProfileIDTypeGoruntuleme listelerinde bu değer yoktur — schematron reddeder. Hangisinin geçerli olduğu çözülemedi; portal STDKODFATURA'yı uygulamamalıdır.
2e-Arşiv ve görüntüleme ana schematron dosyaları korpusta yokKorpustaki UBL-TR_Main_Schematron.xml sabit type='efatura' içerir. $type='earchive' / 'goruntuleme' set eden main dosyaları bulunamadı. Korpustaki earsiv_schematron.xsl e-Arşiv raporunu doğrular, e-Arşiv faturasının UBL XML'ini değil. e-Arşiv UBL'inin hangi dosya ve hangi $type ile doğrulandığı mantıksal çıkarımdır (earchive), birebir teyit edilemedi.
3HKSSATIS ve HKSKOMISYONCUBu iki tip InvoiceTypeCodeList'te mevcut; V1.43'te ve korpustaki hiçbir kılavuzda açıklaması yok. Ayrıca schematron'da KOMISYONCU/HKSSATIS/HKSKOMISYONCU tiplerini ProfileID='HKS' senaryosuna bağlayan hiçbir assert yoktur — teknik olarak TEMELFATURA/TICARIFATURA/EARSIVFATURA gibi senaryolarda da geçerli sayılırlar. Bunun kasıtlı mı eksik mi olduğu anlaşılamadı.
4YTB* tiplerinin e-Fatura senaryolarında engellenmemesi (matristeki KOSULLU* hücreleri)Schematron'da YTB* tiplerini EARSIVFATURA'ya bağlayan bir assert yoktur (assert-4 yalnız TEKNOLOJIDESTEK içindir). Kısıt sadece Yatırım Teşvik Teknik Kılavuzu V1.2 düzeyindedir. Portal bunu kendi katmanında bloklamalıdır; GİB tarafında sistem düzeyinde bloklanıp bloklanmadığı doğrulanamadı.
5YatirimTesvikKDVCheck ile kılavuz çelişkisiSchematron, 01/02 dâhil tüm harcama tiplerinde IADE/TEVKIFATIADE/YTBIADE/YTBTEVKIFATIADE dışındaki her tipte (ISTISNA ve YTBISTISNA dâhil) KDV oran ve tutarının > 0 olmasını şart koşar. Yatırım Teşvik Teknik Kılavuzu V1.2 ise ISTISNA/YTBISTISNA'da 0 KDV'ye izin verir. Paket içi çelişkidir; hangisinin uygulamada geçerli olduğu korpustan çözülemedi.
6ReceiptAdviceTypeCode TEMEL vs SEVKUBL-TR İrsaliye Yanıtı V1.0 kılavuzundaki örnek <cbc:ReceiptAdviceTypeCode>TEMEL</cbc:ReceiptAdviceTypeCode> şeklindedir; güncel Codelist yalnız SEVK içerir ve TEMEL schematron'dan geçmez. Kılavuz güncellenmemiş görünüyor. Portal SEVK üretmelidir; GİB'in güncel İrsaliye Yanıtı kılavuzu korpusta yok.
7S_APR ve GUMRUKONAY V1.43'te açıklanmamışV1.43 bölüm 1.7 yalnız KABUL/RED/IADE'yi tarif eder. S_APR ve GUMRUKONAY açıklamaları sırasıyla Ek-2 Sistem Yanıtı ve Gümrük İşlemleri kılavuzlarından derlendi; kod listeleri kılavuzunda karşılığı yok.
8YTBTEVKIFAT / 4171 asimetrisiGeneralWithholdingTaxTotalCheck assert-1 YTBTEVKIFAT'a cac:WithholdingTaxTotal izni verirken assert-2 aynı tipe TaxTypeCode='4171' izni vermez. Benzer şekilde TEVKIFATIADE ve YTBTEVKIFATIADE assert-1'de yer almaz (yani tevkifat iade faturasında tevkifat bloğu taşınamaz). Kasıtlı tasarım mı schematron hatası mı olduğu anlaşılamadı.
9SGKInvoiceCheck ölü koddurCommon 524-526'da kural tanımlıdır (VKN 7750409379'a giden faturaların SGK/TEVKIFAT tipinde olması) ancak UBL-TR_Main_Schematron.xml'de hiçbir <sch:extends> bu kuralı çağırmaz. History.txt "20171213 1) SGKInvoiceCheck silindi." kaydıyla uyumludur. SGK faturalarının senaryo/tip kısıtının bugün nasıl zorlandığı korpustan netleşmiyor.
10KONAKLAMAVERGISIBu tipi herhangi bir senaryoya bağlayan schematron kuralı yoktur. V1.43'teki "KONAKLAMA VERGİSİ İSTİSNA KODLARI LİSTESİ" başlığı altında yalnız "001 Diplomatik İstisna" görünüyor; tam liste PDF→metin dönüşümünde kesilmiş olabilir.
11308 / 339 kod adlarıV1.43 PDF→metin dönüşümünde bu iki satırın açıklama sütunu kaymıştır. Adlar Yatırım Teşvik Teknik Kılavuzu V1.2'den alınmıştır; V1.43'ten birebir doğrulanamadı.
12ProfileIDTypeGoruntuleme'nin kullanım yeri$type='goruntuleme' değerinin hangi GİB servisinde/API ucunda set edildiği (görüntüleme portalı mı, özel entegratör validasyon servisi mi) korpustaki hiçbir kılavuzda açıklanmıyor. Yalnızca schematron değişkeni olarak vardır.
13TEKNOLOJIDESTEK için teknik kılavuz yokTip 28.04.2025'te schematron'a eklenmiş; TCKN zorunluluğu ve TELEFON/TABLET_PC schemeID kuralları schematron'dan çıkarıldı. Hangi mevzuat/destek programı kapsamında, hangi tarihten itibaren, hangi mükellef grubu için zorunlu olduğu korpustaki hiçbir dosyada geçmiyor.
14Geçiş takvimi / zorunluluk tarihleriHangi fatura tipinin hangi tarihten itibaren zorunlu olduğu bilgisi bu dosyalarda yoktur; ayrı geçiş takvimi ve zorunluluk karşılaştırma tablolarında yer alır. History.txt'te 20260701 kaydı vardır ancak devreye alma tarihi History.txt'te belirtilmemiştir.

Tevkifat Kodları ve Oranları

Tevkifat kodları, cac:WithholdingTaxTotal bloğunun içindeki cbc:TaxTypeCode alanına yazılan ve normal vergi kodu listesinden (0015 KDV, 4171 ÖTV tevkifatı vb.) tamamen ayrı olan bir listedir. Doğrulamanın tek otoritesi e-Fatura paketindeki UBL-TR_Codelist.xml dosyasında tanımlı iki schematron değişkenidir:

DeğişkenNe tanımlarEleman sayısı
WithholdingTaxTypeGeçerli tevkifat kodları52 (601-627 = 27 kod, 801-825 = 25 kod)
WithholdingTaxTypeWithPercentGeçerli kod + oran kombinasyonları64

Değişkenlerin korpustaki birebir hali (UBL-TR_Codelist.xml, satır 16-17):

<sch:let name="WithholdingTaxType" value="',601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,621,622,623,624,625,626,627,801,802,803,804,805,806,807,808,809,810,811,812,813,814,815,816,817,818,819,820,821,822,823,824,825,'"/>

<sch:let name="WithholdingTaxTypeWithPercent" value="',60130,60140,60290,60350,60370,60450,60550,60690,60790,60890,60950,60970,61090,61190,61270,61290,61370,61390,61450,61550,61570,61650,61770,61870,61970,62070,62190,62290,62350,62420,62530,62620,65090,65050,65070,65020,65030,62740,62750,801100,802100,803100,804100,805100,806100,807100,808100,809100,810100,811100,812100,813100,814100,815100,816100,817100,818100,819100,820100,821100,822100,823100,824100,825100,'"/>

Listelerin başında ve sonunda tek tırnak + virgül olması, contains($WithholdingTaxType, concat(',',kod,',')) biçimindeki alt-dize aramasının ilk (601) ve son (825) elemanı da yakalayabilmesi içindir. Portalde bu iki diziyi sabit (hardcoded) tutabilirsin. 601-627 ve 801-825 dışında hiçbir tevkifat kodu yoktur: 628-800 arası boştur, 826 ve üzeri yoktur, 650 bu listede yoktur.

601-627: Kısmi Tevkifat Kodları (tam tablo, 27 kod)

Metodoloji uyarısı: V1.43 PDF'inin metin çıktısında tevkifat tablosunun sütunları bir satır kaymıştır — "ADI" başlığı 601 satırına düşmüş, isim akışı bir satır aşağı kaymış görünür (602 Yapim İşleri..., 603 Etüt, Plan-Proje... gibi). Doğru eşleşme, isim akışının ve oran akışının ayrı ayrı sıralı okunmasıyla kurtarılmış ve 52 kodun 52'sinde de schematron'un WithholdingTaxTypeWithPercent listesiyle bire bir çapraz doğrulanmıştır. Aşağıdaki tablo bu nedenle iki bağımsız kaynakla teyitlidir.

Kodİşlem Açıklaması (V1.43)Güncel Orancbc:PercentGeçerli kombinasyon(lar)
601Yapım İşleri İle Bu İşlerle Birlikte İfa Edilen Mühendislik-Mimarlık Ve Etüt-Proje Hizmetleri4/104060140 (eski: 60130 = 3/10)
602Etüt, Plan-Proje, Danışmanlık, Denetim Ve Benzeri Hizmetler9/109060290
603Makine, Teçhizat, Demirbaş Ve Taşıtlara Ait Tadil, Bakım Ve Onarım Hizmetleri7/107060370 (eski: 60350 = 5/10)
604Yemek Servis Hizmeti5/105060450
605Organizasyon Hizmeti5/105060550
606İşgücü Temin Hizmetleri9/109060690
607Özel Güvenlik Hizmeti9/109060790
608Yapı Denetim Hizmetleri9/109060890
609Fason Olarak Yaptırılan Tekstil Ve Konfeksiyon İşleri, Çanta Ve Ayakkabı Dikim İşleri Ve Bu İşlere Aracılık Hizmetleri7/107060970 (eski: 60950 = 5/10)
610Turistik Mağazalara Verilen Müşteri Bulma / Götürme Hizmetleri9/109061090
611Spor Kulüplerinin Yayın, Reklâm Ve İsim Hakkı Gelirlerine Konu İşlemleri9/109061190
612Temizlik Hizmeti9/109061290 (eski: 61270 = 7/10)
613Çevre Ve Bahçe Bakım Hizmetleri9/109061390 (eski: 61370 = 7/10)
614Servis Taşımacılığı Hizmeti5/105061450
615Her Türlü Baskı Ve Basım Hizmetleri7/107061570 (eski: 61550 = 5/10)
616Diğer Hizmetler [Kdvgut-(I/C-2.1.3.2.13)]5/105061650
617Hurda Metalden Elde Edilen Külçe Teslimleri7/107061770
618Hurda Metalden Elde Edilenler Dışındaki Bakır, Çinko Demir ; Çelik Alüminyum Ve Kurşun Külçe Teslimleri [Kdvgut-(I/C-2.1.3.3.1)]7/107061870
619Bakır, Çinko Ve Alüminyum Ürünlerinin Teslimi7/107061970
620İstisnadan Vazgeçenlerin Hurda Ve Atık Teslimi7/107062070
621Metal, Plastik, Lastik, Kauçuk, Kâğıt Ve Cam Hurda Ve Atıklardan Elde Edilen Hammadde Teslimi9/109062190
622Pamuk, Tiftik, Yün Ve Yapağı İle Ham Post Ve Deri Teslimleri9/109062290
623Ağaç Ve Orman Ürünleri Teslimi5/105062350
624Yük Taşımacılığı Hizmeti [Kdvgut-(I/C-2.1.3.2.11)]2/102062420
625Ticari Reklam Hizmetleri [Kdvgut-(I/C-2.1.3.2.15)]3/103062530
626Diğer Teslimler [Kdvgut-(I/C-2.1.3.3.7.)]2/102062620
627Demir-Çelik Ürünlerinin Teslimi [Kdvgut-(I/C-2.1.3.3.8)]5/105062750 (ayrıca 62740 = 4/10 hâlâ geçerli)

Kılavuzun bastığı oran akışı (27 değer, sırayla, birebir): 4/10, 9/10, 7/10, 5/10, 5/10, 9/10, 9/10, 9/10, 7/10, 9/10, 9/10, 9/10, 9/10, 5/10, 7/10, 5/10, 7/10, 7/10, 7/10, 7/10, 9/10, 9/10, 5/10, 2/10, 3/10, 2/10, 5/10 — bunu takip eden 25 adet 10/10 değeri 801-825 bloğuna aittir.

Hizmet / teslim kırılımı: 601-616 hizmet tevkifatı (KDVGUT I/C-2.1.3.2.x), 617-623 ve 626-627 teslim tevkifatı (KDVGUT I/C-2.1.3.3.x), 624-625 tekrar hizmet (I/C-2.1.3.2.11 ve I/C-2.1.3.2.15). Yani numaralandırma konu sırasına göre değil, kronolojik ekleme sırasına göredir; portalde kodları gruplarken "601-616 hizmet, 617+ teslim" gibi bir kısayol kurma.

801-825: Tam (%100) Tevkifat Kodları (tam tablo, 25 kod)

801-825 bloğu 601-627'den ne ile ayrılır? İkisi de aynı WithholdingTaxType listesinin parçasıdır ve V1.43'te aynı "TEVKİFAT KODLARI LİSTESİ" tablosunun kesintisiz devamı olarak yayımlanmıştır — arada ayrı bir başlık veya bölüm yoktur. Fark tek bir noktadadır:

601-627801-825
Tevkifat türüKısmi tevkifatTam tevkifat
cbc:Percent değeri20, 30, 40, 50, 70, 90 (koda göre)Her zaman 100
Oran2/10 – 9/1010/10 (tamamı)
KDV'nin ne kadarı tevkif edilirBir kısmı; kalanı satıcıya ödenirTamamı; satıcıya hiç KDV ödenmez
Kod adedi2725
İşlem konusu601-627 ile aynı işlemler (616 ve 626 hariç)

Yani 801-825, yeni işlem türleri değil; 601-627'deki işlemlerin %100 tevkifatlı hâlidir. 801100 şu demektir: TaxTypeCode = 801, cbc:Percent = 100.

Kodİşlem Açıklaması (V1.43)Orancbc:Percent6xx karşılığı
801Yapım İşleri ile Bu İşlerle Birlikte İfa Edilen Mühendislik-Mimarlık ve Etüt-Proje Hizmetleri [KDVGUT-(I/C-2.1.3.2.1)]10/10100601
802Etüt, Plan-Proje, Danışmanlık, Denetim ve Benzeri Hizmetler [KDVGUT-(I/C-2.1.3.2.2)]10/10100602
803Makine, Teçhizat, Demirbaş ve Taşıtlara Ait Tadil, Bakım ve Onarım Hizmetleri [KDVGUT-(I/C-2.1.3.2.3)]10/10100603
804Yemek Servis Hizmeti [KDVGUT-(I/C-2.1.3.2.4)]10/10100604
805Organizasyon Hizmeti [KDVGUT-(I/C-2.1.3.2.4)]10/10100605
806İşgücü Temin Hizmetleri [KDVGUT-(I/C-2.1.3.2.5)]10/10100606
807Özel Güvenlik Hizmeti [KDVGUT-(I/C-2.1.3.2.5)]10/10100607
808Yapı Denetim Hizmetleri [KDVGUT-(I/C-2.1.3.2.6)]10/10100608
809Fason Olarak Yaptırılan Tekstil ve Konfeksiyon İşleri, Çanta ve Ayakkabı Dikim İşleri ve Bu İşlere Aracılık Hizmetleri [KDVGUT-(I/C-2.1.3.2.7)]10/10100609
810Turistik Mağazalara Verilen Müşteri Bulma/ Götürme Hizmetleri [KDVGUT-(I/C-2.1.3.2.8)]10/10100610
811Spor Kulüplerinin Yayın, Reklâm ve İsim Hakkı Gelirlerine Konu İşlemleri [KDVGUT-(I/C-2.1.3.2.9)]10/10100611
812Temizlik Hizmeti [KDVGUT-(I/C-2.1.3.2.10)]10/10100612
813Çevre ve Bahçe Bakım Hizmetleri [KDVGUT-(I/C-2.1.3.2.10)]10/10100613
814Servis Taşımacılığı Hizmeti [KDVGUT-(I/C-2.1.3.2.11)]10/10100614
815Her Türlü Baskı ve Basım Hizmetleri [KDVGUT-(I/C-2.1.3.2.12)]10/10100615
816Hurda Metalden Elde Edilen Külçe Teslimleri [KDVGUT-(I/C-2.1.3.3.1)]10/10100617
817Hurda Metalden Elde Edilenler Dışındaki Bakır, Çinko, Demir Çelik, Alüminyum ve Kurşun Külçe Teslimi [KDVGUT-(I/C-2.1.3.3.1)]10/10100618
818Bakır, Çinko, Alüminyum ve Kurşun Ürünlerinin Teslimi [KDVGUT-(I/C-2.1.3.3.2)]10/10100619
819İstisnadan Vazgeçenlerin Hurda ve Atık Teslimi [KDVGUT-(I/C-2.1.3.3.3)]10/10100620
820Metal, Plastik, Lastik, Kauçuk, Kâğıt ve Cam Hurda ve Atıklardan Elde Edilen Hammadde Teslimi [KDVGUT-(I/C-2.1.3.3.4)]10/10100621
821Pamuk, Tiftik, Yün ve Yapağı İle Ham Post ve Deri Teslimleri [KDVGUT-(I/C-2.1.3.3.5)]10/10100622
822Ağaç ve Orman Ürünleri Teslimi [KDVGUT-(I/C-2.1.3.3.6)]10/10100623
823Yük Taşımacılığı Hizmeti [KDVGUT-(I/C-2.1.3.2.11)]10/10100624
824Ticari Reklam Hizmetleri [KDVGUT-(I/C-2.1.3.2.15)]10/10100625
825Demir-Çelik Ürünlerinin Teslimi [KDVGUT-(I/C-2.1.3.3.8)]10/10100627

Eşleştirme formülü (üç parçalıdır, tek kural değildir):

6xx aralığıFormülÖrnek
601-6158xx = 6xx + 200606 → 806
617-6258xx = 6xx + 199620 → 819
6278xx = 6xx + 198627 → 825
616 ve 626Karşılık YOK

616 (Diğer Hizmetler) ve 626 (Diğer Teslimler) kodlarının %100 karşılığı yoktur. 27 kısmi kod vardır ama yalnızca 25 tam-oranlı karşılık bulunmasının nedeni budur. Eşlemeyi portalde formülle değil, yukarıdaki tabloyu sabit bir sözlük olarak tutarak yap — iki kırılma noktası ve iki boşluk olduğu için formül kırılgandır.

En büyük karışıklık riski — 801-812 aynı zamanda ÖZEL MATRAH kodudur. Aynı V1.43 kılavuzunda 801-812 numaraları ikinci bir listede daha geçer: "ÖZEL MATRAH KODLARI LİSTESİ" (801 = Milli Piyango, Spor Toto vb. Oyunlar; 802 = At Yarışları ve Diğer Müşterek Bahis ve Talih Oyunları; ... ; 812 = KDV Uygulanmadan Alınan İkinci El Motorlu Kara Taşıtı veya Taşınmaz Teslimi). Bunlar tamamen farklı bir listedir:

Tevkifat 801-825Özel Matrah 801-812
Yazıldığı elemancac:WithholdingTaxTotal/cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme/cbc:TaxTypeCodecac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReasonCode
Schematron değişkeniWithholdingTaxTypeozelMatrahTaxExemptionReasonCodeType
Kullanıldığı fatura tipleriTEVKIFAT / YTBTEVKIFAT / IADE / YTBIADE / SGK / SARJ / SARJANLIKOZELMATRAH / IADE / SGK

Özel matrah listesi schematron'da ayrıdır: <sch:let name="ozelMatrahTaxExemptionReasonCodeType" value="',801,802,803,804,805,806,807,808,809,810,811,812,'"/>. Portal veritabanında bu iki listeyi asla tek tabloda tutma.

WithholdingTaxTypeWithPercent Kodlama Mantığı

Kodlama matematiksel değil, metinseldir: TaxTypeCode metni ile cbc:Percent metni arka arkaya yapıştırılır ve sonuç listede aranır. Oran kesir değil, yüzde olarak yazılır.

  • 60130 = TaxTypeCode 601 + Percent 30 → 3/10 = %30
  • 60140 = TaxTypeCode 601 + Percent 40 → 4/10 = %40
  • 801100 = TaxTypeCode 801 + Percent 100 → 10/10 = %100

Bunu doğrulayan schematron assert'i (UBL-TR_Common_Schematron.xml, satır 312) bu birleştirmeyi XPath concat() ile birebir yapar:

<sch:assert test="contains($WithholdingTaxTypeWithPercent, concat(',',cac:TaxCategory/cac:TaxScheme/cbc:TaxTypeCode,cbc:Percent,','))">
  Uyumsuz vergi tipi yüzdesi: '...' vergi tipinin yüzdesi '...' olamaz
</sch:assert>

Kritik geliştirici tuzağı — cbc:Percent ondalık YASAĞI. Birleştirme metinsel olduğu için tevkifattaki cbc:Percent mutlaka ondalıksız tamsayı olmalıdır:

YazımOluşan dizeSonuç
<cbc:Percent>90</cbc:Percent>,60690,Listede var → GEÇER
<cbc:Percent>90.0</cbc:Percent>,60690.0,Listede yok → REDDEDİLİR
<cbc:Percent>90.00</cbc:Percent>,60690.00,Listede yok → REDDEDİLİR
<cbc:Percent>0.90</cbc:Percent>,6060.90,Listede yok → REDDEDİLİR

Bu, KDV oranının aksinedir: KDV tarafında kılavuz örneği <cbc:Percent>18.0</cbc:Percent> biçiminde ondalıklı yazar ve bu geçerlidir. Tevkifatta ondalık yasak, KDV'de serbest. Portal kodunda tevkifat Percent alanını decimal değil int olarak serialize et.

Geçerli kod + oran kombinasyonlarının tam listesi (64 adet)

6xx bloğu — 39 kombinasyon:

BirleşikKodPercentOranDurum
60130601303/10Eski (geçerli)
60140601404/10Güncel
60290602909/10Güncel
60350603505/10Eski (geçerli)
60370603707/10Güncel
60450604505/10Güncel
60550605505/10Güncel
60690606909/10Güncel
60790607909/10Güncel
60890608909/10Güncel
60950609505/10Eski (geçerli)
60970609707/10Güncel
61090610909/10Güncel
61190611909/10Güncel
61270612707/10Eski (geçerli)
61290612909/10Güncel
61370613707/10Eski (geçerli)
61390613909/10Güncel
61450614505/10Güncel
61550615505/10Eski (geçerli)
61570615707/10Güncel
61650616505/10Güncel
61770617707/10Güncel
61870618707/10Güncel
61970619707/10Güncel
62070620707/10Güncel
62190621909/10Güncel
62290622909/10Güncel
62350623505/10Güncel
62420624202/10Güncel
62530625303/10Güncel
62620626202/10Güncel
62740627404/10Eski (geçerli)
62750627505/10Güncel
65020650202/10ÖLÜ KOD — kullanma
65030650303/10ÖLÜ KOD — kullanma
65050650505/10ÖLÜ KOD — kullanma
65070650707/10ÖLÜ KOD — kullanma
65090650909/10ÖLÜ KOD — kullanma

8xx bloğu — 25 kombinasyon (hepsi Percent = 100, oran 10/10):

BirleşikKodBirleşikKodBirleşikKodBirleşikKodBirleşikKod
801100801806100806811100811816100816821100821
802100802807100807812100812817100817822100822
803100803808100808813100813818100818823100823
804100804809100809814100814819100819824100824
805100805810100810815100815820100820825100825

Sayım doğrulaması: 27 adet 6xx kodundan 7'si çift oranlı (7 × 2 = 14 kayıt) + 20'si tek oranlı (20 kayıt) + 650'nin 5 kaydı = 39; 39 + 25 = 64. ✔

Birden fazla orana sahip kodlar — 8 adet (650 hariç 7): 601 (30, 40), 603 (50, 70), 609 (50, 70), 612 (70, 90), 613 (70, 90), 615 (50, 70), 627 (40, 50), 650 (20, 30, 50, 70, 90). Bu kodlarda eski oranlar geriye dönük düzeltme ve iade faturaları için listede tutulmaya devam ediyor.

Ancak her eski oran listede DEĞİL. WithholdingTaxTypeWithPercent geriye dönük olarak eksiktir: 617, 618, 619 ve 620 kodlarının 2015 dönemindeki 5/10 oranı (61750, 61850, 61950, 62050) listede yoktur; aynı şekilde 601'in en eski oranı olan 2/10 (60120) da yoktur — 601 için listedeki en eski değer 3/10'dur. 2015-2019 arası kesilmiş bir faturayı aynı kod ve oranla yeniden üretmeye çalışırsan schematron reddeder.

Listenin schematron'daki fiziksel sırası da bilgi verir: 60130 → 62620 arası artan (32 eleman), sonra 650'nin 5 elemanı, sonra sıra dışına düşmüş 62740 ve 62750, en sonda 801100 → 825100. 627'nin (demir-çelik) sıralamayı bozup 650'den sonra gelmesi, bu kodun listeye en son eklendiğinin kanıtıdır ve History.txt'deki 20221101 tarihli "WithholdingTaxTypeWithPercent güncellendi" kaydıyla örtüşür.

Ölü ve Kullanılmayan Kodlar

650 kodunu kullanma — kullanılamaz.

WithholdingTaxTypeWithPercent listesinde 650 kodu için beş kombinasyon (65020, 65030, 65050, 65070, 65090) hâlâ duruyor. Ancak 650 kodu WithholdingTaxType listesinde YOKTUR. WithholdingTaxTotalCheck kuralı iki ayrı assert çalıştırır ve ikisinin de geçmesi gerekir:

Assert650 için sonuç
Kod WithholdingTaxType içinde mi?HAYIR — patlar
Kod + oran WithholdingTaxTypeWithPercent içinde mi?Evet

<cbc:TaxTypeCode>650</cbc:TaxTypeCode> gönderirsen fatura şu hatayla reddedilir: "Geçersiz cac:TaxCategory/cac:TaxScheme/cbc:TaxTypeCode elemanı : '650'. Geçerli değerler için kod listesine bakınız."

650, Ekim 2015 tarihli kılavuzda "DİĞERLERİ" adıyla ve 2/10, 5/10, 7/10, 9/10 oranlarıyla listede yer alıyordu; V1.22 (14.03.2019) değişiklik kaydı "650 Tevkifat koduna 3/10 eklendi" diyor. Ancak ne V1.31'de ne de V1.43'te tevkifat tablosunda 650 satırı vardır — kod yalnızca değişiklik geçmişi satırında adı geçer. Yerini 616 (Diğer Hizmetler) ve 626 (Diğer Teslimler) almıştır. WithholdingTaxTypeWithPercent'teki beş kayıt temizlenmemiş ölü koddur.

Portal aksiyonu: 650'yi kullanıcı arayüzünde hiç gösterme. Eski kayıtlardan / migrasyondan geliyorsa hizmet için 616'ya, teslim için 626'ya map et. Kod listesi doğrulamasını yaparken yalnızca WithholdingTaxType'ı otorite kabul et, WithholdingTaxTypeWithPercent'i kod kaynağı olarak kullanma — o liste 52 değil 53 farklı kod içerir ve fazladan olan 650 geçersizdir.

Ayrıca hiç var olmamış kod aralıkları: 628-800 arası (tamamı), 826 ve üzeri. Bu aralıklarda tek bir geçerli tevkifat kodu bile yoktur.

XML'de Tevkifat Nasıl Yazılır

Tam XPath — fatura seviyesi: /Invoice/cac:WithholdingTaxTotal/cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme/cbc:TaxTypeCode

Tam XPath — kalem seviyesi: /Invoice/cac:InvoiceLine/cac:WithholdingTaxTotal/cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme/cbc:TaxTypeCode

Kılavuzun birebir örneği (UBL-TR Fatura V1.0, bölüm 2.3.42; aynı örnek UBL-TR Ortak Elemanlar V0.7 içinde de tekrarlanır) — korpustaki tek gerçek GİB tevkifat örneği:

<cac:WithholdingTaxTotal>
    <cbc:TaxAmount currencyID="TRY">3240</cbc:TaxAmount>
    <cac:TaxSubtotal>
        <cbc:TaxAmount currencyID="TRY">3240</cbc:TaxAmount>
        <cbc:Percent>90</cbc:Percent>
        <cac:TaxCategory>
            <cac:TaxScheme>
                <cbc:TaxTypeCode>606</cbc:TaxTypeCode>
            </cac:TaxScheme>
        </cac:TaxCategory>
    </cac:TaxSubtotal>
</cac:WithholdingTaxTotal>

Doğrulama: 606 + 9060690 → listede mevcut ✔ (606 = İşgücü Temin Hizmetleri, 9/10).

Yapısal notlar:

  • cac:TaxScheme altında cbc:Name yoktur (normal KDV'de <cbc:Name>Katma Değer Vergisi</cbc:Name> yazılır; tevkifat örneğinde kullanılmamıştır).
  • cac:TaxCategory altında doğrudan cac:TaxScheme gelir; cbc:TaxExemptionReasonCode burada kullanılmaz.
  • cac:WithholdingTaxTotal/cbc:TaxAmount (toplam tevkifat) ile cac:TaxSubtotal/cbc:TaxAmount (o kod için tevkifat) ayrı ayrı yazılır; örnekte tek kod olduğu için ikisi eşittir (3240).
  • Örnekte cbc:TaxableAmount kullanılmamıştır; tanımı gereği Seçimli (0..1)'dir.
  • currencyID niteliği zorunludur.

Kardinaliteler:

ElemanKardinalite
Invoice/WithholdingTaxTotalSeçimli (0..n) — birden fazla tevkifat kodu için çoklanır
InvoiceLine/WithholdingTaxTotalSeçimli (0..n)
TaxSubtotal/TaxAmountZorunlu (1)
TaxSubtotal/TaxCategoryZorunlu (1)
TaxSubtotal/PercentŞemada Seçimli (0..1) — schematron zorunlu kılar
TaxSubtotal/TaxableAmountSeçimli (0..1)

Eleman sırası (şema geçerliliği için kritik):

  • Fatura seviyesinde WithholdingTaxTotal ana eleman tablosunda 42. sıradadır: TaxTotal (41) ile LegalMonetaryTotal (43) arasına, InvoiceLine'dan (44) önce yazılmalıdır.
  • Kalem seviyesinde InvoiceLine sırası şudur: ID (1), Note (0..1), InvoicedQuantity (1), LineExtensionAmount (1), OrderLineReference (0..n), DespatchLineReference (0..n), ReceiptLineReference (0..n), Delivery (0..n), AllowanceCharge (0..n), TaxTotal (0..1), WithholdingTaxTotal (0..n), Item (1), Price (1), SubInvoiceLine (0..n). Dikkat: LineExtensionAmount, InvoicedQuantity'den hemen sonra 4. sıradadır — Delivery ile AllowanceCharge arasında değildir; ve kalem seviyesinde TaxTotal 0..1'dir (0..n değil).

cac:TaxTotal ile cac:WithholdingTaxTotal paralel ve ayrı elemanlardır. Kılavuz TaxTotal'in üç kullanım biçimini tanımlarken tevkifatı şöyle açıklıyor: "'WithholdingTaxTotal': Tevkifatlı faturalarda, uygulanan tevkifat miktarları, oranları ve diğer bilgileri girilir. TaxAmount: Toplam tevkifat tutarı girilir. TaxSubtotal: Tevkifat kodu ve oranı bilgisi girilir." Yani tevkifat, TaxTotal içindeki KDV'yi azaltmaz; TaxTotal KDV'nin tamamını (TaxTypeCode 0015), WithholdingTaxTotal ise tevkif edilen kısmı ayrı ayrı bildirir.

Hesap sırası (korpustaki eleman tanımlarından türetilmiş):

  1. LineExtensionAmount = miktar × birim fiyat − iskonto
  2. TaxTotal/TaxSubtotal: TaxableAmount = matrah, Percent = KDV oranı, TaxAmount = matrah × oran, TaxTypeCode = 0015
  3. WithholdingTaxTotal/TaxSubtotal: Percent = tevkifat yüzdesi (tamsayı!), TaxAmount = 2. adımdaki KDV × (Percent / 100), TaxTypeCode = 601-627 / 801-825
  4. WithholdingTaxTotal/TaxAmount = tüm alt TaxSubtotal/TaxAmount değerlerinin toplamı

Korpus kurallarından inşa edilmiş tam TEVKIFAT fatura iskeleti. Parçaların hepsi korpustaki eleman tanımları ve schematron kısıtlarıyla uyumludur; ancak birleşik hâli GİB'in yayımladığı bir örnek değildir — GİB'in kendi TEVKIFAT.xml örnek dosyası bu korpusta yoktur.

<Invoice ...>
  <cbc:UBLVersionID>2.1</cbc:UBLVersionID>
  <cbc:ProfileID>TICARIFATURA</cbc:ProfileID>
  <cbc:ID>ABC2026000000001</cbc:ID>          <!-- 16 hane -->
  <cbc:InvoiceTypeCode>TEVKIFAT</cbc:InvoiceTypeCode>
  <cbc:DocumentCurrencyCode>TRY</cbc:DocumentCurrencyCode>
  ...
  <!-- 41: KDV'NİN TAMAMI -->
  <cac:TaxTotal>
    <cbc:TaxAmount currencyID="TRY">3600</cbc:TaxAmount>
    <cac:TaxSubtotal>
      <cbc:TaxableAmount currencyID="TRY">20000</cbc:TaxableAmount>
      <cbc:TaxAmount currencyID="TRY">3600</cbc:TaxAmount>
      <cbc:Percent>18</cbc:Percent>
      <cac:TaxCategory>
        <cac:TaxScheme>
          <cbc:Name>Katma Değer Vergisi</cbc:Name>
          <cbc:TaxTypeCode>0015</cbc:TaxTypeCode>
        </cac:TaxScheme>
      </cac:TaxCategory>
    </cac:TaxSubtotal>
  </cac:TaxTotal>

  <!-- 42: TEVKİF EDİLEN KISIM -->
  <cac:WithholdingTaxTotal>
    <cbc:TaxAmount currencyID="TRY">3240</cbc:TaxAmount>
    <cac:TaxSubtotal>
      <cbc:TaxAmount currencyID="TRY">3240</cbc:TaxAmount>
      <cbc:Percent>90</cbc:Percent>
      <cac:TaxCategory>
        <cac:TaxScheme>
          <cbc:TaxTypeCode>606</cbc:TaxTypeCode>
        </cac:TaxScheme>
      </cac:TaxCategory>
    </cac:TaxSubtotal>
  </cac:WithholdingTaxTotal>

  <!-- 43 -->
  <cac:LegalMonetaryTotal>...</cac:LegalMonetaryTotal>
  <!-- 44 -->
  <cac:InvoiceLine>...</cac:InvoiceLine>
</Invoice>

WithholdingTaxTotalCheck kuralının yaptıkları (3 assert):

  1. cbc:TaxTypeCode ve cbc:Percent her ikisi de dolu (boş/whitespace olamaz)
  2. Kod geçerliliği: contains($WithholdingTaxType, concat(',',TaxTypeCode,','))
  3. Kod + oran uyumu: contains($WithholdingTaxTypeWithPercent, concat(',',TaxTypeCode,Percent,','))

Bu kural UBL-TR_Main_Schematron.xml'de iki context'e bağlıdır (satır 175-177 ve 256-258) — yani hem fatura hem kalem seviyesi aynı üç kontrolden geçer. Context cac:TaxSubtotal olduğu için birden fazla TaxSubtotal varsa her biri ayrı ayrı denetlenir.

Kuralın YAPMADIKLARI — portalde kendin kontrol etmelisin:

  • Tevkifat tutarının (cbc:TaxAmount) KDV × oran ile tutarlılığını kontrol etmez
  • cac:WithholdingTaxTotal/cbc:TaxAmount ile alt TaxSubtotal/cbc:TaxAmount toplamının eşitliğini kontrol etmez
  • LegalMonetaryTotal/PayableAmount'tan tevkifatın düşülüp düşülmediğini kontrol etmez. PayableAmount üzerindeki tek schematron kuralı decimalCheck'tir (UBL-TR_Main_Schematron.xml satır 276-278) — yani sadece ondalık format kontrolü (noktadan önce en fazla 15, sonra en fazla 2 hane); tutar mantığına dair hiçbir denetim yoktur
  • Tevkifat varken cac:TaxTotal altında 0015 (KDV) bulunması şartını kontrol etmez

TEVKIFAT vs TEVKIFATIADE

Kod listesi kılavuzunun tanımı (V1.43, bölüm 1.4 InvoiceTypeCode): "tevkifat içeren faturalar için 'TEVKIFAT' değerini, tevkifat içeren faturaların iadesi için 'TEVKIFATIADE'". e-Arşiv / Yatırım Teşvik karşılıkları YTBTEVKIFAT ve YTBTEVKIFATIADE'dir.

TEVKIFATTEVKIFATIADE
Kim düzenlerSatıcı (hizmeti/malı veren)Alıcı (iade eden)
AmaçTevkifatlı satışTevkifatlı faturanın iadesi
InvoiceTypeCodeList'te tanımlı mıEvetEvet
Fatura seviyesi cac:WithholdingTaxTotalİZİNLİGeneralWithholdingTaxTotalCheck izin listesinde YOK
cac:BillingReference/cac:InvoiceDocumentReferenceZorunlu değilZORUNLU (IADEInvioceCheck)
ProfileID kısıtıYokYok
Yatırım Teşvik karşılığıYTBTEVKIFATYTBTEVKIFATIADE

TEVKIFATIADE'nin schematron sorunu — kritik. GeneralWithholdingTaxTotalCheck'in birinci assert'i, fatura seviyesinde cac:WithholdingTaxTotal varken fatura tipinin yalnızca TEVKIFAT, YTBTEVKIFAT, IADE, YTBIADE, SGK, SARJ veya SARJANLIK olmasına izin verir. TEVKIFATIADE ve YTBTEVKIFATIADE bu listede yoktur. Yani adı "tevkifat iadesi" olan fatura tipi, fatura seviyesinde tevkifat bloğu taşıyamaz — schematron reddeder. Bu, kılavuz metniyle schematron arasındaki gerçek bir çelişkidir.

Schematron'un ima ettiği iki çıkış yolu:

  1. Tevkifatlı iade faturasını TEVKIFATIADE yerine IADE (veya YTBIADE) tipiyle kes — bu iki tip izin listesindedir.
  2. TEVKIFATIADE tipini kullan ama tevkifatı yalnızca kalem seviyesinde (cac:InvoiceLine/cac:WithholdingTaxTotal) yaz — bu context assert'in kapsamı dışındadır ve sadece WithholdingTaxTotalCheck uygulanır.

Korpus bu tercihi açıkça yazmıyor; GİB test ortamında doğrulanması gereken bir noktadır.

IADEInvioceCheck — iade faturasının referans zorunluluğu (UBL-TR_Common_Schematron.xml, satır 362). TEVKIFATIADE, IADE, YTBIADE ve YTBTEVKIFATIADE tiplerinde şu dört şart birlikte sağlanmalıdır:

  1. En az 1 adet cac:BillingReference/cac:InvoiceDocumentReference bulunacak
  2. Her referansın cbc:DocumentTypeCode değeri İADE (İ ile) veya IADE (I ile) olacak — schematron ikisini de kabul eder
  3. Her referansın cbc:ID uzunluğu tam 16 karakter olacak (iade edilen faturanın numarası, ör. GIB2026000000001)
  4. Kısmi uyum yetmez: geçerli referans sayısı = toplam referans sayısı olmalı

Kural 20250128'de eklenmiş; 20250905, 20251209 ve 20260109 tarihlerinde güncellenmiştir.

Senaryo (ProfileID) kısıtları. InvoiceTypeCodeCheck bazı senaryolarda fatura tipini sınırlar:

ProfileIDİzin verilen fatura tipleri
ILAC_TIBBICIHAZSATIS, ISTISNA, TEVKIFAT, TEVKIFATIADE, IADE, IHRACKAYITLI
YATIRIMTESVIKSATIS, ISTISNA, IADE, TEVKIFAT, TEVKIFATIADE
IDISSATIS, ISTISNA, IADE, TEVKIFAT, TEVKIFATIADE, IHRACKAYITLI

Ayrıca IADE tipi için ters yönde bir kısıt vardır: "Fatura tipi IADE iken fatura profili sadece TEMELFATURA, EARSIVFATURA, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS veya KAMU olabilir." TEVKIFATIADE için böyle bir ProfileID kısıtı yoktur — yani TICARIFATURA senaryosunda TEVKIFATIADE kesilebilir ama IADE kesilemez. Yukarıdaki 1. çıkış yolunu (IADE'ye çevirme) uygularken bu kısıta takılmamak için ProfileID'yi de kontrol et.

Hangi Fatura Tiplerinde Tevkifat Bloğu Taşınabilir

GeneralWithholdingTaxTotalCheck kuralı UBL-TR_Common_Schematron.xml içinde abstract="true" tanımlıdır ve UBL-TR_Main_Schematron.xml'de <sch:rule context="inv:Invoice"> altında <sch:extends rule="GeneralWithholdingTaxTotalCheck"/> (satır 156) ile devreye alınır. İki aktif assert içerir.

Assert 1 — fatura tipi ile cac:WithholdingTaxTotal uyumu:

<sch:assert test="not(cbc:UBLVersionID ='2.1') or not(exists(cac:WithholdingTaxTotal))
  or cbc:InvoiceTypeCode = 'TEVKIFAT' or cbc:InvoiceTypeCode = 'YTBTEVKIFAT'
  or cbc:InvoiceTypeCode = 'IADE' or cbc:InvoiceTypeCode = 'YTBIADE'
  or cbc:InvoiceTypeCode = 'SGK' or cbc:InvoiceTypeCode = 'SARJ'
  or cbc:InvoiceTypeCode = 'SARJANLIK'">
  Uyumsuz fatura tipi: '...'. cac:WithholdingTaxTotal elamanı varken fatura tipi
  TEVKIFAT,YTBTEVKIFAT,IADE,YTBIADE,SGK,SARJ ve SARJANLIK olabilir.
</sch:assert>
Fatura tipiFatura seviyesi tevkifat bloğu
TEVKIFATİzinli
YTBTEVKIFATİzinli
IADEİzinli
YTBIADEİzinli
SGKİzinli
SARJİzinli
SARJANLIKİzinli
TEVKIFATIADEYasak
YTBTEVKIFATIADEYasak
Diğer tüm tipler (SATIS, ISTISNA, IHRACKAYITLI, OZELMATRAH, ISTISNAKAYITLI, KOMISYONCU, HKS, ... )Yasak

Assert 2 — 4171 (Petrol / Doğalgaz ÖTV Tevkifatı) kısıtı:

<sch:assert test="not(cbc:UBLVersionID ='2.1')
  or not(exists(cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme/cbc:TaxTypeCode[text() = '4171']))
  or cbc:InvoiceTypeCode = 'TEVKIFAT' or cbc:InvoiceTypeCode = 'IADE'
  or cbc:InvoiceTypeCode = 'SGK' or cbc:InvoiceTypeCode = 'YTBIADE'">

Dikkat: 4171 kodu WithholdingTaxTotal'da değil, normal cac:TaxTotal altında yazılır. 4171, TaxType listesinin elemanıdır; WithholdingTaxType'ta yer almaz. Kod listesindeki adı: "4171 Petrol Ve Doğalgaz Ürünlerine İlişkin Ötv Tevkifatı / PTR-DGZ ÖTV TEVKİFAT". Burada izin verilen fatura tipleri yalnızca dörttür: TEVKIFAT, IADE, SGK, YTBIADE — YTBTEVKIFAT, SARJ ve SARJANLIK bu listede yoktur.

Dosyada üçüncü bir assert daha vardır ama yorum satırına alınmıştır, aktif değildir: 4171 varken 0071 kodunun da bulunması şartı.

Kural kapsamı asimetriktir — çok önemli. GeneralWithholdingTaxTotalCheck'in context'i inv:Invoice olduğundan test içindeki cac:WithholdingTaxTotal yalnızca doğrudan çocuk elemanı arar. Bu nedenle:

KuralFatura seviyesiKalem seviyesi
WithholdingTaxTotalCheck (kod ve oran doğrulaması)UygulanırUygulanır
GeneralWithholdingTaxTotalCheck (fatura tipi kısıtı)UygulanırUygulanmaz

Yani kalem bazlı tevkifatta (cac:InvoiceLine/cac:WithholdingTaxTotal) kod ve oran denetlenir, ama fatura tipi kısıtı denetlenmez. Kalem bazlı tevkifat kılavuzda açıkça desteklenir: "WithholdingTaxTotal: Kalem bazlı tevkifat uygulanması durumunda bu eleman kullanılır."

Kamu e-Fatura (ProfileID = KAMU). Kamu e-Fatura Teknik Kılavuzu v1.5, kamu faturalarına uygulanan kural setinde GeneralWithholdingTaxTotalCheck'i iki ayrı tabloda listeler — yani kamu faturalarında da aynı tevkifat kuralları geçerlidir. Ek olarak şu üç kural devreye girer ve doldurulmazsa fatura reddedilir:

KuralŞart
PayeeFinancialAccountIDCheckIBAN zorunlu, regex ^TR\d{7}[A-Z0-9]{17}$
PayeeFinancialAccountCurrencyCodeCheckHesap para birimi zorunlu
BuyerCustomerPartyCheck10 haneli VKN'li (schemeID='VKN') BuyerCustomerParty zorunlu

Schematron değişiklik geçmişi (History.txt, doğrulanmış tarihler):

ÖğeGüncellenme tarihleri
GeneralWithholdingTaxTotalCheck20171016, 20210409, 20231228, 20260109
WithholdingTaxType20211201, 20220501
WithholdingTaxTypeWithPercent20190103, 20200402, 20220501, 20221101
IADEInvioceCheck20250128 (eklendi), 20250905, 20251209, 20260109

20221101'den bu yana (yaklaşık 3,8 yıldır) tevkifat kod ve oran listelerinde schematron değişikliği yoktur. 20260109, 20260312 ve 20260701 paketlerinde tevkifat listelerine dokunulmamıştır. Not: SARJ / SARJANLIK değerleri 20260701 paketindeki kural metninde bulunmakla birlikte History.txt'nin 20260701 kaydında GeneralWithholdingTaxTotalCheck listelenmemiştir — History.txt bu noktada eksiktir.

V1.31 → V1.43 Tevkifat Farkları

V1.31 (01.01.2023) ile V1.43 (27.07.2026) tevkifat tabloları satır satır karşılaştırıldı.

Kod kümesi: AYNI. Her ikisinde de 601-627 (27 kod) + 801-825 (25 kod) = 52 kod. Eklenen kod yok, silinen kod yok.

Oran akışı: 52 değerin 51'i aynı.

SıraKodV1.31V1.43Durum
1-18601-6184/10, 9/10, 7/10, 5/10, 5/10, 9/10, 9/10, 9/10, 7/10, 9/10, 9/10, 9/10, 9/10, 5/10, 7/10, 5/10, 7/10, 7/10AynıDeğişiklik yok
1961975/107/10TEK FARK
20-27620-6277/10, 9/10, 9/10, 5/10, 2/10, 3/10, 2/10, 5/10AynıDeğişiklik yok
28-52801-82525 × 10/10AynıDeğişiklik yok

Tek fark bir dizgi hatasının düzeltilmesidir. V1.31'de 619 kodunun oranı 75/10 (matematiksel olarak imkânsız, %750) olarak basılmıştı; V1.43'te 7/10 olarak düzeltildi. Schematron her iki dönemde de 61970 (yani %70) diyordu — dolayısıyla bu bir baskı hatasıydı, mevzuat değişikliği değil.

Metinsel / biçimsel farklar (kod ve oran etkilenmeden):

  1. Harf düzeni: V1.31'de 601-615 ve 617-627 isimleri BÜYÜK HARF ("YAPIM İŞLERİ İLE BU İŞLERLE..."), V1.43'te Başlık Düzeni ("Yapim İşleri İle Bu İşlerle..."). Dikkat: 616 satırı ile 801-825 bloğunun tamamı V1.31'de de zaten Başlık Düzeni'ndeydi — dönüşüm tüm tabloya uygulanmış değildir.
  2. Mevzuat atıfları güncellendi: V1.31'de birçok satır [GT 117-Bölüm (3.x.x)] (117 Seri No.lu KDV Genel Tebliği) diye atıf yapıyordu; V1.43'te bu atıflar ya kaldırılmış ya da [Kdvgut-(I/C-2.1.3.x.x)] (KDV Genel Uygulama Tebliği) ile değiştirilmiştir. Örnek: V1.31 "AĞAÇ VE ORMAN ÜRÜNLERİ TESLİMİ [GT 117-Bölüm (3.3.6)]" → V1.43 "Ağaç Ve Orman Ürünleri Teslimi" (atıfsız).
  3. 619 vs 818 isim tutarsızlığı her iki sürümde de duruyor: 619 = "Bakır, Çinko Ve Alüminyum Ürünlerinin Teslimi" (Kurşun yok) ama 818 = "Bakır, Çinko, Alüminyum ve Kurşun Ürünlerinin Teslimi" (Kurşun var). GİB bunu düzeltmemiştir.

Değişiklik geçmişi de bunu teyit ediyor: V1.32'den V1.43'e kadar (15.05.2023 – 27.07.2026) değişiklik açıklamalarında "tevkifat" kelimesi hiç geçmez — yalnızca İstisna kodları, ProfileID, InvoiceTypeCode, PartyIdentification, Ek Öğe Tanımlama Alanı gibi başlıklar vardır. V1.43'ün tek değişikliği "Kısmi İstisna Kodları Listesi güncellendi. Kısmi İstisna Kod Listesine yeni kod eklendi."dir.

2015'ten Bugüne: Değişen Oranlar, Değişmeyen İsimler

Korpustaki en eski tevkifat listesi Ekim 2015 tarihli "UBL-TR Kod Listeleri (İstisna, Tevkifat ve Muafiyet Kodları)" belgesidir.

Ekim 2015V1.43 (27.07.2026)
Kod aralığı601-623 + 650 (24 kod)601-627 + 801-825 (52 kod)
%100 tevkifat bloğuYok801-825 (25 kod)
"Diğer" kalemi650 "DİĞERLERİ" (2/10, 5/10, 7/10, 9/10)616 "Diğer Hizmetler" + 626 "Diğer Teslimler"
Mevzuat atfı[GT 117-Bölüm (3.x.x)][KDVGUT-(I/C-2.1.3.x.x)]
2015'te henüz olmayan kodlar624, 625, 626, 627 ve tüm 801-825 bloğu

601-623 kod ↔ hizmet eşleşmesi 2015'ten bugüne DEĞİŞMEMİŞTİR. (2015 PDF'inde de satır kaydırma artefaktı vardır; bu, farklı bir eşleşme olduğu anlamına gelmez.) Değişen tek isim 616'dır: 2015'te "5018 SAYILI KANUNA EKLİ CETVELLERDEKİ İDARE, KURUM VE KURUŞLARA YAPILAN DİĞER HİZMETLER [GT 117-Bölüm (3.2.13)]" iken V1.43'te "Diğer Hizmetler [Kdvgut-(I/C-2.1.3.2.13)]" olmuştur.

Asıl değişen oranlardır — 2015 → V1.43 tam farklar:

Kod2015V1.43Kod2015V1.43
6012/104/106155/107/10
6035/107/106175/107/10
6095/107/106185/107/10
6127/109/106195/107/10
6137/109/106205/107/10

Değişmeyenler: 602 (9/10), 604 (5/10), 605 (5/10), 606 (9/10), 607 (9/10), 608 (9/10), 610 (9/10), 611 (9/10), 614 (5/10), 616 (5/10), 621 (9/10), 622 (9/10), 623 (5/10).

Portal aksiyonu. 2023 başından beri tevkifat kod / oran tablosu sabittir; tevkifat tarafında migrasyon dönüşümü gerekmez — yalnızca 619 için 75/10 yazan hatalı kayıt varsa 7/10'a düzelt. Buna karşılık eski faturaları yeniden görüntülerken oranı faturanın düzenlenme tarihine göre versiyonlu bir tablodan çek, tek bir güncel tablodan değil; isimler için bu büyük ölçüde gereksizdir (yalnızca 616 değişmiştir), ama oranlar için zorunludur. WithholdingTaxTypeWithPercent içinde tutulan eski kombinasyonlar (60130, 60350, 60950, 61270, 61370, 61550, 62740) tam da bu geriye dönük ihtiyaç içindir — ancak yukarıda belirtildiği gibi bu geriye dönük set eksiktir.

e-Arşiv Raporunda Tevkifat Farklı Çalışır

e-Arşiv faturası UBL olarak düzenlenir (ProfileID = EARSIVFATURA, cac:WithholdingTaxTotal kullanılır), ancak GİB'e gönderilen e-Arşiv RAPORU tamamen farklı bir XML şemasıdır ve tevkifatı farklı taşır. e-Arşiv Teknik Kılavuzu V.1.18'de tevkifat elemanı üç ayrı bölümde tanımlıdır (3.3.2.15.3, 3.3.4.10.3, 3.3.6.12.3).

AlanKardinaliteAçıklama
tevkifatSeçimli (0..n)Kapsayıcı
tevkifatKoduZorunlu (1)Tevkifat kodu
tevkifatTutarZorunlu (1)Tevkifat tutarı
tevkifatOraniZorunlu (1)Tevkifat oranı

Kılavuzdaki örnek:

<earsiv:tevkifatKodu>410</earsiv:tevkifatKodu>
<earsiv:tevkifatTutari>36 </earsiv:tevkifatTutari>
<earsiv:tevkifatOrani>20</earsiv:tevkifatOrani>

Kod kaynağı farklıdır. Kılavuz açıkça yazıyor: "Tevkifat kodu alanına İnternet Vergi Dairesi Beyanname Düzenleme Programında yayınlanan kodlardan ilgili olan yazılmalıdır." Yani WithholdingTaxType (601-627 / 801-825) değil, Beyanname Düzenleme Programı (BDP) kodları kullanılır. Örnekteki 410 kodu WithholdingTaxType listesinde yoktur. tevkifatOrani ise UBL'deki cbc:Percent ile aynı yüzde mantığındadır (örnekte 20 = 2/10).

Eleman adı tutarsızlığı: kılavuzun açıklama satırında alan adı tevkifatTutar, örnek XML'de ise <earsiv:tevkifatTutari> (sonda 'i' var) yazılıdır — şema dosyasından teyit edilmelidir.

e-Arşiv schematron'unda (earsiv_schematron.xsl) tevkifatla ilgili tek kural Yatırım Teşvik'e ilişkindir: faturaTip değeri YTBSATIS, YTBISTISNA, YTBIADE, YTBTEVKIFAT veya YTBTEVKIFATIADE olduğunda ytbBilgileri alanı zorunludur.

Portal aksiyonu: e-Arşiv modülünde iki ayrı tevkifat kod tablosu tutmalısın — biri UBL faturaya (601-627 / 801-825), biri e-Arşiv raporuna (BDP kodları). Bu ikisi arasındaki eşleme tablosu bu korpusta yoktur.

Doğrulanamayanlar

Aşağıdaki noktalar korpusta yer almadığı için doğrulanamamıştır. KDV Genel Uygulama Tebliği (KDVGUT) metni korpusta bulunmadığından, kılavuzun atıf yaptığı I/C-2.1.3.x.x bölümlerinin içeriği hiçbir şekilde teyit edilememektedir. Bu maddeleri portale kodlamadan önce GİB'in birincil kaynaklarından (KDVGUT, e-Fatura test ortamı, GİB duyuruları) doğrula.

KonuNeden doğrulanamadı
Oran geçiş tarihleri601'in 2/10 → 3/10 → 4/10, 603'ün 5/10 → 7/10 vb. geçişlerinin hangi tarihte yürürlüğe girdiği korpusta yok. Elimizde yalnızca kılavuz sürüm tarihleri ve schematron güncelleme tarihleri var; bunlar yürürlük tarihi değildir. Hangi fatura tarihinde hangi oranın uygulanacağı KDVGUT'tan doğrulanmalıdır.
Hangi alıcıda 6xx yerine 8xx kullanılır601-627 (kısmi) ile 801-825 (%100) arasındaki seçim kriterinin ne olduğu — "belirlenmiş alıcı" tanımı, alıcının kurum tipi vb. — korpusta hiç yazmıyor. Kılavuz yalnızca kod ve oranı verir, uygulama şartını vermez.
Tevkifat alt sınırıTevkifat uygulanması için gereken asgari işlem bedeli ve bu tutarın 2026 değeri korpusta yok.
PayableAmount'a ne yazılacağıTevkifat düşülmüş net tutarın mı (örnekte 20.360) yoksa brüt tutarın mı (23.600) yazılacağı korpusta hiçbir yerde belirtilmemiş; schematron'da PayableAmount üzerinde yalnızca ondalık format kontrolü (decimalCheck) var, tutar mantığı denetimi yok.
KDV geri hesabı (3240 ÷ 0,90 = 3600)Kılavuz örneğindeki 3240 rakamından türetilmiş bir çıkarımdır; korpusta bu aritmetik yazılı değildir.
TEVKIFATIADE'de tevkifatın nasıl taşınacağıFatura tipini IADE'ye çevirmek mi, yoksa tevkifatı kalem seviyesine taşımak mı gerektiği korpusta yazmıyor. GİB test ortamında denenmelidir.
BDP ↔ UBL tevkifat kodu eşleme tablosue-Arşiv raporundaki Beyanname Düzenleme Programı kodları (ör. 410) ile UBL kodları (601-627 / 801-825) arasındaki eşleme tablosu korpusta yok.
619 vs 818 "Kurşun" tutarsızlığı619'un adında Kurşun yok, karşılığı olan 818'in adında var. Hangisinin doğru olduğu korpustan çözülemez.
e-Arşiv tevkifatTutar vs tevkifatTutariKılavuz açıklaması ile örnek XML çelişiyor; doğrusu ancak e-Arşiv XSD dosyasından belirlenebilir, o dosya korpusta yok.
"09.01.2026 güncellemesi YTBTEVKIFAT/YTBIADE eklenmesiyle ilgilidir"Bu bir çıkarımdır; History.txt güncellemenin içeriğini yazmıyor.
Tevkifat listelerini hangi sürümün güncellediği (V1.29 mu V1.30 mu)V1.43'ün değişiklik geçmişi tablosunda açıklama sütunu kaymış olabilir. Schematron'daki son tevkifat güncellemesi 20221101, yani V1.30'un (01.11.2022) tarihine denk geliyor; "Tevkifat kod listeleri güncellendi" açıklaması V1.29 (15.06.2022) yerine V1.30'a ait olabilir. Sonuç (2023'ten beri değişiklik yok) her iki durumda da geçerlidir.
GİB platform seviyesindeki ek kontrollerSchematron'un yapmadığı tutar tutarlılık kontrollerini (tevkifat = KDV × oran, alt toplamların eşitliği) GİB'in kendi sunucusunun ayrıca yapıp yapmadığı korpustan anlaşılamıyor.

Istisna, Ozel Matrah ve Ihrac Kayitli Kodlari — Icerikleriyle

Bu bolumdeki tum kod-ad eslesmeleri uc bagimsiz kaynakla capraz dogrulanmistir: UBL-TR_Kod_Listeleri_-_V_1.43_.txt (27.07.2026), UBL-TR_Kod_Listeleri-V_1_31_.txt (01.01.2023) ve UBL-TR_Kod_Listeleri-Istisna_Tevkifat_ve_Muafiyet_Kodlari_.txt (Ekim 2015); gecerlilik listeleri ise 24.08.2026 tarihli e-Fatura paketindeki UBL-TR_Codelist.xml schematron degiskenlerinden alinmistir.

Kilavuz metnini okurken dikkat: V1.43 ve V1.31 PDF'lerinden cikarilan duz metinde istisna tablolarinin SOL sutunu (KODU) ile SAG sutunu (ADI) ayri ayri akmaktadir. Yani 351* ile ayni satirda gorunen "Imalat Sanayii ile Turizme Yonelik..." metni 351'in adi degildir. Ham cikti soyledir:

```

350 İmalatçıların Mal İhracatları

351* İmalat Sanayii ile Turizme Yönelik Yatırım Teşvik Belgesi Kapsamındaki İnşaat İşlerine

İlişkin Teslim ve Hizmetler

Elektrik Motorlu Taşıt Araçlarının Geliştirilmesine Yönelik Mühendislik Hizmetleri

```

Dogru eslesme, kod sutunundaki N kodun ad sutunundaki N ad ile sirayla eslenmesiyle elde edilir. Kod sayisi = ad sayisi denetimi yapilmistir (tam istisna s.10: 24/24, s.11: 22/22, kismi istisna s.8: 8/8). Asagidaki tablolar bu dogrulanmis eslesmedir.

Schematron gecerlilik listeleri (UBL-TR_Codelist.xml)

DegiskenIcerikIslevi
TaxExemptionReasonCodeType001, 101-108, 151, 201-250 (39 kod), 301-307, 309-338, 340-344, 350, 351, 501, 555, 801-812, 701-704Ana gecerlilik listesi. Bu listede olmayan kod "Gecersiz cbc:TaxExemptionReasonCode niteligi" hatasi verir. 308 ve 339 bu listede YOKTUR.
YatirimTesvikTaxExemptionReasonCodeType,308,339,Yalnizca YATIRIMTESVIK senaryosunda / YTB* fatura tiplerinde gecerli kodlar
istisnaTaxExemptionReasonCodeType001, 101-108, 201-250, 301-344 (308 ve 339 dahil), 350, 501Bu listedeki kod, fatura tipini ISTISNA/IADE/IHRACKAYITLI/SGK/YTBISTISNA/YTBIADE olmaya zorlar. 151, 351, 555 bu listede YOKTUR.
ozelMatrahTaxExemptionReasonCodeType,801,802,803,804,805,806,807,808,809,810,811,812,Fatura tipini OZELMATRAH/IADE/SGK olmaya zorlar
ihracExemptionReasonCodeType,701,702,703,704,Fatura tipini IHRACKAYITLI/IADE/SGK olmaya zorlar

TAM ISTISNA KODLARI LISTESI (301-351) — TAM TABLO

46 kodun tamami asagidadir. 345-349 arasi kod YOKTUR.

KodAciklama (V1.43)Kanun maddesi
30111/1-a Mal İhracatıKDVK 11/1-a
30211/1-a Hizmet İhracatıKDVK 11/1-a
30311/1-a Roaming HizmetleriKDVK 11/1-a
30413/a Deniz Hava ve Demiryolu Taşıma Araçlarının Teslimi İle İnşa, Tadil, Bakım ve OnarımlarıKDVK 13/a
30513/b Deniz ve Hava Taşıma Araçları İçin Liman Ve Hava Meydanlarında Yapılan HizmetlerKDVK 13/b
30613/c Petrol Aramaları ve Petrol Boru Hatlarının İnşa ve Modernizasyonuna İlişkin Yapılan Teslim ve HizmetlerKDVK 13/c
30713/c Maden Arama, Altın, Gümüş ve Platin Madenleri İçin İşletme, Zenginleştirme Ve Rafinaj Faaliyetlerine İlişkin Teslim Ve Hizmetler[KDVGUT-(II/8-4)]KDVK 13/c
30813/d Teşvikli Yatırım Mallarının TeslimiKDVK 13/d — yalnizca YATIRIMTESVIK / YTB*
30913/e Liman Ve Hava Meydanlarının İnşası, Yenilenmesi Ve GenişletilmesiKDVK 13/e
31013/f Ulusal Güvenlik Amaçlı Teslim ve HizmetlerKDVK 13/f
31114/1 Uluslararası TaşımacılıkKDVK 14/1
31215/a Diplomatik Organ Ve Misyonlara Yapılan Teslim ve HizmetlerKDVK 15/a
31315/b Uluslararası Kuruluşlara Yapılan Teslim ve HizmetlerKDVK 15/b
31419/2 Usulüne Göre Yürürlüğe Girmiş Uluslar Arası Anlaşmalar Kapsamındaki İstisnalarKDVK 19/2
31514/3 İhraç Konusu Eşyayı Taşıyan Kamyon, Çekici ve Yarı Romorklara Yapılan Motorin TeslimleriKDVK 14/3
31611/1-a Serbest Bölgelerdeki Müşteriler İçin Yapılan Fason HizmetlerKDVK 11/1-a
31717/4-s Engellilerin Eğitimleri, Meslekleri ve Günlük Yaşamlarına İlişkin Araç-Gereç ve Bilgisayar ProgramlarıKDVK 17/4-s
318Geçici 29 3996 Sayılı Kanuna Göre Yap-İşlet-Devret Modeli Çerçevesinde Gerçekleştirilecek Projeler, 3359 Sayılı Kanuna Göre Kiralama Karşılığı Yaptırılan Sağlık Tesislerine İlişkin Projeler ve 652 Sayılı Kanun Hükmünde Kararnameye Göre Kiralama Karşılığı Yaptırılan Eğitim Öğretim Tesislerine İlişkin Projelere İlişkin Teslim ve HizmetlerKDVK Geç. 29
31913/g Başbakanlık Merkez Teşkilatına Yapılan Araç TeslimleriKDVK 13/g
320Geçici 16 (6111 sayılı K.) İSMEP Kapsamında İstanbul İl Özel İdaresi'ne Bağlı Olarak Faaliyet Gösteren "İstanbul Proje Koordinasyon Birimi"ne Yapılacak Teslim ve HizmetlerKDVK Geç. 16
321Geçici 26 Birleşmiş Milletler (BM) ile Kuzey Atlantik Antlaşması Teşkilatı (NATO) Temsilcilikleri ve Bu Teşkilatlara Bağlı Program, Fon ve Özel İhtisas Kuruluşları ile İktisadi İşbirliği ve Kalkınma Teşkilatına (OECD) Resmi Kullanımları İçin Yapılacak Mal Teslimi ve Hizmet İfaları, Bunların Sosyal ve Ekonomik Yardım Amacıyla Bedelsiz Olarak Yapacakları Mal Teslimi ve Hizmet İfaları İle İlgili Bunlara Yapılan Mal Teslimi ve Hizmet İfalarıKDVK Geç. 26
32211/1-a Türkiye'de İkamet Etmeyenlere Özel Fatura ile Yapılan Teslimler (Bavul Ticareti)KDVK 11/1-a
32313/ğ 5300 Sayılı Kanuna Göre Düzenlenen Ürün Senetlerinin İhtisas/Ticaret Borsaları Aracılığıyla İlk TeslimiKDVK 13/ğ
32413/h Türkiye Kızılay Derneğine Yapılan Teslim ve Hizmetler ile Türkiye Kızılay Derneğinin Teslim ve HizmetleriKDVK 13/h
32513/ı Yem TeslimleriKDVK 13/ı
32613/ı Gıda, Tarım ve Hayvancılık Bakanlığı Tarafından Tescil Edilmiş Gübrelerin TeslimiKDVK 13/ı
32713/ı Gıda, Tarım ve Hayvancılık Bakanlığı Tarafından Tescil Edilmiş Gübrelerin İçeriğinde Bulunan Hammaddelerin Gübre Üreticilerine TeslimiKDVK 13/ı
32813/i Konut veya İşyeri TeslimleriKDVK 13/i
329Eğitimde Fırsatları Artırma ve Teknolojiyi İyileştirme Hareketi (FATİH) projesi Kapsamında Milli Eğitim Bakanlığına Yapılacak Mal Teslimi ve Hizmet İfası
330KDV 13/j md. Organize Sanayi Bölgeleri ile Küçük Sanayi Sitelerinin İnşasına İlişkin Teslim ve HizmetlerKDVK 13/j
331KDV 13/m md. Ar-Ge, Yenilik ve Tasarım Faaliyetlerinde Kullanılmak Üzere Yapılan Yeni Makina ve Teçhizat Teslimlerinde İstisnaKDVK 13/m
332KDV Geçici 39. Md. İmalat Sanayiinde Kullanılmak Üzere Yapılan Yeni Makina ve Teçhizat Teslimlerinde İstisnaKDVK Geç. 39
333KDV 13/k md. Kapsamında Genel ve Özel Bütçeli Kamu İdarelerine, İl Özel İdarelerine, Belediyelere ve Köylere bağışlanan Tesislerin İnşasına İlişkin İstisnaKDVK 13/k
334KDV 13/l md. Kapsamında Yabancılara Verilen Sağlık Hizmetlerinde İstisnaKDVK 13/l
335KDV 13/n Basılı Kitap ve Süreli Yayınların TeslimleriKDVK 13/n
336Geçici 46 UEFA Müsabakaları Kapsamında Yapılacak Teslim ve HizmetlerKDVK Geç. 46 (V1.31'de "Geçici 40" idi)
337Türk Akım Gaz Boru Hattı Projesine İlişkin Anlaşmanın (9/h) Maddesi Kapsamındaki Gaz Taşıma HizmetleriTürkAkım Anl. 9/h
338İmalatçıların Mal İhracatları
339İmalat Sanayii ile Turizme Yönelik Yatırım Teşvik Belgesi Kapsamındaki İnşaat İşlerine İlişkin Teslim ve Hizmetleryalnizca YATIRIMTESVIK / YTB*
340Elektrik Motorlu Taşıt Araçlarının Geliştirilmesine Yönelik Mühendislik Hizmetleri
341Afetzedelere Bağışlanacak Konutların İnşasına İlişkin İstisna
342Genel Bütçeli Kamu İdarelerine Bağışlanacak Taşınmazların İnşasına İlişkin İstisna
343Genel Bütçeli Kamu İdarelerine Bağışlanacak Konutların Yabancı Devlet Kurum ve Kuruluşlarına Teslimine İlişkin İstisna
34413/o Milli Savunma ve İç Güvenlik İhtiyaçlarında Kullanılmak Üzere Taşıt TeslimiKDVK 13/o
350Diğerleri
351*KDV - İstisna Olmayan Diğer* dipnotlu, ISTISNA DEGILDIR

351 dipnotu (birebir): "*1 no.lu kdv beyannamesinin doldurulmasına ilişkin açıklamalar ve işlem kodlari dışındaki, istisna olmayan ancak 0 KDV'li fatura oluşturulması gereken durumlarda kullanılacaktır."


KISMI ISTISNA KODLARI LISTESI (201-250) — TAM TABLO

Schematron'da gecerli 39 kodun tamami asagidadir. 203, 210, 222, 224 ve 243-249 kodlari YOKTUR.

KodAciklama (V1.43)
20117/1 Kültür ve Eğitim Amacı Taşıyan İşlemler
20217/2-a Sağlık, Çevre Ve Sosyal Yardım Amaçlı İşlemler
20417/2-c Yabancı Diplomatik Organ Ve Hayır Kurumlarının Yapacakları Bağışlarla İlgili Mal Ve Hizmet Alışları
20517/2-d Taşınmaz Kültür Varlıklarına İlişkin Teslimler ve Mimarlık Hizmetleri
20617/2-e Mesleki Kuruluşların İşlemleri
20717/3 Askeri Fabrika, Tersane ve Atölyelerin İşlemleri
20817/4-c Birleşme, Devir, Dönüşüm ve Bölünme İşlemleri
20917/4-e Banka ve Sigorta Muameleleri Vergisi Kapsamına Giren İşlemler
21117/4-h Zirai Amaçlı Su Teslimleri İle Köy Tüzel Kişiliklerince Yapılan İçme Suyu teslimleri
21217/4-ı Serbest Bölgelerde Verilen Hizmetler
21317/4-j Boru Hattı İle Yapılan Petrol Ve Gaz Taşımacılığı
21417/4-k Organize Sanayi Bölgelerindeki Arsa ve İşyeri Teslimleri İle Konut Yapı Kooperatiflerinin Üyelerine Konut Teslimleri
21517/4-l Varlık Yönetim Şirketlerinin İşlemleri
21617/4-m Tasarruf Mevduatı Sigorta Fonunun İşlemleri
21717/4-n Basın-Yayın ve Enformasyon Genel Müdürlüğüne Verilen Haber Hizmetleri
218KDV 17/4-o md. Gümrük Antrepoları, Geçici Depolama Yerleri ile Gümrüklü Sahalarda Vergisiz Satış Yapılan İşyeri, Depo ve Ardiye Gibi Bağımsız Birimlerin Kiralanması
219Hazine, Toplu Konut İdaresi Başkanlığı, Belediyeler, il özel idareleri ve yatırım izleme ve koordinasyon başkanlıklarının İşlemleri
22017/4-r İki Tam Yıl Süreyle Sahip Olunan Taşınmaz ve İştirak Hisseleri ile 15/7/2023 tarihinden önce kurumların aktifinde kayıtlı Taşınmaz satışı
221Geçici 15 Konut Yapı Kooperatifleri, Belediyeler ve Sosyal Güvenlik Kuruluşlarına Verilen İnşaat Taahhüt Hizmeti
223Geçici 20/1 Teknoloji Geliştirme Bölgelerinde Yapılan İşlemler
225Geçici 23 Milli Eğitim Bakanlığına Yapılan Bilgisayar Bağışları İle İlgili Teslimler
22617/2-b Özel Okulları, Üniversite ve Yüksekokullar Tarafından Verilen Bedelsiz Eğitim Ve Öğretim Hizmetleri
22717/2-b Kanunların Gösterdiği Gerek Üzerine Bedelsiz Olarak Yapılan Teslim ve Hizmetler
22817/2-b Kanunun (17/1) Maddesinde Sayılan Kurum ve Kuruluşlara Bedelsiz Olarak Yapılan Teslimler
229Gıda Bankacılığı Faaliyetinde Bulunan Darülacezeye, Dernek ve Vakıflara Bağışlanan, Gıda, Temizlik, Giyecek ve Yakacak Maddeleri
23017/4-g Külçe Altın, Külçe Gümüş Ve Kiymetli Taşlarin Teslimi
23117/4-g Metal Plastik, Lastik, Kauçuk, Kağit, Cam Hurda Ve Atıkların Teslimi
23217/4-g Döviz, Para, Damga Pulu, Değerli Kağıtlar, Hisse Senedi ve Tahvil Teslimleri
2332942 Sayılı Kamulaştırma Kanunu Kapsamında Taşınmazların Kamulaştırmayı Yapan Devlet ve Kamu Tüzel Kişilerine Devri
23417/4-ş Konut Finansmanı Amacıyla Teminat Gösterilen ve İpotek Konulan Konutların Teslimi
23516/1-c Transit ve Gümrük Antrepo Rejimleri İle Geçici Depolama ve Serbest Bölge Hükümlerinin Uygulandığiı Malların Teslimi
23619/2 Usulüne Göre Yürürlüğe Girmiş Uluslararası Anlaşmalar Kapsamındaki İstisnalar (İade Hakkı Tanınmayan)
23717/4-t 5300 Sayılı Kanuna Göre Düzenlenen Ürün Senetlerinin İhtisas/Ticaret Borsaları Aracılığıyla İlk Teslimlerinden Sonraki Teslim
23817/4-u Varlıkların Varlık Kiralama Şirketlerine Devri İle Bu Varlıkların Varlık Kiralama Şirketlerince Kiralanması ve Devralınan Kuruma Devri
23917/4-y Taşınmazların Finansal Kiralama Şirketlerine Devri, Finansal Kiralama Şirketi Tarafından Devredene Kiralanması ve Devri
24017/4-z Patentli Veya Faydalı Model Belgeli Buluşa İlişkin Gayri Maddi Hakların Kiralanması, Devri ve Satışı
241TürkAkım Gaz Boru Hattı Projesine İlişkin Anlaşmanın (9/b) Maddesinde Yer Alan Hizmetler
242KDV 17/4-ö md. Gümrük Antrepoları, Geçici Depolama Yerleri ile Gümrüklü Sahalarda, İthalat ve İhracat İşlemlerine konu mallar ile transit rejim kapsamında işlem gören mallar için verilen ardiye, depolama ve terminal hizmetleri
250Diğerleri

Not: UBL-TR kilavuzlari kismi ve tam istisnayi yalnizca iki ayri liste basligi ile ayirir; yuklenilen KDV'nin indirim/iade hakki farkina dair bir aciklama korpusta yoktur (bu ayrim KDV mevzuatinda tanimlidir). Korpustaki tek isaret 236 kodunun adindaki "(İade Hakkı Tanınmayan)" ibaresidir. Portalda kod secimini yine de bu iki liste basligina gore gruplamak dogrudur.


Diger kod gruplari: 001, 101-108, 151, 501, 555

Bu kodlar KDV istisnasi degildir; farkli vergi turlerinin istisna listeleridir ve ayni cbc:TaxExemptionReasonCode alaninda kullanilirlar.

KONAKLAMA VERGISI ISTISNA KODLARI LISTESI (tek kod):

KodAdi
001Diplomatik İstisna

OTV ISTISNA KODLARI LISTESI:

KodAdi
101İhracat İstisnası
102Diplomatik İstisna
103Askeri Amaçlı İstisna
104Petrol Arama Faaliyetlerinde Bulunanlara Yapılan Teslimler
105Uluslararası Anlaşmadan Doğan İstisna
106Diğer İstisnalar
1077/a Maddesi Kapsamında Yapılan Teslimler
108Geçici 5. Madde Kapsamında Yapılan Teslimler
151**ÖTV - İstisna Olmayan Diğer

151 dipnotu (birebir): "** 4760 s. ÖTV Kanununa göre istisna olmayan ancak 0 ÖTV'li fatura oluşturulması gereken durumlarda kullanılacaktır."

DIGER ISLEM TURU KODLARI LISTESI:

KodAdi
555KDV Oran Kontrolüne Tabi Olmayan Satışlar

Kilavuz aciklamasi (birebir): "Faaliyet ve sicil servislerinde faaliyet koduna uygun KDV oranı bulunmayan satışlarda (yansıtma, mükellefin aktifine kayıtlı demirbaş/taşıt satışı gibi) kullanılacaktır."

501: UBL-TR_Codelist.xml icinde hem TaxExemptionReasonCodeType hem istisnaTaxExemptionReasonCodeType listelerinde yer alir (istisna listesinin son elemanidir: ...,344,350,501,). Ancak korpustaki hicbir kilavuzda 501 kodunun adi/aciklamasi yoktur — ne V1.43, ne V1.31, ne 2015 tarihli Istisna/Tevkifat/Muafiyet kilavuzunun tablolarinda gecmez. Davranissal olarak 501, istisna listesinde bulundugu icin fatura tipini ISTISNA/IADE/IHRACKAYITLI/SGK/YTBISTISNA/YTBIADE olmaya zorlar. Portalda 501 kullanilmamalidir.

151 ve 351 kritik farki — istisna kisitini TETIKLEMEZLER

KodTaxExemptionReasonCodeTypeistisnaTaxExemptionReasonCodeTypeSonuc
001, 101-108VARVARFatura tipi ISTISNA/IADE/IHRACKAYITLI/SGK/YTBISTISNA/YTBIADE olmak ZORUNDA
151VARYOKSerbest — SATIS tipinde de kullanilabilir
351VARYOKSerbest — SATIS tipinde de kullanilabilir
555VARYOK (ayrica assert'te != 555 ile acikca dislanmis)Kendi ozel kural setine tabi (asagida)
501VARVARFatura tipi kisitini tetikler (ama adi tanimsiz)

555'in ozel kurallari (DemirbasKDVTaxExemptionCheck, context inv:Invoice/cac:TaxTotal)

  1. 555 yalnizca ProfileID ∈ {TEMELFATURA, TICARIFATURA, EARSIVFATURA} iken kullanilabilir; InvoiceTypeCode ISTISNA veya IHRACKAYITLI olamaz; EARSIVFATURA senaryosunda YTB ile baslayan fatura tipleri (YTBSATIS, YTBIADE, YTBISTISNA, YTBTEVKIFAT, YTBTEVKIFATIADE) ile de kullanilamaz. Hata: "&lt;ProfileID&gt; senaryolu &lt;InvoiceTypeCode&gt; fatura tipinde '555' vergi muafiyet kodu kullanılamaz."
  2. 555 varken KDV sifir gecilemez: ne satir (cac:InvoiceLine/cac:TaxTotal/cac:TaxSubtotal) ne belge seviyesinde, 0015 vergi kodlu bir TaxSubtotal'da cbc:Percent = 0 veya cbc:TaxAmount = 0 olamaz. Hata: "Vergi istisna muafiyet kodu 555 olduğu durumda KDV 0 geçilemez."

555'in yururluk durumu: 555, kod listesine V1.42 (12.03.2026) ile eklendi ve schematron'a 20260312 tarihinde girdi. 16.03.2026 duyurusu ile 1 Nisan 2026'da devreye alinacagi bildirildi, ancak 27.03.2026 duyurusu ile ikinci bir duyuruya kadar ERTELENDI: "sicil ve faaliyet kodu karşılığı KDV oran kontrolleri ... Başkanlığımız tarafından yapılacak ikinci bir duyuruya kadar ertelenmiştir." Buna ragmen 555 kodu ve DemirbasKDVTaxExemptionCheck kurali 24.08.2026 tarihli guncel paketin schematron'unda HALA MEVCUTTUR — ertelenen sey faaliyet/sicil kodu karsiligi KDV oran kontroludur, kodun kendisi kural setinden cikarilmamistir. Portalda 555 secenegini pasif/gizli tutup kurali yine de implemente etmek dogru yaklasimdir.


OZEL MATRAH KODLARI (801-812) — ve TEVKIFAT 801-825 ile KARISTIRMA UYARISI

UYARI — 801-812 SAYILARI IKI AYRI LISTEDE GECER VE TAMAMEN FARKLI SEYLER ANLATIR. Fark, sayinin yazildigi XML elemanidir. Portal kodunda bu iki listeyi ayni enum'dan beslemek, sessiz ve tespiti cok zor bir hata kaynagidir.

OZEL MATRAHTEVKIFAT
Schematron listesiozelMatrahTaxExemptionReasonCodeType = ,801,...,812,WithholdingTaxType = ,601,...,627,801,...,825,
Yazildigi elemancbc:TaxExemptionReasonCodecbc:TaxTypeCode
XPathcac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReasonCodecac:WithholdingTaxTotal/cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme/cbc:TaxTypeCode
Izinli cbc:InvoiceTypeCodeOZELMATRAH, IADE, SGKTEVKIFAT, YTBTEVKIFAT, IADE, YTBIADE, SGK, SARJ, SARJANLIK
Kaynak assertTaxExemptionReasonCodeCheck (Common Schematron satir 322)GeneralWithholdingTaxTotalCheck (Common Schematron satir 292-293)
AnlamiOzel matrah sekliTam tevkifat turu (oran 10/10)
Kod araligi801-812 (12 kod)601-627 (kismi) + 801-825 (tam)

Kilavuz bu ayrimi acikca yapar: TaxTypeCode icin "Diğer yandan bu eleman "WithholdingTaxTotal" elemanı altında bulunduğunda (tevkifatlı fatura durumu) aşağıdaki kod listesi kullanılacaktır."

OZEL MATRAH KODLARI LISTESI (801-812) — TAM TABLO, karsisinda ayni sayinin tevkifat karsiligi:

KodOZEL MATRAH adi (cbc:TaxExemptionReasonCode)AYNI SAYININ tevkifat karsiligi (cbc:TaxTypeCode)
801Milli Piyango, Spor Toto vb. OyunlarYapım İşleri ile Bu İşlerle Birlikte İfa Edilen Mühendislik-Mimarlık ve Etüt-Proje Hizmetleri
802At Yarışları ve Diğer Müşterek Bahis ve Talih OyunlarıEtüt, Plan-Proje, Danışmanlık, Denetim ve Benzeri Hizmetler
803Profesyonel Sanatçıların Yer Aldığı Gösteriler, Konserler, Profesyonel Sporcuların Katıldığı Sportif Faaliyetler, Maçlar, Yarışlar ve YarışmalarMakine, Teçhizat, Demirbaş ve Taşıtlara Ait Tadil, Bakım ve Onarım Hizmetleri
804Gümrük Depolarında ve Müzayede Mahallerinde Yapılan SatışlarYemek Servis Hizmeti
805Altından Mamül veya Altın İçeren Ziynet Eşyaları İle Sikke Altınların TeslimiOrganizasyon Hizmeti
806Tütün Mamülleriİşgücü Temin Hizmetleri
807Muzır Neşriyat Kapsamındaki Gazete, Dergi vb. Periyodik YayınlarÖzel Güvenlik Hizmeti
808Gümüşten Mamul veya Gümüş İçeren Ziynet Eşyaları ile Sikke Gümüşlerin TeslimiYapı Denetim Hizmetleri
809Belediyeler Tarafından Yapılan Şehir İçi Yolcu Taşımacılığında Kullanılan Biletlerin ve Kartların Bayiler Tarafından SatışıFason Olarak Yaptırılan Tekstil ve Konfeksiyon İşleri, Çanta ve Ayakkabı Dikim İşleri ve Bu İşlere Aracılık Hizmetleri
810Ön Ödemeli Elektronik Haberleşme HizmetleriTuristik Mağazalara Verilen Müşteri Bulma/Götürme Hizmetleri
811TŞOF Tarafından Araç Plakaları ile Sürücü Kurslarında Kullanılan Bir Kısım Evrakın TeslimiSpor Kulüplerinin Yayın, Reklâm ve İsim Hakkı Gelirlerine Konu İşlemleri
812KDV Uygulanmadan Alınan İkinci El Motorlu Kara Taşıtı veya Taşınmaz TeslimiTemizlik Hizmeti

813-825 sayilari yalnizca tevkifat listesinde vardir, ozel matrah listesinde karsiliklari yoktur (813 Çevre ve Bahçe Bakım, 814 Servis Taşımacılığı, 815 Her Türlü Baskı ve Basım, 816 Hurda Metalden Elde Edilen Külçe, 817 Hurda Metalden Elde Edilenler Dışındaki Bakır/Çinko/Demir Çelik/Alüminyum/Kurşun Külçe, 818 Bakır/Çinko/Alüminyum/Kurşun Ürünleri, 819 İstisnadan Vazgeçenlerin Hurda ve Atık, 820 Metal/Plastik/Lastik/Kauçuk/Kâğıt/Cam Hurda ve Atıklardan Elde Edilen Hammadde, 821 Pamuk/Tiftik/Yün/Yapağı ile Ham Post ve Deri, 822 Ağaç ve Orman Ürünleri, 823 Yük Taşımacılığı, 824 Ticari Reklam, 825 Demir-Çelik Ürünleri). Ayrica WithholdingTaxTypeWithPercent listesinde tevkifat kodu+oran birlesik dogrulanir: 801-825 icin 801100, 802100 ... 825100 (yani %100 = 10/10). Ozel matrah kodlarinin boyle bir oran birlesimi yoktur.

Portal implementasyon kurali: Ozel matrah kodunu ureten kod yolu ile tevkifat kodunu ureten kod yolu birbirinden tamamen ayrilmali, iki ayri enum/tablo kullanilmalidir. Bir ozel matrah faturasinda cac:WithholdingTaxTotal blogu bulunmamalidir.


IHRAC KAYITLI KODLARI (701-704) — TAM TABLO

ihracExemptionReasonCodeType = ,701,702,703,704,

IHRAC KAYITLI SATISLAR ILE DIIB VE GECICI KABUL REJIMI KAPSAMINDAKI SATIS KODLARI LISTESI:

KodAdi
7013065 s. KDV Kanununun 11/1-c md. Kapsamındaki İhraç Kayıtlı Satış
702DİİB ve Geçici Kabul Rejimi Kapsamındaki Satışlar
7034760 s. ÖTV Kanununun 8/2 Md. Kapsamındaki İhraç Kayıtlı Satış
7043065 sayılı KDV Kanununun (11/1-c) maddesi ve 4760 s. Ötv Kanununun 8/2. Md. Kapsamındaki İhraç Kayıtlı Satış

704 YENIDIR — V1.31'de (01.01.2023) yalnizca 701, 702, 703 vardi.

Kisit 1 (fatura tipi): 701-704 kullanildiginda cbc:InvoiceTypeCode yalnizca IHRACKAYITLI, IADE veya SGK olabilir.

Kisit 2 (702 icin ek zorunluluk — portalda mutlaka uygulanmali): IHRACKAYITLI + 702 kombinasyonunda HER cac:InvoiceLine altinda su iki alan bulunmak zorundadir:

AlanXPathUzunluk
GTIPcac:Delivery/cac:Shipment/cac:GoodsItem/cbc:RequiredCustomsIDtam 12 karakter
Alici DIB satir koducac:Delivery/cac:Shipment/cac:TransportHandlingUnit/cac:CustomsDeclaration/cac:IssuerParty/cac:PartyIdentification/cbc:ID[@schemeID='ALICIDIBSATIRKOD']tam 11 karakter

Aksi halde: "IHRACKAYITLI fatura tipinde 702 Muafiyet sebebi için GTİP ve Alıcı Satır Kodu bilgisi girilmelidir". Ayni kosulu satir seviyesinde dogrulayan ikinci bir kural (IhracKayitliPartyIdentificationIDTypeCheck) de vardir.

Kisit 3: Ihrac kayitli satir tanimlayici semalari IhracKayitliPartyIdentificationIDType = ,SATICIDIBSATIRKOD,ALICIDIBSATIRKOD, ile sinirlidir.

Kisit 4: TaxExemptionReasonCheck kurali IHRACKAYITLI faturayi, "KDV=0 ise TaxExemptionReason zorunlu" kuralindan muaf tutar.


YATIRIMTESVIK ozel kodlari 308 ve 339 — 01.07.2026 kisitlamasi

En kritik yapisal degisiklik: 01.07.2026 (History damgasi 20260701) guncellemesiyle YatirimTesvikTaxExemptionReasonCodeType eklendi ve 308 ile 339 ana TaxExemptionReasonCodeType listesinden cikarildi.

<sch:let name="YatirimTesvikTaxExemptionReasonCodeType" value="',308,339,'"/>

Guncel durum:

Liste308339
TaxExemptionReasonCodeType (ana gecerlilik)YOK (...,306,307,309,310,...)YOK (...,337,338,340,341,...)
YatirimTesvikTaxExemptionReasonCodeTypeVARVAR
istisnaTaxExemptionReasonCodeTypeVARVAR

Sonuc: 308 ve 339, TaxExemptionReasonCodeCheck'in gecerlilik assert'inde ancak su kosulla kabul edilir: ../../../cbc:ProfileID = 'YATIRIMTESVIK' VEYA cbc:InvoiceTypeCodeYatirimTesvikEArsivInvoiceTypeCodeList = ,YTBSATIS,YTBIADE,YTBISTISNA,YTBTEVKIFAT,YTBTEVKIFATIADE,. Aksi halde "Geçersiz cbc:TaxExemptionReasonCode niteliği" hatasi alinir. TEMELFATURA/TICARIFATURA senaryosunda 308 veya 339 kullanilamaz. V1.31 doneminde 308/339'u serbestce kullanan bir portal, 24.08.2026 paketiyle hata almaya baslayacaktir.

Harcama tipi (cac:Item/cac:CommodityClassification/cbc:ItemClassificationCode) baglantisi:

KodAdiZorunlu harcama tipi
30813/d Teşvikli Yatırım Mallarının Teslimi01 = Makine ve teçhizat teslimleri ile yazılım ve gayrimaddi hak satış ve kiralamaları
339İmalat Sanayii ile Turizme Yönelik Yatırım Teşvik Belgesi Kapsamındaki İnşaat İşlerine İlişkin Teslim ve Hizmetler02 = İnşaat işlerine ilişkin mal teslimleri ve hizmet ifaları

YatirimTesvikItemClassificationCodeList = ,01,02,03,04,:

Harcama tipiAnlamiIstisna kodu
01Makine ve teçhizat teslimleri ile yazılım ve gayrimaddi hak satış ve kiralamaları308 zorunlu
02İnşaat işlerine ilişkin mal teslimleri ve hizmet ifaları339 zorunlu
03Arsa/Arazi Satışları0 KDV'li fatura duzenlenemez
04Diğer harcamalar0 KDV'li fatura duzenlenemez

Kilavuz birebir: "Bu kapsamda düzenlenecek faturalar "0" KDV'li olarak düzenlenemez." (03 ve 04 icin, iki kez gecer).

Zorlayici schematron kurallari (context = inv:Invoice/cac:InvoiceLine — SATIR SEVIYESI):

  • YatirimTesvikTaxExemptionReasonCode308Check: (ProfileID=YATIRIMTESVIK ve InvoiceTypeCode=ISTISNA) VEYA (ProfileID=EARSIVFATURA ve InvoiceTypeCode=YTBISTISNA) iken ItemClassificationCode='01' ise, o satirin cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory icinde TaxTypeCode='0015' ve TaxExemptionReasonCode='308' bulunmak ZORUNDA. Mesaj: "Yatırım Teşvik Faturasında ISTISNA Fatura Tipinde Harcama Tipi 01 ise 308 istisna kodu seçilebilir."
  • YatirimTesvikTaxExemptionReasonCode339Check: ayni kosullarda ItemClassificationCode='02' ise TaxExemptionReasonCode='339' ZORUNLU. Mesaj: "...Harcama Tipi 02 ise 339 istisna kodu seçilebilir."

Bu iki kural satir seviyesindedir — yani YATIRIMTESVIK/YTBISTISNA faturalarinda istisna kodu satir altindaki cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReasonCode alanina yazilir. Kilavuzun ornek XML'i satir seviyesinde <cbc:TaxExemptionReasonCode>339</cbc:TaxExemptionReasonCode> + <cbc:CalculationSequenceNumeric>-1</cbc:CalculationSequenceNumeric> + <cbc:Percent>20</cbc:Percent> gosterir. Ayrica ayni kilavuzun PaymentMeansCodeCheck blogu YATIRIMTESVIK+ISTISNA / EARSIVFATURA+YTBISTISNA icin "cbc:CalculationSequenceNumeric alanı -1 seçilmelidir" zorunlulugunu getirir.


Hangi istisna kod araligi hangi fatura tipiyle kullanilabilir

TaxExemptionReasonCodeCheck kurali yalnizca su context'te calisir: inv:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory (belge seviyesi). Kural 6 assert icerir (Common Schematron satir 315-327):

#AssertIcerik
A1Bos olmamacbc:TaxExemptionReason varsa bos olamaz. Mesaj: "cbc:TaxExemptionReason(vergi istisna muhafiyet sebebi) elemanı boş değer içermemelidir."
A2Kod gecerliligicbc:TaxExemptionReason varsa cbc:TaxExemptionReasonCode DOLU olmali ve TaxExemptionReasonCodeType icinde olmali; VEYA YatirimTesvikTaxExemptionReasonCodeType (308/339) icindeyse ProfileID='YATIRIMTESVIK' ya da InvoiceTypeCode ∈ YTB* olmali
A3Istisna → fatura tipiKod istisnaTaxExemptionReasonCodeType icindeyse (ve 555 degilse) fatura tipi ISTISNA, IADE, IHRACKAYITLI, SGK, YTBISTISNA, YTBIADE olmali
A4Ozel matrah → fatura tipiKod ∈ 801-812 ise fatura tipi OZELMATRAH, IADE, SGK olmali
A5Ihrac kayitli → fatura tipiKod ∈ 701-704 ise fatura tipi IHRACKAYITLI, IADE, SGK olmali
A6702 ozel kuraliIHRACKAYITLI + 702 → her satirda 12 haneli GTIP + 11 haneli ALICIDIBSATIRKOD

A3 assert'i (birebir XPath):

not(../../../cbc:UBLVersionID ='2.1') or not(cbc:TaxExemptionReasonCode != 555 and
contains($istisnaTaxExemptionReasonCodeType, concat(',',cbc:TaxExemptionReasonCode,',')))
or ../../../cbc:InvoiceTypeCode = 'ISTISNA' or ../../../cbc:InvoiceTypeCode = 'IADE'
or ../../../cbc:InvoiceTypeCode = 'IHRACKAYITLI' or ../../../cbc:InvoiceTypeCode = 'SGK'
or ../../../cbc:InvoiceTypeCode = 'YTBISTISNA' or ../../../cbc:InvoiceTypeCode = 'YTBIADE'

OZET MATRIS (portal validasyonu icin):

Kod araligiBulundugu listeIzinli cbc:InvoiceTypeCode
001 (konaklama), 101-108 (OTV)istisnaISTISNA, IADE, IHRACKAYITLI, SGK, YTBISTISNA, YTBIADE
201-242, 250 (kismi istisna)istisnaISTISNA, IADE, IHRACKAYITLI, SGK, YTBISTISNA, YTBIADE
301-307, 309-338, 340-344, 350 (tam istisna)istisnaISTISNA, IADE, IHRACKAYITLI, SGK, YTBISTISNA, YTBIADE
308, 339istisna + YatirimTesvikYukaridakiler + ek sart: ProfileID='YATIRIMTESVIK' VEYA InvoiceTypeCode ∈ {YTBSATIS, YTBIADE, YTBISTISNA, YTBTEVKIFAT, YTBTEVKIFATIADE}
501istisna (adi tanimsiz)ISTISNA, IADE, IHRACKAYITLI, SGK, YTBISTISNA, YTBIADE
151, 351yalnizca ana listeSerbest — SATIS dahil, istisna kisiti tetiklenmez
555ana liste + Demirbas kuraliISTISNA ve IHRACKAYITLI HARIC; ProfileID ∈ {TEMELFATURA, TICARIFATURA, EARSIVFATURA}; EARSIVFATURA'da YTB* haric; KDV 0 olamaz
701-704ihracIHRACKAYITLI, IADE, SGK
801-812ozelMatrahOZELMATRAH, IADE, SGK

Ek not — IADE faturasi: IADEInvioceCheck ile IADE / TEVKIFATIADE / YTBIADE / YTBTEVKIFATIADE tiplerinde cac:BillingReference/cac:InvoiceDocumentReference altinda cbc:DocumentTypeCode = 'IADE' (veya 'İADE') ve 16 haneli cbc:ID zorunludur. Ayrica InvoiceTypeCodeCheck: "Fatura tipi IADE iken fatura profili sadece TEMELFATURA , EARSIVFATURA, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS veya KAMU olabilir".


XML yerlesimi: TaxExemptionReasonCode / TaxExemptionReason ve KDV=0 kurali

Belge (dip toplam) seviyesi — schematron burayi denetler:

/Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReasonCode
/Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReason

Satir seviyesi — YATIRIMTESVIK / YTBISTISNA'da ZORUNLU:

/Invoice/cac:InvoiceLine/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReasonCode

cac:TaxCategory eleman tanimi (UBL-TR Ortak Elemanlar V0.7, bolum 2.2.58):

ElemanKardinaliteAciklama (birebir)
NameSecimli (0..1)
TaxExemptionReasonCodeSecimli (0..1)"Vergi muafiyet, istisna sebepleri bu alana kodlu olarak girilecektir. Bknz. Kod listeleri."
TaxExemptionReasonSecimli (0..1)"Vergi muafiyet, istisna sebepleri bu alana serbest metin olarak girilecektir."
TaxSchemeZorunlu (1)

Kilavuzdaki ornek:

<cac:TaxCategory>
  <cbc:TaxExemptionReasonCode>301</cbc:TaxExemptionReasonCode>
  <cac:TaxScheme>
    <cbc:Name>Katma Değer Vergisi</cbc:Name>
    <cbc:TaxTypeCode>0015</cbc:TaxTypeCode>
  </cac:TaxScheme>
</cac:TaxCategory>

KDV=0 KURALI (TaxExemptionReasonCheck, context inv:Invoice/cac:TaxTotal/cac:TaxSubtotal) — birebir mesaj:

"Vergi miktarı 0 olan 0015 vergi kodlu KDV için cbc:TaxExemptionReason(vergi istisna muhafiyet sebebi) elemanı bulunmalıdır ve boş değer içermemelidir."

Yani cbc:TaxAmount = 0 VE cac:TaxCategory/cac:TaxScheme/cbc:TaxTypeCode = '0015' ise cac:TaxCategory/cbc:TaxExemptionReason DOLU olmak zorundadir. Bu kuraldan muaf fatura tipleri: IADE, YTBIADE, IHRACKAYITLI, OZELMATRAH, SGK, KONAKLAMAVERGISI.

Satir seviyesi dogrulamanin durumu: Main Schematron'da satir seviyesi context, hem TaxExemptionReasonCodeCheck hem TaxExemptionReasonCheck icin yorum satiri yapilmistir:

<!--<sch:rule context="inv:Invoice/cac:InvoiceLine/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory">
    <sch:extends rule="TaxExemptionReasonCodeCheck"/>
</sch:rule>-->

Yani genel istisna kodu dogrulamasi yalnizca dip toplam seviyesinde yapilir; buna karsilik YATIRIMTESVIK 308/339 kurallari satir seviyesinde ayrica ve aktif olarak denetlenir.

Portal implementasyon kurallari:

  1. Genel istisna faturalarinda KDV satiri silinmez: cbc:TaxTypeCode = 0015 olarak kalir, cbc:TaxableAmount matrahi tasir, cbc:TaxAmount = 0 gecilir. UYARI: "her istisna faturasinda cbc:Percent = 0" seklinde bir kural schematron'da yoktur ve YATIRIMTESVIK/YTBISTISNA faturalari icin YANLISTIR — GIB'in YTB kilavuzundaki resmi ISTISNA orneginde Percent 20, TaxAmount 300.00 ve CalculationSequenceNumeric -1 kullanilir (KDV hesaplanir, fatura tutarina eklenmez). Percent=0 kurali yalnizca genel istisna faturalari icin uygulanmali, YTB istisnasi ayrik tutulmalidir.
  2. cbc:TaxExemptionReasonCode (kod) ve cbc:TaxExemptionReason (serbest metin) birlikte yazilmalidir: A2 assert'i Reason varken Code'un dolu ve gecerli olmasini, TaxExemptionReasonCheck ise KDV=0 iken Reason'in dolu olmasini sart kosar — pratikte ikisi birbirini zorunlu kilar.
  3. TaxExemptionReason metnini kod listesindeki resmi adla doldurmak en guvenlisidir; GIB'in YTB kilavuzu ornegi tam olarak bunu yapar (kod 339 + Reason = "İmalat Sanayi ile Turizme Yönelik Yatırım Teşvik Belgesi Kapsamındaki İnşaat İşlerine İlişkin Teslim ve Hizmetler").
  4. Belge seviyesindeki cbc:InvoiceTypeCode = ISTISNA (e-Arsiv Yatirim Tesvik'te YTBISTISNA).
  5. Serbest bolgedeki bir e-Fatura kullanicisina duzenlenen faturada, GIB SSS'ye gore senaryo IHRACAT degil temel/ticari fatura olmali, fatura tipi "istisna" secilmelidir.

Bos / kullanilmayan kod numaralari

Asagidaki numaralar hicbir listede tanimli degildir; portal validasyonunda bunlarin girilmesi engellenmelidir:

AralikBos numaralar
Kismi istisna (2xx)203, 210, 222, 224, 243, 244, 245, 246, 247, 248, 249
Tam istisna (3xx)345, 346, 347, 348, 349, 352-499
Ana liste disi 1xx109-150, 152-200
5xx502-554, 556-600
Ozel matrah / ihrac araliklari705-800 (ihrac 704'ten sonra), 813-825 (ozel matrah kapsaminda yok — yalnizca tevkifat listesinde)

Onemli uyari: 308 ve 339 "bos" degildir — tanimli kodlardir, sadece ana TaxExemptionReasonCodeType listesinden cikarilip YatirimTesvikTaxExemptionReasonCodeType'a tasinmislardir. Portalda bu ikisini "gecersiz kod" olarak isaretlemek hatali olur; kosullu gecerli olarak modellenmelidirler.

Bu bos numaralarin daha once kullanilip kaldirilip kaldirilmadigi korpusta belirtilmemistir.


V1.31 (01.01.2023) → V1.43 (27.07.2026) degisiklikleri

EKLENEN TAM ISTISNA KODLARI (5 adet):

KodAdi
329Eğitimde Fırsatları Artırma ve Teknolojiyi İyileştirme Hareketi (FATİH) projesi Kapsamında Milli Eğitim Bakanlığına Yapılacak Mal Teslimi ve Hizmet İfası
341Afetzedelere Bağışlanacak Konutların İnşasına İlişkin İstisna
342Genel Bütçeli Kamu İdarelerine Bağışlanacak Taşınmazların İnşasına İlişkin İstisna
343Genel Bütçeli Kamu İdarelerine Bağışlanacak Konutların Yabancı Devlet Kurum ve Kuruluşlarına Teslimine İlişkin İstisna
34413/o Milli Savunma ve İç Güvenlik İhtiyaçlarında Kullanılmak Üzere Taşıt Teslimi

(V1.31'de 328'den sonra dogrudan 330 geliyordu; 329 numarasi bostu.)

EKLENEN KISMI ISTISNA KODU (1 adet):

KodAdi
2332942 Sayılı Kamulaştırma Kanunu Kapsamında Taşınmazların Kamulaştırmayı Yapan Devlet ve Kamu Tüzel Kişilerine Devri

EKLENEN IHRAC KAYITLI KODU (1 adet):

KodAdi
7043065 sayılı KDV Kanununun (11/1-c) maddesi ve 4760 s. Ötv Kanununun 8/2. Md. Kapsamındaki İhraç Kayıtlı Satış

EKLENEN DIGER ISLEM TURU KODU (1 adet, V1.42 / 12.03.2026):

KodAdi
555KDV Oran Kontrolüne Tabi Olmayan Satışlar (27.03.2026'da uygulamasi ertelendi)

METNI DEGISEN KODLAR (4 adet):

KodV1.31 (2023)V1.43 (2026)
21917/4-p Hazine ve Arsa Ofisi Genel Müdürlüğünün işlemleriHazine, Toplu Konut İdaresi Başkanlığı, Belediyeler, il özel idareleri ve yatırım izleme ve koordinasyon başkanlıklarının İşlemleri
22017/4-r İki Tam Yıl Süreyle Sahip Olunan Taşınmaz ve İştirak Hisseleri Satışları17/4-r İki Tam Yıl Süreyle Sahip Olunan Taşınmaz ve İştirak Hisseleri ile 15/7/2023 tarihinden önce kurumların aktifinde kayıtlı Taşınmaz satışı
22917/2-b Gıda Bankacılığı Faaliyetinde Bulunan Dernek ve Vakıflara Bağışlanan Gıda, Temizlik, Giyecek ve Yakacak MaddeleriGıda Bankacılığı Faaliyetinde Bulunan Darülacezeye, Dernek ve Vakıflara Bağışlanan, Gıda, Temizlik, Giyecek ve Yakacak Maddeleri ("17/2-b" on eki kaldirildi)
336Geçici 40 UEFA Müsabakaları Kapsamında Yapılacak Teslim ve HizmetlerGeçici 46 UEFA Müsabakaları Kapsamında Yapılacak Teslim ve Hizmetler

CIKARILAN KOD: Yok. V1.31'deki hicbir istisna kodu V1.43'te silinmemistir.

DEGISMEYENLER: Ozel matrah (801-812) 12 kodun tamami aynidir. OTV (101-108, 151) ve konaklama (001) listeleri degismemistir.

V1.43 changelog (birebir):

1.42 12.03.2026       Sayfa 11              Diğer İşlem Türü Kodları Listesi eklendi.

1.43 27.07.2026       Sayfa 10              Kısmi İstisna Kodları Listesi güncellendi.
                                            Kısmi İstisna Kod Listesine yeni kod eklendi.

Kilavuzda gorunmeyen schematron degisikligi: 01.07.2026 (History damgasi 20260701) itibariyla YatirimTesvikTaxExemptionReasonCodeType eklendi, TaxExemptionReasonCodeType ve istisnaTaxExemptionReasonCodeType guncellendi, TaxExemptionReasonCodeCheck guncellendi. Bu, kod listeleri kilavuzunun hicbir surumune yansimamistir — yalnizca UBL-TR_Codelist.xml ve History.txt uzerinden gorulebilir.


Dogrulanamayanlar

Asagidaki noktalar hakem kontrolunde korpus kaynagi bulunamayan veya reddedilen iddialardir; portal kurali olarak yazilmamalidirlar.

KonuDurum
Ihrac kayitli faturada cbc:CalculationSequenceNumeric = -1REDDEDILDI. Korpusta CalculationSequenceNumeric = -1 kullanimi yalnizca Yatirim Tesvik Fatura Teknik Kilavuzu V1.2 ve buna bagli YatirimTesvikItemClassificationCodeIstisnaCalculationSequenceNumericCheck kuralinda, yani YATIRIMTESVIK/YTBISTISNA icin belgelenmistir. IHRACKAYITLI fatura icin -1 kullanimini soyleyen hicbir ifade korpusta yoktur. IHRACKAYITLI'nin TaxExemptionReasonCheck'ten muaf tutulmasi olgudur; gerekcesi ise korpus disi cikarimdir.
"Her istisna faturasinda cbc:Percent = 0"DUZELTILDI. Schematron yalnizca TaxAmount = 0 + TaxTypeCode = 0015 durumunda Reason'i zorunlu kilar; Percent = 0 sarti hicbir kuralda yoktur. YTB istisna orneginde Percent 20'dir.
501 kodunun adi/aciklamasiKORPUSTA YOK. Kod her iki gecerlilik listesinde de bulunuyor, ancak V1.43, V1.31 ve 2015 Istisna/Tevkifat/Muafiyet kilavuzunun hicbir tablosunda yer almiyor. Kullanmadan once GIB'e sorulmalidir.
351 ile 501 arasindaki iliskiACIKLANMAMIS. 351 "KDV - İstisna Olmayan Diğer" olarak tanimli ve istisna listesinde YOK; 501 istisna listesinde VAR ama tanimsiz. Ikisinin neden ayri durdugu, hangisinin hangi durumda kullanilacagi korpusta yazmiyor.
555'in yeniden devreye alinma tarihiBELIRSIZ. 27.03.2026 duyurusu "ikinci bir duyuruya kadar" erteliyor; korpusta ikinci duyuru yok. Kod ve DemirbasKDVTaxExemptionCheck 24.08.2026 paketinde hala mevcut; GIB tarafinda su an aktif uygulanip uygulanmadigi korpustan anlasilmiyor.
"27.07.2026 guncellemeleri 14.09.2026'da devreye alinacaktir"KORPUSTA BELGELENMIYOR. Korpustaki tek "devreye alma" duyurusu 14.02.2025 tarihlidir ve 28.01.2025 guncellemelerini 28.03.2025'e uzatir. 14.09.2026 tarihinin korpus kaynagi yoktur.
Bos kod numaralarinin gecmisi203, 210, 222, 224, 243-249 ve 345-349 numaralarinin daha once kullanilip kaldirilip kaldirilmadigi korpusta belirtilmemis. (203'un eskiden 17/2-b oldugu ve 226-229'a bolundugu cikarimi yapilabilir ama korpusta acikca yazmiyor.)
Kismi/tam istisna ayriminin iade hakki sonucuKilavuz yalnizca iki ayri liste basligi verir; indirim/iade hakki farki UBL-TR dokumanlarinda tanimlanmamistir (KDV mevzuatinda vardir, korpusta yoktur). Tek isaret 236'nin adindaki "(İade Hakkı Tanınmayan)" ibaresidir.
Istisna kodlari ile 1 no.lu KDV beyannamesi islem kodlari eslesme tablosuKORPUSTA YOK. V1.43 yalnizca 351 dipnotunda "1 no.lu kdv beyannamesinin doldurulmasına ilişkin açıklamalar ve işlem kodlari" ifadesine atif yapar, tabloyu vermez.
Satir seviyesinde istisna kodu dogrulamasinin neden kapali olduguACIKLANMAMIS. Main Schematron'da satir seviyesi context yorum satiri yapilmis; satir seviyesine istisna kodu yazmanin zorunlu/serbest/yasak olup olmadigina dair resmi aciklama korpusta yok (YATIRIMTESVIK haric — orada satir seviyesi zorunludur).
Konaklama vergisi icin TaxTypeCodeBELIRSIZ. 001 Diplomatik Istisna kodunun hangi TaxTypeCode ile kullanilacagi yazmiyor. Schematron TaxType listesinde '0059' kodu var, ancak V1.43'un VERGI KODLARI LISTESI tablosunda 0059 tanimli degil.
e-Arsiv raporunda istisna kodue-Arsiv schematron'unda (earsiv_schematron.xsl) TaxExemptionReasonCode ile ilgili hicbir kural bulunmuyor; e-Arsiv Teknik Kilavuzu V1.18'de de raporda istisna kodunun hangi alana yazilacagi tanimli degil.
V1.32-V1.42 ara surumlerKORPUSTA YOK. Diff yalnizca V1.31 ile V1.43 arasinda yapilabildi; 329/233/341-344/704 kodlarinin tam olarak hangi ara surumde eklendigi kesinlestirilemedi. 341-344'un muhtemelen V1.41 (09.01.2026, changelog "Tam İstisna Kodları Listesi güncellendi") ile geldigi, V1.43'un kendi degisikliginin ise yalnizca kismi istisna (233) oldugu degerlendirilmektedir.
308/339'un "ana listeden cikarildigi"Bu bir cikarimdir: History yalnizca "TaxExemptionReasonCodeType güncellendi" der ve 01.07.2026 oncesi codelist korpusta yoktur. Ancak GUNCEL durum (ana listede yok, YatirimTesvik listesinde var) kesin dogrulanmistir.

BÖLÜM 2 — Zorunluluklar, Eşikler ve Sektörel Kapsam

Zorunluluklar, Eşikler ve Sektörel Kapsam

Bu bölüm, 509 Sıra No.lu VUK Genel Tebliği'nin (RG: 19/10/2019 - 30923) 31.08.2026 itibarıyla yürürlükteki konsolide hâli esas alınarak hazırlanmıştır. Portal kural motorunun kodlanacağı normatif çekirdek burasıdır.


Kaynak Önceliği ve Hüküm Hiyerarşisi

Korpustaki kaynaklar birbiriyle çelişmektedir. Kural motoru yalnızca aşağıdaki öncelik sırasına göre kodlanmalıdır:

ÖncelikKaynakKullanım
1Dipnotlu Güncel Şekli ile 509 Sıra No.lu VUK GT (konsolide metin)ESAS — tüm hadler, tarihler ve bentler buradan alınır
2573 SN VUK GT (RG 12/11/2024-32720) ve 589 SN VUK GT (RG 31/12/2025-33124) tam metinleriYürürlük maddeleri ve değişiklik lafzı için
3509 s. VUK GT Kapsamında Uygulamalara Geçiş Takvimi TablosuYALNIZCA TARİHSEL — eskimiştir, kural motorunda kullanılamaz
4Zorunluluk Karşılaştırma TablosuYALNIZCA TARİHSEL — 509 taslak dönemine (2018/2019) aittir
5509 Çok Sorulan Sorular (GİB SSS)YALNIZCA TARİHSEL — 2020 dönemine aittir, en az bir noktada güncel metinle çelişir

Kaynak dosyalar: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt, Vergi_Usul_Kanunu_Genel_Tebligi__Sira_No_509__nde_Degisiklik_Yapilmasina_Dair_Teblig__Sira_No_573__.txt, Vergi_Usul_Kanunu_Genel_Tebligi__Sira_No_509__nde_Degisiklik_Yapilmasina_Dair_Teblig__Sira_No_589__.txt, 509_s.VUK_GT_Kapsaminda_Uygulamalara_Gecis_Takvimi_Tablosu__3__.txt, Zorunluluk_Karsilastirma_Tablosu_.txt, 509_Cok_Sorulan__Sorular_.txt


e-FATURA Zorunluluğu

Çerçeve Hüküm — IV.1.4(a)

IV.1.4 bölümünün (a) fıkrası, aşağıda sayılan 9 mükellef grubu için iki ayrı yükümlülük getirir:

  1. Uygulamaya dâhil olma zorunluluğu,
  2. e-Fatura kayıtlı diğer kullanıcılara faturayı e-Fatura olarak düzenleme ve onlardan e-Fatura olarak alma zorunluluğu.

"a) Aşağıda sayılan mükellef gruplarının e-Fatura uygulamasına dâhil olmaları ve bu Tebliğin "V.7." ve "VIII." numaralı bölümlerinde belirtilen istisnai durumlar haricinde, e-Fatura uygulamasına kayıtlı diğer kullanıcılara faturalarını e-Fatura olarak düzenlemeleri ve bunlardan e-Fatura olarak almaları zorunludur."

Portal tasarımı açısından kritik: e-Fatura zorunluluğu mutlak değildir, karşı tarafın e-Fatura kayıtlı kullanıcı olmasına bağlıdır. Kayıtlı olmayana e-Arşiv Fatura düzenlenir (IV.2.1).

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt

Brüt Satış Hasılatı Haddi — IV.1.4(a)(1)

509'un güncel (535 SN ile değişik) hâli e-Fatura genel ciro haddini üç kademeli belirler:

Hesap dönemiBrüt satış hasılatı (veya satışları ile gayrisafi iş hasılatı) haddi
2018, 2019 veya 20205.000.000 TL ve üzeri
20214.000.000 TL ve üzeri
2022 veya müteakip hesap dönemleri3.000.000 TL ve üzeri

"1- Brüt satış hasılatı (veya satışları ile gayrisafi iş hasılatı); a) 2018, 2019 veya 2020 hesap dönemleri için 5 Milyon TL, b) 2021 hesap dönemi için 4 Milyon TL, c) 2022 veya müteakip hesap dönemleri için 3 Milyon TL ve üzeri olan mükellefler."

2022 sonrası had SABİTTİR. Korpusta 2023, 2024, 2025 veya 2026 hesap dönemleri için farklı had belirleyen bir düzenleme YOKTUR. 589'dan (31.12.2025) sonra 509'u değiştiren başka bir tebliğ korpusta bulunmamaktadır.

Portal kuralı:

had(donem) = donem <= 2020 ? 5_000_000
           : donem == 2021 ? 4_000_000
           : 3_000_000

Had aşıldığında yükümlülük yalnızca e-Fatura değil, IV.2.4.1 uyarınca e-Arşiv Fatura'yı da kapsar.

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt

Ciro Haddinin Tarihsel Zinciri: 10 Milyon → 5 Milyon → 4/3 Milyon

AşamaHadDayanak / RGGeçiş kuralı
12018 hesap dönemi 10 Milyon TL454 SN VUK GT1/1/2020
22018 veya müteakip hesap dönemleri 5 Milyon TL509 SN VUK GT (RG 19/10/2019-30923) ilk hâli2018/2019 için 1/7/2020; 2020+ için izleyen yılın 7. ayı başı
32018-2019-2020: 5 Milyon / 2021: 4 Milyon / 2022+: 3 Milyon535 SN VUK GT (RG 22/01/2022-31727)aynı kural (izleyen yılın 7. ayı başı)

"6 535 Sıra No.lu Vergi Usul Kanunu Tebliği (RG: 22/01/2022 – 31727) ile değiştirilmeden önceki hali: 1-2018 veya müteakip hesap dönemleri brüt satış hasılatı (veya satışları ile gayrisafi iş hasılatı) 5 Milyon TL ve üzeri olan mükellefler."

509'un ilk hâlinde tek ve sabit bir had (5 Milyon TL) vardı; kademeli düşüş 535 SN ile 22/01/2022'de getirilmiştir. 535 sonrası e-Fatura ciro haddini değiştiren başka bir tebliğ korpusta yoktur (550, 573, 589 bu bendi değiştirmemiştir).

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt (dipnot 6)

TAM TABLO — IV.1.4(a) e-Fatura Zorunluluk Bentleri (1–9)

#Kapsamdaki mükellefCiro eşiğiGeçiş tarihi (IV.1.5)Ekleyen / değiştiren tebliğ
1Brüt satış hasılatı haddini aşanlar2018/2019/2020: 5 Milyon TL; 2021: 4 Milyon TL; 2022+: 3 Milyon TL(a) Şartı 2018 veya 2019'da sağlayanlar 1/7/2020; 2020 ve müteakip dönemlerde sağlayanlar ilgili hesap dönemini izleyen yılın 7. ayının başı535 SN (RG 22/01/2022-31727) ile DEĞİŞTİRİLDİ (dipnot 6)
24760 s. ÖTV Kanununa ekli (I) sayılı listedeki malların imali, ithali, teslimi vb. faaliyetleri nedeniyle EPDK'dan lisans alan (bayilik lisansı dâhil) mükelleflerYOK(b) 2019'da gerçekleştirenler 1/7/2020; 2020 ve müteakip yıllarda gerçekleştirenler lisans alımı / imal-inşa-ithalin gerçekleştiği ayı izleyen 4. ayın başı509 asıl metin
3ÖTV Kanununa ekli (III) sayılı listedeki malları imal, inşa ve/veya ithal edenlerYOK(b) — bent 2 ile aynı509 asıl metin
4Aracı hizmet sağlayıcıları (6563 s. Kanun), internette gayrimenkul/motorlu araç ilanı yayınlayan site sahipleri/işleticileri, internet reklamcılığı hizmet aracıları ve kendilerine veya AHS'lere ait sitelerde/her türlü elektronik ortamda mal-hizmet satışı gerçekleştirenler2020/2021: 1 Milyon TL; 2022+: 500 Bin TL(c) AHS + reklam aracıları + ilan yayınlayanlar 1/7/2020'ye kadar (2020+ işe başlayanlar 3 ay içinde); e-ticaret satıcılarından şartı 2020/2021'de sağlayanlar 1/7/2022'ye kadar, 2022+ sağlayanlar izleyen 7. ayın başına kadar535 ile DEĞİŞTİRİLDİ (dipnot 7; IV.1.5(c) için dipnot 16)
55957 s. Kanun (Hal Kayıt Sistemi) hükümlerine göre komisyoncu veya tüccar olarak sebze ve meyve ticaretiyle iştigal edenlerYOK(c) 1/1/2020'ye kadar (2020+ işe başlayanlar 3 ay içinde)509 asıl metin
6SGK ile sözleşme imzalayan sağlık hizmeti sunucuları ile medikal malzeme ve ilaç/etken madde temin eden tüm mükelleflerYOK(d) 1/7/2021'den itibaren; bu tarihten sonra SGK ile sözleşme imzalayanlar SGK'ya fatura düzenlemeye başlamadan önce526 SN (RG 09/02/2021-31390) ile EKLENDİ (dipnot 8; IV.1.5(d) için dipnot 17)
7Gayrimenkul ve/veya motorlu taşıt inşa, imal, alım, satım veya kiralama işlemlerini yapanlar ile bu işlemlere aracılık edenler2020/2021: 1 Milyon TL; 2022+: 500 Bin TL(e) Şartı 2020/2021'de sağlayanlar 1/7/2022'ye kadar; 2022+ sağlayanlar izleyen 7. ayın başına kadar535 ile EKLENDİ (dipnot 9; IV.1.5(e) için dipnot 18)
8Kültür ve Turizm Bakanlığı ile belediyelerden yatırım ve/veya işletme belgesi almak suretiyle konaklama hizmeti veren otel işletmeleriYOK(f) Tebliğ yayım tarihi (22/01/2022, bu tarih dâhil) itibarıyla faaliyette olanlar 1/7/2022'ye; sonra faaliyete başlayanlar faaliyete başladıkları ayı izleyen 4. ayın başına kadar535 ile EKLENDİ (dipnot 10; IV.1.5(f) için dipnot 19)
92/4/2022 tarihli ve 31797 s. RG'de yayımlanan Şarj Hizmeti Yönetmeliği kapsamında EPDK'dan şarj ağı işletmeci lisansı alanlar ile bu mükelleflerce sertifika verilen şarj istasyonu işletmecileriYOK(g) Tebliğ yayım tarihi (07/10/2023, bu tarih dâhil) itibarıyla faaliyette olanlar 2/1/2024'e kadar; sonra faaliyete başlayanlar faaliyete başladıkları tarih itibarıyla550 SN (RG 07/10/2023-32332) ile EKLENDİ (dipnot 11; IV.1.5(g) için dipnot 20)

Bent 8 ve 9'daki "bu Tebliğin yayım tarihi" ibaresi, ilgili bendi ekleyen değişiklik tebliğinin yayım tarihini işaret eder (bent 8 → 535 → 22/01/2022; bent 9 → 550 → 07/10/2023).

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt

Bent Bazında Birebir Metinler ve Sektörel Ayrıntı

Bent 2 — ÖTV (I) sayılı liste / EPDK lisansı (akaryakıt):

"2- 6/6/2002 tarihli ve 4760 sayılı Özel Tüketim Vergisi Kanununa ekli I sayılı listedeki malların imali, ithali, teslimi vb. faaliyetleri nedeniyle Enerji Piyasası Düzenleme Kurumu (EPDK)'ndan lisans alan (bayilik lisansı dâhil) mükellefler."

Bayilik lisansı dâhildir. 454 SN GT döneminde bayilik lisansı hariçti (Zorunluluk Karşılaştırma Tablosu'ndaki "Bayilik lisansı hariç" ifadesi bu eski durumu gösterir).

Bent 3 — ÖTV (III) sayılı liste (tütün, alkol, kolalı gazoz):

"3- Özel Tüketim Vergisi Kanununa ekli (III) sayılı listedeki malları imal, inşa ve/veya ithal edenler."

DİKKAT — e-Fatura ile e-İrsaliye kapsamı FARKLIDIR:

UygulamaHükümKapsam
e-FaturaIV.1.4(a)(3)Yalnızca "imal, inşa ve/veya ithal edenler"
e-İrsaliyeIV.3.5/2"imal, inşa, ithalini ve ana bayi/distribütör şeklinde pazarlamasını" gerçekleştirenler

Bir tütün/alkol distribütörü e-Fatura zorunlusu olmayabilir ama e-İrsaliye zorunlusudur. Portal kural motorunda bu iki bent AYRI değerlendirilmelidir.

Bent 4 — AHS / e-ticaret pazaryerleri / internet ilanı / internet reklamcılığı / internetten satış:

"4- Mal veya hizmetlerin alınması, satılması, kiralanması veya dağıtımı işlemlerinin gerçekleştirilmesine aracılık etmek üzere internet ortamında 23/10/2014 tarihli ve 6563 sayılı Elektronik Ticaretin Düzenlenmesi Hakkında Kanunda tanımlanan başkalarına ait iktisadi ve ticari faaliyetlerin yapılmasına elektronik ticaret ortamını sağlayan gerçek ya da tüzel kişi aracı hizmet sağlayıcıları, internet ortamında gerçek ve tüzel kişilere ait gayrimenkul, motorlu araç vasıtalarının satılmasına veya kiralanmasına ilişkin ilanları yayınlayan internet sitelerinin sahipleri veya işleticileri ile internet ortamında reklamların yayınlanmasına aracılık faaliyetinde bulunan internet reklamcılığı hizmet aracıları ile kendilerine veya aracı hizmet sağlayıcılarına ait internet sitelerinde veya diğer her türlü elektronik ortamda mal veya hizmet satışını gerçekleştiren mükelleflerden, 2020 veya 2021 hesap dönemleri için 1 Milyon TL, 2022 veya müteakip hesap dönemleri için 500 Bin TL ve üzeri brüt satış hasılatı (veya satışları ile gayrisafi iş hasılatı) olanlar."

Bu tek bent dört grubu birleştirir: (i) aracı hizmet sağlayıcıları (e-ticaret pazaryerleri), (ii) internette gayrimenkul/motorlu araç ilanı yayınlayanlar, (iii) internet reklamcılığı hizmet aracıları, (iv) internetten mal/hizmet satışı yapanlar. Dipnot 7'ye göre değişiklikten önceki hâl yalnızca ilk üç grubu kapsıyordu; 535 ile hem dördüncü grup hem de hasılat eşikleri eklendi.

Bent 5 — Sebze-meyve komisyoncu/tüccar (Hal Kayıt Sistemi):

"5- 11/3/2010 tarihli ve 5957 sayılı Sebze ve Meyveler ile Yeterli Arz ve Talep Derinliği Bulunan Diğer Malların Ticaretinin Düzenlenmesi Hakkında Kanun hükümlerine göre komisyoncu veya tüccar olarak sebze ve meyve ticaretiyle iştigal eden mükellefler."

Ciro eşiği yoktur — faaliyet bazlı mutlak zorunluluktur. Aynı mükellef grubu e-İrsaliye'de de zorunludur (IV.3.5/8) ve orada da geçiş tarihi 1/1/2020'dir.

Bent 6 — SGK sözleşmeli sağlık hizmeti sunucuları (526 ile eklendi):

"6- Sosyal Güvenlik Kurumu ile sözleşme imzalayan sağlık hizmeti sunucuları ile medikal malzeme ve ilaç/etken madde temin eden tüm mükellefler (hastane, tıp merkezleri, dal merkezleri, diyaliz merkezleri, Sağlık Bakanlığından ruhsatlı diğer özelleşmiş tedavi merkezleri, tanı, tetkik ve görüntüleme merkezleri, laboratuvarlar, eczaneler, tıbbi cihaz ve malzeme tedarikçileri, optisyenlik müesseseleri, işitme merkezi, kaplıcalar, beşeri tıbbi ürün/ürün sunan ve/veya üreten özel hukuk tüzel kişileri ve bunların tüzel kişiliği olmayan şubeleri, ecza depoları vb.)."

Parantez içi sayım örnek niteliğindedir ("vb." ile biter) ve şu işletme türlerini açıkça sayar — TAM LİSTE:

#İşletme türü
1hastane
2tıp merkezleri
3dal merkezleri
4diyaliz merkezleri
5Sağlık Bakanlığından ruhsatlı diğer özelleşmiş tedavi merkezleri
6tanı, tetkik ve görüntüleme merkezleri
7laboratuvarlar
8eczaneler
9tıbbi cihaz ve malzeme tedarikçileri
10optisyenlik müesseseleri
11işitme merkezi
12kaplıcalar
13beşeri tıbbi ürün/ürün sunan ve/veya üreten özel hukuk tüzel kişileri ve bunların tüzel kişiliği olmayan şubeleri
14ecza depoları

Bent 7 — Gayrimenkul ve/veya motorlu taşıt (535 ile eklendi):

"7- Gayrimenkul ve/veya motorlu taşıt, inşa, imal, alım, satım veya kiralama işlemlerini yapanlar ile bu işlemlere aracılık faaliyetinde bulunan mükelleflerden brüt satış hasılatı (veya satışları ile gayrisafi iş hasılatı); a) 2020 veya 2021 hesap dönemleri için 1 Milyon TL, b) 2022 veya müteakip hesap dönemleri için 500 Bin TL ve üzeri olan mükellefler."

Emlakçı, galerici, oto kiralama ve inşaat firmaları bu bent kapsamındadır. Araç kiralama, bu bendin "motorlu taşıt ... kiralama" ibaresi ile kapsanır; korpusta ayrı bir "araç kiralama" bendi YOKTUR.

Bent 8 — Otel işletmeleri (535 ile eklendi):

"8- Kültür ve Turizm Bakanlığı ile belediyelerden yatırım ve/veya işletme belgesi almak suretiyle konaklama hizmeti veren otel işletmeleri."

Ciro eşiği yoktur.

Bent 9 — Şarj ağı ve şarj istasyonu işletmecileri (550 ile eklendi):

"9- 2/4/2022 tarihli ve 31797 sayılı Resmî Gazete'de yayımlanan Şarj Hizmeti Yönetmeliği kapsamında Enerji Piyasası Düzenleme Kurumundan şarj ağı işletmeci lisansı alan mükellefler ile bu mükellefler tarafından sertifika verilen şarj istasyonu işletmecileri."

İki alt grup: (i) EPDK'dan şarj ağı işletmeci lisansı alanlar, (ii) bu mükelleflerce sertifika verilen şarj istasyonu işletmecileri. Ciro eşiği yoktur. Bu grup için korpusta ayrı bir teknik kılavuz da bulunmaktadır: Elektrik_Sarj_Hizmetlerine_Iliskin_Fatura_Teknik_Kilavuzu_V.1.0_.txt (ENERJI senaryosu).

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt

Geçiş Süresi — "İzleyen Yılın Yedinci Ayının Başı" Kuralı (IV.1.5/a)

"a) Söz konusu bölümün (a) fıkrasının (1) numaralı bendi kapsamında olanlardan brüt satış hasılatı (veya satışları ile gayrisafi iş hasılatı) şartını 2018 veya 2019 hesap dönemlerinde sağlayan mükellefler 1/7/2020 tarihinden itibaren, 2020 veya müteakip hesap dönemlerinde sağlayan mükellefler, ilgili hesap dönemini izleyen yılın yedinci ayının başından itibaren, e-Fatura uygulamasına geçmek zorundadır."

Şartın sağlandığı hesap dönemiHade-Fatura'ya geçiş tarihi
2018 veya 20195 Milyon TL1/7/2020
20205 Milyon TL1/7/2021
20214 Milyon TL1/7/2022
20223 Milyon TL1/7/2023
20233 Milyon TL1/7/2024
20243 Milyon TL1/7/2025
20253 Milyon TL1/7/2026
20263 Milyon TL1/7/2027

Kural: hesap dönemi kapanır → gelir/kurumlar vergisi beyannamesi verilir → izleyen yılın 1 Temmuz'unda e-Fatura mükellefi olunur. Mükellefe fiilen yaklaşık 6 aylık hazırlık süresi verilir.

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt

Bent Bazında Geçiş Süreleri — IV.1.5 (b)–(g)

FıkraKapsamGeçiş tarihi
bÖTV (I) EPDK lisansı / ÖTV (III) imal-inşa-ithal2019'da gerçekleştirenler 1/7/2020; 2020 ve sonrasında gerçekleştirenler lisans alımı veya imal/inşa/ithalin gerçekleştiği ayı izleyen dördüncü ayın başı
cAHS, internet reklamcılığı hizmet aracıları, internette ilan yayınlayanlar1/7/2020'ye kadar (2020 ve sonrası bu işe başlayacaklar işe başlama tarihinden itibaren 3 ay içinde)
cİnternet/elektronik ortamda mal-hizmet satışı yapanlar (1 Milyon / 500 Bin TL)Şartı 2020 veya 2021'de sağlayanlar 1/7/2022'ye kadar; 2022 ve sonrasında sağlayanlar ilgili hesap dönemini izleyen yedinci ayın başına kadar
çSebze-meyve komisyoncu/tüccar1/1/2020'ye kadar (2020 ve sonrası işe başlayanlar 3 ay içinde)
dSGK sözleşmeli sağlık hizmeti sunucuları (6. bent)1/7/2021'den itibaren; bu tarihten sonra SGK ile sözleşme imzalayanlar SGK'ya fatura düzenlemeye başlamadan önce
eGayrimenkul/motorlu taşıt (7. bent)Şartı 2020 veya 2021'de sağlayanlar 1/7/2022'ye kadar; 2022 ve sonrası izleyen yedinci ayın başına kadar
fOtel işletmeleri (8. bent)535'in yayım tarihi (22/01/2022) itibarıyla faaliyette olanlar 1/7/2022'ye; sonra faaliyete başlayanlar faaliyete başladıkları ayı izleyen dördüncü ayın başına kadar
gŞarj ağı / şarj istasyonu işletmecileri (9. bent)550'nin yayım tarihi (07/10/2023) itibarıyla faaliyette olanlar 2/1/2024'e kadar; sonra faaliyete başlayanlar faaliyete başladıkları tarih itibarıyla

"b) Özel Tüketim Vergisi Kanununa ekli (I) sayılı liste kapsamındaki mallar nedeniyle EPDK'dan lisans alımı veya mezkur Kanuna ekli (III) sayılı liste kapsamındaki malların imal, inşa veya ithalini 2019 yılında gerçekleştirenler 1/7/2020 tarihinden itibaren, 2020 veya müteakip yıllarda gerçekleştirenler ise, lisans alımı veya imal, inşa veya ithalin gerçekleştirildiği ayı izleyen dördüncü ayın başından itibaren e-Fatura uygulamasına geçmek zorundadır."

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt

IV.1.4 (b)–(ğ) Fıkraları — Karşılıklı Zorunluluk, Kamu, Birleşme/Bölünme, Ferdî İşletme, İşi Bırakma, Başkanlık Yetkisi

FıkraİçerikTebliğ
(b)Zorunlu VE ihtiyari kullanıcıların birbirlerine sattıkları mal/hizmet için düzenleyecekleri ve alacakları faturalar, V.7/VIII istisnaları haricinde e-Fatura olmak zorundadır. Bu hüküm, portalin "alıcı e-Fatura kayıtlı mı?" sorgusunu (GİB kullanıcı listesi) zorunlu kılar.535 ile DEĞİŞTİRİLDİ. Önceki hâli yalnızca "zorunluluk bulunan mükelleflerin sattıkları mallar ve/veya ifa ettikleri hizmetler" diyordu; ihtiyari kullanıcılar açıkça kapsanmıyordu (dipnot 12)
(c)5018 sayılı Kanuna ekli cetvellerdeki idare, kurum, kuruluşlar ile iktisadi kamu kuruluşlarının e-Fatura'dan yararlanma zorunluluğu Bütünleşik Kamu Mali Yönetim Sistemi çerçevesinde Muhasebat Genel Müdürlüğünce belirlenir.509 asıl
(ç)e-Fatura kayıtlı kullanıcıların güncel listesi ebelge.gib.gov.tr adresinde yayımlanır.509 asıl
(d)Hadlerin altında kalan mükellefler de istemeleri hâlinde e-Fatura'dan yararlanabilir (ihtiyari kullanım).509 asıl
(e)Tam bölünme, birleşme (devralma/yeni kuruluş), tür (nev'i) değişikliği hâlinde devrolunan/birleşilen tüzel kişi ile ortaya çıkan yeni tüzel kişi e-Fatura'ya geçmek zorundadır. Süre hiçbir koşulda ticaret siciline tescil tarihini izleyen ayın başından itibaren 3 ayı geçemez.509 asıl
(f)e-Fatura'ya dâhil olduktan sonra veya dâhil olmak zorundayken işi bırakıp yeniden mükellefiyet tesis ettiren gerçek kişiler, işe başladıkları tarih itibarıyla e-Fatura'ya geçmek zorundadır.550 ile EKLENDİ (dipnot 13)
(g)e-Fatura kapsamındaki bir ferdî işletmenin sermaye şirketine dönüşmesi hâlinde yeni kurulan sermaye şirketi de dâhil olmak zorundadır; süre tescili izleyen ayın başından itibaren 3 ayı geçemez.550 ile EKLENDİ (dipnot 14)
(ğ)Başkanlık, analiz/inceleme sonucu riskli ya da vergiye uyum düzeyi düşük tespit edilen mükellefleri veya mükellef gruplarını faaliyet, sektör ve ciro tutarına bağlı olmaksızın, yazılı bildirim yapmak ve geçiş hazırlıkları için en az 3 ay süre vermek suretiyle e-Fatura'ya geçirmeye yetkilidir.509 asıl

"e) e-Fatura uygulamasına geçme zorunluluğu olan mükelleflerin; tam bölünme, birleşme (devralma şeklinde birleşme ve yeni kuruluş şeklinde birleşme) veya tür (nev'i) değişikliğine gitmeleri halinde devrolunan veya birleşilen tüzel kişi mükellefler ile tam bölünme veya tür (nev'i) değişikliği sonucunda ortaya çıkan yeni tüzel kişi mükellefler e-Fatura uygulamasına geçmek zorundadır. Uygulamalara geçme süresi hiçbir koşulda işlemin ticaret siciline tescil tarihini izleyen ayın başından itibaren 3 ayı geçemez."

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt

İhracat, Bavul Ticareti ve Yolcu Beraberi Eşya — IV.1.7.1

"e-Fatura uygulamasına kayıtlı olan mükelleflerden, 25/10/1984 tarihli ve 3065 sayılı Katma Değer Vergisi Kanununun 11 inci maddesi kapsamındaki mal ihracı (Türkiye'de ikamet etmeyenlere özel fatura ile yapılan bavul ticareti kapsamındaki satışlar dahil) ve yolcu beraberi eşya ihracı (Türkiye'de ikamet etmeyenlere KDV hesaplanarak yapılan satışlar) kapsamında fatura düzenleyecek olanlar, bahsi geçen faturalarını 1/7/2017 tarihinden ... itibaren bu Tebliğin "V.7." ve "VIII." numaralı bölümlerinde belirtilen istisnai durumlar haricinde e-Fatura olarak düzenlemeleri zorunludur."

KonuGüncel durum
Mal ihracı (gümrük beyannameli)1/7/2017'den itibaren e-Fatura zorunlu
Yolcu beraberi eşya ihracı (Türkiye'de ikamet etmeyenlere KDV hesaplanarak yapılan satışlar)1/7/2017'den itibaren e-Fatura zorunlu
Bavul ticareti (özel fatura)Başkanlık tarafından ebelge.gib.gov.tr adresinde yapılan duyuruda belirtilecek tarih — 550 SN ile sabit tarihten (1/7/2020) çıkarıldı

"21 550 Sıra No.lu Vergi Usul Kanunu Tebliği (RG: 07/10/2023 - 32332) ile değiştirilmeden önceki hali: 1/7/2020 tarihinden"

Usul ve esaslar e-Fatura_Uygulamasi_gumruk_islemleri_Kilavuzu_.txt (e-Fatura Uygulaması Gümrük İşlemleri Kılavuzu) belgesindedir. Uyarı: Geçiş Takvimi Tablosu hâlâ eski "1/7/2020" tarihini göstermektedir — eskimiştir. Ayrıca ihracat faturası düzenlemek tek başına e-Fatura'ya geçmeyi gerektirmez (GİB SSS s.4).

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt


e-ARŞİV FATURA Zorunluluğu

IV.2.4.1 — e-Fatura Mükellefi Otomatik Olarak e-Arşiv Mükellefi midir? EVET

"e-Fatura uygulamasına dahil olma zorunluluğu bulunan mükellefler ile isteğe bağlı olarak e-Fatura uygulamasına bu Tebliğin yayım tarihi itibarıyla geçmiş olan mükellefler (faaliyetleri gereği fatura yerine geçen diğer belgeler düzenleyenler hariç) 1/1/2020 tarihine kadar, bu Tebliğin yayım tarihinden itibaren isteğe bağlı olarak ya da bu Tebliğin "IV.1.4" numaralı bölümü ile e-Fatura uygulamasına geçiş zorunluluğu nedeniyle e-Fatura uygulamasına dahil olan mükelleflerin ise, bu Tebliğin "IV.1.5." numaralı bölümünde belirtilen süreler içinde ve/veya e-Fatura uygulamasına isteğe bağlı olarak dahil oldukları süre içinde başvurularını ve fiili geçiş hazırlıklarını tamamlayarak e-Arşiv Fatura uygulamasına da geçmek ... zorunludur."

Grupe-Arşiv'e geçiş süresi
421 ve 454 SN GT'ye göre e-Fatura zorunluluğu bulunanlar + Tebliğin yayım tarihi (19/10/2019) itibarıyla isteğe bağlı e-Fatura'ya geçmiş olanlar (faaliyetleri gereği fatura yerine geçen diğer belgeler düzenleyenler hariç)1/1/2020'ye kadar
Tebliğin yayım tarihinden itibaren isteğe bağlı olarak ya da IV.1.4 zorunluluğu nedeniyle e-Fatura'ya dâhil olanlarIV.1.5'te belirtilen süreler içinde ve/veya isteğe bağlı dâhil oldukları süre içinde

Portal mantığı: eFaturaMukellefi == true ⇒ eArsivMukellefi == true (aynı tarihte). Bu tarihten itibaren düzenlenen tüm faturalar ya e-Fatura ya e-Arşiv Fatura olmak zorundadır; kâğıt fatura kalmaz.

Ters yön de doğrudur: IV.2.2 uyarınca e-Arşiv'e dâhil olmak isteyenin önce e-Fatura'ya dâhil olması şarttır. GİB SSS (s.87): "Söz konusu mükellef e-Arşiv uygulamasına geçtiği takdirde e-Fatura uygulamasına da geçmek zorundadır."

IV.2.1 — Belge Seçim Kuralı

"e-Arşiv Fatura uygulamasına kayıtlı mükelleflerin, bu Tebliğin "V.7." ve "VIII." numaralı bölümlerinde belirtilen istisnai durumlar haricinde, e-Fatura uygulamasına kayıtlı mükelleflere gerçekleştirmiş olduğu mal satışları ile hizmet ifalarında faturayı e-Fatura olarak, e-Fatura uygulamasına kayıtlı olmayan vergi mükellefleri ile vergi mükellefi olmayanlara gerçekleştirmiş olduğu mal satışları ile hizmet ifalarında ise faturayı e-Arşiv Fatura olarak düzenlemeleri zorunludur."

AlıcıDüzenlenecek belge
e-Fatura uygulamasına kayıtlı mükellefe-Fatura
e-Fatura'ya kayıtlı olmayan vergi mükellefie-Arşiv Fatura
Vergi mükellefi olmayan (nihai tüketici)e-Arşiv Fatura

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt

IV.2.4.2 — AHS / İnternet İlanı / İnternet Reklamcılığı / e-Ticaret Satıcıları

"...internet reklamcılığı hizmet aracıları, 1/1/2020 tarihine kadar (2020 ve müteakip hesap dönemlerinden itibaren bu paragrafta belirtilen işler ile iştigal etmek üzere işe başlayacak mükelleflerin ise işe başlama tarihinden itibaren 3 ay içinde), kendilerine veya aracı hizmet sağlayıcılarına ait internet sitelerinde veya diğer her türlü elektronik ortamlarda mal veya hizmet satışını gerçekleştiren mükelleflerden bu Tebliğin (IV.1.4) bölümünün (a) fıkrasının (4) numaralı bendinde belirtilen brüt satış hasılatı (veya satışları ile gayrisafi iş hasılatı) şartını 2020 veya 2021 hesap dönemlerinde sağlayanlar 1/7/2022 tarihine kadar, 2022 veya müteakip hesap dönemlerinde sağlayanlar ilgili hesap dönemini izleyen yedinci ayın başına kadar başvurularını ve fiili geçiş hazırlıklarını tamamlayarak e-Arşiv Fatura uygulamasına geçmek zorundadır."

Grupe-Arşiv geçiş tarihi
Aracı hizmet sağlayıcıları, internette gayrimenkul/motorlu araç ilanı yayınlayan site sahipleri/işleticileri, internet reklamcılığı hizmet aracıları1/1/2020'ye kadar (2020 ve müteakip hesap dönemlerinden itibaren bu işle iştigal etmek üzere işe başlayacaklar işe başlama tarihinden itibaren 3 ay içinde)
e-ticaret satıcılarından IV.1.4(a)(4) hasılat şartını 2020 veya 2021'de sağlayanlar1/7/2022'ye kadar
e-ticaret satıcılarından şartı 2022 veya müteakip dönemlerde sağlayanlarİlgili hesap dönemini izleyen yedinci ayın başına kadar

DİKKAT: e-Fatura'da AHS/reklamcı/ilan yayınlayanlar için tarih 1/7/2020, e-Arşiv'de aynı gruplar için 1/1/2020'dir — e-Arşiv tarihi DAHA ERKENDİR.

Değişiklik: 535 SN VUK GT ile hem başlık (dipnot 22) hem metin (dipnot 23) değiştirilmiştir.

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt

IV.2.4.3 — Tutar Eşikli Zorunlu e-Arşiv Fatura (GÜNCEL TAM METİN)

Bu bölüm e-Arşiv uygulamasına dâhil OLMAYAN mükellefleri bağlar ve portal için en kritik eşik kuralıdır.

"e-Arşiv Fatura uygulamasına dahil olmayan mükelleflerce düzenlenecek faturaların; 1/1/2025 ila 31/12/2025 (ticari kazançları basit usulde tespit edilen mükellefler ile işletme hesabı esasına göre defter tutan mükellefler açısından 1/1/2025 ila 31/12/2026) tarihleri arasında vergiler dahil toplam tutarının 3 Bin TL'yi aşması halinde, 1/1/2026 (ticari kazançları basit usulde tespit edilen mükellefler ile işletme hesabı esasına göre defter tutan mükellefler açısından 1/1/2027) tarihinden itibaren ise tutarına bakılmaksızın, bu Tebliğin "V.7." ve "VIII." numaralı bölümlerinde belirtilen istisnai durumlar haricinde, "e-Arşiv Fatura" olarak Başkanlıkça sunulan e-Belge düzenleme portali üzerinden ya da Başkanlığın e-Belge düzenleme portaline gerekli entegrasyonları sağlayarak Başkanlıktan izin alan özel entegratör kuruluşların sistemleri aracılığıyla düzenlenmesi zorunludur."

Mükellef grubu3 Bin TL eşiğinin geçerli olduğu dönemTutarına bakılmaksızın (SINIRSIZ) zorunluluk başlangıcı
GENEL (bilanço esası / diğer tüm mükellefler)1/1/2025 – 31/12/20251/1/2026
Ticari kazancı BASİT USULDE tespit edilenler1/1/2025 – 31/12/20261/1/2027
İŞLETME HESABI esasına göre defter tutanlar1/1/2025 – 31/12/20261/1/2027

Düzenleme kanalı: Başkanlıkça sunulan e-Belge düzenleme portali üzerinden ya da Başkanlığın e-Belge düzenleme portaline gerekli entegrasyonları sağlayarak Başkanlıktan izin alan özel entegratör kuruluşların sistemleri aracılığıyla.

Ek kural: Satıcı ve alıcının her ikisi de e-Fatura uygulamasına kayıtlı kullanıcı ise, aralarında düzenlenen faturaların tamamının e-Fatura olması gerekir (tutar eşiği aranmaz).

Ceza: Kâğıt fatura düzenlenmesi/alınması hâlinde, faturayı düzenleyen ile nihai tüketici dışındaki vergi mükellefiyeti bulunan alıcı hakkında, her bir kâğıt fatura için ayrı ayrı VUK md.353 cezası uygulanır.

31.08.2026 itibarıyla yürürlükteki portal kuralı:

if (!eArsivMukellefi) {
  if (mukellefTipi in {BASIT_USUL, ISLETME_HESABI})
      esik = (bugun <= 2026-12-31) ? 3000 : 0;   // 0 = tutarina bakilmaksizin
  else
      esik = 0;                                   // 1/1/2026'dan beri sinirsiz
}

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt

e-Arşiv Tutar Eşiğinin Tam Tarihsel Zinciri

#DönemVergi mükellefi OLMAYANA düzenlenenVergi MÜKELLEFİNE düzenlenenDayanak / RG
11/1/2020 – 08/02/202130.000 TL'yi aşanlar5.000 TL'yi aşanlar509 SN ilk hâli (RG 19/10/2019-30923)
209/02/2021 – 31/12/20245.000 TL'yi aşanlarVUK md.232/2'deki, işlemin gerçekleştiği yıla ait fatura düzenleme haddini aşanlar526 SN (RG 09/02/2021-31390)
31/1/2025 – 31/12/20253.000 TL'yi aşanlar (ayrım kalktı, tek eşik)3.000 TL'yi aşanlar573 SN (RG 12/11/2024-32720)
41/1/2026 →Tutarına bakılmaksızın hepsiTutarına bakılmaksızın hepsi573 SN
5Basit usul + işletme hesabı: 3.000 TL dönemi 31/12/2026'ya uzatıldı, sınırsız zorunluluk 1/1/2027'ye ertelendi589 SN (RG 31/12/2025-33124, 5. Mükerrer)

"27 526 Sıra No.lu Vergi Usul Kanunu Tebliği (RG: 09/02/2021 - 31390) ile değiştirilmeden önceki hali: e-Arşiv Fatura uygulamasına dahil olmayan mükelleflerce, 1/1/2020 tarihinden itibaren düzenlenecek faturaların, vergiler dahil toplam tutarının 30 Bin TL'yi (vergi mükelleflerine düzenlenenler açısından vergiler dahil toplam tutarı 5.000 TL'yi) aşması halinde ... 28 573 Sıra No.lu Vergi Usul Kanunu Tebliği (RG: 12/11/2024 - 32720) ile yürürlükten kaldırılmadan önceki hali: Aynı günde aynı kişilere düzenlenen faturalar topluca birlikte değerlendirilecek olup, faturaların vergi dâhil tutar toplamının belirtilen tutarı aşması halinde, söz konusu faturaların e-Arşiv Fatura olarak düzenlenmesi ve alınması zorunluluğu bulunmaktadır."

MÜLGA KURAL — "aynı gün aynı kişi" toplaması: 573 SN, "aynı günde aynı kişilere düzenlenen faturaların topluca değerlendirilmesi" kuralını (509 IV.2.4.3 üçüncü fıkra) yürürlükten kaldırmıştır. 12/11/2024'ten sonra gün içi toplama kuralı YOKTUR; her fatura kendi tutarıyla değerlendirilir. Portalde "aynı gün aynı müşteri tutar toplama" kontrolü gerekmemektedir.

573 SN yürürlük maddesi (MADDE 20): 3 Bin TL değişikliği 1/1/2025'ten itibaren gerçekleştirilen teslim ve hizmetlere uygulanmak üzere 1/1/2025'te; üçüncü fıkra değişikliği 1/1/2026'dan itibaren gerçekleştirilen teslim ve hizmetlere uygulanmak üzere 1/1/2026'da yürürlüğe girer.

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt (dipnot 26, 27, 28)

589 SN VUK GT (RG 31.12.2025-33124) — Tek Etkisi

"MADDE 1- 19/10/2019 tarihli ve 30923 sayılı Resmi Gazete'de yayımlanan Vergi Usul Kanunu Genel Tebliği (Sıra No: 509)'nin "IV.2.4.3. e-Arşiv Fatura Olarak Düzenlenme Zorunluluğu Getirilen Diğer Faturalar" başlıklı bölümünün birinci fıkrasında yer alan "1/1/2025 ila 31/12/2025" ifadesinden sonra gelmek üzere "(ticari kazançları basit usulde tespit edilen mükellefler ile işletme hesabı esasına göre defter tutan mükellefler açısından 1/1/2025 ila 31/12/2026)" ve "1/1/2026" ifadesinden sonra gelmek üzere "(ticari kazançları basit usulde tespit edilen mükellefler ile işletme hesabı esasına göre defter tutan mükellefler açısından 1/1/2027)" ifadesi eklenmiştir."

Maddeİçerik
MADDE 1IV.2.4.3'e basit usul + işletme hesabı parantezleri eklendi
MADDE 2Yayımı tarihinde yürürlüğe girer (31/12/2025)
MADDE 3Hazine ve Maliye Bakanı yürütür

589, 509'da yalnızca tek bir bölümü (IV.2.4.3) değiştirmiştir. Başka hiçbir had veya tarih değişmemiştir. Sonuç: Portalin basit usul / işletme hesabı / bilanço ayrımını yapan bir mükellef-tipi alanı tutması ZORUNLUDUR.

Kaynak: Vergi_Usul_Kanunu_Genel_Tebligi__Sira_No_509__nde_Degisiklik_Yapilmasina_Dair_Teblig__Sira_No_589__.txt

573 SN VUK GT (RG 12.11.2024-32720) — Zorunluluk Hadlerine İlişkin Maddeler

"MADDE 2- Aynı Tebliğin "IV.2.4.3. e-Arşiv Fatura Olarak Düzenlenme Zorunluluğu Getirilen Diğer Faturalar" başlıklı bölümünün birinci fıkrasında yer alan ", 1/1/2020 tarihinden itibaren düzenlenecek faturaların, vergiler dahil toplam tutarının 5 Bin TL'yi (vergi mükelleflerine düzenlenenler açısından Kanunun 232 nci maddesinin ikinci fıkrasında belirtilen, işlemin gerçekleştiği yıla ait, fatura düzenleme zorunluluğuna ilişkin tutarı) aşması halinde, söz konusu faturaların," ibaresi "düzenlenecek faturaların; 1/1/2025 ila 31/12/2025 tarihleri arasında vergiler dahil toplam tutarının 3 Bin TL'yi aşması halinde, 1/1/2026 tarihinden itibaren ise tutarına bakılmaksızın," şeklinde değiştirilmiş ve aynı bölümde yer alan üçüncü fıkra yürürlükten kaldırılmıştır."

MaddeEtki
MADDE 1 ve 5–8e-Dekont kapsamı bankalardan VUK 435 SN GT'nin (2) numaralı bölümündeki kuruluşlara genişletildi; İDİS tanımı eklendi
MADDE 2e-Arşiv: 3 Bin TL (2025) / 1/1/2026'dan sınırsız; üçüncü fıkra (aynı gün aynı kişi) mülga
MADDE 3e-İrsaliye IV.3.5'e (9) numaralı İDİS bendi eklendi (2024+ dönemlerde 1 Milyon TL ve üzeri)
MADDE 4e-İrsaliye IV.3.6 ikinci fıkrasına İDİS mükellefleri eklendi → "izleyen dördüncü ayın başı" grubuna girer

Kaynak: Vergi_Usul_Kanunu_Genel_Tebligi__Sira_No_509__nde_Degisiklik_Yapilmasina_Dair_Teblig__Sira_No_573__.txt

IV.2.4.4 — Başkanlıkça Re'sen e-Arşiv Zorunluluğu

"Başkanlık, yapılan analiz veya inceleme çalışmaları neticesinde riskli ya da vergiye uyum düzeyi düşük olduğu tespit edilen mükellefleri veya mükellef gruplarını, faaliyet, sektör ve ciro tutarına bağlı olmaksızın, yazılı bildirim yapmak ve geçiş hazırlıkları için en az 3 ay süre vermek suretiyle e-Arşiv Fatura uygulamasına geçme zorunluluğu getirmeye yetkilidir."

Aynı yetki e-Fatura için IV.1.4(ğ), e-İrsaliye için IV.3.5/10'da tekrarlanır.

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt

IV.2.4.5 — Elektronik Ticaret Kapsamındaki e-Arşiv Faturalarda ZORUNLU ALANLAR

"e-Arşiv Fatura uygulamasına dahil olan mükellefler tarafından elektronik ticaret kapsamında gerçekleştirilen mal ve hizmet satışlarına ilişkin düzenlenecek e-Arşiv Faturalarda aşağıdaki bilgilere yer verilmesi zorunlu olup, ayrıca fatura üzerinde "Bu satış internet üzerinden yapılmıştır." ifadesi yer almalıdır. 1. Satış işleminin yapıldığı web adresi. 2. Ödeme şekli. 3. Ödeme tarihi. 4. Mal satışlarında gönderiyi taşıyanın adı soyadı/unvanı ve VKN/TCKN bilgisi. 5. Satışa konu malın gönderildiği veya hizmetin ifa edildiği tarih. 6. İade bölümünde; malı iade edenin adı soyadı, adresi, imzası, iade edilen mala ilişkin cins, miktar, birim fiyat ve tutarı."

Zorunlu 6 bilgi alanı (TAM LİSTE):

#Alan
1Satış işleminin yapıldığı web adresi
2Ödeme şekli
3Ödeme tarihi
4Mal satışlarında gönderiyi taşıyanın adı soyadı/unvanı ve VKN/TCKN bilgisi
5Satışa konu malın gönderildiği veya hizmetin ifa edildiği tarih
6İade bölümü: malı iade edenin adı soyadı, adresi, imzası, iade edilen mala ilişkin cins, miktar, birim fiyat ve tutarı

Zorunlu ibare: "Bu satış internet üzerinden yapılmıştır."

Sevkiyat sırasında mal yanında bulunması gerekenlerden BİRİ:

#Belge
1Sevk irsaliyesi ya da e-İrsaliyenin bir örneği (veya format ve standardı Başkanlıkça belirlenen, e-İrsaliyenin elektronik ortamda sorgulanmasına/görüntülenmesine/doğrulanmasına imkân veren bilgileri barındıran özel kodlu belgenin kâğıt çıktısı)
2Sevk irsaliyesi yerine geçen e-Arşiv Faturanın kâğıt çıktısı
3ÖKC fatura bilgi fişi

İade mekanizması: Müşteri malı iade etmek isterse elektronik ortamda kendisine iletilen faturanın kâğıt çıktısını alır, iade bölümünü doldurup imzalar ve mal ile birlikte satıcıya gönderir. Bu belge, satıcı tarafından düzenlenen gider pusulası yerine geçer.

e-Fatura kayıtlı alıcılara internetten mal satışı: Düzenlenecek e-Faturada 6. madde hariç yukarıdaki bilgilere yer verilir (iade bölümü e-Faturada aranmaz). Aynı sevk belgesi kuralları geçerlidir.

Değişiklik: 535 SN ile sevk belgesi listesine e-İrsaliye örneği ve özel kodlu belge kâğıt çıktısı eklendi (dipnot 29 ve 30). Önceki hâli yalnızca "e-Arşiv Faturanın kâğıt çıktısı, ÖKC fatura bilgi fişi ya da sevk irsaliyesi" diyordu.

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt


e-İRSALİYE Zorunluluğu

Çerçeve Hüküm — IV.3.5

"Aşağıda belirtilen mükelleflerin e-İrsaliye uygulamasına dâhil olmaları ve düzenleyecekleri sevk irsaliyelerini bu Tebliğin "V.7." ve "VIII." numaralı bölümlerinde belirtilen istisnai durumlar haricinde "e-İrsaliye" olarak düzenlemeleri ve uygulama kapsamındaki mükelleflerden alacakları sevk irsaliyelerini de "e-İrsaliye" olarak almaları zorunludur."

TAM TABLO — IV.3.5 e-İrsaliye Zorunluluk Bentleri (1–10)

#Kapsamdaki mükellef (sektör)Ciro eşiğiGeçiş tarihi (IV.3.6)Tebliğ / dipnot
1ÖTV Kanununa ekli (I) sayılı listedeki malların imali, ithali, teslimi vb. faaliyetleri nedeniyle EPDK'dan lisans (bayilik lisansı dâhil) alan mükellefler — akaryakıt bayileri dâhilYOK1/7/2020'ye kadar; 1/1/2020'den itibaren yeni girenler: şartların sağlandığı ayı izleyen dördüncü ayın başı509 asıl
2ÖTV Kanununa ekli (III) sayılı listedeki malların imal, inşa, ithalini ve ana bayi/distribütör şeklinde pazarlamasını gerçekleştirenler (tütün, alkol, kolalı gazoz)YOKAynı509 asıl
33213 s. Maden Kanunu kapsamında düzenlenen işletme ruhsatı/sertifikası sahipleri ve bunlarla yaptıkları sözleşmeye istinaden maden üretim faaliyetinde bulunan gerçek ve tüzel kişi mükelleflerYOKAynı509 asıl
44634 s. Şeker Kanunu md.2/(e) bendindeki şekerin imalini gerçekleştiren mükelleflerYOKAynı509 asıl
5Demir ve çelik (GTİP 72) ile demir veya çelikten eşyaların (GTİP 73) imali, ithali veya ihracı faaliyetinde bulunanlar (ticari kazançları basit usulde tespit edilenler hariç)YOKAynı535 ile DEĞİŞTİRİLDİ (dipnot 31)
6Tarım ve Orman Bakanlığınca oluşturulan Gübre Takip Sistemi'ne kayıtlı kullanıcılarYOKAynı509 asıl
7e-Fatura uygulamasına kayıtlı olan ve brüt satış hasılatı (veya satışları ile gayrisafi iş hasılatı) 2018/2019/2020 dönemlerinde 25 Milyon TL; 2021 veya müteakip dönemlerde 10 Milyon TL ve üzeri olanlarVARMüteakip hesap döneminin yedinci ayı başından itibaren535 ile DEĞİŞTİRİLDİ (dipnot 32)
85957 s. Kanun (Hal Kayıt Sistemi) hükümlerine göre komisyoncu veya tüccar olarak sebze ve meyve ticaretiyle iştigal edenlerYOK1/1/2020'ye kadar509 asıl
9İnşaat Demiri İzleme Sistemine (İDİS) geçiş zorunluluğu getirilen mükelleflerden brüt satış hasılatı 2024 ve müteakip hesap dönemlerinde 1 Milyon TL ve üzeri olanlarVARŞartların sağlandığı ayı izleyen dördüncü ayın başı573 ile EKLENDİ (dipnot 33; IV.3.6 için dipnot 34)
10Başkanlığın re'sen zorunluluk yetkisi: riskli ya da vergiye uyum düzeyi düşük mükellefler/gruplar, faaliyet, sektör ve ciro tutarına bağlı olmaksızın, yazılı bildirim + en az 3 ay süre. Bu mükellefler tüm müşterilerine e-İrsaliye düzenlemek zorundadırYOKYazılı bildirimde belirtilen süre509 asıl (573 ile numarası 9'dan 10'a teselsül etti)

573 MADDE 3: "(8) numaralı bentten sonra gelmek üzere ... eklenmiş ve diğer bent buna göre teselsül ettirilmiştir" — eski (9) numaralı Başkanlık yetkisi bendi (10)'a kaymıştır.

Görevde sorulan sektörlerin karşılığı: şeker → bent 4; demir-çelik → bent 5; gübre → bent 6; HKS (sebze-meyve) → bent 8; maden ruhsatı → bent 3; akaryakıt bayileri → bent 1 (bayilik lisansı dâhil).

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt

IV.3.5/4 — Şeker Kanunu md.2/(e) Şekerin TAM Tanımı

"4- 4/4/2001 tarihli ve 4634 sayılı Şeker Kanununun 2 nci maddesinin (e) bendinde tanımına yer verilen şekerin (Beyaz şeker (standart, rafine küp ve kristal şeker), yarı beyaz şeker, rafine şeker, ham şeker ve kahverengi şeker olarak sınıflandırılan, pancar veya kamıştan üretilen kristallendirilmiş sakaroz ile nişasta kökenli izoglukoz, likid ya da kurutulmuş halde glukoz şurubu, sakaroz veya invert şeker veya her ikisinin karışımının suda çözünmesinden meydana gelen şeker çözeltisi ve invert şeker şurubu ile inülin şurubu) imalini gerçekleştiren mükellefler."

Kapsamdaki ürünlerin TAM listesi:

#Ürün
1Beyaz şeker (standart, rafine küp ve kristal şeker)
2Yarı beyaz şeker
3Rafine şeker
4Ham şeker
5Kahverengi şeker
6Nişasta kökenli izoglukoz
7Likid ya da kurutulmuş hâlde glukoz şurubu
8Sakaroz veya invert şeker veya her ikisinin karışımının suda çözünmesinden meydana gelen şeker çözeltisi
9İnvert şeker şurubu
10İnülin şurubu

Ortak tanım: pancar veya kamıştan üretilen kristallendirilmiş sakaroz. Kapsam yalnızca imalatçıdır ("imalini gerçekleştiren mükellefler") — ticaretini yapanlar bu bent kapsamında değildir.

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt

IV.3.5/5 ve /9 — Demir-Çelik (GTİP 72/73) ve İDİS

Bent 5 güncel hâli:

"5- Demir ve çelik (GTİP 72) ile demir veya çelikten eşyaların (GTİP 73) imali, ithali veya ihracı faaliyetinde bulunan mükellefler (ticari kazançları basit usulde tespit edilenler hariç)."

535 öncesi hâli (dipnot 31): "5- e-Fatura uygulamasına kayıtlı olan mükelleflerden demir ve çelik (GTİP 72) ile demir veya çelikten eşyaların (GTİP 73) imali, ithali veya ihracı faaliyetinde bulunan mükellefler."

Unsur535 öncesi535 sonrası (güncel)
e-Fatura kaydı ön şartıVARKALDIRILDI
Basit usul istisnasıYOKEKLENDİ

Artık e-Fatura mükellefi olmayan bir GTİP 72/73 imalatçısı da e-İrsaliye zorunlusudur. DİKKAT: bentte "teslim" veya "yurt içi ticaret" YOKTUR — yalnızca imal, ithal, ihraç.

Bent 9 (İDİS): İDİS tanımı Tebliğ'in kısaltmalar bölümünde 573 ile eklenmiştir (dipnot 3): "İnşaat Demiri İzleme Sistemi (İDİS): 16/3/2023 tarihli ve 32134 sayılı Resmi Gazete'de yayımlanan İnşaat Demiri İzleme..." Kapsam: İDİS'e geçiş zorunluluğu getirilen mükelleflerden brüt satış hasılatı 2024 ve müteakip hesap dönemlerinde 1 Milyon TL ve üzeri olanlar.

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt

IV.3.6 — e-İrsaliye Geçiş Süresi (İki Fıkra, İki Rejim)

"Bu Tebliğin "IV.3.5." numaralı bölümünde belirtilen mükelleflerin, e-İrsaliye uygulamasına ilişkin başvurularını ve fiili geçiş hazırlıklarını 1/7/2020 tarihine kadar tamamlayarak (11/3/2010 tarihli ve 5957 sayılı Sebze ve Meyveler ile Yeterli Arz ve Talep Derinliği Bulunan Diğer Malların Ticaretinin Düzenlenmesi Hakkında Kanun hükümlerine göre komisyoncu veya tüccar olarak sebze ve meyve ticaretiyle iştigal eden mükellefler 1/1/2020 tarihine kadar) e-İrsaliye uygulamasına geçmeleri ... zorunludur."

Birinci fıkra (genel takvim): 1/7/2020'ye kadar. İstisna: sebze-meyve komisyoncu/tüccarları 1/1/2020'ye kadar.

İkinci fıkra (1/1/2020'den itibaren yeni girenler):

GrupGeçiş anı
ÖTV (I) EPDK lisansı alanlar; ÖTV (III) imal/inşa/ithal edenler; maden ruhsatı veya sertifikası alanlar (sözleşmeye istinaden maden üretim faaliyetinde bulunanlar dâhil); şeker imalini gerçekleştirenler; demir-çelik ve demir/çelikten ürünlerin imal, ithal veya ihracını gerçekleştirenler (basit usul hariç); Gübre Takip Sistemine dâhil olanlar; Hal Kayıt Sistemi kapsamında sebze-meyve toptan ticaretine başlayan tüccar/komisyoncular; İDİS + 2024 ve müteakip dönemlerde 1 Milyon TL ve üzeri hasılatSöz konusu şartların sağlandığı ayı izleyen dördüncü ayın başından
Brüt satış hasılatı 2018/2019/2020'de 25 Milyon TL, 2021 ve müteakip dönemlerde 10 Milyon TL ve üzeri olanlarMüteakip hesap döneminin yedinci ayı başından

"brüt satış hasılatı (veya satışları ile gayrisafi iş hasılatı) 2018, 2019 veya 2020 hesap dönemlerinde 25 Milyon TL, 2021 veya müteakip hesap dönemlerinde 10 Milyon TL ve üzeri olan mükelleflerin ise müteakip hesap döneminin yedinci ayı başından itibaren e-İrsaliye uygulamasına geçmeleri ... zorunludur."

e-İrsaliye ciro haddi zinciri:

AşamaHadDayanak
509 ilk hâlie-Fatura'ya kayıtlı olup 2018 veya müteakip hesap dönemleri 25 Milyon TL ve üzeri509 SN (19/10/2019)
535 sonrası (güncel)2018-2019-2020: 25 Milyon TL; 2021 ve sonrası: 10 Milyon TL535 SN (RG 22/01/2022-31727)

Takvim örneği: 2021 dönemi 10M → 1/7/2022; 2022 → 1/7/2023; 2023 → 1/7/2024; 2024 → 1/7/2025; 2025 → 1/7/2026; 2026 → 1/7/2027.

NOT: e-İrsaliye ciro haddi için "e-Fatura uygulamasına kayıtlı olma" ön şartı 7. bentte hâlâ vardır (5. bentten 535 ile kaldırılmıştır).

Değişiklikler: İDİS ibaresi 573 (dipnot 34, MADDE 4) ile; hasılat eşikleri ve basit usul istisnası 535 (dipnot 35) ile; ayrıca 526 ile de değişiklik yapılmıştır (dipnot 36).

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt


Diğer e-Belgelerde Zorunluluk ve Eşikler

e-SMM (Serbest Meslek Makbuzu) — IV.4.4 / IV.4.5

"Serbest meslek erbaplarından; a) 1/2/2020 tarihi itibarıyla faaliyetine devam etmekte olanların 1/6/2020 tarihine, b) 1/2/2020 tarihinden (bu tarih dâhil) itibaren faaliyetine başlayacak olanların ise işe başladıkları ayı izleyen 3 üncü ayın sonuna, kadar e-Serbest Meslek Makbuzu uygulamasına dahil olmaları ... zorunludur."

Kapsam: Vergiden muaf olmayan tüm serbest meslek erbapları. Ciro haddi YOKTUR, sektör/faaliyet ayrımı YOKTUR.

DurumSon tarih
1/2/2020 tarihi itibarıyla faaliyetine devam etmekte olanlar1/6/2020
1/2/2020 tarihinden (bu tarih dâhil) itibaren faaliyetine başlayacak olanlarİşe başladıkları ayı izleyen 3 üncü ayın sonu

Ceza (IV.4.6): Süresinde geçmeyenler ile kâğıt SMM düzenleyen/alanlar hakkında VUK cezai hükümleri uygulanır.

31.08.2026 itibarıyla bu tarihler geçmiştir; portal açısından "her serbest meslek erbabı e-SMM mükellefidir" kabul edilebilir.

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt

e-MM (Müstahsil Makbuzu) — IV.5.4 / IV.5.5

"e-Müstahsil Makbuzunu düzenleme zorunluluğu bulunan mükelleflerin, 1/7/2020 tarihine kadar (11/3/2010 tarihli ve 5957 sayılı ... Kanun hükümlerine göre komisyoncu veya tüccar olarak sebze ve meyve ticaretiyle iştigal eden mükellefler 1/1/2020 tarihine kadar) (2020 veya müteakip yıllarda e-Fatura uygulamasına geçen ve müstahsil makbuzu düzenleme zorunluluğu bulunan mükellefler e-Fatura uygulamasına geçiş süresi içinde) gerekli başvuruları yaparak e-Müstahsil Makbuzu uygulamasına geçmeleri ... zorunludur."

Kapsam (IV.5.4) — üç grup:

#Grup
1e-Fatura uygulamasına geçmek zorunda olan mükelleflerden faaliyetleri gereği aynı zamanda müstahsil makbuzu düzenlemek zorunda olanlar
25957 sayılı Kanun'a göre komisyoncu veya tüccar olarak sebze-meyve ticaretiyle iştigal eden mükellefler
3Başkanlıkça e-MM'ye geçiş zorunluluğu getirilen mükellefler (riskli/uyum düzeyi düşük olanlar; yazılı bildirim + en az 3 ay süre)

Takvim (IV.5.5):

DurumSon tarih
Genel1/7/2020
Sebze-meyve komisyoncu/tüccarları1/1/2020
2020 veya müteakip yıllarda e-Fatura'ya geçen ve müstahsil makbuzu düzenleme zorunluluğu olanlare-Fatura uygulamasına geçiş süresi içinde

Müstahsil makbuzu düzenleme zorunluluğu yoksa e-MM zorunluluğu da yoktur; ayrı bir ciro haddi YOKTUR — had e-Fatura haddine bağlıdır (2022+ için 3 Milyon TL).

İLAVE GÜNCEL ZORUNLULUK (22.05.2026 duyurusu): e-MM çıktısının ıslak imza ile imzalanması yerine, müstahsilin telefonuna gönderilecek SMS kodunun, telefon numarasının ve SMS'i gönderen operatör bilgisinin e-MM'de yer alması zorunlu kılınmıştır. 5.11.2026 tarihinden itibaren düzenlenecek tüm e-Müstahsil Makbuzlarında uygulanması zorunludur (öncesinde isteğe bağlı kullanılabilir).

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt, e-Mustahsil_Makbuzu_Teknik_Kilavuzu_V1.1_.txt (22.05.2026), e-Mustahsil_Makbuzu_Duyurusu_.txt

e-Gider Pusulası — IV.6.4 / IV.6.5: HAD YOK, TARİH YOK

"IV.6.4. e-Gider Pusulası Uygulamasına Geçiş Zorunluluğu — Başkanlık, yapılan analiz veya inceleme çalışmaları neticesinde riskli ya da vergiye uyum düzeyi düşük olduğu tespit edilen mükellefleri veya mükellef gruplarını faaliyet, sektör ve ciro tutarına bağlı olmaksızın, yazılı bildirim yapmak ve geçiş hazırlıkları için en az 3 ay süre vermek suretiyle e-Gider Pusulası uygulamasına geçme zorunluluğu getirmeye yetkilidir."

Hükümİçerik
IV.6.2İsteğe bağlı dâhil olmak için e-Fatura'ya dâhil olma şartı vardır
IV.6.4Tek zorunluluk mekanizması Başkanlık takdiridir (faaliyet, sektör ve ciro tutarına bağlı olmaksızın; yazılı bildirim + en az 3 ay süre)
IV.6.5Zorunlu kılınanlar, Başkanlıkça belirtilen süre içinde dâhil olmak ve o tarihten itibaren gider pusulalarını e-Gider Pusulası olarak düzenlemek zorundadır

Geçiş Takvimi Tablosu da aynı sonucu verir: e-Gider Pusulası satırında tek kalem "Başkanlık ... yetkilidir" ve açıklama "Kendisine yazılı bildirim yapılan mükelleflerin, yazılı bildirimde belirtilen süreler içinde e-Gider Pusulası uygulamasına dâhil olması gerekmektedir."

Portal açısından: e-Gider Pusulası mükellefiyeti bir ciro kuralı ile HESAPLANAMAZ; GİB'in mükellef bazlı bildirimi / kayıtlı kullanıcı listesi esas alınmalıdır.

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt, 509_s.VUK_GT_Kapsaminda_Uygulamalara_Gecis_Takvimi_Tablosu__3__.txt

e-Bilet — IV.7.4.1 (Kara/Deniz Yolu) ve IV.7.4.2 (Sinema)

"8/1/2018 tarihli ve 30295 sayılı Resmî Gazete'de yayımlanan Karayolu Taşıma Yönetmeliğinde belirtilen şehirlerarası tarifeli yolcu taşımacılığı faaliyetiyle iştigal eden D1 yetki belgeli işletmeler 1/1/2021 tarihine kadar (2021 veya müteakip yıllarda faaliyetlerine başlayanlar, faaliyete başladığı ayı izleyen dördüncü ayın başından itibaren) e-Bilet uygulamasına geçmek ... zorundadırlar."

GrupTanımGeçiş tarihiSonradan başlayanlar
Kara/deniz yolu yolcu taşımacılığıKarayolu Taşıma Yönetmeliği'nde (RG 8/1/2018-30295) belirtilen şehirlerarası tarifeli yolcu taşımacılığı faaliyetiyle iştigal eden D1 yetki belgeli işletmeler1/1/2021'e kadar2021 veya müteakip yıllarda faaliyete başlayanlar: faaliyete başladığı ayı izleyen dördüncü ayın başından itibaren
SinemaYerli ve yabancı film gösteriminde bulunan sinema işletmeleri1/7/2020'ye kadar1/7/2020'den sonra faaliyete başlayanlar: faaliyetlerine başladıkları ayı izleyen dördüncü ayın başına kadar

Ciro haddi yoktur, faaliyet bazlıdır. D1 yetki belgeliler, bu tarihten sonra düzenleyecekleri yolcu biletlerini ve yolcu listelerini e-Bilet ve e-Bilet Yolcu Listesi olarak düzenlemek zorundadır.

Sinema işletmeleri için ilave YN ÖKC zorunluluğu: Düzenledikleri her e-Bilet belgesindeki bilgileri "e-Bilet Bilgi Fişi (Sinema)" olarak kayıt altına almak amacıyla Yeni Nesil ÖKC kullanmak zorundadır. YN ÖKC'nin her bilet satış gişesinde bulunma zorunluluğu yoktur; sinema mekânı bazında, eğlence vergisinin beyan/ödemesinin yapılacağı belediye bazında ya da (belediyeler bazında aylık satış raporu alınabilmesi koşuluyla) işletme merkez bilgi işlem lokasyonlarında kurulabilir.

HAVA YOLU: 509'da hava yolu için e-Bilet zorunluluğu getirilmemiştir (IV.7.2'de yalnızca "Türkiye'de tam mükellef olmayan hava yolu firmaları" e-Fatura şartından muaf tutulmuştur).

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt

e-Adisyon — IV.12.4 / IV.12.5

"Başkanlık, adisyon belgesi düzenleyen hizmet işletmelerine, yıllık veya aylık satış hasılatı tutarlarını dikkate alarak, geçiş hazırlıkları için en az 3 ay geçiş süresi vermek ve yazılı bildirim ya da ebelge.gib.gov.tr adresinde duyurmak suretiyle e-Adisyon uygulamasına geçme zorunluluğu getirmeye yetkilidir."

e-Adisyon için sabit bir had/tarih YOKTUR; ancak diğer belgelerden farklı olarak Başkanlığın yetkisi açıkça "yıllık veya aylık satış hasılatı tutarlarını dikkate alarak" şeklinde formüle edilmiştir ve zorunluluk yalnızca yazılı bildirimle değil, ebelge.gib.gov.tr'de duyuru ile de getirilebilir.

Hükümİçerik
IV.12.4Başkanlık yetkisi (yıllık veya aylık satış hasılatı kriteri; en az 3 ay süre; yazılı bildirim ya da duyuru)
IV.12.5Bildirim/duyuruda belirtilen süre içinde dâhil olunur ve o tarihten itibaren adisyon belgeleri e-Adisyon olarak düzenlenir
IV.12.6Kâğıt adisyon düzenleyenler dâhil, VUK cezai hükümleri

573 SN etkisi: e-Adisyon'un içerik alanları da değiştirilmiştir — "Düzenlenen e-Adisyon belgesinin ilişkili olduğu e-Fatura veya e-Arşiv Fatura'nın ETTN'si veya perakende satış fişinin düzenlendiği ÖKC'nin cihaz sicil numarası" alanı (eski d bendi) yürürlükten kaldırılmıştır.

Geçiş Takvimi Tablosunda e-Adisyon satırı hiç yoktur (tablo bu belgeden önceki bir sürüme dayanmaktadır).

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt, e-Adisyon_Belgesi_Teknik_Kilavuzu_V1_1_.txt

İsteğe Bağlı Dört Belge: e-Sigorta Komisyon Gider, e-Sigorta Poliçesi, e-Döviz Alım-Satım, e-Dekont

"e-Dekont uygulaması zorunlu bir uygulama olmayıp, bankalar istemeleri halinde 1/1/2020 tarihinden, Vergi Usul Kanunu Genel Tebliği (Sıra No:435)'nin (2) numaralı bölümünde sayılan kuruluşlar ise istemeleri halinde 1/1/2025 tarihinden53 itibaren uygulamaya dahil olabileceklerdir."

BelgeBölümDurumZorunluluk mekanizması
e-Sigorta Komisyon Gider BelgesiIV.8.4 / IV.8.5"isteğe bağlı bir uygulama"Başkanlık en az 3 aylık süre belirleyerek, ebelge.gib.gov.tr duyurusu ile; muhatap: sigorta, emeklilik ve reasürans şirketleri
e-Sigorta PoliçesiIV.9.4 / IV.9.5"isteğe bağlı bir uygulama"Başkanlık en az 3 aylık süre belirleyerek, duyuru ile; muhatap: sigorta, emeklilik ve reasürans şirketleri VEYA sigorta ve emeklilik aracıları
e-Döviz Alım-Satım BelgesiIV.10.4 / IV.10.5zorunlu değilBaşkanlık en az 3 aylık süre belirleyerek, duyuru ile; muhatap: yetkili müesseseler
e-DekontIV.11.4 / IV.11.5"zorunlu bir uygulama olmayıp"Bankalar isteğe bağlı 1/1/2020'den; VUK 435 SN GT (2) numaralı bölümündeki kuruluşlar isteğe bağlı 1/1/2025'ten itibaren (573 SN ile eklendi). Zorunluluk Başkanlık duyurusu ile

Geçiş Takvimi Tablosu da bu dördü için tarih vermez, yalnızca "Başkanlık tarafından belirlenen süre içinde" der.

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt


İhtiyari (İsteğe Bağlı) Kullanım — IV.1.2 / IV.2.2 / IV.3.2

"b) e-Fatura uygulamasına dahil olma zorunluluğu bulunan mükellefler ile ihtiyari olarak uygulamaya dahil olan mükelleflerin, birbirlerine sattıkları mallar ve/veya ifa ettikleri hizmetler için düzenlemeleri ve almaları gereken faturaları, bu Tebliğin "V.7." ve "VIII." numaralı bölümlerinde belirtilen istisnai durumlar haricinde e-Fatura olarak düzenlemeleri ve almaları zorunludur."

Üç uygulamada da aynı yapı vardır: zorunluluk kapsamında olmayanlar isteğe bağlı dâhil olabilir. IV.1.4(d) bunu açıkça tekrarlar: "Bu Tebliğle belirlenen hadlerin altında kalan mükellefler de istemeleri halinde e-Fatura uygulamasından yararlanabilir."

Önemli sonuç: İhtiyari olarak dâhil olan mükellef de, diğer kayıtlı kullanıcılarla arasındaki işlemlerde e-Fatura düzenlemek ve almak ZORUNDADIR. Portal, ihtiyari kullanıcıyı da zorunlu kullanıcı gibi ele almalıdır.

Ayrıca IV.2.4.3'teki kural: "Satıcı ve alıcının her ikisinin de e-Fatura uygulamasına kayıtlı kullanıcılar olması halinde, bunlar arasında düzenlenen faturaların tamamının e-Fatura olması gerekmektedir."

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt


"NİHAİ TÜKETİCİ" e-Arşiv Faturası Eşiği — 509 V.2

e-Fatura ve e-Arşiv'e kayıtlı olup 483 SN VUK GT md.6/1 şartlarını sağlayarak ÖKC kullanımından muaf olan mükellefler ile 507 SN VUK GT'deki Güvenli Mobil Ödeme ve Elektronik Belge Yönetim Sisteminden yararlananlar, vergiler dahil toplam satış tutarı VUK md.232/2'deki işlemin gerçekleştiği yıla ait fatura düzenleme haddine kadar olan perakende mal ve hizmet satışlarında, e-Arşiv Faturayı "müşterinin adı, ticaret unvanı, adresi, vergi dairesi ve hesap numarası" yerine müşteri adı bölümünde "NİHAİ TÜKETİCİ" yazarak düzenleyebilir; bu belgeler perakende satış fişi veya ÖKC fişi olarak kabul edilir.

AşamaEşikDayanak
509 ilk hâli (19/10/2019)500 TL, yalnızca 483 SN ÖKC muafları, "kabul edilecektir"509
515 SN (RG 10/01/2020-31004)Metin yeniden yazıldı; 507 SN GMÖ-EBYS kullanıcıları eklendi515
550 SN (RG 07/10/2023-32332)500 TL → VUK md.232/2'deki, işlemin gerçekleştiği yıla ait fatura düzenleme haddi. Değişiklik, yayımı izleyen aybaşından itibaren gerçekleştirilen teslim ve hizmetlere uygulanır550

"66 550 Sıra No.lu Vergi Usul Kanunu Tebliği (RG: 07/10/2023 - 32332) ile değiştirilmeden önceki hali: 500 TL'ye. Bu değişiklik Tebliğin yayımlandığı tarihi izleyen aybaşından itibaren gerçekleştirilen teslim ve hizmetlere uygulanmak üzere yayımı tarihinde yürürlüğe girer."

"67 515 Sıra No.lu Vergi Usul Kanunu Tebliği (RG: 10/01/2020 - 31004) ile değiştirilmeden önceki hali: e-Fatura ve e-Arşiv Fatura uygulamalarına kayıtlı bulunan ve 30/9/2017 tarihli ve 483 Sıra No.lu Vergi Usul Kanunu Genel Tebliği'nin 6 ncı maddesinin birinci fıkrasında belirtilen şartları sağlayarak ÖKC kullanımından muafiyeti bulunan mükellefler tarafından, vergi dahil toplam satış tutarı 500 TL'ye kadar olan perakende mal ve hizmet satışlarına ait düzenlenen e-Arşiv Faturanın ... "NİHAİ TÜKETİCİ" açıklamasına yer verilerek düzenlenmesi halinde, düzenlenen bu belge perakende satış fişi veya ÖKC fişi olarak kabul edilecektir."

Şarj hizmetleri istisnası (550 SN ek fıkra): Şarj ağı işletmeci lisansı alanlar ve şarj istasyonu işletmecileri, IV.1.5/(g) uyarınca e-Fatura'ya dâhil olmaları gereken tarihten itibaren, Şarj Hizmeti Yönetmeliği kapsamındaki teslim/ifalara ilişkin belgeleri VUK 232/2 haddine bağlı olmaksızın e-Fatura veya e-Arşiv Fatura olarak düzenlemek zorundadır (2/1/2024'ten itibaren gerçekleştirilen teslim ve hizmetlere uygulanır).

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt


Kâğıt Belge Düzenlenebilecek Haller — V.7 ve VIII (Fallback Mantığının Tek Dayanağı)

V.7 — Özel Usulsüzlük Cezası Kesilmeyen Dört Hal (TAM LİSTE)

"Elektronik belge olarak düzenlenme zorunluluğu getirilen belgelerin; a) Başkanlığın ve e-Belge uygulamalarına taraf olan diğer kamu kurum ve kuruluşlarının bilgi işlem sistemlerinde meydana gelen arıza, kesinti ile bu sistemlerde yapılan bakım, b) İspat veya tevsik edilmek kaydıyla, mükellefin ya da Başkanlıktan izin almış özel entegratör kuruluşların bilgi işlem sistemlerinde meydana gelen arıza, kesinti ile bu sistemlerde yapılan planlı bakım (yazılı bildirimde belirtilen süre ile sınırlı kalmak kaydıyla), c) İspat veya tevsik edilmek kaydıyla, kullanılmakta olan mali mührün veya elektronik imza aracının arızalanması veya çalınması (yeni mali mühür veya elektronik imza aracının temini süresince), ç) Bakanlık veya Başkanlık tarafından e-Belge uygulamalarına ilişkin olarak yayımlanan genel tebliğ, sirküler ve teknik kılavuz ve duyurularda, belgelerin e-Belge yerine kâğıt olarak düzenlenmesine ve e-Fatura yerine e-Arşiv Fatura düzenlenmesine izin verilmesi, gibi nedenlerle, kanunen düzenlenmesi gereken sürenin geçirilmemesi kaydıyla, kâğıt olarak düzenlenmesi [(ç) bendi bakımından e-Fatura yerine e-Arşiv Fatura düzenlenmesi de dâhil] durumunda özel usulsüzlük cezası kesilmez."

BentHalŞart
aBaşkanlığın ve e-Belge uygulamalarına taraf olan diğer kamu kurum ve kuruluşlarının bilgi işlem sistemlerinde meydana gelen arıza, kesinti ile bu sistemlerde yapılan bakımAyrıca ispat şartı yazılmamış
bMükellefin ya da Başkanlıktan izin almış özel entegratör kuruluşların bilgi işlem sistemlerinde meydana gelen arıza, kesinti ile bu sistemlerde yapılan planlı bakımİspat veya tevsik edilmek kaydıyla; planlı bakım için yazılı bildirimde belirtilen süre ile sınırlı
cKullanılmakta olan mali mührün veya elektronik imza aracının arızalanması veya çalınmasıİspat veya tevsik edilmek kaydıyla; yeni mali mühür veya elektronik imza aracının temini süresince
çBakanlık veya Başkanlık tarafından yayımlanan genel tebliğ, sirküler, teknik kılavuz ve duyurularda belgelerin e-Belge yerine kâğıt olarak düzenlenmesine ve e-Fatura yerine e-Arşiv Fatura düzenlenmesine izin verilmesi

Ortak ön şart: "gibi nedenlerle, kanunen düzenlenmesi gereken sürenin geçirilmemesi kaydıyla". Liste "gibi nedenlerle" ifadesiyle örnekleyicidir.

(ç) bendinin kapsamı 573 ile genişletildi: 573 MADDE 17 ile "düzenlenmesine" ibaresinden sonra "ve e-Fatura yerine e-Arşiv Fatura düzenlenmesine" eklenmiş, "düzenlenmesi durumunda" ibaresi "düzenlenmesi [(ç) bendi bakımından e-Fatura yerine e-Arşiv Fatura düzenlenmesi de dâhil] durumunda" şeklinde değiştirilmiştir (dipnot 79 ve 80, RG 12/11/2024-32720). Bu, GİB'in duyuru ile "e-Fatura yerine e-Arşiv kesilsin" demesine yasal zemin sağlar.

Kapsam dışı: "Mükelleften kaynaklanan diğer nedenlerle, e-Belge olarak düzenlenmesi gereken belgelerin kağıt olarak düzenlenmesi yukarıda sayılan nedenler kapsamında değerlendirilmez."

Mücbir sebep: Elektronik olarak düzenlenmesi gereken belgenin, VUK md.13'te yazılı mücbir sebepler nedeniyle elektronik olarak düzenlenememesi hâlinde VUK md.373 gereği özel usulsüzlük cezası kesilmez.

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt

VIII. Diğer Hususlar — Operasyonel Bağlayıcı Hükümler

#HükümSüre / detay
1Elektronik kayıtların bozulması, silinmesi, zarar görmesi, işlem görememesi halleri ile olağanüstü durum meydana gelmesi hâlinde Başkanlığa bildirim + kayıtları nasıl tamamlayacağına ilişkin ayrıntılı plan sunma3 iş günü içinde
2Kendi sistemi üzerinden kullananların donanımlarının bir kısmı veya tamamının haczedilmesi veya yetkili mercilerce el konulması hâlinde bildirim + planEn geç 3 iş günü içinde
3Kendi sistemi üzerinden kullananlar; yazılım, donanım, dosya, dokümantasyon vb. unsurları vergi inceleme elemanlarının veya Başkanlıkça görevlendirilecek personelin erişimini/denetlemesini engelleyecek sözleşme veya lisansa konu edemez
4Başkanlığın talebi üzerine, donanımların bulunduğu adres/adreslerde inceleme ve tespit için her türlü teknik ve fiziksel imkânı (uygun donanım ve yazılımlar, terminallere ulaşım izinleri, uzman personel) sunma zorunluluğu
5Kendi sistemi üzerinden kullananlar ile izin alan özel entegratörlerin anlaşmalı matbaa işletmeciliği sözleşmesi yapma zorunluluğu yoktur
6GEÇİŞ AYI TOLERANSI (aşağıda ayrıntılı)e-Fatura/e-Arşiv: ayın 7. günü; diğer e-Belgeler: ay sonu
7YEDEK MATBU BELGE BULUNDURMA ZORUNLULUĞU (aşağıda ayrıntılı)Süreklilik arz ederse entegrasyon izni iptal edilebilir
8Millî savunma, istihbarat ve güvenlik amaçlı mal/hizmet alımlarına ilişkin Başkanlıktan özel izin alan kurumlara matbu belge düzenlenmek üzere yeteri kadar basılı kâğıt belge bulundurma zorunluluğu
9Başkanlık, izin başvurularının yanıtlanmasını erteleyebilir, başvuruları sıraya koyabilir
10Başkanlık, e-Belgelerde bulunması gereken bilgilerde değişiklik yapabilir
11Başkanlık e-Belgelere uzaktan erişebilir; usul ve esaslar "Elektronik Belge Uzaktan Erişim Kılavuzu"nda. Erişim, muhafaza ve ibraz ödevini ortadan kaldırmaz
12Başkanlık, faaliyetlerin niteliği/yapılma şekli gibi ayırt edici unsurları dikkate alarak özel izin vermeye veya bu durumları teknik kılavuzlarda açıklama yaparak düzenlemeye yetkilidir
13Başkanlık, özel entegratörlerin ve doğrudan entegrasyon izni verilen mükelleflerin bilgi işlem sistemlerini denetlemeye/denetlettirmeye, sonuca (veya Bağımsız Denetim Raporu sonucuna) göre izinleri vermeye, geçici olarak durdurmaya veya tamamen sona erdirmeye yetkilidir
14Başkanlık, e-Belgelerin ikincil örneklerinin Başkanlık sistemlerine sürekli olarak ve teknik kılavuzlarla belirlenen iletim zamanlarında iletilmesi zorunluluğu getirmeye, raporlama zorunluluğunu kaldırmaya yetkilidirEn az 1 ay süre vermek kaydıyla
15Başkanlığa ait uygulamalar üzerinden düzenlenen belgeler Başkanlığa ait elektronik imza veya mali mühür ile de imzalanabilir
16RİSKLİ BELGE DURDURMA: Başkanlık, belge içeriğinin kontrolüne yönelik analizleri yapmaya ve riskli değerlendirilen belgelerin muhataplarına iletilmesini durdurmaya yetkilidir. Riskli tanımı: "belge içeriğinin sahte veya muhteviyatı itibariyle yanıltıcı belge olduğu hususunda tereddüt edilen durumların varlığı halinde ilgili belgeler riskli olarak değerlendirilir"
17Başkanlık, mal ve hizmetlerin sınıflandırma veya tanımlanmasına ilişkin standart birim veya kodların e-Belgelerde yer alması zorunluluğu getirmeye; bunu sektör, mal/hizmet grupları veya mükellefiyet türleri itibarıyla farklı usul, esas ve sürelerle belirlemeye yetkilidirEn az 3 ay süre vermek suretiyle
18VUK mükerrer 242/2-(5) kapsamında özel hukuk tüzel kişiliğini haiz bir şirket kurulması durumunda, e-Belgelerin düzenlenme/iletilme/muhafaza usul ve esasları kurulan şirket tarafından belirlenecek yeni esaslara göre devam ettirilebilir
19Başkanlık, zorunluluk getirilen mükellefler zorunluluk başlangıcına kadar hiçbir yöntem seçmezlerse, V.1.1'deki GİB Portal Yöntemine göre kullanıcı hesaplarını re'sen tanımlamaya yetkilidir526 ile eklendi (dipnot 87)

"Bu Tebliğde belirtilen e-Belgeleri düzenleme yetkisi bulunan mükelleflerin, sistemlerinde arıza veya kesinti meydana gelmesi veya diğer mücbir sebep durumlarında düzenlenmek üzere yeterli miktarda matbu belgeleri bulundurmaları zorunludur. Bu şekilde belge düzenlemek istisnai bir uygulama olup, belge düzenlemeye başlamadan önce Başkanlığa konu hakkında tevsik edici bilgi ve belgelerle birlikte yazılı olarak bilgi verilmesi ve bu durumun süreklilik arz etmemesi gerekmektedir."

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt

VIII — Geçiş Ayı Kâğıt Belge Toleransı (Portal Onboarding Kuralı)

"Bu Tebliğe konu e-Belge uygulamalarına dâhil olan mükellefler, uygulamaya dâhil oldukları tarihin içinde bulunduğu ayın (e-Fatura ve e-Arşiv Fatura uygulamaları için 7 nci günün) sonuna kadar, söz konusu belgeleri kâğıt ortamda da düzenleyebilirler. Ancak aynı işlem için e-Belge veya kâğıt ortamdaki belgelerinden sadece birinin düzenlenmesi gerekmektedir. e-Belge uygulamalarına dahil olunan tarihin ait olduğu ayın sonundan (e-Fatura ve e-Arşiv Fatura uygulamaları için 7 nci günden) itibaren, belgelerin e-Belge olarak düzenlenmesi zorunlu olup, kağıt ortamda belge düzenlenmesi halinde Kanunda yazılı cezalar tatbik edilir."

UygulamaKâğıt belge düzenlenebilecek son an
e-Fatura ve e-Arşiv FaturaUygulamaya dâhil olunan tarihin içinde bulunduğu ayın 7 nci gününün sonu
Diğer tüm e-BelgelerUygulamaya dâhil olunan tarihin içinde bulunduğu ayın sonu

Çift belge yasağı: Aynı işlem için e-Belge veya kâğıt ortamdaki belgelerden sadece biri düzenlenir.

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt

VII. Sorumluluk ve Cezai Müeyyideler — Matbu Belge Kullanma Yasağı

"Bu Tebliğe konu e-Belge uygulamalarına dâhil olan mükellefler, bu Tebliğin "V.7." ve "VIII." numaralı bölümlerinde belirtilen haller dışında, yaptıkları mal teslimleri/alımları ve hizmet ifaları kapsamında, anlaşmalı matbaa işletmelerine bastırılan matbu (kağıt) belgeleri kullanamazlar, kullanmaları halinde söz konusu mükellefler hakkında Kanunda öngörülen cezai hükümler uygulanır."

Aynı bölümdeki diğer kritik hükümler:

Hükümİçerik
Format uyumuTeknik kılavuzlardaki format ve standartlara uygun olarak düzenlenmeyen e-Belgeler, Kanun kapsamında düzenlenen belge olarak KABUL EDİLMEZ. Portal validasyonu açısından: schematron/XSD hatası olan belge hukuken yok hükmündedir
Özel entegratör iptaliİzni iptal edilen özel entegratörler, hizmet verdiği mükellefleri uyarmak zorundadır; bu mükellefler başka özel entegratörle anlaşabilir, GİB Portal kullanabilir ya da kendi bilgi işlem sistemleri üzerinden kullanabilir
MÜLGA"bildirimin yapıldığı tarihten itibaren 6 ay süre ile uygulamayı kendi bilgi işlem sistemleri üzerinden kullanmak üzere başvuru yapamazlar" ibaresi 573 MADDE 19 ile YÜRÜRLÜKTEN KALDIRILMIŞTIR (dipnot 86, RG 12/11/2024-32720). Entegrasyon izni iptal edilen mükellefin 6 aylık yeniden başvuru yasağı artık YOKTUR

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt


Ceza Hükümleri — Belge Bazında Cezalandırılan Taraf

BelgeBölümCezalandırılan taraf
e-FaturaIV.1.6Süresinde geçmeyenler + e-Fatura olarak düzenlemeyen VE ALMAYAN mükellefler (matbu kâğıt düzenleyenler ve alanlar dâhil). Alıcı tarafı da cezalıdır. Muhatap sınırlaması yok
e-Arşiv (IV.2.4.3 kapsamı)IV.2.4.3 son cümleFaturayı düzenleyen ile nihai tüketici dışındaki vergi mükellefiyeti bulunan alıcı hakkında, her bir kâğıt fatura için ayrı ayrı VUK md.353
e-Arşiv (genel)IV.2.5Düzenlemeyen ve almayan mükellefler (VUK md.232/1'in 1 ila 5 numaralı bentlerinde sayılanlar)
e-İrsaliyeIV.3.7Düzenlemeyen ve almayan mükellefler (232/1, 1-5 bentleri)
e-SMMIV.4.6Düzenlemeyen ve almayan mükellefler (232/1, 1-5 bentleri)
e-MMIV.5.6Düzenlemeyen ve almayan mükellefler
e-Gider PusulasıIV.6.6Düzenlemeyen ve almayan mükellefler (232/1, 1-5 bentleri)
e-BiletIV.7.5Düzenlemeyen ve almayan mükellefler (232/1, 1-5 bentleri)
e-AdisyonIV.12.6Sadece DÜZENLEMEYEN mükellefler (kâğıt adisyon düzenleyenler dâhil) — "almayan" ibaresi YOK

"Zorunluluk getirildiği halde e-İrsaliye uygulamasına süresi içinde geçmeyen mükellefler ile e-İrsaliye şeklinde düzenlenmesi gereken sevk irsaliyesini, bu Tebliğin "V.7." ve "VIII." numaralı bölümlerinde belirtilen istisnai durumlar haricinde e-İrsaliye olarak düzenlemeyen ve almayan (matbu kağıt sevk irsaliyesi olarak düzenleyenler ve alanlar dahil) mükellefler (232 nci maddenin birinci fıkrasının 1 ila 5 numaralı bentlerinde sayılanlar) hakkında Kanununda öngörülen cezai hükümler uygulanır."

"Söz konusu faturaların bu Tebliğin "V.7." ve "VIII." numaralı bölümlerinde belirtilen istisnai durumlar haricinde e-Arşiv Fatura yerine matbu (kağıt) fatura olarak düzenlenmesi veya alınması halinde, faturayı düzenleyen ile nihai tüketici dışındaki vergi mükellefiyeti bulunan alıcı hakkında düzenlenen veya alınan her bir kağıt fatura için ayrı ayrı olmak üzere Kanunun 353 üncü maddesinde öngörülen cezai hüküm uygulanır."

Ceza tutarları (509 V.6 bölümünde VUK 353 metni üzerinden):

FıkraKapsamTutar
VUK 353/1Fatura, gider pusulası, müstahsil makbuzu, serbest meslek makbuzuHer bir belge için 240 TL'den aşağı olmamak üzere meblağın veya meblağ farkının %10'u; bir takvim yılında her bir belge nevi için toplam 120.000 TL'yi geçemez
VUK 353/2Perakende satış fişi, ÖKC fişi, giriş ve yolcu taşıma bileti, sevk irsaliyesi, taşıma irsaliyesi, yolcu listesi, günlük müşteri listesi vb.Her bir belge için 240 TL; her bir tespit için toplam 12.000 TL, bir takvim yılında 120.000 TL'yi geçemez

Tüm bu cezalar "V.7." ve "VIII." bölümlerindeki istisnai durumlar (sistem arızası vb.) hariç uygulanır.

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt


Hadlerin Hesabında Esas Alınacak Dönem ve Özel Durumlar (GİB SSS)

509 metninde brüt satış hasılatının nasıl hesaplanacağına dair teknik tanım yoktur; esas alınan dönem "hesap dönemi"dir ve geçiş, o dönemi izleyen yılın 7. ayının başındadır. GİB SSS'de netleşen özel durumlar:

#KonuSSS'deki açıklamaNot
1Adi ortaklık (s.27)"İlgili Tebliğ kapsamında geçiş zorunluluğu belirlenirken şahsi işletme ve Adi ortaklıktan elde edilen gelirler ayrı ayrı değerlendirilir."Gelir vergisi mükellefinin kendi gayrisafi iş hasılatı ile adi ortaklıktan elde ettiği gelir TOPLANMAZ
2Özel hesap dönemi (s.10)01/07/2018-31/06/2019 özel hesap dönemi brüt satış hasılatı 7 milyon olan mükellef 1/7/2020'de e-Fatura ve e-Arşiv'e, 1/1/2021'de e-Defter'e geçmelidir. "İstenmesi durumunda özel hesap döneminin başladığı tarihte de tüm uygulamalara geçiş hakkı vardır."
3Haddin altına düşmek (s.9)Lisans iptali dahi "e-Fatura, e-Defter, e-Arşiv Fatura ve e-İrsaliye uygulamalarından çıkmayı gerektiren bir durum değildir."Çıkış hakkı vermez
4Tasfiye / gayrifaal (s.89)"Zorunluluk kapsamındaki şirketler tasfiye veya gayri faal durumda olsalar dahi e-belge ve e-defter uygulamalarına geçmeleri gerekmektedir."
5Şahıs işletmesinin A.Ş./Ltd.'ye dönüşmesi (s.11)"nevi değişikliği olarak değerlendirilmediğinden, değişikliğin gerçekleştiği tarih itibariyle yeni şirketin 509 ... Tebliğindeki şartları taşıyıp taşımadığının değerlendirilmesi gerekmektedir."SSS BU NOKTADA ESKİMİŞTİR — 550 SN ile eklenen 509 IV.1.4/(g) fıkrası bunu değiştirmiştir: ferdî işletmenin sermaye şirketine dönüşmesinde yeni şirket ZORUNLU olarak dâhil olur, süre tescili izleyen ayın başından 3 ayı geçemez
6Bağımsız denetime tabi olmak (s.78)Tek başına e-Fatura/e-Arşiv zorunluluğu doğurmaz

"509 Sıra No.lu Genel Tebliğ kapsamında e-fatura ve diğer uygulamalara geçiş hadleri açısından Gelir vergisi mükellefinin kendi gayrisafi iş hasılatı ile adi ortaklıktan elde edilen gelir toplamı birlikte değerlendirilebilir mi? ... İlgili Tebliğ kapsamında geçiş zorunluluğu belirlenirken şahsi işletme ve Adi ortaklıktan elde edilen gelirler ayrı ayrı değerlendirilir."

Kaynak: 509_Cok_Sorulan__Sorular_.txt


509'u Değiştiren Tebliğlerin Zorunluluk Hükümlerine Etki Haritası

Dipnotlu metinde 87 adet "Sıra No.lu Vergi Usul Kanunu Tebliği" atfı vardır. Zorunluluk hadleri açısından tebliğ tebliğ etki:

TebliğRGIV.1.4 / IV.1.5 (e-Fatura)IV.2.4 (e-Arşiv)IV.3.5 / IV.3.6 (e-İrsaliye)V.7 / VIII / VII
509 (asıl)19/10/2019 - 30923Bentler 1-5, fıkralar (a)-(e), (ğ). e-Fatura haddi 5 Milyon TLIV.2.4.1 – IV.2.4.5; portal eşiği 30 Bin / 5.000 TLBentler 1-8 + Başkanlık yetkisi; had 25 Milyon TLV.7 (a)-(ç), VIII
51510/01/2020 - 31004HAD DEĞİŞİKLİĞİ YOK — yalnızca V.5'teki "NİHAİ TÜKETİCİ" / 500 TL ÖKC muafiyeti hükmü yeniden yazıldı, 507 SN GMÖ-EBYS kullanıcıları eklendi (dipnot 67)
52609/02/2021 - 31390Bent 6 (SGK sağlık) EKLENDİ (geçiş 1/7/2021); IV.1.5(d) EKLENDİIV.2.4.3 eşiği 30 Bin/5.000 TL → 5 Bin TL + VUK 232/2 haddi; özel entegratör kanalı eklendiIV.3.6 ikinci fıkra değiştirildi (dipnot 36)VIII'e re'sen GİB Portal tanımlama fıkrası EKLENDİ (dipnot 87); V.10 bölümü EKLENDİ
53522/01/2022 - 31727Bent 1 hadleri kademelendi (5/4/3 Milyon); Bent 4 genişletildi (e-ticaret satıcıları + 1 Milyon/500 Bin); Bent 7 (gayrimenkul/motorlu taşıt) EKLENDİ; Bent 8 (otel) EKLENDİ; fıkra (b) ihtiyari kullanıcıları kapsayacak şekilde genişletildi; IV.1.5(c),(e),(f)IV.2.4.2 başlık ve metin genişletildi; IV.2.4.5 sevk belgesi listesi genişletildiBent 5 değiştirildi (e-Fatura kaydı şartı kaldırıldı, basit usul hariç eklendi); Bent 7 değiştirildi (2021+ için 10 Milyon TL); IV.3.6 değiştirildi
55007/10/2023 - 32332Bent 9 (şarj ağı) EKLENDİ (2/1/2024); fıkra (f) (işi bırakıp yeniden mükellefiyet) EKLENDİ; fıkra (g) (ferdî işletme → sermaye şirketi) EKLENDİ; IV.1.5(g) EKLENDİ; bavul ticareti tarihi GİB duyurusuna bağlandı500 TL nihai tüketici eşiği VUK 232/2 haddine bağlandı; şarj hizmetleri için hadde bağlı olmaksızın e-Fatura/e-Arşiv zorunluluğu (dipnot 66, 68)
57312/11/2024 - 32720IV.2.4.3: 3 Bin TL (2025) + 1/1/2026'dan itibaren tutarına bakılmaksızın; "aynı gün aynı kişi" fıkrası MÜLGABent 9 (İDİS) EKLENDİ (2024+ 1 Milyon TL); IV.3.6'ya İDİS ibaresi EKLENDİV.7(ç)'ye "e-Fatura yerine e-Arşiv Fatura düzenlenmesine" EKLENDİ; V.9 TÜBİTAK-UEKAE → TÜBİTAK BİLGEM KAMU SM; VII'deki 6 aylık başvuru yasağı MÜLGA. Ayrıca e-Dekont kapsamı VUK 435 SN (2) kuruluşlarına genişledi; e-Adisyon içerik alanı değişti
58931/12/2025 - 33124 (5. Mükerrer)Yalnızca IV.2.4.3: basit usul + işletme hesabı için 3 Bin TL 31/12/2026'ya, sınırsız zorunluluk 1/1/2027'ye ertelendi

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt, Vergi_Usul_Kanunu_Genel_Tebligi__Sira_No_509__nde_Degisiklik_Yapilmasina_Dair_Teblig__Sira_No_573__.txt, Vergi_Usul_Kanunu_Genel_Tebligi__Sira_No_509__nde_Degisiklik_Yapilmasina_Dair_Teblig__Sira_No_589__.txt


GİB Resmî Geçiş Takvimi Tablosunun Birebir Aktarımı (TARİHSEL REFERANS)

e-FATURA Bölümü — 11 Satır

#Geçiş zorunluluğunun kapsamıDayanakGeçiş tarihi
12018 hesap dönemi brüt satış hasılatı 10 Milyon TL ve üzeri olan mükellefler454 SN VUK GT1/1/2020
22018 veya 2019 hesap dönemleri brüt satış hasılatı 5 Milyon TL ve üzeri509 SN VUK GT1/7/2020
32020 veya müteakip hesap dönemleri brüt satış hasılatı 5 Milyon TL ve üzeri509 SN VUK GTİlgili hesap dönemini izleyen yılın yedinci ayının başından itibaren
4ÖTV (I) sayılı listedeki malların imali, ithali, teslimi vb. faaliyetleri nedeniyle EPDK'dan lisans alan (bayilik lisansı dâhil) mükellefler509 SN VUK GT1/7/2020; 2020+ gerçekleştirenler lisans alımı veya imal/inşa/ithalin gerçekleştirildiği ayı izleyen dördüncü ayın başı
5ÖTV (III) sayılı listedeki malları imal, inşa ve/veya ithal edenler509 SN VUK GTAynı
6AHS'ler, internette gayrimenkul/motorlu araç ilanı yayınlayan siteler, internet reklamcılığı hizmet aracıları509 SN VUK GTAHS/reklam aracıları 1/7/2020'ye kadar (2020+ işe başlayanlar 3 ay içinde); ilan yayınlayanlar 1/1/2020'ye kadar
75957 sayılı Kanun'a göre komisyoncu/tüccar olarak sebze-meyve ticaretiyle iştigal edenler509 SN VUK GT1/1/2020 (mevcutlar); 2020+ işe başlayanlar 3 ay içinde
8İhracat: KDVK md.11 mal ihracı (bavul ticareti dâhil) ve yolcu beraberi eşya ihracı509 SN VUK GT1/7/2017'den (bavul ticareti açısından 1/7/2020'den) itibaren
9e-İrsaliye zorunluluğu nedeniyle e-Fatura'ya geçmek zorunda olanlar509 SN VUK GTe-İrsaliye geçiş zorunluluğunun başladığı tarih
10e-Arşiv Fatura zorunluluğu nedeniyle e-Fatura'ya geçmek zorunda olanlar509 SN VUK GTe-Arşiv Fatura geçiş zorunluluğunun başladığı tarih
11Başkanlık analiz/inceleme sonucu riskli ya da uyum düzeyi düşük mükellefler (faaliyet, sektör ve ciro tutarına bağlı olmaksızın, en az 3 ay süre)464 SN VUK GTYazılı bildirimde belirtilen süreler içinde

"E-FATURA 3- 2020 veya müteakip hesap dönemleri brüt satış hasılatı (veya satışları ile 509 SN VUK GT ilgili hesap dönemini izleyen yılın yedinci ayının başından itibaren, e- gayrisafı iş hasılatı) 5 Milyon TL ve üzeri olan mükellefler Fatura uygulamasına geçmek zorundadır."

UYARI: Tablo 5 Milyon TL'de kalmıştır; 535 SN'nin 4 Milyon / 3 Milyon kademelerini YANSITMAZ. Ayrıca 526 (SGK sağlık hizmeti sunucuları), 535 (gayrimenkul/motorlu taşıt, otel) ve 550 (şarj ağı) bentleri tabloda HİÇ YOKTUR.

Diğer Belgeler — Tablonun Aktarımı

e-ARŞİV FATURA:

#KapsamTarih
1e-Fatura uygulamasına zorunlu veya isteğe bağlı olarak dâhil olan/olacak olan mükellefler (e-Fatura mükellefi olmayanlara düzenlenecek faturalar)"Hali hazırda e-Fatura uygulamasına dahil olanlar 1.1.2020'de, 1.1.2020'den sonra e-Fatura uygulamasına dahil olanlar ise e-Fatura uygulamasına geçilen tarihte"
3Aracı Hizmet Sağlayıcıları, İnternet Ortamında İlan Yayınlayanlar ile İnternet Reklamcılığı Hizmet Aracıları1/1/2020 (2020+ işe başlayanlar 3 ay içinde)
4e-Arşiv'e dâhil olmayanlarca 1/1/2020'den itibaren vergi mükellefi olmayanlara düzenlenecek faturaların vergiler dahil toplam tutarı 30 Bin TL'yi aşanlar"e-Arşiv Uygulamasına geçilmek zorunda değildir. Sadece belirtilen tutarın aşılması halinde fatura e-Arşiv Fatura olarak GİB Portalleri üzerinden düzenlenecektir."
5Aynı kapsamda vergi mükelleflerine düzenlenecek faturaların vergiler dahil toplam tutarı 5 Bin TL'yi aşanlarAynı açıklama
+Başkanlık yetkisi satırı; ayrıca "internet üzerinden mal ve hizmet satışı yapan ve 2015 ve müteakip hesap dönemlerinde brüt satış hasılatları 5 Milyon TL ve üzerinde olan mükellefler" (464 SN kaynaklı; internet satışı yapıp 2018'de 5 milyon TL üzeri hasılat edenler 1/1/2020'den itibaren)

"e-ARŞİV FATURA 1- E-Fatura Uygulamasına Zorunlu veya İsteğe Bağlı olarak Dâhil Olan/Olacak Olan Mükellefler ( E Fatura mükellefi olmayanlara düzenlecek faturalar) ... Hali hazırda e-Fatura uygulamasına dahil olanlar 1.1.2020'de, 1.1.2020'den sonra e-Fatura uygulamasına dahil olanlar ise e-Fatura uygulamasına geçilen tarihte"

e-İRSALİYE (tablodaki 9 kalem): 1- ÖTV (I) EPDK lisanslı → 1.7.2020; 2- ÖTV (III) imal/inşa/ithal/ana bayi-distribütör → 1.7.2020; 3- Maden Kanunu işletme ruhsatı/sertifikası sahipleri ve sözleşmeli üreticiler → 1.7.2020; 4- Şeker Kanunu md.2/(e) şeker imalatçıları → 1.7.2020; 5- e-Fatura'ya kayıtlı olup demir-çelik (GTİP 72) ve demir/çelikten eşya (GTİP 73) imal/ithal/ihraç edenler → 1.7.2020; 6- Gübre Takip Sistemi kayıtlı kullanıcılar → 1.7.2020; 7- e-Fatura'ya kayıtlı ve 2018 veya müteakip hesap dönemleri brüt satış hasılatı 25 Milyon TL ve üzeri → 1.7.2020; 8- Sebze-meyve komisyoncu/tüccar → 1.1.2020; 9- Başkanlık yetkisi; 10/11/13- 1/1/2020'den itibaren şartları sağlayanlar → "söz konusu işlemlerinin gerçekleştirildiği ayı izleyen dördüncü ayın başından itibaren".

e-SMM: 1/6/2020 tarihine kadar; işe başlayanlar işe başladıkları ayı izleyen 3 üncü ayın sonuna kadar.

e-MÜSTAHSİL MAKBUZU: 1- 1.7.2020; 2- e-Fatura uygulamasına geçiş süresi içinde; 3- 1.1.2020 (sebze-meyve); 4- Başkanlık yetkisi.

e-GİDER PUSULASI: Yalnızca Başkanlık yetkisi.

e-BİLET: D1 yetki belgeli şehirlerarası tarifeli yolcu taşımacıları → 1/1/2021 (2021+ başlayanlar izleyen 4. ayın başı); sinema işletmeleri → 1/7/2020 (sonra başlayanlar izleyen 4. ayın başına kadar).

e-SİGORTA KOMİSYON GİDER, e-SİGORTA POLİÇESİ, e-DÖVİZ ALIM-SATIM, e-DEKONT: Tarih yok, "Başkanlık tarafından belirlenen süre içinde".

e-DEFTER (3 SN Elektronik Defter GT): e-Fatura zorunluluğu olanlar e-Fatura geçiş süresi içinde (yıl içinde zorunlu geçenler bakımından izleyen yılın başından); 2018 ya da 2019 hasılatı 5.000.000 TL'yi geçenler 01.01.2021'den; 2018 hasılatı 10.000.000 TL'yi geçenler (454 SN) 01.01.2020'den; 19.10.2019 itibarıyla TTK 397/4 bağımsız denetime tabi şirketler 1/1/2020'den, 2020+ şartı sağlayanlar takip eden yılın başından; tam bölünme/birleşme/nev'i değişikliği → tescili izleyen ayın başından itibaren 3 ayı geçemez; 2018'de internetten satış yapıp brüt satış hasılatı 5 Milyon TL ve üzeri olanlar → 1.1.2020.

Kaynak: 509_s.VUK_GT_Kapsaminda_Uygulamalara_Gecis_Takvimi_Tablosu__3__.txt


Zorunluluk Karşılaştırma Tablosu — Tarihsel Konum Tespiti

KRİTİK TESPİT: Bu dosya 509'un yürürlükteki hâlini DEĞİL, 509 daha taslak iken 454/464/487 SN tebliğlerle karşılaştırılmasını içerir. Sütun başlıkları bunu açıkça söyler: "YÜRÜRLÜKTEKİ TEBLİĞLERE GÖRE DURUM" ve "TEBLİĞ TASLAKLARINA GÖRE (HENÜZ YÜRÜRLÜĞE GİRMEMİŞTİR.)". Bugün (31.08.2026) hiçbir hükmü doğrudan uygulanabilir değildir.

O dönemde yürürlükte olan durum (sol sütun):

KonuDayanakDurum
e-Fatura + e-Defter454 SNİlgili yıl brüt satışları 10 Milyon TL ve üzeri (izleyen 2 yılın başından itibaren); ÖTV (I) EPDK lisansı (lisans aldığı tarihi izleyen yıl başından, BAYİLİK LİSANSI HARİÇ); ÖTV (III) imal/inşa/ithal (ÖTV mükellefiyet tesis tarihini izleyen yıl başından)
İhracat faturaları454 SNe-Fatura'ya kayıtlı ihracatçıların gümrük beyannameli mal ihracı faturaları 1.7.2017'den itibaren e-Fatura
Yolcu beraberi eşya ihracı454 SN"aracı kurumlar yoluyla iade usulünden yararlandığı durum"la sınırlı olmak üzere 1.7.2017'den itibaren e-Fatura
Bavul ticareti özel faturaları"Yürürlükte bulunan tebliğler Özel Faturaların e-Fatura olması zorunluluğunu getirmemektedir."
e-Arşiv464 SNİnternet üzerinden mal ve hizmet satışı yapan ve 2015 ve müteakip hesap dönemlerinde brüt satış hasılatları 5 Milyon TL ve üzerinde olanlar (izleyen 2 yılın başından itibaren)
e-İrsaliye487 SN"İSTEĞE BAĞLIDIR. HERHANGİ BİR MÜKELLEF GRUBU İÇİN ZORUNLULUK ÖNGÖRÜLMEMİŞTİR."
e-SMM487 SNAynı — isteğe bağlı, zorunluluk yok
e-MM487 SNAynı — isteğe bağlı, zorunluluk yok
e-Dekont"YÜRÜRLÜKTE DEĞİLDİR."

"E-İRSALİYE UYGULAMASINA 487 SIRA İSTEĞE BAĞLIDIR. ... HERHANGİ BİR MÜKELLEF GRUBU İÇİN ZORUNLULUK ÖNGÖRÜLMEMİŞTİR."

Taslakta öngörülen ile yayımlanan 509 arasındaki farklar:

KonuTaslak (sağ sütun)Yayımlanan 509
e-Fatura/e-Defter haddiİlgili yıl brüt satışları 5 Milyon TL (2017 cirosundan dolayı aşanlar 1.7.2019 e-Fatura, 1.1.2020 e-Defter)2018/2019 için 1/7/2020
e-Arşiv portal eşiğiAynı günde aynı kişi/kurumlara düzenlenen faturaların vergiler dahil toplamının 50.000 TL'yi aşması → 1.7.2019'dan itibaren GİB e-Arşiv İnternet Portali30 Bin TL (vergi mükelleflerine 5.000 TL), 1/1/2020
e-İrsaliye ciro haddi"2017 veya müteakip hesap dönemleri 25 Milyon TL""2018 veya müteakip"
e-SMM tarihleri31/3/2019 – 1/7/20191/2/2020 – 1/6/2020

Kaynak: Zorunluluk_Karsilastirma_Tablosu_.txt


Korpus İçi Çelişkiler — Portal Kural Motoru İçin Karar Matrisi

KonuDipnotlu güncel 509 (ESAS)Geçiş Takvimi Tablosu (ESKİ)SSS (ESKİ)e-Arşiv Fatura Portali Entegrasyon Kılavuzu (ESKİ)
e-Fatura ciro haddi2022+ için 3 Milyon TL5 Milyon TL5 Milyon TL
e-İrsaliye ciro haddi2021+ için 10 Milyon TL25 Milyon TL25 Milyon TL
e-Arşiv portal eşiği1/1/2026'dan itibaren tutarına bakılmaksızın (basit usul/işletme hesabı: 1/1/2027)30 Bin TL / 5 Bin TL30 bin TL"30 Bin TL'yi (vergi mükelleflerine düzenlenenler açısından vergiler dahil toplam tutarı 5 Bin TL'yi) aşması halinde"
Aynı gün aynı kişi toplama kuralıKALDIRILDI (573 SN, 12/11/2024)varvarvar
Bavul ticareti e-Fatura tarihiGİB duyurusunda belirtilecek tarih (550 SN)1/7/20201/7/2020
SGK sağlık / otel / gayrimenkul-taşıt / şarj ağı bentleriVAR (526, 535, 550)YOKYOK
İDİS bendi (e-İrsaliye)VAR (573)YOK
Demir-çelik bendinde e-Fatura kaydı şartıKALDIRILDI (535)var
e-Adisyon509'da IV.12 bölümü VARTabloda satır YOK

"düzenlenecek faturaların, vergiler dahil toplam tutarının 30 Bin TL'yi (vergi mükelleflerine düzenlenenler açısından vergiler dahil toplam tutarı 5 Bin TL'yi) aşması halinde, söz konusu"

SONUÇ: Portal kural motoru yalnızca dipnotlu güncel 509 + 573 + 589 metinlerine göre kodlanmalıdır. Geçiş Takvimi Tablosu ve SSS yalnızca geçmiş dönem denetim/analiz senaryolarında referans alınabilir; kural motorunda kullanılamaz.

Kaynak: e-Arsiv_Fatura_Portali_Entegrasyon_Kilavuzu_.txt, 509_s.VUK_GT_Kapsaminda_Uygulamalara_Gecis_Takvimi_Tablosu__3__.txt, 509_Cok_Sorulan__Sorular_.txt, Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt


Doğrulanamayanlar ve Korpus Boşlukları

Bu bölümdeki hiçbir bulgu hakem tarafından çürütülmemiştir (REFUTED); aşağıdaki hususlar ise korpusta cevabı bulunmadığı için doğrulanamamıştır ve kural motorunda varsayım olarak kullanılamaz.

#KonuDurum
1"Brüt satış hasılatı (veya satışları ile gayrisafi iş hasılatı)" kaleminin teknik tanımıDOĞRULANAMADI 509 metninde bu kalemin nasıl hesaplanacağına dair tanım YOKTUR: hangi gelir tablosu hesapları (600/601/602), 610 satış iadelerinin düşülüp düşülmeyeceği, 649 diğer olağan gelirlerin dâhil olup olmadığı, KDV hariç/dahil ayrımı, kur farkı/vade farkının dâhil olup olmadığı korpusta cevapsızdır. Yalnızca adi ortaklık ile şahsi işletmenin ayrı değerlendirileceği (SSS s.27) ve özel hesap dönemi uygulaması (SSS s.10) açıklanmıştır
2e-Gider Pusulası için somut had veya takvimDOĞRULANAMADI Hiçbir ciro haddi veya tarih korpusta YOKTUR — yalnızca Başkanlık takdiri (IV.6.4/IV.6.5). Bugüne kadar böyle bir duyuru yapılıp yapılmadığı korpustan anlaşılamamaktadır
3e-Adisyon için somut had veya tarihDOĞRULANAMADI 509 IV.12.4 yalnızca Başkanlık yetkisi verir. e-Adisyon_Belgesi_Teknik_Kilavuzu_V1_1_.txt'de de zorunluluk tarihi yoktur. Geçiş Takvimi Tablosunda e-Adisyon satırı hiç bulunmamaktadır
4e-Sigorta Komisyon Gider Belgesi, e-Sigorta Poliçesi, e-Döviz Alım-Satım Belgesi, e-Dekont için fiilî zorunluluk duyurusuDOĞRULANAMADI Başkanlıkça fiilen zorunluluk getirilip getirilmediğine dair bir duyuru metni korpusta yoktur; yalnızca yetki hükmü vardır
5e-Defter zorunluluk hadleri (2021 sonrası)DOĞRULANAMADI Asıl dayanak olan 3 Sıra No.lu Elektronik Defter Genel Tebliği korpusta YOKTUR. e-Defter bilgileri yalnızca Geçiş Takvimi Tablosu ve SSS özetlerinden alınabilmiştir
6Bavul ticareti e-Fatura zorunluluğunun güncel başlangıç tarihiDOĞRULANAMADI 550 SN ile "Başkanlık tarafından ebelge.gib.gov.tr adresinde yapılan duyuruda belirtilecek tarih"e bağlanmıştır; bu DUYURU korpusta YOKTUR. Geçiş Takvimi Tablosu 1/7/2020 der ancak bu dosya diğer konularda eskimiş olduğundan tek başına güvenilir değildir. e-Fatura_Uygulamasi_gumruk_islemleri_Kilavuzu_.txt'den ayrıca doğrulanmalıdır
72026 ve sonrası için yeni had düzenlemesiDOĞRULANAMADI e-Fatura (3 Milyon TL), e-İrsaliye (10 Milyon TL) veya internet satışı (500 Bin TL) hadlerini değiştiren yeni bir tebliğ/duyuru korpusta YOKTUR. 589'dan (31.12.2025) sonra 509'u değiştiren başka bir tebliğ bulunmamaktadır
8IV.1.4(a)(8) ve (9)'daki "bu Tebliğin yayım tarihi" ibaresinin birebir teyidiDOĞRULANAMADI Konsolide metinde bu ifadenin hangi tarihi (509'un 19/10/2019 yayım tarihi mi, bendi ekleyen 535/550'nin yayım tarihi mi) işaret ettiği açıkça yazmamaktadır. Geçiş tarihlerinin mantığından (bent 8 için 1/7/2022, bent 9 için 2/1/2024) ekleyen tebliğin yayım tarihi olduğu anlaşılmaktadır; ancak korpustan birebir teyit edilememiştir
9SERBEST BÖLGE zorunluluğuDOĞRULANAMADI Dipnotlu 509 metninin tamamında "serbest bölge" ifadesi GEÇMEMEKTEDİR (grep: 0 eşleşme). 509'da serbest bölge mükelleflerine yönelik ayrı bir e-Fatura/e-Arşiv/e-İrsaliye zorunluluk bendi YOKTUR. Korpusta "Serbest Bölge" yalnızca (a) KDV istisna kodu olarak: UBL-TR_Kod_Listeleri_-_V_1.43_.txt satır 346 "212 17/4-i Serbest Bolgelerde Verilen Hizmetler", satır 394 "235 16/1-c Transit ve Gumruk Antrepo Rejimleri Ile Gecici Depolama ve Serbest Bolge Hukumlerinin Uygulandigi Mallarin Teslimi", satır 455 "11/1-a Serbest Bolgelerdeki Musteriler Icin Yapilan Fason Hizmetler"; (b) e-Fatura_Uygulamasi_gumruk_islemleri_Kilavuzu_.txt satır 140'ta "Serbest Bolge Islem Formu vb.) ekinde yer alan ihracat faturalari e-fatura kapsaminda" ifadesiyle geçmektedir
10TAŞIMACILIK sektörü zorunluluğuDOĞRULANAMADI 509'da taşımacılık sektörüne yönelik e-Fatura/e-Arşiv/e-İrsaliye geçiş zorunluluğu bendi YOKTUR. Korpusta "Taşımacılık" yalnızca UBL-TR belge kategorisi (Transport Execution Plan vb.) ve KDV istisna kodu ("322 14/1 Uluslararasi Tasimacilik") olarak geçer. e-Bilet (IV.7) karayolu/denizyolu yolcu taşımacılığı için ayrı bir uygulamadır
11YETKİLİ MÜDAHALE / ARAÇ KİRALAMA için ayrı bentDOĞRULANAMADI Dipnotlu 509'da "yetkili müdahale", "araç kiralama", "oto kiralama", "rent a car", "filo kiralama", "yetkili servis", "eksper", "hasar" ifadelerinin hiçbiri geçmemektedir (grep: 0 eşleşme). Araç kiralamaya en yakın hüküm IV.1.4(a)(7)'deki "gayrimenkul ve/veya motorlu taşıt, inşa, imal, alım, satım veya kiralama işlemlerini yapanlar ile bu işlemlere aracılık faaliyetinde bulunan mükellefler" ibaresidir (eşik: 2020/2021 için 1 Milyon TL, 2022+ için 500 Bin TL). Ayrı bir "yetkili müdahale kuruluşu" bendi YOKTUR
12İLAÇ / TIBBİ CİHAZ için e-İrsaliye bendiDOĞRULANAMADI IV.3.5'te (e-İrsaliye) ilaç veya tıbbi cihaz sektörüne yönelik AYRI bir bent YOKTUR. Dipnotlu 509'da "ilaç" ve "tıbbi cihaz" ifadeleri yalnızca IV.1.4(a)(6) içinde, SGK sözleşmeli sağlık hizmeti sunucuları bağlamında geçer (satır 638 ve 640). Korpustaki Ilac_ve_Tibbi_Cihaz_Teslimlerine_Iliskin_Fatura_Teknik_Kilavuzu_V.1.2_.txt bir TEKNİK KILAVUZ (ILAC_TIBBICIHAZ senaryosu için fatura alan yapısı) olup 509'da zorunluluk bendi değildir. e-Irsaliye_Uygulama_Kilavuz_1.2_.txt'de "ITS" veya "ilaç takip" ifadeleri bulunamamıştır (0 eşleşme)
13e-Arşiv "özel entegratör sistemleri aracılığıyla düzenleme" kanalının teknik detayıDOĞRULANAMADI "Başkanlığın e-Belge düzenleme portaline gerekli entegrasyonları sağlayarak Başkanlıktan izin alan özel entegratör kuruluşların sistemleri" ifadesinin teknik detayı (hangi API, hangi izin süreci) 509'da yoktur; e-Arsiv_Fatura_Portali_Entegrasyon_Kilavuzu_.txt ve e-ArsivBasvuruKilavuzu.V.1.8_.txt'den ayrıca çıkarılmalıdır
14V.7 ve VIII bölümlerinin bu görev kapsamında okunmayan kalan kısımları[KISMEN DOGRULANDI] V.7'nin dört bendi ve VIII'in 19 maddesi yukarıda tam olarak aktarılmıştır; ancak ceza ve zorunluluk hükümlerinin tamamı bu iki bölüme atıf yaptığından, uygulama öncesi tam metin bir kez daha taranmalıdır
15GİB SSS'nin güncelliğiDOĞRULANAMADI 509_Cok_Sorulan__Sorular_.txt 2020 dönemine aittir; 526/535/550/573/589 sonrası hadleri yansıtmaz ve en az bir noktada (şahıs işletmesinin şirkete dönüşmesi) 550 SN ile getirilen 509 IV.1.4/(g) fıkrasıyla ÇELİŞİR. SSS'de "serbest bölge", "şarj", "otel", "konaklama" anahtar kelimeleri hiç geçmemektedir (grep: 0 eşleşme) — 535/550 ile eklenen otel ve şarj ağı bentleri hakkında SSS'ye dayanarak yorum yapılamaz. SSS'nin güncel bir sürümü korpusta yoktur
16e-Bilet — hava yolu ve deniz yoluDOĞRULANAMADI 509 IV.7.4'te hava yolu ve deniz yolu için ayrı bir zorunluluk hükmü yoktur (yalnızca kara/deniz yolu şehirlerarası tarifeli D1 yetki belgeliler ve sinema işletmeleri sayılmıştır); e-Bilet_Raporu_Teknik_Kilavuzu__Karayolu_Denizyolu__V.2.3_.txt bu görevde ayrıca taranmamıştır

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt, UBL-TR_Kod_Listeleri_-_V_1.43_.txt, e-Fatura_Uygulamasi_gumruk_islemleri_Kilavuzu_.txt, 509_Cok_Sorulan__Sorular_.txt, e-Irsaliye_Uygulama_Kilavuz_1.2_.txt, Ilac_ve_Tibbi_Cihaz_Teslimlerine_Iliskin_Fatura_Teknik_Kilavuzu_V.1.2_.txt, e-Adisyon_Belgesi_Teknik_Kilavuzu_V1_1_.txt, 509_s.VUK_GT_Kapsaminda_Uygulamalara_Gecis_Takvimi_Tablosu__3__.txt


BÖLÜM 3 — İş Akışları

Fatura Yaşam Döngüsü: Akışlar, İptal, İtiraz ve İade

Bu bölümdeki her hüküm, kaynak korpusa geri dönülerek hakem ajanı tarafından ayrıca doğrulanmıştır. Kılavuz metni ile schematron çeliştiğinde schematron esas alınmıştır ve çelişki açıkça işaretlenmiştir. Doğrulanamayan çıkarımlar en sonda ayrı başlık altındadır.


1. TEMELFATURA Akışı vs TICARIFATURA Akışı

1.1 TEMELFATURA — tek yönlü akış, uygulama yanıtı YOKTUR

Senaryo dokümanı tektir: "UBL-TR Fatura (Invoice)". Uygulama Yanıtı bu senaryonun parçası değildir.

#TarafAktiviteÜretilen belge
1SatıcıFaturayı oluşturur ve gönderirUBL-TR Invoice (cbc:ProfileID = TEMELFATURA)
2AlıcıFaturayı alır— (belge üretilmez)

Kritik kurallar:

  • Faturanın alıcısına kayıtlı ve güvenli biçimde ulaştırılması ile işlem tamamlanmış sayılır.
  • Sistem seviyesinde alıcı faturayı reddedemez; posta kutusuna düştüğü anda teslim edilmiş sayılır.
  • İtirazlar harici yollarla yapılır (senaryo içinde KABUL/RED mekanizması yoktur).
  • Portal implikasyonu: TEMELFATURA'da alıcıdan beklenecek tek geri dönüş GİB Merkez'in ürettiği Sistem Yanıtı'dır (ResponseCode = S_APR). Ticari bir onay akışı kurgulanmamalıdır. Fatura hatalıysa çözüm: iptal portali (8 gün) veya harici itiraz.

Kaynak: UBL-TR_Temel_Fatura_Senaryosu_-_V_0.2_.txt (satır 49-51, 57-58, 60-62, 94-102).

1.2 Fatura numarası (cbc:ID) — InvoiceIDCheck

<sch:rule abstract="true" id="InvoiceIDCheck">
  <sch:assert test="matches(cbc:ID,'^[A-Z0-9]{3}20[0-9]{2}[0-9]{9}$')">Geçersiz cbc:ID elemanı değeri. cbc:ID elemanı 'ABC2009123456789' formatında olmalıdır.</sch:assert>
</sch:rule>

Kaynak: UBL-TR_Common_Schematron.xml satır 154-156; UBL-TR_Main_Schematron.xml satır 149 ve 480'de extend edilir.

Yapı: 3 hane [A-Z0-9] birim kodu + 20YY + 9 hane müteselsil = TAM 16 karakter.

ÇELİŞKİ (kılavuz vs schematron — schematron esastır): Temel Fatura Senaryosu V0.2'nin kendi örneğindeki <cbc:ID>GIB20090000000001</cbc:ID> değeri 17 karakterdir (GIB + 2009 + 10 hane) ve GİB'in kendi InvoiceIDCheck kuralından geçemez — zarf 1150 SCHEMATRON KONTROL SONUCU HATALI alır. Portal şablonunda bu örnek KULLANILMAMALIDIR. Doğru şablon 16 hanelidir: ABC2026000000001. (Karşılaştırma: Ticari Fatura Senaryosundaki GIB2009000000011 ve GIB2009000000022 16 hanedir ve kuralı geçer.)

Başlık bloğu şablonu (Temel Fatura örneğinden, cbc:ID düzeltilmiş):

<cbc:UBLVersionID>2.1</cbc:UBLVersionID>
<cbc:CustomizationID>TR1.2</cbc:CustomizationID>
<cbc:ProfileID>TEMELFATURA</cbc:ProfileID>
<cbc:ID>ABC2026000000001</cbc:ID>          <!-- TAM 16 HANE -->
<cbc:CopyIndicator>false</cbc:CopyIndicator>
<cbc:UUID>F47AC10B-58CC-4372-A567-0E02B2C3D479</cbc:UUID>
<cbc:IssueDate>2026-08-31</cbc:IssueDate>
<cbc:IssueTime>14:42:00</cbc:IssueTime>
<cbc:InvoiceTypeCode>SATIS</cbc:InvoiceTypeCode>
<cbc:DocumentCurrencyCode>TRY</cbc:DocumentCurrencyCode>
<cbc:LineCountNumeric>1</cbc:LineCountNumeric>

1.3 TICARIFATURA — Temel Fatura'dan tek farkı: Uygulama Yanıtı

"Bu senaryo kapsamında düzenlenen fatura, temel fatura senaryosunda düzenlenen faturadan farklı değildir. Temel fatura senaryosundan farklı olarak, Ticari Fatura Senaryosunda uygulama yanıtı kullanımına imkan verilmiştir. Ticari Fatura Senaryosu kapsamında faturalaşma, tarafların bu konuda gösterecekleri açık rızaya bağlıdır."

Senaryo dokümanları iki tanedir: UBL-TR Fatura (Invoice) + UBL-TR Uygulama Yanıtı (ApplicationResponse).

A. Faturanın Kabul Edilmesi

#TarafAktiviteBelge
1SatıcıFaturayı düzenler ve gönderirInvoice (ProfileID=TICARIFATURA)
2AlıcıFaturayı alır ve işler
3AlıcıKABUL uygulama yanıtı gönderirApplicationResponse (ResponseCode=KABUL)
4SatıcıUY'yi alır, fatura ile eşleyip kayda alır

B. Faturanın Reddedilmesi

#TarafAktiviteBelge
1SatıcıFaturayı düzenler ve gönderirInvoice
2AlıcıFaturayı alır
3AlıcıRED uygulama yanıtı gönderir; red gerekçesini genel açıklamalara yazarApplicationResponse (ResponseCode=RED)
4SatıcıUY'yi alır, reddedilen fatura ile eşler
5aSatıcıUY'yi kabul eder → gerekirse tamamen yeni bir fatura düzenlerYeni Invoice
5bSatıcıUY'yi kabul etmez → harici yollardan itiraz eder

C. İade Faturası Düzenlenmesi

#TarafAktiviteBelge
1SatıcıFaturayı düzenler ve gönderirInvoice
2AlıcıFaturayı alır ve yasal defterlere kaydeder
3Alıcıİade nedenlerini yazdığı IADE UY'sini iade faturası ile birlikte gönderirApplicationResponse (IADE) + Invoice (InvoiceTypeCode=IADE)
4SatıcıUY ile iade faturasını alır, kayıtlara alır

1.4 RED sürecinin kesin kuralları (portalde kodlanacak kısıtlar)

#Kural
1Red gerekçesi ZORUNLU, uygulama yanıtının genel açıklamalar bölümüne yazılır
2Reddedilen fatura DEĞİŞTİRİLMEKSİZİN red UY'si ile birlikte saklanır; fatura üzerinde düzeltme yapılamaz
3Red ile fatura süreci kapanır; yerine fatura gerekiyorsa tamamıyla yeni bir fatura düzenlenir (düzeltme/versiyon kavramı YOK)
4Satıcı, red'e konu faturaya red UY'si GÖNDEREMEZ (RED'e RED yoktur); itirazı ancak harici yollarladır
5Satıcı, reddedilen faturayı ve UY'yi faturayı alıcısına gönderdiği tarihten itibaren yasal saklama süresince muhafaza eder
6İade faturasına tekrar UY gönderilerek KABUL veya RED yapılamaz; harici yollardan yapılır

Kaynak: UBL-TR_Ticari_Fatura_Senaryosu_-_V_0.3_.txt satır 71-75, 108-109, 129-184, 203-262.

1.5 Durum Makinesi (State Machine) Tablosu

#Mevcut DurumTetikleyici OlayYeni DurumKoşul / SüreTerminal?
1TASLAKKullanıcı onayıOLUSTURULDUSchematron ön-kontrol geçmeliHayır
2OLUSTURULDUXAdES imza (mali mühür/NES)IMZALANDIHayır
3IMZALANDIZarflama + sendDocumentGONDERILDIZarf ID = zip adı = xml adıHayır
4GONDERILDIS_APR / 1000..1143ISLENIYORAsenkronHayır
5GONDERILDIS_APR / 1150,1160,1161,1162,1163,1170-1183,1190,1195HATALIZarf reddedildi, yeniden gönderim gerekirEvet
6ISLENIYORS_APR / 1200ZARF_ISLENDIZarf başarıyla işlendiHayır
7ZARF_ISLENDIMerkez iç durumu 1300TAMAMLANDIYalnız durum sorgusu ile görülür (bkz. Doğrulanamayanlar)Evet (başarı)
8ZARF_ISLENDI (TICARIFATURA)Alıcı UY: KABULKABUL_EDILDI≤ 8 günEvet
9ZARF_ISLENDI (TICARIFATURA)Alıcı UY: REDREDDEDILDI (= iptal)≤ 8 gün, gerekçe zorunluEvet
10ZARF_ISLENDI (TICARIFATURA)Alıcı UY: IADE + IADE faturasıIADE_EDILDIDefterlere kayıttan sonraEvet
11ZARF_ISLENDI (TICARIFATURA)8 gün doldu, UY gelmediZIMNEN_KABULTTK 21/2Evet
12ZARF_ISLENDI (TEMEL/HKS)İptal talebi oluşturulduIPTAL_TALEBI_BEKLIYOR≤ 8 gün (iletim tarihinden)Hayır
13IPTAL_TALEBI_BEKLIYORKarşı taraf "Fatura İptal Et"IPTAL_EDILDI (kod 1235)≤ 8 günEvet
14IPTAL_TALEBI_BEKLIYORKarşı taraf "Talebi Reddet"IPTAL_TALEBI_REDDEDILDIEvet
15IPTAL_TALEBI_BEKLIYOR8 gün doldu, onay yokIPTAL_TALEBI_ZAMANASIMISistem onaya izin vermezEvet
16herhangi (portal kapsamındaki senaryo)TTK 18/3 itirazı + bildirimITIRAZ_BILDIRILDIHarici itiraz ÖNCE yapılmış olmalıHayır
17ITIRAZ_BILDIRILDIKarşı taraf kabulITIRAZ_KABUL≤ izleyen ayın 15'i sonuEvet
18ITIRAZ_BILDIRILDIKarşı taraf red veya süre dolduITIRAZ_REDDEDILDI / ITIRAZ_ZAMANASIMIBa/Bs asimetrisi doğar (§5.2)Evet

Not (8 no'lu geçiş — idempotency): Bir fatura için birden fazla UY gelirse ilk UY kazanır, diğerleri kabul edilmemelidir. Aynı faturaya ikinci bir UY gönderimi de bloke edilmelidir.


2. Uygulama Yanıtı (ApplicationResponse) Belge Yapısı

2.1 13 ana eleman — tam liste

Kaynak: UBL-TR_Uygulama_Yan___t____-_V_0.2_.txt (Mart 2015, V0.2), satır 86-116 ve 132-483.

NoUBL AdıTürkçeKardinaliteİçerik
1UBLExtensionsUBL Genişletme AlanıSeçimli (0..1)XAdES formatında elektronik imza
2UBLVersionIDUBL Versiyon NoZorunlu (1)Değer: 2.1
3CustomizationIDÖzelleştirme NoZorunlu (1)Değer: TR1.2
4ProfileIDSenaryoZorunlu (1)KABUL/RED/IADE için sadece TICARIFATURA veya IHRACAT; S_APR için UBL-TR-PROFILE-1
5IDUY NumarasıZorunlu (1)3 hane birim kodu + 13 hane müteselsil (ilk 4 hane yıl + 9 hane sıra) = 16 hane. Düzenleyen bünyesinde tekrar edilemez
6UUIDETTNZorunlu (1)GUID
7IssueDateDüzenleme TarihiZorunlu (1)YYYY-AA-GG
8IssueTimeDüzenleme ZamanıSeçimli (0..1)SS:DD:ss
9NoteNotSeçimli (0..n)UY ile ilgili genel açıklamalar → RED GEREKÇESİ BURAYA
10SignatureMali Mühür/İmzaSeçimli (0..n)Sistem düzeyinde seçimli, belge düzeyinde ZORUNLU (schematron dayatır)
11SenderPartyUY Gönderen TarafZorunlu (1)
12ReceiverPartyUY Alan TarafZorunlu (1)
13DocumentResponseBelge YanıtıZorunlu (1)Tam 1 adet (DocumentResponseCountCheck)

ÇELİŞKİ: Uygulama Yanıtı Kılavuzu V0.2 2.1 / TR1.2 der; Ticari Fatura Senaryosu V0.3'ün ApplicationResponse örnekleri (satır 878-879, 1010-1011, 1352-1354) 2.0 / TR1.0 ve ProfileID = TicariFatura (karma harf) kullanır. Karma harfli TicariFatura güncel ProfileIDType listesini geçemez. Kılavuz metni (2.1 / TR1.2 / büyük harf) esas alınmalıdır.

2.2 ResponseCode — geçerli değerlerin TAM listesi

<sch:let name="ResponseCodeType" value="',KABUL,RED,IADE,S_APR,GUMRUKONAY,'"/>

Kaynak: UBL-TR_Codelist.xml satır 42. 5 değer, başka yok.

KodAnlamıKim düzenlerZarf tipiProfileID kısıtı
KABULFatura kabul edildiAlıcıPOSTBOXENVELOPETICARIFATURA veya IHRACAT
REDFatura reddedildiAlıcıPOSTBOXENVELOPETICARIFATURA veya IHRACAT
IADEİade faturası ile ilişkiliAlıcıPOSTBOXENVELOPETICARIFATURA veya IHRACAT
S_APRSistem Yanıtı (teknik)GİB Merkez / Gönderici BirimSYSTEMENVELOPEUBL-TR-PROFILE-1
GUMRUKONAYGümrük onayıTicaret Bakanlığı (VKN 1460415308)POSTBOXENVELOPEYOLCUBERABERFATURA

Doğrulama kuralları (UBL-TR_Common_Schematron.xml):

<!-- ResponseCodeCheck, satır 588-591 -->
<sch:assert test="cbc:ResponseCode">cbc:ResponseCode zorunlu bir elemandır.</sch:assert>
<sch:assert test="not(cbc:ResponseCode) or contains($ResponseCodeType, concat(',',cbc:ResponseCode,','))">Geçersiz cbc:ResponseCode elemanı değeri '...'. Geçerli değerler için kod listesine bakınız.</sch:assert>

<!-- PostBoxResponseCodeCheck, satır 599-601 -->
<sch:assert test="not($envelopeType = 'POSTBOXENVELOPE') or ( cbc:ResponseCode = 'RED' or cbc:ResponseCode = 'KABUL' or cbc:ResponseCode = 'IADE' or cbc:ResponseCode = 'GUMRUKONAY' )">POSTBOXENVELOPE türündeki zarfların cbc:ResponseCode değerleri sadece RED,KABUL,IADE veya GUMRUKONAY olabilir</sch:assert>

<!-- ApplicationResponseProfileIDCheck, satır 528-532 -->
<sch:assert test="not($responseCode = 'S_APR') or cbc:ProfileID = 'UBL-TR-PROFILE-1'">Sistem yanıtı için cbc:ProfileID  elemanı değeri 'UBL-TR-PROFILE-1' olmalıdır.</sch:assert>
<sch:assert test="not($responseCode = 'KABUL' or $responseCode = 'RED' or $responseCode = 'IADE') or (cbc:ProfileID = 'TICARIFATURA' or cbc:ProfileID = 'IHRACAT')">Uygulama yanıtı için cbc:ProfileID elemanı değeri 'TICARIFATURA' veya 'IHRACAT' olmalıdır.</sch:assert>

Portal için kritik iki sonuç:

  1. S_APR bir POSTBOXENVELOPE içinde gönderilemez — sadece SYSTEMENVELOPE içindedir.
  2. KABUL/RED/IADE uygulama yanıtı yalnızca ProfileID = TICARIFATURA veya IHRACAT ile gönderilebilir. TEMELFATURA/KAMU/HKS profilinde UY üretmeye çalışan bir portal zarfı 1150 ile geri alır.

Not (düzeltilmiş): GUMRUKONAY yalnızca YOLCUBERABERFATURA senaryosuna aittir. IHRACAT senaryosunda gümrük onayı GUMRUKONAY ile değil KABUL uygulama yanıtı ile verilir (e-Fatura_Uygulamasi_gumruk_islemleri_Kilavuzu_.txt satır 399, 619, 642, 656) ve bunu ARPartyIdentificationGTBCheck de teyit eder (kural ProfileID=IHRACAT ve ResponseCode='KABUL' koşuluna bağlıdır).

2.3 Red gerekçesi NEREYE yazılır — iki ayrı yer

YerXPathİşlev
Belge düzeyi (kılavuzun dayattığı)/ApplicationResponse/cbc:Note"Red durumunda uygulama yanıtının genel açıklamalar bölümüne reddedilme nedeninin yazılması gerekir."
Satır düzeyi (schematron'un dayattığı)cac:DocumentResponse/cac:LineResponse/cac:Response/cbc:DescriptionDescriptionCountCheck: bu bağlamda tam 1 adet ve ZORUNLU. GİB'in kendi örneğinde ayrıntılı gerekçe buradadır

Portal her ikisini de doldurmalıdır: kök Note = kısa etiket, LineResponse/.../Description = ayrıntılı gerekçe.

2.4 XML iskeleti — RED Uygulama Yanıtı

<apr:ApplicationResponse xmlns:apr="urn:oasis:names:specification:ubl:schema:xsd:ApplicationResponse-2"
                         xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
                         xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
                         xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2">
  <ext:UBLExtensions>...XAdES imza...</ext:UBLExtensions>   <!-- ZORUNLU (ARSignatureCheck) -->
  <cbc:UBLVersionID>2.1</cbc:UBLVersionID>
  <cbc:CustomizationID>TR1.2</cbc:CustomizationID>
  <cbc:ProfileID>TICARIFATURA</cbc:ProfileID>               <!-- veya IHRACAT; başkası OLAMAZ -->
  <cbc:ID>ABC2026000000001</cbc:ID>                          <!-- 3 + 4(yıl) + 9 = 16 hane -->
  <cbc:UUID>...GUID...</cbc:UUID>
  <cbc:IssueDate>2026-08-31</cbc:IssueDate>
  <cbc:IssueTime>10:15:00</cbc:IssueTime>
  <cbc:Note>Fatura Red Edilmiştir.</cbc:Note>                <!-- GENEL AÇIKLAMA / RED GEREKÇESİ -->
  <cac:Signature>...</cac:Signature>                          <!-- ZORUNLU (ARSignatureCheck) -->
  <cac:SenderParty>
     <cac:PartyIdentification><cbc:ID schemeID="VKN">1234567890</cbc:ID></cac:PartyIdentification>
     <cac:PartyName><cbc:Name>ALICI A.Ş.</cbc:Name></cac:PartyName>   <!-- VKN ise ZORUNLU -->
  </cac:SenderParty>
  <cac:ReceiverParty>
     <cac:PartyIdentification><cbc:ID schemeID="VKN">9876543210</cbc:ID></cac:PartyIdentification>
     <cac:PartyName><cbc:Name>SATICI A.Ş.</cbc:Name></cac:PartyName>
  </cac:ReceiverParty>
  <cac:DocumentResponse>                                      <!-- TAM 1 ADET -->
     <cac:Response>
        <cbc:ReferenceID>12345678910</cbc:ReferenceID>
        <cbc:ResponseCode>RED</cbc:ResponseCode>
        <cbc:Description>FATURARED</cbc:Description>
     </cac:Response>
     <cac:DocumentReference>
        <cbc:ID>GIB2009000000011</cbc:ID>
        <cbc:IssueDate>2009-01-05</cbc:IssueDate>
        <cbc:DocumentTypeCode>FATURA</cbc:DocumentTypeCode>   <!-- boş olamaz -->
        <cbc:DocumentType>FATURA</cbc:DocumentType>           <!-- boş olamaz -->
     </cac:DocumentReference>
     <cac:LineResponse>
        <cac:LineReference><cbc:LineID/></cac:LineReference>
        <cac:Response>
           <cbc:ReferenceID>12345678911</cbc:ReferenceID>
           <cbc:ResponseCode>RED</cbc:ResponseCode>
           <cbc:Description>Fatura satış anlaşmasına uygun fiyatlandırılmaması nedeniyle reddedilmiştir</cbc:Description>
        </cac:Response>
     </cac:LineResponse>
  </cac:DocumentResponse>
</apr:ApplicationResponse>

Kaynak: UBL-TR_Ticari_Fatura_Senaryosu_-_V_0.3_.txt satır 1016, 1089-1116.

Varyantlar:

YanıtKök cbc:NoteResponse/DescriptionLineReference/LineID
KABULFatura Kabul Edilmiştir. (satır 884)FATURAKABUL (satır 961/979)boş
REDFatura Red Edilmiştir. (satır 1016)FATURAREDboş <cbc:LineID/>
IADEGİB örneğinde hatalı (bkz. aşağı)FATURAIADE (dosyada sonda boşlukla yazılmış, satır 1438)iade edilen kalem no, ör. 3

GİB örneğindeki hata: IADE uygulama yanıtı örneğinin kök Note'u satır 1359'da Fatura Kabul Edilmiştir. yazmaktadır — bu bir kopyala-yapıştır hatasıdır; iade gerekçesi satır düzeyindeki Description alanındadır ("Notebook çantaları istenen vasıfta olmadığından iade edilmiştir.", satır 1437-1454). Portal, IADE yanıtının kök Note'una iade gerekçesini yazmalıdır.

2.5 Taraf ve imza schematron kısıtları

KuralBağlamDayatma
ARPartyIdentificationPartyNamePersonCheck (satır 568-575; Main satır 331 & 341)SenderParty + ReceiverPartyschemeID = VKN veya TCKN olan tam 1 cac:PartyIdentification/cbc:ID; ikisi birden olamaz
aynı kuralKABUL/RED/IADEVKN ise cac:PartyName zorunlu ve cbc:Name boş olamaz; TCKN ise cac:Person zorunlu, FirstName + FamilyName dolu
ARSignatureCheck (satır 544-547)ProfileID != IHRACAT ve ResponseCode ∈ {KABUL, RED, IADE}Hem cac:Signature hem ext:UBLExtensions ZORUNLU
ARPartyIdentificationGTBCheck (satır 518-521; Main satır 336)ProfileID=IHRACAT + KABUL, sadece SenderPartyschemeID='GTB_GCB_TESCILNO' tam 1 adet; schemeID='GTB_FIILI_IHRACAT_TARIHI' tam 1 adet, ^\d{4}\-(0?[1-9]|1[012])\-(0?[1-9]|[12][0-9]|3[01])$
PostBoxDocumentReferenceCheck (satır 603-606)POSTBOXENVELOPEDocumentReference boş olmayan cbc:DocumentTypeCode ve cbc:DocumentType içermelidir

İSTİSNA: GUMRUKONAY yanıtında imza aranmaz — "Uygulama yanıtı olmasına rağmen bu işlemde kullanılan yanıtta imza aranmamalıdır." (e-Fatura_Uygulamasi_gumruk_islemleri_Kilavuzu_.txt satır 1032-1034). Schematron ile çelişmez, çünkü ARSignatureCheck GUMRUKONAY'ı kapsamaz. Portal doğrulama katmanında bu istisna ayrıca kodlanmalıdır.

2.6 S_APR — Sistem Yanıtı ve durum kodları

S_APR ticari bir yanıt DEĞİL, gönderilen zarfın işlenme durumunu bildiren asenkron teknik yanıttır. Üst seviye Response/ResponseCode = S_APR; satır seviyesindeki LineResponse/Response/ResponseCode = sayısal durum kodu.

<cac:DocumentResponse>
   <cac:Response>
      <cbc:ReferenceID>98A7317F-7FBB-4B4E-AB83-F0B63F8BD4A5</cbc:ReferenceID>
      <cbc:ResponseCode>S_APR</cbc:ResponseCode>            <!-- S_APR = System application response -->
      <cbc:Description>APPLICATIONRESPONSE</cbc:Description>
   </cac:Response>
   <cac:DocumentReference>
      <cbc:ID>F1DBDA2D-FFB4-43E3-B923-EB78386D1BFD</cbc:ID>  <!-- Zarf ID -->
      <cbc:IssueDate>2009-12-18</cbc:IssueDate>
      <cbc:DocumentTypeCode>SENDERENVELOPE</cbc:DocumentTypeCode>
      <cbc:DocumentType>SENDERENVELOPE</cbc:DocumentType>
   </cac:DocumentReference>
   <cac:LineResponse>                                        <!-- ZORUNLU, TAM 1 ADET -->
      <cac:LineReference>
         <cbc:LineID>0</cbc:LineID>
         <cac:DocumentReference>
            <cbc:ID>F1DBDA2D-FFB4-43E3-B923-EB78386D1BFD</cbc:ID>
            <cbc:IssueDate>2009-12-18</cbc:IssueDate>
         </cac:DocumentReference>
      </cac:LineReference>
      <cac:Response>
         <cbc:ReferenceID>62838E2B-40AD-465E-A249-6A07269FCD16</cbc:ReferenceID>
         <cbc:ResponseCode>1200</cbc:ResponseCode>
         <cbc:Description>ZARF BASARIYLA ISLENDI</cbc:Description>
      </cac:Response>
   </cac:LineResponse>
</cac:DocumentResponse>

Kaynak: Ek-2e-FaturaUygulamasiSistemYanitiSemaYapisi-v1.5_.txt satır 462-511.

Ek kurallar: DocumentResponseCheck (satır 577-581) S_APR'de tam 1 LineResponse, içinde tam 1 Response, onda ResponseCode ister. ARSenderCheck (553-558) / ARReceiverCheck (560-566): zarfı gönderen/alan kullanıcı ile sistem yanıtını düzenleyen/alan kullanıcı AYNI olmalıdır (VKN 10 hane / TCKN 11 hane).

Durum kodları — Ek-2 tam listesi 38 koddur (Ek-2...v1.5_.txt satır 640-719):

KodAçıklamaKodAçıklama
1000ZARF KUYRUGA EKLENDI1171GONDERICI BIRIM YETKISI YOK
1100ZARF ISLENIYOR1172POSTA KUTUSU YETKISI YOK
1110ZIP DOSYASI DEGIL1175IMZA YETKISI KONTROL EDILEMEDI
1111ZARF ID UZUNLUGU GECERSIZ1176IMZA SAHIBI YETKISIZ
1120ZARF ARSIVDEN_KOPYALANAMADI1177GEÇERSİZ İMZA
1130ZIP ACILAMADI1180ADRES KONTROL EDILEMEDI
1131ZIP BIR DOSYA ICERMELI1181ADRES BULUNAMADI
1132XML DOSYASI DEGIL1182KULLANICI EKLENEMEDİ
1133ZARF ID VE XML DOSYASININ ADI AYNI OLMALI1183KULLANICI SİLENEMEDİ
1140DOKUMAN AYRISTIRILAMADI1190SISTEM YANITI HAZIRLANAMADI
1141ZARF ID YOK1195SISTEM HATASI
1142ZARF ID VE ZIP DOSYASI ADI AYNI OLMALI1200ZARF BASARIYLA ISLENDI
1143GECERSIZ VERSIYON1210DOKUMAN BULUNAN ADRESE GONDERILEMEDI
1150SCHEMATRON KONTROL SONUCU HATALI1215DOKUMAN GONDERIMI BASARISIZ. TERKAR GONDERME SONLANDI
1160XML SEMA KONTROLUNDEN GECEMEDI1220HEDEFTEN SISTEM YANITI GELMEDI
1161IMZA SAHIBI TCKN VKN ALINAMADI1230HEDEFTEN SISTEM YANITI BASARISIZ GELDI
1162IMZA KAYDEDILEMEDI1235FATURA IPTAL'E KONU EDILDI
1163GONDERILEN ZARF ... DAHA ONCE KAYITLI OLAN BIR FATURAYI ICERMEKTEDIR.1300BASARIYLA TAMAMLANDI
1164GONDERILEN ZARF ... DAHA ONCE KAYITLI OLAN BIR BELGEYİ ICERMEKTEDIR.1170YETKI KONTROL EDILEMEDI

Schematron'un SYSTEMENVELOPE içinde kabul ettiği alt küme (UBL-TR_Codelist.xml satır 43, AppResponseCodeType, 32 değer): 1000,1100,1110,1111,1120,1130,1131,1132,1133,1140,1141,1142,1143,1150,1160,1161,1162,1163,1170,1171,1172,1175,1176,1177,1180,1181,1182,1183,1190,1191,1195,1200

Tutarsızlık: Bu listede 1191 vardır ama Ek-2'de tanımı YOKTUR. Buna karşılık 1164, 1210, 1215, 1220, 1230, 1235, 1300 bu listede YOKTUR — bunlar Merkez/Gönderici Birim iç durumlarıdır ve SYSTEMENVELOPE içinde taşınmaz; portal bunları ancak durum sorgusu ile öğrenir.


3. Ticari Faturada KABUL/RED Süresi ve Süre Aşımının Sonucu

Süre: 8 (sekiz) gün. Başlangıç: faturanın alıcıya iletildiği/alındığı tarih.

UBL-TR Ticari Fatura Senaryosu V0.3 (Mart 2016) kılavuzunda hiçbir gün sayısı geçmemektedir. 8 günlük süre üç ayrı kaynaktan gelir:

KaynakHüküm
Entegrasyon Kılavuzu v1.10, satır 318-321 (Gönderici Birim)"Gönderici Birim kendisine, fatura yollandıktan sekiz gün sonra gelen uygulama yanıtlarını kabul etmemelidir. Bir fatura için birden fazla uygulama yanıtı geldiği durumlarda gelen ilk uygulama yanıtı kabul edilmeli, diğer uygulama yanıtları kabul edilmemelidir."
Entegrasyon Kılavuzu v1.10, satır 365-368 (Posta Kutusu)"Posta kutusu, uygulama yanıtını, faturayı aldıktan sonra sekiz gün içerisinde göndericiye yollamalıdır. Uyguluma yanıtının fatura alındıktan sekiz gün sonra dönülmesi engellenmelidir. Aynı zamanda uygulama yanıtının birden fazla gönderilmesi engellenmelidir."
İptal/İtiraz Kılavuzu V1.2, satır 99-102 (TTK 21/2)"Bir fatura alan kişi aldığı tarihten itibaren sekiz gün içinde, faturanın içeriği hakkında bir itirazda bulunmamışsa bu içeriği kabul etmiş sayılır"

Süre geçerse ne olur?

#Sonuç
1Alıcı 8 gün içinde itiraz etmezse fatura içeriğini kabul etmiş sayılır (TTK 21/2) → ZIMNEN_KABUL
2Posta kutusu birimi 8. günden sonra UY göndermeyi teknik olarak engellemek zorundadır
3Gönderici Birim, 8 günden sonra gelen UY'yi kabul etmemelidir
4Sonrasında tek yol: harici itiraz (TTK 18/3) + itiraz bildirim portali

UYARI (schematron seviyesinde kontrol YOKTUR): 8 günlük kontrolü yapan bir schematron kuralı korpusta bulunmamaktadır; TimeCheck kuralı Main Schematron'da yorum satırına alınmıştır (<!--<sch:extends rule="TimeCheck"/>-->). Yani 8 gün kontrolü uygulama/posta kutusu katmanında yapılmalıdır — schematron sizi korumaz.


4. İPTAL

4.1 Senaryoya göre iptal yöntemi

Senaryoİptal yöntemiSüre / başlangıçSistem zorluyor mu?
Ticari FaturaSistem içinden "Ret Uygulama Yanıtı" (ResponseCode=RED). Ayrı iptal portali kullanılmaz8 gün / alıcıya iletildiği tarihEvet (posta kutusu engellemeli)
Ticari Fatura dışındaki senaryolar (Temel dahil)e-Fatura İptal Portali, mali mühür / e-imza ile8 gün / alıcıya iletilme tarihiEVET — açık hüküm

"e-Fatura uygulamasında iptal işlemleri, ticari fatura senaryosunda düzenlenen faturalara, faturanın alıcıya iletildiği tarihten itibaren 8 günlük süre içinde e-Fatura sistemi içinden 'Ret Uygulama Yanıtı' ile iptal işlemi yapılmaktadır."

"8 günü aşan sürelerde sistem talep oluşturulmasına ya da talebin onaylanmasına imkan vermemektedir."

"e-Fatura iptal işlemlerinde 8 günlük sürenin tespiti e-faturanın alıcıya iletilme tarihinden itibaren başlar. İptal işlemi her durumda 8 günlük süre içinde yapılmalıdır."

Süre düzenleme tarihinden değil, alıcıya iletilme tarihinden başlar. Karşı tarafın onaylama zorunluluğu yoktur.

Kaynak: e-Fatura_Iptal_Ihtar_Itiraz_Bildirim_Kilavuzu_V_1.2_.txt (03.01.2025) satır 97-98, 105-115, 175-177.

4.2 İptal/İtiraz Portali — senaryo bazında izin matrisi

SenaryoİPTALİTİRAZ BİLDİRİMKim başlatabilir
Temel FaturaAlıcı veya satıcı
Ticari Fatura✘ (RED UY ile yapılır)Alıcı veya satıcı
Hal Tipi Fatura (HKS)Alıcı veya satıcı
Kamu FaturaSadece satıcı — alıcı onayı aranmaz
YOLCUBERABERFATURA, IHRACAT, OZELFATURA, ENERJI, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDISPortal kapsamı DIŞINDA

Kaynak: aynı kılavuz satır 139-152; kapsam dışı 7 senaryo UBL-TR_Codelist.xml satır 5 (ProfileIDType) ile karşılaştırılarak doğrulanmıştır.

4.3 Portal teknik gereksinimleri ve form alanları

  • Adres: https://portal.efatura.gov.tr/FaturaIptal/
  • Mali mühür / elektronik imza kartı + GİB İmzalama Aracı; portal kullanıldığı sürece imzalama aracı arka planda açık kalmalıdır.
  • Talep formu alanları: "İşlem Sahibini Seçiniz" (Alıcı/Satıcı), "Fatura No" = 16 haneli seri numarası, "Ödenecek tutar", akıllı kart sürücü + şifre.
  • Hata durumları: sistemde kayıtlı olmayan e-Fatura no, hatalı ödenecek tutar, daha önce iptal edilmiş faturanın tekrar iptali.
  • Ekran/buton etiketleri (birebir): "Fatura İptal Talebi Oluşturmak İçin Tıklayınız" → "Talep Oluştur" → "İptal talebiniz başarıyla oluşturulmuştur"; "Fatura İptal Taleplerinin Durumlarını Görmek ve Adınıza Gelen İptal Taleplerine Onay vermek İçin Tıklayınız"; onay = "Fatura İptal Et", red = "Talebi Reddet", sonuç = "İşlem Başarılı"; listeler: "İptal Edilmesini Talep Ettiğiniz Faturalar", "İptal Ettiğiniz Faturalar".

DİKKAT — asimetri: e-Fatura İptal Portalinde "İptal Gerekçesi" alanı YOKTUR; e-Arşiv portalinde ise ZORUNLUDUR.

4.4 İptalin sanal Ba/Bs etkisi — iptalde asimetri YOKTUR

DurumTalep durumu etiketiAlıcının sanal BaSatıcının sanal Bs
İptal talebi ONAYLANDI"Fatura İptal Edildi"YER ALMAZYER ALMAZ
İptal talebi REDDEDİLDİ"Talep Reddedildi"YER ALIRYER ALIR
8 gün içinde onay verilmediYER ALIRYER ALIR

Kaynak: aynı kılavuz satır 225-233, 253-271.


5. İTİRAZ

5.1 Portal itirazı YAPMAZ, BİLDİRİR

"Ancak ihtar ve itiraz bildirimlerinin Sistem içinden yapılabilmesi için öncelikle TTK Madde 18'de belirtilen yöntem ve süreler dâhilinde söz konusu e-Faturaya itiraz edilmesi gerekmektedir. İhtar ve itirazların sistem içinden yapılması mümkün olmayıp, Bildirimin amacı, TTK kapsamında yapılan ihtar ve itiraz hakkında Başkanlığa bilgi verilmesidir."

TTK 18/3 harici yöntemler — tam liste (4 adet): ① Noter aracılığıyla ② Taahhütlü mektupla ③ Telgrafla ④ Güvenli elektronik imza kullanılarak KEP (kayıtlı elektronik posta) sistemi ile.

SenaryoSistem içi itirazHarici itiraz
Ticari Fatura✔ RED uygulama yanıtı (8 gün içinde)✔ TTK 18/3 (8 gün içinde)
Temel ve diğer senaryolarSADECE TTK 18/3 (8 gün içinde)

İtiraz talebini hem satıcı hem alıcı başlatabilir (satır 359-361).

İtiraz talebi form alanları: İşlem Sahibi (Alıcı/Satıcı) · Fatura No (16 hane) · Ödenecek tutar · İtiraz Belge Numarası · İtiraz Belge Tarihi · İtiraz Yöntemi (Noter / Taahhütlü mektup / Telgraf / KEP) · akıllı kart sürücü + şifre. Üç itiraz alanı da "6102 sayılı Kanunun 18 inci maddesinin üçüncü fıkrası uyarınca yapılan işlemler neticesinde oluşacak belge" tanımıyla tarif edilmiştir (satır 377-392).

5.2 İtiraz onay süresi: İZLEYEN AYIN 15'i (8 gün DEĞİL)

İptalde süre 8 gün; itiraz talebinin ONAYLANMASINDA süre, faturanın ait olduğu ayı izleyen ayın 15'inci günü sonudur. Bu, V1.2 (03.01.2025) ile değiştirilen husustur — versiyon tablosunda 5.2 ve 5.4 bölümleri için "İtiraz talebinin kabul edilmesi gereken sürede değişiklik yapılmıştır" olarak geçer.

DURUM A — İtirazı ALICI başlattı, cevap SATICIDA (Bölüm 5.1/5.2):

Satıcının davranışıAlıcının sanal BaSatıcının sanal Bs
Kabul etti (≤ izleyen ayın 15'i sonu)YER ALMAZYER ALMAZ
Reddetti ("Talep Reddedildi")YER ALMAZYER ALIR
Süresinde onaylamadıYER ALMAZYER ALIR

DURUM B — İtirazı SATICI başlattı, cevap ALICIDA (Bölüm 5.3/5.4):

Alıcının davranışıAlıcının sanal BaSatıcının sanal Bs
Kabul etti (≤ izleyen ayın 15'i sonu)YER ALMAZYER ALMAZ
ReddettiYER ALIRYER ALMAZ
Süresinde onaylamadıYER ALIRYER ALMAZ

Kuralın özü: İtirazda ceza, süresinde cevap vermeyene/reddedene yüklenir. Talebi başlatan tarafın formundan belge her hâlükârda düşer. Bu, iptalden temel farktır (iptalde red/sessizlik → her iki tarafta da kalır).

Ba/Bs bağlamı: 523 SN VUK Tebliği ile 396 SN VUK GT değiştirilmiş, Temmuz 2021 döneminden itibaren Ba/Bs formlarına e-Belgeler dahil edilmemektedir. GİB bunun yerine e-Belge veri tabanları üzerinden "sanal Ba/Bs formu" takip eder; bu form KDVİRA/ÖTVİRA/GEKSİS gibi iade süreçlerinde ve risk analizinde kullanılan Başkanlık içi bir yapıdır (satır 68-81). Portal implikasyonu: gecikmiş itiraz/iptal onayı mükellefin sanal Bs/Ba profilini bozar → KDV iadesi süreçlerinde risk.


6. e-ARŞİV İPTAL

Kaynak: e-Arsiv_Uygulamalari_Iptal_Ihtar_Itiraz_Bildirim_Kilavuzu_V.1.1_.txt (03.01.2025). Kılavuzun tam adı: "e-ARŞİV UYGULAMALARI (e-Arşiv Fatura, e-Serbest Meslek Makbuzu) İPTAL, İHTAR/İTİRAZ BİLDİRİM KILAVUZU" — kapsam e-Arşiv Fatura + e-SMM.

Süre: 8 gün, belgenin ALICIYA İLETİLME tarihinden itibaren.

"e-Arşiv Fatura ve e-SMM belgelerinin iptal işlemlerinde 8 günlük sürenin tespiti e-belgenin alıcıya iletilme tarihinden itibaren başlar. İptal işlemi her durumda 8 günlük süre içinde yapılmalıdır." (satır 121-123)

Yöntem — kullanıcı tipine göre 3 ayrı giriş kanalı:

Kullanıcı tipiGiriş yöntemiKimlik doğrulama
GİB Portal yöntemi kullanan kayıtlı e-Arşiv/e-SMM kullanıcısıGİB Portal UygulamasıMali mühür / elektronik imza
Özel Entegratör ve Entegrasyon yöntemi kullananlarGİB e-Arşiv (interaktif) PortalıDijital V.D kullanıcı kodu ve şifresi
Kayıtlı e-Belge kullanıcısı olmayan mükelleflerGİB e-Arşiv (interaktif) PortalıDijital V.D kullanıcı kodu ve şifresi

Entegratör için kritik — portal yerine "İptal Raporu" yolu (satır 199-204):

"Özel Entegratör ve Entegrasyon Yöntemini kullanan mükellefler ise Başkanlığa gönderecekleri 'İptal Raporu' ile düzenledikleri e-Belgeler için 'İptal Talebinde' bulunabilirler. Bu şekilde iptal talebini iletilen durumlar için satıcı tarafından portal üzerinden yapılacak ayrıca bir işlem bulunmamaktadır. Fakat alıcıya bu yol ile iletilen iptal talebine yine GİB Portal üzerinden alıcı tarafından iptal talebi kabul ya da reddetme işlemi yapılabilecektir."

Aynı yapı itiraz için de vardır: "İtiraz Raporu" (satır 397-399).

Ekran akışı (birebir GİB terminolojisi): Alıcı: "Adıma Düzenlenen Belgeler" → tarih aralıklı sorgu → belge seç → "İptal Talebi Oluştur" → "İptal Gerekçesi" (zorunlu) → "Uyarıyı Okudum" → buton aktifleşir → "İptal talebiniz başarıyla oluşturulmuştur". Satıcı: "Düzenlenen Belgeler" → aynı akış. Karşı taraf: "Gelen İptal/İtiraz Talepleri" → "Talep Kabul Et" / "Talep Reddet" → "Uyarıyı Okudum" → "Talebi Kabul Et" / "Talebi Reddet". Durum takibi: "İptal/İtiraz Durumu" sütunu.

Sanal Ba/Bs (iptal): onaylandı → her ikisinde de YER ALMAZ; reddedildi → her ikisinde de YER ALIR (satır 152-157).

6.1 e-Arşiv İTİRAZ ve V1.1'in getirdiği fark

V1.1'in tek değişikliği: 4.2 ve 4.4 bölümlerinde "İtiraz talebinin kabul edilmesi gereken sürede değişiklik yapılmıştır" → yeni süre belgenin ait olduğu ayı izleyen ayın 15'inci günü sonu.

e-Arşivde de itiraz haricidir; harici yolla yapılan itiraz sistem üzerinden bildirilerek alıcı/satıcının onayına sunulur (satır 110-117).

A) İtirazı alıcı başlattı, cevap düzenleyicide (4.2)Alıcının sanal BASatıcının sanal BS
Kabul (≤ izleyen ayın 15'i)YER ALMAZYER ALMAZ
Reddetti VEYA süresinde kabul etmediYER ALMAZYER ALIR
B) İtirazı satıcı başlattı, cevap alıcıda (4.4)Alıcının sanal BASatıcının sanal BS
Kabul (≤ izleyen ayın 15'i)YER ALMAZYER ALMAZ
Reddetti VEYA süresinde kabul etmediYER ALIRYER ALMAZ

e-Fatura V1.2 ile ince fark: e-Arşiv V1.1'de "red" ve "süresinde onaylamama" tek cümlede birleştirilmiştir; e-Fatura V1.2'de ayrı ayrı yazılmıştır. Sonuç aynıdır.

İtiraz form alanları (e-Arşiv): İtiraz Belge Numarası · İtiraz Belge Tarihi · İtiraz Yöntemi (noter/taahhütlü mektup/telgraf/KEP) · Açıklama · "Uyarıyı Okudum" → "İtiraz Talebi Oluştur" (satır 291-308).

6.2 e-Arşiv Raporunda faturaIptal ve faturaItiraz

e-Arşiv Raporu şemasının 14 ana elemanından 6'sı iptal/itiraza ayrılmıştır: baslik, fatura, faturaIptal, faturaItiraz, mustahsilMakbuz, mustahsilMakbuzIptal, serbestMeslekMakbuz, serbestMeslekMakbuzIptal, serbestMeslekMakbuzuItiraz, bankReceipt, bankReceiptIptal, adisyon, adisyonIptal, zRapor.

faturaIptal — Kardinalite Seçimli (0..n):

AlanKardinaliteFormatÖrnek
faturaNoZorunlu (1)Alfa nümerik<earsiv:faturaNo>FGH2013000000001</earsiv:faturaNo>
iptalTarihiZorunlu (1)YYYY-AA-GG<earsiv:iptalTarihi>2013-09-02</earsiv:iptalTarihi>
toplamTutarZorunlu (1)Nümerik — vergi HARİÇ toplam<earsiv:toplamTutar>2000</earsiv:toplamTutar>

faturaItiraz — Seçimli (0..n), 5 alt alanın TAMAMI Zorunlu (1):

<faturaItiraz>
  <belgeNo>A1B2021000000000</belgeNo>            <!-- itiraz edilen e-Arşiv Fatura no -->
  <itirazBelgeTarihi>2006-05-04</itirazBelgeTarihi> <!-- TTK 18/3 belgesinin tarihi -->
  <itirazBelgeNo>itirazBelgeNo0</itirazBelgeNo>     <!-- TTK 18/3 belgesinin numarası -->
  <itirazYontemi>KEP</itirazYontemi>                <!-- Noter/taahhütlü mektup/telgraf/KEP -->
  <aciklama>aciklama0</aciklama>                    <!-- itiraz sebebi -->
</faturaItiraz>

Kaynak: e-Arsiv_Teknik_Kilavuzu_V.1.18_.txt (27.08.2025) satır 417-446, 1130-1235.


7. e-ARŞİV RAPORU

7.1 Dönem ve gönderim süresi — tarihsel üç kademe

"...e-Arşiv Raporlarını ... aylık olarak oluşturup takip eden ayın 15 inci günü saat 24:00'a kadar, 2018 Yılı Aralık Ayı e-Arşiv Raporunu 2/1/2019 gününün sonuna kadar, 1/1/2019 tarihinden itibaren ise; günlük dönemler halinde ve en geç izleyen günün sonuna kadar e-Arşiv uygulaması üzerinden Başkanlığa göndermeleri gerekmektedir." (satır 2027-2038)

31.08.2026 itibarıyla geçerli olan: GÜNLÜK dönemler halinde, en geç İZLEYEN GÜNÜN SONUNA kadar. Aylık/15'i rejimi tarihseldir, 2018 ve öncesine aittir.

7.2 Kim gönderir — PORTAL MUAFİYETİ

TarafRapor yükümlülüğü
e-Arşiv uygulamasına PORTAL haricindeki yöntemlerle dahil olan mükelleflerVAR
Bu uygulamalar kapsamında hizmet vermeye Başkanlıktan izin alan özel entegratörlerVAR
e-Arşiv uygulamalarına PORTAL yönteminden yararlanarak dahil olan mükelleflerYOK — "ayrıca rapor oluşturma ve bu raporları e-Arşiv uygulamasına gönderme, yükleme yükümlülükleri bulunmamaktadır"

7.3 İmza standardı — XAdES-A vs XAdES-BES

Nesneİmza standardı
e-Arşiv RAPORUXADES-A + zaman damgası
e-Arşiv FATURA belgesinin kendisiXADES-BES
e-Müstahsil Makbuzu belgesiXADES-BES
e-Adisyon belgesiXADES-BES
e-Serbest Meslek MakbuzuBu dosyada XADES-BES belirtilmemiştir; yalnızca "izinle PDF kullanılıyorsa PADES" hükmü vardır (satır 2156-2183)

"Elektronik Arşiv raporları 1/1/2019 tarihinden itibaren ... XADES-A standardı kullanılarak mali mühür/elektronik imza ile ve zaman damgasıyla imzalanarak e-Arşiv uygulaması üzerinden Başkanlığa gönderilmelidir." (satır 2016-2022)

7.4 SARJANLIK istisnası — ANLIK raporlama

"Anlık olarak düzenlenmesi gereken 'SARJANLIK' fatura tipindeki e-arşiv faturalara ait 'sarjAnlik' şemasında yer alan alanları içerecek şekilde hazırlanan e-Arşiv Raporunun, faturanın düzenlenmesi akabinde anlık olarak e-Arşiv uygulaması üzerinden Başkanlığa gönderilmesi gerekmektedir." (satır 2040-2045; V1.17 / 22.05.2024 ile gelmiştir)

SARJANLIK için günlük değil, fatura düzenlenir düzenlenmez ANLIK rapor. Ayrım: SARJ = elektrikli araç şarj istasyonunda haftalık düzenlenen fatura, SARJANLIK = anlık düzenlenen fatura — bu tanım UBL-TR_Kod_Listeleri_-_V_1.43_.txt satır 229-231'dedir (e-Arşiv Teknik Kılavuzunda geçmez).

7.5 Web servis teknik kısıtları

KonuKural
MetotlarsendDocumentFile, getBatchStatus, getUserList
sendDocumentFileDosya adı UUID formatında; dosya ziplenmiş; zip içinde aynı isimde XML; zipli dosyanın açık boyutu en fazla 100 MB (aşarsa rapor bölünür); XML eArsiv.xsd şemasına uygun
getBatchStatusGirdi = paket ID
getUserListGirdi = XML ya da CSV; zip içinde kullanıcı listesi döner
GüvenlikWSS; SOAP mesajındaki TimeStamp ve Body blokları mali mühür/NES ile imzalanır; signature key identifier = DirectReference; canonicalization = http://www.ws.org/2001/10/xml-exc-c14n# (tavsiye); signature method = http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 (zorunlu)
Entegratör geçişiAy sonu itibarıyla; o ayın paketleri bölünmeden eski entegratörle tamamlanmalıdır
Mükellef bildirimiÖzel entegratörler, hizmet verdikleri mükellefleri e-Fatura platformu HR-XML bildirimi ile Başkanlığa bildirir
Yaptırım"Bu zorunluluklara uymayan mükelleflere VUK'ta öngörülen hükümler uygulanacaktır."

7.6 Tebliğ dayanağı (509 SN VUK GT, V.8) ve FTP zorunluluğu

"e-Fatura ve e-İrsaliye gibi iletimini Başkanlığın yaptığı e-Belgeler dışındaki belgeleri düzenlemek üzere Başkanlıktan izin alan mükellefler ve özel entegratörler ... e-Belge (e-Arşiv Fatura, e-Bilet, e-Serbest Meslek Makbuzu, vb.) Raporunu elektronik sertifika ile zaman damgalı olarak imzalayarak ... Başkanlık sistemine aktarmak zorundadır." (satır 3109-3117)

Mantık: e-Fatura ve e-İrsaliye raporlanmaz, çünkü iletimini zaten GİB yapar. Raporlama, GİB'in görmediği belgeler içindir.

GİB, süre ve yöntemi değiştirmeye, sektörler ve mükellef grupları itibarıyla farklı veri aktarım süresi ve yöntemi belirlemeye yetkilidir (satır 3119-3122) — portal bu parametreleri konfigürasyondan okuyacak şekilde tasarlanmalıdır.

Ayrı ve EK zorunluluk — FTP ile iletim (e-Arsiv_Teknik_Kilavuzu_V.1.18_.txt bölüm 14, satır 2345-2371): belirlenecek sektör/mükellef gruplarına e-Arşiv Faturaların kendisinin (rapor değil) ftp ile gönderilmesi zorunlu kılınabilir. Tetikleyiciler: entegrasyon yöntemi kullananlara yazılı bildirim; özel entegrasyon kullananlar için özel entegratörlerine yazılı bildirim; veya ebelge.gib.gov.tr duyurusu. FTP kullanıcı kodu/şifre: ftpdestek@gelirler.gov.tr.

"Erişim ve raporlama gereklerinin yerine getirilmiş olması, mükellefin e-Belgeye konu belgelerinin muhafazası ve ibrazı ödevlerini ortadan kaldırmaz."


8. IADE FATURASI

8.1 RED mi IADE mi — ayrım kriteri

DurumKoşulBelge
REDFatura henüz defterlere kaydedilmeden; eksik/yanlış/hatalı veya satış anlaşması nedeniyleRED uygulama yanıtı (yeni fatura YOK)
IADEFatura alıcı veya satıcı tarafından YASAL DEFTERLERE KAYDEDİLDİKTEN SONRA ortaya çıkan nedenlerle malın tümü veya belirli kalemlerinin iadesiIADE uygulama yanıtı + İADE FATURASI (alıcı düzenler)

"Faturanın alıcı veya satıcı tarafından yasal defterlere kaydedilmesinden sonra ortaya çıkan nedenlerden dolayı malın tümünün ya da belirli kalemlerinin iade edilmesi halinde alıcı, malın iade nedenlerini de yazdığı 'IADE' uygulama yanıtını iade faturası ile birlikte düzenleyerek satıcıya gönderir."

Kod Listeleri V1.43 §1.4: "...bir malın iadesi amacıyla alıcı tarafından düzenlenen faturalar ise 'IADE' değerini ... alacaktır."

8.2 İade faturasının özellikleri

#Kural
1Alıcı düzenler — fatura yönü tersine döner (eski alıcı → satıcı konumuna geçer)
2Tamamıyla yeni bir faturadır
3cbc:InvoiceTypeCode = IADE
4Genel açıklamalara (cbc:Note) yazılacaklar: iade edilen mala ait satış faturasının TARİHİ, NUMARASI, ETTN'si ve İADE NEDENİ
5İade faturasına tekrar UY gönderilerek KABUL/RED yapılamaz — harici yollardan
6Satıcı, iade faturası ile birlikte UY'yi yasal saklama müddetince muhafaza eder

InvoiceTypeCodeList — tam liste (20 değer, UBL-TR_Codelist.xml satır 10): SATIS, IADE, TEVKIFAT, TEVKIFATIADE, ISTISNA, OZELMATRAH, IHRACKAYITLI, SGK, KOMISYONCU, HKSSATIS, HKSKOMISYONCU, KONAKLAMAVERGISI, SARJ, SARJANLIK, TEKNOLOJIDESTEK, YTBSATIS, YTBIADE, YTBISTISNA, YTBTEVKIFAT, YTBTEVKIFATIADE

İade karakterli 4 kod — IADEInvioceCheck'in hedefi: IADE, TEVKIFATIADE, YTBIADE, YTBTEVKIFATIADE.

8.3 IADEInvioceCheck — schematron tam metni

<sch:rule abstract="true" id="IADEInvioceCheck">
  <sch:assert test="not(cbc:InvoiceTypeCode = 'TEVKIFATIADE' or cbc:InvoiceTypeCode = 'IADE' or cbc:InvoiceTypeCode = 'YTBIADE' or cbc:InvoiceTypeCode = 'YTBTEVKIFATIADE') or (count(cac:BillingReference/cac:InvoiceDocumentReference) &gt; 0 and count(cac:BillingReference/cac:InvoiceDocumentReference[(cbc:DocumentTypeCode='İADE' or cbc:DocumentTypeCode='IADE') and string-length(normalize-space(cbc:ID)) = 16 ]) = count(cac:BillingReference/cac:InvoiceDocumentReference))">IADE, TEVKIFATIADE ve YTBIADE fatura tiplerinde iade bilgilerini içeren cbc:DocumentTypeCode değeri IADE ve 16 haneli ID değeri olan iade fatura sayısı kadar cac:BillingReference/cac:InvoiceDocumentReference elemanı içermelidir.</sch:assert>
</sch:rule>

Kaynak: UBL-TR_Common_Schematron.xml satır 361-363; UBL-TR_Main_Schematron.xml satır 160 (inv:Invoice bağlamına extend).

Mantıksal ayrıştırmaInvoiceTypeCode ∈ {IADE, TEVKIFATIADE, YTBIADE, YTBTEVKIFATIADE} ise iki şart birlikte sağlanmalıdır:

ŞartİfadeAnlamı
1count(cac:BillingReference/cac:InvoiceDocumentReference) > 0En az bir referans — ZORUNLU (senaryo kılavuzundaki "ilişki kurulabilir" ifadesinin aksine)
2filtrelenmiş sayı = toplam sayıHER InvoiceDocumentReference için: cbc:DocumentTypeCode = 'İADE' veya 'IADE' VE normalize-space(cbc:ID) uzunluğu TAM 16

Portal için 5 kritik çıkarım:

  1. cbc:DocumentTypeCode = IADE — belge tipi FATURA DEĞİL.
  2. cbc:ID tam 16 hane; baştaki/sondaki boşluklar normalize-space ile temizlenir.
  3. Birden fazla faturanın iadesi tek iade faturasında yapılabilir; ancak HEPSİ 16 haneli + DocumentTypeCode=IADE olmak zorundadır — bir tanesi bile bozuksa tüm fatura reddedilir.
  4. TEVKIFATIADE ve YTBTEVKIFATIADE de kapsamdadır (hata mesajı metninde YTBTEVKIFATIADE yazmasa da test ifadesinde vardır).
  5. Kural 28.01.2025 öncesinde YOKTU. Eski kayıtların yeniden gönderimi planlanıyorsa migrasyon gerekir.

Değişim geçmişi (History.txt — düzeltilmiş):

Tarih bloğuDeğişiklik
20250128"IADEInvioceCheck eklendi." (ilk kez)
20250905"IADEInvioceCheck güncellendi."
20251209"IADEInvioceCheck güncellendi." (YTBTEVKIFATIADE, InvoiceTypeCodeList ve YatirimTesvikEArsivInvoiceTypeCodeList güncellemeleriyle birlikte)
20260109"IADEInvioceCheck güncellendi." (IDIS eklenmesiyle birlikte)

8.4 Referans zinciri — cac:BillingReference/cac:InvoiceDocumentReference

"Fatura sürecindeki diğer ilgili fatura dokümanlarına referans vermek için kullanılır. Örneğin iade faturalarında iade edilen faturaya ilişkin referans bilgisi bu elmanın altındaki 'InvoiceDocumentReference' elemanına eklenir. ... InvoiceDocumentReference: Önceki ilişkili fatura belgelerine referans bilgisi girilir. Örneğin iade edilen faturaya referans bu eleman ile verilir." (UBL-TR_Ortak_Elemanlar_-_V_0.7_.txt satır 533-563)

BillingReference alt elemanları — 8 adet: InvoiceDocumentReference, SelfBilledInvoiceDocumentReference, CreditNoteDocumentReference, SelfBilledCreditNoteDocumentReference, DebitNoteDocumentReference, ReminderDocumentReference, AdditionalDocumentReference (hepsi Seçimli 0..1) + BillingReferenceLine (Seçimli 0..n). BillingReference'ın Invoice içindeki kardinalitesi: Seçimli (0..n) (UBL-TR_Fatura_-_V_1.0_.txt satır 640).

Güncel schematron'a uygun DOĞRU kullanım:

<cbc:ProfileID>TEMELFATURA</cbc:ProfileID>       <!-- TICARIFATURA OLAMAZ -->
<cbc:InvoiceTypeCode>IADE</cbc:InvoiceTypeCode>
<cbc:Note>Satış faturası: ABC2026000000001, 2026-08-15, ETTN F47AC10B-58CC-4372-A567-0E02B2C3D479. İade nedeni: ürün istenen vasıfta değildir.</cbc:Note>
<cac:BillingReference>
   <cac:InvoiceDocumentReference>
      <cbc:ID>ABC2026000000001</cbc:ID>                     <!-- TAM 16 HANE -->
      <cbc:IssueDate>2026-08-15</cbc:IssueDate>
      <cbc:DocumentTypeCode>IADE</cbc:DocumentTypeCode>     <!-- ZORUNLU: IADE veya İADE -->
   </cac:InvoiceDocumentReference>
</cac:BillingReference>

KILAVUZ–SCHEMATRON ÇELİŞKİSİ 1 (schematron esastır): Ticari Fatura Senaryosu V0.3 satır 1157-1164'teki GİB örneği <cbc:DocumentType> FATURA</cbc:DocumentType> kullanır ve cbc:DocumentTypeCode hiç yoktur. GİB'in kendi örneği kendi IADEInvioceCheck kuralından geçemez.

8.5 ÇELİŞKİ — IADE faturası TICARIFATURA profilinde DÜZENLENEMEZ

<!-- InvoiceTypeCodeCheck, UBL-TR_Common_Schematron.xml satır 176 -->
<sch:assert test="not(cbc:InvoiceTypeCode='IADE') or cbc:ProfileID='TEMELFATURA' or cbc:ProfileID='EARSIVFATURA' or cbc:ProfileID='ILAC_TIBBICIHAZ' or cbc:ProfileID='YATIRIMTESVIK' or cbc:ProfileID='IDIS' or cbc:ProfileID='KAMU'">Fatura tipi IADE iken fatura profili sadece TEMELFATURA , EARSIVFATURA, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS veya KAMU olabilir</sch:assert>

IADE tipi ile kullanılabilecek ProfileID — tam liste (6 adet): TEMELFATURA, EARSIVFATURA, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS, KAMU. TICARIFATURA bu listede YOKTUR.

KILAVUZ–SCHEMATRON ÇELİŞKİSİ 2 (schematron esastır): UBL-TR Ticari Fatura Senaryosu V0.3 (Mart 2016) bölüm 3.2.4'teki iade faturası örneği <cbc:ProfileID>TICARIFATURA</cbc:ProfileID> + <cbc:InvoiceTypeCode>IADE</cbc:InvoiceTypeCode> kullanır (satır 1145-1152). Bu örnek 24.08.2026 tarihli güncel paketin schematron kontrolünden GEÇEMEZ; zarf 1150 SCHEMATRON KONTROL SONUCU HATALI ile reddedilir. Kılavuz 2016, schematron 2026 tarihlidir; GİB kılavuzu güncellememiştir.

Portal iş kuralı (bu iki kısıtın birleşimi — kolayca gözden kaçar): Ticari fatura senaryosunda çalışan bir mükellef mal iadesi yaparken iki ayrı belge üretir ve bunların profilleri FARKLI olmak zorundadır:

BelgeZorunlu ProfileIDDayanak
İade FATURASI (InvoiceTypeCode=IADE)TEMELFATURA (veya EARSIVFATURA/ILAC_TIBBICIHAZ/YATIRIMTESVIK/IDIS/KAMU) — TICARIFATURA OLAMAZInvoiceTypeCodeCheck
IADE UYGULAMA YANITI (ResponseCode=IADE)TICARIFATURA veya IHRACATbaşkası OLAMAZApplicationResponseProfileIDCheck

Aynı kural bloğundaki diğer kısıtlar (satır 177-178):

  • ProfileID = ENERJIInvoiceTypeCode ∈ {SARJ, SARJANLIK}çift yönlü zorunluluk; yalnızca $type = 'efatura' (veya boş) iken uygulanır.
  • InvoiceTypeCode = TEKNOLOJIDESTEKProfileID mutlaka EARSIVFATURA.

8.6 Nihai tüketiciden iade

Nihai tüketici (mükellef olmayan) IADE tipli e-Fatura düzenleyemez. Mekanizma:

"Müşteri malı iade etmek isterse elektronik ortamda kendisine iletilen faturanın kâğıt çıktısını alır ve iadeye ilişkin bölümü doldurup imzalamak suretiyle mal ile birlikte malı satana geri gönderir. Bu suretle malı satana geri gönderilen bu belge satıcı tarafından düzenlenen GİDER PUSULASI YERİNE GEÇER." (509 SN VUK GT, IV.2.4.5, satır 1041-1044)

Ön koşul — e-Ticaret e-Arşiv Faturasında 6 zorunlu bilgi + fatura üzerinde "Bu satış internet üzerinden yapılmıştır." ifadesi:

#Zorunlu bilgi
1Satış işleminin yapıldığı web adresi
2Ödeme şekli
3Ödeme tarihi
4Mal satışlarında gönderiyi taşıyanın adı soyadı/unvanı ve VKN/TCKN'si
5Malın gönderildiği veya hizmetin ifa edildiği tarih
6İade bölümünde; malı iade edenin adı soyadı, adresi, imzası, iade edilen mala ilişkin cins, miktar, birim fiyat ve tutarı

İstisna: e-Fatura uygulamasına kayıtlı kullanıcılara internet üzerinden satış yapanlar, düzenleyecekleri e-Faturada "6 ncı madde hariç" yukarıdaki bilgilere yer verir — yani e-Fatura mükellefine yapılan satışta iade bölümü GEREKMEZ.

Elektronik alternatif — e-Gider Pusulası (e-Gider_Pusulasi_Teknik_Kilavuzu_V.1.0_.txt, 17.11.2025). Belge UBL-TR CreditNote formatındadır, bu yüzden InvoiceTypeCode değil CreditNoteTypeCode kullanılır:

<cbc:CreditNoteTypeCode>IADE</cbc:CreditNoteTypeCode>   <!-- Zorunlu(1); geçerli değerler: SATIS, IADE -->

"KDV mükellefi olmayanlardan satın alınan mal veya hizmetler için düzenlenecek e-Gider Pusulasında bu alana 'SATIS' yazılacaktır. Nihai tüketicilere satılan malların iadesi için düzenlenecek e-Gider Pusulasında bu alana 'IADE' yazılacaktır."

cac:BillingReference (§3.1.12) şema gereği Seçimli (0..n) olmakla birlikte içeriği zorunludur:

ID/@schemeIDDocumentDescriptionKullanım
FATURANOEARSIV_FATURAe-Arşiv Fatura ile yapılan satışın iadesi
OKCSERINOSATIS_FISIÖKC satış fişi ile yapılan satışın iadesi

Ek alanlar: yüz yüze iadede alıcının telefonuna gönderilen SMS ya da İADE KODU, kargo ile iadede İADE KODUContact/Name alanına SMS ya da IADEKODU, Contact/ID alanına kod, Contact/Telephone alanına telefon yazılır; alıcı adına başka biri iade ediyorsa AgentParty kullanılır.

Özet karar tablosu:

Alıcı kim?İade belgesi
e-Fatura kayıtlı mükellefAlıcı IADE tipli e-Fatura düzenler (ProfileID: TEMELFATURA/EARSIVFATURA/… — TICARIFATURA DEĞİL) + BillingReference zorunlu
Nihai tüketici / KDV mükellefi olmayan(a) Faturanın kâğıt çıktısının iade bölümü doldurulup imzalanır → gider pusulası yerine geçer, VEYA (b) satıcı e-Gider Pusulası (CreditNoteTypeCode=IADE) düzenler

9. Portal İçin Durum Makinesi ve Zamanlayıcı (Scheduler) Gereksinimleri

9.1 Zaman aşımı tablosu — tek bakışta

İşlemSüreBaşlangıç referansıSistem engelliyor mu?
e-Fatura KABUL/RED/IADE uygulama yanıtı8 günFaturanın alınmasıEVET (posta kutusu engellemeli)
e-Fatura iptal talebi oluşturma8 günAlıcıya iletilme tarihiEVET (açık hüküm)
e-Fatura iptal talebi onaylama8 günAlıcıya iletilme tarihiEVET (açık hüküm)
e-Fatura itiraz talebi onaylamaİzleyen ayın 15'i sonuFaturanın ait olduğu ayKorpusta engelleme ifadesi YOK
e-Arşiv / e-SMM iptal8 günBelgenin alıcıya iletilme tarihiAçık engelleme ifadesi YOK
e-Arşiv / e-SMM itiraz onaylamaİzleyen ayın 15'i sonuBelgenin ait olduğu ayKorpusta engelleme ifadesi YOK
e-Arşiv Raporu gönderimi (günlük)İzleyen günün sonuBelge düzenleme günüVUK cezası
e-Arşiv Raporu — SARJANLIKANLIKFatura düzenlenmesiVUK cezası
e-İrsaliye yanıtı (kıyas)7 günİrsaliyenin gönderilmesiGönderici birim kabul etmemeli

e-İrsaliye kıyası (e-FaturaUygulamasiEntegrasyonKilavuzu-v1.10_.txt satır 323-326 ve 376): "İrsaliye entegrasyonuna geçenlerin gönderici birimi, irsaliye yollandıktan yedi gün sonra gelen irsaliye yanıtlarını kabul etmemelidir." — e-Fatura'nın 8 günü ile karıştırılmamalıdır; iki ayrı sayaç gerekir.

9.2 Veri modeli — durum makinesi için tutulması zorunlu alanlar

AlanNeden zorunlu
teslim_tarihi (alıcıya iletilme anı)8 günlük iptal/UY penceresinin tek başlangıç referansı; issue_date DEĞİL
belge_ait_oldugu_ayİtiraz onay penceresi (izleyen ayın 15'i) buradan hesaplanır
profile_id, invoice_type_codeİzin verilen işlem kümesini belirler (iptal portali kapsamı, IADE profil kısıtı, UY profil kısıtı)
envelope_id, son_durum_koduS_APR takibi; 1150/1160/… → yeniden gönderim, 1200 → başarı, 1235 → iptal edilmiş
uy_alindi_mi (idempotency bayrağı)İlk UY kazanır; ikinci UY reddedilmeli
iptal_talep_id, itiraz_talep_id, talep_durumuPortal talep yaşam döngüsü
rapor_gonderim_durumu, rapor_donemiGünlük e-Arşiv raporu takibi

9.3 Zamanlayıcı (scheduler) işleri

JobSıklıkGörev
SAPR_POLLDakikalıkBekleyen zarflar için sistem yanıtı sorgulama; 1200 alınmayanları yeniden kuyruğa alma; durum sorgusu ile 1220/1230/1235/1300 iç durumlarını çekme
UY_PENCERE_KAPATSaatlikteslim_tarihi + 8 gün geçen TICARIFATURA kayıtlarında UY gönderim/kabul butonunu pasifleştir, durumu ZIMNEN_KABUL yap
IPTAL_PENCERE_UYARIGünlükteslim_tarihi + 8 güne 2 gün kalan bekleyen iptal taleplerinde her iki tarafa uyarı
IPTAL_PENCERE_KAPATSaatlik8 günü aşan iptal talebi oluşturma ve onaylama denemelerini UI seviyesinde de blokla (GİB zaten reddeder; kullanıcı hatasını erken yakala)
ITIRAZ_15_UYARIGünlükbelge_ait_oldugu_ay + 1 ay, 15. gün yaklaşırken bekleyen itiraz taleplerinde uyarı — süresinde onaylamama sanal Bs/Ba profilini bozar ve KDV iadesinde risk üretir
EARSIV_GUNLUK_RAPORGünlük (gece)Bir önceki günün belgelerinden e-Arşiv Raporu üret, XAdES-A + zaman damgası ile imzala, sendDocumentFile ile gönder; zip açık boyutu 100 MB'ı aşarsa böl; PORTAL yöntemi kullanıcıları için ATLA
SARJANLIK_ANLIK_RAPOROlay tetiklemeliInvoiceTypeCode = SARJANLIK faturası düzenlenir düzenlenmez sarjAnlik şemalı raporu anlık gönder
RAPOR_BATCH_STATUS15 dakikalıkgetBatchStatus ile gönderilen paketlerin durumunu sorgula, başarısızları yeniden kuyruğa al
IPTAL_ITIRAZ_RAPORGünlükÖzel entegratör/entegrasyon kullanıcıları için e-Arşiv raporundaki faturaIptal / faturaItiraz elemanlarını üret ("İptal Raporu" / "İtiraz Raporu" yolu)

9.4 Gönderim öncesi doğrulama kontrol listesi (schematron'a düşmeden yakalanacaklar)

#KontrolKural
1cbc:ID tam 16 hane, ^[A-Z0-9]{3}20[0-9]{2}[0-9]{9}$InvoiceIDCheck
2InvoiceTypeCode=IADE ise ProfileID ∈ {TEMELFATURA, EARSIVFATURA, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS, KAMU}InvoiceTypeCodeCheck
3IADE/TEVKIFATIADE/YTBIADE/YTBTEVKIFATIADE ise ≥1 BillingReference/InvoiceDocumentReference, her birinde DocumentTypeCode ∈ {IADE, İADE} ve normalize-space(ID) uzunluğu 16IADEInvioceCheck
4UY'de ResponseCode ∈ {KABUL,RED,IADE} ise ProfileID ∈ {TICARIFATURA, IHRACAT}ApplicationResponseProfileIDCheck
5UY'de ResponseCode = S_APR ise ProfileID = UBL-TR-PROFILE-1 ve zarf SYSTEMENVELOPEApplicationResponseProfileIDCheck / PostBoxResponseCodeCheck
6UY'de tam 1 cac:DocumentResponse; LineResponse/Response içinde tam 1 cbc:DescriptionDocumentResponseCountCheck, DescriptionCountCheck
7KABUL/RED/IADE UY'sinde ProfileID != IHRACAT iken cac:Signature ve ext:UBLExtensions zorunluARSignatureCheck
8Sender/ReceiverParty'de schemeID VKN veya TCKN tam 1 adet; VKN ise PartyName/Name, TCKN ise Person/FirstName+FamilyName doluARPartyIdentificationPartyNamePersonCheck
9POSTBOXENVELOPE'ta DocumentReference içinde boş olmayan DocumentTypeCode ve DocumentTypePostBoxDocumentReferenceCheck
10ProfileID=ENERJIInvoiceTypeCode ∈ {SARJ, SARJANLIK}; TEKNOLOJIDESTEKEARSIVFATURAInvoiceTypeCodeCheck
11GUMRUKONAY yanıtında imza aranmaz (istisna); ProfileID=YOLCUBERABERFATURAGümrük kılavuzu satır 1032-1037

Doğrulanamayanlar

Hakem incelemesinde hiçbir bulgu REFUTED (çürütülmüş) çıkmamıştır. Aşağıdakiler, korpusta doğrudan hüküm bulunmadığı için çıkarım düzeyinde kalan veya korpustan yanıtlanamayan hususlardır.

#KonuDurum
11300 kodunun sistem yanıtı ile taşınması1300 BASARIYLA TAMAMLANDI, UBL-TR_Codelist.xml satır 43'teki AppResponseCodeType listesinde YOKTUR; Merkez birimin iç durumudur (Ek-2 satır 778-781) ve SYSTEMENVELOPE içinde S_APR ile taşınamaz. Portalde ancak durum sorgusu ile görülebilir.DOĞRULANAMADI — gelen zarftan okunabileceği doğrulanamamıştır
21235 kodunun açıklaması — Ek-2 sadece "1235 FATURA IPTAL'E KONU EDILDI" başlığını verir; "e-Fatura İptal Portalinden iptal edilmiş faturanın durumu" yorumu korpusta YOKTUR.DOĞRULANAMADI — makul çıkarım, birebir hüküm yok
31191 kodunun anlamıAppResponseCodeType listesinde vardır, Ek-2 durum kodu tablosunda tanımı YOKTUR.DOĞRULANAMADI
4UY gönderilmemesinin Ba/Bs etkisi — "8 gün geçti, UY gelmedi → fatura hem alıcının sanal Ba hem satıcının sanal Bs formunda yer alır" ifadesi korpusta UY bağlamında değil, yalnızca iptal talebinin reddi/onaylanmaması bağlamında geçer (İptal kılavuzu satır 231-233).DOĞRULANAMADI — çıkarımdır, doğrudan hüküm değildir
5IADEInvioceCheck'in e-Arşiv iade faturalarında geçerliliğiUBL-TR_Main_Schematron.xml satır 17'de <let name="type" value="efatura"/> sabittir; earsiv_schematron.xsl ise faturayı değil eArsivRaporu'nu doğrular ve IADEInvioceCheck orada yoktur.DOĞRULANAMADIProfileIDTypeEarchive ve InvoiceTypeCodeCheck'in EARSIVFATURA'ya izin vermesi nedeniyle makul, ancak açık hüküm yok
6e-Arşiv iptalinde sistem engellemesi — e-Fatura kılavuzunda "8 günü aşan sürelerde sistem talep oluşturulmasına ya da talebin onaylanmasına imkan vermemektedir" AÇIK hükmü varken, e-Arşiv V1.1'de böyle bir cümle YOKTUR; sadece "İptal işlemi her durumda 8 günlük süre içinde yapılmalıdır" denir.DOĞRULANAMADI — teknik engelleme olup olmadığı korpustan çıkarılamadı
7"İptal Raporu" / "İtiraz Raporu" şeması — e-Arşiv V1.1 bu raporlardan söz eder ama ayrı bir şema/servis tarif etmez. eArsivRaporu/faturaIptal ve faturaItiraz elemanları ile aynı şey olup olmadığı korpusta açıkça belirtilmemiştir.DOĞRULANAMADI — güçlü çıkarım, birebir ifade yok
8İtiraz talebi OLUŞTURMA süresi — e-Fatura İptal/İtiraz Kılavuzu V1.2, itiraz talebi oluşturma için (iptaldeki gibi) açık bir 8 günlük sistem kısıtı belirtmez; yalnızca TTK 18/3 itirazının 8 gün içinde yapılmış olması gerektiği ima edilir.DOĞRULANAMADI — portalin talebi ne zamana kadar kabul ettiği net değildir
9İptal talebi reddedilirse / süresi geçerse ne yapılacağı (yeni fatura mı, düzeltme mi) hiçbir kılavuzda tarif edilmemiştir; sadece sanal Ba/Bs sonucu belirtilmiştir.DOĞRULANAMADI
10e-SMM/e-MM iptali — 509 SSS "Mali mühür ya da NES ile imzalanan e-SMM/e-MM belgesi iptal edilemez. Ancak ... kanunun öngördüğü diğer bilgi ve belgelerle tevsik edilmesi durumunda kayıtlara alınmayabilir" der. Bu, e-Arşiv İptal/İtiraz Kılavuzu V1.1'in e-SMM için sistem üzerinden iptal öngörmesiyle gerilim içindedir; SSS'nin tarihi korpusta belirtilmemiştir.DOĞRULANAMADI — hangisinin güncel olduğu çözülemedi
11e-SMM'nin imza standardıe-Arsiv_Teknik_Kilavuzu_V.1.18_.txt bölüm 7 (Serbest Meslek Makbuzu Standardı, satır 2156-2183) XADES-BES'ten hiç söz etmez; yalnızca "izinle PDF kullanılıyorsa PADES" der. XADES-BES yalnızca e-Arşiv Fatura (2137-2138), e-Müstahsil Makbuzu (2200) ve e-Adisyon (2216) için belirtilmiştir.DOĞRULANAMADI — e-SMM için XAdES-BES bu dosyada belirtilmemiştir
12UBLVersionID / CustomizationID schematron dayatması — Uygulama Yanıtı Kılavuzu 2.1/TR1.2, Ticari Fatura Senaryosu örnekleri 2.0/TR1.0 der. UBLVersionIDCheck / CustomizationIDCheck kurallarının tam metni bu incelemede okunmamıştır; portal implementasyonundan önce UBL-TR_Common_Schematron.xml içindeki bu iki kural ayrıca okunmalıdır.DOĞRULANAMADI — açık iş kalemi
13STDKODFATURA senaryosu — Kod Listeleri V1.43 §2.2 tablosunda yer alır; UBL-TR_Codelist.xml ProfileIDType değişkeninde YOKTUR. V1.43'ün PDF'ten çıkarılmış halinde sütun hizalaması bozuk olduğundan senaryo adı ↔ açıklama eşleşmesi metinden birebir okunamamaktadır.DOĞRULANAMADI
14UY tarih/sıra kontrolü — Uygulama Yanıtının IssueDate/IssueTime'ı ile faturanın IssueDate'i arasında sıralama veya süre kontrolü yapan bir schematron kuralı korpusta bulunamamıştır; TimeCheck Main Schematron'da yorum satırındadır (<!--<sch:extends rule="TimeCheck"/>-->).DOĞRULANAMADI — 8 günlük kontrol schematron değil, uygulama katmanı sorumluluğudur
15"İptal Gerekçesi" asimetrisi — e-Fatura İptal Portalinde bu alan YOKTUR, e-Arşiv portalinde ZORUNLUDUR. Asimetrinin nedeni korpusta açıklanmamıştır.DOĞRULANAMADI
16Nihai tüketici iadesi hakkında SSS — 509 Çok Sorulan Sorular dosyasında "iade" veya "gider pusulası" konulu hiçbir soru bulunmamaktadır (grep ile doğrulandı).DOĞRULANAMADI — SSS düzeyinde ek açıklama korpusta yoktur
17Ticari Fatura Senaryosunda süre hükmü — UBL-TR Ticari Fatura Senaryosu V0.3 (Mart 2016) dosyasında hiçbir gün/süre sınırı geçmemektedir (grep ile doğrulandı; yalnızca örnek faturanın 20 günlük ödeme vadesi geçer). 8 günlük süre yalnızca Entegrasyon Kılavuzu v1.10 ve İptal/İtiraz Kılavuzu V1.2'den türetilmiştir.Senaryo kılavuzu bu yönüyle EKSİK/ESKİdir

e-İrsaliye ve e-İrsaliye Yanıtı

Bu bölümdeki tüm kod listeleri ve sch:assert metinleri, 24.08.2026 tarihli e-Fatura paketindeki UBL-TR_Codelist.xml, UBL-TR_Common_Schematron.xml ve UBL-TR_Main_Schematron.xml dosyalarından alınmıştır. Kılavuzlar (UBL-TR İrsaliye V1.2 / Aralık 2018, UBL-TR İrsaliye Yanıtı V1.0 / Aralık 2017, Temel e-İrsaliye Senaryosu V0.3 / Nisan 2017, Ortak Elemanlar V0.7 / Nisan 2017) 2021–2026 arasında schematron'a eklenen zorunlulukları yansıtmaz. Çelişki halinde schematron esastır; çelişkiler §5'te tek tek listelenmiştir.


1. Senaryolar (ProfileID) ve Sevk İrsaliyesi Tipi (DespatchAdviceTypeCode)

1.1 ProfileID — TAM liste (3 değer)

<sch:let name="ProfileIDTypeDespatchAdvice" value="',TEMELIRSALIYE,HKSIRSALIYE,IDISIRSALIYE,'"/>
ProfileIDKod Listeleri V1.43 açıklamasıNe zaman kullanılırTetiklediği ek schematron kuralı
TEMELIRSALIYE"İrsaliye sürecini belirtir."Varsayılan; tüm normal sevkiyatlar
HKSIRSALIYE"Hal Kayıt Sistemi İrsaliye sürecini belirtir."5957 s. Kanun kapsamında sebze-meyve ticareti; HKS bildirimi gereken mallarDespatchAdviceHKSKunyeCheck
IDISIRSALIYE"İnşaat Demiri İzleme Sistemleri için düzenlenecek irsaliye sürecini belirtir."İDİS kapsamındaki demir teslimleriDespatchIdisSevkiyatNoCheck + DespatchIdisEtiketNoCheck

Kural ProfileIDTypeDespatchAdvice, Main Schematron'da yalnızca desp:DespatchAdvice context'ine bağlıdır.

Kritik: recp:ReceiptAdvice pattern'i ProfileID kontrolü YAPMAZ (yalnızca ReceiptAdviceTypeCodeCheck, ReceiptAdviceIDCheck, CustomizationIDCheck). İrsaliye Yanıtı'nın ProfileID'si schematron tarafından denetlenmez; buna rağmen kılavuz örneğinde <cbc:ProfileID>TEMELIRSALIYE</cbc:ProfileID> yazar — portal, yanıtı ilgili irsaliyenin ProfileID'si ile üretmelidir.

History.txt: ProfileIDTypeDespatchAdvice 20231228'de eklendi, 20260109'da güncellendi (IDISIRSALIYE bu tarihte geldi).

1.2 DespatchAdviceTypeCode — TAM liste (2 değer)

<sch:let name="DespatchAdviceTypeCodeList" value="',SEVK,MATBUDAN,'"/>
DeğerAnlamıFiili sevk zamanı kısıtıEk zorunluluk
SEVKDoğrudan elektronik ortamda düzenlenen e-İrsaliyeActualDespatchDate/Time >= IssueDate/IssueTime
MATBUDANÖnce matbu kağıt sevk irsaliyesi düzenlenmiş, sonra e-İrsaliyeye dönüştürülmüşFiili sevkin düzenleme tarihinden önce olabildiği TEK tipcbc:ID ve cbc:IssueDate dolu en az 1 adet cac:AdditionalDocumentReference
<sch:rule abstract="true" id="DespatchAdviceTypeCodeCheck">
  <sch:assert test="contains($DespatchAdviceTypeCodeList, concat(',',cbc:DespatchAdviceTypeCode,','))">Geçersiz cbc:DespatchAdviceTypeCode elemanı değeri...</sch:assert>
  <sch:assert test="not(cbc:DespatchAdviceTypeCode = 'MATBUDAN') or (count(cac:AdditionalDocumentReference[string-length(normalize-space(string(cbc:ID))) &gt; 0 and string-length(normalize-space(string(cbc:IssueDate))) &gt; 0 ]) &gt; 0)">DespatchAdviceTypeCode değeri 'MATBUDAN' iken cbc:ID ve cbc:IssueDate alanları dolu olan en az bir tane cac:AdditionalDocumentReference alanı olmalıdır.</sch:assert>
</sch:rule>

Kodlama notu: İlk assert eleman HİÇ YOKKEN de patlar — boş değerde concat(',','',',') = ',,' ve ',SEVK,MATBUDAN,' içinde ',,' yoktur. UBL-TR İrsaliye V1.2 bu alanı "Seçimli (0…1)" göstermesine rağmen schematron nezdinde fiilen ZORUNLUDUR.

MATBUDAN referans bloğu (kılavuz birebir: "ID alanına matbu belge seri - sıra no, IssueDate alanına matbu belge tarihi, DocumentType alanına MATBU sabit değeri yazılmalıdır."):

<cbc:DespatchAdviceTypeCode>MATBUDAN</cbc:DespatchAdviceTypeCode>
<cac:AdditionalDocumentReference>
  <cbc:ID>A-123456</cbc:ID>
  <cbc:IssueDate>2026-08-30</cbc:IssueDate>
  <cbc:DocumentType>MATBU</cbc:DocumentType>
</cac:AdditionalDocumentReference>

1.3 Senaryoya bağlı kalem zorunlulukları

SenaryoAlanXPathFormatKapsam
HKSIRSALIYEKUNYENODespatchLine/Item/AdditionalItemIdentification/ID[@schemeID='KUNYENO']tam 19 karakterHER DespatchLine
IDISIRSALIYESEVKIYATNODespatchSupplierParty/Party/PartyIdentification/ID[@schemeID='SEVKIYATNO']SE- veya ES- + 7 rakam, toplam 10 karakter (örn. SE-1345840)Belge başına ≥1
IDISIRSALIYEETIKETNODespatchLine/Item/AdditionalItemIdentification/ID[@schemeID='ETIKETNO']9 karakter: ilk 2 harf + 7 rakam (örn. CV0152457)HER DespatchLine'da ≥1
<sch:assert test="not(cbc:ProfileID='HKSIRSALIYE') or (count(cac:DespatchLine/cac:Item/cac:AdditionalItemIdentification/cbc:ID[@schemeID='KUNYENO' and string-length(normalize-space(string(text()))) = 19 ]) = count(cac:DespatchLine))">ProfileID='HKSIRSALIYE' iken, her cac:DespatchLine elemanı 19 karakterli 'KUNYENO' içermelidir.</sch:assert>

Uyarılar:

  • Kılavuz 15.26 yalnızca "künye numarasına yer verilmesi zorunlu" der; ProfileID=HKSIRSALIYE bağını AÇIKÇA KURMAZ — bağ yalnızca schematron'dadır.
  • İDİS Teknik Kılavuzu V1.0 yalnızca SE- ön ekini anlatır; ES- seçeneği yalnızca schematron'da vardır.
  • ETIKETNO hiçbir kod listesinde tanımlı DEĞİLDİR. AdditionalItemIdentificationIDType listesinin tamamı: ',KUNYENO,ILAC,TIBBICIHAZ,TELEFON,TABLET_PC,DIGER,'. Schematron İDİS için ETIKETNO'yu zorunlu kılar ama kod listesi onu tanımaz — kod listesi ile schematron arasında tutarsızlık. (SEVKIYATNO ise PartyIdentificationIDType listesinde gerçekten vardır.)
  • History.txt: DespatchAdviceHKSKunyeCheck 20231228; DespatchIdisEtiketNoCheck ve DespatchIdisSevkiyatNoCheck 20260109'da eklendi, DespatchIdisSevkiyatNoCheck 20260701'de güncellendi.

2. e-İrsaliye Yanıtı: KABUL / RED / KISMİ KABUL semantiği

2.1 UYARI — cbc:ResponseCode ReceiptAdvice belgesinde YOKTUR

Portal geliştirirken en sık yapılan hata budur. Korpustan doğrulanan gerçekler:

Yanlış varsayımGerçek
"Yanıtta cac:Response/cbc:ResponseCode = KABUL/RED yazarım"UBL-TR İrsaliye Yanıtı V1.0 içinde "Response" kelimesi 0 (sıfır) kez geçer. Belgenin 22 ana elemanı arasında Response yoktur.
"ResponseCodeType listesi irsaliye yanıtı içindir"',KABUL,RED,IADE,S_APR,GUMRUKONAY,' listesi e-Fatura Uygulama Yanıtı (ApplicationResponse) içindir; cac:DocumentResponse/cac:Response/cbc:ResponseCode yolunda kullanılır.
"ReceiptAdviceTypeCode kabul/red gösterir"Liste tek değerlidir: <sch:let name="ReceiptAdviceTypeCodeList" value="',SEVK,'"/>. Bu alan belge tipini gösterir, yanıt sonucunu değil. Boş/eksikse assert patlar → kılavuz "Seçimli (0…1)" dese de fiilen zorunludur.
"Red için schematron kuralı vardır"ReceiptAdviceRejectCheck kuralı güncel UBL-TR_Common_Schematron.xml ve UBL-TR_Main_Schematron.xml'de hiç geçmez (grep = 0). History.txt'de 20171002 altında yalnızca "ReceiptAdviceRejectCheck güncellendi" kaydı vardır; kuralın eklenme ve kaldırılma tarihleri korpusta yoktur.

Sonuç: KABUL / KISMİ KABUL / RED semantiği yalnızca ReceiptLine miktar alanları + serbest metinle ifade edilir.

2.2 Semantik → UBL alan eşlemesi

DurumUBL ifadesiAritmetik
TAM KABULHer satırda cbc:ReceivedQuantity = irsaliyedeki cbc:DeliveredQuantity; başka miktar alanı yok. Açıklama cbc:Note (örn. "Bütün ürünler kabul edildi.")Received = Delivered
KISMİ KABUL — hasarlı/reddedilencbc:ReceivedQuantity + cbc:RejectedQuantity + cbc:RejectReason (serbest metin)Örnekte Received teslim alınan toplam (20), Rejected bunun içinden reddedilen (2)
KISMİ KABUL — eksik gelencbc:ReceivedQuantity + cbc:ShortQuantityReceived + Short = Delivered (18 + 2 = 20)
FAZLA GELENcbc:ReceivedQuantity + cbc:OversupplyQuantityReceived fazlalığı İÇERİR (20 = 12 + 8)
GEÇ TESLİM ŞİKAYETİcbc:TimingComplaint (+ cbc:TimingComplaintCode)
TAM REDKorpusta makine-okunur RED kodu YOKTUR. Hukuki dayanak 509 IV.3.4; UBL alan eşlemesi tanımsız.DOĞRULANAMADI

ASİMETRİ UYARISI: Eksikte Received eksiği içermez (Received + Short = Delivered); fazlada Received fazlalığı içerir (Received zaten toplam). Bu asimetri portalde hesaplama hatasına yol açar. Bu kural örnek yorumudur — korpusta açık bir aritmetik kural metni yoktur ve schematron bu tutarlılığı denetlemez.

2.3 cac:ReceiptLine — TAM kardinalite (Ortak Elemanlar V0.7, 2.2.50)

ElemanKardinaliteAçıklama (birebir)
IDZorunlu(1)Kalem numarası girilir.
NoteSeçimli(0..n)Kalem açıklaması girilir.
ReceivedQuantitySeçimli(0..1)Teslim alınan mal adedi girilir.
ShortQuantitySeçimli(0..1)Eksik olan mal adedi girilir.
RejectedQuantitySeçimli(0..1)Kabul edilmeyen mal adedi girilir.
RejectReasonCodeSeçimli(0..1)Reddedilme sebebi kodu girilir.
RejectReasonSeçimli(0..n)Reddedilme sebebi açıklaması girilir.
OversupplyQuantitySeçimli(0..1)Fazla teslim alınan mal adedi girilir.
ReceivedDateSeçimli(0..1)Teslim alma tarihi girilir.
TimingComplaintCodeSeçimli(0..1)Geç teslim edilmesi durumunda şikayet kodlu olarak girilir.
TimingComplaintSeçimli(0..1)Geç teslim edilmesi durumunda şikayet açıklaması girilir.
OrderLineReferenceSeçimli(0..1)İlgili sipariş dokümanı kalemi bilgisi girilir.
DespatchLineReferenceSeçimli(0..1)İlgili irsaliye dokümanı kalemi girilir.
DocumentReferenceSeçimli(0..n)İlgili dokümanların bilgisi girilir.
ItemZorunlu(1)Teslim alınan mal bilgisi girilir.
ShipmentSeçimli(0..n)Mal birim fiyatı girilir.

Schematron'un recp:ReceiptAdvice/cac:ReceiptLine üzerindeki TEK kuralları: ItemNameCheck (Item/Name boş olamaz) ve DespatchLineIdCheck (cbc:ID dolu ve gerçek sayı). Miktar alanlarının hiçbiri schematron tarafından zorunlu tutulmaz.

2.4 TAM ÖRNEK XML — Kısmi kabul (hasarlı ürün bildirimi)

Kaynak: UBL-TR Temel e-İrsaliye Senaryosu V0.3, Bölüm 3.6 "Hasarlı Ürünleri Bildiren e-İrsaliye Yanıtı". Referans irsaliyedeki 4 kalem: 20 / 12 / 12 / 2 adet. Kalem 1'de 2, kalem 2'de 1 ürün hasarlı.

<recp:ReceiptAdvice xmlns:recp="urn:oasis:names:specification:ubl:schema:xsd:ReceiptAdvice-2"
                    xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
                    xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
  <ext:UBLExtensions>…XAdES mali mühür…</ext:UBLExtensions>
  <cbc:UBLVersionID>2.1</cbc:UBLVersionID>
  <cbc:CustomizationID>TR1.2.1</cbc:CustomizationID>
  <cbc:ProfileID>TEMELIRSALIYE</cbc:ProfileID>
  <cbc:ID>GIB2016000000016</cbc:ID>                <!-- 16 hane: ReceiptAdviceIDCheck -->
  <cbc:CopyIndicator>false</cbc:CopyIndicator>
  <cbc:UUID>F47AC10B-58CC-4372-A567-0E02B2C3D480</cbc:UUID>
  <cbc:IssueDate>2016-08-16</cbc:IssueDate>
  <cbc:IssueTime>15:03:52</cbc:IssueTime>
  <cbc:ReceiptAdviceTypeCode>SEVK</cbc:ReceiptAdviceTypeCode>
  <cbc:LineCountNumeric>4</cbc:LineCountNumeric>   <!-- Yanıtta ZORUNLU(1) -->

  <cac:OrderReference>
    <cbc:ID>GIB2016000000033</cbc:ID>
  </cac:OrderReference>

  <!-- İRSALİYE BAĞI: içine irsaliyenin ETTN'i (UUID) yazılır, belge NUMARASI değil -->
  <cac:DespatchDocumentReference>
    <cbc:ID>F47AC10B-58CC-4372-A567-0E02B2C3D479</cbc:ID>
    <cbc:IssueDate>2016-08-14</cbc:IssueDate>
  </cac:DespatchDocumentReference>

  <!-- İrsaliye NUMARASI da bildirilmek istenirse: -->
  <cac:AdditionalDocumentReference>
    <cbc:ID>GIB2016000000023</cbc:ID>
    <cbc:IssueDate>2016-08-14</cbc:IssueDate>
    <cbc:DocumentTypeCode>DespatchAdviceID</cbc:DocumentTypeCode>
    <cbc:DocumentType>DespatchAdvice ID</cbc:DocumentType>
  </cac:AdditionalDocumentReference>

  <cac:Signature>…</cac:Signature>
  <cac:DeliveryCustomerParty>…VKN/TCKN + PartyName veya Person…</cac:DeliveryCustomerParty>
  <cac:DespatchSupplierParty>…VKN/TCKN + PartyName veya Person…</cac:DespatchSupplierParty>

  <!-- Yanıtta ActualDELIVERYDate/Time; irsaliyede ActualDESPATCHDate/Time -->
  <cac:Shipment>
    <cbc:ID></cbc:ID>
    <cac:Delivery>
      <cbc:ActualDeliveryDate>2016-08-15</cbc:ActualDeliveryDate>
      <cbc:ActualDeliveryTime>15:03:52</cbc:ActualDeliveryTime>
    </cac:Delivery>
  </cac:Shipment>

  <!-- KALEM 1: 20 alındı, 2'si reddedildi -->
  <cac:ReceiptLine>
    <cbc:ID>1</cbc:ID>
    <cbc:ReceivedQuantity unitCode="C62">20</cbc:ReceivedQuantity>
    <cbc:RejectedQuantity unitCode="C62">2</cbc:RejectedQuantity>
    <cbc:RejectReason>2 tane ürün hasarlıdır</cbc:RejectReason>
    <cac:OrderLineReference><cbc:LineID>1</cbc:LineID></cac:OrderLineReference>
    <cac:DespatchLineReference><cbc:LineID>1</cbc:LineID></cac:DespatchLineReference>
    <cac:Item>
      <cbc:Name>Masa Üstü Bilgisayar</cbc:Name>
      <cac:SellersItemIdentification><cbc:ID>PNC1234</cbc:ID></cac:SellersItemIdentification>
    </cac:Item>
  </cac:ReceiptLine>

  <!-- KALEM 2: 12 alındı, 1'i reddedildi -->
  <cac:ReceiptLine>
    <cbc:ID>2</cbc:ID>
    <cbc:ReceivedQuantity unitCode="C62">12</cbc:ReceivedQuantity>
    <cbc:RejectedQuantity unitCode="C62">1</cbc:RejectedQuantity>
    <cbc:RejectReason>1 tane ürün hasarlıdır</cbc:RejectReason>
    <cac:OrderLineReference><cbc:LineID>2</cbc:LineID></cac:OrderLineReference>
    <cac:DespatchLineReference><cbc:LineID>2</cbc:LineID></cac:DespatchLineReference>
    <cac:Item>
      <cbc:Name>Notebook Bilgisayar</cbc:Name>
      <cac:SellersItemIdentification><cbc:ID>PNC1235</cbc:ID></cac:SellersItemIdentification>
    </cac:Item>
  </cac:ReceiptLine>

  <!-- KALEM 3: sorunsuz kabul — yalnızca ReceivedQuantity -->
  <cac:ReceiptLine>
    <cbc:ID>3</cbc:ID>
    <cbc:ReceivedQuantity unitCode="C62">12</cbc:ReceivedQuantity>
    <cac:OrderLineReference><cbc:LineID>3</cbc:LineID></cac:OrderLineReference>
    <cac:DespatchLineReference><cbc:LineID>3</cbc:LineID></cac:DespatchLineReference>
    <cac:Item>
      <cbc:Name>Notebook Çantası</cbc:Name>
      <cac:SellersItemIdentification><cbc:ID>PNC1236</cbc:ID></cac:SellersItemIdentification>
    </cac:Item>
  </cac:ReceiptLine>

  <!-- KALEM 4 (Yazıcı, ReceivedQuantity 2) da belgede mevcuttur -->
</recp:ReceiptAdvice>

Kalem düzeyi bağ: cac:DespatchLineReference/cbc:LineID ↔ irsaliyedeki cac:DespatchLine/cbc:ID.

EKSİK / FAZLA varyantları (Bölüm 3.7 — aynı belge iskeleti, yalnız satırlar değişir):

<!-- Kalem 1: irsaliyede 20, fiilen 18 alındı, 2 EKSİK -->
<cac:ReceiptLine>
  <cbc:ID>1</cbc:ID>
  <cbc:ReceivedQuantity unitCode="C62">18</cbc:ReceivedQuantity>
  <cbc:ShortQuantity unitCode="C62">2</cbc:ShortQuantity>
  …
</cac:ReceiptLine>

<!-- Kalem 3: irsaliyede 12, 20 alındı, 8 FAZLA -->
<cac:ReceiptLine>
  <cbc:ID>3</cbc:ID>
  <cbc:ReceivedQuantity unitCode="C62">20</cbc:ReceivedQuantity>
  <cbc:OversupplyQuantity unitCode="C62">8</cbc:OversupplyQuantity>
  …
</cac:ReceiptLine>

<!-- GEÇ TESLİM (Bölüm 3.5) -->
<cbc:Note>Bütün ürünler kabul edildi. Ürünler geç teslim edildi.</cbc:Note>
<cac:ReceiptLine>
  <cbc:ID>1</cbc:ID>
  <cbc:ReceivedQuantity unitCode="C62">20</cbc:ReceivedQuantity>
  <cbc:TimingComplaint>Ürünler geç gönderilmiştir. Faturada ceza uygulanacaktır.</cbc:TimingComplaint>
  …
</cac:ReceiptLine>

2.5 İrsaliye Yanıtı belge başlığı — kardinalite ve İrsaliye ile farkları

Elemanİrsaliye Yanıtı V1.0e-İrsaliye V1.2Not
UBLExtensionsZorunlu(1..1)Zorunlu(1..1)XAdES mali mühür/e-imza
UBLVersionIDZorunlu(1) = 2.1Zorunlu(1) = 2.1
CustomizationIDZorunlu(1) = TR1.2.1Zorunlu(1)CustomizationIDCheck: TR1.2 veya TR1.2.1
ProfileIDZorunlu(1)Zorunlu(1)Yanıtta schematron kontrolü YOK
IDZorunlu(1)Zorunlu(1)Yanıt: uzunluk = 16 (regex yok). İrsaliye: ^[A-Z0-9]{3}20[0-9]{2}[0-9]{9}$
CopyIndicatorZorunlu(1)Zorunlu(1)asıl false, suret true
UUIDZorunlu(1)Zorunlu(1)UUIDCheck GUID regex
IssueDateZorunlu(1)Zorunlu(1)
IssueTimeSeçimli(0..1)Zorunlu(1)Fark
ReceiptAdviceTypeCodeSeçimli(0..1) → schematron fiilen zorunluTek değer: SEVK
DespatchAdviceTypeCodeSeçimli(0..1) → schematron fiilen zorunluSEVK / MATBUDAN
LineCountNumericZorunlu(1)Seçimli(0..1)Fark
DespatchDocumentReferenceZorunlu(1)İçine irsaliye ETTN'i
SignatureZorunlu(1..n)Zorunlu(1..n)
ShipmentZorunlu(1)Zorunlu(1)
ReceiptLine / DespatchLineZorunlu(1..n)Zorunlu(1..n)

3. İrsaliye ↔ Fatura ve Yanıt ↔ İrsaliye bağları

BağUBL alanıKonumKardinaliteİçine ne yazılırSchematron kontrolü
Yanıt → İrsaliyecac:DespatchDocumentReference/cbc:IDReceiptAdvice başlığıZorunlu (1)İrsaliye ETTN'i (UUID) — "İrsaliye referansı için İrsaliye ETTN(UUID) bilgisi yazılmalıdır."Yok (varlık kontrolü bile yok)
Yanıt → İrsaliye no.cac:AdditionalDocumentReference + DocumentTypeCode=DespatchAdviceIDReceiptAdvice başlığıSeçimliİrsaliye belge NUMARASI (örn. GIB2016000000023)Yok
Yanıt kalemi → İrsaliye kalemicac:DespatchLineReference/cbc:LineIDReceiptLineSeçimli(0..1)DespatchLine/cbc:ID değeriYok
Fatura → İrsaliyecac:DespatchDocumentReferenceInvoice başlığıSeçimli (0…n)Örneklerde irsaliye NUMARASI (123456, 180921)YOKDespatchDocumentReference kelimesi Main ve Common Schematron'da hiç geçmez
Fatura → Alındıcac:ReceiptDocumentReferenceInvoice başlığıSeçimli (0…n)Alındı belgesiYok
İrsaliye → Fatura (fatura önce kesilmişse)cac:AdditionalDocumentReferenceDespatchAdvice başlığıSeçimliFatura bilgileriYok

Cevap: Faturada irsaliye referansı ZORUNLU DEĞİLDİR — ne kılavuz kardinalitesi ne schematron zorunlu kılar. Referans olmaması belgeyi reddettirmez.

Ters yön (Kılavuz 15.3): "Malın fiilli sevkinden önce Fatura düzenlenmiş olması halinde, düzenlenecek e-İrsaliyede ilgili fatura bilgilerine de yer verilecektir. Bu durumda e-İrsaliye'nin 'AdditionalDocumentReference' alanında düzenlenmiş Fatura bilgilerine yer verilecektir. Düzenlenen fatura üzerinde ise ayrıca e-İrsaliye bilgilerine yer verilmeyecek olup, not/açıklama alanına malın daha sonra sevk edileceği ve e-İrsaliyesinin ayrıca düzenleneceği belirtilecektir."

Yanıt–İrsaliye tutarlılığı portalin sorumluluğundadır: ReceiptAdvice pattern'inde ProfileID, IssueDate, DespatchDocumentReference varlığı, miktar tutarlılığı, ID format regex'i ve imza kontrolü yoktur.


4. e-İrsaliyede ZORUNLU alanlar

4.1 Hukuki liste — 509 SN VUK GT IV.3.3

BentBilgi
ae-İrsaliyenin düzenlenme tarihi ve belge numarası
be-İrsaliyeyi düzenleyenin adı/soyadı, ticaret unvanı, adresi, vergi dairesi ve vergi kimlik numarası
cMüşterinin adı/soyadı, ticaret unvanı, varsa vergi dairesi ve vergi kimlik numarası, işyeri adresi ve farklı ise teslimat adresi
çTaşınan malın nevi, miktarı
dFiili sevk tarihi ile saat ve dakika olarak fiili sevk zamanı
eKarekod veya barkod (Başkanlıkça duyurulacak tarihten itibaren)

Kılavuz Bölüm 9'da 509'da OLMAYAN 2 madde daha vardır (kılavuzun kendi numaralandırma hatası nedeniyle iki adet "e)" bendi bulunur):

  • "e) Malı taşıyan aracın plaka ve şoför (ad-soyad/TCKN) bilgileri ya da taşımayı yapan kargo lojistik firmasının bilgileri (TCKN-VKN/Ad-Soyad)" → schematron'daki DespatchCarrierDriverCheck'in hukuki karşılığı
  • "f) e-İrsaliye Teknik Kılavuzlarında belirlenen diğer bilgiler"

Kılavuzun 15.32 bölümündeki aynı liste bu iki maddeyi içermez (kılavuz içi tutarsızlık).

Yaptırım: "Genel Tebliğ ve UBL-TR İrsaliye Versiyon 1.2 dokümanında zorunlu olan alanların, oluşturulan e-İrsaliye elektronik dokümanında bulunmaması halinde Başkanlık e-İrsaliye uygulamasının şema-şematron kontrollerinden geçmesi mümkün bulunmamaktadır. Düzenlenen e-İrsaliyelerde söz konusu zorunlu alan bilgilerinin bulunmaması halinde bu belgeler geçersizdir."

4.2 Belge başlığı kardinaliteleri (UBL-TR İrsaliye V1.2)

ElemanKardinaliteNot
UBLExtensionsZorunlu(1..1)XAdES
UBLVersionID / CustomizationID / ProfileIDZorunlu(1)2.1 / TR1.2 \
IDZorunlu(1)3 hane alfanumerik + 13 hane müteselsil (ilk 4 hane yıl)
CopyIndicator / UUID / IssueDate / IssueTimeZorunlu(1)IssueTime SS:DD:SS
DespatchAdviceTypeCodeSeçimli(0…1) → schematron zorunlu
Note / LineCountNumeric / OrderReference / AdditionalDocumentReferenceSeçimli
SignatureZorunlu(1…n)
DespatchSupplierParty / DeliveryCustomerPartyZorunlu(1)
BuyerCustomerParty / SellerSupplierParty / OriginatorCustomerPartySeçimli(0..1)Zincir teslim: 15.1
ShipmentZorunlu(1)
DespatchLineZorunlu(1…n)

Kalem düzeyi schematron: DeliveredQuantityCheck (DeliveredQuantity dolu ve geçerli unitCode niteliği), ItemNameCheck (Item/Name dolu), DespatchLineIdCheck (ID dolu ve gerçek sayı).

4.3 Taşıma / teslimat zorunlulukları — SCHEMATRON TABLOSU

#AlanXPath (desp:DespatchAdvice altında)ZorunlulukFormat / kodKural
1Fiili sevk tarihicac:Shipment/cac:Delivery/cac:Despatch/cbc:ActualDespatchDateKoşulsuz ZORUNLU^\d{4}\-(0?[1-9]\|1[012])\-(0?[1-9]\|[12][0-9]\|3[01])$DespatchDateCheck
2Fiili sevk saaticac:Shipment/cac:Delivery/cac:Despatch/cbc:ActualDespatchTimeKoşulsuz ZORUNLUboş olamazDespatchTimeCheck (20210526)
3Teslimat semticac:Shipment/cac:Delivery/cac:DeliveryAddress/cbc:CitySubdivisionNameZORUNLUboş olamazDespatchAddressCheck (20210526)
4Teslimat ili…/cac:DeliveryAddress/cbc:CityNameZORUNLUboş olamazDespatchAddressCheck
5Teslimat ülkesi…/cac:DeliveryAddress/cac:Country/cbc:NameZORUNLUboş olamazDespatchAddressCheck
6Posta kodu…/cac:DeliveryAddress/cbc:PostalZoneZORUNLU^((0[1-9])\|([1-7][0-9])\|(8[0-1]))[0-9]{3}$ — 5 hane, ilk 2 hane il plaka kodu 01–81DespatchAddressCheck
7Şoför veya taşıyıcıcac:Shipment/cac:ShipmentStage/cac:DriverPerson veya cac:Shipment/cac:Delivery/cac:CarrierPartyEn az biri ZORUNLU; ikisi de yoksa belge reddedilirDespatchCarrierDriverCheck (20210526)
8Şoför ad…/cac:DriverPerson/cbc:FirstNameDriverPerson varsa ZORUNLUboş olamazDespatchCarrierDriverCheck
9Şoför soyad…/cac:DriverPerson/cbc:FamilyNameDriverPerson varsa ZORUNLUboş olamazDespatchCarrierDriverCheck
10Şoför kimlik…/cac:DriverPerson/cbc:NationalityIDDriverPerson varsa ZORUNLUschemeID="TCKN" (yabancıda pasaport no)DespatchCarrierDriverCheck
11Çekici plakasıcac:Shipment/cac:ShipmentStage/cac:TransportMeans/cac:RoadTransport/cbc:LicensePlateIDŞoför varsa ZORUNLU, şoför yoksa aranmazschemeID + regex (aşağıda)LicensePlateIDCheck (20260701)
12Plaka schemeIDaynıZORUNLU (eleman varsa)PLAKA \YABANCIPLAKA
13Dorse/ekipmancac:Shipment/cac:TransportHandlingUnit/cac:TransportEquipment/cbc:IDSeçimli(0..n); varsa formatı doğrulanırDORSE \DORSEPLAKA \
14Taşıyıcı kimlikcac:Shipment/cac:Delivery/cac:CarrierParty/cac:PartyIdentification/cbc:IDCarrierParty varsaVKN=10 / TCKN=11 hane; schemeID PartyIdentificationIDType'ta olmalıPartyIdentificationTCKNVKNCheck + PartyIdentificationSchemeIDCheck (20210526)

Plaka kod listeleri ve regex'leri:

<sch:let name="LicensePlateIDSchemeIDType" value="',PLAKA,YABANCIPLAKA,'"/>
<sch:let name="TransportEquipmentIDSchemeIDType" value="',DORSE,DORSEPLAKA,YABANCIDORSE,YABANCIDORSEPLAKA,'"/>
schemeIDNeredeRegex
PLAKALicensePlateID^(0[1-9]\|[1-7][0-9]\|8[01])[A-Z]+[0-9]+$
YABANCIPLAKALicensePlateID^[A-Z0-9_-]+$
DORSETransportEquipment/ID^(0[1-9]\|[1-7][0-9]\|8[01])[A-Z]+[0-9]+$
DORSEPLAKATransportEquipment/ID^(0[1-9]\|[1-7][0-9]\|8[01])[A-Z]+[0-9]+$
YABANCIDORSETransportEquipment/ID^[A-Z0-9_-]+$
YABANCIDORSEPLAKATransportEquipment/ID^[A-Z0-9_-]+$

PLAKA regex'inin pratik anlamı: il kodu (01–81) + BÜYÜK HARF(ler) + RAKAM(lar), boşluksuz.

  • Geçerli: 06DR4077, 34AB1234, 01A1, 81ZZZ99999
  • Geçersiz: 06 DR 4077 (boşluk), 06dr4077 (küçük harf), 82AB123 (il 82), 00AB12, 34A123B (rakamdan sonra harf), 34-AB-1234
  • Portalde kaydetmeden önce boşlukları silip büyük harfe çevirin.

LicensePlateID ile TransportEquipment/ID farkı:

LicensePlateIDTransportEquipment/ID
Neyi tanımlarÇekici/motorlu aracın plakasıDorse / römork / taşıma ekipmanı
XPathShipment/ShipmentStage/TransportMeans/RoadTransport/LicensePlateIDShipment/TransportHandlingUnit/TransportEquipment/ID
Değer sayısı24
ÇoklanabilirlikRoadTransport içinde Zorunlu(1)TransportEquipment Seçimli(0..n) — birden çok dorse
Koşullu zorunlulukŞoför varsa ZORUNLUHiç zorunlu değil; varsa formatı doğrulanır

Doğru XML yapısı:

<cac:Shipment>
  <cbc:ID/>
  <cac:ShipmentStage>
    <cac:TransportMeans><cac:RoadTransport>
      <cbc:LicensePlateID schemeID="PLAKA">06DR4077</cbc:LicensePlateID>
    </cac:RoadTransport></cac:TransportMeans>
    <cac:DriverPerson>
      <cbc:FirstName>Mehmet</cbc:FirstName>
      <cbc:FamilyName>Öztürk</cbc:FamilyName>
      <cbc:Title>Şoför</cbc:Title>
      <cbc:NationalityID schemeID="TCKN">14922266699</cbc:NationalityID>
    </cac:DriverPerson>
    <cac:DriverPerson><!-- Seçimli(0..n): ikinci şoför -->
      <cbc:FirstName>Mustafa</cbc:FirstName>
      <cbc:FamilyName>Öztürk</cbc:FamilyName>
      <cbc:Title>Şoför</cbc:Title>
      <cbc:NationalityID schemeID="TCKN">14922266600</cbc:NationalityID>
    </cac:DriverPerson>
  </cac:ShipmentStage>
  <cac:Delivery>
    <cac:DeliveryAddress>
      <cbc:CitySubdivisionName>Balgat</cbc:CitySubdivisionName>
      <cbc:CityName>Ankara</cbc:CityName>
      <cbc:PostalZone>06800</cbc:PostalZone>
      <cac:Country><cbc:Name>Türkiye</cbc:Name></cac:Country>
    </cac:DeliveryAddress>
    <cac:CarrierParty>…</cac:CarrierParty>
    <cac:Despatch>
      <cbc:ActualDespatchDate>2026-08-31</cbc:ActualDespatchDate>
      <cbc:ActualDespatchTime>09:00:00</cbc:ActualDespatchTime>
    </cac:Despatch>
  </cac:Delivery>
  <cac:TransportHandlingUnit>
    <cac:TransportEquipment><cbc:ID schemeID="DORSEPLAKA">06DR4088</cbc:ID></cac:TransportEquipment>
    <cac:TransportEquipment><cbc:ID schemeID="DORSEPLAKA">06DR4099</cbc:ID></cac:TransportEquipment>
  </cac:TransportHandlingUnit>
</cac:Shipment>

Şoför TCKN'si uydurulamaz (Kılavuz 15.34): "şoförün adı-soyadı ve TCKN bilgisinin (yabancı uyruklu şoförlerde şoförün pasaport numarası bilgisinin) e-İrsaliye ilgili elektronik belge alanında doğru şekilde yazılması zorunludur." → Şoför alanına 11111111111 YAZILAMAZ; bu değer yalnızca TCKN'sini paylaşmak istemeyen nihai tüketici ALICI içindir (15.33).

Taraf (Party) kuralları — PartyIdentificationPartyNamePersonCheck:

DurumZorunlu
VKN'li tarafTam 1 adet PartyIdentification/ID@schemeID="VKN" (10 hane) + cac:PartyName/cbc:Name dolu
TCKN'li tarafTam 1 adet …@schemeID="TCKN" (11 hane) + cac:Person/cbc:FirstName ve cbc:FamilyName dolu
İkisi birdenYASAK — belge reddedilir

Özel VKN/TCKN değerleri:

DeğerAnlamKaynak
5555555555Alıcı bilinmiyor → unvan alanına "muhtelif müşteriler"Kılavuz Bölüm 8
3900892152GİB e-İrsaliye Sanal Alıcı — alıcı e-İrsaliye kullanıcısı değilse zarf buraya gider. DocumentReceiverCheck bu VKN'yi özel olarak muaf tutarKılavuz Bölüm 8 + schematron
11111111111Nihai tüketici alıcı TCKN vermek istemiyor (ad-soyad yazılır)15.33
2222222222İhracat — alıcı Türkiye'de mukim değil; Sanal Alıcı'ya gönderilir15.29

5. KILAVUZ ↔ SCHEMATRON FARKLARI — TAM LİSTE

Aşağıdaki tablo, portalin kılavuza güvenerek üreteceği ve GİB'in reddedeceği her noktayı listeler. Sol sütun kılavuzun dediği, sağ sütun schematron'un dayattığıdır. Çelişkide schematron esastır.

#Alan / KonuKılavuz ne diyorSchematron ne dayatıyorEklenme (History.txt)
1cbc:DespatchAdviceTypeCodeUBL-TR İrsaliye V1.2: "Seçimli (0…1)"Fiilen ZORUNLU — eleman yok/boşsa contains(',SEVK,MATBUDAN,' , ',,') false döner ve assert patlar
2cbc:ReceiptAdviceTypeCodeİrsaliye Yanıtı V1.0: "Seçimli (0…1)"Fiilen ZORUNLU, tek geçerli değer SEVK
3cbc:ActualDespatchTimeKılavuz örneklerinde ve UBL-TR İrsaliye V1.2'de zorunlu tutulmazKOŞULSUZ ZORUNLU (DespatchTimeCheck)20210526
4cbc:ActualDespatchDateZorunlu tutulmazKOŞULSUZ ZORUNLU + YYYY-MM-DD regex (DespatchDateCheck)
5cac:DeliveryAddress bloğuOrtak Elemanlar V0.7: Delivery altında "Seçimli(0..1)". UBL-TR İrsaliye V1.2 ve Temel İrsaliye Senaryosu V0.3'teki HİÇBİR örnek XML'de DeliveryAddress YOKTUR (grep = 0)CitySubdivisionName + CityName + Country/Name + PostalZone dördü de ZORUNLU (DespatchAddressCheck)20210526
6cbc:PostalZoneFormat kuralı yok^((0[1-9])\|([1-7][0-9])\|(8[0-1]))[0-9]{3}$ — 5 hane, ilk 2 hane 01–8120210526
7Şoför veya taşıyıcı509 IV.3.3'te YOK; yalnızca Kılavuz Bölüm 9'un "e)" bendinde geçer (15.32'de yok)DriverPerson veya Delivery/CarrierParty'den en az biri ZORUNLU (DespatchCarrierDriverCheck)20210526
8Şoför alanlarıKılavuzda alan bazlı zorunluluk yokDriverPerson varsa FirstName + FamilyName + NationalityID üçü de dolu olmalı20210526
9Çekici plakasıZorunluluk beyanı yokŞoför varsa plaka ZORUNLU (LicensePlateIDCheck)20260701
10LicensePlateID/@schemeIDKod Listeleri V1.43'te LicensePlateID schemeID listesi YOKTUR (Bölüm 2.1 yalnızca PartyIdentification schemeID'leri)PLAKA \YABANCIPLAKA + iki ayrı regex
11TransportEquipment/ID/@schemeIDHiçbir kılavuzda açıklanmaz. Eski kılavuzlarda yalnızca DORSEPLAKA örnek olarak geçerDORSE \DORSEPLAKA \
12ProfileID=HKSIRSALIYE ↔ künye bağıKılavuz 15.26 yalnızca "künye numarasına yer verilmesi zorunlu" der, ProfileID bağını kurmazHKSIRSALIYE iken HER kalemde 19 karakterli KUNYENO20231228
13İDİS ETIKETNOKod Listeleri V1.43 Bölüm 2.3'te LİSTELENMEMİŞTİR (AdditionalItemIdentificationIDType = ,KUNYENO,ILAC,TIBBICIHAZ,TELEFON,TABLET_PC,DIGER,)IDISIRSALIYE iken her kalemde ≥1 ETIKETNO (9 karakter: 2 harf + 7 rakam)20260109
14İDİS SEVKIYATNO ön ekiİDİS Teknik Kılavuzu V1.0 yalnızca SE- ön ekini anlatırSE- veya ES- kabul edilir20260109, güncelleme 20260701
15Taraf kimliği + unvan/adKılavuzda birleşik kural yokVKN → PartyName/Name zorunlu; TCKN → Person/FirstName+FamilyName zorunlu; VKN ve TCKN birlikte YASAKDespatchAdvice: 20250128; ReceiptAdvice: 20250428
16İrsaliye Yanıtı cbc:ID formatıİrsaliye Yanıtı V1.0: "Üç haneli alfanumerik birim kod + 13 haneli müteselsil numara"Yalnızca uzunluk = 16 kontrol edilir, regex uygulanmaz (ReceiptAdviceIDCheck)
17NationalityID schemeIDİrsaliye Yanıtı V1.0'daki DriverPerson örneğinde schemeID eksiktirPortalde daima schemeID="TCKN" yazılmalı
18Fiili sevk ≥ düzenleme zamanıKılavuz Bölüm 10 + SSS 70 açıkça kural koyarSCHEMATRON'DA KODLANMAMIŞTIR — portal kendi kontrolünü yapmalıdır
19Fatura → irsaliye referansıFatura V1.0: Seçimli(0…n)Hiç kontrol edilmez (DespatchDocumentReference schematron'da geçmez)
20İrsaliye Yanıtı ProfileIDYanıt V1.0: Zorunlu(1), örnekte TEMELIRSALIYEreceiptadvice pattern'i ProfileID'yi hiç denetlemez
21Yanıtta RED509 IV.3.4 ve Kılavuz Böl. 12/14 red imkânını hukuken tanırNe kod alanı, ne kod listesi, ne kural var. ReceiptAdviceRejectCheck güncel schematron'da YOK
22Miktar tutarlılığıÖrneklerden çıkarılabilirHiçbir aritmetik kural yokDelivered ile Received/Short/Oversupply arası denetlenmez
23Alıcı–zarf eşleşmesiKılavuzda yokDocumentSenderCheck / DocumentReceiverCheck; 3900892152 özel muaf

Ana kural: Kılavuz örnek XML'lerini kopyalayan bir portal, DeliveryAddress ve ActualDespatchTime eksikliği nedeniyle belgeyi doğrudan reddettirir.


6. e-İrsaliye Yanıtı süresi, iptal ve itiraz

6.1 Yanıt süresi ve teknik kısıtlar

KonuKural
Kim gönderire-İrsaliyeyi ALAN taraf (DeliveryCustomerParty) → düzenleyene. "e-İrsaliye Yanıtı alıcı tarafından malların sağlayıcısına gönderilir."
Zorunlu muHAYIR. "irsaliye yanıtı belgesinin düzenlenmesi bir zorunluluk olmayıp sadece mükelleflerimize sunulan bir imkan niteliğindedir." (Kılavuz Böl. 12) / "İrsaliye yanıtı gönderilmesi isteğe bağlıdır." (Entegrasyon Kılavuzu v1.10)
Süre7 GÜN
Yanıt sayısıİrsaliye başına en fazla 1. "Bir irsaliye için birden fazla irsaliye yanıtı geldiği durumlarda gelen ilk irsaliye yanıtı kabul edilmeli, diğer irsaliye yanıtları kabul edilmemeldir."
Geç yanıtGönderici birim "irsaliye yollandıktan yedi gün sonra gelen irsaliye yanıtlarını kabul etmemelidir." Posta kutusu: "Yedi günden sonra irsaliye yanıtı gönderilmesi engellenmelidir."
Yanıt verilmezse"Sistemsel olarak 7 gün içinde herhangi bir yanıt dönülmemiş e-İrsaliye'lere konu malların alıcıları tarafından tam olarak teslim alındığı ve satıcıları tarafından bu malların tamamı için fatura düzenleneceği kabul edilmektedir." (15.24 / 15.25)
Fatura süresiyle bağSSS 62: "e-İrsaliye yanıtı süresi fatura düzenleme süresi olan 7 günlük süreyi aşamaz."

Sürenin BAŞLANGICI korpusta ÇELİŞKİLİDİR (portal implementasyonunda kritik):

KaynakBaşlangıç
e-İrsaliye Uygulama Kılavuzu 1.2, Bölüm 12"e-İrsaliye üzerinde yazan fiili sevk tarihinden itibaren 7 gün"
e-Fatura Entegrasyon Kılavuzu v1.10 — posta kutusu"irsaliyeyi aldıktan sonra yedi gün içerisinde"
e-Fatura Entegrasyon Kılavuzu v1.10 — gönderici birim"irsaliye yollandıktan yedi gün sonra" gelenler reddedilir
509 SSS 62soru metni "irsaliye oluşturulduktan kaç gün sonraya kadar"

Hangisinin bağlayıcı olduğu korpustan çözülemez → portal en dar pencereyi (fiili sevk tarihi) esas almalı, ama 4 tarihi de saklamalıdır.

Zarf katmanı:

ZARF TÜRÜBELGE TÜRÜ
SENDERENVELOPEFATURA (INVOICE), IRSALIYE (DESPATCHADVICE)
POSTBOXENVELOPEUYGULAMA YANITI (BAPR), IRSALIYEYANITI (RECEIPTADVICE)
SYSTEMENVELOPESİSTEM YANITI (SAPR)
USERENVELOPEKULLANICI HESABI AÇMA (PUA) / İPTAL (CUA)
<sch:let name="EnvelopeType" value="',SENDERENVELOPE,POSTBOXENVELOPE,SYSTEMENVELOPE,USERENVELOPE,'"/>
<sch:let name="ElementType" value="',INVOICE,APPLICATIONRESPONSE,PROCESSUSERACCOUNT,CANCELUSERACCOUNT,DESPATCHADVICE,RECEIPTADVICE,CREDITNOTE,'"/>

Etiketler: e-İrsaliye Hizmeti → edespatch; e-İrsaliye Arşiv Hizmeti → archive_edespatch. Dikkat: iki alias listesi farklıdırReservedAliases içinde archive_edespatch yoktur (GIB vardır); UserEnvelopeAliases içinde archive_edespatch vardır (GIB yoktur).

Merkez kontrolü: "İrsaliye kullanıcısı olmayan mükellefler e-fatura kullanıcısı olsa dahi irsayile belgesi gönderip, alamazlar." (yazım hatası kaynakta böyledir) Kayıtlı kullanıcı listesi: https://ebelge.gib.gov.tr/eirsaliyekayitlikullanicilar.html

6.2 İPTAL — YOKTUR

"e-İrsaliye belgesinin iptali söz konusu değildir. Bununla birlikte malın fiili sevkinden önce, malın muhteviyatının ya da alıcının hatalı olduğunun tespiti durumunda, alıcı tarafından e-İrsaliye muhteviyatının tamamına 'irsaliye yanıtı' ile 'red' yanıtı verilebilir." (Kılavuz Bölüm 14)

RED'in 3 kümülatif şartı (509 IV.3.4):

  1. Zaman: malın FİİLİ SEVKİNDEN ÖNCE. "Malın fiili sevkinden sonra gönderilecek ret e-İrsaliye Yanıtları hükümsüz olup, bu durumda malı taşıyan/taşıttıran tarafından yeni bir e-İrsaliye düzenlenmesi gerekecektir."
  2. Kapsam: belgenin TAMAMI (kısmi red ≠ red; o kısmi kabuldür)
  3. Sebep: alıcının hatalı olması VEYA mal muhteviyatının tamamının hatalı olması

Kılavuz Böl. 12: "Bu durum ve süreler dışında yapılan retler hükümsüzdür."

DurumYapılacak
Fiili sevkten önce hataAlıcı RED yanıtı verir
Fiili sevkten sonra hata / alıcı kabul etmedi / adreste bulunamadı / mal geri getiriliyorMalı taşıyan/taşıttıran YENİ bir e-İrsaliye düzenler
Yeni e-İrsaliye teknik imkânsızlıkla düzenlenemiyor"e-İrsaliyeye Dönüştürülecektir" ibareli + şoför/plaka yazılı matbu irsaliye → izleyen gün MATBUDAN tipinde e-İrsaliye
Kısmi kabulde reddedilen malların iadesi (509 IV.3.4)Alıcı e-İrsaliye kullanıcısıysa e-İrsaliye, değilse matbu kağıt sevk irsaliyesi ayrıca düzenlenir

6.3 İTİRAZ — korpusta yoktur

e-Fatura_Iptal_Ihtar_Itiraz_Bildirim_Kilavuzu_V_1.2 ve e-Arsiv_Uygulamalari_Iptal_Ihtar_Itiraz_Bildirim_Kilavuzu_V.1.1 dosyalarında "irsaliye" kelimesi hiç geçmez (grep = 0). e-Fatura/e-Arşiv iptal-itiraz portalı e-İrsaliyeyi KAPSAMAZ. e-İrsaliyeye TTK 18/3 kapsamında harici itirazın nasıl yapılacağı korpusta düzenlenmemiştir.


7. Kağıt irsaliye ile birlikte kullanım ve MATBUDAN senaryosu

7.1 MATBUDAN akışı

  1. Üzerinde "e-İrsaliyeye Dönüştürülecektir" ibaresi + taşıyıcı (şoför ad-soyad-TCKN) + araç plakası yazılı matbu sevk irsaliyesi düzenlenir, sevkiyat başlatılır.
  2. En geç izleyen gün içinde aynı belge MATBUDAN türünde e-İrsaliye olarak düzenlenir.
  3. Bu e-İrsaliyede matbu belgeye ait tarih, belge seri-sıra no ve taşıyıcı ile araç plaka bilgileri ayrıca yer alır (AdditionalDocumentReference).
  4. "Bu şekilde belge düzenleme uygulaması istisnai bir uygulama olup teknik imkansızlık durumunun tevsik edilebilir mahiyette olması gerekmektedir."

Bu kural kılavuzda 5 ayrı yerde tekrar edilir: Bölüm 12 (malın geri getirilmesi), 15.11 (müşteri/miktar bilinmeyen sevkiyat), 15.37 ("Sıcak Satış"/Muhtelif Müşteriler), 15.38 (çiğ süt — "izleyen işgünü"), 15.39 (tarladan zirai ürün). Not: 15.37'de MATBUDAN e-İrsaliyesine yazılacak bilgi yalnızca "matbu sevk irsaliyesinin tarih ve seri-sıra no.su" olarak sayılır; taşıyıcı + plaka şartı Bölüm 12 ve 15.11'de geçer.

7.2 İbare farklılıkları — karıştırılmamalı

DurumİbareKaynak
Matbu önce, e-İrsaliye sonra (MATBUDAN)"e-İrsaliyeye Dönüştürülecektir"Böl. 12, 15.11, 15.37–15.39
Matbu ile e-İrsaliye aynı anda düzenleniyor"e-İrsaliyesi ayrıca düzenlenmiştir." (matbu belgeye e-İrsaliye belge no + düzenleme tarih/zamanı + taşıyıcı/plaka yazılır)15.5
SSS 71'deki varyant"e-İrsaliye Ayrıca Düzenlenecektir"SSS 71

7.3 Süre istisnaları

KonuSüre
Genel MATBUDAN dönüşümüEn geç izleyen gün
Çiğ süt (15.38)İzleyen işgünü
Havacılık yakıtı (15.12)En geç iki gün
Uygulamaya ilk kez dahil olma toleransı (509 VIII)e-İrsaliye: ayın sonuna kadar; e-Fatura/e-Arşiv: 7 nci günün sonuna kadar. Aynı işlem için yalnızca birinin düzenlenmesi şarttır.

7.4 Kağıt düzenlemenin serbest olduğu haller — 509 V.7

BentHal
aBaşkanlığın ve e-Belge uygulamalarına taraf diğer kamu kurumlarının bilgi işlem sistemlerinde arıza, kesinti, bakım
bİspat/tevsik kaydıyla, mükellefin ya da özel entegratörün sistemlerinde arıza, kesinti, planlı bakım (yazılı bildirimdeki süreyle sınırlı)
cİspat/tevsik kaydıyla, mali mührün veya e-imza aracının arızalanması/çalınması (yenisinin temini süresince)
çBakanlık/Başkanlık tebliğ, sirküler, teknik kılavuz ve duyurularında belgelerin e-Belge yerine kâğıt olarak düzenlenmesine ve e-Fatura yerine e-Arşiv Fatura düzenlenmesine izin verilmesi

"…gibi nedenlerle, kanunen düzenlenmesi gereken sürenin geçirilmemesi kaydıyla, kâğıt olarak düzenlenmesi … durumunda özel usulsüzlük cezası kesilmez." — "Mükelleften kaynaklanan diğer nedenler" bu kapsamda değerlendirilmez.

Ek prosedür (Kılavuz Böl. 11 + SSS 73): Durum süreklilik arz etmemeli, belge düzenlemeye başlamadan önce Başkanlığa tevsik edici bilgi/belgelerle yazılı bilgi verilmelidir. Süreklilik halinde entegrasyon izni iptal edilip GİB Portal hesabı otomatik açılabilir.

7.5 Diğer kağıt/e-İrsaliye kesişimleri

KonuKural
Matbaa baskılı kağıt nüsha (15.30)"e-İrsaliye kağıt nüshası olarak matbaa baskılı ve seri sıra no.lu belgelerin e-İrsaliye'de bulunması gerekli tüm bilgileri barındırması ve okunmasına engel teşkil etmemesi koşuluyla kullanılması mümkündür."
Mevcut matbu koçanlar (15.36)İmha zorunlu değil; arıza/kesinti/mücbir sebep için yeterli miktarda bulundurma zorunlu. İmha edilecekse vergi dairesine başvurulup tutanağa bağlanır.
Kağıt çıktının hukuki değeri (15.10)"e-İrsaliye belgesinin kağıt çıktısı, düzenleyicisi ve uygulamaya kayıtlı alıcı mükellefler açısından, e-İrsaliye olarak hüküm ifade etmemektedir." Muhafaza/ibraz elektronik ortamda; kağıt nüsha muhafazası zorunlu değil.
e-Fatura/e-Arşiv irsaliye yerine geçtiğinde (15.4, 15.22)4 kümülatif şart: (1) belge malın teslimi anında düzenlenecek, (2) düzenleme tarihi yanında saat ve dakika gösterilecek, (3) üzerinde "İrsaliye yerine geçer." ibaresi olacak, (4) kâğıt çıktısı satıcı/yetkilisince imzalanacak (e-Arşiv: "ıslak imza veya hazır imzalı olarak"). → Ayrıca e-İrsaliye düzenlenmesine gerek yoktur.
ÖKC bilgi fişi (15.22)e-Fatura/e-Arşiv Fatura BİLGİ FİŞİ, satıcı/yetkilisince imzalanmak şartıyla irsaliye yerine geçer; ayrıca matbu veya e-İrsaliye düzenlenmez.
Hiç sevk irsaliyesi aranmayan haller (15.20)Belediye, Et ve Balık Kurumu, Orman İşletmeleri, Etibank, Tekel İdareleri vb. kamu sevk belgeleri (malın cinsi, miktarı, alıcının adı-soyadı/unvanı, vergi dairesi ve hesap no bulunmak şartıyla); maden sevk fişleri; hamule senedi; konşimento; gümrük idarelerince verilen resmi belgeler
Boru hattı teslimleri (15.13–15.15)"…özel sayaçlarla ölçülen boru hatları ile yapılan teslimlerde, teslim eden ve teslim alan tarafından sevk irsaliye belgesinin düzenlenmesi mecburiyeti bulunmamaktadır."

8. Portal için validasyon kural seti

8.1 e-İrsaliye (DespatchAdvice) — ön doğrulama

#KontrolKoşulHata mesajı / davranış
D01cbc:CustomizationID ∈ {TR1.2, TR1.2.1}daimaBLOKE
D02cbc:ID ~ ^[A-Z0-9]{3}20[0-9]{2}[0-9]{9}$daimaBLOKE (InvoiceIDCheck irsaliyeye de uygulanır)
D03cbc:UUID ~ GUID regexdaimaBLOKE
D04cbc:ProfileID ∈ {TEMELIRSALIYE, HKSIRSALIYE, IDISIRSALIYE}daimaBLOKE
D05cbc:DespatchAdviceTypeCode ∈ {SEVK, MATBUDAN} ve boş değildaimaBLOKE
D06MATBUDAN → AdditionalDocumentReference (ID + IssueDate dolu) ≥ 1tip=MATBUDANBLOKE; DocumentType=MATBU yazılmalı
D07Shipment/Delivery/Despatch/ActualDespatchDate dolu + YYYY-MM-DDdaimaBLOKE
D08Shipment/Delivery/Despatch/ActualDespatchTime doludaimaBLOKE
D09Shipment/Delivery/DeliveryAddress/CitySubdivisionName doludaimaBLOKE
D10…/DeliveryAddress/CityName doludaimaBLOKE
D11…/DeliveryAddress/Country/Name doludaimaBLOKE
D12…/DeliveryAddress/PostalZone ~ ^((0[1-9])\|([1-7][0-9])\|(8[0-1]))[0-9]{3}$daimaBLOKE
D13ShipmentStage/DriverPerson veya Delivery/CarrierParty mevcutdaimaBLOKE
D14DriverPerson varsa FirstName + FamilyName + NationalityID dolukoşulluBLOKE
D15DriverPerson varsa RoadTransport/LicensePlateID (geçerli schemeID + boş değil) mevcutkoşulluBLOKE
D16LicensePlateID/@schemeID ∈ {PLAKA, YABANCIPLAKA}; PLAKA → ^(0[1-9]\|[1-7][0-9]\|8[01])[A-Z]+[0-9]+$; YABANCIPLAKA → ^[A-Z0-9_-]+$eleman varsaBLOKE. Kaydetmeden önce trim + upper
D17TransportEquipment/ID/@schemeID ∈ {DORSE, DORSEPLAKA, YABANCIDORSE, YABANCIDORSEPLAKA} + ilgili regexeleman varsaBLOKE
D18Her taraf: tam 1 adet VKN(10) veya TCKN(11); ikisi birden YASAKDespatch/Delivery/Buyer/CarrierBLOKE
D19VKN → PartyName/Name dolu; TCKN → Person/FirstName+FamilyName dolukoşulluBLOKE
D20Tüm PartyIdentification/ID/@schemeID değerleri PartyIdentificationIDType listesindedaimaBLOKE
D21Her DespatchLine: cbc:ID dolu ve sayı; DeliveredQuantity dolu ve unitCode dolu-geçerli; Item/Name doludaimaBLOKE
D22HKSIRSALIYE → her kalemde KUNYENO tam 19 karakterProfileID=HKSBLOKE
D23IDISIRSALIYE → DespatchSupplierParty/Party/PartyIdentification/ID[@schemeID='SEVKIYATNO'] SE-/ES- + 7 rakam, 10 karakterProfileID=IDISBLOKE
D24IDISIRSALIYE → her kalemde ≥1 ETIKETNO (2 harf + 7 rakam, 9 karakter)ProfileID=IDISBLOKE
D25ActualDespatchDate/Time >= IssueDate/IssueTimetip=SEVKBLOKE — schematron'da yok, portal yapmalı
D26MATBUDAN'da D25 uygulanmaztip=MATBUDANGeçir
D27Zarf gönderen VKN = DespatchSupplierParty VKNzarf üretimindeBLOKE
D28Zarf alan VKN = DeliveryCustomerParty VKN veya 3900892152zarf üretimindeBLOKE
D29Zarf tipi = SENDERENVELOPE, ElementType = DESPATCHADVICE, alias = edespatchdaimaBLOKE
D30Alıcı e-İrsaliye kayıtlı kullanıcı mı (e-Fatura kaydı yetmez)gönderim öncesiDeğilse → 3900892152 Sanal Alıcı'ya yönlendir
D31Şoför/araç/fiili sevk zamanı henüz belli değilse belge TASLAK olarak tutulur; onaylanmadan çıktı verilmez (15.31)UXUYARI
D32Özel entegratör iletiminde imzalama + GİB'e iletim azami 15 dakikaSLAUYARI/alarm

8.2 e-İrsaliye Yanıtı (ReceiptAdvice) — ön doğrulama

#KontrolHata
R01cbc:CustomizationID ∈ {TR1.2, TR1.2.1}BLOKE
R02cbc:ID uzunluğu tam 16BLOKE
R03cbc:UUID ~ GUID regexBLOKE
R04cbc:ReceiptAdviceTypeCode = SEVK (boş bırakılamaz)BLOKE
R05cbc:LineCountNumeric dolu (Yanıtta Zorunlu(1))BLOKE (kılavuz)
R06cac:DespatchDocumentReference/cbc:ID = ilgili irsaliyenin ETTN'i (GUID) — belge numarası DEĞİLBLOKE (schematron denetlemez)
R07cbc:ProfileID = ilgili irsaliyenin ProfileID'siUYARI (schematron denetlemez)
R08Her ReceiptLine: cbc:ID dolu ve sayı; Item/Name doluBLOKE
R09Her ReceiptLine/DespatchLineReference/LineID, irsaliyedeki bir DespatchLine/ID ile eşleşmeliBLOKE (portal kuralı)
R10Miktar alanları: ReceivedQuantity, ShortQuantity, RejectedQuantity, OversupplyQuantity negatif olamaz; unitCode irsaliyedekiyle aynıBLOKE (portal kuralı)
R11Eksik senaryosu: Received + Short = DeliveredUYARI — korpusta açık kural yok
R12Fazla senaryosu: Received - Oversupply = Delivered (Received fazlalığı içerir)UYARI — korpusta açık kural yok
R13RejectedQuantity > 0 iken RejectReason dolu olmalıUYARI (portal kuralı)
R14Aynı irsaliyeye ikinci yanıt üretilmesi engellenmeliBLOKE
R15Yanıt penceresi: fiili sevk tarihinden itibaren 7 gün; süre dolduysa gönderim engellenirBLOKE
R16Tam RED üretiliyorsa: fiili sevk zamanı geçmişse engelle (sevk sonrası retler hükümsüz)BLOKE
R17Tam RED: tüm kalemlerde RejectedQuantity = tam miktar + RejectReason; sonuç ayrıca cbc:Note ile açıkça yazılmalıUYARI — UBL eşlemesi korpusta tanımsız
R18Zarf tipi = POSTBOXENVELOPE, ElementType = RECEIPTADVICEBLOKE
R19Taraf kuralları (VKN/TCKN + PartyName/Person) yanıtta da geçerlidirBLOKE
R207 gün içinde yanıt gelmemişse: belge "tam kabul edilmiş" sayılır; faturalama tam miktar üzerinden tetiklenirİş kuralı

8.3 Fatura tarafı — irsaliye ilişkili kurallar

#Kural
F01cac:DespatchDocumentReference opsiyoneldir; zorunlu tutma. Kullanılacaksa örneklerde irsaliye NUMARASI yazılıdır
F02Fatura önce kesildiyse: fatura referansı irsaliyenin AdditionalDocumentReference'ına yazılır; faturaya irsaliye bilgisi yazılmaz, not alanına açıklama konur (15.3)
F03"İrsaliye yerine geçer" faturası: cbc:IssueTime mutlaka dolu; ibare cbc:Note ile. Özel UBL kod alanı yoktur
F04Konsinye: irsaliyeye "konsinye teslim" şerhi cbc:Note ile; fatura süresi konsinyinin sattığı tarihten ve fiilen satılan miktar üzerinden başlar (15.27)
F05Dökme/tartılamayan malda fatura fiili teslim miktarı baz alınarak düzenlenir (15.35)
F06Fatura süresi başlangıcı senaryoya göre değişir: normal teslim=teslim tarihi; muhtelif müşteriler=ilk sevk irsaliyesindeki teslim tarihi (15.11); sıcak satış=matbu irsaliye düzenlenme tarihi (15.37); numune/tecrübe-muayene=kabul tarihi (15.19)

8.4 Karekod üretimi (JSON)

Karekod alanıUBL kaynağı
vkntcknDespatchSupplierParty/PartyIdentification/ID (schemeID zorunlu)
avkntcknAlıcı PartyIdentification/ID (schemeID zorunlu)
senaryoProfileID
tipDespatchAdviceTypeCode
tarihIssueDate
noID
ettnUUID
sevktarihiShipment/Delivery/Despatch/ActualDespatchDate
sevkzamaniShipment/Delivery/Despatch/ActualDespatchTime
tasiyicivknShipment/Delivery/CarrierParty/PartyIdentification/ID
plakaShipment/ShipmentStage/TransportMeans/RoadTransport/LicensePlateID
{"vkntckn":"1111111111","avkntckn":"1111111111","senaryo":"TEMELIRSALIYE","tip":"SEVK",
"tarih":"2022-08-17","no":"IRS2022000000001","ettn":"04e35a51-7c00-45d0-968c-6f7c60834525",
"sevktarihi":"2022-08-17","sevkzamani":"09:32:13","tasiyicivkn":"1111111111","plaka":"06AA0606"}

Karekod tablosunda UBL adı olarak DespatchCustomerParty yazılıdır; gerçek eleman adı DeliveryCustomerParty'dir (kılavuz hatası).

8.5 Diğer iş kuralları

KonuKural
Çok modlu sevkiyat (15.28)Shipment altında Delivery çoklanarak her güzergah ayrı belirtilir; tek e-İrsaliye yeterli. Schematron assert'leri ilk eşleşmede geçse de her Delivery'de zorunlu alanları doldurun
Şubeler arası (15.2)DespatchSupplierParty ve DeliveryCustomerParty aynı VKN; ayırt edici bilgi DeliveryAddress'te
Zincir teslim (15.1)X üretici=DespatchSupplierParty, T müşteri=DeliveryCustomerParty, Z bayi=BuyerCustomerParty, Y toptancı=SellerSupplierParty
GTİP (15.9)Zorunlu değil; istenirse e-Fatura elemanları kullanılabilir
Fiyat (15.23)Zorunlu değil; DespatchLine/Shipment/GoodsItem/InvoiceLine/Price/PriceAmount ve Shipment/GoodsItem/ValueAmount ile taşınır
Kimin düzenleyeceği (SSS 65)Malı taşıyan/taşıttıran taraf (satıcı veya alıcı); kargo/lojistik firması deposundan sevkte lojistik firması da düzenleyebilir
Sevke başlama (Böl. 13)GİB Portal/Doğrudan Entegrasyon: 1000-Zarf Kuyruğa Eklendi veya 1100-Zarf İşleniyor yeterli. Özel Entegratör: belgenin entegratör sistemine iletilmesi yeterli (şema/şematron/imza kontrolleri eksiksiz yapılmış olmak kaydıyla). Alıcının sistem yanıtı beklenmez (15.8)

9. Doğrulanamayanlar

Bu alt bölümdeki maddeler korpustan doğrulanamamıştır; portalde varsayım olarak kodlanmamalı, GİB'e teyit ettirilmelidir.

#KonuDurum
1TransportEquipmentIDSchemeIDType / TransportEquipmentIDSchemeIDCheck eklenme tarihiDOĞRULANAMADI — Kural ve 4 değerli liste 24.08.2026 paketinde MEVCUTTUR (UBL-TR_Codelist.xml + UBL-TR_Common_Schematron.xml + UBL-TR_Main_Schematron.xml), ancak History.txt 20260701 kaydıyla biter ve içinde bu kural/liste hiç geçmez. "24.08.2026'da eklendi" ifadesi kanıtlanamaz; yalnızca bu pakette bulunduğu kesindir.
2DORSE ile DORSEPLAKA (ve YABANCIDORSE ile YABANCIDORSEPLAKA) arasındaki farkDOĞRULANAMADI — İkisi de aynı regex'i kullanır; hangi durumda hangisinin seçileceği hiçbir kılavuzda açıklanmaz. Kod Listeleri V1.43 Bölüm 2.1 yalnızca PartyIdentification schemeID'lerini listeler; LicensePlateID ve TransportEquipment schemeID listeleri kılavuzda yoktur. YABANCIPLAKA açıklaması da yoktur.
3e-İrsaliye Yanıtı ile TAM RED'in UBL alan eşlemesiDOĞRULANAMADI — 509 IV.3.4 ve Kılavuz Böl. 12/14 red imkânını hukuken tanır; ancak ne ResponseCode alanı, ne bir ReceiptAdviceTypeCode değeri (liste yalnız SEVK), ne schematron kuralı vardır. ReceiptAdviceRejectCheck güncel schematron'da yoktur (History.txt'de yalnızca 20171002 "güncellendi" kaydı var; eklenme ve kaldırılma tarihleri yok). "ReceivedQuantity=0 + RejectedQuantity=tam miktar" mı, yoksa yalnızca Note mi kullanılacağı belirlenemez.
4cbc:RejectReasonCode ve cbc:TimingComplaintCode kod listeleriDOĞRULANAMADIUBL-TR_Codelist.xml'de tanımlı değildir; Ortak Elemanlar V0.7 yalnızca "kodu girilir" der. Tüm örnekler serbest metin (RejectReason / TimingComplaint) kullanır.
5İrsaliye Yanıtı 7 günlük sürenin başlangıcıDOĞRULANAMADI — Korpus çelişkilidir: Kılavuz Böl. 12 "fiili sevk tarihinden", Entegrasyon Kılavuzu v1.10 "irsaliyeyi aldıktan sonra" (posta kutusu) / "irsaliye yollandıktan" (gönderici), SSS 62 "irsaliye oluşturulduktan". Hangisinin bağlayıcı olduğu çözülemez.
6Miktar aritmetiği (Received/Short/Oversupply ↔ Delivered)DOĞRULANAMADI — Ne kılavuzda ne schematron'da denetleyen/tanımlayan kural vardır. §2.2'deki formüller yalnızca örnek yorumudur.
7e-İrsaliye için ihtar/itiraz mekanizmasıKorpusta HİÇ YOKTUR — iptal-ihtar-itiraz kılavuzlarında "irsaliye" kelimesi geçmez. TTK 18/3 kapsamında harici itirazın nasıl yapılacağı düzenlenmemiştir.
8e-İrsaliyede karekod zorunluluğunun başlama tarihiDOĞRULANAMADI — 509 IV.3.3(e) ve Kılavuz Böl. 9(e) "ebelge.gib.gov.tr adresinden yapılan duyuruda belirtilecek tarihten itibaren" der; duyuru korpusta yoktur. Karekod Standardı Kılavuzu V.1.2 Kasım 2023 tarihlidir.
91000/1100 durum kodlarıyla sevke başlama imkânının 31.03.2023 sonrası devam edip etmediğiDOĞRULANAMADI — Kılavuz Bölüm 13 "7/9/2022 ila 31/3/2023 tarihleri arasında (bu tarihler dâhil)" geçici dönem için yazılmıştır; korpusta daha yeni bir e-İrsaliye Uygulama Kılavuzu sürümü yoktur (mevcut sürüm 1.2 / 07.09.2022).
10ProfileID=TEMELIRSALIYE iken HKS künyesi yazılıp yazılamayacağıDOĞRULANAMADI — Schematron buna izin verir; kılavuz 15.26 ProfileID bağını kurmaz.
11MATBUDAN tipinde bir e-İrsaliyeye verilecek yanıtın ReceiptAdviceTypeCode değeriDOĞRULANAMADI — Liste yalnızca SEVK içerir; MATBUDAN yanıtı için ayrı değer olup olmadığı açıklanmamıştır.
12İrsaliye Yanıtı cbc:ID formatıDOĞRULANAMADI — Schematron yalnızca 16 hane uzunluk kontrol eder; kılavuz "3 hane alfanumerik + 13 hane müteselsil" tarif eder. GİB'in fiilen hangisini uyguladığı bilinmiyor.
13Fiili sevk zamanı ≥ düzenleme zamanı kuralının GİB tarafında hangi katmanda denetlendiğiDOĞRULANAMADI — Schematron'da kodlanmamıştır; uygulama seviyesinde denetlenip denetlenmediği yazmaz. Portal kendi kontrolünü yapmalıdır.
14Görüntüleme XSLT'sinin zorunluluğu (İrsaliye ve İrsaliye Yanıtı için AdditionalDocumentReference/DocumentType='XSLT')DOĞRULANAMADI — Yalnızca İrsaliye Yanıtı V1.0'da örnek olarak gösterilmiştir; zorunluluk beyanı yoktur.
15DocumentDescriptionType listesindeki E-FATURA_IRSALIYE ve E-ARSIV_IRSALIYE değerlerinin kullanımıDOĞRULANAMADI — Hangi belgede, hangi alanda, hangi anlamda kullanılacağı hiçbir kılavuzda açıklanmaz; yalnızca UBL-TR_Codelist.xml'de liste elemanı olarak bulunur.
16VUK 231/5'in 31.08.2026 itibarıyla yürürlükteki metniDOĞRULANAMADI — Korpustaki tek alıntı 2022 tarihli kılavuzdadır ve "azami yedi gün" halini verir. "Bu süre faturanın ait olduğu ayın sonunu geçemez" türü bir ibare korpusta hiç geçmez. Korpustaki tek "ayın sonu" kuralı, 509 VIII'deki uygulamaya ilk geçiş toleransıdır; fatura düzenleme süresine ilişkin bir ayın-sonu kısıtı korpusta YOKTUR.
17e-İrsaliye hükümlerinin 2024 sonrası değişip değişmediği573 ve 589 Sıra No.lu Tebliğlerde "irsaliye" kelimesi geçmez; bu iki tebliğ üzerinden doğrulanamaz. 509'un dipnotlu konsolide metni esas alınmalıdır.
18e-İrsaliye Uygulaması Başvuru RehberiKorpusta yoktur; başvuru adımları doğrulanamaz.
19Kod Listeleri V1.43 metin çıkarımıPDF→metin dönüşümünde sütun kayması vardır (ör. "TEMELIRSALIYE — Özel Fatura sürecini belirtir." satırı). Kesin ProfileID listesi için UBL-TR_Codelist.xml esas alınmalıdır.

Ek: e-İrsaliye schematron kural bağlantıları

Kaynak: Karekod_Standardi_Kilavuzu_V.1.2_.txt

6.24 e-İrsaliye özel durumlar: çok modlu sevkiyat, şubeler arası, muhafaza, GTİP, fiyat

KonuKural
Çok modlu sevkiyat (15.28)"Aynı alıcıya gönderilen mallar için düzenlenecek e-İrsaliyede, karayolu ve demir yolu ile kat edilecek güzergahların e-İrsaliye'de 'Shipment' etiketinin altında 'Delivery' alanı çoklanarak her bir güzergahın ayrı ayrı belirtilmesi suretiyle, tek bir e-İrsaliye ile malın gönderiminin yapılması ve her bir sevkiyat sırasında bu e-İrsaliyenin ibraz edilmesi mümkündür."
Şubeler arası sevkiyat (15.2)"malı gönderen ve alan bilgileri olarak aynı mükellefiyet bilgilerine yer verilecek olup, malın teslimat adresi e-İrsaliye üzerinde ilgili alana girilecektir." → Ayırt edici bilgi DeliveryAddress'tedir.
Muhafaza/ibraz (15.10)"e-İrsaliye belgesi muhafaza süresi boyunca elektronik ortamda muhafaza edilmeli ve ilgili makamlara elektronik ortamda ibraz edilmelidir. Kağıt çıktı alınması ... zorunluluğu ve kağıt nüsha olarak muhafaza edilme zorunluluğu bulunmamaktadır." Ayrıca kağıt çıktı "e-İrsaliye olarak hüküm ifade etmemektedir."
Kağıt çıktının teslim-tesellüm belgesi olarak kullanımı (15.21)Kağıt çıktının alıcıya verilmesi zorunlu değil, satıcının muhafazası da zorunlu değil; teslim-tesellüm/tutanak amacıyla kullanılmasının önünde engel yok.
GTİP (15.9)"e-İrsaliyelerde GTİP numarasına yer verilmesi zorunluluğu bulunmamaktadır. Ancak ... e-Faturada kullanılan elemanlar e-İrsaliyede de mevcut bulunduğundan bu alanlar kullanılabilecektir."
Fiyat (15.23)"Mevzuatımızda sevk irsaliye belgesi düzenlenirken malların fiyatlarına yer verilmesi zorunluluğu bulunmamaktadır. ... Ancak sistemsel olarak, düzenlenecek e-İrsaliyelerde malların fiyat bilgilerine de yer verilmesi mümkündür." → DespatchLine/Shipment/GoodsItem/InvoiceLine/Price/PriceAmount ve Shipment/GoodsItem/ValueAmount
Kimin düzenleyeceği (SSS 65)"malın satıcı tarafından taşındığı ya da taşıttırıldığı durumda satıcı, alıcı tarafından taşındığı ya da taşıttırıldığı durumda alıcı tarafından e-İrsaliye düzenlenecektir. Bununla birlikte malın bir kargo ya da lojistik firması uhdesinde bulunan depolardan sevk edildiği durumlarda, e-İrsaliye malı taşıyan lojistik firması tarafından da düzenlenebilecektir."
Konsinye (15.27)e-İrsaliye düzenlenir ve "söz konusu irsaliye üzerine gönderimin konsinye teslim amacıyla gönderildiğinin şerh edilmesi gerekmektedir." (cbc:Note ile; ayrı kod alanı yoktur.)

Çok modlu sevkiyatta teknik uyarı: Schematron kuralları (DespatchDateCheck, DespatchAddressCheck) cac:Shipment/cac:Delivery/... XPath'ini kullanır; Delivery çoklandığında bu assert'ler herhangi bir eşleşmede geçer, ancak her Delivery'de zorunlu alanların doldurulması güvenlidir.

Kaynak: e-Irsaliye_Uygulama_Kilavuz_1.2_.txt; UBL-TR___rsaliye_-_V_1.2_.txt; 509_Cok_Sorulan__Sorular_.txt

6.25 Main Schematron'un e-İrsaliye / İrsaliye Yanıtı için bağladığı TÜM kurallar

<sch:pattern id="despatchadvice">:

Context (XPath)Extend edilen kurallar
desp:DespatchAdviceDespatchAdviceTypeCodeCheck, InvoiceIDCheck, CustomizationIDCheck, ProfileIDTypeDespatchAdvice, DespatchDateCheck, DespatchTimeCheck, DespatchAddressCheck, DespatchCarrierDriverCheck, DespatchAdviceHKSKunyeCheck
desp:DespatchAdvice/cbc:UUIDUUIDCheck
desp:DespatchAdvice/cac:DespatchLineDeliveredQuantityCheck, ItemNameCheck, DespatchLineIdCheck, DespatchIdisEtiketNoCheck
.../cac:DespatchSupplierParty/cac:Party/cac:PartyIdentificationPartyIdentificationTCKNVKNCheck, DocumentSenderCheck
.../cac:DeliveryCustomerParty/cac:Party/cac:PartyIdentificationPartyIdentificationTCKNVKNCheck, DocumentReceiverCheck
.../cac:BuyerCustomerParty/cac:Party/cac:PartyIdentificationPartyIdentificationTCKNVKNCheck
.../cac:Shipment/cac:Delivery/cac:CarrierParty/cac:PartyIdentificationPartyIdentificationTCKNVKNCheck
.../cac:Shipment/cac:Delivery/cac:CarrierParty/cac:PartyIdentification/cbc:IDPartyIdentificationSchemeIDCheck
.../cac:Shipment/cac:ShipmentStage/cac:TransportMeans/cac:RoadTransport/cbc:LicensePlateIDLicensePlateIDSchemeIDCheck
.../cac:Shipment/cac:TransportHandlingUnit/cac:TransportEquipment/cbc:IDTransportEquipmentIDSchemeIDCheck
.../cac:DespatchSupplierParty/cac:Party/cac:PartyIdentification/cbc:IDPartyIdentificationSchemeIDCheck
.../cac:DespatchSupplierParty/cac:PartyPartyIdentificationPartyNamePersonCheck, DespatchIdisSevkiyatNoCheck
.../cac:DeliveryCustomerParty/cac:Party/cac:PartyIdentification/cbc:IDPartyIdentificationSchemeIDCheck
.../cac:DeliveryCustomerParty/cac:PartyPartyIdentificationPartyNamePersonCheck
desp:DespatchAdvice/cac:ShipmentLicensePlateIDCheck

<sch:pattern id="receiptadvice">:

ContextExtend edilen kurallar
recp:ReceiptAdviceReceiptAdviceTypeCodeCheck, ReceiptAdviceIDCheck, CustomizationIDCheck
recp:ReceiptAdvice/cbc:UUIDUUIDCheck
recp:ReceiptAdvice/cac:ReceiptLineItemNameCheck, DespatchLineIdCheck
.../cac:DespatchSupplierParty/cac:Party/cac:PartyIdentificationPartyIdentificationTCKNVKNCheck
.../cac:DeliveryCustomerParty/cac:Party/cac:PartyIdentificationPartyIdentificationTCKNVKNCheck
.../cac:BuyerCustomerParty/cac:Party/cac:PartyIdentificationPartyIdentificationTCKNVKNCheck
.../cac:DespatchSupplierParty/cac:Party/cac:PartyIdentification/cbc:IDPartyIdentificationSchemeIDCheck
.../cac:DespatchSupplierParty/cac:PartyPartyIdentificationPartyNamePersonCheck
.../cac:DeliveryCustomerParty/cac:Party/cac:PartyIdentification/cbc:IDPartyIdentificationSchemeIDCheck
.../cac:DeliveryCustomerParty/cac:PartyPartyIdentificationPartyNamePersonCheck

Namespace prefixleri:

<sch:ns prefix="desp" uri="urn:oasis:names:specification:ubl:schema:xsd:DespatchAdvice-2" />
<sch:ns prefix="recp" uri="urn:oasis:names:specification:ubl:schema:xsd:ReceiptAdvice-2" />

Ortak kurallar:

KuralKontrol
InvoiceIDCheck (İrsaliye ID'sine de uygulanır)^[A-Z0-9]{3}20[0-9]{2}[0-9]{9}$
CustomizationIDCheckTR1.2 veya TR1.2.1
UUIDCheck^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$
ReceiptAdviceIDCheckuzunluk = 16

ÖNEMLİ ÇIKARIM — ReceiptAdvice'ta OLMAYAN kontroller: ProfileID kontrolü, IssueDate kontrolü, DespatchDocumentReference varlık kontrolü, miktar kontrolleri, ID format regex'i, imza kontrolü. Bunları portal kendisi yapmalıdır.

Kaynak: UBL-TR_Main_Schematron.xml; UBL-TR_Common_Schematron.xml



BÖLÜM 4 — Zarf, Durum Kodları, Web Servis ve Entegrasyon

7. Zarf (Envelope) ve Taşıma Katmanı

7.1 Zarf nedir: iki kesimli SBDH yapısı

Zarf, e-Fatura uygulamasında taraflar arasında iletilen TÜM XML mesajlarının (Fatura, Uygulama Yanıtı, Sistem Yanıtı, İrsaliye, İrsaliye Yanıtı, Kullanıcı Hesabı Açma/İptal) içine konulduğu GS1 StandardBusinessDocument (SBDH) yapısıdır.

İki kesim:

  1. sh:StandardBusinessDocumentHeader — Başlık (Sender / Receiver / DocumentIdentification)
  2. ef:Package (şemada any) — Paket, belgelerin konulduğu kesim

Kritik: xsi:schemaLocation UBL versiyonuna göre değişir

  • UBL 2.0 → PackageProxy.xsd
  • UBL 2.1 → PackageProxy_1_2.xsd

UYARI — schematron (24.08.2026 paketi) artık SADECE 2.1'i kabul ediyor: DocumentCheck kuralı contains(@xsi:schemaLocation,'PackageProxy_1_2.xsd') şartını koşulsuz uygular. Ek-1'de "UBL 2.0 için PackageProxy.xsd" yazsa da bugün üretimde PackageProxy_1_2.xsd zorunludur.

Zorunlu kök elemanlar (DocumentCheck):

ElemanDurum
sh:StandardBusinessDocumentHeaderZorunlu
ef:PackageZorunlu
@xsi:schemaLocation içinde PackageProxy_1_2.xsdZorunlu

Kaynak: Ek-1e-FaturaUygulamasiZarfSemaYapisi-v1.5_.txt; UBL-TR_Common_Schematron.xml

7.2 Zarf başlığı — Ek-1 ile schematron farkları

Ek-1 kılavuzuna göre:

AlanKardinaliteDeğer
sh:HeaderVersionZorunlu (1)"1.0"
sh:SenderZorunlu (1..∞)Gönderen bilgileri
sh:ReceiverZorunlu (1..∞)Alıcı bilgileri
sh:DocumentIdentificationZorunlu (1)Zarf bilgileri

Schematron (24.08.2026) ile FARKLAR — üretimde bunlar geçerlidir:

<sch:rule abstract="true" id="HeaderCheck">
  <sch:assert test="sh:HeaderVersion = '1.0' or sh:HeaderVersion = '1.2'">Geçersiz sh:HeaderVersion elemanı değeri. sh:HeaderVersion elemanı 1.0 veya 1.2 değerine eşit olmalıdır.</sch:assert>
  <sch:assert test="count(sh:Sender) = 1">sh:Sender zorunlu bir elemandır.</sch:assert>
  <sch:assert test="count(sh:Receiver) = 1">sh:Receiver zorunlu bir elemandır.</sch:assert>
</sch:rule>
KuralSchematron davranışı
HeaderCheckHeaderVersion = '1.0' veya '1.2' (Ek-1 sadece 1.0 diyor)
HeaderCheckcount(sh:Sender) = 1 ve count(sh:Receiver) = 1Ek-1 "1..∞" dese de schematron TAM 1 tane dayatıyor
EmptyChecksh:Sender/sh:Identifier ve sh:Receiver/sh:Identifier boş olamaz
ContactInformationCheckEn az bir sh:ContactInformation olmalı VE ContactTypeIdentifier='VKN_TCKN' olan tam 1 tane bulunmalı
ContactChecksh:ContactTypeIdentifier zorunlu; geçerli değerler ContactTypeIdentifierType = ',UNVAN,VKN_TCKN,'; VKN_TCKN ise sh:Contact uzunluğu 10 (VKN) veya 11 (TCKN) olmalı

Sender/Receiver alt alanları (Ek-1): Identifier (etiket/alias — biricik adres), Contact, EmailAdress, FaxNumber, TelephoneNumber, ContactTypeIdentifier. ContactInformation tekrarlanırsa ek olarak UNVAN yazılabilir.

Kaynak: Ek-1e-FaturaUygulamasiZarfSemaYapisi-v1.5_.txt; UBL-TR_Common_Schematron.xml

7.3 DocumentIdentification alanları

AlanEk-1 (v1.5, Mart 2017)Schematron (24.08.2026)
sh:StandardSabit "UBL-TR"kontrol edilmiyor
sh:TypeVersionUBL 2.0 için "1.0", UBL 2.1 için "1.2"TypeVersionCheck: koşulsuz = '1.2'
sh:InstanceIdentifierGönderenin ürettiği, uygulama içinde biricik GUIDUUIDCheck: regex zorunlu
sh:TypeSENDERENVELOPE / POSTBOXENVELOPE / SYSTEMENVELOPEEnvelopeTypeCheck: 4 değer (USERENVELOPE dahil)
sh:MultipleTypeFarklı türde belge yasak → "False"; izin verilirse "True"schematron'da hiç kontrol edilmiyor
sh:CreationDateAndTimexs:dateTime tipinde zarf oluşturma anıkontrol edilmiyor

ÖNEMLİ ÇELİŞKİ: Ek-1 USERENVELOPE'u hiç saymıyor (2017 tarihli); Özel Entegrasyon Kılavuzu v1.14 ve schematron sayıyor. Ayrıca Özel Entegrasyon Kılavuzu v1.14 USERENVELOPE zarfı için "TypeVersion: 1.0 yazılmalıdır" derken schematron = '1.2' dayatıyor — schematron esas alınmalıdır.

MultipleType örneği (Ek-1): Aynı zarfta hem uygulama yanıtı hem iade faturası varsa "True"; birden çok uygulama yanıtı varsa "False".

Kaynak: Ek-1e-FaturaUygulamasiZarfSemaYapisi-v1.5_.txt; UBL-TR_Common_Schematron.xml; e-Fatura_Uygulamasi_Ozel_Entegrasyon_Kilavuzu_v1.14_.txt

7.4 InstanceIdentifier (Zarf UUID) kuralları

1) Format (UUIDCheck, sh:InstanceIdentifier üzerinde):

^[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}$

→ 36 karakter, tireli, büyük/küçük harf hex serbest. Örn. F1DBDA2D-FFB4-43E3-B923-EB78386D1BFD

2) Biriciklik: e-Fatura uygulaması içinde biricik olmak zorundadır. Sistemde zaten varsa 2001 ZARF ID SISTEMDE MEVCUT exception'ı döner.

3) ZIP dosya adı = InstanceIdentifier + ".zip" (Ek-3, setFileName).

4) ZIP içindeki XML dosyasının adı da zarf ID ile aynı olmalıdır — aksi halde:

HataDurum kodu
XML adı ≠ zarf ID1133 ZARF ID VE XML DOSYASININ ADI AYNI OLMALI
ZIP adı ≠ zarf ID1142 ZARF ID VE ZIP DOSYASI ADI AYNI OLMALI
ID uzunluğu hatalı1111 ZARF ID UZUNLUGU GECERSIZ
ZIP birden fazla dosya içeriyor1131 ZIP BIR DOSYA ICERMELI

5) MD5 özeti: Zarfın ZIP hali için MD5 hesaplanır ve DocumentType.setHash() ile gönderilir; 32 karakter. Uyuşmazsa 2000 OZET DEGERLER ESIT DEGIL.

6) Sıkıştırma: standart ZIP; Gzip / RAR yasak; ZIP tek dosya içermelidir.

Kaynak: UBL-TR_Common_Schematron.xml; Ek-3e-FaturaUygulamasiYazilimStandartlariVeNesneYapisi-v1.4_.txt; Ek-2e-FaturaUygulamasiSistemYanitiSemaYapisi-v1.5_.txt

7.5 EnvelopeType — 4 geçerli değer (makine-okunur kesin liste)

<sch:let name="EnvelopeType" value="',SENDERENVELOPE,POSTBOXENVELOPE,SYSTEMENVELOPE,USERENVELOPE,'"/>
#EnvelopeTypeNe zaman kullanılır
1SENDERENVELOPEGönderici Birim → Merkez → Posta Kutusu yönünde giden asıl belge zarfı (Fatura, İrsaliye, CreditNote)
2POSTBOXENVELOPEPosta Kutusu → Merkez → Gönderici Birim yönünde giden yanıt zarfı (Uygulama Yanıtı, İrsaliye Yanıtı)
3SYSTEMENVELOPEZarfın işlenme durumunu bildiren Sistem Yanıtı zarfı (her iki yönde, Merkez dahil)
4USERENVELOPESadece özel entegratörün GİB'e kullanıcı hesabı açma/iptal bildirimi

EnvelopeTypeCheck: contains($EnvelopeType, concat(',',sh:Type,',')) — listede olmayan değer "Geçersiz zarf türü" hatası verir.

Kaynak: UBL-TR_Codelist.xml; UBL-TR_Common_Schematron.xml

7.6 ElementType — 7 geçerli değer (makine-okunur kesin liste)

<sch:let name="ElementType" value="',INVOICE,APPLICATIONRESPONSE,PROCESSUSERACCOUNT,CANCELUSERACCOUNT,DESPATCHADVICE,RECEIPTADVICE,CREDITNOTE,'"/>
#ElementTypeElementList içindeki XML köküNamespace
1INVOICEinv:Invoiceurn:oasis:names:specification:ubl:schema:xsd:Invoice-2
2APPLICATIONRESPONSEapr:ApplicationResponse...:ApplicationResponse-2
3PROCESSUSERACCOUNThr:ProcessUserAccounthttp://www.hr-xml.org/3
4CANCELUSERACCOUNThr:CancelUserAccounthttp://www.hr-xml.org/3
5DESPATCHADVICEdesp:DespatchAdvice...:DespatchAdvice-2
6RECEIPTADVICErecp:ReceiptAdvice...:ReceiptAdvice-2
7CREDITNOTE(UBL CreditNote)

ElementTypeCheck: contains($ElementType, concat(',',ElementType,',')).

Ek-1'in Paket kuralı: ElementType'ta yazan belge türü ne ise ElementList içindeki TÜM elemanların türü de aynısı olmak zorundadır.

Kaynak: UBL-TR_Codelist.xml; Ek-1e-FaturaUygulamasiZarfSemaYapisi-v1.5_.txt

7.7 EnvelopeType × ElementType eşleşme matrisi

Schematron EnvelopeTypeElementTypeCheck (bağlayıcı kural):

EnvelopeTypeİzin verilen ElementTypeEk kısıt
SENDERENVELOPEINVOICE, DESPATCHADVICE, CREDITNOTE
POSTBOXENVELOPEAPPLICATIONRESPONSE, RECEIPTADVICEcbc:ResponseCode sadece RED / KABUL / IADE / GUMRUKONAY
SYSTEMENVELOPEAPPLICATIONRESPONSE (Sistem Yanıtı)cbc:ResponseCode sadece AppResponseCodeType listesinden
USERENVELOPEPROCESSUSERACCOUNT veya CANCELUSERACCOUNTAlıcı zorunlu VKN=3900383669 + etiket=GIB; gönderen etiketi UserEnvelopeAliases listesinden

Kılavuz tarafındaki tablo (Özel Entegrasyon v1.14, Tablo-1):

ZARF TÜRÜBELGE TÜRÜ
SENDERENVELOPEFATURA (INVOICE), IRSALIYE (DESPATCHADVICE)
POSTBOXENVELOPEUYGULAMA YANITI (BAPR), IRSALIYEYANITI (RECEIPTADVICE)
SYSTEMENVELOPESİSTEM YANITI (SAPR)
USERENVELOPEKULLANICI HESABI AÇMA (PUA)
USERENVELOPEKULLANICI HESABI İPTAL (CUA)

Kaynak: UBL-TR_Common_Schematron.xml; e-Fatura_Uygulamasi_Ozel_Entegrasyon_Kilavuzu_v1.14_.txt

7.8 USERENVELOPE'a özel iki sert kısıt

<sch:assert test="not(sh:Type = 'USERENVELOPE') or ($receiverId = '3900383669' and $receiverAlias = 'GIB')">
<sch:assert test="not(sh:Type = 'USERENVELOPE') or contains($UserEnvelopeAliases, concat(',',normalize-space($senderAlias),','))">

UserEnvelopeAliases — TAM liste (17 değer):

usergb, archive, earchive, archive_earchive, eticket, edespatch, archive_edespatch,
esevoucher, epreceipt, esevoucher_archive, epreceipt_archive, erevenue, echeck,
eexchangecert, ebreceipt, einsurancecomm, erreceipt

ReservedAliases — yasaklı etiketler (müşteriye açılan WorkScopeCode bu listeden olamaz), TAM liste (17 değer):

usergb, GIB, archive, earchive, archive_earchive, eticket, edespatch, esevoucher,
epreceipt, esevoucher_archive, epreceipt_archive, erevenue, echeck, eexchangecert,
ebreceipt, einsurancecomm, erreceipt

Fark: UserEnvelopeAliases içinde archive_edespatch var ama ReservedAliases içinde yok; ReservedAliases içinde GIB var ama UserEnvelopeAliases içinde yok.

HR-XML gönderen doğrulaması (OASenderCheck): oa:LogicalID 10 haneli VKN veya 11 haneli TCKN olmalı ve zarfı gönderen VKN ile aynı olmalıdır.

Kaynak: UBL-TR_Codelist.xml; UBL-TR_Common_Schematron.xml

7.9 Zarf içi belge sayısı limitleri (schematron ile dayatılan sert sınırlar)

Kural (schematron id)SınırHata mesajı
ElementsGroupCountCheckef:Package içinde en fazla 10 Elements elemanı"ef:Package elemanı içerisinde en fazla 10 tane Elements elemanı olabilir."
ElementCountCheckElementCount değeri en fazla 1000"ElementCount elemanın değeri en fazla 1000 olabilir.."
ElementListCountCheckcount(ElementList/*) = ElementCount (birebir eşit)
InvoiceCountCheckElementType='INVOICE' ise inv:Invoice sayısı < 101 (max 100)"…100'den fazla olamaz."
ExportInvoiceCountCheckProfileID='IHRACAT' olan sadece 1 fatura
ExportInvoiceCountCheckProfileID='YOLCUBERABERFATURA' olan sadece 1 fatura
ElementNameCheckHer ElementType için ilgili kök eleman sayısı = ElementCount
UserAccountCountCheckGönderen etiketi archive ise tam 1 hr:UserAccount

Özel entegratör test adımı da 100 fatura/zarf'ı teyit eder: "ardı ardına 10 zarf ve her zarf içerisinde 100 adet fatura ile gönderme işlemi yapmalıdır" ve "İlk gönderilen zarf ile son gönderilen zarfın gönderim zamanları arasında en fazla 5 dakika olmalıdır."

DİKKAT — pratik tasarım kuralı: Bir zarftaki TEK bir belge şema/schematron/imza kontrolünden geçemezse ZARFIN TAMAMI geçersiz sayılır. Zarf başına fatura sayısını yüksek tutmak toplu ret riskini büyütür.

Kaynak: UBL-TR_Common_Schematron.xml; e-Fatura_Uygulamasi_Ozel_Entegrasyon_Kilavuzu_v1.14_.txt

7.10 Bütünsel ret kuralı ve Sistem Yanıtı ayna (mirror) kuralı

1) Bütünsel ret: "Zarfın içerisindeki bir tane belge (uygulama yanıtı veya fatura) şema, schematron veya imza gibi kontrollerden geçememişse gönderilen zarfın tümünün geçersiz sayılmalıdır."

2) Sistem Yanıtı ayna kuralı — kod yazarken kritik: Posta kutusu kendisine gelen SENDERENVELOPE'a, gönderici birim kendisine gelen POSTBOXENVELOPE'a sistem yanıtı üretirken:

  • Gelen zarfın Sender VKN+etiketi → oluşturulan sistem yanıtının Receiver kısmına
  • Gelen zarfın Receiver VKN+etiketi → oluşturulan sistem yanıtının Sender kısmına

3) Merkezin her zarfta yaptığı 4 kontrol:

  • XSD kontrolü
  • Schematron kontrolü
  • İmza ve mühür varlığının kontrolü (doğrulamasını YAPMAZ)
  • Gönderici ve alıcı adres kontrolü

"Merkez imza doğrulaması yapmamaktadır. İmza doğrulamasının gönderici birim tarafından yapılması gerekmektedir."

Aynı dipnot posta kutusu için de tekrarlanır. Yani imza doğrulama yükümlülüğü tamamen entegratör/portal tarafındadır.

Kaynak: Ek-2e-FaturaUygulamasiSistemYanitiSemaYapisi-v1.5_.txt; e-FaturaUygulamasiEntegrasyonKilavuzu-v1.10_.txt

7.11 Zarf XML iskeleti

Korpusta zarf başlığının tam metin hali sadece Gümrük İşlemleri Kılavuzu'nda geçer (Ek-1 diyagram tabanlı). Aşağıdaki iskelet, bu örnek + Ek-1 alan tanımları + Ek-3'teki ef:Package yapısının birleşimidir:

<?xml version="1.0" encoding="UTF-8"?>
<sh:StandardBusinessDocument
    xmlns:sh="http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader"
    xmlns:ef="http://www.efatura.gov.tr/package-namespace"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="... PackageProxy_1_2.xsd">
  <sh:StandardBusinessDocumentHeader>
    <sh:HeaderVersion>1.2</sh:HeaderVersion>
    <sh:Sender>
      <sh:Identifier>urn:mail:defaultgb@firma.com.tr</sh:Identifier>
      <sh:ContactInformation>
        <sh:Contact>1460415308</sh:Contact>
        <sh:ContactTypeIdentifier>VKN_TCKN</sh:ContactTypeIdentifier>
      </sh:ContactInformation>
    </sh:Sender>
    <sh:Receiver>
      <sh:Identifier>urn:mail:defaultpk@alici.com.tr</sh:Identifier>
      <sh:ContactInformation>
        <sh:Contact>9205121120</sh:Contact>
        <sh:ContactTypeIdentifier>VKN_TCKN</sh:ContactTypeIdentifier>
      </sh:ContactInformation>
    </sh:Receiver>
    <sh:DocumentIdentification>
      <sh:Standard>UBL-TR</sh:Standard>
      <sh:TypeVersion>1.2</sh:TypeVersion>
      <sh:InstanceIdentifier>F1DBDA2D-FFB4-43E3-B923-EB78386D1BFD</sh:InstanceIdentifier>
      <sh:Type>SENDERENVELOPE</sh:Type>
      <sh:MultipleType>False</sh:MultipleType>
      <sh:CreationDateAndTime>2026-08-31T14:50:00</sh:CreationDateAndTime>
    </sh:DocumentIdentification>
  </sh:StandardBusinessDocumentHeader>
  <ef:Package>
    <Elements>
      <ElementType>INVOICE</ElementType>
      <ElementCount>1</ElementCount>
      <ElementList>
        <inv:Invoice> ... </inv:Invoice>
      </ElementList>
    </Elements>
  </ef:Package>
</sh:StandardBusinessDocument>

Namespace'ler (Main Schematron'dan doğrulanmış):

PrefixURI
shhttp://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader
efhttp://www.efatura.gov.tr/package-namespace
hrhttp://www.hr-xml.org/3
oahttp://www.openapplications.org/oagis/9

Not: Gümrük kılavuzunun OCR'ında <sh:Standard>UBLTR</sh:Standard> (tiresiz) yazıyor; Ek-1 kesin olarak "UBL-TR" diyor.

Kaynak: e-Fatura_Uygulamasi_gumruk_islemleri_Kilavuzu_.txt; Ek-1e-FaturaUygulamasiZarfSemaYapisi-v1.5_.txt; UBL-TR_Main_Schematron.xml

7.12 Zarf akış senaryoları — zarf türü adım adım

TEMEL FATURA SENARYOSU:

AdımKim → KimZarf Türü
1Gönderici Birim → Merkez (FATURA)SENDERENVELOPE
2Merkez → Gönderici Birim (Sistem Yanıtı)SYSTEMENVELOPE
3Merkez → Posta Kutusu (1. adımdaki zarf AYNEN)SENDERENVELOPE
4Posta Kutusu → Merkez (Sistem Yanıtı)SYSTEMENVELOPE
5Merkez → Gönderici Birim (AYNEN iletir)SYSTEMENVELOPE

TİCARİ FATURA SENARYOSU (temel senaryoya EK adımlar):

AdımKim → KimZarf Türü
1Posta Kutusu → Merkez (UYGULAMA YANITI)POSTBOXENVELOPE
2Merkez → Posta Kutusu (Sistem Yanıtı)SYSTEMENVELOPE
3Merkez → Gönderici Birim (AYNEN)POSTBOXENVELOPE
4Gönderici Birim → Merkez (Sistem Yanıtı)SYSTEMENVELOPE
5Merkez → Posta Kutusu (AYNEN)SYSTEMENVELOPE

İRSALİYE SENARYOSU: IRSALIYE için SENDERENVELOPE, IRSALIYEYANITI için POSTBOXENVELOPE; sistem yanıtları SYSTEMENVELOPE.

Merkez'in irsaliye senaryosuna özel kontrolü:

"Gönderici ve alıcı adres kontrolünü yapar. İrsaliye kullanıcısı olmayan mükellefler e-fatura kullanıcısı olsa dahi irsayile belgesi gönderip, alamazlar. İrsaliye belgesi gönderim ve alımı için mükelleflerin, kullanıcı listesinde belirtilen e-irsaliye etiketleri kullanılmalıdır."

Etiket ilişkisi (Özel Entegrasyon Kılavuzu v1.14): "E-irsaliye hizmetinde olan bir fatura etiketi kullanıldıysa bu etiketle fatura gönderme/alma izni de verilmiş olur. Eğer e-irsaliye hizmetinde olmayan bir fatura kullanıldıysa irsaliye gönderme/alma için yeni bir etiket" gerekir.

Kayıtlı kullanıcı sorgusu (SSS 74): e-İrsaliye kayıtlı kullanıcıları https://ebelge.gib.gov.tr/eirsaliyekayitlikullanicilar.html adresinden görülebilir.

Kaynak: e-FaturaUygulamasiEntegrasyonKilavuzu-v1.10_.txt; e-Fatura_Uygulamasi_Ozel_Entegrasyon_Kilavuzu_v1.14_.txt; 509_Cok_Sorulan__Sorular_.txt


8. Sistem Yanıtı Durum Kodları

8.1 Ek-2'deki TAM TABLO (37 kod)

Ek-2 v1.5, Bölüm 4 "Durum Kodları ve Açıklamaları" — birebir tam liste. Sınıflandırma sütunu, Ek-2'nin "İşlenme sırasındaki hatalara ait durum kodları 1100 ile 1200 arasındadır" ifadesi ve 4.1/4.2 bölümlerindeki akış anlatımına dayanır.

KodDurum AçıklamasıSınıf
1000ZARF KUYRUGA EKLENDIAra durum (bilgi)
1100ZARF ISLENIYORAra durum (bilgi)
1110ZIP DOSYASI DEGILHATA
1111ZARF ID UZUNLUGU GECERSIZHATA
1120ZARF ARSIVDEN_KOPYALANAMADIHATA
1130ZIP ACILAMADIHATA
1131ZIP BIR DOSYA ICERMELIHATA
1132XML DOSYASI DEGILHATA
1133ZARF ID VE XML DOSYASININ ADI AYNI OLMALIHATA
1140DOKUMAN AYRISTIRILAMADIHATA
1141ZARF ID YOKHATA
1142ZARF ID VE ZIP DOSYASI ADI AYNI OLMALIHATA
1143GECERSIZ VERSIYONHATA
1150SCHEMATRON KONTROL SONUCU HATALIHATA
1160XML SEMA KONTROLUNDEN GECEMEDIHATA
1161IMZA SAHIBI TCKN VKN ALINAMADIHATA
1162IMZA KAYDEDILEMEDIHATA
1163GONDERILEN ZARF SISTEMDE DAHA ONCE KAYITLI OLAN BIR FATURAYI ICERMEKTEDIR.HATA (mükerrer)
1164GONDERILEN ZARF SISTEMDE DAHA ONCE KAYITLI OLAN BIR BELGEYİ ICERMEKTEDIR.HATA (mükerrer)
1170YETKI KONTROL EDILEMEDIHATA
1171GONDERICI BIRIM YETKISI YOKHATA
1172POSTA KUTUSU YETKISI YOKHATA
1175IMZA YETKISI KONTROL EDILEMEDIHATA
1176IMZA SAHIBI YETKISIZHATA
1177GEÇERSİZ İMZAHATA
1180ADRES KONTROL EDILEMEDIHATA
1181ADRES BULUNAMADIHATA
1182KULLANICI EKLENEMEDİHATA (USERENVELOPE)
1183KULLANICI SİLENEMEDİHATA (USERENVELOPE)
1190SISTEM YANITI HAZIRLANAMADIHATA
1195SISTEM HATASIHATA
1200ZARF BASARIYLA ISLENDIBAŞARI (yerel işleme)
1210DOKUMAN BULUNAN ADRESE GONDERILEMEDIHATA (iletim, tekrar denenir)
1215DOKUMAN GONDERIMI BASARISIZ. TERKAR GONDERME SONLANDIHATA (nihai)
1220HEDEFTEN SISTEM YANITI GELMEDIAra durum (beklemede)
1230HEDEFTEN SISTEM YANITI BASARISIZ GELDIHATA (nihai)
1235FATURA IPTAL'E KONU EDILDIBilgi
1300BASARIYLA TAMAMLANDIBAŞARI (uçtan uca nihai)

Kısa özet: Sadece 1200 ve 1300 başarıdır. 1000/1100/1220 geçici/ara durumdur. 1235 bilgilendirmedir. Geri kalan her şey hatadır.

İPTAL PORTALİ İÇİN KRİTİK: 1235 — FATURA IPTAL'E KONU EDILDI kodu, e-Fatura İptal Portalinden iptal edilmiş bir faturanın sistem üzerindeki durumunu bildirir. Portalde fatura durum makinesinde ayrı bir terminal durum olarak modellenmelidir.

Kaynak: Ek-2e-FaturaUygulamasiSistemYanitiSemaYapisi-v1.5_.txt (satır 650-720)

8.2 ÇELİŞKİ: Schematron AppResponseCodeType listesi Ek-2 tablosundan FARKLI

Schematron AppResponseCodeCheck kuralı, SYSTEMENVELOPE türü zarflarda cbc:ResponseCode değerini şu 32 değerle sınırlar:

1000, 1100, 1110, 1111, 1120, 1130, 1131, 1132, 1133, 1140, 1141, 1142, 1143,
1150, 1160, 1161, 1162, 1163, 1170, 1171, 1172, 1175, 1176, 1177, 1180, 1181,
1182, 1183, 1190, 1191, 1195, 1200
KarşılaştırmaKodlar
Ek-2'de olup schematron listesinde OLMAYAN (7 kod)1164, 1210, 1215, 1220, 1230, 1235, 1300 — Merkez'in kendi iç durum takibinde kullanılan kodlardır; entegratörün ürettiği SYSTEMENVELOPE içinde gönderilirse schematron reddeder
Schematron'da olup Ek-2 tablosunda OLMAYAN (1 kod)1191 — açıklaması korpusta hiçbir yerde yoktur

Portal geliştirme kuralı:

  • Entegratör olarak ürettiğiniz sistem yanıtında yalnızca schematron listesindeki 32 koddan biri kullanılabilir; pratikte ya 1200 (başarılı) ya da 1150/1160/1177/1181 gibi bir hata kodu dönülür.
  • Merkez'den aldığınız sistem yanıtlarında ise 1210/1215/1220/1230/1235/1300 kodlarını da parse edebilmelisiniz.

Kaynak: UBL-TR_Codelist.xml (satır 43); UBL-TR_Common_Schematron.xml; Ek-2e-FaturaUygulamasiSistemYanitiSemaYapisi-v1.5_.txt

8.3 Durum kodu yaşam döngüsü ve retry mekanizması

4.1 MERKEZ BİRİMDE akış (SENDERENVELOPE + FATURA):

  1. 1000 ZARF KUYRUGA EKLENDI
  2. 1100 ZARF ISLENIYOR
  3. Şema/schematron hatası → 1100–1200 arası ilgili hata kodu → Gönderici Birim'e sistem yanıtı → bir sonraki aşamaya geçilmez
  4. Hata yoksa → 1200 ZARF BASARIYLA ISLENDI → Gönderici Birim'e sistem yanıtı. Gönderim sırasında hata olsa bile bir sonraki aşamaya geçilir.
  5. Merkez → Posta Kutusu iletimi başarılıysa → 1220 HEDEFTEN SISTEM YANITI GELMEDI (PK yanıtı gelene kadar)
  6. İletim hatalıysa → 1210 DOKUMAN BULUNAN ADRESE GONDERILEMEDI

RETRY POLİTİKASI (koda dökülmesi gereken):

"1210 durum kodunun alındığı andan itibaren Merkez birim aynı zarfı dört defa ikişer saat arayla toplam sekiz saat içerisinde tekrar göndermeyi dener. Son denemede (dördüncü deneme) zarf hala karşı tarafa başarıyla iletilememiş ise zarfın durumu 1215 ... durum kodunu alır."

MÜKERRER FATURA KURALI (çok kritik):

SenaryoSonuç
1215 alındıktan SONRAO zarftaki faturalar aynı Fatura ID'siyle tekrar gönderilebilir
1215 alınmadan ÖNCE aynı faturayı yeni zarfla göndermeye kalkmak1163 GONDERILEN ZARF SISTEMDE DAHA ONCE KAYITLI OLAN BIR FATURAYI ICERMEKTEDIR
1220 durumundaki zarftaki bir faturayı tekrar göndermek1163
1230 alındıktan sonraFaturalar aynı Fatura ID'siyle tekrar gönderilebilir

Nihai durumlar:

  • PK'den 1200 gelirse → Merkez'deki 1220 → 1300 BASARIYLA TAMAMLANDI
  • PK'den 1200 dışında bir kod gelirse → Merkez'deki 1220 → 1230 HEDEFTEN SISTEM YANITI BASARISIZ GELDI

4.2 POSTA KUTUSUNDA: 1000 → 1100 → (hata ise ilgili kod, Merkez'de karşılığı 1230) / (başarı ise 1200, Merkez'de karşılığı 1300).

4.3 GÖNDERİCİ BİRİMDE: Gelen sistem yanıtları şema/schematron kontrolünden geçirilip sisteme kaydedilmeli, fakat bu zarflar için herhangi bir geri bildirim (sistem yanıtı) YAPILMAMALIDIR.

Kaynak: Ek-2e-FaturaUygulamasiSistemYanitiSemaYapisi-v1.5_.txt


9. Web Servis Katmanı

9.1 e-Fatura Merkez web servisi — SADECE 2 METOT

DocumentResponse    sendDocument(DocumentRequest request) throws EFaturaFaultMessage
GetAppRespResponse  getApplicationResponse(GetAppRespRequest request) throws EFaturaFaultMessage
MetotAmaçGirdiÇıktı
sendDocumentZarf göndermeDocumentRequestDocumentType: binaryData (Base64Binary, ZIP), fileName (zarfID.zip), hash (MD5, 32 karakter)DocumentResponseDocumentReturnType: hash (servisin kendi hesapladığı), msg
getApplicationResponseZarf durumu sorgulama (senkron)GetAppRespRequestGetAppRespRequestType: instanceIdentifier (Zarf ID)GetAppRespResponseGetAppRespResponseType: applicationResponse (String, sistem yanıtı zarfının XML'i)

ÇİFT YÖNLÜ ZORUNLULUK: getApplicationResponse metodunu entegratör kendi sunucu yazılımında da gerçekleştirmek zorundadır. Merkez, kendisinde durumu 1220 olan (entegratöre iletilmiş ama sistem yanıtı dönmemiş) zarfları belirli aralıklarla entegratörün servisinden sorgular; dönen yanıta göre Merkez'deki durum güncellenir ve bu sistem yanıtı zarfın göndericisine iletilir.

Entegratörün dönmesi gereken applicationResponse = tam bir SYSTEMENVELOPE zarf XML'i (String). Referans örnek dosya: 1_SISTEM_YANITI_POSTA_KUTUSU.xml (e-Fatura Paketi içinde).

Sınıf özetleri: DocumentRequest, DocumentResponse, DocumentReturnType, DocumentType, GetAppRespRequest, GetAppRespRequestType, GetAppRespResponse, GetAppRespResponseType.

Not: Özel Entegrasyon Kılavuzu v1.14 Bölüm 5'te USERENVELOPE gönderimi için metot adı sendDocumentFile olarak geçer; aynı kılavuzun 6.1/6.5 test adımlarında ise sendDocument denir — kılavuz içi tutarsızlık.

Kaynak: Ek-3e-FaturaUygulamasiYazilimStandartlariVeNesneYapisi-v1.4_.txt

9.2 EFaturaFaultMessage — SOAP exception kodları (2000-2007)

Durum kodlarından (1xxx) ayrı bir hata kanalı: web servis çağrısının kendisi başarısız olduğunda WSDL'de tanımlı EFaturaFaultMessage fırlatılır.

Hata KoduHata Açıklaması
2000OZET DEGERLER ESIT DEGIL
2001ZARF ID SISTEMDE MEVCUT
2002ZARF ARSIVE EKLENEMEDI
2003ZARF KUYRUGA EKLENEMEDI
2004ZARF ID BULUNAMADI
2005SISTEM HATASI
2006GECERSIZ ZARF ADI
2007PAKET GÖNDERMEYE VE SORGULAMAYA YETKİNİZ GEÇİCİ OLARAK KALDIRILMIŞTIR.

SOAP Fault detail formatı (birebir uygulanmalıdır):

<soapenv:Detail>
  <ns2:EFaturaFault xmlns:ns2="http://gib.gov.tr/vedop3/eFatura">
    <code>2000</code>
    <msg>OZET DEGERLER ESIT DEGIL</msg>
  </ns2:EFaturaFault>
</soapenv:Detail>

Java üretim örneği: EFaturaFaultType faultType = new EFaturaFaultType(); faultType.setCode(code); faultType.setMsg(msg); fault.setEFaturaFault(faultType); faultMessage.setFaultMessage(fault); throw faultMessage;

.NET notu: WSDL:fault araçlarla üretilemiyorsa SOAPException metotları kullanılarak aynı yapı elle üretilmelidir — standartlaşma açısından zorunludur.

Kaynak: Ek-3e-FaturaUygulamasiYazilimStandartlariVeNesneYapisi-v1.4_.txt

9.3 Web servis teknik standartları

KonuKural
WSDL kaynağıwww.efatura.gov.tr adresindeki e-Fatura Paketi içinden alınır. Entegratörler hem istemci hem sunucu yazılımını bu WSDL'e göre geliştirmek zorundadır.
SOAP kodlamasıDOC (performans nedeniyle; RPC değil)
Büyük dosyaMTOM (Message Transmission Optimization Mechanism), ikili veri için XOP
Birlikte çalışabilirlikWS-I ve WS-I Basic Profile
TaşımaHTTPS + SSL. İstemci, sunucunun kimliğini doğrular.
SSL sertifikasıVerisign, GlobalSign gibi güvenilir sağlayıcılardan alınmalı
IPEntegre birimler Statik IP üzerinden tanımlanır; Statik IP Türkiye'ye ait IP aralığında olacaktır
Yurt dışı IPBilgi işlem sistemi yurt dışından yönetilenler başvuru üzerine değerlendirilir; mali mühür adreslerine yurtdışı IP erişimi için TÜBİTAK KamuSM ile iletişime geçilir
Ortak IPGrup şirketleri ortaklık belgeleriyle başvurabilir
Karakter kodlamaXML dosyaları UTF-8
XSLTXML içinde görüntüleme XSLT'si mutlaka bulunmalı; XSLT ile XML çelişirse XML esas alınır. XSLT görüntüsünün üst orta kesiminde GİB logosu + altında "e-Fatura" ibaresi olmalı; "e-Fatura Görüntüleyici" ile açılabilmeli.
XML kaçış karakterleri& → &amp; , ' → &apos; , > → &gt; , < → &lt; , " → &quot;

VAP 6 katmanı: Bağlantı (internet) → Haberleşme (HTTPS) → Sunum (web servisleri) → Güvenlik (güvenli oturum) → Paket → Veri.

Bilinen adresler (korpusta geçen):

AmaçAdres
Canlı kullanıcı listesihttps://merkez.efatura.gov.tr/EFaturaMerkez/userList.jsp
Test kullanıcı listesihttps://merkeztest.efatura.gov.tr/EFaturaMerkez/userList.jsp
Mevzuat/pakethttps://ebelge.gib.gov.tr/ , http://www.efatura.gov.tr/efaturamevzuat.html
e-Fatura İptal Portalihttps://portal.efatura.gov.tr/FaturaIptal/
e-İrsaliye kayıtlı kullanıcılarhttps://ebelge.gib.gov.tr/eirsaliyekayitlikullanicilar.html

Kaynak: Ek-3e-FaturaUygulamasiYazilimStandartlariVeNesneYapisi-v1.4_.txt; e-FaturaUygulamasiEntegrasyonKilavuzu-v1.10_.txt

9.4 e-Arşiv rapor web servisi — AYRI 3 metot

Portal geliştirirken e-Fatura servisiyle karıştırılmaması gereken ikinci bir servis.

MetotGirdiÇıktı / Kural
sendDocumentFileUUID formatında dosya ismi + dosyanın DataHandler'ıDosya ZIP olmalı; ZIP içinde aynı isimde XML olmalı; "Zipli dosyanın açık boyutu en fazla 100Mb olmalıdır. Eğer bu boyutu geçiyorsa rapor bölünmelidir." XML, eArsiv.xsd şemasına uygun olmalı
getBatchStatusPaket IDPaketin durumunu döner
getUserListXML ya da CSVKullanıcı listesi ZIP dosyası içinde döner

getUserList çıktı alanları: FirstCreationTime (e-Arşiv uygulamasına ilk giriş), ActivationTime (bir ÖE tarafında eklendiği zaman), DeactivationTime (doluysa ÖE tarafından kapatıldığı zaman). Liste sadece AKTİF mükellefleri barındırır.

e-Arşiv WS güvenliği (e-Fatura'dan FARKLI): WSS kullanılarak SOAP mesajındaki TimeStamp ve Body blokları mali mühür/NES ile imzalanır. Header'daki imza alanının signature key identifier'ı DirectReference olmalı. Canonicalization: http://www.ws.org/2001/10/xml-exc-c14n# (tavsiye). Signature method: http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 OLMALIDIR (zorunlu).

e-Arşiv sendDocumentFile hata kodları:

KodAçıklama
000Dosya Kaydedildi
001Gönderici imza yetkisi yok
002Attachment null olamaz
003Paket ID boş olamaz
004Paket daha önceden gönderilmiş
005Paket dosyası boş olamaz
006Dosya bulunamadı + (Açıklama)
007IO Hatası
008Hata
009Dosya ismi 36 + .zip 40 karakter olmalıdır
010Dosya ismi zip uzantılı olmalıdır

getUserList hata kodları: 001 Gönderici yetkisi yok | 002 Hatalı User List Parametresi. Beklenen: XML ya da CSV | 006 Dosya bulunamadı.

Diğer: 163 Sistem hatası | 164 Pakette dosya yok | 165 Max dosya boyutu hatası | 166 İstek imzası ve paket imzası uyuşmuyor | 167 İmza sahibi ile hazırlayan VKN/TCKN uyuşmuyor

ÖE geçiş kuralı: e-Arşiv hizmetinde ÖE değişimi sadece ay sonu itibarıyla yapılabilir; mükellef o ayın paketlerini bölmeden mevcut ÖE ile tamamlamalı, yeni ay yeni ÖE ile devam etmelidir. Özel entegratörler hizmet verdikleri mükellefleri e-Fatura platformu HR-XML bildirimi ile Başkanlığa bildirir.

Kaynak: e-Arsiv_Teknik_Kilavuzu_V.1.18_.txt


10. Entegrasyon Yöntemleri

10.1 509 SN VUK GT Bölüm V.1 — üç yöntem

#YöntemTanımKim için
1GİB Portal YöntemiGİB'in sunduğu e-Belge portalleri (temel fonksiyonlar, web arayüzü)"bilgi işlem sistemlerinin entegre edilmesi suretiyle e-Belge uygulamalarını kullanma konusunda yeterli alt yapıya sahip olmayan kullanıcılar"
2Özel Entegratör YöntemiBaşkanlıktan izin almış özel entegratörün bilgi işlem sistemi üzerindenFaturalama ihtiyaçları farklı olan veya çok fatura kesen, kendi altyapısı yetersiz mükellefler
3Doğrudan Entegrasyon YöntemiMükellefin kendi bilgi işlem sisteminin GİB sistemine doğrudan entegresiBaşkanlıkça belirlenen şartları sağlayan mükellefler

GİB PORTAL — kısıtlar:

  • Başkanlık, portal ile düzenlenebilecek e-Belgeleri belge türü, sektör ve uygulama özelliklerine göre belirlemeye ve SINIRLANDIRMAYA yetkilidir.
  • Portalde tanımlanmamış e-Belgelerin portal yöntemiyle düzenlenmesi mümkün değildir.
  • GIB birim kodu sadece portal kullanıcılarına aittir; özel entegratör ve entegrasyon kullanıcıları kullanamaz.

DOĞRUDAN ENTEGRASYON — 573 SN ile SIKILAŞTIRILDI (12.11.2024):

İçerik
Eski hali"Bilgi işlem sistemleri yeterli olan mükelleflerin"
Yeni hali"Faaliyet konusu, mükellefiyet süresi, vergi, şirket veya mükellefiyet türü, aktif ya da öz sermaye büyüklüğü, brüt satış hasılatı (veya satışları ile gayrisafi iş hasılatı), sektör, düzenlenen belge sayısı ile bilgi işlem altyapısı gibi hususlarda Başkanlık tarafından belirlenen şartları sağlayan ve başvuruları Başkanlıkça uygun bulunan mükelleflerin"
Yeni yaptırımŞartları sağlayamayanların hesapları, tespiti izleyen üçüncü ayın başı itibarıyla kapatılır; mükellef bu süre içinde diğer yöntemlerden birine geçmek zorundadır; hesabı kapatılanların doğrudan entegrasyon başvurusu 1 YIL geçmeden değerlendirmeye alınmaz
SüreEntegrasyon çalışmaları başvuru tarihinden itibaren en geç 1 yıl içinde tamamlanmalıdır

BİRLİKTE KULLANIM KURALLARI (Özel Entegrasyon Kılavuzu v1.14):

  • Birden fazla özel entegratörden hizmet alınabilir.
  • ANCAK: "özel entegratör vasıtasıyla fatura alıp gönderenler, GİB portal hizmetinden ve entegrasyon yönteminden yararlanamazlar."
  • Portal kullanıcısı ÖE'ye geçerse GİB portal hesabı Başkanlıkça kapatılır; ÖE hesabı kapanınca kapanış bilgisi iletilince portal hesabı yeniden açılır.
  • Entegratör mükellef ÖE'ye geçerken önce Başkanlığa yazı ile bilgi verip entegrasyon hesabının kapatılmasını talep etmek zorundadır.

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt; e-Fatura_Uygulamasi_Ozel_Entegrasyon_Kilavuzu_v1.14_.txt

10.2 Doğrudan entegrasyon başvuru/test süreci

Entegrasyon Kılavuzu v1.10 Bölüm 2:

  1. Başvuru: e-Fatura Uygulamasına kağıt/elektronik başvuru kılavuzuna göre Başkanlığa başvuru.
  2. Mali sertifika + şifre teslimi.
  3. "Bilgi İşlem Sistem (BİS) Raporu" + "Test Tanım Formu"www.efatura.gov.trEntegrasyon İşlemleri bölümünden doldurulup gönderilir. (Gerçek kişiler e-imza ile yükleyebilir.)
    • BİS Raporu: entegre olacak donanım ve yazılımın anlatıldığı rapor. Şablonu e-Fatura Paketi içinde.
    • Test Tanım Formu: test ortamına bağlanacak sunucu ve istemci IP adresleri + web servis uç noktaları. Ek-3'e uygun doldurulmalıdır.
  4. Test hesapları Başkanlıkça tanımlanır, e-posta ile bildirilir.
  5. "e-Fatura Test Planı" na göre entegrasyon testleri yapılır.
  6. Test başarılıysa test hesapları kapatılır ve "Canlı Tanım Formu" doldurulur.
  7. Test hesabının açık kalması yazılı başvuru ile talep edilebilir; ancak canlı ortam IP adresleri test ortamı IP adresleri ile AYNI OLAMAZ.

Kullanıcı listesi erişimi: "E-Fatura entegrasyonu olmayan mükellefler bu adresten kayıtlı kullanıcılara ulaşamazlar."

Kaynak: e-FaturaUygulamasiEntegrasyonKilavuzu-v1.10_.txt

10.3 Özel Entegrasyon Kılavuzu v1.14 (29.06.2026) — ne değişti

BölümDeğişiklik
Elektronik Fatura Uygulamasında Özel Entegratör Rolü"Özel entegrasyon başvurusu yapacak mükellefler için TURKAK onaylı ISO belgeleri zorunluluğu getirilmiştir."
Kullanıcı Hesabı Açma / Kullanıcı Hesabı İptali"e-Gider Pusulası kodları ve etiketi eklendi" (s19, s.24, s.27) → etiket erreceipt, UserOptionCode 171/172/173/174
İmla ve yazım kuralları değişiklikleri

TÜRKAK zorunluluğunun tam kapsamı: Özel entegratör; bilgi güvenliği için TS ISO IEC 27001 veya ISO 27001, iş sürekliliği için ISO 22301, BT Hizmet Yönetimi için TS ISO IEC 20000 veya ISO 20000 belgelerine sahip olmalıdır — ve bu belgeler T.C. Dışişleri Bakanlığı Türk Akreditasyon Kurumu (TÜRKAK)'nda akredite olmuş kurumlardan alınmış olmalıdır.

Geçiş kolaylığı: Bu ISO sertifikalarından en az birine sahip olanlar, BİS Raporunda eksik belgeleri nasıl/ne sürede temin edeceklerini, hangi aşamada olduklarını (resmi belgelerle) açıklar ve taahhütte bulunursa talepleri değerlendirilir. Taahhüde uymayanların özel entegrasyon izni iptal edilebilir.

Banka istisnası: Türkiye'de faaliyet gösteren bankalar, ilgili ISO standartlarını karşılayan benzer denetimlerden geçtiklerini ve gereksinimleri nasıl karşıladıklarını BİS raporunda belirtirse bu standartlar aranmaz.

Diğer zorunluluklar:

KonuZorunluluk
Süreç yönetimiSistem yönetim süreçleri ITIL uyumlu, sistem ITIL sertifikalı personel tarafından yönetilmeli
Mali mühürTÜBİTAK-BİLGEM Kamu SM'den "Mali Mühür Uyum Değerlendirme Raporu" alınması zorunlu
Başvuru ekleriISO standart suretleri + ITIL sertifikalı çalışan listesi + sertifika kopyaları + Mali Mühür Uyum Değerlendirme Raporu, BİS raporu ile birlikte
Test süresiÖzel entegrasyon test süreci 1 YIL içinde tamamlanmalı; tamamlayamayanın başvurusu reddedilir
Çalışma süresiSistem 7/24 kesintisiz; yöntemi BİS raporunda açıklanmalı (yıllık ortalama fatura/kullanıcı sayısı, toplam veri büyüklüğü, eşzamanlı kapasite, dağıtım süresi, yük testleri, ölçeklenebilirlik)
Yayınİzin verilenlerin listesi https://ebelge.gib.gov.tr/ adresinde yayımlanır
İptal sebepleriTüm e-Faturaların Merkez üzerinden iletilmesi zorunluluğuna uymamak (397 SN VUK GT); yükümlülükleri zamanında yerine getirmeme durumunun süreklilik arz etmesi
Saklamae-Fatura saklama hizmeti de verilecekse ayrıca e-Fatura Saklama Kılavuzu koşullarına uygun altyapı kurulmalı

Kaynak: e-Fatura_Uygulamasi_Ozel_Entegrasyon_Kilavuzu_v1.14_.txt

10.4 Etiket (Alias) mekanizması ve urn formatı

Kavram: Etiket, VKN ile birlikte kullanıcının elektronik adresini belirtir (kağıt faturadaki cadde/sokak/il karşılığı).

Temel kurallar:

  • e-Fatura sisteminde 2 rol vardır: Gönderici Birim (GB) ve Posta Kutusu (PK). Her rol için AYRI etiket belirlenmelidir.
  • Bir mükellef birden fazla ÖE ile anlaşırsa farklı etiket kullanmalıdır. "Aynı VKN/TCKN ve etiket ile birden fazla özel entegratörde tanım yapılamaz."
  • Etiket kullanımı için "urn" tanımı yapılması ZORUNLUDUR.
  • Özel entegratörler kayıtlı kullanıcılar listesinden azami saatte bir veri çekerek adres listelerini güncel tutmalıdır.

Schematron etiket doğrulama (UserAccountCheck):

KuralDeğer
Boş olamazstring-length(...) > 0
Maks. uzunluk250 karakter
Yasaklı listeReservedAliases içindeki 17 etiket kullanılamaz
Format regex^urn:[A-Za-z0-9][A-Za-z0-9-]{0,31}:([A-Za-z0-9()+,-.:=@;$_!*]\|%[0-9A-Fa-f]{2})+$

Örnek etiketler (kılavuz):

KullanımÖrnek
Tek entegratörGB urn:mail:defaultgb@firma.com.tr / PK urn:mail:defaultpk@firma.com.tr
Şube bazlıurn:mail:ankara_sube_gb@firma.com.tr / urn:mail:istanbul_sube_gb@firma.com.tr
İşlem bazlı (alt. 1)urn:mail:islemadi1_gb@firma.com.tr
İşlem bazlı (alt. 2)urn:mail:defaultgb@firma.com.tr:service:islemadi1

Kaynak: e-Fatura_Uygulamasi_Ozel_Entegrasyon_Kilavuzu_v1.14_.txt; UBL-TR_Common_Schematron.xml

10.5 USERENVELOPE gönderen etiketi — hizmet türü tam tablosu (17 hizmet)

USERENVELOPE zarfının sh:Sender/sh:Identifier alanına, açılacak/kapatılacak hesabın hizmet türüne karşılık gelen sabit değer yazılır:

HizmetEtiket (sabit değer)
Yeni Kullanıcı Ekleme (e-Fatura)usergb
e-Fatura Saklama Hizmetiarchive
e-Arşiv Hizmetiearchive
e-Arşiv Arşiv Hizmetiarchive_earchive
e-Bilet Hizmetieticket
e-İrsaliye Hizmetiedespatch
e-İrsaliye Arşiv Hizmetiarchive_edespatch
e-Serbest Meslek Makbuzu Hizmetiesevoucher
e-Müstahsil Makbuzu Hizmetiepreceipt
Mali Rapor Bildirim Hizmetierevenue
e-Serbest Meslek Makbuzu Arşiv Hizmetiesevoucher_archive
e-Müstahsil Makbuzu Arşiv Hizmetiepreceipt_archive
e-Dekont Hizmetiebreceipt
e-Döviz Hizmetieexchangecert
e-Adisyon Hizmetiecheck
e-Sigorta Komisyon Gider Belgesi Hizmetieinsurancecomm
e-Gider Pusulası Hizmetierreceipt (v1.14 ile eklendi)

Zarfın diğer sabit alanları:

AlanDeğer
Sender/ContactInformation/ContactÖzel entegratörün (veya saklamacının) VKN (gerçek kişiyse TCKN)
Sender/ContactInformation/ContactTypeIdentifierVKN_TCKN
Receiver/IdentifierGIB
Receiver/ContactInformation/Contact3900383669 (Başkanlık VKN)
DocumentIdentification/StandardUBL-TR
DocumentIdentification/TypeUSERENVELOPE
Elements/ElementTypePROCESSUSERACCOUNT (açma) veya CANCELUSERACCOUNT (iptal)

"Eleman listesinde hem ProcessUserAccount hem CancelUserAccount elmanları bir arada bulunamaz."

Kaynak: e-Fatura_Uygulamasi_Ozel_Entegrasyon_Kilavuzu_v1.14_.txt

10.6 UserOptionCode — TAM tablo (hizmet × KAMU / ÖZEL / VUK 507)

HİZMETKAMUÖZELVUK 507 KAMUVUK 507 ÖZEL
e-Fatura1234
Fatura Saklama11121314
e-Arşiv21222324
e-Arşiv Arşiv31323334
e-Bilet41424344
e-İrsaliye51525354
e-İrsaliye Arşiv61626364
e-Serbest Meslek71727374
e-Müstahsil81828384
e-Serbest Meslek Arşiv91929394
e-Müstahsil Arşiv101102103104
e-Mali Rapor (Eski Nesil Cihaz)111112
e-Mali Rapor (Yeni Nesil Cihaz)121122
e-Dekont131132
e-Döviz141142
e-Adisyon151152
e-Sigorta Komisyon Gider Belgesi161162
e-Gider Pusulası171172173174

Schematron etiket ↔ kod eşleşmesi (zorunlu):

Etiketİzin verilen UserOptionCode
usergb1, 2, 3, 4
archive11, 12, 13, 14
earchive21, 22, 23, 24
archive_earchive31, 32, 33, 34
eticket41, 42, 43, 44
edespatch51, 52, 53, 54
archive_edespatch61, 62, 63, 64
esevoucher71, 72, 73, 74
epreceipt81, 82, 83, 84
esevoucher_archive91, 92, 93, 94
epreceipt_archive101, 102, 103, 104
erevenue111, 112, 121, 122
ebreceipt131, 132
eexchangecert141, 142
echeck151, 152
einsurancecomm161, 162
erreceipt171, 172, 173, 174

NOT: Codelist'teki UserType değişkeni (1,2,11,12,21,22,31,32,41,42) eski/dar bir listedir; fiilen uygulanan doğrulama yukarıdaki UserAccountCheck assert'leridir.

UserRole (GB/PK) zorunluluğu: usergb + kod 1/2 ise ve edespatch + kod 51/52 ise hr:UserRole tam 1 tane zorunlu; RoleCode sadece GB veya PK olabilir. Saklama, e-Arşiv, e-Arşiv arşiv, e-Bilet, e-İrsaliye arşiv hizmetlerinde UserRole ve AuthorizedWorkScope girilmemelidir.

Kaynak: e-Fatura_Uygulamasi_Ozel_Entegrasyon_Kilavuzu_v1.14_.txt; UBL-TR_Common_Schematron.xml; UBL-TR_Codelist.xml

10.7 Kullanıcı Hesabı Açma / İptal — HR-XML yapısı ve VUK 507 istisnası

Standart: HR-XML. Şema kontrolünden geçmezse hesap açılamaz. Örnek zarflar https://ebelge.gib.gov.tr/ adresinde.

1 ApplicationArea
  1.1 Sender/LogicalID  → Özel entegratörün VKN'sı (zarfı gönderen VKN ile AYNI olmalı)
  1.2 Receiver          → İçi boş
  1.3 CreationDateTime  → XML oluşturma zamanı
  1.4 Signature         → XAdES: entegratör mali mührü + İÇİNDE müşterinin SERİ (counter) imzası
2 DataArea
  2.1 Process / Cancel  → İçi boş
  2.2 UserAccount
      UserID            → Müşterinin VKN (10) / TCKN (11)
      PersonName        → FormattedName (tüzel: ticaret sicil unvanı) | GivenName+FamilyName (gerçek kişi)
      UserRole          → RoleCode: GB | PK ; RoleName: "Gönderici Birim" | "Posta Kutusu"
      AuthorizedWorkScope
         WorkScopeCode  → etiket (urn:...)
         WorkScopeName  → etiket açıklaması (WorkScopeCode ile aynı olabilir)
      AccountConfiguration/UserOptionCode → tablodan kod

Schematron ek zorunlulukları:

KuralKontrol
ApplicationAreaCheck1 tane oa:Sender ve oa:Signature zorunlu
OASignatureCheckİçinde 1 ds:Signature
CounterSignatureCheckxades:CounterSignature içinde 1 ds:Signature
Çoklu UserAccountAynı belgede birden fazla UserAccount varsa UserID, FormattedName, GivenName, MiddleName, FamilyName ve UserOptionCode değerleri hepsinde AYNI olmak zorundadır

VUK 507 İSTİSNASI (çok önemli):

  • VUK 507 kapsamındaki müşterinin mali mührünü içerme zorunluluğu YOKTUR (UserOptionCode 3/4, 13/14, 23/24, … 173/174 girildiğinde Merkez müşteri mührünü aramaz).
  • ANCAK: "VUK 507 kapsamında bir müşterinin hesabını ancak bu müşterinin Dijital Vergi Dairesi üzerinden çalışmak üzere başvuru yaptığı işletici kuruluşun çalıştığı entegratörler açabilir." Önce Dijital Vergi Dairesi'nden işletici kuruluş tercihi yapılmalıdır, aksi halde hesap açılamaz.
  • VUK 507 kapsamında entegratörün daha önce açtığı etiket varsa etiket bilgisi olmadan hesap tanımı yapılabilir; yoksa belge mutlaka etiket içermelidir.

İPTALDE e-İrsaliye sıra kuralı: Kapatılan etiketler sadece e-İrsaliye veya sadece e-Fatura için kullanılıyorsa etiket silinir. Hem e-İrsaliye hem e-Fatura için kullanılıyorsa önce e-İrsaliye etiketleri, sonra e-Fatura etiketleri kapatılmalıdır.

Kaynak: e-Fatura_Uygulamasi_Ozel_Entegrasyon_Kilavuzu_v1.14_.txt; UBL-TR_Common_Schematron.xml

10.8 Özel entegratör test adımları (6.1–6.6) — canlıya çıkış kabul kriterleri

Özel entegratörler önce "e-Fatura Uygulaması Entegrasyon Test Planı" dokümanındaki TÜM testleri geçmek zorundadır; sonra aşağıdakiler yapılır. e-İrsaliye kullanımı için ayrıca test planındaki e-İrsaliye testleri + 6.1 ve 6.5 adımları en az bir defa edespatch etiketiyle tamamlanmalıdır.

Adımİçerik
6.1 Kullanıcı Hesabı Açma(a) Şema+schematron'dan geçmiş onaylı hesap açma mesajını içeren zarf sendDocument ile Merkez'e başarıyla gönderilmeli; (b) Merkez'den gelen sistem yanıtı başarıyla alınabilmeli; (c) Sistem yanıtında zarf durumu 'ZARF BAŞARI İLE İŞLENDİ' görülebilmeli; (d) getApplicationResponse ile sorgulanıp durum kodu 'BASARIYLA TAMAMLANDI' (1300) alınabilmeli
6.2 Çoklu Hesap Açma(a) 1 kullanıcı + birden fazla etiket ikilisi (GB+PK); (b) en az 3 kullanıcı + her birine 1 etiket ikilisi; (c) en az 3 kullanıcı + her birine birden fazla etiket ikilisi
6.3 Gönderici BirimGB yetkili etiket ikililerinden portal kullanıcısına ardı ardına 10 ZARF × her zarfta 100 FATURA. Zarfların en az 3'ü FARKLI kullanıcılar tarafından gönderilmeli. İlk ve son zarf arasında EN FAZLA 5 DAKİKA.
6.4 Posta KutusuAynı hacim (10 zarf × 100 fatura), portal kullanıcısından PK yetkili etiketlere; en az 3'ü farklı kullanıcılarca alınmalı; en fazla 5 dakika
6.5 / 6.6 Hesap İptal6.1/6.2 ile birebir aynı yapı, CancelUserAccount için

Kapasite çıkarımı: GİB'in beklediği minimum işleme hızı ≈ 1000 fatura / 5 dakika (≈ 3,3 fatura/sn) — portal mimarisi bunu karşılamalıdır.

Kaynak: e-Fatura_Uygulamasi_Ozel_Entegrasyon_Kilavuzu_v1.14_.txt

10.9 Rol yükümlülükleri ve süre limitleri

GÖNDERİCİ BİRİM:

  • e-Faturayı ve sistem yanıtını UBL-TR'ye göre oluşturur, Ek-3'e göre imzalar/mühürler, Ek-1'e göre zarflar, Ek-3'e göre Merkez'e iletir, yasal süreler boyunca saklar.
  • Merkez'den gelen uygulama yanıtı ve sistem yanıtını alır, denetler, işler, elektronik imza / Mali Mühür DOĞRULAMASI YAPAR, saklar.
  • SÜRE: fatura yollandıktan sekiz gün sonra gelen uygulama yanıtlarını kabul etmemelidir; birden fazla UY gelirse ilk UY kabul edilir.
  • İrsaliye: yollandıktan yedi gün sonra gelen irsaliye yanıtları kabul edilmemeli; ilk irsaliye yanıtı kabul edilmeli.

POSTA KUTUSU:

  • Gelen e-fatura/sistem yanıtını alır, imza/mühür doğrulaması yapar, denetler, işler, saklar.
  • Uygulama yanıtı + sistem yanıtı oluşturur, imzalar/mühürler, zarflar, Merkez'e iletir, saklar.
  • SÜRE: uygulama yanıtını, faturayı aldıktan sonra sekiz gün içerisinde göndericiye yollamalıdır; 8 gün sonrası engellenmelidir; birden fazla gönderim engellenmelidir.
  • İrsaliye yanıtı: yedi gün içinde; sonrası engellenmeli; her irsaliyeye en fazla 1 kez; irsaliye yanıtı gönderilmesi isteğe bağlıdır.

MERKEZ:

  • Veri Aktarım Protokolünün tasarımı ve sunucu tarafı altyapısından sorumludur.
  • Gelen e-fatura/uygulama yanıtını alır, denetler, işler, gönderen adrese sistem yanıtı oluşturur ve iletir, işlem başarılıysa alıcı adresine iletir.
  • İmza doğrulaması YAPMAZ.

HER İKİ BİRİM İÇİN ORTAK: her adımda loglama zorunlu, felaketten kurtarma mekanizması zorunlu, sistem 7x24 çalışır durumda olmalı, iş sürekliliği sağlanmalı.

Kaynak: e-FaturaUygulamasiEntegrasyonKilavuzu-v1.10_.txt


11. Belge Numaralandırma

11.1 16 haneli format (3 + 4 + 9)

Mevzuat (509 SN VUK GT, V.4 Belge Numarası):

Kuralİçerik
YapıSeri-sıra numarası yerine: 3 haneli birim kodu + 13 haneli sıra numarası = 16 hane
Sıra numarası4 karakter yıl + 9 karakter müteselsil numara
Birim koduSerbestçe belirlenebilir. Başkanlık bazı birim kodlarının kullanımını yasaklayabilir veya bazı işlemler için belirli birim kodlarını zorunlu kılabilir
Sayaç kırılımıHer bir birim koduna ait sıra numarası KENDİ İÇİNDE oluşturulur ve takip edilir
Yıl başı sıfırlama9 karakterlik müteselsil numara, HER YILIN İLK GÜNÜ itibarıyla "1" rakamından başlatılarak kullanılır
TekillikMükellef bünyesinde aynı belge numarası birden fazla kullanılamaz
Çok sayfalı çıktıHer sayfada toplam sayfa sayısı + sayfa numarası gösterilmek koşuluyla aynı belge numarası kullanılır

Teknik (UBL-TR Fatura v1.0, cbc:ID): "Üç haneli alfanumerik birim kod ile 13 haneli müteselsil numaranın birleşimi". Örnek: <cbc:ID>GIB2009000000001</cbc:ID>

SCHEMATRON REGEX (fiili doğrulama, InvoiceIDCheck):

^[A-Z0-9]{3}20[0-9]{2}[0-9]{9}$

Birim kodu SADECE BÜYÜK HARF ve rakam (küçük harf, Türkçe karakter, tire yok). Yıl kısmı 20xx ile başlamak zorunda.

İstisnalar:

BelgeFormat
ReceiptAdvice (İrsaliye Yanıtı)ReceiptAdviceIDCheck sadece uzunluk kontrolü: string-length(cbc:ID) = 16
e-DekontEn az 4 haneli birim kodu + en az 14 haneli sıra numarası; sıra numarası = 4 karakter yıl + en az 10 karakter müteselsil numara
e-BiletHava yolu firmalarında bu numara yerine IATA nezdindeki kod numarası ile başlayan toplam 13 haneli bilet numarası kullanılabilir

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt; UBL-TR_Fatura_-_V_1.0_.txt; UBL-TR_Common_Schematron.xml

11.2 e-Fatura vs e-Arşiv numara serisi ayrımı ve GIB birim kodu kısıtı

Üç ayrı kural — portalın numaratör tasarımında zorunlu:

  1. e-Arşiv için AYRI birim kodu: "e-Arşiv Fatura uygulamasına dahil olan mükellefler, e-arşiv kapsamında düzenledikleri faturalarda e-fatura uygulamasında kullandıkları birim kodlardan FARKLI birim kodları belirleyerek kullanacaklardır." → Aynı ABC birim kodu hem e-Fatura hem e-Arşiv için kullanılamaz.
  1. İnternet satışları için AYRI birim kodu: "İzin alan mükellefler ve özel entegratörler internet üzerinden yapılan satışlar için sadece bu satışlara özgü, diğer satışlardan ayrı birim kod veya kodları belirleyerek fatura numarası yapısında kullanmalıdır."
  1. GIB birim kodu rezerve: "GIB birim kodu sadece Gelir İdaresi Başkanlığı sistemini kullanan portal kullanıcıları tarafından kullanılabilir. Başkanlık tarafından yetkilendirilen özel entegratörler ve entegrasyon kullanıcıları GİB birim kodunu KULLANAMAZLAR." (e-Arşiv Teknik Kılavuzu v1.18 ile getirilen sınırlama; v1.18 değişiklik notu: "GIB birim kodunun kullanımına engelleme sınırlandırılmıştır", 27.08.2025)

Uygulama sonucu — bir portalın numaratör tablosu en az şu boyutlarda kırılmalıdır:

(mükellef VKN) × (belge tipi: e-Fatura / e-Arşiv / e-İrsaliye / e-SMM / …)
              × (satış kanalı: internet / diğer)
              × (birim kodu)
              × (yıl)

Her kombinasyon kendi 9 haneli sayacını tutar ve 1 Ocak'ta 1'e döner.

ProfileID farkı: e-Arşiv faturada <cbc:ProfileID>EARSIVFATURA</cbc:ProfileID>; e-Fatura'da TEMELFATURA / TICARIFATURA / IHRACAT / …. Codelist'te ProfileIDTypeEarchive = ',EARSIVFATURA,' ayrı bir değişken olarak tutulur (yani EARSIVFATURA e-Fatura zarfıyla gönderilemez).

Kaynak: e-Arsiv_Teknik_Kilavuzu_V.1.18_.txt; UBL-TR_Codelist.xml


12. İmza, Mali Mühür ve Zaman Damgası

12.1 XAdES-BES, enveloped, zorunlu XML iskeleti, SHA256

Kural (Ek-3, Bölüm 3 + Entegrasyon Kılavuzu 4.3):

  • Minimum XAdES-BES
  • "Enveloped" tekniği ZORUNLU — "Enveloping" ve "Detached" teknikleri KABUL EDİLMEYECEKTİR
  • Fatura ve Uygulama Yanıtı imzalanır/onaylanır. SİSTEM YANITLARININ imzalanması veya onaylanması ZORUNLU DEĞİLDİR.
  • "Mesaj özetlerinin güvenlik açısından SHA256 olması önerilmektedir." (tavsiye)

Zorunlu XML iskeleti ("bu iskelette bulunan alanlar mutlaka kullanılmalıdır"):

<ds:Signature Id="Signature">
  <ds:SignedInfo Id="SignedInfo">
    <ds:CanonicalizationMethod/>
    <ds:SignatureMethod/>
    <ds:Reference URI="">              <!-- enveloped -->
      <ds:Transforms><ds:Transform/></ds:Transforms>
      <ds:DigestMethod/><ds:DigestValue/>
    </ds:Reference>
    <ds:Reference URI="#SignedProperties">
      <ds:DigestMethod/><ds:DigestValue/>
    </ds:Reference>
  </ds:SignedInfo>
  <ds:SignatureValue/>
  <ds:KeyInfo>
    <ds:KeyValue/>
    <ds:X509Data><ds:X509SubjectName/><ds:X509Certificate/></ds:X509Data>
  </ds:KeyInfo>
  <ds:Object>
    <xades:QualifyingProperties Target="Signature">
      <xades:SignedProperties Id="SignedProperties">
        <xades:SignedSignatureProperties>
          <xades:SigningTime/>
          <xades:SigningCertificate><xades:Cert>
            <xades:CertDigest><ds:DigestMethod/><ds:DigestValue/></xades:CertDigest>
            <xades:IssuerSerial><ds:X509IssuerName/><ds:X509SerialNumber/></xades:IssuerSerial>
          </xades:Cert></xades:SigningCertificate>
          <xades:SignerRole><xades:ClaimedRoles><xades:ClaimedRole/></xades:ClaimedRoles></xades:SignerRole>
        </xades:SignedSignatureProperties>
      </xades:SignedProperties>
    </xades:QualifyingProperties>
  </ds:Object>
</ds:Signature>

SCHEMATRON'UN FİİLEN DAYATTIĞI (bunlar reddetme sebebidir):

KuralAssert
XadesSignatureCheckds:SignedInfo/ds:Reference/ds:Transforms zorunlu; ds:KeyInfo zorunlu; ds:KeyInfo/ds:X509Data zorunlu; ds:Object zorunlu; xades:SigningTime zorunlu; xades:SigningCertificate zorunlu
XadesSignatureCheckForInvoiceYukarıdakiler + count(ds:SignedInfo/ds:Reference[@URI = '']) = 1 (tam bir enveloped reference)
X509DataCheckds:X509Certificate zorunlu
X509SubjectNameCheckds:X509SubjectName boşluk olamaz
SignatureMethodCheckUBL 2.1 (cbc:UBLVersionID='2.1') ise ds:SignatureMethod/@Algorithm ...xmldsig#rsa-sha1 OLAMAZ → SHA-1 yasak, SHA-256 kullanılmalıdır
SignatureCheckcac:Signature/cbc:ID/@schemeID = VKN_TCKN
SignatoryPartyPartyIdentificationCheckcac:SignatoryParty içinde schemeID = VKN veya TCKN olan en az 1 cbc:ID

Kaynak: Ek-3e-FaturaUygulamasiYazilimStandartlariVeNesneYapisi-v1.4_.txt; UBL-TR_Common_Schematron.xml; e-FaturaUygulamasiEntegrasyonKilavuzu-v1.10_.txt

12.2 Mali Mühür ve NES (509 SN VUK GT V.9)

Mali Mühür tanımı: Tüzel kişi, diğer kurum, kuruluş, işletmelere ve istemeleri halinde gerçek kişi mükelleflere ait; veri bütünlüğünün, kaynağın ve içeriğin garanti altına alınması ile gerekli durumlarda gizliliğin sağlanması amacıyla oluşturulan, Başkanlık adına TÜBİTAK BİLGEM KAMU SM tarafından hazırlanan elektronik sertifika altyapısı. (573 SN öncesinde "TÜBİTAK-UEKAE" yazıyordu.)

Temel kural:

"e-Belge uygulamalarından yararlanan mükellefler ile diğer kurum, kuruluş ve işletmelerin e-Belgelerini kendi mali mühür sertifikaları ile onaylamaları veya nitelikli elektronik sertifikaları (NES) ile imzalamaları ESASTIR. Ancak e-Belge uygulamalarını özel entegratörler vasıtasıyla kullananlar, düzenlenecek e-Belgelerin özel entegratörün mali mühür sertifikası ile onaylanmasına Başkanlıkça teknik kılavuzlarda belirlenen usul ve esaslarla izin verebilirler."

Yükümlülükler:

KonuKural
Yetkili kontrolüMali mühür, kurumun bildirilen yetkili/yetkililerinin kontrolü altında kullanılmalı; yetkili değişirse derhal yeni yetkili belirlenip Başkanlığa bildirilmeli
Unvan değişikliğiEski unvanlı sertifika geçerliliğini kaybeder; 15 GÜN içinde yeni unvana uygun sertifika başvurusu yapılmalı
HSMMümkün; ancak yükleme TÜBİTAK BİLGEM KAMU SM veya yetkilendirdiği kişiler/kurumlar tarafından yapılmalı ve HSM modeli KAMU SM'nin yayımladığı niteliklere sahip olmalı
Bilgi kaynağımm.kamusm.gov.tr
526 SN yeniliğiBaşkanlık, BTK tarafından yetkilendirilen elektronik sertifika hizmet sağlayıcı kuruluşları da ("Mali Mühür Üretimi Başvuru, Değerlendirme ve İzin Kılavuzu" koşullarını sağlarsa) mali mühür üretimi ve satışı için yetkilendirebilir; yetkilendirilenler ebelge.gib.gov.tr'de yayımlanır
Özel entegratör ek yükümlülüğüTÜBİTAK-BİLGEM Kamu SM'den "Mali Mühür Uyum Değerlendirme Raporu" almak zorunludur

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt; e-Fatura_Uygulamasi_Ozel_Entegrasyon_Kilavuzu_v1.14_.txt

12.3 Zaman damgası — korpustaki tüm dayanaklar (sınırlı)

e-Fatura zarf/sistem yanıtı katmanında zaman damgası zorunluluğu getiren bir hüküm korpusta YOKTUR. Zaman damgası korpusta yalnızca üç bağlamda geçer:

#Bağlamİfade
1509 — özel entegratörün verebileceği hizmetler"e-Belge ve e-Belge Raporu oluşturma, mali mühürle onaylama, zaman damgası kullanma ve oluşturulan belgeleri [...] alıcıya ve [...] Başkanlığa elektronik ortamda iletme hizmeti verebilirler."
2509 — mükellefin talep hakkı"e-Belge uygulamalarına ilişkin, özel entegratör sistemi üzerinden hizmet alan mükellefler, [...] özel entegratörün mali mührünün ve zaman damgasının kullanılmasını talep edebilirler."
3e-Arşiv Teknik Kılavuzu — e-Arşiv RaporuRapor "mali mühür/elektronik imza ile ve zaman damgasıyla imzalanarak" iletilir

Ayrıca 509 SSS'de e-Defter için: "e-Defter ve berat dosyalarının, Zaman damgası kullanımı zorunlu değildir." (e-Fatura kapsamı dışında.)

Zaman bilgisi yerine kullanılan alanlar (fiilen zorunlu olanlar):

AlanZorunluluk
xades:SigningTimeXAdES-BES içinde schematron tarafından zorunlu tutulur
sh:CreationDateAndTimeZarf oluşturma anı (xs:dateTime)
cbc:IssueDateSchematron TimeCheck: günün tarihinden ileri olamaz ve 01.01.2005'ten önce olamaz
e-Fatura düzenleme saatiDüzenleme tarihi yanında saat ve dakika gösterilebilir (509 V.5.1)
İzleme kayıtlarıTümünde zaman bilgisi bulunmalıdır (İşlem Kayıt İzleme Kontrol Listesi)

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt; e-Arsiv_Teknik_Kilavuzu_V.1.18_.txt; UBL-TR_Common_Schematron.xml


13. Kullanıcı Listeleri (UserList / UserTempList)

13.1 UserList — XML yapısı (Kılavuz V.1.0, 02.04.2026)

Kayıtlı kullanıcı listesi https://merkez.efatura.gov.tr/EFaturaMerkez/userList.jsp (test: merkeztest...). ÖE'ler azami saatte bir çekmelidir.

#ElemanTürkçeKardinaliteDeğerler
1UserMükellef bilgi alanıZorunlu (1..n)
2IdentifierKimlik NoZorunlu (1)VKN 10 hane / TCKN 11 hane
3TitleUnvan / Ad SoyadZorunlu (1)
4TypeMükellef TipiZorunlu (1)KAMU veya OZEL
5FirstCreationTimeİlk eklenme tarihiZorunlu (1)2021-03-09T15:36:56
6AccountTypeKullandığı yöntemZorunlu (1)GIBPORTAL, ENTEGRASYON, OZELENTEGRASYON
7DocumentsEtiket bilgileriZorunlu (1) Document / (1..n) Alias

Documents / Document / Alias:

  • <Document type="Invoice">e-Fatura etiketleri
  • <Document type="DespatchAdvice">e-İrsaliye etiketleri
  • AliasName (zorunlu, urn:...), CreationTime (zorunlu), DeletionTime (seçimli 0..1, doluysa etiket SİLİNMİŞTİR)
<UserList>
  <User>
    <Identifier>3900383669</Identifier>
    <Title>GELİR İDARESİ BAŞKANLIĞI</Title>
    <Type>KAMU</Type>
    <FirstCreationTime>2014-04-01T00:00:00</FirstCreationTime>
    <AccountType>ENTEGRASYON</AccountType>
    <Documents>
      <Document type="Invoice">
        <Alias><Name>urn:mail:defaultgb@gib.gov.tr</Name>
               <CreationTime>2014-04-01T00:00:00</CreationTime></Alias>
        <Alias><Name>urn:mail:defaultgb@gmail.com</Name>
               <CreationTime>2014-04-01T00:00:00</CreationTime>
               <DeletionTime>2026-03-26T00:00:00</DeletionTime></Alias>
      </Document>
      <Document type="DespatchAdvice"> ... </Document>
    </Documents>
  </User>
</UserList>

Portal tasarım notu: Liste GB/PK ayrımını AYRI bir alanla vermez — GB/PK ayrımı yalnızca etiket adı konvansiyonunda (...gb@... / ...pk@...) ve hesap açarken gönderilen hr:UserRole/hr:RoleCode (GB/PK) değerinde taşınır. Fatura gönderirken alıcının PK etiketi, alıcı yanıt verirken sizin GB etiketiniz kullanılır.

Kaynak: UserList__Kullanici_Listeleri__Kilavuzu_V.1.0_.txt

13.2 UserTempList — hesap kapatma / sicil entegrasyonu (02.04.2026 ile YENİ)

509 SN VUK GT kapsamında hesapları kapatılan mükellefleri ve sicil entegrasyonu sonuçlarını takip için oluşturulmuş ikinci liste.

Yaşam süresi: "UserTempLıst'de yer alan kayıtlar listeye girdiği tarihi takip eden 7 GÜN boyunca belirtilen listede kalmaya devam edecektir."

ÖZEL ENTEGRATÖRÜN ZORUNLU AKSİYONLARI (koda dökülmelidir):

  1. "UserTempLıst'de yer alan mükelleflerin bağlı olduğu özel entegratörlerin, ClosureDate elemanında yazan tarih/zaman itibarıyla mükellefin TÜM e-Belge hesaplarını KAPATMA YÜKÜMLÜLÜĞÜ bulunmaktadır."
  2. Hesapları kapatılan mükelleflerin e-Arşiv Raporlarını, ClosureDate'ten itibaren 24 SAAT içinde göndermek zorundadır. Bu kapsamda sadece belge tarihi (IssueDate) kapatılma tarihinden ÖNCEKİ veya AYNI tarihli belgelerin bilgileri gönderilebilir.
  3. Yeniden açılma: Hesap tekrar açılırsa mükellefin bilgileri kapanmadan önceki haliyle UserList içinde yayımlanır ve özel entegratörün HR-XML kullanıcı açma işlemini TEKRAR YAPMASINA GEREK YOKTUR.
#ElemanTürkçeKardinaliteNot
1UserMükellef bilgi alanıZorunlu (1..n)
2IdentifierKimlik NoZorunlu (1)VKN 10 / TCKN 11
3NewIdentifierYeni Kimlik NoZorunlu (1)Nevi değişikliği, bölünme, birleşme vb.
4ClosureDateHesapların sonlandırıldığı tarihZorunlu (1)Örn. 20260326 (YYYYAAGG)
5StatusDurumZorunlu (1)"Bu alanın değeri 1 olduğunda, ilgili kullanıcıların tüm e-Belge hesapları kapatılmalıdır. Bu elaman 1 gelecektir."
6RegistrationCodeSonlandırılma koduZorunlu (1)Sicil durum kodu (örn. 861)
7RegistrationDescriptionSonlandırılma gerekçesiZorunlu (1)Sicil durum kodu açıklaması
<UserTempList>
  <User>
    <Identifier>3900383669</Identifier>
    <NewIdentifier></NewIdentifier>
    <ClosureDate>20260326</ClosureDate>
    <Status>1</Status>
    <RegistrationCode></RegistrationCode>
    <RegistrationDescription></RegistrationDescription>
  </User>
</UserTempList>

Dikkat: ClosureDate UserTempList'te 20260326 (tarih, saatsiz) formatında; UserList'teki CreationTime/DeletionTime ise ISO 2026-03-26T00:00:00 formatındadır — iki liste farklı tarih formatı kullanır.

Kaynak: UserList__Kullanici_Listeleri__Kilavuzu_V.1.0_.txt


14. Muhafaza, İbraz ve Saklama Hizmeti

14.1 509 SN VUK GT Bölüm VI — Muhafaza ve İbraz

Temel kurallar:

  • Muhafaza yükümlülüğü olanlar, hem düzenledikleri hem adlarına düzenlenen e-Belgeleri, kendilerine iletim/teslim şekline uygun olarak yasal süreler dâhilinde muhafaza ve ibraz etmekle yükümlüdür.
  • "e-Belgenin düzenleyicisi tarafından KÂĞIDA BASILARAK SAKLANMASI SÖZ KONUSU DEĞİLDİR." Elektronik imza/mali mühür doğrulaması ancak elektronik ortamda yapılabildiği için.
  • Düzenleyen: Mali Mühür veya elektronik imzayı da İÇERECEK ŞEKİLDE kendi bünyesindeki elektronik/manyetik/optik ortamlarda muhafaza eder.
  • Alıcı: elektronik iletildiyse imzayı da içerecek şekilde elektronik ortamda; kâğıt teslim edildiyse kâğıt ortamda muhafaza eder.
  • Kapsam: arşivlenen belgelerin doğruluğuna, bütünlüğüne ve değişmezliğine ilişkin her türlü elektronik kayıt ve veri, veri tabanı dosyası, saklama ortamı ile doğrulama ve görüntüleme araçlarının TÜMÜ. Kolay erişim + anlaşılır/eksiksiz görüntüleme + okunabilir kâğıt baskı üretebilme sağlanmalıdır.

COĞRAFİ ZORUNLULUK:

"e-Belgelerin muhafazasının Türkiye Cumhuriyeti sınırları içerisinde ve Türkiye Cumhuriyeti kanunlarının geçerli olduğu yerlerde yapılması zorunludur. Bu zorunluluk yurt dışında İKİNCİL bir arşivleme yapılmasına engel teşkil etmez."

(Aynı şekilde e-Belge gönderip alma bilgi işlem sistemi yazılım/donanım altyapısının da Türkiye'de olması zorunludur.)

ÜÇÜNCÜ KİŞİ SAKLAMA:

Kuralİçerik
EsasMükellefin kendi sistemi; üçüncü kişiler nezdinde de yapılabilir
Sorumluluk"elektronik saklama hizmetinin alınması mükelleflerin e-Belgelerinin muhafaza ve ibraza ilişkin ASLİ SORUMLULUĞUNU ORTADAN KALDIRMAZ"
İzinBaşkalarına saklama hizmeti verecekler "Elektronik Belge Saklama Hizmeti Başvuru Formu ve Taahhütnamesi" ile başvurup saklama izni almak zorundadır; başvuruya BİS Raporu eklenir
Gizlilikİzin alanlar bilgileri saklama/muhafaza amacı dışında kullanamaz, yazılı izin olmadan 3. kişilerle paylaşamaz; ticari sır güvenliğinden sorumludur; ihlalde saklama izni iptal edilebilir
İzinsiz saklama"Başkanlıktan elektronik belge saklama hizmeti izni almadan saklama yapılması Başkanlık nezdinde HÜKÜM İFADE ETMEZ"
YayınSaklama izni alanların listesi ebelge.gib.gov.tr'de yayımlanır
Kapsam genişlemesiMuhafaza yükümlülüğü, e-Belgeler 3. kişi nezdinde saklanıyorsa saklayan için de yasal süreler içinde geçerlidir

Kaynak: Dipnotlu_Guncel_Sekli_ile_509_Sira_No_lu_VUK_Genel_Tebligi_.txt

14.2 e-Fatura Saklama Hizmeti — izin, veri özellikleri, bildirim süreleri

1) İZİN ŞARTLARI (Bölüm 2):

  • Önce e-Fatura Uygulamasını ENTEGRASYON YÖNTEMİYLE kullanma izni alınmalıdır. Özel entegrasyon izni alanlar da 421 SN VUK GT ve bu kılavuz esasları doğrultusunda saklama izni başvurusu yapabilir.
  • Hizmet e-Fatura uygulamasına kayıtlı gerçek ve tüzel kişi mükelleflere verilebilir.
  • ISO belgeleri: TS ISO IEC 27001 / ISO 27001 (bilgi güvenliği), ISO 22301 (iş sürekliliği), TS ISO IEC 20000 / ISO 20000 (BT hizmet yönetimi). "Ancak Başkanlık'tan özel entegrasyon izni alan özel entegratörler için bu zorunluluk aranmaz."
  • Süreçler ITIL uyumlu, sistem ITIL sertifikalı personel tarafından yönetilmelidir.
  • BİS raporunda: saklama ortamları, saklama üniteleri, fiziksel koruyucu malzemeler, depolama sistemleri, yedekleme sistemleri, iş sürekliliği ve felaketten kurtarma sistemleri, belgelerin maksimum saklama süreleri, depolama ünitesi türleri ayrıntılı açıklanmalıdır.
  • Belge Yönetim Sistemi kurulması ve yönetilmesi zorunludur.
  • EK 1 "İşlem Kayıt İzleme ve Kontrol Listesi" ve EK 2 "Felaketten Kurtarma Kontrol Listesi"ne uyulması zorunludur.

2) SAKLANACAK VERİ ÖZELLİKLERİ (Bölüm 3):

  • e-Fatura, Başkanlığın belirlediği format ve üzerindeki mali mührü/e-imzayı içerecek şekilde ORİJİNAL HALİNDE ve BÜTÜNLÜĞÜ KORUNARAK saklanmalıdır.
  • "Fatura, sistem içerisinde bir TASNİF SİSTEMİ oluşturularak ve İNDEKSLEME yapılarak saklanmalıdır. İndeksleme kişi-kurum, VKN-TCKN, yıl, birim-kod, müteselsil numaraları verebilecek şekilde yapılmalıdır."
  • "Fatura aramada kullanılacak anahtarlardan biri VKN veya TCKN ile ilişkili olarak kullanılacak FATURA NUMARASI olmalıdır."

3) BAŞKANLIK SİSTEMİNE BİLGİ GİRİŞİ (Bölüm 4) — SÜRELER:

OlaySüre
Saklama hizmeti başlangıcı bildirimiHizmetin başladığı tarihi takip eden 7 İŞ GÜNÜ içinde
Saklama süresi bitmeden hizmetin sona ermesi3 GÜN içinde bilgi girişi zorunlu
  • Bildirim yöntemi: Özel Entegratör Tarafından Mükellef Bilgisi Aktarımı (USERENVELOPE / HR-XML). Etiket = archive, UserOptionCode = 11 / 12 / 13 / 14.
  • "Saklama hizmeti için her mükellef işleminde 1 MESAJ ve 1 ETİKET kullanmalıdır." (schematron UserAccountCountCheck: archive için tam 1 hr:UserAccount; ayrıca UserRole ve AuthorizedWorkScope girilmemelidir.)
  • Hizmet sona ererse veriler güvenli saklama ortamları vasıtasıyla mükelleflere devredilir.
  • İZİN İPTALİ: Hizmet sona erdiği halde saklamaya devam edilirse veya bilgi girişi yapılmadan sistemde herhangi bir mükellefe ait veri tespit edilirse saklama izni iptal edilir.

4) LOG SAKLAMA (EK 1 — hem saklama hem özel entegrasyon kılavuzunda aynı):

GereksinimSüre / İçerik
Tüm izleme kayıtlarıEN AZ 10 SENE saklanmalı
Gönderilen ve alınan HER ZARFSaklanmalı ve saklandıktan sonra EN AZ 10 SENE muhafaza edilmeli
Log içeriğiLog değişmezliği (değiştirilemeyen log cihazı / günlük arşiv imzalı dosyalar), zaman bilgisi, uygulama+sunucu bilgisi, iç ve gerçek IP, başarı/başarısızlık ibaresi, hata nedeni, gönderilen zarfın numarası, kullanılan GİB web servis metodunun adı

Kaynak: e-FaturaUygulamasiSaklamaKilavuzu_.txt; UBL-TR_Common_Schematron.xml


15. Portal Geliştirme Özeti — Durum Makinesi ve Zaman Aşımı

15.1 TEMELFATURA durum akışı

OLUSTURULDU → IMZALANDI → ZARFLANDI → GONDERILDI
  → [S_APR 1000..1200] → ISLENDI
  → [S_APR 1300] BASARIYLA TAMAMLANDI  ← TERMINAL (başarı)
  → [S_APR 1150/1160/1177 vb.] HATALI   ← TERMINAL (red)
  → [İptal Portali, ≤8 gün, karşı taraf onayı] IPTAL_EDILDI (1235) ← TERMINAL
  → [İtiraz Portali, TTK 18/3 bildirimi] ITIRAZ_BILDIRILDI → (izleyen ayın 15'ine kadar onay)

15.2 TICARIFATURA durum akışı

... GONDERILDI → TESLIM_EDILDI
  → [alıcı, ≤8 gün] KABUL (ApplicationResponse/KABUL)     ← TERMINAL
  → [alıcı, ≤8 gün] RED (ApplicationResponse/RED)          ← TERMINAL (= iptal)
       └─ satıcı RED'e RED gönderemez; harici itiraz veya YENİ FATURA
  → [alıcı, defterlere kayıttan sonra] IADE (ApplicationResponse/IADE + IADE faturası)
       └─ iade faturasına KABUL/RED gönderilemez
       └─ iade faturası TICARIFATURA profilinde OLAMAZ (bkz. 5.4)
  → [8 gün geçti, cevap yok] ZIMNEN_KABUL (TTK 21/2)       ← TERMINAL

15.3 EARSIVFATURA durum akışı

OLUSTURULDU → XADES-BES ile IMZALANDI → ALICIYA ILETILDI
  → [GÜNLÜK e-Arşiv Raporu, XADES-A, izleyen günün sonuna kadar] RAPORLANDI
       └─ PORTAL kullanıcısı ise rapor yükümlülüğü YOK
       └─ SARJANLIK ise ANLIK rapor
  → [≤8 gün, iptal talebi + karşı taraf onayı] IPTAL_EDILDI
       └─ Özel entegratör/entegrasyon: portal yerine "İptal Raporu" (faturaIptal elemanı)
  → [TTK 18/3 harici itiraz + bildirim] ITIRAZ_BILDIRILDI
       └─ faturaItiraz elemanı ile raporlanır
       └─ onay süresi: belgenin ait olduğu ayı izleyen ayın 15'i sonu

15.4 e-İRSALİYE durum akışı

TASLAK (şoför/plaka/sevk zamanı bilinmiyorsa)
  → ONAYLANDI → IMZALANDI → ZARFLANDI (SENDERENVELOPE) → GONDERILDI
  → [1000 / 1100] SEVKIYAT BASLATILABILIR (Portal/Doğrudan Entegrasyon)
       └─ ÖE'de: ÖE sistemine iletim yeterli; ÖE 15 dk içinde GİB'e iletmek zorunda
  → [1200/1300] ISLENDI
  → [alıcı, fiili sevkten ÖNCE] RED (irsaliye yanıtı) ← tek "iptal benzeri" mekanizma
  → [alıcı, ≤7 gün] KABUL / KISMI KABUL (ReceiptAdvice, miktar alanlarıyla)
  → [7 gün geçti, yanıt yok] TAM TESLIM ALINMIS SAYILIR → tamamı faturalanır
  → İPTAL: YOK. Hata varsa YENİ e-İrsaliye düzenlenir.

15.5 ZAMAN AŞIMI TABLOSU — tek bakışta

İşlemSüreBaşlangıçSistem engelliyor mu?
e-Fatura KABUL/RED/IADE uygulama yanıtı8 günFaturanın alınmasıEVET (posta kutusu engellemeli)
e-Fatura iptal talebi oluşturma8 günAlıcıya iletilme tarihiEVET (açık hüküm)
e-Fatura iptal talebi onaylama8 günAlıcıya iletilme tarihiEVET (açık hüküm)
e-Fatura itiraz talebi ONAYLAMAİzleyen ayın 15'i sonuFaturanın ait olduğu ayKorpusta engelleme ifadesi YOK
e-Arşiv/e-SMM iptal8 günBelgenin alıcıya iletilme tarihiAçık engelleme ifadesi YOK
e-Arşiv/e-SMM itiraz ONAYLAMAİzleyen ayın 15'i sonuBelgenin ait olduğu ayKorpusta engelleme ifadesi YOK
e-Arşiv Raporu gönderimiİzleyen günün sonu (günlük)Belge düzenleme günüVUK cezası uygulanır
e-Arşiv Raporu — SARJANLIKANLIKFatura düzenlenmesiVUK cezası uygulanır
e-İrsaliye yanıtı7 günFiili sevk tarihi / irsaliyenin gönderilmesi (çelişkili)Gönderici birim kabul etmemeli, PK engellemeli
ÖE'nin e-İrsaliyeyi GİB'e iletmesi15 dakikaÖE sistemine iletimZorunluluk (kılavuz)
Fatura düzenleme7 günMalın teslimi / hizmetin yapılması (VUK 231/5)
Merkez retry (1210 → 1215)4 deneme × 2 saat = 8 saat1210 durum koduOtomatik
Kapatılan hesabın e-Arşiv Raporu24 saatClosureDateÖE yükümlülüğü
Saklama hizmeti başlangıç bildirimi7 iş günüHizmetin başlamasıSaklama izni iptali riski
Saklama hizmeti sona erme bildirimi3 günHizmetin sona ermesiSaklama izni iptali riski
Mali mühür unvan değişikliği başvurusu15 günUnvan değişikliğiSertifika geçersizleşir

Kaynak: Bu tablo, yukarıdaki bölümlerde kaynağı tek tek belirtilen hükümlerden derlenmiştir; e-İrsaliye satırı e-FaturaUygulamasiEntegrasyonKilavuzu-v1.10_.txt (satır 322-325) ve e-Irsaliye_Uygulama_Kilavuz_1.2_.txt'ye dayanır.


16. Korpus Boşlukları ve Doğrulanamayan Hususlar

Aşağıdaki hususlar korpusta bulunmamakta veya çelişkili olduğu için portal implementasyonu öncesinde GİB'e teyit ettirilmelidir.

16.1 Zarf, web servis ve teknik altyapı

#BoşlukDurum
1Zarf boyut limiti (MB)e-Fatura zarfı/ZIP için bayt cinsinden üst sınır korpusta hiçbir yerde yoktur. Sadece belge ADEDİ sınırları vardır (Elements≤10, ElementCount≤1000, Invoice≤100). Karşılaştırma için e-Arşiv RAPORU 100 MB, e-Bilet raporu 5 MB — bunlar e-Fatura zarfı için GEÇERLİ DEĞİLDİR. DOĞRULANAMADI
2Canlı/test SOAP endpoint URL'lerisendDocument/getApplicationResponse için gerçek endpoint adresleri korpusta YOK. Ek-3 sadece "WSDL belgesine www.efatura.gov.tr adresinde yer alan e-Fatura Paketinden ulaşılabilir" der. WSDL dosyasının kendisi korpusta yoktur. DOĞRULANAMADI
3WSDL içeriğiEFaturaFaultMessage/EFaturaFaultType/EFaturaFault tiplerinin XSD tanımı, port/binding/service adları, targetNamespace (sadece fault namespace'i http://gib.gov.tr/vedop3/eFatura biliniyor) korpusta yoktur. DOĞRULANAMADI
41191 durum kodunun anlamıSchematron AppResponseCodeType listesinde var; Ek-2 v1.5 durum kodu tablosunda YOK. DOĞRULANAMADI
5MultipleType elemanıEk-1 zorunlu-görünümlü tanımlar ama schematron'da hiçbir kontrol yoktur; Merkez'in bu alana bakıp bakmadığı anlaşılmıyor. DOĞRULANAMADI
6Hash algoritması güncelliğiEk-3 v1.4 (2014) "MD5, 32 karakter" der. MD5'in SHA-256 ile değiştirilip değiştirilmediğine dair güncel duyuru korpusta yoktur. (İmza tarafında SHA-256'ya geçiş SignatureMethodCheck ile zorlanmış; hash tarafında karşılığı yoktur.) DOĞRULANAMADI
7sendDocument vs sendDocumentFileÖzel Entegrasyon Kılavuzu v1.14 Bölüm 5'te USERENVELOPE için "sendDocumentFile", aynı kılavuzun 6.1/6.5 test adımlarında ve Ek-3'te "sendDocument" geçer. Merkez servisinde metot adının gerçekte hangisi olduğu kesinleştirilemiyor (sendDocumentFile e-Arşiv rapor servisinin metodudur). DOĞRULANAMADI
8USERENVELOPE TypeVersion çelişkisiÖzel Entegrasyon Kılavuzu v1.14 (29.06.2026, GÜNCEL) "TypeVersion: 1.0 yazılmalıdır" derken schematron TypeVersionCheck koşulsuz '1.2' dayatır. Schematron'un daha yeni (24.08.2026) olması gerekçesiyle 1.2 önerilmiştir, ancak GİB'e teyit ettirilmelidir.
9CREDITNOTE zarf kullanımıElementType listesinde vardır ve SENDERENVELOPE ile taşınabilir; ancak hangi senaryoda/hangi belge için kullanıldığına dair açıklama korpustaki kılavuzların hiçbirinde yoktur. DOĞRULANAMADI
10BİS Raporu şablonu, Test Tanım Formu, Canlı Tanım Formu, e-Fatura Test Planıİçerikleri korpusta yoktur (e-Fatura Paketi içinde olduğu söylenir). DOĞRULANAMADI
11UserList/UserTempList çekme protokolüUserList Kılavuzu V.1.0 sadece XML yapısını anlatır; UserTempList'in hangi URL'den, hangi metotla, hangi sıklıkta çekileceği belirtilmemiştir. UserList için sadece userList.jsp adresi ve "azami saatte bir" sıklığı bilinmektedir. DOĞRULANAMADI
12RegistrationCode değer listesiUserTempList'teki sicil durum kodlarının (örnekte 861) tam listesi ve açıklamaları korpusta yoktur. DOĞRULANAMADI
13Ek-1 / Ek-2 / Ek-3 güncel sürümleriKorpustaki Ek-1 v1.5 (Mart 2017), Ek-2 v1.5 (Kasım 2017), Ek-3 v1.4 (Ağustos 2014), Entegrasyon Kılavuzu v1.10 (Haziran 2018) — 24.08.2026 tarihli güncel paketle arasında 8-12 yıl vardır. Schematron ile çelişen noktalar (TypeVersion, HeaderVersion, Sender/Receiver kardinalitesi, USERENVELOPE'un Ek-1'de olmaması, PackageProxy sürümü) bu kılavuzların güncellenmemiş olmasından kaynaklanıyor olabilir.

16.2 Fatura senaryoları, iptal, itiraz ve iade

#Boşluk / ÇelişkiDurum
14Ticari faturada UY süresi senaryo kılavuzunda YOKUBL-TR Ticari Fatura Senaryosu V0.3 (Mart 2016) dosyasında hiçbir gün/süre sınırı geçmez. 8 günlük süre yalnızca Entegrasyon Kılavuzu v1.10 ve İptal/İtiraz Kılavuzu V1.2'den türetilmiştir. Senaryo kılavuzu bu yönüyle EKSİK/ESKİDİR.
15ÇELİŞKİ — IADE + TICARIFATURASenaryo V0.3 bölüm 3.2.4 örneği ProfileID=TICARIFATURA kullanır; güncel InvoiceTypeCodeCheck (satır 176) bunu AÇIKÇA YASAKLAR. Schematron esastır ama GİB kılavuzu güncellememiştir.
16ÇELİŞKİ — IADE örneğinde DocumentTypeCode eksikSenaryo V0.3'teki BillingReference örneği <cbc:DocumentType>FATURA</cbc:DocumentType> kullanır ve cbc:DocumentTypeCode hiç yoktur. IADEInvioceCheck bunu ZORUNLU kılar. GİB'in kendi örneği kendi schematron'undan geçmez.
17ÇELİŞKİ — UBLVersionID/CustomizationIDUygulama Yanıtı Kılavuzu V0.2 "2.1"/"TR1.2" der; Ticari Fatura Senaryosu V0.3'teki ApplicationResponse örnekleri "2.0"/"TR1.0" kullanır. UBLVersionIDCheck / CustomizationIDCheck kurallarının tam metni bu incelemede okunmamıştır — implementasyon öncesi ayrıca okunmalıdır.
18ProfileID listesi tutarsızlığıUBL-TR Kod Listeleri V1.43 bölüm 2.2'de STDKODFATURA yer alır; UBL-TR_Codelist.xml içindeki ProfileIDType değişkeninde YOKTUR (liste: TICARIFATURA, TEMELFATURA, YOLCUBERABERFATURA, IHRACAT, OZELFATURA, KAMU, HKS, ENERJI, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS). Ayrıca V1.43'ün PDF→metin çevriminde sütun hizalaması bozuk olduğu için senaryo adı ↔ açıklama eşleşmesi metinden birebir okunamaz. Kesin liste için UBL-TR_Codelist.xml esas alınmalıdır.
19e-Arşiv iptalinde sistem engellemesie-Fatura kılavuzunda "8 günü aşan sürelerde sistem talep oluşturulmasına ya da talebin onaylanmasına imkan vermemektedir" şeklinde AÇIK bir engelleme hükmü varken, e-Arşiv V1.1'de böyle bir cümle YOKTUR. DOĞRULANAMADI
20"İptal Raporu" şema detayı yoke-Arşiv V1.1, özel entegratör/entegrasyon kullanıcılarının "Başkanlığa gönderecekleri İptal Raporu ile" iptal talebinde bulunabileceğini söyler ancak bu raporun ayrı bir şeması/servisi tarif edilmemiştir. eArsivRaporu/faturaIptal elemanı ile aynı şey olup olmadığı AÇIKÇA belirtilmemiştir (güçlü bir çıkarım, birebir ifade yok). "İtiraz Raporu" da sadece versiyon geçmişinde geçer.
21İtiraz talebinde 8 günlük süre var mı?İptal/İtiraz Kılavuzu V1.2, İTİRAZ TALEBİ OLUŞTURMA için (iptalden farklı olarak) açık bir 8 günlük sistem kısıtı belirtmez; sadece TTK 18/3 itirazının 8 gün içinde YAPILMIŞ olması gerektiği ima edilir. DOĞRULANAMADI
22İptal talebi reddedilirse/süresi geçerse ne yapılacağıYeni fatura mı, düzeltme mi — hiçbir kılavuzda tarif edilmemiştir. Sadece sanal Ba/Bs sonucu belirtilmiştir. DOĞRULANAMADI
23e-SMM/e-MM iptal gerilimi509 SSS: "Mali mühür ya da NES ile imzalanan e-SMM/e-MM belgesi iptal edilemez. Ancak söz konusu belgede var olan hata durumunda kanunun öngördüğü diğer bilgi ve belgelerle tevsik edilmesi durumunda kayıtlara alınmayabilir" — bu, e-Arşiv İptal/İtiraz Kılavuzu V1.1'in e-SMM için sistem üzerinden iptal öngörmesiyle GERİLİM içindedir; SSS'nin tarihi korpusta belirtilmemiştir.
24Portal form alanı asimetrisie-Fatura İptal/İtiraz Portalinde "İptal Gerekçesi" alanı YOKTUR (form: İşlem Sahibi, Fatura No, Ödenecek tutar, akıllı kart). e-Arşiv portalinde ise "İptal Gerekçesi" ZORUNLUDUR. Nedeni açıklanmamıştır.
25UY zamanlama kontrolü schematron'da yokUygulama Yanıtı IssueDate/IssueTime ile faturanın IssueDate'i arasında süre/sıralama kontrolü yapan schematron kuralı bulunamadı — TimeCheck kuralı Main Schematron'da YORUM SATIRINA ALINMIŞTIR (<!--<sch:extends rule="TimeCheck"/>-->). Yani 8 günlük kontrol schematron seviyesinde DEĞİL, uygulama/posta kutusu seviyesinde yapılır.
26509 SSS'de iade/gider pusulası sorusu yok509 Çok Sorulan Sorular dosyasında "iade" veya "gider pusulası" konulu hiçbir soru bulunmamaktadır. Nihai tüketici iadesi ile ilgili SSS düzeyinde ek açıklama yoktur.

16.3 e-İrsaliye

#Boşluk / ÇelişkiDurum
27TransportEquipmentIDSchemeIDType History.txt'de YOKBu kural/liste History.txt'de hiç geçmez. History.txt'nin son kaydı 20260701'dir ve orada yalnızca LicensePlateIDSchemeIDType/Check güncellemesi vardır. Yeni dorse kontrolünün hangi tarihte eklendiği (27.07.2026 mı, 24.08.2026 düzeltmesi mi) DOĞRULANAMADI. Yalnızca Codelist + Common + Main Schematron'da mevcut olduğu kesindir.
28Dorse/plaka schemeID açıklamaları yokDORSE, YABANCIDORSE, YABANCIDORSEPLAKA ve YABANCIPLAKA değerlerinin AÇIKLAMALARI ve hangi durumda hangisinin seçileceği hiçbir kılavuzda yazmaz. UBL-TR Kod Listeleri V1.43 Bölüm 2.1'de yalnızca PartyIdentification schemeID'leri listelidir; LicensePlateID ve TransportEquipment schemeID listeleri kılavuzda YOKTUR. DORSE ile DORSEPLAKA arasındaki fark (ikisi de aynı Türk plaka regex'ini kullanıyor) belirsizdir. DOĞRULANAMADI
29e-İrsaliye Kılavuzu 1.2 tarihseldirKorpustaki sürüm 1.2 / 07.09.2022'dir. Bölüm 13'teki düzenleme süresi açıklaması "7/9/2022 ila 31/3/2023 tarihleri arasında (bu tarihler dâhil)" geçici dönem için yazılmıştır. 31.03.2023 SONRASI için 1000/1100 durum kodlarıyla sevk başlatma imkânının devam edip etmediği DOĞRULANAMADI. Daha yeni bir sürüm korpusta yoktur.
30UBL-TR irsaliye kılavuzları schematron'u yansıtmıyorUBL-TR İrsaliye V1.2 (Aralık 2018), İrsaliye Yanıtı V1.0 (Aralık 2017), Temel e-İrsaliye Senaryosu V0.3 (Nisan 2017) ve Ortak Elemanlar V0.7 (Nisan 2017), schematron'a 2021-2026 arasında eklenen zorunlulukları YANSITMAZ. Örnek XML'lerin hiçbirinde cac:DeliveryAddress yoktur; İrsaliye Yanıtı V1.0'daki DriverPerson örneğinde NationalityID'nin schemeID'si eksiktir.
31TAM RED'in UBL karşılığı tanımsız509 IV.3.4 ve Kılavuz Bölüm 12/14 red imkânını hukuken tanır, ancak ne bir ResponseCode alanı, ne bir ReceiptAdviceTypeCode değeri (liste sadece 'SEVK'), ne de bir schematron kuralı vardır. History.txt'de 20171002'de eklenen ReceiptAdviceRejectCheck güncel Common Schematron'da yoktur (kaldırılma tarihi de kayıtlı değildir). Portalin RED'i nasıl kodlayacağı (ReceivedQuantity=0 + RejectedQuantity=tam mı, yoksa Note ile mi) DOĞRULANAMADI
32RejectReasonCode ve TimingComplaintCode kod listeleri yokOrtak Elemanlar V0.7 sadece "Reddedilme sebebi kodu girilir." der; UBL-TR_Codelist.xml'de bu alanlar için liste tanımlı değildir. Tüm örnekler serbest metin (RejectReason / TimingComplaint) kullanır. DOĞRULANAMADI
33İrsaliye Yanıtı 7 gününün başlangıcı çelişkiliKılavuz Bölüm 12 "fiili sevk tarihinden itibaren" derken, Entegrasyon Kılavuzu v1.10 gönderici için "irsaliye yollandıktan yedi gün sonra", posta kutusu için "irsaliyeyi aldıktan sonra yedi gün içerisinde" der. Hangisinin bağlayıcı olduğu DOĞRULANAMADI
34e-İrsaliye için ihtar/itiraz mekanizması yokHer iki iptal/itiraz kılavuzunda "irsaliye" kelimesi hiç geçmez. e-İrsaliyeye TTK 18/3 kapsamında harici itirazın nasıl yapılacağı düzenlenmemiştir.
35VUK 231/5'in güncel metniKorpustaki tek alıntı e-İrsaliye Kılavuzu 1.2 (2022) içindedir ve "azami yedi gün" halini verir. Maddeye sonradan eklenen "ve bu süre faturanın ait olduğu ayın sonunu geçemez" türü bir ibare korpusta HİÇ GEÇMEZ. 31.08.2026 itibarıyla yürürlükteki VUK 231/5 metni bu korpustan DOĞRULANAMADI.
36Karekod zorunluluk başlama tarihiHem 509 IV.3.3(e) hem Kılavuz Bölüm 9(e) "Başkanlık tarafından ebelge.gib.gov.tr adresinden yapılan duyuruda belirtilecek tarihten itibaren" der; bu duyuru korpusta yoktur. Karekod Standardı Kılavuzu V.1.2 de Kasım 2023 tarihlidir. DOĞRULANAMADI
37HKSIRSALIYE seçim kriteri kılavuzda yokKılavuz 15.26 sadece HKS künye zorunluluğundan bahseder; ProfileID='HKSIRSALIYE' bağı yalnızca schematron'dan çıkarılabilir. Ayrıca ProfileID=TEMELIRSALIYE ile HKS künyesi yazılıp yazılamayacağı (schematron buna izin verir) belirsizdir.
38ETIKETNO kod listesinde yokUBL-TR Kod Listeleri V1.43 Bölüm 2.3 tablosunda ETIKETNO LİSTELENMEMİŞTİR — yalnızca ILAC, TIBBICIHAZ, TELEFON, TABLET_PC, KUNYENO, DIGER vardır. Halbuki schematron IDISIRSALIYE için ETIKETNO'yu zorunlu kılar. Kod listesi kılavuzu ile schematron arasında tutarsızlık vardır.
39MATBUDAN'a verilecek yanıtın tipiReceiptAdviceTypeCode listesinde sadece 'SEVK' vardır; MATBUDAN tipinde bir e-İrsaliyeye verilecek yanıtın da 'SEVK' olup olmayacağı açıklanmamıştır. DOĞRULANAMADI
40İrsaliye Yanıtı ID formatıSchematron sadece 16 hane uzunluk kontrolü yapar; UBL-TR İrsaliye Yanıtı V1.0 ise "Üç haneli alfa numerik birim kod ile 13 haneli müteselsil numara" formatını tarif eder. GİB'in gerçekte hangisini uyguladığı DOĞRULANAMADI
41Fiili sevk ≥ düzenleme kuralı schematron'da yokKılavuz Bölüm 10 ve SSS 70'teki bu kural SCHEMATRON'DA KODLANMAMIŞTIR. Portal bu kontrolü kendisi yapmalıdır; GİB tarafında hangi katmanda denetlendiği yazmaz.
42Miktar aritmetiği denetlenmiyorDeliveredQuantity ile ReceivedQuantity + ShortQuantity / OversupplyQuantity arasındaki tutarlılığı denetleyen bir kural korpusta YOKTUR (ne kılavuzda ne schematron'da). Örneklerden çıkarılan asimetri kuralı yalnızca ÖRNEK YORUMUDUR, açık kural metni değildir.
43XSLT zorunluluğu (irsaliye)e-İrsaliye görüntüleme XSLT'si zorunlu mudur, İrsaliye Yanıtı'nda AdditionalDocumentReference/DocumentType='XSLT' zorunlu mudur — açıkça belirtilmemiştir (yalnızca örnek olarak gösterilmiştir). DOĞRULANAMADI
44E-FATURA_IRSALIYE / E-ARSIV_IRSALIYE kullanımıDocumentDescriptionType kod listesindeki bu değerlerin hangi belgede, hangi alanda ve hangi anlamda kullanılacağı HİÇBİR kılavuzda açıklanmamıştır. Yalnızca UBL-TR_Codelist.xml'de liste elemanı olarak bulunur. DOĞRULANAMADI
45e-İrsaliye Başvuru Rehberi korpusta yokE-irsaliyeUygulamasiBasvuruRehberiveKilavuzu_V1.pdf korpusta yoktur; başvuru adımları DOĞRULANAMADI
46573 ve 589'da irsaliye değişikliği yokHer iki tebliğ dosyasında da "irsaliye" kelimesi geçmez — e-İrsaliye hükümlerinin 2024 sonrası değişip değişmediği bu iki tebliğ üzerinden doğrulanamaz; 509'un dipnotlu konsolide metni esas alınmalıdır.

16.4 Saklama, zaman damgası ve numaralandırma

#BoşlukDurum
47e-Fatura için zaman damgası düzenlemesi yoke-Fatura zarfı/faturası için zaman damgası (RFC 3161 / XAdES-T) zorunluluğu ya da kullanım usulü korpusta düzenlenmemiştir. Sadece özel entegratörün sunabileceği bir hizmet olarak ve e-Arşiv raporu için geçer. Zaman damgası sağlayıcı, format, doğrulama kuralları YOKTUR. DOĞRULANAMADI
48e-Fatura Saklama Kılavuzu güncelliğiKorpustaki sürüm v1.1 (06.09.2013). 509 SN VUK GT'nin (2019+) getirdiği "Elektronik Belge Saklama Hizmeti Başvuru Formu ve Taahhütnamesi" ile uyumlu güncel bir saklama kılavuzu korpusta yoktur. Ayrıca 509 VI. bölümde bahsedilen "saklama hizmeti verenlerden istenecek RAPOR" standardı tanımlı değildir.
49Zorunlu saklama süresi (yıl)509 sadece "kanuni süreler / yasal süreler" der, VUK 253'e atıf yapmaz; net yıl sayısı korpusta yoktur. Sadece LOG ve ZARF için "en az 10 sene" (İşlem Kayıt İzleme Kontrol Listesi) vardır. DOĞRULANAMADI
50"Seri" kavramı terminoloji tutarsızlığı509 açıkça "seri-sıra numarası YERİNE birim kodu" der; yani e-Belgede klasik anlamda "seri" yoktur. Buna rağmen e-Fatura İptal/İtiraz Bildirim Kılavuzu "16 haneli seri numarası" ifadesini kullanır. Birim kodu başına ayrı seri açma/kapatma yönetimi için resmi bir usul korpusta tanımlı değildir.

BÖLÜM 5 — Özel Senaryolar ve Sektörel Faturalar

Ozel Senaryolar ve Sektorel Faturalar

Bu bolum, 24.08.2026 tarihli e-Fatura paketi (UBL-TR_Codelist.xml, UBL-TR_Common_Schematron.xml, UBL-TR_Main_Schematron.xml, History.txt) ile ilgili teknik kilavuzlar karsilastirilarak yazilmistir. Kilavuz ile schematron celistiginde schematron esas alinmis, celiski acikca isaretlenmistir.

Cekirdek kisit: ProfileID x InvoiceTypeCode

UBL-TR_Codelist.xml icindeki makine-okunur listeler (birebir):

ListeDegerler
ProfileIDType (e-Fatura)TICARIFATURA, TEMELFATURA, YOLCUBERABERFATURA, IHRACAT, OZELFATURA, KAMU, HKS, ENERJI, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS
ProfileIDTypeEarchiveEARSIVFATURA (tek deger)
ProfileIDTypeDespatchAdviceTEMELIRSALIYE, HKSIRSALIYE, IDISIRSALIYE
ProfileIDTypeGoruntulemeYukaridakiler + EARSIVFATURA (yalnizca goruntuleme icin)
InvoiceTypeCodeListSATIS, IADE, TEVKIFAT, TEVKIFATIADE, ISTISNA, OZELMATRAH, IHRACKAYITLI, SGK, KOMISYONCU, HKSSATIS, HKSKOMISYONCU, KONAKLAMAVERGISI, SARJ, SARJANLIK, TEKNOLOJIDESTEK, YTBSATIS, YTBIADE, YTBISTISNA, YTBTEVKIFAT, YTBTEVKIFATIADE
ResponseCodeTypeKABUL, RED, IADE, S_APR, GUMRUKONAY
AdditionalItemIdentificationIDTypeKUNYENO, ILAC, TIBBICIHAZ, TELEFON, TABLET_PC, DIGER
AccountingCostCodeListSAGLIK_ECZ, SAGLIK_HAS, SAGLIK_OPT, SAGLIK_MED, ABONELIK, MAL_HIZMET, DIGER
IhracKayitliPartyIdentificationIDTypeSATICIDIBSATIRKOD, ALICIDIBSATIRKOD
YatirimTesvikEArsivInvoiceTypeCodeListYTBSATIS, YTBIADE, YTBISTISNA, YTBTEVKIFAT, YTBTEVKIFATIADE
YatirimTesvikItemClassificationCodeList01, 02, 03, 04
YatirimTesvikTaxExemptionReasonCodeType308, 339
DeliveryTermCodeList (INCOTERMS)CFR, CIF, CIP, CPT, DAF, DDP, DDU, DEQ, DES, EXW, FAS, FCA, FOB, DAP, DPU

Izinli kombinasyon matrisi (kaynak: InvoiceTypeCodeCheck + senaryoya ozel *InvoiceTypeCodeCheck kurallari):

ProfileIDIzinli InvoiceTypeCodeZorlayan assertIADE?
TEMELFATURAKisit yok (liste icinden herhangi biri)InvoiceTypeCodeCheck #1Evet
TICARIFATURAKisit yokInvoiceTypeCodeCheck #1HAYIR
EARSIVFATURAKisit yok + TEKNOLOJIDESTEK ve YTB* buraya ozguInvoiceTypeCodeCheck #1,#4Evet
KAMUKisit yokInvoiceTypeCodeCheck #2Evet
HKSKisit yok (schematron duzeyinde bag YOK)HAYIR
IHRACATKisit yokHAYIR
YOLCUBERABERFATURAKisit yokHAYIR
OZELFATURAKisit yokHAYIR
ILAC_TIBBICIHAZSATIS, ISTISNA, TEVKIFAT, TEVKIFATIADE, IADE, IHRACKAYITLIIlacTibbiCihazInvoiceTypeCodeCheckEvet
YATIRIMTESVIKSATIS, ISTISNA, IADE, TEVKIFAT, TEVKIFATIADEYatirimTesvikInvoiceTypeCodeCheckEvet
IDISSATIS, ISTISNA, IADE, TEVKIFAT, TEVKIFATIADE, IHRACKAYITLIIdisInvoiceTypeCodeCheckEvet
ENERJISadece SARJ, SARJANLIKInvoiceTypeCodeCheck #3Hayir

InvoiceTypeCodeCheck (Common Schematron satir 174-179) dort assert icerir:

<sch:assert test="not(cbc:InvoiceTypeCode='IADE') or cbc:ProfileID='TEMELFATURA' or cbc:ProfileID='EARSIVFATURA' or cbc:ProfileID='ILAC_TIBBICIHAZ' or cbc:ProfileID='YATIRIMTESVIK' or cbc:ProfileID='IDIS' or cbc:ProfileID='KAMU'">Fatura tipi IADE iken fatura profili sadece TEMELFATURA , EARSIVFATURA, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS veya KAMU olabilir</sch:assert>

Kod listesinde olan ancak yukaridaki matriste yeri belirlenemeyen tipler (HKSSATIS, HKSKOMISYONCU, KOMISYONCU, KONAKLAMAVERGISI) icin hicbir profil kisiti yoktur; bkz. "Kilavuz vs schematron" bolumu.

IADE tipinin ek kurali (IADEInvioceCheck): IADE, TEVKIFATIADE, YTBIADE, YTBTEVKIFATIADE tiplerinde en az bir cac:BillingReference/cac:InvoiceDocumentReference bulunmali; her birinde cbc:DocumentTypeCode degeri İADE veya IADE (her iki yazim da kabul) ve cbc:ID uzunlugu tam 16 hane olmalidir.

555 muafiyet kodu ve ozel senaryolar (DemirbasKDVTaxExemptionCheck, 12.03.2026'da eklendi): 555 = "KDV Oran Kontrolune Tabi Olmayan Satislar" (yansitma, aktife kayitli demirbas/tasit satisi). Kural iki assert icerir:

  1. 555 yalnizca ProfileID = TEMELFATURA / TICARIFATURA / EARSIVFATURA iken ve InvoiceTypeCode ISTISNA degilken, IHRACKAYITLI degilken, (EARSIVFATURA'da) YTB ile baslamiyorken kullanilabilir. Yani TEMELFATURA + SATIS gecerli, TEMELFATURA + ISTISNA reddedilir. Bu bolumdeki tum ozel senaryolarda (KAMU, HKS, IHRACAT, YOLCUBERABERFATURA, OZELFATURA, ENERJI, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS) 555 kullanilamaz.
  2. 555 kullanildiginda KDV 0 gecilemez (ne satir ne fatura bazinda TaxTypeCode='0015' icin Percent=0 veya TaxAmount=0 olan TaxSubtotal bulunamaz).

Portal notu: 555, ISTISNA fatura tipi ile birlikte secenek olarak sunulmamalidir. 555'in dayanagi olan "sicil/faaliyet kodu karsiligi KDV oran kontrolu" 27.03.2026 duyurusu ile ikinci bir duyuruya kadar ertelenmistir, ancak kod ve kural guncel pakette aktiftir.


KAMU

Tetikleyici kosul. Merkezi yonetim kapsamindaki kamu idareleri ile Muhasebat Genel Mudurlugu'nun (MGM) Harcama Yonetim Sistemi'ni (HYS) kullanan idareler adina duzenlenen faturalar. MGM, HYS kullanan idareler acisindan ozel entegrator rolundedir. Dayanak: Kamu e-Fatura Teknik Kilavuzu v1.5 (11.10.2024).

KRITIK CELISKI — iki ayri yol. Kilavuz, HYS kapsamindaki faturalarin yalnizca TEMELFATURA senaryosu ile iletilebilecegini soyler:

"Bu kapsamda duzenlenen e-Faturalar sadece TEMELFATURA senaryosu kullanilarak iletilebilir. TEMELFATURA senaryosu kullanilmaksizin iletilen e-Fatura dokumanlari da TEMELFATURA senaryosu ile iletilmis sayilir."

Buna karsilik kod listesinde ayri bir KAMU ProfileID degeri ve buna bagli KamuFaturaCheck kurali vardir. Portal bu ikisini ayri yol olarak modellemelidir:

  • (a) HYS'ye giden fatura -> ProfileID=TEMELFATURA + IBAN + 2. VKN (schematron kontrol etmez, is kurali zorlar),
  • (b) ProfileID=KAMU -> KamuFaturaCheck IBAN zorunlulugu devreye girer.

Izinli kombinasyon. ProfileID = KAMU (veya kilavuza gore TEMELFATURA) x InvoiceTypeCode: kisit yok; IADE acikca izinlidir.

Ek zorunlu UBL alanlari:

AlanUBL yoluKuralZorlayan mekanizma
Odemenin yapilacagi IBAN/Invoice/cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:IDRegex ^TR\d{7}[A-Z0-9]{17}$ (26 karakter)KamuFaturaCheck (yalnizca ProfileID=KAMU iken)
IBAN para birimi/Invoice/cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:CurrencyCodeZorunlu, bos olamaz (or. TRY)Sadece kilavuz — schematron karsiligi YOK
Odeme notu/Invoice/cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:PaymentNoteKilavuz orneginde varYok
2. VKN (harcama birimi)/Invoice/cac:BuyerCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID[@schemeID='VKN']Tam 1 adet, 10 haneli sayiSadece kilavuz — schematron karsiligi YOK

Iki VKN alani hangi durumda ne yazilir (Kilavuz Tablo-1):

Idare tipi1. VKN (AccountingCustomerParty)2. VKN (BuyerCustomerParty)
Genel butceli — sozlesmeyi imzalayan = hizmetten faydalananAyni birim VKNAyni birim VKN
Genel butceli — farkliSozlesmeyi imzalayan birim (or. ilce MEM)Hizmetten faydalanan birim (or. okul)
Ozel butceli / duzenleyici-denetleyiciKDV mukellefiyetine tabi VKN (or. Strateji Gelistirme Bsk.)Hizmetten faydalanan + odemeyi yapan birim (or. Muhendislik Fak.)
Doner sermaye — tek VKN mukellefiyetiKDV mukellefiyetine tabi VKNOdemeyi gerceklestirecek isletme VKN
Doner sermaye — isletme bazinda mukellefiyetIsletme VKNZorunlu degil

Fiilen zorlayan schematron assert: KamuFaturaCheck (Common Schematron satir 534-537; Main'de context inv:Invoice/cbc:ProfileID).

<sch:rule abstract="true" id="KamuFaturaCheck">
  <sch:assert test="not(.='KAMU') or matches(../cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID,'^TR\d{7}[A-Z0-9]{17}$')">inv:Invoice/cbc:ProfileID elemaninin degeri 'KAMU' iken cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID alanina gecerli bir Turkiye IBAN numarasi yazilmalidir</sch:assert>
</sch:rule>

Ornek XML fragmani (kilavuzdaki ornek degerlerle):

<cac:PaymentMeans>
  <cac:PayeeFinancialAccount>
    <cbc:ID>TR111111111111111111111111</cbc:ID>
    <cbc:CurrencyCode>TRY</cbc:CurrencyCode>
    <cbc:PaymentNote>Payment Note</cbc:PaymentNote>
  </cac:PayeeFinancialAccount>
</cac:PaymentMeans>
<cac:BuyerCustomerParty>
  <cac:Party>
    <cac:PartyIdentification>
      <cbc:ID schemeID="VKN">1288331521</cbc:ID>
    </cac:PartyIdentification>
  </cac:Party>
</cac:BuyerCustomerParty>

GTB VKN'sine gonderim (TaxFreeInvoiceCheck) — duzeltilmis okuma. Kural, AccountingCustomerParty/.../PartyIdentification/cbc:ID = '1460415308' iken ProfileID'nin YOLCUBERABERFATURA, IHRACAT, OZELFATURA veya KAMU olmasini sart kosar. XPath'te tek degerli dugum icin not(P != 'X') ifadesi P = 'X' ile esdegerdir; dolayisiyla assert gercekten calisir ve GTB VKN'sine TEMELFATURA/TICARIFATURA ile gonderilen faturayi reddeder. Assert mesaji eksiktir (sadece YOLCUBERABERFATURA/IHRACAT der), test ifadesi OZELFATURA ve KAMU'yu da izinli kilar. Tek bosluk: cbc:ProfileID dugumu hic yoksa assert gecer. Portal, GTB'ye KAMU senaryolu fatura gonderimini kendi kontrolunde engellemelidir.

Kamu faturasinda kagit / e-Arsiv toleransinin guncel durumu (509 V.7)

Kamu kilavuzu (11.10.2024) toleransi 509 SN VUK GT'nin V.7 bolumune dayandirir. Bent harfi uyarisi: tolerans, tebligin (c) (c-cedilli) bendindedir; (c) bendi mali muhur / elektronik imza aracinin arizalanmasi-calinmasidir. 509 V.7 bent sirasi: a) Baskanlik/kamu kurumu sistem arizasi, b) mukellef/ozel entegrator sistem arizasi, c) mali muhur veya e-imza arizasi/calinmasi, c) Bakanlik/Baskanlik teblig-sirkuler-kilavuz-duyuru izni.

Toleransin kapsami:

#IzinKim
1e-Fatura mukellefi kamu idareleri adina e-Arsiv ya da KAGIT fatura duzenlenebilir (kilavuzdaki gelistirmeler tamamlanana kadar)Ozel entegratorler ve entegrasyon yontemi kullananlar
2Mukellefler adina (e-fatura mukellefi olsun olmasin) kagit ortaminda fatura duzenlemeye devam edilebilire-Fatura duzenleyici kamu idareleri
3509 IV.2.4.3 kapsaminda e-Arsiv Fatura duzenlenmesine de gerek yoktur

Guncel durum: tolerans zayiflamamis, GUCLENMISTIR. 573 SN Teblig (RG 12.11.2024 — kilavuzdan tam 1 ay sonra) V.7'nin (c) bendine "ve e-Fatura yerine e-Arsiv Fatura duzenlenmesine" ibaresini eklemis; ayrica ceza fikrasina "[(c) bendi bakimindan e-Fatura yerine e-Arsiv Fatura duzenlenmesi de dahil]" ibaresini eklemistir:

"c) Bakanlik veya Baskanlik tarafindan e-Belge uygulamalarina iliskin olarak yayimlanan genel teblig, sirkuler ve teknik kilavuz ve duyurularda, belgelerin e-Belge yerine kagit olarak duzenlenmesine ve e-Fatura yerine e-Arsiv Fatura duzenlenmesine izin verilmesi, gibi nedenlerle, kanunen duzenlenmesi gereken surenin gecirilmemesi kaydiyla, kagit olarak duzenlenmesi [(c) bendi bakimindan e-Fatura yerine e-Arsiv Fatura duzenlenmesi de dahil] durumunda ozel usulsuzluk cezasi kesilmez."

Yani kilavuzun izin verdigi "e-Arsiv ikamesi" artik teblig metninde acikca ozel usulsuzluk cezasi disinda tutulmustur. Tolerans "aksi belirtilene kadar" sartina baglidir; korpusta bu izni kaldiran daha yeni bir duyuru yoktur.


SGK

Tetikleyici kosul. SGK 01.10.2017'den itibaren e-Fatura uygulamasina dahildir. e-Fatura'ya kayitli saglik hizmet sunuculari ve diger mukellefler, SGK'ya duzenledikleri faturalari e-Fatura olarak gondermek zorundadir. 509 SN Teblig kapsami: "Sosyal Guvenlik Kurumu ile sozlesme imzalayan saglik hizmeti sunuculari ile medikal malzeme ve ilac/etken madde temin eden tum mukellefler (hastane, tip merkezleri, dal merkezleri, diyaliz merkezleri, ... eczaneler, tibbi cihaz ve malzeme tedarikcileri, optisyenlik muesseseleri, isitme merkezi, kaplicalar, ... ecza depolari vb.)".

Izinli kombinasyon. ProfileID = TEMELFATURA (kilavuz: "E-Faturadaki senaryo 'Temel Fatura Senaryosu' uzerinden yurutulecektir"), InvoiceTypeCode = SGK veya TEVKIFAT. Bu kisiti zorlayan SGKInvoiceCheck kurali devre disidir (asagi bkz.) — portal kendisi zorlamalidir.

Alici (SGK) kurum bilgileri: Unvan SOSYAL GUVENLIK KURUMU BASKANLIGI | Vergi Dairesi CANKAYA | VKN 7750409379 | Adres CANKAYA - ANKARA.

Ek zorunlu UBL alanlari:

BilgiUBL yoluKuralZorlayan mekanizma
Ilave Fatura Tipi/Invoice/cbc:AccountingCost (Secimli 0..1)AccountingCostCodeList icinden bir kodYok (AccountingCostCheck 02.10.2017'de silindi)
Mukellef Kodu / Mukellef Adi / Dosya No / DonemDOĞRULANAMADI — UBL eslesmesi korpusta yokSGK ozel format kontroluSGK tarafi (GIB degil)

Dort fatura grubu ve AccountingCost kodlari:

GrupAccountingCostMukellef KoduMukellef AdiDosya NoDonem
HastaneSAGLIK_HASSaglik Tesis KoduSaglik Tesisi AdiEvrak Referans No (MEDULA)Yil-Ay-Gun
EczaneSAGLIK_ECZEczane Sicil NumarasiEczane AdiEvrak NoYil-Ay-Gun
OptikSAGLIK_OPTOptisyenlik Muessesesi Tesis KoduOptisyenlik Muessesesi AdiEvrak NoYil-Ay-Gun
MedikalSAGLIK_MEDSatis Merkezi KoduSatis Merkezi AdiEvrak NoYil-Ay-Gun
Abonelik (elektrik, telefon, internet, TV, dogalgaz)ABONELIKAbone NoYil-Ay-Gun
Mal/Hizmet AlimiMAL_HIZMETHarcama Referans No, yoksa Harcama Birim No
DigerDIGER

Mukellef kodu SGK'da tanimli degilse 0000 yazilir; tanimli ad yoksa ruhsattaki ad yazilir.

MEDULA ve MOSIP baglantisi:

"Dosya No: Saglik hizmet sunucusunun donem sonunda MEDULA uzerinde islemlerini sonlandirdiginda MEDULA sisteminde verilen evrak referans numarasidir. MEDULA sisteminde bu numaralarin uretilmedigi hallerde bu bolum 0000 olmalidir."

Mal/hizmet alimi faturalarinda Dosya No alanina Harcama Referans No yazilir; bu numara SGK mali islemlerinin yurutuldugu MOSIP (Mali Yonetim Sistemleri Otomasyon Projesi) sistemi uzerinden verilir ve odemeyi yapacak harcama biriminden ogrenilir. Harcama referans numarasi yoksa Harcama Birim No kullanilir (kilavuzda 81 il SGIM ve merkez birimleri icin numara tablosu vardir; or. Emeklilik Hizmetleri Genel Mudurlugu 1012, Strateji Gelistirme Baskanligi 1328, Adana SGIM 1016, Artvin SGIM 1107, Istanbul SGIM 1343). Harcama referans numarasi verilen odemelere iliskin faturalarda harcama birim numarasi bulunmayacaktir.

Uyari: bu tablo PDF->metin donusumunde sutun kaymasi icermektedir (bazi satirlarda sol sutun numarasi hic yoktur). Portal gelistirirken numaralar orijinal PDF'ten teyit edilmelidir.

Fiilen zorlayan schematron assert: YOKTUR. SGKInvoiceCheck Common Schematron satir 522-525'te tanimlidir ancak Main Schematron'da hicbir <sch:extends> ile cagrilmaz — olu koddur (13.12.2017'de silinmistir):

<sch:rule abstract="true" id="SGKInvoiceCheck">
  <sch:assert test="not(cbc:ID ='7750409379') or not(../../../cbc:InvoiceTypeCode!='SGK') or not(../../../cbc:InvoiceTypeCode!='TEVKIFAT')"> 7750409379 vergi Numarali mukellefe (SOSYAL GUVENLIK KURUMU) yollanan fatura tipi 'SGK' veya "TEVKIFAT" olmalidir</sch:assert>
</sch:rule>

SGK tipinin AKTIF schematron ayricaliklari (SGK faturasinin genis esneklige sahip oldugu noktalar):

KuralSGK'ya taninan ayricalik
GeneralWithholdingTaxTotalCheckcac:WithholdingTaxTotal icerebilir (TEVKIFAT, YTBTEVKIFAT, IADE, YTBIADE, SGK, SARJ, SARJANLIK). TaxTypeCode=4171 icin izinli tipler: TEVKIFAT, IADE, SGK, YTBIADE
TaxExemptionReasonCodeCheckIstisna kodlari, ozel matrah kodlari (801-812) ve ihrac kodlari (701-704) — ucu de SGK tipinde kullanilabilir
TaxExemptionReasonCheck"Vergi miktari 0 olan 0015 kodlu KDV icin TaxExemptionReason bulunmalidir" kuralindan SGK muaftir

Ornek XML fragmani:

<cbc:ProfileID>TEMELFATURA</cbc:ProfileID>
<cbc:InvoiceTypeCode>SGK</cbc:InvoiceTypeCode>
<cbc:AccountingCost>SAGLIK_HAS</cbc:AccountingCost>
<cac:AccountingCustomerParty>
  <cac:Party>
    <cac:PartyIdentification><cbc:ID schemeID="VKN">7750409379</cbc:ID></cac:PartyIdentification>
    <cac:PartyName><cbc:Name>SOSYAL GUVENLIK KURUMU BASKANLIGI</cbc:Name></cac:PartyName>
  </cac:Party>
</cac:AccountingCustomerParty>

SGK, faturalari kendi ozel formatina uygunluk acisindan ayrica kontrol eder ve uygun olmayanlari kabul etmez. GIB schematron'undan gecmek yeterli degildir.


HKS (Hal Kayit Sistemi)

Tetikleyici kosul. 11/3/2010 tarihli 5957 sayili Kanun hukumlerine gore komisyoncu veya tuccar olarak sebze ve meyve ticaretiyle istigal eden mukellefler. Gecis tarihleri:

BelgeGecisYeni ise baslayanlar
e-Fatura (509 V.7'nin ilgili bendi)1/1/2020Ise baslama tarihinden itibaren 3 ay icinde
e-Irsaliye (509 IV.3.6)1/1/2020Sartlarin saglandigi ayi izleyen dorduncu ayin basindan

Izinli kombinasyon. ProfileID='HKS' (fatura) / ProfileID='HKSIRSALIYE' (irsaliye). InvoiceTypeCode kisiti YOKTURHKS + SATIS da gecerlidir. V1.43 dokumante edilen tek tip: "Hal Kayit sistemi kapsamindaki satislar icin duzenlenen faturalarda KOMISYONCU". Tersi de gecerli: KOMISYONCU/HKSSATIS/HKSKOMISYONCU tipleri TEMELFATURA gibi baska bir senaryoda kullanilirsa schematron'a takilmaz.

Ek zorunlu UBL alanlari:

AlanUBL yoluKuralZorlayan assert
Kunye No (fatura)cac:InvoiceLine/cac:Item/cac:AdditionalItemIdentification/cbc:ID[@schemeID='KUNYENO']Tam 19 karakter, KUNYENO'lu satir sayisi = toplam satir sayisi (tek satir bile kunyesiz olamaz)HKSInvioceCheck
Kunye No (irsaliye)cac:DespatchLine/cac:Item/cac:AdditionalItemIdentification/cbc:ID[@schemeID='KUNYENO']Ayni: 19 karakter, tum satirlarDespatchAdviceHKSKunyeCheck

Fiilen zorlayan schematron assert:

<sch:rule abstract="true" id="HKSInvioceCheck">
  <sch:assert test="not(cbc:ProfileID='HKS') or (count(cac:InvoiceLine/cac:Item/cac:AdditionalItemIdentification/cbc:ID[@schemeID='KUNYENO' and string-length(normalize-space(string(text()))) = 19 ]) = count(cac:InvoiceLine))">ProfileID='HKS' iken, her cac:InvoiceLine elemani 19 karakterli 'KUNYENO' icermelidir.</sch:assert>
</sch:rule>

Ornek XML fragmani (e-Irsaliye Uygulama Kilavuzu 1.2 bolum 15.26; deger tam 19 hane):

<cac:Item>
   <cac:AdditionalItemIdentification>
      <cbc:ID schemeID="KUNYENO">1231231231231231231</cbc:ID>
   </cac:AdditionalItemIdentification>
</cac:Item>

Kilavuz notu: "Bu alan ile ilgili olarak gelistirme yapma zorunlulugu GIB Portal uygulamasindan yararlanmayan mukellefler icin hizmet aldiklari yazilimci/ozel entegratordedir."


IHRACAT

Tetikleyici kosul. e-Fatura'ya kayitli mukellefin mal ihracati ve fatura ekinde Gumruk Cikis Beyannamesi (GCB) bulunmasi (509 IV.1.7.1, 1/7/2017'den itibaren). Zorunluluk sadece GCB ekinde yer alan ihracat faturalari icindir; Serbest Bolge Islem Formu vb. ekinde yer alanlar kapsam disidir.

e-Arsiv mi e-Fatura mi — kesin karar tablosu (509 SSS):

DurumBelgeSenaryo / Tip
e-Fatura kayitli + mal ihracati + GCB ekindee-Fatura zorunluIHRACAT
e-Fatura/e-Arsiv'e kayitli olmayan, fatura >= 30 bin TLGIB e-Belge Portali uzerinden e-Arsiv FaturaEARSIVFATURA
Hizmet ihracati (e-Fatura kullanicisi olsa bile)e-Arsiv FaturaEARSIVFATURA
Hizmet ihracati, alici serbest bolgede bir e-Fatura kullanicisie-FaturaTemel/ticari fatura, tip ISTISNA (IHRACAT degil)
Mikro ihracat (ETGB'ye baglanan posta/hizli kargo)e-Arsiv Fatura (kagit duzenlenmemeli)EARSIVFATURA — IHRACAT senaryosu kullanilamaz

Teknik dayanak: ProfileIDTypeEarchive tek degerlidir (EARSIVFATURA), dolayisiyla IHRACAT/YOLCUBERABERFATURA senaryosu bir e-Arsiv belgesinde teknik olarak da mumkun degildir.

Izinli kombinasyon. ProfileID='IHRACAT' x InvoiceTypeCode: kisit yok; IADE yasak (InvoiceTypeCodeCheck #2).

IHRACAT akisi: GTB posta kutusu, gumruk onayi, fiili ihracat tarihi

Posta kutulari (zarf sh:Receiver/sh:Identifier):

SenaryoEtiket
IHRACATurn:mail:ihracatpk@gtb.gov.tr
YOLCUBERABERFATURAurn:mail:yolcuberaberpk@gtb.gov.tr

Zarfta iki ContactInformation bulunur: UNVAN = GUMRUK VE TICARET BAKANLIGI BILGI ISLEM DAIRESI BASKANLIGI, VKN_TCKN = 1460415308. Aracilara donen uygulama yaniti zarfinda sh:Sender ayni etiket ve VKN ile gelir. Araci kurumlarin kendi posta kutularini urn:mail:yolcuberaberpk@sirketkisaad.com.tr formatinda tanimlamalari onerilir.

Zarf kurali (ExportInvoiceCountCheck): Bir ElementList icinde ProfileID=IHRACAT olan sadece 1, ProfileID=YOLCUBERABERFATURA olan sadece 1 Invoice bulunabilir. (Normal faturalarda limit 100 — InvoiceCountCheck.)

IhracatYolcuBeraberCheck (context inv:Invoice/cbc:ProfileID), dort assert:

KosulSart
receiverAlias = urn:mail:yolcuberaberpk@gtb.gov.trProfileID = YOLCUBERABERFATURA
receiverAlias = urn:mail:ihracatpk@gtb.gov.trProfileID = IHRACAT veya OZELFATURA
ProfileID = YOLCUBERABERFATURABuyerCustomerParty'de schemeID='PARTYTYPE', deger TAXFREE
ProfileID = IHRACATBuyerCustomerParty'de schemeID='PARTYTYPE', deger EXPORT

Gumruk onay akisi. Fatura GTB sistemine duser -> GTB 23 haneli bir referans numarasi uretir -> yukumluye bildirilir -> yukumlu bu numarayi ve belge tarihini gumruk beyannamesinin 44 no'lu kutusunda "Belge Referans No" ve "Belge Tarihi" alanlarinda beyan eder.

Uygulama yaniti senaryolari (ProfileID=IHRACAT):

#DurumYanit
1Tum kalemler cikti, GCB kapandiKABUL
2Kismi cikis, kalani cikacakTum kalemler ciktiktan sonra KABUL
3Hicbiri GCB'ye konu edilmediRED — mukellef yeni fatura duzenler
4Kismi kabul / kismi vazgecmeIADE (kismi). Bu yanit iade faturasi gibi kabul edilir ve yanitin alicinin posta kutusuna dustugu donem defter kayitlarina alinir. LineResponse/LineReference/LineID = InvoiceLine/ID; ReferenceID schemeID="LineExtensionAmount" ile satir tutari yazilir
5GCB'de faturadan fazla kalemMevcut fatura kabul edilir, ek kalemler icin ayri fatura duzenlenip ayni GCB'ye eklenir

"GTB tarafindan gonderilecek uygulama yanitlarinin zaman asimi suresi yoktur." — entegratorler donus suresine bakmaksizin yaniti kabul etmelidir.

Ek zorunlu UBL alanlari (fatura icinde):

AlanUBL yoluKuralZorlayan assert
GTIPInvoiceLine/cac:Delivery/cac:Shipment/cac:GoodsItem/cbc:RequiredCustomsIDHer satirda zorunlu, bos olamazLineDeliveryCheck
INCOTERMScac:Delivery/cac:DeliveryTerms/cbc:ID[@schemeID='INCOTERMS']Satirda yoksa fatura basliginda olmali; DeliveryTermCodeList icindenLineDeliveryCheck, DeliveryCodeCheck
Teslim adresicac:Delivery/cac:DeliveryAddressFatura veya satirdan en az birindeLineDeliveryCheck
Tasima seklicac:Delivery/cac:Shipment/cac:ShipmentStage/cbc:TransportModeCodeSatirda yoksa faturada (kod 0-9)LineDeliveryCheck, DeliveryCodeCheck
Birim fiyat / satir tutariInvoiceLine/cac:Price/cbc:PriceAmount, InvoiceLine/cbc:LineExtensionAmountDolu olmaliPriceAmountCheck
MiktarInvoiceLine/cbc:InvoicedQuantityDolu olmaliPackageCheck
Satici vergi dairesicac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cac:TaxScheme/cbc:NameDolu olmaliPartyVDCheck
Yabanci alici unvanicac:BuyerCustomerParty/cac:Party/cac:PartyLegalEntity/cbc:RegistrationNameDolu olmaliOfficelTitleCheck
GCB tescil no (yanit)apr:ApplicationResponse/cac:SenderParty/cac:PartyIdentification/cbc:ID[@schemeID='GTB_GCB_TESCILNO']Tam 1 adet (KABUL yanitinda)ARPartyIdentificationGTBCheck
Fiili ihracat tarihi (yanit)...cbc:ID[@schemeID='GTB_FIILI_IHRACAT_TARIHI']Tam 1 adet, ^\d{4}\-(0?[1-9]\|1[012])\-(0?[1-9]\|[12][0-9]\|3[01])$ (YYYY-MM-DD)ARPartyIdentificationGTBCheck

ApplicationResponseProfileIDCheck: ResponseCode KABUL/RED/IADE ise ProfileID sadece TICARIFATURA veya IHRACAT olabilir; S_APR (sistem yaniti) ise ProfileID = UBL-TR-PROFILE-1.

Alici bilgileri: cac:AccountingCustomerParty = GTB (VKN 1460415308, PartyName "GUMRUK VE TICARET BAKANLIGI BILGI ISLEM DAIRESI BASKANLIGI", PartyTaxScheme/TaxScheme/Name = "Ulus"). cac:BuyerCustomerParty = yabanci alici (PARTYTYPE=EXPORT, PartyTaxScheme/RegistrationName, CompanyID, TaxScheme/ID=VAT, TaxScheme/TaxTypeCode=VAT).

Ornek XML fragmani:

<cbc:ProfileID>IHRACAT</cbc:ProfileID>
<cac:BuyerCustomerParty>
  <cac:Party>
    <cac:PartyIdentification><cbc:ID schemeID="PARTYTYPE">EXPORT</cbc:ID></cac:PartyIdentification>
    <cac:PartyLegalEntity><cbc:RegistrationName><!-- yabanci alici unvani --></cbc:RegistrationName></cac:PartyLegalEntity>
  </cac:Party>
</cac:BuyerCustomerParty>
<cac:Delivery>
  <cac:DeliveryTerms><cbc:ID schemeID="INCOTERMS">FOB</cbc:ID></cac:DeliveryTerms>
</cac:Delivery>
<cac:InvoiceLine>
  <cac:Delivery><cac:Shipment><cac:GoodsItem>
    <cbc:RequiredCustomsID><!-- GTIP --></cbc:RequiredCustomsID>
  </cac:GoodsItem></cac:Shipment></cac:Delivery>
</cac:InvoiceLine>

Uygulama yaniti (GTB -> mukellef, KABUL):

<cac:SenderParty>
  <cac:PartyIdentification><cbc:ID schemeID="GTB_GCB_TESCILNO"><!-- GCB tescil no --></cbc:ID></cac:PartyIdentification>
  <cac:PartyIdentification><cbc:ID schemeID="GTB_FIILI_IHRACAT_TARIHI">2026-08-31</cbc:ID></cac:PartyIdentification>
</cac:SenderParty>

IHRACKAYITLI — 702 kodu icin DIB satir kodu (ihracatla iliskili yan senaryo)

IHRACKAYITLI tipi, ihrac kayitli satislar ile DIIB ve gecici kabul rejimi kapsamindaki satislar icin kullanilir. Ihrac istisna kodlari (ihracExemptionReasonCodeType): 701 (KDV 11/1-c ihrac kayitli satis), 702 (DIIB ve Gecici Kabul Rejimi), 703 (OTV 8/2 ihrac kayitli satis), 704 (KDV 11/1-c + OTV 8/2). Bu kodlar sadece IHRACKAYITLI, IADE veya SGK tipinde kullanilabilir.

702 icin ek zorunluluk (TaxExemptionReasonCodeCheck): InvoiceTypeCode='IHRACKAYITLI' ve TaxExemptionReasonCode='702' ise her satirda:

AlanUzunluk
cac:Delivery/cac:Shipment/cac:GoodsItem/cbc:RequiredCustomsID (GTIP)tam 12
cac:Delivery/cac:Shipment/cac:TransportHandlingUnit/cac:CustomsDeclaration/cac:IssuerParty/cac:PartyIdentification/cbc:ID[@schemeID='ALICIDIBSATIRKOD']tam 11

IhracKayitliPartyIdentificationIDTypeCheck: ayni yoldaki schemeID sadece SATICIDIBSATIRKOD veya ALICIDIBSATIRKOD olabilir — bu kural yalnizca IHRACKAYITLI + 702 kosulu saglandiginda calisir.


YOLCUBERABERFATURA

Tetikleyici kosul. KDV Genel Uygulama Tebligindeki yolcu beraberi esya istisnasinda, verginin aliciya iadesi usullerinden yalnizca yetki belgesine sahip araci kurumlar tarafindan iade yontemini secen mukellefler.

Izinli kombinasyon. ProfileID='YOLCUBERABERFATURA' x InvoiceTypeCode: kisit yok; IADE yasak. Zarf alicisi mutlaka urn:mail:yolcuberaberpk@gtb.gov.tr.

IHRACAT'tan farklar:

AlanIHRACATYOLCUBERABERFATURA
BuyerCustomerParty PARTYTYPEEXPORT (yabanci firma)TAXFREE (turist)
Zarf receiverurn:mail:ihracatpk@gtb.gov.trurn:mail:yolcuberaberpk@gtb.gov.tr
TaxRepresentativePartyZORUNLU
Yanit ResponseCodeKABUL / RED / IADEGUMRUKONAY
GTIP (RequiredCustomsID)Her satirda zorunluZorunlu degil

Ek zorunlu UBL alanlari:

AlanUBL yoluKuralZorlayan assert
Alici tipicac:BuyerCustomerParty/.../cbc:ID[@schemeID='PARTYTYPE']Deger TAXFREEIhracatYolcuBeraberCheck
Turist ad/soyadcac:BuyerCustomerParty/cac:Party/cac:Person/cbc:FirstName, cbc:FamilyNameZorunluKilavuz
Uyrukcac:BuyerCustomerParty/cac:Party/cac:Person/cbc:NationalityIDISO 3166-1 alpha-2, CountryCodeList icindenTaxFreeNationalityIDCheck
Pasaport no...cac:IdentityDocumentReference/cbc:IDZorunluPassportIDCheck
Pasaport tarihi...cac:IdentityDocumentReference/cbc:IssueDateZorunlu; yazilamiyorsa sabit 1111-11-11Kilavuz
Araci kurum VKNcac:TaxRepresentativeParty/cac:PartyIdentification/cbc:ID[@schemeID='ARACIKURUMVKN']Tam 1 adet, 10 veya 11 haneTaxRepresentativePartyCheck
Araci kurum etiketicac:TaxRepresentativeParty/cac:PartyIdentification/cbc:ID[@schemeID='ARACIKURUMETIKET']Tam 1 adet, bos olamazTaxRepresentativePartyCheck

GUMRUKONAY yaniti. ProfileID = YOLCUBERABERFATURA; bu yanitta imza aranmaz; SenderParty/EndpointID = Gumruk Cikis Kapi No (zorunlu); hem Response/ResponseCode hem LineResponse/ResponseCode = GUMRUKONAY; DocumentReference/Attachment/EmbeddedDocumentBinaryObject icinde mimeCode="application/zip", encodingCode="Base64", characterSetCode="UTF-8", filename=FATURA_NUMARASI(UUID).zip nitelikleriyle faturanin base64 zip hali gelir. Note alanlarinda Satici VKN, Fatura No/Tarihi, Odenecek Tutar, Pasaport No, Yolcu Ad Soyad, Kapi No, Vergi Tutar ozetleri bulunur.

PostBoxResponseCodeCheck: POSTBOXENVELOPE turu zarflarda ResponseCode sadece RED, KABUL, IADE veya GUMRUKONAY olabilir.

Ornek XML fragmani:

<cbc:ProfileID>YOLCUBERABERFATURA</cbc:ProfileID>
<cac:TaxRepresentativeParty>
  <cac:PartyIdentification><cbc:ID schemeID="ARACIKURUMVKN"><!-- 10/11 hane --></cbc:ID></cac:PartyIdentification>
  <cac:PartyIdentification><cbc:ID schemeID="ARACIKURUMETIKET">urn:mail:yolcuberaberpk@a.com.tr</cbc:ID></cac:PartyIdentification>
</cac:TaxRepresentativeParty>
<cac:BuyerCustomerParty>
  <cac:Party>
    <cac:PartyIdentification><cbc:ID schemeID="PARTYTYPE">TAXFREE</cbc:ID></cac:PartyIdentification>
    <cac:Person>
      <cbc:FirstName><!-- ad --></cbc:FirstName>
      <cbc:FamilyName><!-- soyad --></cbc:FamilyName>
      <cbc:NationalityID>DE</cbc:NationalityID>
      <cac:IdentityDocumentReference>
        <cbc:ID><!-- pasaport no --></cbc:ID>
        <cbc:IssueDate>1111-11-11</cbc:IssueDate>
      </cac:IdentityDocumentReference>
    </cac:Person>
  </cac:Party>
</cac:BuyerCustomerParty>

OZELFATURA

Tetikleyici kosul. Bavul ticareti / Turkiye'de ikamet etmeyenlere ozel fatura ile satis. DOĞRULANAMADI — bu senaryoya ozel alan ve format kilavuzu korpusta yoktur; asagidaki bilgiler yalnizca kod listesi ve schematron'dan cikarilmistir.

Izinli kombinasyon. ProfileID='OZELFATURA' (ProfileIDType icinde gecerli deger) x InvoiceTypeCode: kisit yok; IADE yasak.

Ek zorunlu UBL alanlari. OZELFATURA'ya ozgu ek zorunlu alan tanimlayan hicbir schematron kurali yoktur. Senaryo yalnizca iki kuralda gecer:

KuralOZELFATURA'nin roli
IhracatYolcuBeraberCheckurn:mail:ihracatpk@gtb.gov.tr posta kutusuna gonderim icin izinli iki senaryodan biri (digeri IHRACAT). Ancak PARTYTYPE zorunlulugu getiren assert'ler yalnizca IHRACAT (EXPORT) ve YOLCUBERABERFATURA (TAXFREE) icin yazilmistir — OZELFATURA icin PARTYTYPE sarti yoktur.
TaxFreeInvoiceCheckGTB VKN'sine (1460415308) fatura gonderiminde izinli dort senaryodan biri
DemirbasKDVTaxExemptionCheck555 muafiyet kodu kullanilamaz

Ornek XML fragmani (schematron'un fiilen kontrol ettigi minimum):

<cbc:ProfileID>OZELFATURA</cbc:ProfileID>
<cac:AccountingCustomerParty>
  <cac:Party>
    <cac:PartyIdentification><cbc:ID schemeID="VKN">1460415308</cbc:ID></cac:PartyIdentification>
  </cac:Party>
</cac:AccountingCustomerParty>
<!-- Zarf: sh:Receiver/sh:Identifier = urn:mail:ihracatpk@gtb.gov.tr -->

YATIRIMTESVIK

Tetikleyici kosul. Yatirim Tesvik Belgesi (YTB) kapsamindaki teslim ve hizmetler. Dayanak: Yatirim Tesvik e-Fatura teknik kilavuzu v1.2 (09.01.2026). Kurallar 09.12.2025 schematron guncellemesiyle (10 kural) eklenmistir.

Izinli kombinasyon.

OrtamProfileIDInvoiceTypeCode
e-FaturaYATIRIMTESVIKSATIS, ISTISNA, IADE, TEVKIFAT, TEVKIFATIADE (YatirimTesvikInvoiceTypeCodeCheck)
e-ArsivEARSIVFATURAYTBSATIS, YTBISTISNA, YTBIADE, YTBTEVKIFAT, YTBTEVKIFATIADE

Harcama tipi (ItemClassificationCode) x fatura tipi matrisi:

KodHarcama tipie-Fatura tiplerie-Arsiv tipleriKDV 0?Istisna kodu
01Makine/techizat teslimleri, yazilim ve gayrimaddi hak satis-kiralamalariSATIS, ISTISNA, TEVKIFATYTBSATIS, YTBISTISNA, YTBTEVKIFATEvet — sadece ISTISNA/YTBISTISNA ile308 (13/d Tesvikli Yatirim Mallarinin Teslimi)
02Insaat islerine iliskin mal teslimleri ve hizmet ifalariSATIS, ISTISNA, TEVKIFATYTBSATIS, YTBISTISNA, YTBTEVKIFATEvet — sadece ISTISNA/YTBISTISNA ile339 (Imalat Sanayi ile Turizme Yonelik YTB Kapsamindaki Insaat Isleri)
03Arsa / arazi satislariSATIS, TEVKIFATYTBSATIS, YTBTEVKIFATHAYIR
04Diger harcamalarSATIS, TEVKIFATYTBSATIS, YTBTEVKIFATHAYIR

308 ve 339 kodlari ayri bir YatirimTesvikTaxExemptionReasonCodeType degiskeninde tutulur ve TaxExemptionReasonCodeCheck tarafindan yalnizca ProfileID=YATIRIMTESVIK veya YTB* fatura tipiyle kabul edilir.

Ek zorunlu UBL alanlari:

AlanUBL yoluKuralZorlayan assert
YTB numarasicac:ContractDocumentReference/cbc:ID[@schemeID='YTBNO']ContractDocumentReference tam 1 adet; YTBNO uzunlugu tam 6, tamami rakamYatirimTesvikContractDocumentReferenceIDCheck
YTB tarihicac:ContractDocumentReference/cbc:IssueDateYatirim Tesvik Belge TarihiAyni kural
Harcama tipiInvoiceLine/cac:Item/cac:CommodityClassification/cbc:ItemClassificationCodeHer satirda en az 1 adet; 01/02/03/04YatirimTesvikCommodityClassificationCheck, YatirimTesvikItemClassificationCodeCheck
ISTISNA'da harcama tipiAyniSadece 01 veya 02YatirimTesvikItemClassificationCodeIstisnaCheck
Vazgecilen KDV isaretiTaxTotal/TaxSubtotal/cbc:CalculationSequenceNumeric-1; TaxTypeCode='0015' olan en az 1 TaxSubtotalYatirimTesvikItemClassificationCodeIstisnaCalculationSequenceNumericCheck
Makine adi (kod 01)InvoiceLine/cac:Item/cbc:ModelNameDoluYatirimTesvikItemInstanceCheck
Makine ID (kod 01)InvoiceLine/cac:Item/cac:ItemInstance/cbc:SerialIDDoluAyni
Makine techizat sira no (kod 01)InvoiceLine/cac:Item/cac:ItemInstance/cbc:ProductTraceIDDoluAyni
KDVTaxTotal / satir TaxTotalIADE/TEVKIFATIADE/YTBIADE/YTBTEVKIFATIADE disindaki tum YTB faturalarinda TaxTypeCode='0015' icin TaxAmount>0 ve Percent>0; iade tiplerinde 03/04 harcama tipli her kalemde TaxAmount>0YatirimTesvikKDVCheck, YatirimTesvikLineKDVCheck
Istisna koduTaxCategory/cbc:TaxExemptionReasonCode308 -> kod 01, 339 -> kod 02YatirimTesvikTaxExemptionReasonCode308Check, ...339Check
e-Arsiv raporytbBilgileriYTB* tipli e-Arsiv faturalarinda raporda zorunluearsiv_schematron.xsl

KILAVUZ/SCHEMATRON CELISKISI: Kilavuz cac:ContractDocumentReference elemanini "Secimli (0…n)" gosterir; schematron tam 1 adet olmasini zorunlu kilar. Schematron esastir.

Ornek XML fragmani:

<cbc:ProfileID>YATIRIMTESVIK</cbc:ProfileID>
<cbc:InvoiceTypeCode>ISTISNA</cbc:InvoiceTypeCode>
<cac:ContractDocumentReference>
  <cbc:ID schemeID="YTBNO">123456</cbc:ID>
  <cbc:IssueDate>2025-01-01</cbc:IssueDate>
</cac:ContractDocumentReference>
<cac:InvoiceLine>
  <cac:Item>
    <cbc:ModelName><!-- Makine Adi --></cbc:ModelName>
    <cac:CommodityClassification><cbc:ItemClassificationCode>01</cbc:ItemClassificationCode></cac:CommodityClassification>
    <cac:ItemInstance>
      <cbc:ProductTraceID><!-- Makine Techizat Sira No --></cbc:ProductTraceID>
      <cbc:SerialID><!-- Makine ID --></cbc:SerialID>
    </cac:ItemInstance>
  </cac:Item>
  <cac:TaxTotal><cac:TaxSubtotal>
    <cbc:CalculationSequenceNumeric>-1</cbc:CalculationSequenceNumeric>
    <cac:TaxCategory>
      <cbc:TaxExemptionReasonCode>308</cbc:TaxExemptionReasonCode>
      <cac:TaxScheme><cbc:TaxTypeCode>0015</cbc:TaxTypeCode></cac:TaxScheme>
    </cac:TaxCategory>
  </cac:TaxSubtotal></cac:TaxTotal>
</cac:InvoiceLine>

ILAC_TIBBICIHAZ

Tetikleyici kosul. e-Fatura'ya dahil olan ve ilac/tibbi cihaz ticareti yapan mukelleflerden, Turkiye Ilac ve Tibbi Cihaz Kurumu'na Ilac Takip Sistemi (ITS) ve Urun Takip Sistemi (UTS) uzerinden bildirimi yapilan urunler icin fatura duzenleyenler. Dayanak: Ilac ve Tibbi Cihaz e-Fatura kilavuzu v1.2 (Haziran 2025).

Izinli kombinasyon. ProfileID='ILAC_TIBBICIHAZ' x InvoiceTypeCode = SATIS, ISTISNA, TEVKIFAT, TEVKIFATIADE, IADE, IHRACKAYITLI (IlacTibbiCihazInvoiceTypeCodeCheck). IADE bu profilde izinlidir.

Ek zorunlu UBL alanlari:

AlanUBL yoluKuralZorlayan assert
Urun kimligiInvoiceLine/cac:Item/cac:AdditionalItemIdentification/cbc:IDHer satirda schemeID'si ILAC, TIBBICIHAZ veya DIGER olan, bos olmayan en az 1 adetIlacTibbiCihazAdditionalItemIdentificationCheck

Icerik formatlari:

schemeIDFormatOrnek
ILAC(GTIN)…(BN)…(SN)…(XD)… — GTIN, Parti No, Sira No, Son Kullanma Tarihi(GTIN)8680222690047(BN)0714450(SN)9546433(XD)210909
TIBBICIHAZ(UNO)…(LNO)…(SNO)…(URT)… — Urun No, Lot/Batch No, Seri No, Uretim Tarihi. Sadece parti bilgisi olan cihazlarda SNO girilmez(UNO)86930123456789(LNO)X9812354(SNO)8834347323(URT)180225
DIGERITS/UTS disi urun veya hizmet ayni faturada gosteriliyorsa; ID = 1111111111<cbc:ID schemeID="DIGER">1111111111</cbc:ID>

DUZELTME: KUNYENO bu senaryoya ait degildir; KUNYENO Hal Kayit Sistemi (HKS/HKSIRSALIYE) senaryosuna aittir. Kuralin kabul ettigi schemeID kumesi yalnizca ILAC, TIBBICIHAZ, DIGER'dir.

Capraz referans: Bu mukelleflerin SGK'ya duzenledikleri faturalarda SGK e-Fatura teknik dokumanini, ihracatta e-Fatura Uygulamasi Gumruk Islemleri Kilavuzu'nu dikkate almalari gerekir.

Ornek XML fragmani:

<cbc:ProfileID>ILAC_TIBBICIHAZ</cbc:ProfileID>
<cac:InvoiceLine>
  <cac:Item>
    <cac:AdditionalItemIdentification>
      <cbc:ID schemeID="ILAC">(GTIN)8680222690047(BN)0714450(SN)9546433(XD)210909</cbc:ID>
    </cac:AdditionalItemIdentification>
  </cac:Item>
</cac:InvoiceLine>

IDIS (Insaat Demiri Izleme Sistemi)

Tetikleyici kosul. Insaat demiri izleme sistemi kapsamindaki teslimler. Dayanak: IDIS Teknik Kilavuzu V1.0 (02.12.2025). Kurallar 09.01.2026 schematron guncellemesiyle eklenmistir.

Izinli kombinasyon.

BelgeProfileIDInvoiceTypeCode
FaturaIDISSATIS, ISTISNA, IADE, TEVKIFAT, TEVKIFATIADE, IHRACKAYITLI (IdisInvoiceTypeCodeCheck)
e-IrsaliyeIDISIRSALIYE

Ek zorunlu UBL alanlari:

AlanUBL yoluFormatZorlayan assert
Sevkiyat No (fatura)cac:AccountingSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID[@schemeID='SEVKIYATNO']SE- veya ES- ile baslar, toplam tam 10 karakter, 4. karakterden sonrasi tamamen rakamIdisSevkiyatNoCheck
Sevkiyat No (irsaliye)cac:DespatchSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID[@schemeID='SEVKIYATNO']AyniDespatchIdisSevkiyatNoCheck
Etiket No (fatura)InvoiceLine/cac:Item/cac:AdditionalItemIdentification/cbc:ID[@schemeID='ETIKETNO']Tam 9 karakter: ilk 2 hane harf, sonraki 7 hane rakam; her satirda en az 1 adetIdisEtiketNoCheck
Etiket No (irsaliye)DespatchLine/cac:Item/cac:AdditionalItemIdentification/cbc:ID[@schemeID='ETIKETNO']AyniDespatchIdisEtiketNoCheck

KILAVUZ/SCHEMATRON CELISKISI: IDIS Teknik Kilavuzu V1.0 sevkiyat numarasini yalnizca "ilk 2 karakter SE, sonra -, sonraki 7 karakter rakam" olarak tanimlar. 01.07.2026 schematron guncellemesi (IdisSevkiyatNoCheck guncellendi) ES- on ekini de kabul eder hale getirmistir. Schematron esastir; portal her ikisini de kabul etmelidir. ES- on ekinin anlami korpusta aciklanmamistir.

Liste tutarsizligi: ETIKETNO degeri AdditionalItemIdentificationIDType listesinde (KUNYENO, ILAC, TIBBICIHAZ, TELEFON, TABLET_PC, DIGER) yer almaz; buna karsilik SEVKIYATNO, PartyIdentificationIDType listesinde vardir. Pratikte sorun cikmaz, cunku AdditionalItemIdentificationIDType degiskeni Codelist.xml'de tanimlidir ancak hicbir schematron kuralinda kullanilmaz — yani whitelist ihlali olusmaz.

Ornek XML fragmani:

<cbc:ProfileID>IDIS</cbc:ProfileID>
<cac:AccountingSupplierParty>
  <cac:Party>
    <cac:PartyIdentification><cbc:ID schemeID="SEVKIYATNO">SE-1345840</cbc:ID></cac:PartyIdentification>
  </cac:Party>
</cac:AccountingSupplierParty>
<cac:InvoiceLine>
  <cac:Item>
    <cac:AdditionalItemIdentification><cbc:ID schemeID="ETIKETNO">CV0152457</cbc:ID></cac:AdditionalItemIdentification>
  </cac:Item>
</cac:InvoiceLine>

ENERJI (SARJ / SARJANLIK)

Tetikleyici kosul. 550 SN Teblig ile, Sarj Hizmeti Yonetmeligi kapsaminda EPDK'dan sarj agi isletmeci lisansi alan mukellefler ile bunlarin sertifika verdigi sarj istasyonu isletmecilerine e-Fatura zorunlulugu getirilmistir.

551 SN Teblig md.4: Elektrikli araclara sunulan sarj hizmetine iliskin fatura teslim aninda duzenlenir. Ancak (a) asgari alti aylik sozlesme, (b) her bir sarj hizmetine iliskin icmal hazirlanip faturaya eklenmesi, (c) bilgilerin anlik olarak Baskanlik ile paylasilmasi sartlariyla yedi gunde bir fatura duzenlenebilir (KDV vergilendirme donemi asilmamak kaydiyla).

Izinli kombinasyon. InvoiceTypeCodeCheck cift yonlu (bikosullu) kural kurar ve yalnizca $type='efatura' dogrulamasinda calisir:

<sch:assert test="(not($type = 'efatura' or $type = '' or not($type)) or (cbc:ProfileID = 'ENERJI' and (cbc:InvoiceTypeCode = 'SARJ' or cbc:InvoiceTypeCode = 'SARJANLIK'))) or (not($type = 'efatura' or $type = '' or not($type)) or (not(cbc:ProfileID = 'ENERJI') and not(cbc:InvoiceTypeCode = 'SARJ' or cbc:InvoiceTypeCode = 'SARJANLIK')))">... cbc:ProfileID degeri ENERJI oldugu durumda cbc:InvoiceTypeCode degeri SARJ veya SARJANLIK olmalidir.</sch:assert>

SARJ ile SARJANLIK farki:

SARJANLIKSARJ
Ne zamanTeslim aninda (anlik)Yedi gunde bir (haftalik)
e-Fatura ProfileIDENERJIENERJI
e-Arsiv ProfileIDEARSIVFATURAEARSIVFATURA
ESURaporIDGerekmezZORUNLU (icmal yerine gecer)
Kalem seri no (ItemInstance/SerialID)ZORUNLU (sarj unitesi seri no)Zorunlu degil
InvoicePeriodZorunluZorunlu
PLAKAZorunluZorunlu
e-Arsiv raporlamaANLIK (sarjAnlik semasi)Gunluk (izleyen gunun sonuna kadar)

Her iki tipte de plaka bazinda fatura duzenlenmesi gerekir.

Ek zorunlu UBL alanlari (dort kural 01.07.2026'da eklenmis, 14.09.2026'da devreye alinacaktir):

AlanUBL yoluKuralZorlayan assert
Fatura donemicac:InvoicePeriod/cbc:StartDate, cbc:StartTime, cbc:EndDate, cbc:EndTimeEn az 1 InvoicePeriod; dordu de dolu; tarih yyyy-MM-dd, saat HH:mm:ss; tarih 2005-01-01'den kucuk olamazEnerjiInvoicePeriodCheck (SARJ + SARJANLIK)
ESU rapor kimligicac:AdditionalDocumentReference/cbc:ID[@schemeID='ESURaporID']GUID ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}$EnerjiESURaporIDCheck (sadece SARJ)
ESU rapor tarihicac:AdditionalDocumentReference/cbc:IssueDate^20\d{2}-\d{2}-\d{2}$, gecerli tarihAyni
Plakacac:AccountingCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID[@schemeID='PLAKA']Tam 1 adet, bos degil, uzunluk <= 50, ^[A-Z0-9_-]+$EnerjiPartyIdentificationPlakaCheck (SARJ + SARJANLIK)
Sarj unitesi seri noInvoiceLine/cac:Item/cac:ItemInstance/cbc:SerialIDDolu olmaliEnerjiItemInstanceSerialIDCheck (sadece SARJANLIK)
Arac kimlik no...cbc:ID[@schemeID='ARACKIMLIKNO']Secimli
Miktar/fiyat birimiInvoicedQuantity/@unitCode, PriceAmount birimiKWHKilavuz

Not: EnerjiPartyIdentificationPlakaCheck regex'i il kodu kontrolu yapmaz; e-Irsaliye tarafindaki LicensePlateIDSchemeIDCheck ise ^(0[1-9]|[1-7][0-9]|8[01])[A-Z]+[0-9]+$ ister. Iki taraf farkli sikilikta dogrular.

e-Arsiv rapor alanlari (SARJ/SARJANLIK): sarjZamani (baslamaTarihi, bitisTarihi, baslamaZamani, bitisZamani — dordu de zorunlu), plaka, toplamTutar (vergi haric), indirim, kalemDetay (hizmetAdi, hizmetBirimFiyati KWH, hizmetMiktari KWH, vergiler).

Ornek XML fragmani (SARJ):

<cbc:ProfileID>ENERJI</cbc:ProfileID>
<cbc:InvoiceTypeCode>SARJ</cbc:InvoiceTypeCode>
<cac:InvoicePeriod>
  <cbc:StartDate>2026-08-24</cbc:StartDate><cbc:StartTime>00:00:00</cbc:StartTime>
  <cbc:EndDate>2026-08-30</cbc:EndDate><cbc:EndTime>23:59:59</cbc:EndTime>
</cac:InvoicePeriod>
<cac:AdditionalDocumentReference>
  <cbc:ID schemeID="ESURaporID">B0E502A8-122C-4061-BE02-8133A5788177</cbc:ID>
  <cbc:IssueDate>2026-08-30</cbc:IssueDate>
</cac:AdditionalDocumentReference>
<cac:AccountingCustomerParty>
  <cac:Party>
    <cac:PartyIdentification><cbc:ID schemeID="PLAKA">06GIB06</cbc:ID></cac:PartyIdentification>
  </cac:Party>
</cac:AccountingCustomerParty>
<cac:InvoiceLine>
  <cbc:InvoicedQuantity unitCode="KWH">42.5</cbc:InvoicedQuantity>
</cac:InvoiceLine>

SARJANLIK'ta AdditionalDocumentReference/ESURaporID yerine satirda cac:Item/cac:ItemInstance/cbc:SerialID zorunludur.


TEKNOLOJIDESTEK

Tetikleyici kosul. V1.43 tanimi: "teknolojik cihaz destegi kapsaminda telefon, bilgisayar/tablet satislarinda duzenlenecek e-Arsiv Faturalarda 'TEKNOLOJIDESTEK'". 28.04.2025 schematron guncellemesiyle eklenmistir.

Izinli kombinasyon. InvoiceTypeCode='TEKNOLOJIDESTEK' -> ProfileID yalnizca EARSIVFATURA. e-Fatura senaryolarinda kullanilamaz.

Ek zorunlu UBL alanlari:

AlanUBL yoluKuralZorlayan assert
Senaryo kisiticbc:ProfileIDEARSIVFATURA olmaliInvoiceTypeCodeCheck (4. assert)
Alici gercek kisicac:AccountingCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID/@schemeIDTCKN olmali (tuzel kisiye / VKN'ye kesilemez)PartyIdentificationTEKNOLOJIDESTEKCheck
Cihaz kimligiInvoiceLine/cac:Item/cac:AdditionalItemIdentification/cbc:ID[@schemeID='TELEFON' or @schemeID='TABLET_PC']Tum kalemlerde bulunmaliTeknolojiDestekAdditionalItemIdentificationCheck

V1.43 aciklamalari: TELEFON = "Telefonun IMEI numarasini belirtir." | TABLET_PC = "Alanda herhangi bir veri girilmesine gerek bulunmamaktadir." (schemeID'nin varligi yeterlidir).

<sch:rule abstract="true" id="TeknolojiDestekAdditionalItemIdentificationCheck">
  <sch:assert test="not(../cbc:InvoiceTypeCode = 'TEKNOLOJIDESTEK') or cac:Item/cac:AdditionalItemIdentification/cbc:ID[@schemeID = 'TELEFON' or @schemeID = 'TABLET_PC']">TEKNOLOJIDESTEK fatura tipinde yer alan tum kalemler TELEFON, TABLET_PC schemeID li cac:AdditionalItemIdentification bulunmalidir.</sch:assert>
</sch:rule>

Ornek XML fragmani:

<cbc:ProfileID>EARSIVFATURA</cbc:ProfileID>
<cbc:InvoiceTypeCode>TEKNOLOJIDESTEK</cbc:InvoiceTypeCode>
<cac:AccountingCustomerParty>
  <cac:Party>
    <cac:PartyIdentification><cbc:ID schemeID="TCKN"><!-- 11 hane --></cbc:ID></cac:PartyIdentification>
  </cac:Party>
</cac:AccountingCustomerParty>
<cac:InvoiceLine>
  <cac:Item>
    <cac:AdditionalItemIdentification><cbc:ID schemeID="TELEFON"><!-- IMEI --></cbc:ID></cac:AdditionalItemIdentification>
  </cac:Item>
</cac:InvoiceLine>

Kilavuz zorunlulugu vs. schematron zorunlulugu

Portal tasarim uyarisi: Bu iki zorunluluk turu ayri modellenmelidir. Schematron kurali, GIB'in faturayi reddetmesine yol acar (teknik hata). Kilavuz kurali reddedilmeye yol acmaz ama karsi kurumun (MGM/HYS, SGK, GTB) is surecinde takilmaya, odeme gecikmesine veya ikincil red'e yol acar. Portalda bunlar farkli siddet duzeyinde olmali: SCHEMATRON_ERROR (gonderimi engelle) ve KILAVUZ_WARNING (uyar, gerekirse is kuralina gore engelle).

A. Kilavuzda YAZAN, 24.08.2026 schematron'unda OLMAYAN kurallar

Kural / alanKaynakGuncel pakette durumSonuc (GIB)Portal davranisi
PayeeFinancialAccountIDCheck (Kamu IBAN)Kamu e-Fatura Teknik Kilavuzu v1.5Main/Common'da YOK (grep bos); History.txt'de adi hic gecmezRed yokIS KURALI zorunlu — HYS odemesi aksi halde takilir
PayeeFinancialAccountCurrencyCodeCheckKamu kilavuzu v1.5Main/Common'da YOKRed yokIS KURALI zorunlu
BuyerCustomerPartyCheck (2. VKN, tam 1 adet, 10 hane)Kamu kilavuzu v1.5Main/Common'da YOKRed yokIS KURALI zorunlu (Tablo-1 mantigina gore)
SGKInvoiceCheck (SGK VKN -> SGK/TEVKIFAT tipi)SGK akisiCommon satir 522-525'te tanimli, Main'de <sch:extends> yok = olu kod (13.12.2017'de silindi)Red yokIS KURALI: 7750409379'a SGK/TEVKIFAT disi tip engelle
AccountingCostCheck (cbc:AccountingCost kod kontrolu)SGK akisiHicbir dosyada yok (02.10.2017'de silindi). AccountingCostCodeList degiskeni Codelist.xml'de duruyor ama hicbir kural kullanmiyorRed yokIS KURALI: SGK grubuna gore kodu zorla — SGK reddeder
SGK "Mukellef Kodu / Mukellef Adi / Dosya No / Donem"SGK Uygulama KilavuzuSchematron karsiligi yok; UBL eslesmesi de korpusta yokRed yokBkz. Dogrulanamayanlar
GeneralBillingReferenceCheckCommon'da tanimli, Main'de cagrilmiyor (ikinci olu kural)Red yokReferans kontrolunu portal yapmali
IDIS sevkiyat no SE- on ekiIDIS Kilavuzu V1.0Schematron ES-'i de kabul ediyor (ters yonlu celiski: schematron daha gevsek)Her ikisi gecerHer ikisini kabul et
YTB ContractDocumentReference "Secimli (0…n)"Yatirim Tesvik kilavuzu v1.2Schematron tam 1 adet zorunlu (ters yonlu: schematron daha sikî)RedZorunlu alan yap

B. Sadece kod listesinde olup kilavuz karsiligi OLMAYANLAR

KodBulundugu listeKorpustaki tek gecisSchematron kuraliPortal davranisi
HKSSATISInvoiceTypeCodeListUBL-TR_Codelist.xml satir 10 — baska hicbir dosyada yokYokKullanicilara sunma (anlami bilinmiyor); gelen faturada kabul et
HKSKOMISYONCUInvoiceTypeCodeListUBL-TR_Codelist.xml satir 10YokAyni
GTB_REFNOPartyIdentificationIDTypeCodelist.xml satir 35 + V1.43 bolum 2.1 ("GTB Belge Referans No")Hicbir kural kontrol etmezAlani opsiyonel tut; 23 haneli GTB referansi ile iliskisi dogrulanmamis
STDKODFATURAYalnizca V1.43 senaryo tablosu (satir 940)ProfileIDType listesinde YOK — ters durum: kilavuzda var, kod listesinde yokProfileIDCheck hata verirSenaryo listesine ekleme
ETIKETNOAdditionalItemIdentificationIDType listesinde YOK ama schematron kullaniyorIdisEtiketNoCheckKural var, whitelist yokSorun cikmaz (whitelist degiskeni hicbir kuralda kullanilmiyor)
KONAKLAMAVERGISIInvoiceTypeCodeList, TaxExemptionReasonCheck muafiyetiV1.43 tanimi var, ek alan tanimi yokTipe ozel kural yokEk alan zorlamayin
AccountingCostCodeListCodelist.xml satir 18Kod listesi mevcutHicbir kural kullanmiyorSGK is kurali ile zorla

C. Kuralin hangi XPath baglaminda calistigi (implementasyon haritasi)

ContextCalisan senaryo kurallari
inv:InvoiceInvoiceTypeCodeCheck, HKSInvioceCheck, IADEInvioceCheck, IlacTibbiCihazInvoiceTypeCodeCheck, YatirimTesvikInvoiceTypeCodeCheck, YatirimTesvikContractDocumentReferenceIDCheck, IdisInvoiceTypeCodeCheck, EnerjiInvoicePeriodCheck, EnerjiESURaporIDCheck, TaxRepresentativePartyCheck, GeneralWithholdingTaxTotalCheck, DeliveryCodeCheck
inv:Invoice/cbc:ProfileIDIhracatYolcuBeraberCheck, KamuFaturaCheck
inv:Invoice/cac:AccountingSupplierParty/cac:PartyPartyVDCheck (IHRACAT), IdisSevkiyatNoCheck
inv:Invoice/cac:AccountingCustomerParty/cac:PartyEnerjiPartyIdentificationPlakaCheck
.../cac:AccountingCustomerParty/cac:Party/cac:PartyIdentificationPartyIdentificationTEKNOLOJIDESTEKCheck, TaxFreeInvoiceCheck, DocumentReceiverCheck
inv:Invoice/cac:BuyerCustomerPartyTaxFreeNationalityIDCheck, PassportIDCheck, OfficelTitleCheck
inv:Invoice/cac:InvoiceLineIlacTibbiCihazAdditionalItemIdentificationCheck, TeknolojiDestekAdditionalItemIdentificationCheck, IhracKayitliPartyIdentificationIDTypeCheck, YatirimTesvik* (8 kural), IdisEtiketNoCheck, EnerjiItemInstanceSerialIDCheck, PriceAmountCheck, LineDeliveryCheck, PackageCheck, DeliveryCodeCheck
inv:Invoice/cac:TaxTotalYatirimTesvikKDVCheck, DemirbasKDVTaxExemptionCheck
inv:Invoice/cac:TaxTotal/cac:TaxSubtotalTaxExemptionReasonCheck
inv:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategoryTaxExemptionReasonCodeCheck
apr:ApplicationResponse/cac:SenderPartyARPartyIdentificationGTBCheck
desp:DespatchAdviceDespatchAdviceHKSKunyeCheck
desp:DespatchAdvice/cac:DespatchLineDespatchIdisEtiketNoCheck
desp:DespatchAdvice/cac:DespatchSupplierParty/cac:PartyDespatchIdisSevkiyatNoCheck

inv:Invoice/cac:InvoiceLine baglamindaki 8 YatirimTesvik kurali: CommodityClassificationCheck, ItemClassificationCodeCheck, ItemClassificationCodeIstisnaCheck, ItemClassificationCodeIstisnaCalculationSequenceNumericCheck, TaxExemptionReasonCode308Check, TaxExemptionReasonCode339Check, ItemInstanceCheck, LineKDVCheck.

D. Senaryo kurallarinin yurulukluk takvimi (regresyon testi icin)

TarihDegisiklik
20170413AccountingCostCodeList, AccountingCostCheck, SGKInvoiceCheck eklendi
20171002AccountingCostCheck silindi
20171213SGKInvoiceCheck silindi
20190806ProfileIDType guncellendi, KamuFaturaCheck guncellendi
20200402HKSInvioceCheck eklendi
20231228DespatchAdviceHKSKunyeCheck + ProfileIDTypeDespatchAdvice eklendi; PartyIdentificationIDType, HKSInvioceCheck guncellendi
20250128IADEInvioceCheck, AdditionalItemIdentificationIDType, IlacTibbiCihazAdditionalItemIdentificationCheck eklendi
20250428TeknolojiDestekAdditionalItemIdentificationCheck, PartyIdentificationTEKNOLOJIDESTEKCheck eklendi
20250905IhracKayitliPartyIdentificationIDType eklendi
20251104IhracKayitliPartyIdentificationIDTypeheck -> ...IDTypeCheck olarak yeniden adlandirildi
2025120910 adet YatirimTesvik* kurali + YatirimTesvikEArsivInvoiceTypeCodeList + YatirimTesvikItemClassificationCodeList eklendi
20260109IdisInvoiceTypeCodeCheck, IdisSevkiyatNoCheck, IdisEtiketNoCheck, DespatchIdisEtiketNoCheck, DespatchIdisSevkiyatNoCheck, YatirimTesvikLineKDVCheck eklendi
20260312DemirbasKDVTaxExemptionCheck eklendi (555 kodu)
20260701EnerjiInvoicePeriodCheck, EnerjiESURaporIDCheck, EnerjiPartyIdentificationPlakaCheck, EnerjiItemInstanceSerialIDCheck, LicensePlateIDCheck, YatirimTesvikTaxExemptionReasonCodeType eklendi

20260701 kalemleri 27.07.2026 paketiyle yayimlanmis olup 14.09.2026'da devreye alinacaktir. Portal, fatura tarihine gore kural setini surumlemelidir.


Dogrulanamayanlar

Asagidaki noktalar korpustan kanitlanamamistir. Portalda varsayim olarak kodlanmamali, birincil kaynaktan (GIB'in yayimladigi guncel PDF/paket) teyit edilmelidir.

KonuDurum
KAMU: KBS / say2000i kodu, cac:OrderReference siparis referansi, muayene-kabul referansiDOĞRULANAMADI — "say2000i", "KBS" ve "muayene-kabul" ifadeleri korpusun tamaminda gecmiyor. Kamu kilavuzu v1.5 yalnizca iki ek bilgi tanimlar: IBAN ve harcama birimi VKN'si. Baska bir MGM/HYS dokumaninda tanimli olabilir.
KAMU: PayeeFinancialAccountIDCheck / ...CurrencyCodeCheck / BuyerCustomerPartyCheck kurallarinin akibetiDOĞRULANAMADI — bu uc kuralin (a) hic yayina alinmadigi mi, (b) sonradan kaldirildigi mi anlasilamiyor. History.txt'de adlari hic gecmez (yalnizca KamuFaturaCheck 20190806'da guncellenmis). Kilavuz v1.5 (Ekim 2024) 24.08.2026 paketiyle senkron degildir.
SGK: "SGK e-Fatura Teknik Dokumani"DOĞRULANAMADI — korpusta yoktur. Elimizdeki SGK Uygulama Kilavuzu 29.09.2017 / v1.0'dir ve UBL eleman adlarini vermez ("Konuya iliskin teknik bilgiler teknik dokumanda yer almaktadir" der). "Mukellef Kodu", "Mukellef Adi", "Dosya No", "Donem" alanlarinin hangi UBL elemanlarina yazilacagi bilinmemektedir.
SGK: "Ilave Fatura Tipi" -> cbc:AccountingCost eslesmesiCIKARIM — birebir alintiyla kanitlanmamistir. Dayanaklari: kod listesinin adi AccountingCostCodeList, listenin SGK tablosuyla birebir ortusmesi, ve silinmis AccountingCostCheck kuralinin varligi. UBL-TR Fatura V1.0'in ayrintili bolumunde elemanin Turkce adi "Hesap Kodu"dur; "Ilave Fatura Tipi Ayrimi" ifadesi ozet tablodadir.
SGK: Harcama Birim Numaralari tablosuDOĞRULANAMADI — 2017 tarihli kilavuzun 2026 itibariyle guncelligi teyit edilemez. Ayrica tablonun PDF->metin donusumu sutun kaymasi icerir. Teyit edilebilen ornekler: Emeklilik Hizmetleri GM 1012, Strateji Gelistirme Bsk. 1328, Adana SGIM 1016, Artvin SGIM 1107, Istanbul SGIM 1343. Orijinal PDF'ten dogrulanmalidir.
HKS: HKSSATIS / HKSKOMISYONCU tiplerinin anlamiDOĞRULANAMADI — korpusta yalnizca UBL-TR_Codelist.xml satir 10'da gecerler. KOMISYONCU'dan farklari ve ne zaman kullanilacaklari bilinmiyor.
HKS: Ayri "Hal Kayit Sistemi Fatura Teknik Kilavuzu"DOĞRULANAMADI — korpusta yoktur. Kunye numarasinin ic yapisi / uretim kurali bilinmiyor; yalnizca 19 karakter uzunlugu schematron'dan cikarilabiliyor.
IHRACAT: GTB_REFNO hangi elemana yazilirDOĞRULANAMADI — UBL belgesinde hangi tarafa (satici / alici / ApplicationResponse) yazilacagina dair ornek veya kural korpusta yoktur. Gumruk kilavuzu 23 haneli referanstan bahseder ama bunun GTB_REFNO alanina yazildigini soylemez; hicbir schematron kurali GTB_REFNO'yu kontrol etmez.
IHRACAT: Gumruk Islemleri Kilavuzu'nun guncelligiDOĞRULANAMADI — korpustaki surum Temmuz 2016 / v1.1'dir (en eski ozel senaryo kilavuzu). "Gumruk ve Ticaret Bakanligi" adi 2018'den beri "Ticaret Bakanligi"dir; VKN 1460415308 ve gtb.gov.tr etiketleri schematron'da aynen durdugundan teknik olarak hala gecerlidir, ancak 2026 surumu korpusta yoktur.
OZELFATURA: senaryoya ozel alan/format kilavuzuDOĞRULANAMADI — korpusta yoktur. Yalnizca IhracatYolcuBeraberCheck ve TaxFreeInvoiceCheck icinde izinli deger olarak gecer.
ENERJI: "Elektrik Sarj Hizmetlerine Iliskin Bildirim Teknik Kilavuzu" ve ESURaporID uretimiDOĞRULANAMADI — korpusta yoktur. ESURaporID'nin nasil uretildigi, GIB'e anlik bildirimin nasil yapildigi bilinmiyor. Elektrik Sarj Fatura Teknik Kilavuzu V1.0 (Aralik 2023) tarihlidir; 01.07.2026'da eklenen dort Enerji kuralini yansitan guncel kilavuz surumu yoktur.
YATIRIMTESVIK: e-Arsiv raporundaki ytbBilgileri alt elemanlariDOĞRULANAMADIearsiv_schematron.xsl bu alani zorunlu kilar, ancak e-Arsiv Teknik Kilavuzu V.1.18 (Agustos 2025) icinde ytbBilgileri hic gecmez. Alt elemanlar icin e-Arsiv paketi v1.1.8 (11.08.2026) XSD'si gereklidir.
TEKNOLOJIDESTEK: hukuki dayanak, tutar/adet siniri, raporlamaDOĞRULANAMADI — ayri teknik kilavuz yoktur. Bu deger korpusta yalnizca History.txt, Codelist.xml, Common/Main Schematron ve V1.43'te gecer.
IDIS: ES- on ekinin anlamiDOĞRULANAMADI — schematron kabul eder, hicbir kilavuz aciklamaz.
STDKODFATURA senaryosuDOĞRULANAMADI — V1.43 senaryo tablosunda "Standart Kod Fatura surecini belirtir" aciklamasiyla listelenmis, ancak ProfileIDType listesinde yoktur. Ne oldugu, ne zaman devreye girecegi ve hangi ek alanlari gerektirdigi bilinmiyor.
V1.43 tablolarinin OCR guvenilirligiUYARI — 2.1 PartyIdentification, 2.2 Senaryo, 2.3 AdditionalItemIdentification, 1.14 INCOTERMS ve istisna kodu tablolarinda sutun hizalamasi bozulmustur. Kritik kod-aciklama eslesmeleri (308, 339, 555, 701-704, ILAC/TIBBICIHAZ/DIGER, 15 INCOTERMS kodu) ilgili kilavuzlardan capraz dogrulanmistir; 2xx-3xx araligindaki bazi istisna kodu aciklamalari bu dosyadan guvenilir okunamamaktadir. Ayrica V1.43 basili tablosunda kod GCB_TESCILNO yazilmistir (GTB_ oneki dusmus) — dogru deger GTB_GCB_TESCILNO'dur.

BÖLÜM 6 — Diğer e-Belgeler

Diğer e-Belgeler

Bu bölüm 509 SN VUK Genel Tebliği'nin e-Fatura/e-Arşiv Fatura/e-İrsaliye dışında kalan "ikincil" e-belgelerini kapsar. Tüm veriler korpustaki mevzuat ve GİB teknik kılavuzlarından çıkarılmış, her tespit hakem ajanı tarafından kaynağa dönülerek doğrulanmıştır.

Özet tablo — hangi belge kim için zorunlu

BelgeZorunlu mu?Kimin içinDayanak
e-SMMZORUNLU (genel)Vergiden muaf olmayan TÜM serbest meslek erbabı — ciro/sektör/mükellefiyet türü şartı yokVUK 236 + 509 IV.4
e-Müstahsil MakbuzuKOŞULLU ZORUNLU(1) e-Fatura'ya geçmek zorunda olup faaliyeti gereği müstahsil makbuzu düzenlemek zorunda olanlar, (2) 5957 SK'ya göre komisyoncu/tüccar olarak sebze-meyve ticareti yapanlar, (3) Başkanlıkça yazılı bildirim yapılanlarVUK 235 + 509 IV.5
e-Gider PusulasıİHTİYARİ (yalnızca kişiye özel yazılı bildirimle zorunlu olur)Hukuken herkes; fiilen Teknik Kılavuz V1.0 ile NACE 47 + e-Fatura + 2024 eşik şartını sağlayan büyük perakendecilerVUK 234 + 509 IV.6
e-AdisyonİHTİYARİMasada servis yapılan, gerçek usulde vergilendirilen hizmet işletmeleri (lokanta, kafeterya, pastane, gazino, bar, pavyon)185, 200, 298, 299 SN VUK GT + 509 IV.12 (526 SN ile eklendi)
e-BiletKOŞULLU ZORUNLU (yalnızca 2 dar grup)D1 yetki belgeli şehirlerarası tarifeli karayolu yolcu taşımacıları; yerli/yabancı film gösteren sinema işletmeleri. Havayolu, denizyolu, tiyatro/konser/spor: ihtiyari509 IV.7
e-Döviz ve Kıymetli Maden Alım-Satım BelgesiİHTİYARİYetkili müesseseler dâhil, ilgili mevzuat gereği döviz alım-satım belgesi düzenleyebilen tüm mükellefler; kıymetli maden yetkisi de olanlar için birleşik belge509 IV.10 (526 ve 535 SN ile genişletildi)
e-Sigorta PoliçesiİHTİYARİSigorta, emeklilik ve reasürans şirketleri ile sigorta ve emeklilik aracıları509 IV.9
e-Sigorta Komisyon Gider BelgesiİHTİYARİSigorta/emeklilik/reasürans şirketleri (aracılar adına, aracının faturası yerine geçer)509 IV.8
e-DekontİHTİYARİBankalar (istemeleri hâlinde 1/1/2020'den), 435 SN GT'nin (2) numaralı bölümündeki kuruluşlar (1/1/2025'ten)243, 246, 435 SN VUK GT + 509 IV.11 (573 SN ile genişletildi)

NET TESPİT — İkincil belgelerden genel zorunluluğu olan tek belge e-SMM'dir. 509'da bu dokuz belge içinde istisnasız, tüm mükellef grubunu kapsayan geçiş zorunluluğu getirilen tek uygulama e-Serbest Meslek Makbuzudur. e-MM ve e-Bilet yalnızca dar tanımlı mükellef gruplarını bağlar (koşullu zorunlu). Kalan altı belge (e-Gider Pusulası, e-Adisyon, e-Döviz, e-Sigorta Poliçesi, e-Sigorta Komisyon Gider Belgesi, e-Dekont) korpustaki hâliyle İHTİYARİDİR; Başkanlık bunlara ancak yazılı bildirim/duyuru ile ve en az 3 ay süre vererek zorunluluk getirebilir ve korpusta böyle bir duyuru yoktur.

Zorunluluk tarihleri (509 Resmî Geçiş Takvimi Tablosu):

Belge / kapsamSon tarih
e-SMM — 1/2/2020 itibarıyla faaliyetine devam edenler1/6/2020
e-SMM — 1/2/2020 (dâhil) sonrası işe başlayanlarişe başladıkları ayı izleyen 3 üncü ayın sonu
e-MM — genel (e-Fatura zorunlusu + müstahsil makbuzu düzenleyenler)1/7/2020
e-MM — 5957 sayılı Kanun komisyoncu/tüccarları1/1/2020
e-MM — 2020 ve müteakip yıllarda e-Fatura'ya geçenlere-Fatura'ya geçiş süresi içinde
e-Bilet — D1 yetki belgeli şehirlerarası tarifeli taşımacılar1/1/2021 (2021+ başlayanlar: faaliyete başladığı ayı izleyen dördüncü ayın başından itibaren)
e-Bilet — yerli/yabancı film gösteren sinema işletmeleri1/7/2020 (sonra başlayanlar: dördüncü ayın başına kadar) + YN ÖKC zorunluluğu
e-GP, e-Sigorta Poliçesi, e-Sigorta Komisyon, e-Döviz, e-DekontBaşkanlıkça belirlenecek süre (en az 3 ay) — belirlenmemiş
e-AdisyonResmî geçiş takvimi tablosunda satırı dahi YOKTUR

Portal notu: yeni serbest meslek mükellefi kaydı açılırken "işe başlama ayı + 3 ay" kuralı hâlâ işlemektedir; bu tarih otomatik hesaplanmalıdır.

e-Arşiv alt belgesi mi, bağımsız uygulama mı?

Portal mimarisi açısından en kritik ayrım budur. e-Arşiv Başvuru Kılavuzu V1.8 (22.05.2026) Giriş bölümü e-Arşiv uygulamasının kapsamını tek tek sayar: e-Arşiv Fatura, e-Serbest Meslek Makbuzu, e-Müstahsil Makbuzu, e-Dekont, e-Döviz ve Kıymetli Maden Alım Satım Belgesi, e-Adisyon Belgesi, e-Sigorta Komisyon Gider Belgesi ve e-Gider Pusulası.

Belgee-Arşiv alt belgesi mi?e-Fatura kaydı şart mı?GİB PortalRapor / iletimRapor süresi
e-SMMEVETHAYIR — tek istisnaVARe-Arşiv Raporu → serbestMeslekMakbuzGünlük, izleyen günün sonu
e-MMEVETEVETVARe-Arşiv Raporu → mustahsilMakbuzGünlük, izleyen günün sonu
e-Gider PusulasıEVETEVETYOK (yalnızca ÖE)e-Arşiv Raporu (kılavuz emrediyor)Günlük, izleyen günün sonu — ÇIKARIM
e-AdisyonEVETEVET + e-Arşiv Fatura daYOK (ÖE veya Doğrudan Entegrasyon)e-Arşiv Raporu → adisyonGünlük, izleyen günün sonu
e-DekontEVETBaşvuru Kılavuzu V1.8 e-Fatura kaydı ister (509 IV.11.2'de sayılmamış)YOK (2 yöntem)e-Arşiv Raporu → bankReceiptGünlük, izleyen günün sonu
e-Döviz / Kıymetli MadenBaşvuru/test yönüyle EVETEVETYOKBelge, zarf ile GİB Sanal Alıcı (VKN 3900892152)'ya gönderilir. 509 V.5.10 ayrıca bir rapor öngörür, ancak korpustaki hiçbir kılavuzda e-Döviz rapor yapısı/süresi tanımlı değildirDOĞRULANAMADI
e-Sigorta Komisyon Gider BelgesiEVET (başvuru yönüyle)EVETYOKKorpusta raporlama yapısı tanımlı DEĞİL (teknik kılavuzu korpusta yok; e-Arşiv Raporu şemasında elemanı yok)DOĞRULANAMADI
e-Sigorta PoliçesiKISMEN AYRILIR — e-Arşiv Raporu üretir ama Başvuru Kılavuzu V1.8 listesinde yokturEVETYOKe-Arşiv Raporu hazırlanır + XADES-A ile imzalanır + saklanır, Başkanlık sistemine YÜKLENMEZYükleme yok
e-BiletHAYIR — BAĞIMSIZ UYGULAMA (kendi paketi, kendi XSD'si, kendi web servisi)EVET (Türkiye'de tam mükellef olmayan havayolu firmaları hariç)YOKe-Bilet Raporu (kendi şeması)AYLIK — takip eden ayın 15'i saat 24:00

Ayrımın hukuki temeli (509 V.8): "e-Fatura ve e-İrsaliye gibi iletimini Başkanlığın yaptığı e-Belgeler dışındaki belgeleri düzenlemek üzere izin alan mükellefler ve özel entegratörler ... e-Belge Raporunu elektronik sertifika ile zaman damgalı olarak imzalayarak ... Başkanlık sistemine aktarmak zorundadır." Aynı bölüm ekler: "Erişim ve raporlama gereklerinin yerine getirilmiş olması, mükellefin e-Belgeye konu belgelerinin muhafazası ve ibrazı ödevlerini ortadan kaldırmaz."

Akıştan ayrılan iki belge:

  • e-Bilet — tamamen ayrı zamanlayıcı gerektirir: aylık dönem, takip eden ayın 15'i 24:00. e-Arşiv'in günlük akışıyla aynı kuyruğa konulamaz.
  • e-Sigorta Poliçesi — rapor üretilir ve imzalanır, ancak yüklenmez; Başkanlık duyuruyla uzaktan erişime açılmasını veya gönderilmesini talep edebilir. Portal, "üret-imzala-sakla-talep hâlinde ver" modunu desteklemelidir.

İki ayrı doğrulama hattı zorunludur. e-Fatura paketinin (24.08.2026) UBL-TR_Codelist.xml, UBL-TR_Main_Schematron.xml ve UBL-TR_Common_Schematron.xml dosyalarında MUSTAHSILMAKBUZ, ADISYON, GIDERPUSULASI, EARSIVBELGE, EDOVIZBELGE, EKIYMETLIMADENBELGE, SIGORTAKOMISYONGIDERBELGESI, DOVIZALIMBELGESI, DOVIZSATIMBELGESI değerlerinin hiçbiri yer almaz (arama sonucu sıfır). Dolayısıyla ProfileIDType, InvoiceTypeCodeList, InvoiceTypeCodeCheck, IADEInvioceCheck gibi şematron kuralları bu belgelere uygulanmaz; e-Arşiv ailesi için korpustaki earsiv_schematron.xsl (e-Arşiv paketi v1.1_8, 11.08.2026) ve ilgili belge XSD'leri kullanılır. e-Sigorta Poliçesi ve e-Bilet ise UBL bile değildir, kendi XSD'lerine sahiptir.

İmza standartları özeti:

KapsamStandart
e-MM, e-Adisyon, e-Gider Pusulası (UBL CreditNote)XADES-BES
e-Arşiv Raporu (tüm alt belgeler)XADES-A + zaman damgası
e-SMM, e-Sigorta Poliçesi, e-Bilet — PDF kullanılıyorsaPADES
e-Bilet Raporu paketiasgari XAdES-BES "enveloped", zaman damgalı (XAdES-T/A da olabilir)

Karekod zorunluluğu hangi belgelerde var

Kaynak: Karekod Standardı Kılavuzu V1.2 (06.11.2023; ilk yayım 17.02.2023). Kılavuzun Giriş bölümü, 509'un karekod hükmü içeren sekiz bölümünü tek tek sayar.

#Belge509 bendiKarekod Kılavuzunda alan tanımı var mı?
1e-FaturaIV.1.3VAR (2.1) — ayrıca 2.1.1 Yolcu Beraber Eşya senaryosu
2e-Arşiv FaturaIV.2.3VAR (2.2)
3e-İrsaliyeIV.3.3VAR (2.3)
4e-SMMIV.4.3 (d)VAR (2.4)
5e-Müstahsil MakbuzuIV.5.3VAR (2.5)
6e-Sigorta Komisyon Gider BelgesiIV.8.3VAR (2.6)
7e-Döviz ve Kıymetli Maden Alım-Satım BelgesiIV.10.3VAR (2.7)
8e-AdisyonIV.12.3VAR (2.8)
e-Gider PusulasıIV.6.3 (d) — karekod ZORUNLU bilgiYOK (kılavuz 2023, e-GP kılavuzu 2025)
e-Bilet (3 tür)IV.7.3.1.1(ı), IV.7.3.2.1(f), IV.7.3.3.1(ğ) — ZORUNLU bilgiYOK
e-Sigorta PoliçesiIV.9.3 — ZORUNLU bilgiYOK
e-DekontIV.11.3 — ZORUNLU bilgiYOK

Kurallar:

  • Konum: "Karekod'un ilgili elektronik belgenin sağ üst köşesinde yer alması gerekmektedir."
  • Format: Karekod içeriği JSON nesnesidir (tüm kılavuz örnekleri {"vkntckn":"...", ...} biçiminde).
  • Yürürlük tarihi — HEPSİ İÇİN AYNI VE BELİRSİZ: 509'un tüm ilgili bentlerindeki parantez içi ifade aynıdır: "(Başkanlık tarafından ebelge.gib.gov.tr adresinden yapılan duyuruda belirtilecek tarihten itibaren)". Bu tarihi belirleyen duyuru korpusta YOKTUR → karekodun 31.08.2026 itibarıyla fiilen zorunlu olup olmadığı DOĞRULANAMADI. Portal, karekod üretimini feature-flag ile açılabilir kurgulamalı ve alan eşleşmelerini şimdiden hazır tutmalıdır.
  • Tek istisna (Bölüm 3): EPDK'dan dağıtım/tedarik lisansı ile doğal gaz ve elektrik dağıtım/satış faaliyetinde bulunanlar ile Karayolu Taşıma Yönetmeliği uyarınca M1, M2 yetki belgeli kargo ve lojistik işletmeleri ile Başkanlıktan yazılı izin alan mükelleflere kullanma izni verilen el terminalleri aracılığıyla e-Arşiv Fatura düzenlenmesi durumunda kâğıt çıktılarda karekod bulunma zorunluluğu yoktur; elektronik ortamda saklanan dosyalar yine karekod içerecek şekilde görüntülenmelidir.

e-Serbest Meslek Makbuzu (e-SMM)

Başlıkİçerik
Mevzuat dayanağı213 sayılı VUK 236 ncı madde + 509 SN VUK GT IV.4. Yeni belge türü değildir; kâğıt "Serbest Meslek Makbuzu" ile aynı hukuki niteliktedir
ZorunlulukZORUNLU — genel. Vergiden muaf olmayan tüm serbest meslek erbabı (509 IV.4.4/IV.4.5). Ceza (IV.4.6): süresinde geçmeyenler ile matbu kâğıt SMM düzenleyenler ve alanlar dâhil
KapsamSerbest meslek erbabının mesleki faaliyetlerine ilişkin TAHSİLATLARI (teslim/hizmet anı değil, tahsilat anı). GİB broşürü meslek listesi: avukat, doktor, diş hekimi, mimar, ressam, veteriner hekim, mühendis, noter, rehber, yeminli mali müşavir, serbest muhasebeci mali müşavir, senarist, danışman, yönetmen, artist, bestekar, menajer, sünnetçi, yazar, kimyager ve "vb." — ölçüt meslek adı değil, "faaliyetleri gereği serbest meslek makbuzu düzenleyenler"
Teknik kılavuz + sürümMüstakil UBL-TR e-SMM kılavuzu korpusta YOKTUR. Standart: e-Arşiv Teknik Kılavuzu V1.18 (27.08.2025) Bölüm 7; rapor alanları 3.3.6; karekod: Karekod Standardı Kılavuzu V1.2, 2.4; broşür: E-SMM Broşür V18.3
XML kök elemanıDOĞRULANAMADI — korpusta e-SMM'nin XSD'si, kök elemanı (Invoice / CreditNote / özel şema), ProfileID ve CustomizationID sabitleri yoktur. Korpustan çıkarılabilen tek şey: izinle PDF kullanılabildiği (PADES) ve PDF ekine attach yöntemiyle bir "serbest meslek makbuzu XML'i" eklenmesi gerektiği; ek XML yayınlanan şema ve şematron kurallarına uygun olmalı, ekin ayrıca imzalanması zorunlu değildir
Raporlamae-Arşiv Raporu içinde serbestMeslekMakbuz elemanı. Günlük dönemler hâlinde, en geç izleyen günün sonuna kadar (e-Arşiv Teknik Kılavuzu V1.18, Bölüm 5). GİB Portal kullanıcılarının rapor oluşturma/gönderme yükümlülüğü YOKTUR. İmza XADES-A + zaman damgası; gönderim sendDocumentFile (UUID adlı zip, içinde aynı adlı XML, açık boyut max 100 MB — aşarsa rapor bölünür), getBatchStatus, getUserList
İptale-Arşiv Uygulamaları (e-Arşiv Fatura, e-SMM) İptal, İhtar/İtiraz Bildirim Kılavuzu V1.1 (Ocak 2025) kapsamındadır — bu kılavuz yalnızca e-Arşiv Fatura ve e-SMM'yi kapsar. 8 günlük süre, e-belgenin alıcıya iletilme tarihinden başlar; iptal her durumda 8 gün içinde yapılmalıdır. Talebi hem satıcı hem alıcı başlatabilir, karşı tarafın onaylama zorunluluğu yoktur (Talebi Kabul Et / Talebi Reddet). Harici itiraz yolları: noter, taahhütlü mektup, telgraf, KEP + güvenli e-imza — bu hâlde itiraz sistem üzerinden bildirilip karşı tarafın onayına sunulur; İtiraz Belge No/Tarihi alanlarına harici belgenin no/tarihi girilir

Uygulamaya dahil olma — kritik ayrım: e-SMM, e-Arşiv alt uygulamaları içinde e-Fatura kaydı aranmayan tek belgedir. 509 IV.4.2'de yalnızca (a) hazırlığı tamamlamış olmak, (b) V.1'e uygun başvuru yapmak şartları vardır. Başvuru öncesi NES veya mali mühür edinilmesi gerekir. Kullanım yöntemleri: GİB Portal / Özel Entegratör / Doğrudan Entegrasyon — GİB Portal e-Arşiv Fatura, e-SMM ve e-MM için kullanılabilir.

Belgede bulunması zorunlu bilgiler (509 IV.4.3):

#Bilgi
aSerbest meslek erbabının adı, soyadı, vergi dairesi, VKN veya TCKN'si, adresi
bMüşterinin adı, soyadı veya unvanı, adresi, vergi mükellefi ise vergi dairesi, VKN veya TCKN'si
cBelgenin düzenlenme tarihi ile saat ve dakika olarak düzenlenme zamanı ve belge numarası
çAlınan paranın miktarı (varsa vergi tevkifatı tutarları ve KDV tutarları AYRINTILI OLARAK gösterilecek şekilde)
dKarekod veya barkod (Başkanlık duyurusunda belirtilecek tarihten itibaren)

(ç) bendi, portalın SMM ekranında brüt ücret / GV stopajı / KDV / KDV tevkifatı / net tahsilat kalemlerinin ayrı ayrı alan olarak tutulmasını zorunlu kılar.

Parasal alanlar — Karekod Kılavuzu V1.2, 2.4 (tam liste):

BilgiKarekod alanıAçıklama
Gönderen VKN/TCKNvkntckn10 hane VKN / 11 hane TCKN
Alıcı VKN/TCKNavkntckn10 hane VKN / 11 hane TCKN
Belge tarihitarihYıl-Ay-Gün
Belge nono3 hane alfanumerik + 13 hane müteselsil (GIB2021000000001)
ETTNettnGUID
Belge para birimiparabirimiTRY / USD / EUR
Brüt ücret tutarıbrutucret
Tahsil KDV tutarıtahsilkdvTahsil edilen KDV
KDV tevkifat tutarıkdvtevkifat
GV stopaj tutarıgvstopajGelir Vergisi Stopaj Tutarı
KDV tutarıkdvtutari
Net ücret tutarınetucretToplam tutar
TahsilattahsilatTahsil edilecek tutar

Kılavuzdaki örnek (brüt 1000): brutucret 1000.00, tahsilkdv 90.00, kdvtevkifat 90.00, gvstopaj 200.00, kdvtutari 180.00, netucret 800.00, tahsilat 890.00. Hesap mantığı: netucret = brutucret − gvstopaj; kdvtutari = brutucret × oran; tahsilkdv = kdvtutari − kdvtevkifat; tahsilat = netucret + tahsilkdv.

Rapor tarafı (e-Arşiv Teknik Kılavuzu V1.18, 3.3.6): makbuzNo (Z1), gonderimSekli (Z1: KAGIT/ELEKTRONIK), dosyaAdi (Z1), ozetDeger, duzenlenmeTarihi, duzenlenmeZamani (Seçimli 0-1), toplamTutar, odenecekTutar, paraBirimi, dovizKuru, serbestMeslekMakbuzUrl (Z1, .pdf dosyasına ulaşılacak URL, max 255 karakter), vergiBilgisi, aliciBilgileri (tuzelKisi: vkn+unvan / gercekKisi: tckn+adiSoyadi), imzaZamani (Z1 — V1.18 ile zorunlu), ynOkcFisBilgisi (0..n: okcSeriNo, zNo, fisNo, fisTip, fisTarih, fisZaman). Ayrıca serbestMeslekMakbuzIptal (3.3.7) ve serbestMeslekMakbuzItiraz (3.3.8) elemanları vardır — not: rapor kök eleman tablosunda itiraz elemanının adı serbestMeslekMakbuzuItiraz (fazladan "u" ile) yazılmıştır; bu GİB dokümanının kendi içindeki tutarsızlığıdır, entegrasyonda XSD esas alınmalıdır.

vergiBilgisi yapısı: vergilerToplami (Z1), vergi (Z1, 1..n: matrah, vergiKodu, vergiTutari, vergiOrani — örnek matrah 1000, vergiKodu 0015, vergiTutari 200, vergiOrani 20), tevkifat (Seçimli 0..n: tevkifatKodu, tevkifatTutari, tevkifatOrani — örnek 410 / 36 / %20). V1.18 (27.08.2025) ile e-SMM raporlarında vergi oranı bilgisi ZORUNLU hale getirilmiştir.

Düzenleme ve teslim (509 V.5.4): e-SMM elektronik sertifika ile imzalanır ve muhatabın talebine göre ıslak imzalı kâğıt çıktısı verilerek veya elektronik ortamda iletilerek teslim edilir. Islak imza alternatifi: serbest meslek erbabının imzası notere tasdik ettirilip, ıslak imza yerine geçmek üzere hazır imzalı düzenlenip teslim edilebilir. YN ÖKC (426 SN VUK GT): e-SMM bilgilerini ihtiva eden e-SMM Bilgi Fişi imzalanıp müşteriye verilirse kâğıt çıktı yerine geçer; bu, elektronik imza ve elektronik muhafaza zorunluluğunu kaldırmaz. Hekimler (diş ve veteriner dâhil): EFT-POS özellikli YN ÖKC, banka işlem bilgilerinin (işyeri no, terminal no, kart numarasının son dört rakamı, kart sahibinin adı soyadı, tahsilat tutarı, onay kodu) e-SMM üzerinde yer alması ve ÖKC fişinin müşteriye verilmesi koşuluyla 379 ve 382 SN Tebliğlerdeki POS cihazı yerine kullanılabilir. 379 SN kapsamındaki Hekim POS cihazları e-SMM'ye geçenler için artık yalnızca tahsilat cihazıdır; POS'tan tahsilat yapılsa bile mutlaka e-SMM düzenlenmelidir.

SSS uyarısı: İmzalanmış e-SMM üzerinde değişiklik yapılamaz — "Mali mühür ya da NES ile imzalanan e-SMM belgesi iptal edilemez. Ancak söz konusu belgede var olan hata durumunda kanunun öngördüğü diğer bilgi ve belgelerle tevsik edilmesi durumunda kayıtlara alınmayabilir."

Vergi ve tevkifat kodları (UBL-TR Kod Listeleri V1.43, 27.07.2026, bölüm 1.9)

TaxScheme/TaxTypeCode ve rapordaki vergiKodu için kullanılan VERGİ KODLARI LİSTESİ (29 kod, tamamı):

KodKısaltmaKodKısaltma
0003GV STOPAJI4080Ö.İLETİŞİM V
0011KV STOPAJI40815035ÖZİLETV.
0015KDV GERCEK4171PTR-DGZ ÖTV TEVKİFAT
0021BMV8001BORSA TES.ÜC.
0022SMV8002ENERJİ FONU
0061KKDF KESİNTİ8004TRT PAYI
0071ÖTV 1.LİSTE8005ELK.TÜK.VER.
0073ÖTV 3.LİSTE8006TK KULLANIM
0074ÖTV 4.LİSTE8007TK RUHSAT
0075ÖTV 3A LİSTE8008ÇEV. TEM. VER.
0076ÖTV 3B LİSTE90214961BANKASMV
0077ÖTV 3C LİSTE9040MERA FONU
1047DAMGA V9077ÖTV 2.LİSTE
10485035SKDAMGAV9944BEL.ÖD.HAL RÜSUM
4071ELK.HAVAGAZ.TÜK.VER.

Uyarı: kılavuzun metne çevrilmiş hâlinde "VERGİ ADI" sütunu bir satır kaymış görünmektedir; kod ↔ kısaltma eşleşmesi (0003 → GV STOPAJI, 0015 → KDV GERCEK) doğrudur.

TEVKİFAT KODLARI LİSTESİ (WithholdingTaxTotal altında, 52 kod): 601 Yapım İşleri (4/10), 602 Etüt-Plan-Proje-Danışmanlık-Denetim (9/10), 603 Makine-Teçhizat-Demirbaş-Taşıt Tadil/Bakım/Onarım (7/10), 604 Yemek Servis (5/10), 605 Organizasyon (5/10), 606 İşgücü Temin (9/10), 607 Özel Güvenlik (9/10), 608 Yapı Denetim (9/10), 609 Fason Tekstil-Konfeksiyon/Çanta-Ayakkabı Dikim (7/10), 610 Turistik Mağazalara Müşteri Bulma (9/10), 611 Spor Kulüpleri Yayın/Reklam/İsim Hakkı (9/10), 612 Temizlik (9/10), 613 Çevre ve Bahçe Bakım, 614 Servis Taşımacılığı, 615 Her Türlü Baskı ve Basım, 616 Diğer Hizmetler [KDVGUT I/C-2.1.3.2.13], 617 Hurda Metalden Külçe Teslimleri, 618 Hurda Dışı Bakır-Çinko-Demir-Çelik-Alüminyum-Kurşun Külçe Teslimleri, 619 Bakır/Çinko/Alüminyum Ürünleri Teslimi, 620 İstisnadan Vazgeçenlerin Hurda ve Atık Teslimi, 621 Metal-Plastik-Lastik-Kauçuk-Kâğıt-Cam Hurda/Atıktan Hammadde Teslimi, 622 Pamuk-Tiftik-Yün-Yapağı ile Ham Post ve Deri, 623 Ağaç ve Orman Ürünleri, 624 Yük Taşımacılığı, 625 Ticari Reklam, 626 Diğer Teslimler [KDVGUT I/C-2.1.3.3.7], 627 Demir-Çelik Ürünleri Teslimi; ve 801-825 (601-627'nin "Diğer Hizmetler"/"Diğer Teslimler" hariç karşılıkları — 801 Yapım İşleri … 825 Demir-Çelik), 801-825'in tamamı 10/10 oranlıdır.

Uyarı: 613-627 satırlarında ORAN sütunu metne çevrilmiş PDF'te kaymıştır; oranlar için KDVGUT esas alınmalıdır.

e-Müstahsil Makbuzu (e-MM)

Başlıkİçerik
Mevzuat dayanağıVUK 235 inci madde + 509 SN VUK GT IV.5. Gerçek usulde vergiye tabi olmayan çiftçilerden mal satın alınmasında fatura yerine geçen ticari vesika; yeni belge türü değildir
ZorunlulukKOŞULLU ZORUNLU (509 IV.5.2, IV.5.4). Üç grup: (1) e-Fatura'ya geçmek zorunda olanlardan faaliyeti gereği müstahsil makbuzu düzenlemek zorunda olanlar, (2) 5957 sayılı Kanun'a göre komisyoncu veya tüccar olarak sebze-meyve ticaretiyle iştigal edenler, (3) Başkanlıkça riskli/uyum düzeyi düşük tespit edilip yazılı bildirim yapılanlar (en az 3 ay süre)
KapsamZirai ürün alımları. İhtiyari dahil olma şartı (IV.5.2): (a) e-Fatura uygulamasına dâhil olmak, (b) hazırlık, (c) V.1'e uygun başvuru. GİB Portal kullanılabilir
Teknik kılavuz + sürüme-Müstahsil Makbuzu Teknik Kılavuzu (UBL-TR) V1.1 — 22.05.2026 (ilk yayım 04.01.2018). V1.1 ile SMS doğrulama alanları eklendi
XML kök elemanıUBL-TR CreditNote. UBLVersionID=2.1, CustomizationID=TR1.2.1, ProfileID=EARSIVBELGE, CreditNoteTypeCode=MUSTAHSILMAKBUZ (Seçimli 0..1). İmza XADES-BES
Raporlamae-Arşiv Raporu içinde mustahsilMakbuz (0..n) ve mustahsilMakbuzIptal; günlük, en geç izleyen günün sonuna kadar. Kılavuz: "Müstahsil makbuzunun BAŞKANLIK'a raporlanması konusu e-Arşiv teknik kılavuzunda ayrıca açıklanacaktır."
İptalSistem üzerinden iptal/itiraz akışı YOKTUR — e-Arşiv İptal/İhtar/İtiraz Kılavuzu V1.1 yalnızca e-Arşiv Fatura ve e-SMM'yi kapsar. SSS-54: "Mali mühür ya da NES ile imzalanan e-MM belgesi iptal edilemez." İptal yalnızca rapordaki mustahsilMakbuzIptal elemanı ile bildirilir

19 ana eleman (Teknik Kılavuz V1.1, bölüm 2.2 — tamamı):

#ElemanTürkçeKardinalite
1UBLExtensionsUBL Genişletme Alanı (XAdES imza)Zorunlu 1..1
2UBLVersionIDUBL Versiyon NumarasıZorunlu 1
3CustomizationIDÖzelleştirme NumarasıZorunlu 1
4ProfileIDSenaryoZorunlu 1
5IDMüstahsil Makbuzu NumarasıZorunlu 1
6CopyIndicatorAsıl (false) / Suret (true)Zorunlu 1
7UUIDETTN (GUID)Zorunlu 1
8IssueDateDüzenleme Tarihi (YYYY-AA-GG)Zorunlu 1
9IssueTimeDüzenleme Zamanı (SS:DD:sn)Seçimli 1
10CreditNoteTypeCodeTip KoduSeçimli 0..1
11NoteNotSeçimli 0..n
12AdditionalDocumentReferenceİlave DokümanSeçimli 0..n
13SignatureMali Mühür / İmzaZorunlu 1..n
14AccountingSupplierPartyMakbuzu Düzenleyen — malları SATIN ALANZorunlu 1
15AccountingCustomerPartyÜretici/Çiftçi — malları ÜRETEN/SATANZorunlu 1
16DeliveryTeslimat BilgileriSeçimli 0..n
17TaxTotalToplam VergiZorunlu 1..n
18LegalMonetaryTotalParasal ToplamlarZorunlu 1
19CreditNoteLineKalem BilgileriZorunlu 1..n

DİKKAT — terminoloji tersliği: UBL'de "SupplierParty" normalde satıcıdır; e-MM'de ise AccountingSupplierParty = makbuzu düzenleyen = malları SATIN ALAN tüccar, AccountingCustomerParty = malları SATAN müstahsil/çiftçi'dir. Portal mapping'inde en sık yapılan hata budur.

Belge numarası (ID): 3 haneli alfanumerik birim kod + 13 haneli müteselsil numara; müteselsil numaranın ilk 4 hanesi yıl, kalan 9 hane sıra no. Örnek GIB2016000000001. Aynı numara düzenleyen bünyesinde birden fazla kullanılamaz.

GELİŞTİRME KALEMİ — 22.05.2026 duyurusu: ıslak imza yerine SMS doğrulama, son tarih 5.11.2026

Ne getirdi: e-Müstahsil Makbuzunun çıktısının muhatabı (müstahsil/çiftçi) tarafından ıslak imza ile imzalanarak düzenlenmesi yerine, malları satan tarafın (müstahsilin) telefonuna gönderilecek SMS KODUNUN, TELEFON NUMARASININ ve SMS'İ GÖNDEREN OPERATÖR BİLGİSİNİN e-Müstahsil Makbuzunda yer almasına yönelik ZORUNLULUK getirilmiştir.

Hukuki dayanak: VUK Mükerrer 242 ve 257 + 509 SN VUK GT'nin "V.5.5. e-Müstahsil Makbuzunun Düzenlenmesi ve Teslimi" bölümüne 573 SN VUK GT (RG: 12/11/2024-32720) ile eklenen fıkra (dipnot 71). Bu fıkra Başkanlığa; faaliyet konusu, mükellefiyet süresi, vergi/şirket/mükellefiyet türü, aktif ya da öz sermaye büyüklüğü, brüt satış hasılatı, sektör ve düzenlenen belge sayısı gibi kriterlere göre belirlenen mükellefler için, muhatap bilgilerinin bilgi teknolojileri ve/veya iletişim araç ve ortamları üzerinden doğrulanması suretiyle düzenleme yetkisi vermişti.

OlayTarih
Duyuru yayımı22.5.2026
e-MM Teknik Kılavuzu V1.1 güncellemesi22.5.2026
ZORUNLU UYGULAMA BAŞLANGICI5.11.2026 — bu tarihten itibaren düzenlenecek TÜM e-Müstahsil Makbuzlarında
Erken kullanımGeliştirmeyi tamamlayanlar belirtilen tarihten önce de kullanabilir
31.08.2026 itibarıyla kalan süre~2 ay 5 gün

Kimi bağlar: "Zorunluluk tarihi olarak belirtilen tarihten önce ilgili tüm mükelleflerin ve özel entegratörlerin gerekli geliştirmeleri yapması önem arz etmektedir."

XML karşılığı — V1.1 ile güncellenen bölümler: 2.2 (Genel), 2.3.14 AccountingSupplierParty, 2.3.15 AccountingCustomerParty ve yeni eklenen 2.4 e-Müstahsil Makbuzunun Düzenlenmesi ve Teslimi.

#BilgiTarafXPathDeğer
1Operatör bilgisiAccountingSupplierParty (Düzenleyen, Zorunlu 1)Party/Contact/OtherCommunication/ChannelCodename="SMS_PROVIDER", içerik = uygulama/operatör adı
2Operatör VKNAccountingSupplierPartyParty/Contact/OtherCommunication/ValueVKN bilgisi
3SMS koduAccountingCustomerParty (Müstahsil, Zorunlu 1)Party/Contact/IDSMS kodu
4Sabit etiketAccountingCustomerPartyParty/Contact/Namesabit SMS
5TelefonAccountingCustomerPartyParty/Contact/TelephoneSMS'in gönderildiği telefon (örn. 5555555555)
<!-- AccountingSupplierParty/Party -->
<cac:Contact>
  <cac:OtherCommunication>
    <cbc:ChannelCode name="SMS_PROVIDER">Uygulama Adı</cbc:ChannelCode>
    <cbc:Value>VKN bilgisi</cbc:Value>
  </cac:OtherCommunication>
</cac:Contact>

<!-- AccountingCustomerParty/Party -->
<cac:Contact>
  <cbc:ID>SMS Kodu yazılacak</cbc:ID>
  <cbc:Name>SMS</cbc:Name>
  <cbc:Telephone>5555555555</cbc:Telephone>
</cac:Contact>

Portal geliştirme kalemleri (5.11.2026 öncesi tamamlanmalı):

#KalemAçıklama
1SMS gönderim altyapısıOperatör/SMS sağlayıcı entegrasyonu; sağlayıcının adı ve VKN'si konfigürasyonda tutulmalı (ChannelCode/Value'ya yazılacak)
2SMS kodu üretme-doğrulama akışıKod üretimi, müstahsilin telefonuna gönderim, doğrulama, süre aşımı/yeniden gönderim; doğrulanan kod belgeye yazılır
3Müstahsil telefon numarası alanıCari kartta zorunlu alan; e-MM oluşturma ekranında doğrulanmış numara zorunlu
4UBL CreditNote mappingYukarıdaki 5 XPath'in yazımı; e-GP'deki karşılığından farklı XPath kullanıldığına dikkat
5Geçiş yönetimi5.11.2026 öncesi ıslak imza + SMS'in birlikte desteklenmesi; tarihten sonra SMS'siz e-MM üretiminin bloklanması
6Test5.11.2026 öncesi entegratör/GİB test ortamında doğrulama

Kılavuzun 2.4 bölümü zorunluluğu tekrar eder ve tarihi "bu Kılavuzun yayınlanması akabinde ebelge.gib.gov.tr adresinde yayımlanacak duyuruda belirtilen tarih"e bağlar — o duyuru 22.5.2026 tarihli duyurudur → 5.11.2026.

Klasik yöntem (509 V.5.5, 5.11.2026'ya kadar): e-MM elektronik sertifika ile imzalanır, en az bir nüsha kâğıt çıktısı alınır, çıktı her iki tarafça ıslak imza ile imzalanır, satıcı çiftçiye verilir ve çiftçi tarafından kâğıt ortamda muhafaza edilir; tüccar nüshası elektronik sertifika ile imzalı olarak elektronik ortamda muhafaza edilir. YN ÖKC (426 SN): e-MM Bilgi Fişi iki nüsha üretilir ve taraflarca imzalanırsa bu nüshalar kâğıt nüshalar yerine geçer; elektronik imza ve muhafaza zorunluluğunu kaldırmaz.

TaxTotal ve kesintiler. Kılavuz örneği (2.3.17): TaxAmount 350 TRY; TaxSubtotal: TaxableAmount 17500, TaxAmount 350, CalculationSequenceNumeric 1, <cbc:Percent>2</cbc:Percent>, TaxScheme <cbc:Name>GELİR VERGİSİ S. (MUHTASAR)</cbc:Name> + <cbc:TaxTypeCode>0003</cbc:TaxTypeCode>. Aynı yapı CreditNoteLine/TaxTotal içinde kalem bazında tekrarlanır.

Karekod alanları (Karekod Kılavuzu V1.2, 2.5):

BilgiUBL alanıKarekod alanı
Gönderen VKN/TCKNAccountingSupplierParty/Party/PartyIdentification/IDvkntckn
Alıcı VKN/TCKNAccountingCustomerParty/Party/PartyIdentification/IDavkntckn
SenaryoProfileIDsenaryo (EARSIVBELGE)
TipiCreditNoteTypeCodetip
Belge tarihi / no / ETTNIssueDate / ID / UUIDtarih / no / ettn
Belge para birimiDocumentCurrencyCodeparabirimi
Mal hizmet toplam tutarıLegalMonetaryTotal/LineExtensionAmountmalhizmettoplam
GV stopaj tutarıTaxTotal/TaxSubTotal/TaxAmountgvstopaj
Mera fonu ücretiTaxTotal/TaxSubTotal/TaxAmountmerafonu
Borsa tescil ücretiTaxTotal/TaxSubTotal/TaxAmountborsatescilucreti
Hesaplanan SGK prim kesintisiTaxTotal/TaxSubTotal/TaxAmountsgkprimkesintisi
Ödenecek tutarLegalMonetaryTotal/PayableAmountodenecek

Örnek JSON: malhizmettoplam 5000.00, gvstopaj 200.00, merafonu 100.00, borsatescilucreti 92.00, sgkprimkesintisi 100.00, odenecek 4508.00. Vergi kodları: GV Stopajı 0003, Mera Fonu 9040, Borsa Tescil Ücreti 8001. e-Arşiv Başvuru Kılavuzu V1.8 test senaryoları (5.3.1–5.3.4) bu üç kalemi ayrı ayrı ve birlikte içeren 4 e-MM örneği ister.

ÇELİŞKİ: Karekod Kılavuzu V1.2 (2.5) tip için MUSTAHSILMAKBUZU örneği verirken, Teknik Kılavuz V1.1 (2.3.10) CreditNoteTypeCode değerini MUSTAHSILMAKBUZ olarak tanımlar. Şematron/XSD esastır — teknik kılavuz değeri (MUSTAHSILMAKBUZ) kullanılmalıdır. Hangi değerin e-Arşiv şematronunca kabul edildiği korpustan doğrulanamamıştır.

Rapor alanları — mustahsilMakbuz (e-Arşiv Teknik Kılavuzu V1.18, 3.3.4; hakem tarafından düzeltilmiş tam liste):

#AlanKardinalite / not
3.3.4.1makbuzNoZorunlu 1 (örn. CDE2018000000001). Bu eleman faturaNo DEĞİLDİR — GİB tablo başlığındaki "faturaNo" ifadesi kopyala-yapıştır artığıdır
3.3.4.2dosyaAdiZorunlu 1 (örn. MustahsilMakbuz_CDE2018000000001.pdf)
3.3.4.3ozetDegerZorunlu 1, SHA-256, hex
3.3.4.4duzenlenmeTarihiZorunlu 1
3.3.4.5duzenlenmeZamaniZorunlu 1
3.3.4.6toplamTutarZorunlu 1, vergi hariç
3.3.4.7odenecekTutarZorunlu 1
3.3.4.8paraBirimiZorunlu 1, ISO 4217
3.3.4.9mustahsilMakbuzUrlZorunlu 1, max 255 karakter — .xml dosyasına ulaşılacak URL (e-SMM'deki serbestMeslekMakbuzUrl ise .pdf der)
3.3.4.10vergiBilgisivergilerToplami / vergi 1..n / tevkifat 0..n
3.3.4.11mustahsilBilgilerigercekKisi: tckn + adiSoyadi
3.3.4.12imzaZamaniZorunlu 1
3.3.4.13ynOkcFisBilgisiSeçimli 0..n (okcSeriNo, zNo, fisNo, fisTip, fisTarih, fisZaman)

mustahsilMakbuz altında UUID elemanı YOKTUR. V1.18 (27.08.2025) ile e-MM raporlarında vergi oranı zorunlu olmuş ve raporlara imzaZamani eklenip zorunlu hâle getirilmiştir.

e-Gider Pusulası

Başlıkİçerik
Mevzuat dayanağıVUK 234 üncü madde + "Bakanlıkça yapılan diğer idari düzenlemeler" + 509 SN VUK GT IV.6. Yeni belge türü değildir
ZorunlulukİHTİYARİ. 509'da ne tarih, ne ciro eşiği, ne sektör bazlı genel geçiş zorunluluğu vardır. IV.6.4 yalnızca Başkanlığın takdirî yetkisini düzenler: riskli/uyum düzeyi düşük mükellefler, faaliyet, sektör ve ciro tutarına bağlı olmaksızın, yazılı bildirim ve en az 3 ay süre ile zorunlu kılınabilir. Zorunluluk kişiye özel bildirimle doğar. Ceza (IV.6.6): zorunluluk getirildiği hâlde geçmeyenler ve kâğıt gider pusulası düzenleyen/alanlar (VUK 232/1'in 1-5 numaralı bentlerindekiler)
KapsamBirinci ve ikinci sınıf tüccarlar, kazancı basit usulde tespit edilenler ile defter tutmak zorunda olan serbest meslek erbabı ve çiftçiler tarafından vergiden muaf esnafa yaptırılan işler / onlardan alınan emtia için. 509 kapsamı VUK 234'ten geniştir: "…ve Bakanlıkça yapılan diğer idari düzenlemeler uyarınca gider pusulası ile tevsik edilmesi uygun görülen mal/hizmet alım-satım işlemlerinde…" — bu cümle IADE tipini (nihai tüketicilere satılan malların iadesi) kapsama alır. İhtiyari dahil olma: (a) e-Fatura'ya dâhil olmak, (b) hazırlık, (c) V.1 başvurusu
Teknik kılavuz + sürüme-Gider Pusulası Teknik Kılavuzu V1.0 — 17.11.2025 (Kasım 2025), ilk yayım
XML kök elemanıUBL-TR CreditNote. UBLVersionID=2.1, CustomizationID=TR1.2.1, ProfileID=GIDERPUSULASI (e-MM/e-Adisyon'dan FARKLI), CreditNoteTypeCode (Zorunlu 1) = SATIS veya IADE. ID örneği GIP2025000000001. İmza XADES-BES
Raporlamae-Arşiv Raporu. Kılavuz Girişi: "…gider pusulası belgesinin ve buna ait e-Arşiv Raporunun oluşturulması, mali mühür ile zaman damgalı şekilde imzalanması ve oluşturulan raporların Başkanlık sistemine aktarılması…". Süre: günlük / izleyen günün sonu — ÇIKARIMDIR; e-Arşiv Teknik Kılavuzu V1.18 rapor şemasında henüz giderPusulasi elemanı yoktur
İptalKorpusta tanımlı DEĞİL — e-Arşiv İptal/İhtar/İtiraz Kılavuzu V1.1 yalnızca e-Arşiv Fatura ve e-SMM'yi kapsar; e-Arşiv Raporu şemasında e-GP iptal elemanı da yoktur. DOĞRULANAMADI

Kimler kullanabilir — Teknik Kılavuz V1.0 Bölüm 5'in getirdiği fiilî daraltma. Şartların tamamı birlikte sağlanmalıdır:

#Şart
1Perakende sektöründe hizmet veren — faaliyet kodları içerisinde 47 ile başlayan NACE kodundan faaliyeti olan
2e-Fatura uygulamasına dâhil olan
32024 hesap dönemi sonu itibarıyla şu üç koşuldan en az ikisini sağlayan: satış/gayrisafi iş hasılatı > 110 milyon TL; bilanço aktif toplamı > 110 milyon TL; bilanço öz sermaye/öz kaynak toplamı > 11 milyon TL
4Kullanım kanalı: yalnızca Başkanlıkça yetkilendirilen ve ebelge.gib.gov.tr'de duyurulan ÖZEL ENTEGRATÖRLER aracılığıyla (GİB Portal yok)

Endeksleme: Bu tutarlar 1/1/2026'dan başlayarak, takvim yılı başından geçerli olmak üzere her yıl bir önceki yıla ilişkin yeniden değerleme oranında artırılarak uygulanır; hesaplanan tutarların %5'ini aşmayan kesirler dikkate alınmaz. Portalda eşik değerleri yıllık güncellenebilir parametre olarak tutulmalıdır.

Belgede bulunması zorunlu bilgiler (509 IV.6.3): (a) Alıcının (işi yaptıran, emtiayı satın alan, belgeyi düzenleyen) adı, soyadı/unvanı, vergi dairesi, TCKN/VKN'si ve adresi | (b) Belgenin tarihi, saat ve dakika olarak düzenlenme zamanı ve belge numarası | (c) Satıcının (işi yapan, emtiayı satan, muhatap) adı, soyadı, TCKN/VKN'si ve ikametgâh adresi | (ç) İşin mahiyeti, iş ücreti, emtianın cins ve nev'i, miktarı, bedeli, vergi ve varsa diğer kesintiler tutarı | (d) Karekod veya barkod (duyuruda belirtilecek tarihten itibaren).

21 ana eleman (V1.0, bölüm 2.2): UBLExtensions, UBLVersionID, CustomizationID, ProfileID, ID, CopyIndicator, UUID, IssueDate, IssueTime, CreditNoteTypeCode, Note, BillingReference (12), AdditionalDocumentReference (13, Zorunlu 1..n), Signature, AccountingSupplierParty (15, düzenleyen/mal temin eden), AccountingCustomerParty (16, alıcı), BuyerCustomerParty (17), Delivery (18), TaxTotal, LegalMonetaryTotal, CreditNoteLine (Zorunlu 1..n).

ElemanKritik kural
CreditNoteTypeCodeSATIS = KDV mükellefi olmayanlardan satın alınan mal/hizmet; IADE = nihai tüketicilere satılan malların iadesi
BillingReferenceIADE tipinde iade edilen ürüne ilişkin belge numarası InvoiceDocumentReference altına yazılır. ID/@schemeID = FATURANO ya da OKCSERINO; DocumentDescription = EARSIV_FATURA veya SATIS_FISI. Şema gereği seçimlik olsa da düzenleyen doğru bilgiyi yazmakla yükümlüdür
Deliveryİade kargo ile yapılıyorsa DeliveryParty altında IndustryClassificationCode name="YETKIBELGENO" (kargo yetki belge no), PartyIdentification/ID schemeID=VKN ve PartyName ZORUNLUDUR
BuyerCustomerParty (Seçimli 1)Faturadaki alıcı dışında biri iade talep ediyorsa: faturadaki alıcı AccountingCustomerParty'ye, iadeyi yapan BuyerCustomerParty'ye yazılır
TaxTotal örneğiTaxTypeCode 0015 (KDV), Percent 10, matrah 1750, vergi 175

573 SN Tebliğ ile gelen SMS KODU / IADEKODU alanları

Klasik yöntem (509 V.5.6, 535 SN ile değişik): e-GP elektronik sertifika ile imzalanır, en az bir örnek kâğıt çıktısı alınır, çıktı MUHATABI tarafından ıslak imza ile imzalanır, muhatabına talebi doğrultusunda elektronik veya kâğıt örneği iletilir, ve elektronik imzalı belge ile birlikte ıslak imzalı örneği düzenleyen tarafından KÂĞIT ORTAMDA da muhafaza ve ibraz edilir. (535 öncesi hâlinde çıktının hem düzenleyen hem muhatap tarafından imzalanması isteniyordu — dipnot 72.)

573 SN VUK GT (RG: 12/11/2024-32720) ile eklenen fıkra (dipnot 73): e-MM'dekiyle aynı mantık e-GP'ye de getirilmiştir — ıslak imza yerine, Başkanlıkça belirlenen kriterlere göre seçilen mükellefler için gider pusulasının muhataplarının bilgilerinin bilgi teknolojileri ve/veya iletişim araç ve ortamları üzerinden doğrulanması ve gerekli bilgilerin e-GP'de yer alması suretiyle düzenleme mümkündür. Başkanlık ayrıca düzenli bilgi verme yükümlülüğü getirmeye yetkilidir.

Teknik Kılavuz V1.0'daki somut karşılığı:

BilgiXPathDeğer / kural
SMS/İade koduAccountingCustomerParty/…/Contact/IDSATIS tipinde: alıcının telefonuna gönderilen SMS KODU. IADE tipinde: yüz yüze iadede telefona gönderilen SMS ya da İADE KODU, kargo ile iadede İADE KODU
EtiketAccountingCustomerParty/…/Contact/Namesabit SMS ya da IADEKODU
TelefonAccountingCustomerParty/…/Contact/TelephoneAlıcının telefonu
Operatör / platformAccountingSupplierParty/…/AgentPartyİade kodunu üreten uygulama/platform adının açık hâli ya da SMS gönderme konusunda hizmet alınan operatör bilgisi

Portal uyarısı: Aynı işlev e-MM'de Contact/OtherCommunication/ChannelCode name="SMS_PROVIDER", e-GP'de AgentParty alanında taşınır. İki belgede FARKLI XPath kullanılır — ortak bir "SMS sağlayıcı" servis katmanı yazılsa bile mapping ayrı olmalıdır.

YN ÖKC: e-GP Bilgi Fişi iki nüsha üretilip taraflarca imzalanırsa kâğıt nüshalar yerine geçer.

Başvuru: e-Arşiv Başvuru Kılavuzu V1.8 (22.05.2026) ile e-Gider Pusulası açıkça e-Arşiv uygulamaları listesine eklenmiş, "5.8 e-Gider Pusulası Senaryoları" test bölümü oluşturulmuştur. Özel entegrasyon yöntemiyle yararlanacakların ayrıca GİB'e başvuru yapmasına gerek yoktur.

e-Adisyon

Başlıkİçerik
Mevzuat dayanağı185, 200, 298 ve 299 Sıra No.lu VUK Genel Tebliğleri + 509 SN VUK GT'ye 526 SN VUK GT (RG: 09/02/2021-31390) ile eklenen IV.12 bölümü (dipnot 57)
ZorunlulukİHTİYARİ. IV.12.4 yalnızca Başkanlığın yetkisini düzenler: ölçüt yıllık veya aylık satış hasılatı tutarları, usul en az 3 ay geçiş süresi + yazılı bildirim ya da ebelge.gib.gov.tr'de duyuru. Korpusta hiçbir zorunluluk tarihi, duyuru veya erteleme kaydı YOKTUR; e-Adisyon 509 Geçiş Takvimi Tablosunda, Zorunluluk Karşılaştırma Tablosunda ve 509 SSS'de hiç geçmez
Kapsam"Masada servis yapılan ve gerçek usulde (bilanço veya işletme hesabı esasına göre) vergilendirilen hizmet işletmeleri (lokanta, kafeterya, pastane, gazino, bar, pavyon gibi)". Konaklama işletmeleri teknik kılavuzda ayrıca düzenlenmiştir. Dahil olma (IV.12.2): (a) e-Fatura VE e-Arşiv Fatura uygulamalarına dâhil olmak (iki uygulamayı birden şart koşan tek belge), (c) yalnızca Özel Entegratör ya da Doğrudan EntegrasyonGİB Portal yöntemi YOK
Teknik kılavuz + sürüme-Adisyon Belgesi Teknik Kılavuzu V1.1 — 12.05.2023 (Mayıs 2023; ilk yayım 30.07.2021). V1.1 ile 3.1.12'ye konaklama açıklaması ve "4. e-Adisyon Standardı" bölümü eklendi
XML kök elemanıUBL-TR CreditNote. UBLVersionID=2.1, CustomizationID=TR1.2.1, ProfileID=EARSIVBELGE, CreditNoteTypeCode=ADISYON (Zorunlu 1). ID: 3 hane alfanumerik + 13 hane müteselsil (ilk 4 hane yıl). İmza XADES-BES
Raporlamae-Arşiv Raporu içinde adisyon (3.3.10) ve adisyonIptal (3.3.11); günlük, en geç izleyen günün sonuna kadar. Kılavuz: "Adisyon belgesinin BAŞKANLIK'a raporlanması konusu e-Arşiv teknik kılavuzunda ayrıca açıklanacaktır."
İptalSistem üzerinden iptal/itiraz akışı YOK (8 günlük süre yalnızca e-Arşiv Fatura + e-SMM içindir). İptal yalnızca rapordaki adisyonIptal elemanı ile bildirilir: adisyonNo, UUID, iptalTarihi, toplamTutar

En kritik düzenleme kuralı. e-Adisyon müşteriden sipariş alınırken düzenlenir; hizmetin sunumu süresince müşterinin masasında kâğıt çıktı bulundurulması zorunlu değildir. Oluşturulmaya başlanan (açılan) her adisyon belgesi için, hizmetin tamamlanması ile birlikte eş zamanlı olarak, üzerinde e-Adisyon Belgesinin ETTN'si yer alacak bir e-Fatura, e-Arşiv Fatura ya da YN ÖKC perakende satış fişi düzenlenmesi zorunludur. Bağ, faturanın üzerine adisyonun ETTN'si yazılarak kurulur.

573 SN ile değişiklik: (ç) bendi "tutarı" → "vergiler hariç ve dahil toplam hizmet tutarı" olarak genişletilmiştir (dipnot 58); (d) bendi MÜLGA edilmiştir (dipnot 59) — eskiden "ilişkili olduğu e-Fatura/e-Arşiv Fatura ETTN'si veya ÖKC cihaz sicil numarası" belgede zorunlu bilgi idi.

Zorunlu bilgiler (IV.12.3, güncel): (a) Hizmet işletmesinin adı, soyadı/unvanı, vergi dairesi, TCKN/VKN'si ve adresi | (b) Düzenlenme tarihi, saat ve dakika olarak düzenlenme zamanı, evrensel tekil numarası ve e-Belge numarası | (c) Sunulan hizmetin veya emtianın adı (cinsi) ve miktarı | (ç) Hizmetin tamamlanması ile düzenlenecek belgede yer alacak vergiler hariç ve dahil toplam hizmet tutarı | (d) Mülga.

19 ana eleman: UBLExtensions, UBLVersionID, CustomizationID, ProfileID, ID, CopyIndicator, UUID, IssueDate, IssueTime, CreditNoteTypeCode, Note, AdditionalDocumentReference (Zorunlu 1..n), Signature, AccountingSupplierParty (Adisyon Belgesi Düzenleyen), AccountingCustomerParty (Alıcı), SellerSupplierParty (Hizmeti Sağlayan/Satan Taraf), TaxTotal, LegalMonetaryTotal, CreditNoteLine.

AdditionalDocumentReference — e-Adisyon'un can damarı (Zorunlu 1..n, çoklanır):

KullanımAlanlar
1. Açılma/kapanma zamanıID/@schemeID="ADISYON_SESSION" (GUID), DocumentDescription=ADISYON, ValidityPeriod içinde StartDate / StartTime / EndDate / EndTime
2. İlişkili belgeID/@schemeID = ETTN ya da OKC_SERI_NO; DocumentDescription = EFATURA, EARSIV_FATURA veya SATIS_FISI

Konaklama özel kuralı (V1.1 ile eklendi): Konaklama hizmeti veren işletmelerde, konaklama süresi sonunda düzenlenecek belge e-Fatura ya da e-Arşiv Fatura ise, o faturanın ETTN'si önceden üretilip konaklama süresi boyunca düzenlenen her e-Adisyona yazılmalı; süre sonunda fatura daha önce oluşturulan bu ETTN ile düzenlenmelidir. Portal, check-in anında ETTN rezerve edip check-out faturasında aynı ETTN'yi kullanmalıdır.

Rapor alanları — adisyon (3.3.10): adisyonNo (Z1, örn. ADS2022000000001), UUID (Z1), dosyaAdi (Z1, örn. Check_ADS2022000000001.pdf), ozetDeger (Z1, SHA-256 hex), duzenlenmeTarihi, duzenlenmeZamani, toplamTutar (vergi hariç), odenecekTutar, paraBirimi (ISO 4217), aliciBilgileri, imzaZamani (Z1). V1.18 (27.08.2025): "e-Adisyon raporlarına imzalanma zamanı bilgisi eklenmiş ve zorunlu hale getirilmiştir."

Karekod (Karekod Kılavuzu V1.2, 2.8): vkntckn, avkntckn, senaryo (EARSIVBELGE), tip (ADISYON), tarih, no, ettn, odenecek() — para birimi parantez içinde, örn. "odenecek(TRY)":"1080.00", LegalMonetaryTotal/PayableAmount'tan gelir.

Ceza: 509 IV.12.6 "kâğıt adisyon olarak düzenleyenler dahil" ifadesini içerir.

e-Bilet

Başlıkİçerik
Mevzuat dayanağı509 SN VUK GT IV.7. Kapsam: "kâğıt ortamda düzenlenmekte olan biletler (kara, deniz ve hava yolu yolcu biletleri ile sinema, tiyatro, spor müsabakası vb. etkinliklere ait biletler gibi) ile yolcu listeleri". Yeni belge türü değildir
ZorunlulukKOŞULLU ZORUNLU — yalnızca iki grup (IV.7.4): (1) Karayolu Taşıma Yönetmeliği'nde belirtilen şehirlerarası tarifeli yolcu taşımacılığı yapan D1 yetki belgeli işletmeler1/1/2021'e kadar (2021+ başlayanlar: faaliyete başladığı ayı izleyen dördüncü ayın başından) — e-Bilet ve e-Bilet Yolcu Listesi; (2) Yerli ve yabancı film gösteriminde bulunan sinema işletmeleri1/7/2020'ye kadar (sonra başlayanlar: dördüncü ayın başına kadar) + YN ÖKC kullanma zorunluluğu. Havayolu, denizyolu, tiyatro/konser/spor: ZORUNLULUK YOK
KapsamÜç alt uygulama: IV.7.3.1 kara/deniz yolu şehirlerarası veya uluslararası yolcu taşımacılığı (e-Bilet + e-Yolcu Listesi); IV.7.3.2 hava yolu yurt içi/yurt dışı yolcu taşımacılığı; IV.7.3.3 sinema, tiyatro, konser, spor müsabakası ve benzeri etkinlikler. Dahil olma (IV.7.2): (a) e-Fatura'ya dâhil olmak — Türkiye'de tam mükellef olmayan hava yolu firmaları hariç
Teknik kılavuz + sürüme-Bilet Raporu Teknik Kılavuzu (Karayolu/Denizyolu) V2.3 — 27.02.2023 (ilk yayım 26.06.2012). Havayolu ve etkinlik biletleri için rapor kılavuzu korpusta YOKTUR
XML kök elemanıUBL DEĞİL — kendi XSD'si. Rapor kökü üç ana blok: baslik, bilet, biletIptal. Bilet belgesinin kendisi PDF ise PADES ile imzalanır
Raporlamae-Arşiv Raporu KULLANILMAZ — kendi raporu vardır. AYLIK dönemler itibarıyla, ait olduğu ayı takip eden ayın 15 inci günü saat 24:00'e kadar elektronik sertifika ile zaman damgalı imzalanıp Başkanlık sistemine yüklenir. Gönderim: dosya yükleme veya web servis (e-Bilet Webservice Kılavuzu). ZIP paketi en fazla 5 MB; imzalama asgari XAdES-BES "enveloped", zaman damgalı (XAdES-T/A da olabilir)
İptalRapor içindeki biletIptal bloğu (0..n): biletNo, iptalZamani (YYYY-AA-GGTSS:DD:SS), tutar (KDV hariç), kdv. Sistem üzerinden iptal/itiraz akışı yoktur

Portal notu: e-Bilet, e-Arşiv'in günlük raporlama takviminden tamamen farklı bir takvim kullanır. İki ayrı zamanlayıcı gerekir.

Rapor şeması — tam eleman listesi:

BlokElemanİçerik
baslikgonderen (Z1)Raporu gönderenin vkn veya tckn alt elemanı
baslikbaslangicTarihi (Z1)Raporlama dönemi başlangıcı (YYYY-AA-GG)
baslikbitisTarihi (Z1)Raporlama dönemi bitişi
baslikversiyon (Z1)Sabit "1.0" — 2.2 özet tablosunda eleman adı version, 2.3.4 detayında versiyon yazılmıştır (kılavuz içi tutarsızlık)
baslikuuid (Z1)Raporun ETTN'si (GUID)
baslikSignatureMali Mühür / e-İmza
biletbiletNoBilet numarası
biletozetDegerBiletin hash değeri
biletduzenlemeTarihiBİLETİN düzenleme tarihi (YYYY-AA-GG) — 2.2 özet tablosundaki "Raporun Düzenlenme Tarihi" ifadesi kılavuzun hatasıdır; rapor dönemi zaten baslangicTarihi/bitisTarihi ile verilir
biletseferZamaniSefer zamanı
biletodemeSekli (Z1)Sınırlı küme (aşağıda)
bilettutar (Z1)KDV HARİÇ bilet bedeli
biletkdv (Z1)KDV tutarı
biletgiderGosteren (0..1)Gider/indirim gösterecek mükellefin vkn/tckn'si
bilethizmetinNevi (0..1)tur + aciklama
biletbiletUrl (Z1)e-Biletin .pdf dosyasına ulaşılacak URL, max 255 karakter — V2.3 ile eklendi ve zorunlu kılındı

odemeSekli tam değer kümesi (11): BANKAKARTI, BEDELSIZ, KREDIKARTI, PUAN, MAHSUP, MAHSUPPUAN, NAKIT, PASS, PROMOSYON, ULASIMKARTI, DIGER

hizmetinNevi/tur tam değer kümesi: SEYAHAT, BAGAJ, CEZA, IPTALDEGISIKLIKTAZMINATI, CEZA, YEMEK, KOLTUKSECIMI, DIGER — CEZA'nın iki kez yazılması kılavuzun kendi hatasıdır. "Tür olarak DIGER alanı yazılmışsa açıklama alanı boş olamaz."

Belgede bulunması zorunlu bilgiler — dört tip:

TipZorunlu bilgiler
Kara/deniz yolu e-Bileti (IV.7.3.1.1)a) Düzenleyenin adı-soyadı/unvanı, adresi, vergi dairesi, VKN/TCKN'si; b) Yolcunun adı-soyadı, VKN/TCKN'si; c) e-Bilet numarası; ç) Düzenlenme tarihi; d) Seyahat tarihi; e) Ödeme tarihi; f) Ödeme türü (nakit/kredi kartı/banka kartı/havale gibi); g) Tutar; ğ) KDV; h) Varsa bilet bedelini gider gösterecek/indirim konusu yapacak mükellefin adı-soyadı/unvanı, VKN/TCKN'si; ı) Karekod veya barkod
Elektronik Yolcu Listesi (IV.7.3.1.2)a) Düzenleyen işletmenin adı-soyadı/unvanı, adresi, vergi dairesi, VKN/TCKN'si; b) Taşıtın plakası; c) Sefer tarihi; ç) Hareket saati; d) Sefer numarası; e) e-Bilet numaraları; f) Yolcunun adı-soyadı, VKN/TCKN'si; g) Yolcu sayısı; ğ) KDV dâhil toplam bilet bedeli. Uluslararası seyahat edenlerin adı soyadı, TCKN veya PASAPORT NUMARASI yazılması zorunludur. Varsa taşıtı işleten mükellefin bilgileri + komisyon tutarı ve KDV tutarı. Kâğıt nüshalarının sefer sonuna kadar TAŞITTA BULUNDURULMASI gerekir (509 V.5.7)
Hava yolu e-Bileti (IV.7.3.2.1)a) Hava yolu firmasının unvanı; b) Yolcunun adı-soyadı, TCKN (veya Pasaport No); c) Belge numarası; ç) Düzenlenme tarihi; d) Yapılan hizmetin nevi ve tutarı; e) Ödeme türü (nakit/kredi kartı/banka kartı/havale/promosyon ve benzeri); f) Karekod veya barkod
Etkinlik e-Bileti (IV.7.3.3.1)a) Bileti düzenleyenin adı-soyadı/unvanı, vergi dairesi, VKN/TCKN'si; b) Belge numarası ve düzenlenme tarihi; c) Etkinlik tarihi ve saati; ç) Etkinliğin adı; d) Etkinliğin yeri (il, ilçe ve belediye olarak); e) Koltuk no; f) Yapılan hizmetin nevi ve tutarı; g) Ödeme şekli (nakit, kredi kartı, eft, havale, promosyon, bedelsiz ve benzeri); ğ) Karekod veya barkod

Havayolu özel rejimi:

  • KDV (IV.7.3.2.2.4): Hava yolu firmaları, bilette yer alan tutardan matraha dâhil olmayan unsurları ayrıştırdıktan sonra iç yüzde yoluyla KDV hesaplayıp beyan eder. Hizmetten yararlanan mükellefler KDVK 29 ve müteakip maddelerine bağlı kalmak şartıyla indirir. KDV'den istisna yurt dışı taşımalara ait e-Biletlerde KDV hesaplanmaz.
  • Acente satışları (IV.7.3.2.2.2): Acente, e-Bilet üzerinde yolcu bilgilerine ilave olarak kendi mükellefiyet bilgilerine ya da IATA nezdinde kendisi için oluşturulmuş bilgilere yer verir ve yolcuya e-Bilet muhteviyatını da içeren bir FATURA düzenler. Faturayı yolcu/hesabına yolculuk yapılan mükellef; acente bilgilerini içeren e-Bileti ise acente gider/indirim konusu yapar.
  • Gider kaydı (IV.7.3.2.2.3): e-Bilet çıktısı elektronik ortamdaki aslına uygun olmak koşuluyla tevsik edici belgedir; ayrıca imzalanmasına veya kaşe/damga tatbik edilmesine gerek yoktur. Ancak V.5.7'ye göre firma e-Bileti kâğıt ortamda teslim izni almışsa, tevsik için firmaca kaşe/damga, acentelerce kaşe/damga + imza gerekir.
  • Kapsam: Dar mükellef hava yolu firmalarının yalnızca Türkiye'de elde edilmiş sayılan hasılatlarını içeren biletleri kapsamdadır. IATA üyesi olmayan firmalar da isterlerse yararlanabilir. Şartları taşıyan e-Biletler tutarına bakılmaksızın fatura yerine geçen belge sayılır. Bagaj ücreti, cezalar, ücret iadesi vb. için de e-Bilet düzenlenir.

Sinema / eğlence vergisi (IV.7.3.3.2-3, IV.7.4.2): Yerli/yabancı film gösterimlerinde eğlence vergisi 1/7/2020'den itibaren aylık e-Bilet Raporu Özeti ve YN ÖKC'den alınacak e-Bilet Bilgi Fişlerine ilişkin Aylık Satış Raporu dikkate alınarak hesaplanır ve en geç ertesi ayın 20 nci günü akşamına kadar mahallin malmüdürlüğü/muhasebe müdürlüğüne ödenir. e-Bilet ve e-Bilet Bilgi Fişlerinde 2464 sayılı Kanun'un 21 inci maddesindeki belediyelerce özel damga konulması şartı aranmaz. Sinema işletmeleri her e-Bileti "e-Bilet Bilgi Fişi (Sinema)" olarak YN ÖKC'de kayıt altına almak zorundadır; YN ÖKC'nin her gişede olması şart değildir (mekân bazında, belediye bazında veya merkez bilgi işlem lokasyonunda konumlandırılabilir). Film gösterimi dışındaki etkinliklerde eski usul sürer: e-Bilet numaraları ve eğlence vergisini gösteren icmale belediyece özel damga konulur, vergi belediye veznesine ödenir.

6222 sayılı Kanun (spor müsabakaları): Federasyon/yetki devredilen kurumlar bilet düzenlerse başvuru koşuluyla e-Bilet olarak düzenlenebilir. Bilet dışında tevsik edici başka bir belge (banka dekontu vb.) IV.7.3.3.1'deki bilgilerin tamamını içerirse e-Bilet olarak kabul edilir; bu durumda ilgili kurumlarca Başkanlığa yalnızca V.8 kapsamında raporlama yapılır.

e-Döviz ve Kıymetli Maden Alım-Satım Belgesi

Başlıkİçerik
Mevzuat dayanağı509 SN VUK GT IV.10. Kâğıt "Döviz Alım Belgesi" / "Döviz Satım Belgesi" ile aynı hukuki nitelikte
ZorunlulukİHTİYARİ. IV.10.2: "zorunlu bir uygulama olmayıp…". IV.10.4: Başkanlık en az 3 aylık zaman süresi belirleyerek yetkili müesseselere zorunluluk getirmeye ve bunu ebelge.gib.gov.tr duyurularıyla belirlemeye yetkilidir — korpusta böyle bir duyuru yoktur
Kapsam526 SN VUK GT (RG: 09/02/2021-31390) ile genişletildi (dipnot 37): eskiden yalnızca "yetkili müesseseler" → şimdi "döviz alım ve satım faaliyetinde bulunan yetkili müesseseler dâhil olmak üzere ilgili mevzuat gereğince döviz alım-satım belgesi düzenleyebilen tüm mükellefler". 535 SN VUK GT (RG: 22/01/2022-31727) ile (dipnot 38-39) kıymetli maden alım/satım yetkisi de bulunanlar bakımından, 385 SN VUK GT kapsamında tek belge olarak düzenlenebilen "Döviz ve Kıymetli Maden Alım Belgesi" ile "Döviz ve Kıymetli Maden Satım Belgesi" de kapsama alındı. Dahil olma (IV.10.2): (a) e-Fatura'ya dâhil olmak, (b) hazırlık, (c) başvuru
Teknik kılavuz + sürüme-Döviz Alım-Satım Belgesi Teknik Kılavuzu V1.0 — 29.09.2021 (Eylül 2021), ilk ve tek yayım
XML kök elemanıUBL-TR CreditNote. UBLVersionID=2.1, CustomizationID=TR1.2.1, ProfileID=EDOVIZBELGE, CreditNoteTypeCode = DOVIZALIMBELGESI ya da DOVIZSATIMBELGESI
RaporlamaBelge, e-Fatura zarf altyapısıyla doğrudan GİB'e gönderilir: zarfa "3900892152" VKN'li "Gelir İdaresi Başkanlığı Sanal Alıcı" yazılır. 509 V.5.10 ayrıca bir rapor öngörür ("…e-Döviz Alım-Satım Belgesi ve Raporunun oluşturulması ve gönderilmesinde uyulması gereken format, standart ve raporlama süresi … teknik kılavuzlarda belirtilir"), ancak korpustaki hiçbir kılavuzda e-Döviz rapor yapısı/süresi tanımlı değildir ve e-Arşiv Raporu şemasında e-Döviz elemanı yoktur → DOĞRULANAMADI
İptalKorpusta tanımlı DEĞİL — ne iptal/itiraz kılavuzu kapsamında, ne de e-Arşiv Raporu şemasında bir iptal elemanı vardır. DOĞRULANAMADI

21 ana eleman: UBLExtensions, UBLVersionID, CustomizationID, ProfileID, ID, CopyIndicator, UUID, IssueDate, IssueTime, CreditNoteTypeCode, Note, AdditionalDocumentReference, Signature, AccountingSupplierParty (belgeyi düzenleyen banka ya da yetkili müessese), AccountingCustomerParty (dövizi alan/satan taraf), PaymentMeans (ödeme şekli), PricingExchangeRate (döviz kuru — USD karşılığı), PaymentExchangeRate (döviz kuru — Türk Lirası karşılığı), TaxTotal, LegalMonetaryTotal, CreditNoteLine.

Karekod (Karekod Kılavuzu V1.2, 2.7):

BilgiUBL alanıKarekod alanı
Gönderen / Alıcı VKN-TCKNAccountingSupplier/CustomerParty/PartyIdentification/IDvkntckn / avkntckn
SenaryoProfileIDsenaryoEDOVIZBELGE / EKIYMETLIMADENBELGE
TipiCreditNoteTypeCodetipALIM / SATIM
Belge tarihi / no / ETTNIssueDate / ID / UUIDtarih / no / ettn
Döviz/Kıymetli maden miktarıLegalMonetaryTotal/LineExtensionAmountmiktari()
Uygulanan kur / birim fiyatPaymentExchangeRate/CalculationRateuygulanankur (EDOVIZBELGE) / birimfiyat (EKIYMETLIMADENBELGE)
Döviz karşılığıLegalMonetaryTotal/LineExtensionAmountdovizkarsiligiyalnızca EDOVIZBELGE
TL karşılığıLegalMonetaryTotal/TaxInclusiveAmounttlkarsiligiyalnızca EDOVIZBELGE
Toplam tutarLegalMonetaryTotal/PayableAmountodenecek()

Örnekler: {"senaryo":"EDOVIZBELGE","tip":"ALIM","miktari(EUR)":"100.00","uygulanankur":"18.6543","dovizkarsiligi":"98.00","tlkarsiligi":"1865.43","odenecek(TRY)":"1865.43"} ve {"senaryo":" EKIYMETLIMADENBELGE","tip":"ALIM","miktari(22C_XAU)":"5","birimfiyat":" 1754.38596","odenecek(TRY)":"8775.00"} (JSON'daki baştaki boşluklar kılavuzda aynen böyledir).

ÇELİŞKİ: Teknik Kılavuz V1.0 CreditNoteTypeCode için DOVIZALIMBELGESI/DOVIZSATIMBELGESI derken, Karekod Kılavuzu V1.2 aynı elemandan türeyen tip için ALIM/SATIM örneği verir. Ayrıca "EKIYMETLIMADEN" ifadesi Teknik Kılavuz V1.0'da hiç geçmez (535 SN sonrası yalnızca Karekod Kılavuzunda görülür); güncel e-Döviz/Kıymetli Maden şeması korpusta yoktur. Şematron/XSD esastır — entegrasyonda güncel şema doğrulanmalıdır.

Teslim (509 V.5.10): Belge Başkanlıkça belirlenen formatta, elektronik sertifika ile imzalı düzenlenir; muhataba kâğıt teslimde yetkili müessesece kaşe/damga tatbik edilerek ve ıslak imza ile (veya noter onaylı imzanın elektronik ortamda uygulanması suretiyle hazır imzalı olarak) teslim edilmesi esastır. Yetkili müessese nüshası elektronik sertifika ile imzalı olarak elektronik ortamda muhafaza edilir.

Test senaryoları (e-Arşiv Başvuru V1.8, 5.5): 2 farklı döviz cinsi + 1 kıymetli maden için 3 adet ALIM ve 3 adet SATIM belge örneği gönderilmelidir.

e-Sigorta Poliçesi

Başlıkİçerik
Mevzuat dayanağı509 SN VUK GT IV.9. Kâğıt "Sigorta Poliçesi" ile aynı hukuki nitelikte
ZorunlulukİHTİYARİ. IV.9.2 "zorunlu bir uygulama olmayıp…"; IV.9.4 "isteğe bağlı bir uygulama olup, dileyen mükellefler gerekli başvurularını yaparak … yararlanabilirler." Başkanlık en az 3 aylık süre belirleyerek zorunluluk getirebilir — korpusta duyuru yok
KapsamSigorta, emeklilik ve reasürans şirketleri ile sigorta ve emeklilik aracıları (acenteler de düzenleyebilir). Dahil olma: (a) e-Fatura'ya dâhil olmak, (b) hazırlık, (c) başvuru
Teknik kılavuz + sürüme-Sigorta Poliçesi Teknik Kılavuzu V1.1 — 22.09.2023 (Eylül 2023; ilk yayım 16.05.2022). V1.1 ile "2.1 XSD Gösterimi" ve "3.1 Elemanlar-Detay" güncellendi
XML kök elemanıUBL DEĞİL — kendi özel XSD'si. Belge numarası eSigortaPoliceBelgeNo: 3 hane TSB kuruluş kodu + 4 hane yıl + 9 hane tekil = 16 hane (örn. PLC2022000000001); UUID 36 karakter
RaporlamaEN KRİTİK FARK: e-Arşiv Raporu hazırlanır, XADES-A ile mali mühür + zaman damgalı imzalanır ve Başkanlıkça talep edilene kadar MUHAFAZA EDİLİR — ancak Başkanlık sistemine YÜKLENMEZ. Başkanlık ebelge.gib.gov.tr'den duyurarak raporların uzaktan erişime açılmasını ya da e-Arşiv Uygulaması üzerinden gönderilmesini talep edebilir
İptalBelge içindeki sigortaIslemTipi = 7 (İptal) kodu ile yönetilir. Sistem üzerinden ayrı bir iptal/itiraz akışı yoktur

Ana alanlar (3.1.x): eSigortaPoliceBelgeNo (Z1), UUID (Z1), duzenlenmeTarihi, duzenlenmeZamani, policeBaslamaTarihi, policeBitisTarihi, grupPoliceNo, policeBilgileri (policeNo / yenilemeNo / zeyilNo), policeParaBirimi, kurulusBilgileri (kurulusKodu, kurulusVKN, kurulusUnvan, kurulusAdres, kurulus_ilce_adi, kurulus_ilce_kodu, kurulus_il_adi, kurulus_il_kodu, kurulus_ulke_kodu), sigortaIslemTipi, sigortaBedeliLimitTipi, sigortaBedeliDoviz, sigortaBedeli, acenteBilgileri (acenteKodu, acenteAdSoyadUnvan, acenteKimlikTipi, acenteKimlikNo), sigortaEttirenBilgileri (kimlikTipi, kimlikNo, adSoyadUnvan, uyruk), sigortaliBilgileri (aynı yapı), riskBilgileri (riskKodu, aciklama), bransListesi (hazineBransKodu, netPrimDoviz, netPrim, bsmvTutariDoviz, bsmvTutari, ghTutariDoviz, ghTutari, thgfTutari, thgfTutariDoviz, ysvTutariDoviz, ysvTutari).

sigortaIslemTipi tam kod listesi (3.1.11):

KodAnlamKodAnlam
1Yeni Poliçe6Vade Gelimi
2Tecditname (Yenileme)7İptal
3Zeyilname (Değişiklik)8Vefat
4Yürürlüğü Alma9Diğer
5İştira

Standart: XSD'deki format; izinle PDF kullanılıyorsa PADES + PDF ekine (attach) poliçe XML'i eklenir; ek XML şema ve şematron kurallarına uygun olmalı, ekin ayrıca imzalanması zorunlu değildir.

e-Sigorta Komisyon Gider Belgesi

Başlıkİçerik
Mevzuat dayanağı509 SN VUK GT IV.8. Kâğıt "Sigorta Komisyon Gider Belgesi" ile aynı hukuki nitelikte
ZorunlulukİHTİYARİ. IV.8.4: "isteğe bağlı bir uygulama olup, dileyen mükellefler başvuru yaparak … yararlanabilirler." Başkanlık en az 3 aylık zaman süresi belirleyerek zorunluluk getirmeye yetkilidir — korpusta duyuru yok
KapsamSigorta, emeklilik ve reasürans şirketlerinin sigorta ve emeklilik aracılarına ödedikleri komisyonlar için, aracılar adına düzenledikleri ve aracılar tarafından düzenlenen FATURA YERİNE GEÇEN belge. Belgeyi düzenleyen sigorta şirketi, muhatabı acentedir. Dahil olma: (a) e-Fatura'ya dahil olmak, (b) hazırlık, (c) başvuru
Teknik kılavuz + sürümTeknik kılavuzu korpusta YOKTUR. Elde olan tek makine-okunur kaynak: Karekod Standardı Kılavuzu V1.2, bölüm 2.6
XML kök elemanıDOĞRULANAMADI — kök eleman, ProfileID ve tam eleman listesi korpustan çıkarılamamaktadır. Karekod alan eşleşmeleri UBL CreditNote alanlarına (AccountingSupplierParty, LegalMonetaryTotal/AllowanceTotalAmount vb.) işaret eder ve CreditNoteTypeCode = SIGORTAKOMISYONGIDERBELGESI'dir
RaporlamaDOĞRULANAMADI — e-Arşiv Teknik Kılavuzu V1.18'in eArsivRaporu kök şemasındaki 14 elemanın hiçbiri e-Sigorta Komisyon Gider Belgesine ait değildir. Belge e-Arşiv Başvuru Kılavuzu V1.8'in uygulama listesinde yer alır, ancak rapor yapısı korpusta tanımlı değildir
İptalKorpusta tanımlı DEĞİLDOĞRULANAMADI

Belgede bulunması gerekenler (IV.8.3): Kâğıt Sigorta Komisyon Gider Belgesinde bulunması zorunlu bilgiler + karekod/barkod. Başkanlık ilave bilgi isterse en az 3 ay süre verip duyurur.

Teslim (V.5.8): Elektronik sertifika ile imzalı düzenlenir; muhataba kâğıt teslimde sigorta şirketince kaşe/damga + ıslak imza (veya noter onaylı imzanın elektronik ortamda uygulanmasıyla hazır imzalı) teslim esastır. Sigorta şirketi nüshası elektronik ortamda saklanır.

Karekod (Karekod Kılavuzu V1.2, 2.6 — tam liste):

BilgiUBL alanıKarekod alanı
Gönderen VKNAccountingSupplierParty/Party/PartyIdentification/IDvkntckn
Gönderen unvanPartyNameunvan (VKN yazılırsa unvan da yazılmalı)
Alıcı VKNAccountingCustomerParty/Party/PartyIdentification/IDavkntckn
SenaryoProfileIDsenaryo
TipiCreditNoteTypeCodetipSIGORTAKOMISYONGIDERBELGESI
Belge tarihi / no / ETTNIssueDate / ID / UUIDtarih / no / ettn
Belge para birimiDocumentCurrencyCodeparabirimi
İstihsal komisyon toplam tutarıLegalMonetaryTotal/AllowanceTotalAmountistihsalkomisyon
İptal komisyonu toplam tutarıLegalMonetaryTotal/ChargeTotalAmountiptalkomisyon

Örnek JSON: {"senaryo":"EARSIVBELGE","tip":"SIGORTAKOMISYONGIDERBELGESI","parabirimi":"TRY","istihsalkomisyon":"50","iptalkomisyon":"40"}. Tutarsızlık: tablo metninde senaryo açıklaması "EARSIVFATURA" örneği verirken örnek JSON EARSIVBELGE kullanır. V1.2 ile bu bölümden "Toplam Komisyon Tutarı" alanı ÇIKARILMIŞTIR.

Başvuru: e-Arşiv Başvuru Kılavuzu V1.8, bölüm 5.7 — Teknik Kılavuzda belirtilen şekilde oluşturulmuş bir adet belge örneği yeterlidir.

e-Dekont

Başlıkİçerik
Mevzuat dayanağı243 SN VUK GT (RG 7/9/1995-22397), 246 SN VUK GT (RG 8/1/1996-22577) uyarınca bankalar + 435 SN VUK GT'nin (2) numaralı bölümünde sayılan kuruluşlar + 509 SN VUK GT IV.11
ZorunlulukİHTİYARİ. IV.11.4: "e-Dekont uygulaması zorunlu bir uygulama olmayıp, bankalar istemeleri hâlinde 1/1/2020 tarihinden, 435 SN GT'nin (2) numaralı bölümünde sayılan kuruluşlar ise istemeleri hâlinde 1/1/2025 tarihinden itibaren uygulamaya dahil olabileceklerdir." Başkanlık en az 3 aylık süre belirleyerek zorunluluk getirebilir — korpusta duyuru yok. Zorunluluk Karşılaştırma Tablosunda "YÜRÜRLÜKTE DEĞİLDİR / ZORUNLULUK ÖNGÖRÜLMEMİŞTİR"
Kapsam573 SN VUK GT (RG: 12/11/2024-32720) ile genişletildi (dipnot 40-56 boyunca "bankalar" ibareleri değiştirildi): uygulama artık yalnızca bankalara değil, 435 SN GT'nin (2) numaralı bölümündeki kuruluşlara da açıktır. Kullanım yöntemi yalnızca İKİ (Portal YOK): kendi bilgi işlem sistemlerinin Başkanlık sistemlerine entegrasyonu, ya da Başkanlıktan izin almış özel entegratörler. Entegrasyon için "e-Dekont Başvuru Kılavuzu"na uygun başvuru; ÖE yönteminde ayrıca GİB'e başvuru gerekmez
Teknik kılavuz + sürüme-Dekont Teknik Kılavuzu ve e-Dekont Başvuru Kılavuzu korpusta YOKTUR
XML kök elemanıDOĞRULANAMADI — şema, ProfileID değeri ve eleman listesi korpustan çıkarılamıyor
Raporlamae-Arşiv Raporu içinde bankReceipt ve bankReceiptIptal elemanları (e-Arşiv Raporu kök tablosunda mevcut). Alt alanları DOĞRULANAMADI — V1.18'de detay bölümü bulunamamıştır. Süre: e-Arşiv Raporu rejimi (günlük, izleyen günün sonu)
İptalRapordaki bankReceiptIptal elemanı ile bildirilir; e-Arşiv İptal/İhtar/İtiraz Kılavuzu V1.1 kapsamında değildir

Kapsadığı belgeler (V.5.11): İlgili mevzuatta engel yoksa veya TCMB/BDDK vb. izni alınmışsa; döviz alım belgesi, döviz satım belgesi, vergi tahsil alındısı ile bankalarca dekont işlevi gören diğer her türlü belge, ayrıca 435 SN GT'nin (2) numaralı bölümündeki kuruluşların BSMV'ye tâbi bütün hizmet veya satışlarında fatura yerine geçmek üzere düzenlenen dekont e-Dekont olarak düzenlenebilir.

Biçim kuralı: "Oluşturulan e-Dekontta, önyüzün üst orta kısmına gelecek şekilde 'e-Dekont' ibaresi bulunur."

Teslim: Islak imzalı kâğıt çıktı veya elektronik iletim (e-posta, SMS, ftp, web uygulaması ve benzeri dâhil). Çıktıya kurum görevlisince kaşe/ıslak imza; alternatif olarak yetkilinin noter tasdikli hazır imzası (preprinted imza vb.).

Dekont tipleri (e-Arşiv Başvuru V1.8, 5.4): DEKONT, VERGITAHSILALINDISI, GUMRUKVERGITAHSILALINDISI (son ikisi yalnızca kamu bankalarından talep edilir) + NORMAL ve IPTAL tipleri.

Entegrasyon başvuru süreleri (573 SN ile değişti): eksiklik tespit edilenlere giderme için en çok bir yıl; süresinde gidermeyenin başvurusu reddedilir; reddedilenlerin reddi izleyen 6 ay (573 öncesi: 3 ay) içindeki başvuruları kabul edilmez.

Teknik kılavuz sürümleri (31.08.2026 itibarıyla)

Belge / kılavuzSürümTarihNot
e-SMMMüstakil UBL-TR kılavuzu korpusta yok; standart e-Arşiv Teknik Kılavuzu Bölüm 7, broşür E-SMM V18.3
e-Müstahsil Makbuzu (UBL-TR)1.122.05.2026İlk yayım 04.01.2018; SMS doğrulama eklendi
e-Gider Pusulası1.017.11.2025İlk yayım; NACE 47 + eşik şartı
e-Adisyon Belgesi1.112.05.2023İlk yayım 30.07.2021
e-Bilet Raporu (Karayolu/Denizyolu)2.327.02.2023İlk yayım 26.06.2012; biletUrl zorunlu oldu
e-Döviz Alım-Satım Belgesi1.029.09.2021İlk ve tek yayım
e-Sigorta Poliçesi1.122.09.2023İlk yayım 16.05.2022
e-Arşiv Teknik Kılavuzu (çatı)1.1827.08.2025Kapak Ağustos 2025
Elektronik Arşiv Başvuru Kılavuzu1.822.05.2026e-Gider Pusulası eklendi; TURKAK onaylı ISO zorunlu
e-Arşiv Uygulamaları İptal, İhtar/İtiraz Bildirim Kılavuzu1.103.01.2025Yalnızca e-Arşiv Fatura + e-SMM
Karekod Standardı Kılavuzu1.206.11.2023İlk yayım 17.02.2023
UBL-TR Kod Listeleri1.4327.07.2026Vergi/tevkifat kodları

e-Arşiv Başvuru Kılavuzu V1.8 (22.05.2026) ile gelen iki yeni zorunluluk (özel entegratörleri doğrudan ilgilendirir): (1) entegrasyon yöntemiyle uygulamayı kullanan ve başvuru yapacak mükellefler için TURKAK onaylı ISO belgeleri zorunluluğu; (2) özel entegrasyon yetkisi alanlar ve özel entegrasyon başvurusu yapacaklar için TURKAK onaylı ISO belgeleri zorunluluğu. (Tarihsel not: TÜRKAK'ta akredite kurumlardan ISO belgesi alma zorunluluğu ilk kez V1.5'te — 04.03.2021 — getirilmiş, V1.8 hükmü yeniden düzenlemiştir.)

Ortak hükümler — ceza, iptal/itiraz bildirimi, mali mühür

Ceza (509 V.6, VUK 353):

  • 353/1-1: "Elektronik belge olarak düzenlenmesi gerekenler de dâhil olmak üzere … fatura, gider pusulası, müstahsil makbuzu ile serbest meslek makbuzlarının verilmemesi, alınmaması, … elektronik belge olarak düzenlenmesi gerekirken … kâğıt olarak düzenlenmesi … hâlinde; bu belgeleri düzenlemek ve almak zorunda olanların her birine, her bir belge için 240 Türk lirasından aşağı olmamak üzere … meblağın veya meblağ farkının %10'u nispetinde özel usulsüzlük cezası kesilir." Bir takvim yılında her bir belge nevi için toplam ceza 120.000 TL'yi geçemez.
  • 353/1-2: perakende satış fişi, ÖKC fişi, giriş ve yolcu taşıma bileti, sevk irsaliyesi, taşıma irsaliyesi, yolcu listesi, günlük müşteri listesi ile Bakanlıkça düzenleme zorunluluğu getirilen belgeler için ayrı rejim.
  • Yani e-GP, e-MM, e-SMM birinci bent; e-Bilet ve e-Yolcu Listesi ikinci bent kapsamındadır. e-Adisyon için 509 IV.12.6 "kâğıt adisyon olarak düzenleyenler dahil" der.

İptal/itiraz bildirim rejimi (509 V.10): Tebliğ kapsamında düzenlenen e-Belgelere ilişkin, TTK 18/3 uyarınca noter aracılığıyla, taahhütlü mektupla, telgrafla veya güvenli elektronik imza kullanılarak KEP sistemi ile yapılan ihbar/ihtarlar ile e-Belge iptal işlemlerinin 1/5/2021'den itibaren, ebelge.gib.gov.tr'de yayımlanacak kılavuzda belirtilen usul, esas ve süreler dahilinde bildirilmesi düzenlenmiştir.

Mali Mühür (509 V.9): Başkanlık adına TÜBİTAK BİLGEM KAMU SM tarafından hazırlanan elektronik sertifika altyapısıdır (573 SN öncesi: TÜBİTAK-UEKAE). Unvan değişikliğinde 15 gün içinde yeni sertifika başvurusu zorunludur. Özel entegratör kullananların belgeleri, teknik kılavuzlarda belirlenen usul ve esaslarla özel entegratörün mali mühür sertifikası ile onaylanabilir. Başkanlık, BTK tarafından yetkilendirilen ESHS'leri de mali mühür üretimi/satışı konusunda yetkilendirebilir.

Tarihsel arka plan — 487 SN VUK GT rejiminden 509'a

Uygulama487 SN VUK GT (eski)509 taslakNihai 509
e-SMM"İSTEĞE BAĞLIDIR. Herhangi bir mükellef grubu için zorunluluk öngörülmemiştir."Daraltılmış meslek listesi (hukuk, muhasebe, denetim, tıp, mimarlık, mühendislik vb.): 31/3/2019 itibarıyla faaliyette olanlar 1/7/2019'a; 1/4/2019 sonrası başlayanlar işe başladıkları ayı izleyen 3 üncü ayın sonuna kadarKapsam "vergiden muaf olmayan TÜM serbest meslek erbabı"na genişletildi, tarih 1/6/2020'ye ötelendi
e-MM"İSTEĞE BAĞLIDIR. Herhangi bir mükellef grubu için zorunluluk öngörülmemiştir.""Taslak tebliğlerle e-Müstahsil Makbuzu uygulamasına ilişkin herhangi bir zorunluluk öngörülmemektedir."e-Fatura mükellefi + müstahsil makbuzu düzenleme yükümlüsü ve 5957 SK komisyoncu/tüccarları için zorunlu hâle getirildi
e-Dekont"YÜRÜRLÜKTE DEĞİLDİR.""1.1.2019'dan itibaren … e-Dekont olarak düzenlenmesine imkân sağlanmaktadır. Zorunluluk öngörülmemiştir."İhtiyari kaldı

Bu tablo tarihsel bir karşılaştırmadır; yürürlükteki hüküm 509 SN VUK GT'nin dipnotlu güncel hâlidir.

Doğrulanamayanlar

Aşağıdaki hususlar korpustan kesin olarak doğrulanamamıştır. Portal geliştirmesinde bunlar varsayım olarak kodlanmamalı, birincil kaynaktan (GİB güncel kılavuz/duyuru ve şematron/XSD) teyit edilmelidir.

#KonuDurum
1e-SMM'nin XML kök elemanı (Invoice / CreditNote / özel şema), ProfileID ve CustomizationID sabitleri, tam eleman listesiMüstakil UBL-TR e-SMM teknik kılavuzu korpusta yok. Yalnızca PDF+PADES kullanımı ve PDF ekine attach XML zorunluluğu doğrulanabildi
2"GelirVergisiStopaji" adında bir XML elemanıKorpusun hiçbir dosyasında geçmiyor. GV stopajı iki şekilde temsil edilir: UBL TaxTypeCode=0003 ve karekod alanı gvstopaj
3e-Adisyon zorunluluk tarihi / ertelemeKorpusta hiçbir tarih, duyuru veya erteleme kaydı yok. Geçiş Takvimi Tablosunda, Zorunluluk Karşılaştırma Tablosunda ve 509 SSS'de e-Adisyon hiç geçmiyor. "Ertelendi mi?" sorusu yanıtlanamaz — ertelenecek bir tarih dahi yoktur
4e-Gider Pusulası'nın e-Arşiv Raporu şemasındaki karşılığıV1.18'in 14 rapor elemanı arasında giderPusulasi yok (e-GP kılavuzu, e-Arşiv Teknik Kılavuzundan sonra yayımlanmış). Günlük/izleyen gün süresi bir ÇIKARIMDIR, açık hüküm değildir
5VUK 234'ün gider pusulası düzenleme süresi (yaygın bilinen 7 gün)Korpusta hiçbir yerde geçmiyor; 509 yalnızca "Kanunun 234 üncü maddesine göre" der
6e-Sigorta Komisyon Gider Belgesi teknik kılavuzuKorpusta yok → XML kök elemanı, ProfileID/CreditNoteTypeCode sabitleri, tam eleman listesi ve raporlama süresi doğrulanamıyor. Elde olan: Karekod V1.2, 2.6 alan eşleşmeleri ve tip değeri SIGORTAKOMISYONGIDERBELGESI
7e-Dekont teknik kılavuzu ve başvuru kılavuzuKorpusta yok → şema, ProfileID, dekont tiplerinin tam kod listesi ve bankReceipt alt alanları çıkarılamıyor
8Havayolu ve etkinlik (sinema/tiyatro/konser/spor) e-Bileti rapor kılavuzlarıKorpusta yalnızca Karayolu/Denizyolu V2.3 var. Havayolu ve etkinlik biletlerinin rapor formatı/süresi/elemanları ile "e-Bilet Raporu Özeti" ve "YN ÖKC Aylık Satış Raporu" formatları doğrulanamıyor
9e-Döviz raporlaması509 V.5.10 bir rapor öngörür, ancak Teknik Kılavuz V1.0 (29.09.2021) rapor bölümü içermez ve e-Arşiv Raporu şemasında e-Döviz elemanı yoktur. Yalnızca zarf ile GİB Sanal Alıcı'ya (3900892152) gönderim doğrulanabildi
10e-MM stopaj oranlarıGVK 94/11 zirai ürün stopaj oranları (ürün türü ve borsa tesciline göre) korpusta yok. Tek sayı, örnek XML'deki <cbc:Percent>2</cbc:Percent> değeridir ve kılavuz "örnekler … bağlayıcı değildir" der. Mera Fonu, Borsa Tescil Ücreti ve SGK Prim Kesintisi oranları da yok
11Karekod zorunluluğunun başlangıç tarihi509'un tüm ilgili bentleri "duyuruda belirtilecek tarihten itibaren" der; bu duyuru korpusta yok. Karekodun 31.08.2026 itibarıyla fiilen zorunlu olup olmadığı söylenemez
12Karekod kapsam boşluğue-Gider Pusulası, e-Bilet (3 tür), e-Sigorta Poliçesi ve e-Dekont için 509'da karekod zorunlu bilgi sayılmasına rağmen Karekod Kılavuzu V1.2'de bu belgeler için alan tanımı yok → karekod içerikleri çıkarılamıyor
13e-Adisyon ve e-Gider Pusulası iptal/itiraz süreçleriİptal/İtiraz Kılavuzu V1.1 yalnızca e-Arşiv Fatura ve e-SMM'yi kapsar. e-MM, e-Adisyon, e-GP, e-Döviz ve e-Sigorta belgeleri için sistem üzerinden iptal/itiraz akışı tanımlı değildir (yalnızca rapordaki *Iptal elemanları)
14ÇELİŞKİ (çözülemedi) — e-MM tip koduTeknik Kılavuz V1.1: MUSTAHSILMAKBUZ; Karekod Kılavuzu V1.2: MUSTAHSILMAKBUZU. Hangisinin şematronca kabul edildiği doğrulanamadı. Şematron/XSD esas alınmalıdır
15ÇELİŞKİ (çözülemedi) — e-Döviz tip/senaryo koduTeknik Kılavuz V1.0: DOVIZALIMBELGESI/DOVIZSATIMBELGESI ve yalnızca EDOVIZBELGE; Karekod Kılavuzu V1.2: ALIM/SATIM ve ayrıca EKIYMETLIMADENBELGE. Güncel e-Döviz/Kıymetli Maden şeması korpusta yok. Şematron/XSD esas alınmalıdır
16e-SMM raporlama süresinin dayanağıSüre, e-Arşiv Teknik Kılavuzu Bölüm 5'teki genel kuraldan türetilmiştir; metin e-Adisyon, e-Gider Pusulası, e-Sigorta Komisyon Gider Belgesi ve e-Dekont'u adıyla saymaz — "vb. diğer benzeri" ifadesinden ÇIKARIMDIR
17e-Sigorta Poliçesi başvuru rejimiBelge, e-Arşiv Başvuru Kılavuzu V1.8'in uygulama listesinde ve test senaryoları bölümünde (5.1-5.8) yer almaz; ancak kendi teknik kılavuzu e-Arşiv Raporu üretilmesini emreder. Hangi başvuru kılavuzuna tabi olduğu netleşmiyor
18e-Adisyon başvuru şartı çelişkisi509 IV.12.2(a) hem e-Fatura hem e-Arşiv Fatura kaydı ister; e-Arşiv Başvuru Kılavuzu V1.8 Girişi e-Adisyon için yalnızca "e-Fatura uygulamasına kayıtlı olma" der. Fark çözülemedi — daha ağır olan 509 hükmü (e-Fatura + e-Arşiv Fatura) esas alınmalıdır
19e-Fatura/e-İrsaliye için GİB PortalKorpusta doğrudan yazmaz; 509 V.1.1 yalnızca "Başkanlık GİB Portal Yöntemi ile düzenlenebilecek e-Belgeleri … belirlemeye, sınırlandırmaya … yetkilidir" der. e-İrsaliye Portalı açıkça teyit edilmemiştir

BÖLÜM 7 — Vergi Hesaplama Katmanı

Vergi Hesaplama Katmanı

Bu katman portalın en yüksek riskli parçasıdır: yanlış oran veya yanlış PayableAmount üretilen fatura GİB tarafından çoğu zaman reddedilmez (Schematron aritmetik doğrulama yapmaz), hata ancak vergisel denetimde ortaya çıkar. Bu nedenle aşağıdaki kuralların tamamı uygulama tarafında zorlanmalıdır.

Aşağıdaki tablolarda yer alan tevkifat kod+oran çiftlerinin tamamı yerel korpustaki UBL-TR_Codelist.xml (satır 16-17) ve UBL-TR_Common_Schematron.xml (satır 306-313) dosyalarından bu turda doğrudan grep ile teyit edilmiştir; ikinci elden alınmamıştır.


1. KDV Oranları — 2026 Durumu ve Dayanağı

1.1 Yürürlükteki oran yapısı

OranKapsamDayanak
%20Ekli listelerde yer alanlar hariç, vergiye tabi tüm işlemler (genel oran)2007/13033 s. BKK md.1/a, 7346 s. CB Kararı ile değişik
%10Karara ekli (II) sayılı liste2007/13033 s. BKK md.1/c, 7346 s. CB Kararı ile değişik
%1Karara ekli (I) sayılı liste2007/13033 s. BKK md.1/b — 7346 ile değiştirilmedi
%0İstisna / tam istisna işlemleri (matrah var, vergi yok)KDVK md.11-17; TaxExemptionReasonCode zorunlu

Temel düzenleme: 2007/13033 sayılı BKK, RG 30/12/2007, sayı 26742. Kararname tarihi 24/12/2007'dir; RG yayım tarihi ile karıştırılmamalıdır. Yetki dayanağı KDVK md.28 (oran %10'dur; Cumhurbaşkanı dört katına kadar artırmaya, %1'e kadar indirmeye yetkilidir).

1.2 %8→%10 ve %18→%20 geçişi (portalın geriye dönük fatura için ihtiyacı olan künye)

AlanDeğer
Karar No7346 ("Mal ve Hizmetlere Uygulanacak KDV Oranlarının Tespitine İlişkin Kararda Değişiklik Yapılmasına Dair Karar")
Karar tarihi6 Temmuz 2023
Resmî Gazete7 Temmuz 2023 Cuma, Sayı 32241
Yürürlük"Yayımını izleyen üçüncü gün" → 10 Temmuz 2023 (Pazartesi)
DeğişiklikGenel oran %18 → %20; (II) sayılı liste %8 → %10; (I) sayılı liste %1 değişmedi

İki yaygın hata: (i) 7346 bir Cumhurbaşkanlığı Kararnamesi değil, Cumhurbaşkanı Kararıdır; (ii) 10/7/2023 kararın tarihi değil yürürlük tarihidir.

7346 ayrıca (II) sayılı listenin 37. sırasını daraltmıştır: 5359 s. CBK (RG 29/03/2022, yürürlük 01/04/2022) ile eklenen "sabun, şampuan, deterjan, dezenfektan, ıslak mendil, tuvalet kâğıdı, kâğıt havlu/mendil/peçete, diş fırçası ve macunu, diş iplikleri" sırası "Diş fırçası ve macunu, diş iplikleri"ne indirilmiştir. Sonuç: sabun/deterjan/kâğıt ürünleri 10/7/2023'ten itibaren %8'den %10'a değil doğrudan %20'ye geçmiştir. [TEK KAYNAK: TÜRMOB 2023/104-1 sirküleri — RG PDF'inin gövdesi taranmış görüntü olduğundan madde metni birincil kaynaktan okunamadı.]

1.3 Portal kuralı: tarih parametreli oran listesi

Geçerli KDV oranı, vergiyi doğuran olay tarihine göre seçilmelidir (fatura düzenleme tarihine göre değil):

VDO tarihiSeçilebilir KDV oranları
≤ 09/07/20230, 1, 8, 18
≥ 10/07/20230, 1, 10, 20

UBL tarafında KDV oranı cac:TaxTotal/cac:TaxSubtotal/cbc:Percent alanına yazılır; burada ondalık serbesttir (20.00 geçerlidir — GİB'in kendi Teknoloji Destek örnek XML'i böyle yazar). Bu serbestlik tevkifat Percent alanı için GEÇERLİ DEĞİLDİR (bkz. §2.4).

1.4 2026'da oran değişikliği oldu mu?

Hayır. 1 Eylül 2026 itibarıyla %20/%10/%1 yapısı değişmemiştir. 2007/13033'e yapılan son değişiklik 9126 sayılı CB Kararı (karar 13/11/2024, RG 14/11/2024, yürürlük 15/11/2024) olup oran yapısını değil liste satırlarını değiştirmiştir (özel tıbbi amaçlı gıdalar ve beşerî tıbbi ürünlerde %8 indirimli uygulama; Tıbbi Cihaz Yönetmeliği kapsamındaki 85.17 GTİP'li malların (I) sayılı listeden çıkarılıp %20'ye tabi tutulması). [TEK KAYNAK: PKF derlemesi + RG PDF künyesi.]

2025-2026 KDV düzenlemeleri oran kararı değildir: 9770 s. CBK (RG 1/5/2025, KDVK geçici 37. madde süresini 31/12/2028'e uzatma), 56 SN KDVGUT (RG 31/12/2025, 2026 indirimli oran iade alt sınırı 164.000 TL), 57 SN KDVGUT (RG 31/1/2026, S.33154 — yem istisnası, UEFA, iade süreçleri; tevkifat oranlarına dokunmaz).


2. KDV Tevkifatı — Kod, Oran ve Geçiş Tarihleri

2.1 Birincil kanıt: Schematron'un kabul ettiği kod+oran çiftleri

GİB, tevkifat kodunu ve oranını birlikte doğrular. UBL-TR_Codelist.xml satır 17'deki WithholdingTaxTypeWithPercent listesi, concat(TaxTypeCode, Percent) string'ini karşılaştırır:

',60130,60140,60290,60350,60370,60450,60550,60690,60790,60890,60950,60970,
61090,61190,61270,61290,61370,61390,61450,61550,61570,61650,61770,61870,
61970,62070,62190,62290,62350,62420,62530,62620,65090,65050,65070,65020,
65030,62740,62750,801100,802100,...,825100,'

Kural (UBL-TR_Common_Schematron.xml satır 312):

<sch:assert test="contains($WithholdingTaxTypeWithPercent,
    concat(',',cac:TaxCategory/cac:TaxScheme/cbc:TaxTypeCode,cbc:Percent,','))">
  Uyumsuz vergi tipi yüzdesi: '...' vergi tipinin yüzdesi '...' olamaz
</sch:assert>

Kritik çıkarım: Listede iki yüzde değeri taşıyan kodlar, tam olarak oran değişikliği yaşamış kodlardır — ve GİB eski oranı hâlâ kabul etmektedir. Schematron'da tarih koşulu YOKTUR; yani 601 kodunu bugün %30 ile gönderirseniz Schematron geçirir. Eski/yeni oran ayrımını portal yapmak zorundadır.

Çift değerli kodlar: 601 (30/40), 603 (50/70), 609 (50/70), 612 (70/90), 613 (70/90), 615 (50/70), 627 (40/50). Başka hiçbir kodda iki değer yoktur — bu, taranmayan KDVGUT tebliğlerinde başka bir oran geçişi olmadığının dolaylı ama güçlü kanıtıdır.

2.2 601-627 KISMİ TEVKİFAT — tam tablo, geçiş tarihleriyle

Percent sütunu XML'e yazılacak tam sayıdır. "Dönem 1" 1/3/2021 öncesi, "Dönem 2" güncel değerdir.

Kodİşlem (KDVGUT bölümü)GÜNCEL oran (Percent)ESKİ oran (Percent)Değişim tarihiDeğiştiren tebliğ
601Yapım İşleri + birlikte ifa edilen Mühendislik-Mimarlık/Etüt-Proje (2.1.3.2.1)4/10 (40)3/10 (30)1/3/202135 SN md.2 (RG 16/2/2021, S.31397)
602Etüt, Plan-Proje, Danışmanlık, Denetim vb. (2.1.3.2.2)9/10 (90)
603Makine, Teçhizat, Demirbaş, Taşıt tadil-bakım-onarım (2.1.3.2.3)7/10 (70)5/10 (50)1/3/202135 SN md.4
604Yemek Servis Hizmeti (2.1.3.2.4)5/10 (50)
605Organizasyon Hizmeti (2.1.3.2.4)5/10 (50)
606İşgücü Temin Hizmetleri (2.1.3.2.5)9/10 (90)
607Özel Güvenlik Hizmeti (2.1.3.2.5)9/10 (90)
608Yapı Denetim Hizmetleri (2.1.3.2.6)9/10 (90)
609Fason tekstil/konfeksiyon, çanta-ayakkabı dikim ve aracılık (2.1.3.2.7)7/10 (70)5/10 (50)1/3/202135 SN md.5
610Turistik mağazalara müşteri bulma/götürme (2.1.3.2.8)9/10 (90)
611Spor kulüplerinin yayın, reklam, isim hakkı (2.1.3.2.9)9/10 (90)
612Temizlik Hizmeti (2.1.3.2.10)9/10 (90)7/10 (70)1/3/202135 SN md.6
613Çevre ve Bahçe Bakım Hizmetleri (2.1.3.2.10)9/10 (90)7/10 (70)1/3/202135 SN md.6
614Servis Taşımacılığı Hizmeti (2.1.3.2.11)5/10 (50)
615Her Türlü Baskı ve Basım Hizmetleri (2.1.3.2.12)7/10 (70)5/10 (50)1/3/202135 SN md.8
616Diğer Hizmetler (2.1.3.2.13)5/10 (50)35 SN md.9 (bölüm yeniden yazıldı)
617Hurda metalden elde edilen külçe teslimleri (2.1.3.3.1)7/10 (70)
618Hurda dışı bakır, çinko, demir-çelik, alüminyum, kurşun külçe (2.1.3.3.1)7/10 (70)
619Bakır, Çinko, Alüminyum ve Kurşun Ürünlerinin Teslimi (2.1.3.3.2)7/10 (70)
620İstisnadan vazgeçenlerin hurda ve atık teslimi (2.1.3.3.3)7/10 (70)
621Metal/plastik/lastik/kauçuk/kâğıt/cam hurdadan hammadde (2.1.3.3.4)9/10 (90)
622Pamuk, tiftik, yün, yapağı, ham post ve deri (2.1.3.3.5)9/10 (90)
623Ağaç ve Orman Ürünleri Teslimi (2.1.3.3.6)5/10 (50)
624Yük Taşımacılığı Hizmeti (2.1.3.2.11)2/10 (20)tevkifat YOK1/3/2021 (ihdas)35 SN md.7
625Ticari Reklam Hizmetleri (2.1.3.2.15)3/10 (30)tevkifat YOK1/3/2021 (ihdas)35 SN md.11
626Diğer Teslimler — yalnız DMO'ya (2.1.3.3.7)2/10 (20)tevkifat YOK1/3/2021 (ihdas)35 SN md.12
627Demir-Çelik Ürünlerinin Teslimi (2.1.3.3.8)5/10 (50)4/10 (40)1/11/2022 (ihdas 1/5/2022)41 SN md.5 (RG 21/4/2022, S.31816) → 43 SN md.2 (RG 25/10/2022, S.31994)

Dayanak tebliğ künyeleri (birebir):

  • 35 Seri No.lu KDVGUT Tebliği — RG 16 Şubat 2021, S.31397. Yürürlük md.17: "Bu Tebliğ yayımı tarihini takip eden ay başında yürürlüğe girer."1/3/2021. Birebir madde metinleri: md.4 "(I/C-2.1.3.2.3.1.) ve (I/C-2.1.3.2.3.2.) bölümlerinde yer alan '5/10' ibareleri '7/10' olarak değiştirilmiştir."; md.5 "(I/C-2.1.3.2.7.1.) bölümünde yer alan '5/10' ibaresi '7/10'…"; md.6 "(I/C-2.1.3.2.10.1.) bölümünde yer alan '7/10' ibaresi '9/10'…"; md.8 "(I/C-2.1.3.2.12.1.) ve (I/C-2.1.3.2.12.2.) bölümlerinde yer alan '5/10' ibareleri '7/10'…"
  • 41 Seri No.lu — RG 21/4/2022, S.31816, md.5: demir-çelik bölümü (2.1.3.3.8) ihdas, oran (4/10). Yürürlük md.19/b → 1/5/2022.
  • 43 Seri No.lu — RG 25/10/2022, S.31994, md.2: "(I/C-2.1.3.3.8.1.) bölümünde yer alan '(4/10)' ibaresi '(5/10)' olarak değiştirilmiş" + payları BİST'te işlem gören şirketlerin teslimleri de kapsama alındı. Yürürlük md.7/a → 1/11/2022.

Portal kuralı: oran seçimi VDO tarihine bağlıdır. Örn. 627 için VDO < 01/05/2022 → tevkifat yok; 01/05/2022 ≤ VDO ≤ 31/10/2022 → Percent=40; VDO ≥ 01/11/2022 → Percent=50.

601 için özel uyarı: 1/3/2021'den itibaren yapım işlerinde tevkifat iki zeminde uygulanır — (i) belirlenmiş alıcılara (I/C-2.1.3.1/b) yapılan tüm yapım işleri, (ii) KDV mükelleflerine (I/C-2.1.3.1/a) yapılan ve KDV dahil bedeli 5 milyon TL ve üzerinde olan yapım işleri. Sözleşme güncellemesiyle bedelin sonradan 5 milyon TL'yi aşması hâlinde tevkifat o tarihten itibaren başlar. Portalda bu bir tutar eşiği kontrolü olarak kurgulanmalıdır.

626 için özel uyarı: adı "Diğer Teslimler" olsa da kapsam yalnızca Devlet Malzeme Ofisi Genel Müdürlüğüne yapılan ve Tebliğde özel olarak belirlenmemiş teslimlerdir (su, elektrik, gaz, ısıtma/soğutma enerji kullanımları hariç). Genel amaçlı "diğer" seçeneği olarak sunulmamalıdır.

Kod adı tutarsızlığı: V1.43 PDF'inde kod sütunu ile ad sütunu bir satır kaymıştır (PDF'te "602 Yapım İşleri…" görünür; gerçekte 601 yapım işleridir). Oran sütunu kodlarla doğru hizalıdır. Kod adlarını V1.43 PDF'inden ham parse etmeyin. Ayrıca 619'un kod listesindeki adında "kurşun" eksiktir; hem 818'in adı hem GİB'in resmî oran tablosu kurşunu içerir — arayüzde kurşun dahil ad gösterilmelidir.

2.3 801-825 İSTEĞE BAĞLI TAM TEVKİFAT — ayrı blok, hepsi 10/10

Premis düzeltmesi: 801-825 bloğu "5018 sayılı Kanuna ekli idarelere özel tevkifat" DEĞİLDİR. Bu kodlar KDVGUT I/C-2.1.2.5 "İsteğe Bağlı Tam Tevkifat Uygulaması" içindir (41 SN Tebliğ md.2, yürürlük 1/5/2022) ve Schematron'da tek geçerli yüzde 100'dür.

Uygulama esasları: alıcı ile satıcı arasında yazılı sözleşme, süre bir yıl; alıcının tevkifat sorumluluğu bulunup bulunmadığına bakılmaz; bir yıl dolmadan vazgeçilemez; sözleşme örneği KDV beyannamesi verilmeden önce vergi dairesine bildirilir (İnternet Vergi Dairesi → "İsteğe Bağlı Tam Tevkifat Sözleşmeleri Bilgi Girişi", KDV Sirküleri/69).

Tam tevkifat koduKarşılığıİşlemKDVGUTPercent
801601Yapım işleri + müh.-mimarlık/etüt-proje2.1.3.2.1100
802602Etüt, plan-proje, danışmanlık, denetim2.1.3.2.2100
803603Makine/teçhizat/demirbaş/taşıt tadil-bakım-onarım2.1.3.2.3100
804604Yemek servis hizmeti2.1.3.2.4100
805605Organizasyon hizmeti2.1.3.2.4100
806606İşgücü temin hizmetleri2.1.3.2.5100
807607Özel güvenlik hizmeti2.1.3.2.5100
808608Yapı denetim hizmetleri2.1.3.2.6100
809609Fason tekstil/konfeksiyon, çanta-ayakkabı dikim2.1.3.2.7100
810610Turistik mağazalara müşteri bulma/götürme2.1.3.2.8100
811611Spor kulüpleri yayın/reklam/isim hakkı2.1.3.2.9100
812612Temizlik hizmeti2.1.3.2.10100
813613Çevre ve bahçe bakım hizmetleri2.1.3.2.10100
814614Servis taşımacılığı hizmeti2.1.3.2.11100
815615Her türlü baskı ve basım hizmetleri2.1.3.2.12100
816617Hurda metalden elde edilen külçe teslimleri2.1.3.3.1100
817618Hurda dışı bakır/çinko/demir-çelik/alüminyum/kurşun külçe2.1.3.3.1100
818619Bakır, çinko, alüminyum ve kurşun ürünleri2.1.3.3.2100
819620İstisnadan vazgeçenlerin hurda ve atık teslimi2.1.3.3.3100
820621Hurda/atıktan elde edilen hammadde teslimi2.1.3.3.4100
821622Pamuk, tiftik, yün, yapağı, ham post ve deri2.1.3.3.5100
822623Ağaç ve orman ürünleri teslimi2.1.3.3.6100
823624Yük taşımacılığı hizmeti2.1.3.2.11100
824625Ticari reklam hizmetleri2.1.3.2.15100
825627Demir-çelik ürünlerinin teslimi2.1.3.3.8100

Neden 27 değil 25 kod var: 41 SN Tebliğ md.2, isteğe bağlı tam tevkifat kapsamından (I/C-2.1.3.2.13) Diğer Hizmetler ile (I/C-2.1.3.3.7) Diğer Teslimler'i açıkça hariç tutar. Eksik olan iki kod tam olarak 616 ve 626'dır. Bu, listenin doğruluğunu bağımsız olarak teyit eden bir çapraz kontroldür. 801-825 blokunda hiçbir zaman oran geçişi olmamıştır — Schematron'da her kod için tek değer (…100) vardır.

Numara kayması tuzağı: 6xx→8xx eşlemesi 815'ten sonra bire bir DEĞİLDİR (816 = 617, 817 = 618 …). Basit kod + 200 aritmetiği yanlış sonuç verir.

2.4 Percent format kuralı (en sık yapılan hata)

Kontrol string birleştirme ile yapıldığı için cbc:Percent ondalıksız tam sayı olmalıdır:

Yazımconcat sonucuSonuç
<cbc:Percent>90</cbc:Percent> (kod 606)60690✅ geçer
<cbc:Percent>90.00</cbc:Percent>60690.00❌ "Uyumsuz vergi tipi yüzdesi"
<cbc:Percent>9</cbc:Percent> (9/10'u 9 yazmak)6069
<cbc:Percent>9/10</cbc:Percent>6069/10
<cbc:Percent>100</cbc:Percent> (kod 801)801100

Bu kural yalnızca WithholdingTaxTotal altındadır; TaxTotal/TaxSubtotal/cbc:Percent (KDV oranı) ondalıklı yazılabilir.

Kural iki bağlamda birden işler: inv:Invoice/cac:WithholdingTaxTotal/cac:TaxSubtotal ve inv:Invoice/cac:InvoiceLine/cac:WithholdingTaxTotal/cac:TaxSubtotal. Satır seviyesi tevkifat, satır seviyesi istisnanın aksine aktif olarak denetlenir.

İlgili senaryo kuralı (GeneralWithholdingTaxTotalCheck): cac:WithholdingTaxTotal varsa InvoiceTypeCode ancak TEVKIFAT, YTBTEVKIFAT, IADE, YTBIADE, SGK, SARJ, SARJANLIK olabilir. Çelişki: TEVKIFATIADE ve YTBTEVKIFATIADE bu listede YOK, oysa InvoiceTypeCodeList ve IADEInvioceCheck bu tipleri tanıyor. Tevkifat iade faturasına WithholdingTaxTotal koyarsanız Schematron hata verir — portal bu kombinasyonu üretmemelidir.

2.5 Tevkifat alt sınırı

KDVGUT I/C-2.1.3.4.1: "Kısmi tevkifat uygulaması kapsamına giren her bir işlemin KDV dahil bedeli … fatura düzenleme sınırını aşmadığı takdirde, hesaplanan KDV tevkifata tabi tutulmaz. Sınırın aşılması halinde ise tutarın tamamı üzerinden tevkifat yapılır." Bedel parçalara bölünemez.

YılHad (KDV dahil)Dayanak
20259.900 TLVUK 232 fatura düzenleme haddi
202612.000 TL588 Sıra No.lu VUK GT (RG 31/12/2025) [TEK KAYNAK]

Çelişki uyarısı: Elimizdeki KDVGUT konsolide PDF'i hâlâ sabit 1.000 TL yazmaktadır. Bu, eski bir konsolidasyondur; had sonradan VUK 232 haddine endekslenmiştir. 12.000 TL rakamı yalnızca ikincil kaynaklardan alınmıştır — devreye almadan önce 588 SN VUK GT'nin birebir metniyle teyit edin. Kontrol satır bazında değil, işlem (KDV dahil bedel) bazında ve yıl parametreli yapılmalıdır.

2.6 Tevkifatı kim yapar (I/C-2.1.3.1)

(a) KDV mükellefleri (KDVK md.8). (b) Belirlenmiş alıcılar (KDV mükellefi olsun olmasın): 5018 s. Kanuna ekli cetveldeki idareler, il özel idareleri ve birlikler, köylere hizmet götürme birlikleri; kanunla kurulan diğer kamu kurum ve kuruluşları; döner sermayeli kuruluşlar; kamu kurumu niteliğindeki meslek kuruluşları; kanunla kurulan/tüzel kişiliği haiz emekli ve yardım sandıkları; bankalar; sigorta ve reasürans şirketleri; sendikalar ve üst kuruluşları; vakıf üniversiteleri; mobil elektronik haberleşme işletmecileri (bu dördü 35 SN ile 1/3/2021'de eklendi); büyükşehir belediyelerinin su ve kanalizasyon idareleri; KİT'ler; özelleştirme kapsamındaki kuruluşlar; TVF ve alt fonlara devredilen kuruluşlar; OSB'ler ve bütün borsalar; yarıdan fazla hissesi bunlara ait kuruluşlar; payları BİST'te işlem gören şirketler; kalkınma ve yatırım ajansları. Okul aile birlikleri ve aile hekimliği kurumları kapsam dışıdır.

616 (Diğer Hizmetler) için alıcı grubu dardır — bu listenin tamamı değil, 35 SN md.9'da sayılan alt küme (5018 cetvelleri, kanunla kurulan kamu kurumları, döner sermayeliler, meslek kuruluşları, bankalar, sigorta/reasürans, emekli-yardım sandıkları, kalkınma ajansları).


3. 650 Kodu — KULLANILAMAZ

Kesin cevap: kullanılamaz. WithholdingTaxTotalCheck iki assert içerir ve ikisi de geçmelidir:

AssertListe650 için sonuç
A — kod geçerliliğiWithholdingTaxType = ,601…627,801…825,650 YOK → FAIL
B — kod+oran uyumuWithholdingTaxTypeWithPercent içinde 65020,65030,65050,65070,65090PASS

Assert A başarısız olduğu için fatura reddedilir. WithholdingTaxTypeWithPercent içindeki 650 girişleri, listeden çıkarılmış bir kodun temizlenmemiş kalıntısıdır — paket içi bir tutarsızlıktır, kullanılabilirlik işareti değildir.

Tarihçe: 650, Ekim 2015 tarihli "UBL-TR Kod Listeleri (İstisna, Tevkifat ve Muafiyet Kodları)" belgesinde "DİĞERLERİ" adıyla 2/10, 5/10, 7/10, 9/10 oranlarıyla yer alıyordu; v1.22 (14.03.2019) ile 3/10 eklendi. Sonraki sürümlerde (v1.31, v1.43 dahil) tevkifat kod listesinden çıkarılmıştır.

Portal kuralı: 650'yi arayüzde göstermeyin, üretmeyin; gelen faturada görürseniz "eski/geçersiz kod" olarak işaretleyin. "Diğer" ihtiyacı için 616 veya 626 kullanılır (kapsam sınırlarına dikkat).


4. ÖTV — TaxTypeCode Eşleşmesi

ÖTV, KDV ile aynı <cac:TaxTotal> altında ayrı bir <cac:TaxSubtotal> olarak gösterilir; her alt toplam kendi TaxableAmount/TaxAmount/Percent değerini taşır ve hesaplama sırası <cbc:CalculationSequenceNumeric> ile verilir. Kalem bazında InvoiceLine/TaxTotal de kullanılabilir.

TaxTypeCodeGİB kısaltması4760 s. ÖTV Kanunu karşılığı
0071ÖTV 1.LİSTE(I) sayılı liste — petrol ve doğalgaz ürünleri
9077ÖTV 2.LİSTE(II) sayılı liste — motorlu taşıt araçları (tescile tabi olanlar)
0073ÖTV 3.LİSTE(III) sayılı liste bütünü — kolalı gazoz, alkollü içecekler, tütün mamulleri
0075ÖTV 3A LİSTE(III) sayılı listenin alkollü içecekler kısmı
0076ÖTV 3B LİSTE(III) sayılı listenin tütün mamulleri kısmı
0077ÖTV 3C LİSTE(III) sayılı listenin kolalı gazozlar kısmı
0074ÖTV 4.LİSTE(IV) sayılı liste — dayanıklı tüketim ve diğer mallar
4171PTR-DGZ ÖTV TEVKİFATPetrol/doğalgaz ürünlerine ilişkin ÖTV tevkifatı (ÖTV'nin kendisi değil)

Uyarı 1: V1.43 PDF'inde bu tabloda da ad sütunu bir satır kaymıştır; kısaltma sütunu kodlarla doğru hizalıdır. Yukarıdaki eşleşme kısaltma sütunu esas alınarak düzeltilmiştir. Kod 0072 hiç yoktur.

Uyarı 2: 4760 s. Kanun'da (III) sayılı listenin resmî alt bölümleri (A) ve (B) cetvelleridir; "3A/3B/3C" ayrımı GİB'in UBL-TR'ye özgü iç kısaltmasıdır ve Kanun'un cetvel harflendirmesiyle bire bir örtüşmez. Kodu GİB tanımına göre seçin.

ÖTV oranları kapsam dışıdır. 4760 s. Kanuna ekli I-IV sayılı listelerdeki maktu/nispi tutarlar bu araştırmada hiç çıkarılmamıştır; portal ÖTV hesaplaması yapacaksa ayrı bir mevzuat turu gerekir. Bu turda yalnızca kod eşleşmesi doğrulanmıştır.

ÖTV istisna kodları (tam liste): 101 İhracat İstisnası · 102 Diplomatik İstisna · 103 Askeri Amaçlı İstisna · 104 Petrol Arama Faaliyetlerinde Bulunanlara Yapılan Teslimler · 105 Uluslararası Anlaşmadan Doğan İstisna · 106 Diğer İstisnalar · 107 7/a Maddesi Kapsamında Yapılan Teslimler · 108 Geçici 5. Madde Kapsamında Yapılan Teslimler · 151 ÖTV – İstisna Olmayan Diğer (istisna olmayan ama 0 ÖTV'li fatura gerektiren durumlar). efatura.xslt, TaxTypeCode'u 007 ile başlayan satırlarda TaxExemptionReasonCode + Reason varsa "ÖTV İstisna Muafiyet Sebebi" satırı basar.


5. Konaklama Vergisi

5.1 Kanuni dayanak

6802 s. Gider Vergileri Kanunu md.34 (7194 s. Kanun md.9 ile yeniden düzenlendi), uygulama 1/1/2023'te yürürlüğe girdi.

  • Konu: otel, motel, tatil köyü, pansiyon, apart otel, misafirhane, kamping, dağ evi, yayla evi vb. tesislerde geceleme hizmeti + bu hizmetle birlikte satılan tesis bünyesindeki tüm hizmetler (yeme-içme, aktivite, eğlence, havuz/spor/termal alan kullanımı).
  • Matrah: KDV hariç bedel; vade farkı, fiyat farkı, kur farkı, faiz, prim dahil.
  • Kanuni oran: %2. Cumhurbaşkanı bir katına kadar artırmaya, yarısına kadar indirmeye yetkilidir.
  • Faturada: "Konaklama vergisi, konaklama tesislerince düzenlenen fatura ve benzeri belgelerde ayrıca gösterilir. Bu vergiden herhangi bir ad altında indirim yapılamaz. Bu vergi, katma değer vergisi matrahına dahil edilmez."
  • İstisnalar: (a) öğrenci yurtları, pansiyonları ve kamplarında öğrencilere verilen hizmetler; (b) karşılıklılık şartıyla diplomatik istisna.
  • Beyan: aylık; ertesi ayın 26'sına kadar.

5.2 2026 oranı — %2 DEĞİL %1

11263 sayılı Cumhurbaşkanı Kararı (RG 1 Mayıs 2026, Sayı 33240) ile oran, 1/5/2026 – 31/12/2026 arasında geçerli olmak üzere %2'den %1'e indirilmiştir. Karar yayımı tarihinde yürürlüğe girmiştir.

Hizmetin sunulduğu tarihOran
1/1/2023 – 30/4/2026%2
1/5/2026 – 31/12/2026%1
1/1/2027 –Karar süresi dolduğundan, yeni Karar çıkmazsa kanuni oran %2'ye döner — parametrik bırakın

ÇELİŞKİ (açıkça yazıyorum): Bu araştırmanın 05.json kaynak dosyasındaki bir bulgu konaklama vergisini hâlâ "%2, 1/1/2023'ten itibaren" olarak vermektedir. Bu eskimiş bilgidir; 03.json'daki 11263 s. Karar bulgusu GİB'in kendi 2026 Konaklama Vergisi Rehberi'ne (Yayın No: 609) dayandığı için üstün tutulmuştur. Portalda tarih parametreli oran kullanın. [11263 s. Kararın RG birebir metnine doğrudan erişilemedi; GİB Rehberi 2026 üzerinden doğrulandı.]

5.3 Hesaplama — iki vergi birbirinin matrahına girmez

GİB Konaklama Vergisi Rehberi 2026, Örnek 11 (KDV hariç 80.000 TL tam pansiyon, KDV %10, konaklama vergisi %1):

SatırTutar
Konaklama Bedeli (KDV hariç)80.000 TL
Hesaplanan Konaklama Vergisi (80.000 × %1)800 TL
KDV Matrahı80.000 TL ← 80.800 DEĞİL
Hesaplanan KDV (80.000 × %10)8.000 TL
Genel Toplam88.800 TL

Ek kurallar: "Konaklama hizmetinin sunumundan önce fatura ve benzeri belge düzenlense dahi, bu belgede konaklama vergisi gösterilmez." (avans/ön fatura). Acenta satış fiyatına vergiyi dahil etmemişse, vergi otel tarafından konaklayan adına ayrı bir faturada gösterilir. Diplomatik istisnada faturaya şerh: "Gider Vergileri Kanununun 34 üncü Maddesinin 7 nci Fıkrası Kapsamında Konaklama Vergisi Hesaplanmamıştır."

5.4 e-Belge kodları ve V1.43'teki eksiklik

AlanDeğer
TaxTypeCode0059 — "Konaklama Vergisi"
InvoiceTypeCodeKONAKLAMAVERGISI
İstisna kodu001 – Diplomatik İstisna (bu listedeki tek kod)
EklenmeKod Listeleri V1.31 (01.01.2023): "Konaklama Vergi İstisna Kodları Listesi eklendi. Vergi Kodu listesi güncellendi."

TUTARSIZLIK (bu turda doğrudan doğrulandı): grep -c "0059" UBL-TR_Kod_Listeleri_-_V_1.43_.txt0 eşleşme. Yani 0059 kodu V1.43'ün (Temmuz 2026) basılı "VERGİ KODLARI LİSTESİ" tablosunda yoktur. Buna karşılık aynı paketteki UBL-TR_Codelist.xml satır 15, TaxType değişkeninde 0059'u listenin son elemanı olarak taşımaktadır:

',0003,0015,0061,0071,0073,0074,0075,0076,0077,1047,1048,4080,4081,9015,
9021,9077,8001,8002,8004,8005,8006,8007,8008,9040,0011,4071,4171,0021,
0022,9944,0059,'

Pratik sonuç: 0059 ile gönderim Schematron'dan geçer; ancak dokümante edilmediği için özel entegratör tarafında ek doğrulama olabilir. Devreye almadan önce entegratör/GİB test ortamında doğrulayın.

Öğrenci yurdu istisnası kodsuzdur. 6802/34'ün (a) bendindeki "öğrenci yurtları, pansiyonları ve kamplarında öğrencilere verilen hizmetler" istisnası için UBL-TR'de tanımlı bir kod yoktur — Konaklama Vergisi İstisna Kodları Listesi yalnızca 001'i içerir. Bu istisnanın e-belgede nasıl kodlanacağı ne korpustan ne webden tespit edilebildi. DOĞRULANAMADI

Schematron'daki tek bağlayıcı iz: KONAKLAMAVERGISI tipi Schematron'da bir senaryoya bağlanmaz; yalnızca TaxExemptionReasonCheck içinde bir muafiyet olarak geçer (satır 403) — "TaxAmount=0 olan 0015 kodlu KDV için TaxExemptionReason zorunludur" kuralından hariç tutulmuştur. Bu tam olarak kullanım senaryosunu açıklar: sadece konaklama vergisi için düzenlenen faturada KDV satırı 0 ile geçer ve istisna sebebi aranmaz.

Üç kullanım biçimi: SATIS (konaklama dahil satışta 0059 eklenir) · ISTISNA (001 diplomatik) · KONAKLAMAVERGISI (hizmet sunumundan önce vergisiz fatura kesilmişse, sonradan yalnız vergi için ayrı fatura). [TEK KAYNAK — GİB duyurusunun birebir metnine ulaşılamadı; 0059 ve 001 kodları ise birincil GİB kod listelerinden doğrulandı.]


6. 9015 Vergi Kodu Bilmecesi

BulguKaynak
TaxType Schematron listesinde VAR (geçerli değer)UBL-TR_Codelist.xml satır 15
V1.43 ve V1.31 basılı "VERGİ KODLARI LİSTESİ" tablosunda YOK (0 eşleşme)yerel korpus grep
GİB XSLT'lerinde özel olarak işlenir — 7 ayrı yerdeEFATURA_20260812…xslt satır 1062, 1072, 1090, 1113, 1115, 1137, 1139

XSLT'nin 9015'e yüklediği anlam bu turda doğrudan okundu:

  • TaxTotal/TaxSubtotal[TaxTypeCode=9015]/cbc:TaxableAmount → ekranda "Tevkifata Tabi İşlem Üzerinden Hes. KDV"
  • InvoiceLine[TaxTotal/TaxSubtotal/…/TaxTypeCode=9015]/cbc:LineExtensionAmount toplamı → "Tevkifata Tabi İşlem Tutarı"

Yani 9015, tevkifatın ESKİ/ALTERNATİF gösterim biçimidir: WithholdingTaxTotal yerine TaxTotal altında 9015 kodlu bir alt toplamla taşınır ve XSLT bunu WithholdingTaxTotal ile tamamen aynı iki etiketle basar. Kodun adı hiçbir GİB kod listesinde geçmediği için resmî tanımı DOĞRULANAMADI'dır — bu çıkarım XSLT davranışından geri türetilmiştir.

Portal kuralı: yeni fatura üretirken 9015 kullanmayın, WithholdingTaxTotal kullanın. Ancak gelen faturaları parse ederken 9015'li TaxTotal alt toplamlarını tevkifat olarak tanıyın; aksi halde eski sistemlerden gelen tevkifatlı faturaları KDV zannedersiniz.


7. PayableAmount / Tevkifat — KESİN CEVAP

Tevkifat, ödenecek tutardan DÜŞÜLÜR. Bu kesindir ve iki bağımsız birincil kaynakla teyitlidir.

7.1 Mevzuat kanıtı — KDVGUT I/C-2.1.3.4.2 (Belge Düzeni)

(Not: sorudaki 2.1.3.4.1 bölümü "Tevkifat Uygulamasında Sınır"dır; belge düzeni .4.2'dir.)

Tebliğ altı tutarın ayrıca gösterilmesini zorunlu kılar ve sayısal örnek verir. Birebir: "Faturaya, borçlanılan miktar olarak rakam ve yazı ile tevkifattan sonra kalan tutar yazılır." Tebliğin kendi örneğinde (KDV hariç 3.000 TL, %18, 5/10) yazı ile yazılan tutar 3.270 TL'dir, 3.540 değil.

Tebliğ alanıÖrnekUBL-TR karşılığı
İşlem Bedeli3.000LegalMonetaryTotal/cbc:TaxExclusiveAmount
Hesaplanan KDV540TaxTotal/TaxSubtotal[TaxTypeCode=0015]/cbc:TaxAmount
Tevkifat Oranı5/10WithholdingTaxTotal/TaxSubtotal/cbc:Percent = 50
Tevkif Edilecek KDV270WithholdingTaxTotal/cbc:TaxAmount
Tevkifat Dahil Toplam Tutar3.540LegalMonetaryTotal/cbc:TaxInclusiveAmount
Tevkifat Hariç Toplam Tutar3.270LegalMonetaryTotal/cbc:PayableAmount

7.2 XSLT kanıtı — GİB'in kendi görüntüleme şablonu (bu turda satır satır okundu)

xslt/EFATURA_20260812_134006Z.xslt satır 1008 ve 1021:

<xsl:text>Tevkifat Dahil Toplam Tutar</xsl:text>
  … select="//n1:Invoice/cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount"
<xsl:text>Tevkifat Hariç Toplam Tutar</xsl:text>
  … select="//n1:Invoice/cac:LegalMonetaryTotal/cbc:PayableAmount"

Aynı blok EARSIV_20260812…, EFATURA_OZELM_…, EARSIV_OZELM_…, EIHRACAT_…, efatura.xslt, arsiv.xslt ve iki IBANLI şablonda — toplam 9 şablonda aynen mevcuttur.

Dürüst nüans (bu turda tespit edildi, kaynak bulgu dosyasında yalnızca kısmen belirtilmişti): bu iki satırlık blok <xsl:if test="cac:TaxCategory/cac:TaxScheme/cbc:TaxTypeCode = '4171'"> koşulunun içindedir; yani ekrana yalnızca 4171 (petrol-doğalgaz ÖTV tevkifatı) satırı olan faturalarda basılır. Etiket-alan eşlemesi anlamı belirlediği için kanıt değeri tamdır, ancak "her tevkifatlı faturada bu satır görünür" demek yanlış olur.

Buna karşılık her faturada koşulsuz basılan iki satır (satır 1150-1174):

Ekran etiketiXPath
Vergiler Dahil Toplam TutarLegalMonetaryTotal/cbc:TaxInclusiveAmount
Ödenecek TutarLegalMonetaryTotal/cbc:PayableAmount

Ayrıca karekod JSON'undaki "odenecek" anahtarı da doğrudan PayableAmount'tan beslenir (satır 256). Döviz faturalarında TL karşılığı PayableAmount × PricingExchangeRate/CalculationRate ile hesaplanır (satır 1236).

7.3 Formül ve güncel oranlı örnek

TaxExclusiveAmount = Σ InvoiceLine/LineExtensionAmount  (− indirim + masraf)
TaxInclusiveAmount = TaxExclusiveAmount + Σ TaxTotal/TaxAmount
PayableAmount      = TaxInclusiveAmount − Σ WithholdingTaxTotal/cbc:TaxAmount
                     ± PayableRoundingAmount   (varsa)

2026 oranlarıyla örnek — 3.000 TL işgücü temini (kod 606, 9/10), KDV %20:

AlanDeğer
TaxExclusiveAmount3.000,00
TaxTotal/TaxSubtotal[0015]TaxableAmount / Percent / TaxAmount3.000,00 / 20 / 600,00
WithholdingTaxTotal/cbc:TaxAmount600 × 90% = 540,00
WithholdingTaxTotal/TaxSubtotal/cbc:Percent90
WithholdingTaxTotal/TaxSubtotal/cbc:TaxableAmount600,00 ← dikkat, 3.000 değil
TaxInclusiveAmount3.600,00
PayableAmount3.600 − 540 = 3.060,00

7.4 WithholdingTaxTotal alt alanlarının XSLT'ye göre ANLAMI

XPathXSLT etiketiYazılacak (yukarıdaki örnek)
WithholdingTaxTotal/cbc:TaxAmount(toplam)540
…/TaxSubtotal/cbc:TaxAmount"Hesaplanan KDV Tevkifat(%90)"540
…/TaxSubtotal/cbc:Percentetiket içindeki (%…)90
…/TaxSubtotal/cbc:TaxableAmount"Tevkifata Tabi İşlem Üzerinden Hes. KDV"600 — işlem bedeli DEĞİL, hesaplanan KDV
InvoiceLine/cbc:LineExtensionAmount (tevkifatlı satırlar toplamı)"Tevkifata Tabi İşlem Tutarı"3.000
…/TaxCategory/TaxScheme/cbc:TaxTypeCode"Tevkifat Sebebi"606

TaxableAmount en sık yanlış doldurulan alandır: matrah değil, o işlem üzerinden hesaplanan KDV yazılır. Kılavuz örneğinde bu alan hiç yoktur (opsiyonel); yazılmazsa XSLT satırı 0,00 basar.

7.5 Schematron aritmetik doğrulama YAPMAZ

PayableAmount için tek kural decimalCheck'tir (ondalık format). PayableAmount ile WithholdingTaxTotal arasında hiçbir aritmetik assert yoktur. Tevkifatı düşmemiş bir fatura Schematron'dan geçer. Bu yüzden bu kontrolü portalın kendisi yapmalıdır:

Doğrulama kuralı: WithholdingTaxTotal varsa PayableAmount < TaxInclusiveAmount olmalı ve fark Σ WithholdingTaxTotal/cbc:TaxAmount'a (± yuvarlama) eşit olmalıdır. Eşit bırakan ürün hatalı fatura üretir.


8. Satır Seviyesi İstisna Kodu — Serbest, Ama Bir İstisnası Var

Genel kural: SERBEST (zorunlu değil, yasak değil, doğrulanmıyor).

UBL 2.1 şeması cac:InvoiceLine/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReason(Code) yolunu tanır. Ancak UBL-TR_Main_Schematron.xml'de satır seviyesini denetleyecek iki kural yorum satırı yapılmıştır (bu turda dosyada doğrudan görüldü, satır 222-226 ve 253-255):

<!--<sch:rule context="inv:Invoice/cac:InvoiceLine/cac:TaxTotal/cac:TaxSubtotal">
      <sch:extends rule="TaxExemptionReasonCheck"/>
    </sch:rule>-->
<!--<sch:rule context="inv:Invoice/cac:InvoiceLine/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory">
      <sch:extends rule="TaxExemptionReasonCodeCheck"/>
    </sch:rule>-->

Belge seviyesi karşılıkları (satır 214-216 ve 228-230) aktiftir.

SonuçAçıklama
Kod geçerliliğiSatırda kontrol edilmez — uydurma bir kod bile geçer
KDV=0 olan satırda istisna sebebiSatır düzeyinde aranmaz
Fatura tipi ↔ istisna kodu uyumuSatır düzeyinde hiç denetlenmez
GörüntülemeXSLT satır seviyesini hiç okumaz — XPath daima //n1:Invoice/cac:TaxTotal/cac:TaxSubtotal (Invoice'ın doğrudan çocuğu)

Portal kuralı: istisna kodunu mutlaka belge seviyesine yazın. Satıra da yazmak zararsızdır (bazı ERP'ler bekler) ama tek başına yazmak faturayı "istisna sebebi görünmeyen" hâle getirir.

İSTİSNANIN İSTİSNASI: Yatırım Teşvik — satır seviyesi kod ZORUNLU

inv:Invoice/cac:InvoiceLine bağlamında aktif işleyen iki kural vardır:

KuralKoşulZorunluluk
YatirimTesvikTaxExemptionReasonCode308Check(ProfileID=YATIRIMTESVIK & Tip=ISTISNA) veya (EARSIVFATURA & Tip=YTBISTISNA), harcama tipi (ItemClassificationCode) = 01Satırda 0015 + TaxExemptionReasonCode=308 zorunlu
YatirimTesvikTaxExemptionReasonCode339CheckAynı koşullar, harcama tipi = 02Satırda TaxExemptionReasonCode=339 zorunlu

İlgili diğer satır kuralları: YatirimTesvikItemClassificationCodeIstisnaCheck (harcama tipi yalnız 01/02), …CalculationSequenceNumericCheck (satırda 0015 için CalculationSequenceNumeric = -1 zorunlu), YatirimTesvikItemInstanceCheck (harcama tipi 01 için Item/cbc:ModelName, ItemInstance/cbc:ProductTraceID, ItemInstance/cbc:SerialID zorunlu), YatirimTesvikLineKDVCheck (iade tipleri dışında her satırda 0015 için TaxAmount>0 ve Percent>0).

308 ve 339 kodları genel listede YOKTUR; ayrı bir YatirimTesvikTaxExemptionReasonCodeType = ',308,339,' listesinde tanımlıdır ve yalnız YATIRIMTESVIK profili / YTB* tiplerinde geçerlidir.

Belge seviyesi istisna kuralları (portal validasyonu için tam set)

TaxExemptionReasonCodeCheck (context inv:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory) altı assert içerir: (1) TaxExemptionReason boş olamaz; (2) Reason varsa Code dolu ve geçerli listede olmalı; (3) kod istisnaTaxExemptionReasonCodeType'daysa (555 hariç) tip ISTISNA/IADE/IHRACKAYITLI/SGK/YTBISTISNA/YTBIADE olmalı; (4) kod 801-812 ise tip OZELMATRAH/IADE/SGK; (5) kod 701-704 ise tip IHRACKAYITLI/IADE/SGK; (6) IHRACKAYITLI + 702 ise her satırda 12 haneli RequiredCustomsID (GTİP) ve 11 haneli ALICIDIBSATIRKOD.

TaxExemptionReasonCheck (context inv:Invoice/cac:TaxTotal/cac:TaxSubtotal): TaxAmount=0 olan 0015 için TaxExemptionReason zorunlu — ancak tip IADE, YTBIADE, IHRACKAYITLI, OZELMATRAH, SGK veya KONAKLAMAVERGISI ise muaf.

Geçerli kod kümeleri (UBL-TR_Codelist.xml, birebir okundu): ozelMatrahTaxExemptionReasonCodeType = ',801…812,' · ihracExemptionReasonCodeType = ',701,702,703,704,' · YatirimTesvikTaxExemptionReasonCodeType = ',308,339,'. Genel TaxExemptionReasonCodeType 001, 101-108, 151, 201-250 aralığı, 301-351 aralığı, 501, 555, 701-704 ve 801-812'yi içerir. Dikkat: 555 ve 351, istisnaTaxExemptionReasonCodeType listesinde YOKTUR — yani bu ikisi için fatura tipi kısıtı (3 numaralı assert) işlemez.


9. e-Arşiv Raporu Tevkifat Kodu ↔ 601-627 Eşleşmesi

e-Arşiv Teknik Kılavuzu V.1.18 (Ağustos 2025), tevkifat elemanını üç yerde tanımlar (e-Arşiv Fatura §3.3.2.15.3, e-Müstahsil Makbuzu §3.3.4.10.3, e-SMM §3.3.6.12.3); üçünde de metin aynıdır.

AlanKural
tevkifatSeçimli (0..n)
tevkifatKoduZorunlu. XSD: xs:string, pattern \d\d\d — tam 3 hane, başka kısıt yok
tevkifatTutariZorunlu. xs:decimal, totalDigits 18, fractionDigits 2
tevkifatOraniZorunlu. xs:decimal, totalDigits 5, fractionDigits 3, min 0, max 100 → yüzde olarak (50, 5/10 değil)

Kritik cümle (kılavuz, birebir): "Tevkifat kodu alanına İnternet Vergi Dairesi Beyanname Düzenleme Programında yayınlanan kodlardan ilgili olan yazılmalıdır." — yani UBL-TR kod listesi değil, BDP (beyanname) kod listesi işaret edilir. Kılavuzun örneği <earsiv:tevkifatKodu>410</earsiv:tevkifatKodu> / tevkifatOrani 20'dir. earsiv_schematron.xsl içinde tevkifat/tevkifatKodu ile ilgili hiçbir kural yoktur — GİB rapor tarafında kodu doğrulamıyor, 3 hane olması yeterli.

410'un ne olduğu çözüldü: 1 No.lu KDV Beyannamesi "Diğer İade Hakkı Doğuran İşlemler" (Tablo-14) işlem kodu: "410 | 9/1 | Yapım İşleri İle Bu İşlerle Birlikte İfa Edilen Mühendislik-Mimarlık Ve Etüt-Proje Hizmetlerinde Tevkifata Tabi Tutulan KDV [KDVGUT-(I/C-2.1.3.2.1)]" — yani UBL 601 ile aynı işlem.

KDVGUT bölüm referansı üzerinden kurulan çaprazlama: [TEK KAYNAK — TÜRMOB işlem kodları derlemesi; GİB'den birincil teyit alınamadı]

UBLBDP 4xxUBLBDP 4xxUBLBDP 4xx
601410609423617430
602416610431618418
603414611433619419
604415612411620409
605432613412621437
606421614434622428
607413615435623438
608420616436624/625/626/627DOĞRULANAMADI

2 No.lu KDV beyannamesinde aynı işlemler 2xx kodlarla anılır (ör. 218 = UBL 618, 227 = UBL 627). [TEK KAYNAK]

Portal kararı: GİB'in bağlayıcı bir açıklaması bulunamadığı için (bkz. Açık Kalanlar), en güvenli yol entegratörünüze/GİB test ortamına sormaktır. Kılavuz metni ve örnek BDP kodunu (410) işaret ediyor; sektörde her iki uygulama da görülüyor. Portalın veri modelinde UBL kodunu saklayıp rapora yazarken eşleme tablosundan geçirmek, sonradan tercih değiştirmeyi mümkün kılar.


10. Sicil/Faaliyet Kodu KDV Oran Kontrolü ve 555 Kodunun Bugünkü Durumu

10.1 Planlanan kontrol (16.03.2026 duyurusu, 1 Nisan 2026 için)

Özel Entegratör sistemleri üzerinden düzenlenen tüm e-belgelerde GİB sicil servisleri sorgulanarak: (1) NACE faaliyet kodu ↔ KDV oranı uyumu — mükellefin kayıtlı faaliyet koduna karşılık gelen oran dışında bir oranla belge düzenlenmesi engellenecekti; (2) unvan/ad-soyad/vergi dairesi bilgilerinin sicille karşılaştırılması; (3) alıcı VKN/TCKN algoritma doğrulaması ve alıcının sicil/faaliyet durumu. Birden fazla sektörde faaliyet gösterenlerin, brüt satış hasılatına göre sıralı yan faaliyet kodlarını da sicile tanımlatması gerekiyordu. [TEK KAYNAK — 16.03.2026 duyurusunun birebir metni elde edilemedi; ikincil aynalardan derlendi.]

10.2 555 kodu

Kod Listeleri'ne yeni bir liste başlığı olarak eklendi (v1.42, 12.03.2026) ve V1.43'te (27.07.2026) hâlâ durmaktadır — birebir:

DİĞER İŞLEM TÜRÜ KODLARI LİSTESİ555 KDV Oran Kontrolüne Tabi Olmayan Satışlar

"Faaliyet ve sicil servislerinde faaliyet koduna uygun KDV oranı bulunmayan satışlarda (yansıtma, mükellefin aktifine kayıtlı demirbaş/taşıt satışı gibi) kullanılacaktır."

cbc:TaxExemptionReasonCode alanına yazılır. 555 bir istisna kodu değildir; oran kontrolünden muafiyet işaretidir.

10.3 DemirbasKDVTaxExemptionCheck — hâlâ aktif, iki assert

Kural History.txt'ye göre 20260312 kaydıyla eklendi ("4) DemirbasKDVTaxExemptionCheck eklendi.") ve Main Schematron'da inv:Invoice/cac:TaxTotal bağlamında çağrılır.

Assertİçerik
1 — Senaryo/tip kısıtı555 ANCAK ProfileID ∈ {TEMELFATURA, TICARIFATURA, EARSIVFATURA} ve InvoiceTypeCode ∉ {ISTISNA, IHRACKAYITLI} ve (EARSIVFATURA'da tip YTB ile başlamıyor) iken kullanılabilir. IHRACAT, KAMU, HKS, ENERJI, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS, OZELFATURA, YOLCUBERABERFATURA senaryolarında kullanılamaz.
2 — KDV sıfır olamaz555 varsa, hem belge seviyesi cac:TaxSubtotal hem ../cac:InvoiceLine/cac:TaxTotal/cac:TaxSubtotal içinde 0015 kodlu hiçbir satırın Percent veya TaxAmount değeri 0 olamaz. Hata: "Vergi istisna muafiyet kodu 555 olduğu durumda KDV 0 geçilemez."

İkinci assert, satır seviyesi KDV oranını okuyan ender kurallardan biridir — §8'deki "satır seviyesi denetlenmez" genel kuralının bir başka istisnasıdır.

10.4 27.03.2026 ertelemesi ve çelişki

GİB'in 27/3/2026 tarihli duyurusu (yerel korpusta tam metin mevcut) kontrolü süresiz erteledi: "…sicil ve faaliyet kodu karşılığı KDV oran kontrolleri, … Başkanlığımız tarafından yapılacak ikinci bir duyuruya kadar ertelenmiştir. Bu kapsamda e-Fatura Paketi, UBL-TR (Kod Listeleri) Kılavuzu ve UBL-TR 1.2.1 Paketi güncellemeleri için yapılan 16/3/2026 tarihli duyurumuz için işlem yapılmayacaktır."

AÇIK ÇELİŞKİ: Duyuru "işlem yapılmayacaktır" derken, ertelemeden sonra yayımlanan V1.43 (27.07.2026) kod listesi 555'i hâlâ içeriyor, DemirbasKDVTaxExemptionCheck elimizdeki pakette hâlâ aktif ve 555 TaxExemptionReasonCodeType listesinde hâlâ var. En tutarlı okuma: ertelenen şey sunucu tarafındaki sicil/faaliyet sorgulamasıdır; 555 kodu ve ona bağlı Schematron kuralları pakette kalmıştır. GİB bu ikiliği netleştirmemiştir.

Portal kuralı: 555'i kod listenizde tutun ve DemirbasKDVTaxExemptionCheck'e uyun (yanlış senaryoda kullanır veya 555 ile KDV 0 geçerseniz Schematron reddeder), ama 555 etrafında zorunlu bir iş akışı kurmayın — sunucu tarafı oran kontrolü henüz devrede değildir.


Açık Kalanlar

Aşağıdakiler bu araştırmada kapatılamayan noktalardır. Portalın bu alanlarda varsayım yapmadan, entegratör/GİB teyidi ile ilerlemesi gerekir.

KDV oranları

  1. 7346 s. Kararın RG birebir madde metni okunamadı — RG PDF'inin gövdesi taranmış görüntüdür, pdftotext yalnızca künye bloğunu (tarih, sayı, karar no, imza) verdi. MADDE 1/2/3 metinleri TÜRMOB sirkülerinden alındı. Kesin lafız gerekiyorsa PDF'in OCR'lanması gerekir.
  2. 2007/13033'ün konsolide metnine erişilemedi (mevzuat.gov.tr anti-bot sayfası döndürüyor). Sonuç: (a) Kararı değiştiren TÜM CB/BK Kararlarının numaralı-tarihli tam listesi çıkarılamadı — yalnız 5189 (13/02/2022), 5359 (29/03/2022), 7346 (07/07/2023), 9126 (14/11/2024) teyit edildi; (b) (I) ve (II) sayılı listelerin madde madde içeriği (hangi mal %1, hangisi %10) çıkarılmadı. Portalın ürün bazlı KDV oranı tablosu için ayrı bir tur gerekir.

Tevkifat

  1. KDVGUT'un GİB'deki güncel konsolide tam metnine erişilemedi (gib.gov.tr Next.js SPA iskeleti döndürüyor). I/C-2.1.3 oranları GİB'in resmî özet PDF'i + değişiklik tebliğlerinin RG metinleri üzerinden rekonstrükte edildi.
  2. 601'in 1/3/2021 öncesi oranının 3/10 olduğu doğrudan doğrulanamadı (35 SN öncesi KDVGUT metni okunamadı). Kanıt dolaylı ama üç yönlü: Schematron 60130 çiftini kabul ediyor; 35 SN md.10 KÖİ tablosundaki '3/10' ibarelerini '4/10' yapıyor; ikincil sirkülerler 3/10→4/10 diyor.
  3. 612/613 ayrımı: her ikisi de I/C-2.1.3.2.10'a bağlıdır ve 35 SN md.6 bu bölümdeki tek '7/10' ibaresini '9/10' yapmıştır. 613'ün eski oranı Schematron'daki 61370 çiftiyle doğrulandı; ancak GİB'in bu iki kodu ne zaman ayırdığına dair belge bulunamadı.
  4. 36-40, 42, 44-45, 47-51, 53-54 Seri No.lu KDVGUT tebliğleri tek tek taranmadı. Tevkifat oranlarına etkisiz oldukları varsayımı, Schematron'un yalnızca 7 kodda çift değer taşımasına dayanır — dolaylı ama güçlü.
  5. KDVGUT I/C-2.1.3.2.14 (KÖİ sağlık tesisleri) için ayrı bir UBL tevkifat kodu bulunamadı; GİB oran tablosuna göre işlem türüne göre 4/10, 5/10, 9/10 veya tevkifatsız beyan ediliyor (yani mevcut 601-627 kodlarıyla). e-Fatura tarafındaki resmî karşılık doğrulanamadı.
  6. 2026 tevkifat alt sınırı (12.000 TL) yalnız ikincil kaynaklardan; 588 SN VUK GT'nin birebir metni doğrulanmadı.
  7. Korpusta sayısal değerler içeren bir GİB örnek TEVKIFAT.xml faturası yoktur. xsd/ klasöründeki örnekler e-Gider Pusulası, e-Döviz, Kıymetli Maden ve e-Sigorta belgeleridir. Tevkifat aritmetiği KDVGUT örneği + XSLT etiketleri üzerinden doğrulandı (birbirlerini teyit ediyorlar) ama uçtan uca bir GİB örneğiyle karşılaştırılamadı.
  8. Kullanılan KDVGUT PDF'i eski konsolide sürümdür (%18 KDV, 1.000 TL alt sınır). I/C-2.1.3.4.2'nin 2026'da yürürlükteki hâlinin birebir metni GİB kaynağından doğrulanamadı; altı alanlı yapı ve "tevkifattan sonra kalan tutar yazılır" hükmü değişmemiş görünüyor ancak örnekteki oran/tutarlar güncel değildir.

ÖTV ve konaklama vergisi

  1. ÖTV oranları hiç çıkarılmadı (4760 s. Kanuna ekli I-IV sayılı listelerdeki maktu/nispi tutarlar). Portal ÖTV hesaplaması yapacaksa ayrı bir tur gerekir.
  2. 11263 s. Kararın RG birebir metnine (RG 1/5/2026, S.33240) doğrudan erişilmedi; GİB Konaklama Vergisi Rehberi 2026 üzerinden doğrulandı.
  3. 1/1/2027'den itibaren konaklama vergisi oranı bilinmiyor. 11263 s. Karar 31/12/2026'da sona eriyor; yeni Karar çıkmazsa %2'ye döner — bu bir tahmindir, portalda parametrik bırakın.
  4. Öğrenci yurdu istisnasının e-belge kodu yok. 6802/34 (a) bendindeki istisna için UBL-TR'de tanımlı kod bulunamadı; nasıl kodlanacağı korpustan ve webden tespit edilemedi.
  5. 0059'un V1.43'ün basılı tablosundan neden çıktığı (bilinçli kaldırma mı, dizgi hatası mı) tespit edilemedi — revizyon tablosunda buna dair not yok.
  6. Konaklama vergisinin e-belgede gösterimine ilişkin GİB duyurusunun birebir metni bulunamadı; SATIS/ISTISNA/KONAKLAMAVERGISI üçlüsü ikincil kaynaklardan. KONAKLAMAVERGISI tipi için ayrı bir GİB teknik kılavuzu yoktur.
  7. KONAKLAMAVERGISI tipinin hangi senaryoda kullanılacağı (TEMELFATURA/TICARIFATURA mı, yalnız EARSIVFATURA mı) Schematron'la sınırlandırılmamıştır; her ikisi de teknik olarak geçerli görünüyor, GİB tercihi doğrulanamadı.

Kodlar ve doğrulama

  1. 9015'in adı ve resmî anlamı hiçbir GİB kod listesinde yoktur (yerel korpustaki tüm kılavuzlarda 0 eşleşme). Yalnız Schematron'da geçerli TaxType olarak ve XSLT'de "Tevkifata Tabi İşlem Üzerinden Hes. KDV" hesabında kullanılıyor. Ne olduğu doğrulanamadı; §6'daki yorum XSLT davranışından geri türetilmiştir.
  2. e-Arşiv raporunda tevkifatKodu için UBL 601-627 mi BDP 4xx mi yazılacağına dair GİB'in açık/bağlayıcı açıklaması bulunamadı. Kılavuz "BDP'de yayınlanan kodlar" der ve örnekte 410 kullanır; XSD sadece 3 hane dayatır; earsiv_schematron.xsl hiçbir kontrol yapmaz. GİB e-Fatura Forumu konusu #24463 tam bu soruyu tartışıyor ancak forum HTTP 503 döndürdüğü için GİB yanıtına ulaşılamadı. Sektörde her iki uygulama da mevcut.
  3. UBL 624, 625, 626, 627'nin BDP 4xx karşılıkları doğrulanamadı. Elimizdeki TÜRMOB işlem kodları listesi 2021 öncesi sürümdür ve 439/440/441/450 ile biter.
  4. 16.03.2026 duyurusunun birebir resmî metni elde edilemedi (ebelge.gib.gov.tr JS ile render ediliyor; PwC sayfası HTTP 403). Kontrollerin tam listesi ve 555'in tam kullanım talimatı ikincil aynalardan derlendi.
  5. Elimizdeki Schematron/Codelist dosyalarının 24.08.2026 tarihli güncel e-Fatura paketine ait olup olmadığı doğrulanamadı. History.txt'nin son kaydı 20260701'dir. 24.08.2026 paketinde DemirbasKDVTaxExemptionCheck'in veya 555'in kaldırılıp kaldırılmadığı teyit edilemedi (V1.43 kod listesi 27.07.2026 tarihli ve 555'i hâlâ içeriyor).
  6. 27.03.2026 ertelemesinden sonra 555'in fiilen kullanılıp kullanılamayacağı GİB tarafından netleştirilmemiştir — kod listede ve kural pakette duruyor, ama duyuru "işlem yapılmayacaktır" diyor.

BÖLÜM 8 — Görüntüleme Katmanı (XSLT)

Görüntüleme Katmanı: XSLT Şablonları

Bu bölümdeki tüm sayımlar, C:/Users/ADMINI~1/AppData/Local/Temp/claude/C--Users-Administrator-Desktop/b13f77d1-3086-40c5-a1fb-33ad8c079f48/scratchpad/gib/txt/xslt/ altındaki 13 dosya üzerinde bu turda yeniden grep'lenerek doğrulanmıştır. Önceki turun iki bulgusu doğrulama sırasında çürütülmüş/düzeltilmiştir (5.6 ve 4.3 maddeleri) — açıkça işaretlendi.

1. Envanter: üç ayrı ticari set, tek bir GİB seti yok

En kritik tespit: "GİB varsayılan" diye adlandırdığınız üçlü set (arsiv.xslt, efatura.xslt, irsaliye.xslt) GİB'in yayınladığı şablon değildir. arsiv.xslt ve IBANLI_e_arsiv_ibanlı.xslt dosyalarının ilk satırında telif notu vardır:

<?xml version="1.0" encoding="UTF-8"?><!-- ©2026 Foriba --><xsl:stylesheet version="2.0" ...

Foriba, bugünkü adıyla Sovos'tur. Karekod üretiminin qr.sovostr.com adresine gitmesi (13 dosyada 6 kez, aşağıda) bunu ikinci kez doğrular. Yani elinizdeki 13 şablonun hiçbiri GİB'in referans general.xslt dosyası değildir; üçü de rakip/üçüncü taraf ürünüdür ve hukuki-ticari olarak "GİB varsayılanı" muamelesi göremez.

DosyaBaytSatırSetBelge tipiKök NSBenzersiz TR etiket
arsiv.xslt201.4474012Foriba/Sovose-Arşiv + e-Fatura birleşikInvoice-2176
efatura.xslt125.101172Foriba/Sovose-FaturaInvoice-2107
irsaliye.xslt58.1351 (tek satır)Foriba/Sovose-İrsaliyeDespatchAdvice-2
IBANLI_e_arsiv_ibanlı.xslt190.0233990IBANLI (eski Foriba rev.)e-Arşiv+e-FaturaInvoice-2172
IBANLI_e_fatura_ibanlı.xslt118.493186IBANLIe-FaturaInvoice-2
IBANLI_irsaliye_ibanlı.xslt58.86413IBANLIe-İrsaliyeDespatchAdvice-2
EFATURA_20260812_134006Z.xslt263.4772562EDMe-FaturaInvoice-298
EFATURA_OZELM_20260812_134009Z.xslt263.5022559EDMe-Fatura (bkz. 5.4)Invoice-298
EARSIV_20260812_134006Z.xslt260.7392428EDMe-ArşivInvoice-294
EARSIV_OZELM_20260812_134008Z.xslt260.7462425EDMe-Arşiv (bkz. 5.4)Invoice-294
EIHRACAT_20260812_134007Z.xslt270.0362743EDMe-İhracatInvoice-298
EIRSALIYE_20260812_134007Z.xslt193.9111419EDMe-İrsaliyeDespatchAdvice-2
ESMM_20260812_134008Z.xslt242.4302126EDMe-SMMInvoice-255

Toplam 24.635 satır, ~2,5 MB.

Boyut ≠ kapsam. EDM dosyaları en büyükleridir ama bu içerikten değil, her dosyaya gömülü ~230 KB'lik base64 JPEG banner + minified qrcode.js kütüphanesinden gelir. Etiket sayısı, ProfileID dallanma sayısı ve InvoiceTypeCode dallanma sayısı — üç ölçütte de EDM seti Foriba setinden dardır.

Ölçütarsiv.xsltEDM EFATURA_2026
Desteklenen ProfileID sayısı6 (33 dallanma)1 (3 dallanma)
Özel işlenen InvoiceTypeCode sayısı81 (yalnız OZELMATRAH)
TaxExemptionReasonCode referansı92
WithholdingTaxTotal referansı148
CalculationSequenceNumeric farkındalığı40

IBANLI seti "aynı dosya + IBAN tablosu" DEĞİLDİR — daha eski bir revizyondur. Doğrulama: IBANLI_e_arsiv_ibanlı.xslt içinde Yalnız ayrımı yok (//n1:Invoice/cbc:Note koşulsuz for-each), DAHİLDİR (özel matrah gösterimi) hiç yok. arsiv.xslt her ikisine de sahip. Yani IBANLI kopyası fonksiyon kaybetmiş bir sürümdür.

2. Kapsama matrisi: 13 şablon × 20 InvoiceTypeCode

Referans, UBL-TR_Codelist.xml satır 10'daki tam liste (20 değer, birebir):

SATIS, IADE, TEVKIFAT, TEVKIFATIADE, ISTISNA, OZELMATRAH, IHRACKAYITLI, SGK,
KOMISYONCU, HKSSATIS, HKSKOMISYONCU, KONAKLAMAVERGISI, SARJ, SARJANLIK,
TEKNOLOJIDESTEK, YTBSATIS, YTBIADE, YTBISTISNA, YTBTEVKIFAT, YTBTEVKIFATIADE

Aşağıdaki tablo "şablonda o tip için özel dallanma (InvoiceTypeCode='XXX' üzerinde xsl:if/xsl:when) var mı" sorusunu yanıtlar; parantez içindeki sayı dallanma adedidir. Tüm şablonlar tip kodunu "Fatura Tipi:" satırında ham kod olarak basar — hiçbirinde Türkçe karşılık çevirisi yoktur. Yani ✗ olan tiplerde belge yine basılır, ama tipe özgü alanlar/sütunlar ekranda görünmez.

#InvoiceTypeCodearsivIB-arşefatIB-efatEDM EFATEDM EARŞEDM EIHREDM *_OZELMEDM ESMMirsaliye ×3
1SATIS✓(3)✓(3)N/A
2IADEN/A
3TEVKIFAT✗*✗*✗*✗*✗*✗*✗*✗*✗*N/A
4TEVKIFATIADE✓(6)✓(6)N/A
5ISTISNA✓(3)✓(3)N/A
6OZELMATRAH✓(5)✓(4)✓(5)✓(4)✓(4)✓(4)✓(4)YORUMLU✓(1)N/A
7IHRACKAYITLI✓(4)✓(4)N/A
8SGK✓(1)✓(1)~VKN~VKN~VKN~VKNN/A
9KOMISYONCU✓(2)✓(2)N/A
10HKSSATIS✓(6)✓(6)N/A
11HKSKOMISYONCU✓(5)✓(5)N/A
12KONAKLAMAVERGISIN/A
13SARJN/A
14SARJANLIKN/A
15TEKNOLOJIDESTEKN/A
16YTBSATISN/A
17YTBIADEN/A
18YTBISTISNAN/A
19YTBTEVKIFATN/A
20YTBTEVKIFATIADEN/A

13 şablonun HİÇBİRİNDE olmayan 9 tip: KONAKLAMAVERGISI, SARJ, SARJANLIK, TEKNOLOJIDESTEK, YTBSATIS, YTBIADE, YTBISTISNA, YTBTEVKIFAT, YTBTEVKIFATIADE. (Bu 9 kod 13 dosyada tek bir kez bile geçmiyor — doğrulandı.)

Yalnızca arsiv.xslt / IBANLI_e_arsiv'de olan 8 tip: SATIS, TEVKIFATIADE, ISTISNA, IHRACKAYITLI, SGK, KOMISYONCU, HKSSATIS, HKSKOMISYONCU. Bu, arsiv.xslt'yi temel almanın tek gerekçesidir.

Açıklamalar:

  • * TEVKIFAT: tipe özel dallanma hiçbirinde yok, ama 10 fatura şablonu cac:WithholdingTaxTotal varlığında tevkifat bloklarını zaten çizdiği için işlevsel olarak çalışır. Gerçek bir eksik değil.
  • IADE: 10 dosyadaki "IADE" eşleşmeleri cac:BillingReference/.../cbc:DocumentTypeCode[text()='İADE' or text()='IADE'] içindir (iade faturasının atıf verdiği belge). Farklı bir alan; InvoiceTypeCode='IADE' dallanması sıfırdır.
  • ~VKN SGK: EDM seti tip koduna değil, SGK'nın VKN'sine sabit kodlanmıştır (5.3).
  • YORUMLU: _OZELM varyantlarında OZELMATRAH dallanmaları <!-- --> içine alınmıştır (5.4).

3. Senaryo (ProfileID) kapsaması

UBL-TR_Codelist.xml'deki ProfileIDTypeGoruntuleme listesi 12 değerdir: TICARIFATURA, TEMELFATURA, YOLCUBERABERFATURA, IHRACAT, EARSIVFATURA, OZELFATURA, KAMU, HKS, ENERJI, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS

ŞablonTanınan ProfileID (dallanma sayısı)Toplam
arsiv.xslt, IBANLI_e_arsivEARSIVFATURA(12), HKS(8), IHRACAT(3), OZELFATURA(3), YATIRIMTESVIK(3+1), STDKODFATURA(3)6
efatura.xslt, IBANLI_e_fatura, EDM EFATURA/EARSIV/EIHRACAT/_OZELMIHRACAT(3)1
EDM ESMMIHRACAT(1)1
irsaliye.xslt, IBANLI_irsaliye, EDM EIRSALIYE0

Hiçbir şablonda özel gösterim olmayan senaryolar: TICARIFATURA, TEMELFATURA, YOLCUBERABERFATURA, KAMU, ENERJI, ILAC_TIBBICIHAZ, IDIS.

Ek bulgu (bu turda tespit edildi): arsiv.xslt STDKODFATURA senaryosuna 3 kez dallanıyor, ancak bu değer UBL-TR_Codelist.xml'de yoktur (arama: 0 sonuç). Kaldırılmış/eski bir senaryodur; ölü koddur, temizlenmelidir.

4. Eksik alan denetimi

4.1 Vazgeçilen KDV Tutarı — 13 şablonun HİÇBİRİNDE gösterilmiyor

grep -i "vazge" → 13 dosyada 0 sonuç. Doğrulandı.

Mekanizma: Vazgeçilen KDV, TaxTotal/TaxSubtotal/cbc:TaxAmount içine yazılır ve aynı TaxSubtotal'a cbc:CalculationSequenceNumeric = -1 konur.

"TaxTotal/ TaxSubtotal / CalculationSequenceNumeric elemanına, yazılan KDV tutarının (Vazgeçilen KDV Tutarı) fatura tutarların hesaplamasında dikkate alınmayacağını belirtir, "-1" değeri yazılacaktır. Bu alan sadece xml üzerinden gösterilecektir."

Yatırım Teşvik ... Fatura Teknik Kılavuzu V1.2, satır 236-243

ŞablonCalculationSequenceNumeric sayımıSonuç
arsiv.xslt, IBANLI_e_arsiv4 (satır 1636, 1963, 2717, 2734)Vazgeçilen KDV satırını toplamlardan dışlar (doğru), ama etiketiyle hiç yazdırmaz
efatura.xslt, IBANLI_e_fatura0Vazgeçilen KDV'yi normal "Hesaplanan KDV(%20)" gibi YANLIŞ basar
Tüm EDM seti (7 dosya)0Aynı yanlış

Yani YTB istisna faturalarında EDM seti ve efatura.xslt görünen KDV toplamını şişirir — XML'deki gerçek toplamla çelişir ve "farklılık olması durumunda XML esas alınır" hükmünü tetikleyen bir uyumsuzluk doğurur.

4.2 Karekod / QR — iki yöntem, ikisi de portala uygun değil

Yöntem A — Foriba/Sovos seti (6 dosya: arsiv, efatura, irsaliye, IBANLI ×3): $QRSOVOS değişkeni https://qr.sovostr.com/qr?data={...JSON...} URL'i kurar, karekod <img src="{$QRSOVOS}"> ile dış bir HTTP servisinden çekilir. 6 dosyada sovostr.com geçişi doğrulandı (1'er kez).

  • Gizlilik ihlali: fatura her açıldığında satıcı VKN, alıcı VKN/TCKN, fatura no, ETTN, tüm KDV matrahları ve ödenecek tutar query string içinde bir rakip özel entegratörün sunucusuna gider. Portalınızın KVKK/veri işleme envanterinde bunun karşılığı yoktur.
  • Dayanıklılık: servis kapanınca veya arşivden 10 yıl sonra açılınca karekod boş çıkar. Çevrimdışı PDF üretiminde (Saxon+FOP, wkhtmltopdf) hiç oluşmaz.
  • İyi tarafı: JSON içeriği GİB Karekod Standardı V1.2 ile tam uyumludur (13 alan: vkntckn, avkntckn, senaryo, tip, tarih, no, ettn, parabirimi, malhizmettoplam, kdvmatrah(N), hesaplanankdv(N), vergidahil, odenecek) ve yüzde format-number(cbc:Percent,'#','european') ile tamsayıya yuvarlanmıştır — standarttaki kdvmatrah(8) biçimine uyar.

Yöntem B — EDM seti (7 dosya): karekod, dosyaya gömülü minified qrcode.js ile tarayıcıda JavaScript ile üretilir (<div id="qrcode"/> + new QRCode(...), correctLevel: L, 140×140 px). Dış bağlantı yok — ama JS çalıştırmayan hiçbir görüntüleyicide (GİB e-Fatura Görüntüleyici, XSL-FO/PDF hattı, e-posta istemcisi, kâğıt baskı) karekod çıkmaz. Bu, 509 Sıra No'lu VUK GT'nin "görüntülemeye ve kâğıt baskı almaya imkân veren" format şartıyla çelişir.

Üstelik EDM'nin ürettiği JSON GEÇERSİZDİR. Doğrulandı (EFATURA_2026 satır 256):

"odenecek":"<xsl:value-of select="n1:Invoice/cac:LegalMonetaryTotal/cbc:PayableAmount"/>",}
DosyaHata
EFATURA_2026, EFATURA_OZELM, EARSIV_2026, EARSIV_OZELM, EIHRACAT_2026,} — sondaki fazla virgül
ESMM_2026kapanış } hiç yok + "kdvtutari":180.00" (açılış tırnağı eksik)
EIRSALIYE_2026kapanış } hiç yok

Ek EDM karekod hataları:

  • "vergidahil" alanı yok (grep → 0). GİB standardında zorunlu 13 alandan biri.
  • "ETTN" büyük harf (satır 249); standart "ettn" der. Foriba seti doğru yazıyor.
  • "hesaplanankdv(<xsl:value-of select="cbc:Percent"/>)" — Percent ham basılıyor; XML'de 20.0 varsa anahtar hesaplanankdv(20.0) olur, standarttaki hesaplanankdv(8) biçimine uymaz.
  • Alan sırası ters: hesaplanankdv önce, kdvmatrah sonra; standart sıra kdvmatrah()hesaplanankdv().
  • ESMM "tahsilat" yanlış alandan besleniyor (satır 271): n1:Invoice/cac:InvoiceLine/cac:Price/cbc:PriceAmount — bu satır birim fiyatıdır, "tahsil edilen toplam" değildir. Çok satırlı makbuzda ilk satırın birim fiyatını basar.

e-İrsaliye karekodunda (Kılavuz 2.3, 11 zorunlu alan: vkntckn, avkntckn, senaryo, tip, tarih, no, ettn, sevktarihi, sevkzamani, tasiyicivkn, plaka) her iki yöntem de 11 alanı yazıyor — kapsam olarak tamam.

4.3 Tevkifat bloğu — 10 fatura şablonunun hepsinde VAR

DosyaWithholdingTaxTotal"Tevkifat" etiketi
arsiv.xslt / IBANLI_e_arsiv1416
efatura.xslt / IBANLI_e_fatura88
EDM EFATURA / EFATURA_OZELM / EARSIV / EARSIV_OZELM / EIHRACAT88
EDM ESMM43
irsaliye ×300 (doğru — irsaliyede vergi yok)

Basılan satırlar: Hesaplanan KDV Tevkifat(%N), Tevkifata Tabi İşlem Tutarı, Tevkifata Tabi İşlem Üzerinden Hes. KDV (TL) (sonuncusu yalnız Foriba arşiv setinde). Matrah TaxTypeCode=9015 üzerinden hesaplanıyor.

Eksik: TEVKIFATIADE'ye özgü Tevkifatsız KDV Tutarı, İade Edilen Mal Oranı, İadeye Konu İşlem Bedeli, İadeye Konu İşlem Bedeli Tutarı sütunları yalnız arsiv.xslt / IBANLI_e_arsiv'de var. efatura.xslt ve tüm EDM seti bir TEVKIFATIADE faturasını düz fatura gibi basar.

4.4 555 kodu — özel işlem yok, ama generic geçişle görünür

555 = KDV Oran Kontrolüne Tabi Olmayan Satışlar; bu bir TaxExemptionReasonCode değeridir, InvoiceTypeCode değil (UBL-TR_Kod_Listeleri_V1.43 satır 532). 13 dosyada geçen "555" dizgilerinin tamamı gömülü base64 resim verisi içindedir — özel dallanma yoktur.

Ancak bu bir eksiklik değildir: tüm fatura şablonları istisna kodunu ve metnini generic basar. TaxExemptionReasonCode sayımı: arsiv/IBANLI_e_arsiv 9, diğer tüm fatura şablonları 2, irsaliye 0. Dolayısıyla 555 ekranda görünür. 555'in kullanımı 27.03.2026 duyurusuyla süresiz ertelenmiştir; Common Schematron'da kural hâlâ durmaktadır (satır 320, 514).

4.5 İDİS SEVKIYATNO / ETIKETNO — 13 şablonun hiçbirinde yok

grep -c "SEVKIYATNO" → 0; "ETIKETNO" → 0; "IDIS" → 0. Üçü de doğrulandı.

AlanXPathFormat
Sevkiyat Nocac:PartyIdentification/cbc:ID[@schemeID='SEVKIYATNO']SE-0000000 veya ES-0000000, 10 karakter
Etiket Nocac:Item/cac:AdditionalItemIdentification/cbc:ID[@schemeID='ETIKETNO']2 harf + 7 rakam, 9 karakter

Bunlar UBL-TR_Common_Schematron.xml'de IdisSevkiyatNoCheck (satır 443-445), IdisEtiketNoCheck (504-506) ve irsaliye karşılıklarıyla zorunlu hale getirilmiştir. Yani XML geçerli olacak ama şablon zorunlu bilgileri ekranda göstermeyecektir — Portal Kılavuzu v1.5 madde 4'teki "tüm bilgilerin gösterimine imkân verecek nitelikte" şartının doğrudan ihlali. İDİS senaryosunda geçerli tipler: SATIS, ISTISNA, IADE, TEVKIFAT, TEVKIFATIADE, IHRACKAYITLI.

4.6 SARJ / SARJANLIK — 14.09.2026 şematron zorunluluklarını karşılamıyor

EnerjiInvoicePeriodCheck ve EnerjiESURaporIDCheck (Common Schematron satır 381-390) şunları zorunlu kılar: SARJ/SARJANLIK'ta cac:InvoicePeriod içinde StartDate, StartTime, EndDate, EndTime dördü de dolu olmalı; SARJ'da ayrıca cbc:ID[@schemeID='ESURaporID'] (UUID) + geçerli cbc:IssueDate.

Şablon durumu (doğrulandı):

Alan13 dosyadaki toplam geçiş
cac:InvoicePeriod24 (arsiv, IBANLI_e_arsiv, EDM EFATURA/EIHRACAT/ESMM — yalnızca StartDate+EndDate)
StartTime10 (yalnız irsaliye tarafında "sevk zamanı" için)
EndTime0
ESURaporID0

efatura.xslt, IBANLI_e_fatura ve EDM EARSIV dosyalarında InvoicePeriod hiç yoktur — şarj faturasında dönem bilgisi bile basılmaz.

4.7 İlaç/Tıbbi Cihaz künye ve KAMU ek alanları

KUNYENO → 13 dosyada 2 geçiş (yalnız arsiv.xslt/IBANLI_e_arsiv, HKS bağlamında Künye Numarası etiketi). ILAC → 0, TIBBICIHAZ → 0. Yani ILAC_TIBBICIHAZ senaryosunun AdditionalItemIdentification künye alanları hiçbir şablonda gösterilmiyor. KAMU senaryosu için de dallanma yok (bkz. bölüm 3).

Yolcu Beraber Eşya: PASAPORT, pasaportno, aracikurumvkn → 13 dosyada 0. Karekod Kılavuzu 2.1.1'deki YBE karekod alanları hiçbir şablonda üretilmiyor.

4.8 Not / serbest metin alanları

AlanarsivIB-arşefaturaIB-efatEDM faturaESMMirsaliye
cbc:Note ("Not:")
PaymentMeans/cbc:InstructionNote
PaymentTerms/cbc:Note
PayeeFinancialAccount/cbc:PaymentNote
TaxExemptionReason
"Yalnız..." (yazıyla tutar) ayrımı✓ (2)✗ (0)✓ (2)✗ (0)✗ (0)

DÜZELTME (önceki tur bulgusu revize edildi): Ham bulgu dosyası IBANLI_e_arsiv'i "Yalnız ayrımı var" diye işaretlemişti. Kendi doğrulamamda IBANLI_e_arsiv_ibanlı.xslt ve IBANLI_e_fatura_ibanlı.xslt içinde Yalnız dizgisi 0 kez geçiyor ve for-each koşulsuz: select="//n1:Invoice/cbc:Note". Ayrım yalnızca arsiv.xslt ve efatura.xslt'de vardır (select="//n1:Invoice/cbc:Note[not(starts-with(normalize-space(.),'Yalnız'))]").

Ayrım yapmayan şablonlarda "Yalnız yüzelli TL..." notu sıradan bir "Not:" satırı olarak basılır, toplam kutusunun yanındaki özel yerinde görünmez.

5. Statik kod analizinde bulunan hatalar

Aşağıdaki beş bulgu statik kod okumasına dayanır; ortamda Saxon/xsltproc olmadığı için gerçek bir XML üzerinde çalıştırılarak teyit edilememiştir (bkz. Açık Kalanlar). Konum ve kod metni doğrulanmıştır.

5.1 CalculationSequenceNumeric != -1 — normal faturalarda KDV satırını gizler [YÜKSEK]

Dosya: arsiv.xslt satır 1636 ve 1963 (aynı hata IBANLI_e_arsiv_ibanlı.xslt'de de var).

<xsl:for-each select="n1:Invoice/cac:TaxTotal/cac:TaxSubtotal">
    <xsl:if test="cbc:CalculationSequenceNumeric != -1">
        ... <xsl:text>Hesaplanan </xsl:text> ...

XPath semantiği gereği (hem 1.0 hem 2.0'da) boş node-set / boş sequence ile != karşılaştırması FALSE döner. CalculationSequenceNumeric UBL-TR'de seçimlidir ve çoğu üretici hiç yazmaz. Böyle bir faturada koşul FALSE olur ve Hesaplanan KDV(%20) satırı hiç basılmaz.

Ne yapmalı: <xsl:if test="not(cbc:CalculationSequenceNumeric = -1)">. Portal kendi XML'ini üreteceği için bu kritiktir: portal bu elemanı yazmıyorsa ve şablon olduğu gibi kullanılırsa tüm faturalarda KDV toplam satırı kaybolur. (Satır 2717/2734'teki kullanımlar xsl:choose + xsl:otherwise içinde olduğu için güvenlidir.)

5.2 YTB bloğu e-Arşiv YTB faturalarında hiç çalışmaz [YÜKSEK]

Dosya: arsiv.xslt satır 972, 2277, 2930, 3101 — dördü de yalnızca ProfileID='YATIRIMTESVIK' koşuluna bağlı.

"e-Fatura uygulamasında "YATIRIMTESVIK" senaryosunun altında "SATIS", "ISTISNA", "TEVKIFAT", "TEVKIFATIADE" ve "IADE" fatura tiplerinden biri yazılmalıdır. e-Arşiv Fatura uygulamasında "EARSIVFATURA" senaryosunun altında "YTBSATIS", "YTBISTISNA", "YTBTEVKIFAT", "YTBTEVKIFATIADE" ve "YTBIADE" fatura tiplerinden biri yazılmalıdır."

YTB Teknik Kılavuzu V1.2, satır 186-200

Sonuç: ProfileID=EARSIVFATURA + InvoiceTypeCode=YTBSATIS gelen bir e-Arşiv YTB faturasında Harcama Tipi, Makine Adı, Makine Id, Makine Teçhizat Sıra No, Yatırım Teşvik No, Yatırım Teşvik Tarihi alanlarının hiçbiri basılmaz. e-Fatura tarafında ise efatura.xslt'de YATIRIMTESVIK hiç geçmez (0 sonuç) — o yol da eksik basar.

Ne yapmalı: koşulu genişletin → //n1:Invoice/cbc:ProfileID='YATIRIMTESVIK' or //n1:Invoice/cbc:InvoiceTypeCode=('YTBSATIS','YTBIADE','YTBISTISNA','YTBTEVKIFAT','YTBTEVKIFATIADE')

5.3 EDM setinde SGK bloğu tip koduna değil SABİT VKN'ye bağlı [ORTA]

Dosyalar/satırlar: EFATURA_2026:687, EFATURA_OZELM:684, EIHRACAT_2026:687, ESMM_2026:609 — dördü de birebir:

<xsl:if test="//n1:Invoice/cac:AccountingCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID = 7750409379">

7750409379 SGK'nın vergi numarasıdır. Üç ayrı sorun:

  1. Standarda aykırı: doğru koşul cbc:InvoiceTypeCode = 'SGK''dır — arsiv.xslt bunu doğru yapar.
  2. Tırnaksız sayısal karşılaştırma: = 7750409379 yazılmış, = '7750409379' değil. XPath bunu sayısal karşılaştırmaya zorlar; ayrıca schemeID filtresi yoktur — PartyIdentification altındaki herhangi bir ID (MERSISNO, TICARETSICILNO...) bu sayıya eşitse blok yanlışlıkla açılır.
  3. InvoiceTypeCode='SGK' olup alıcı ID'si farklı yazılmış belgede blok hiç çalışmaz.

Ne yapmalı: EDM setini referans alıyorsanız koşulu //n1:Invoice/cbc:InvoiceTypeCode='SGK' yapın, sabit VKN kontrolünü kaldırın.

5.4 _OZELM varyantları özel matrah desteği EKLEMİYOR, KALDIRIYOR [ORTA]

İsimlendirme yanıltıcıdır. EFATURA_OZELM_* ve EARSIV_OZELM_*, karşılık gelen normal dosyaların kopyasıdır ve tek anlamlı fark, OZELMATRAH dallanmalarının yorum satırına alınmış olmasıdır. Doğrulandı (EFATURA_OZELM satır ~950):

<!-- <xsl:if test="../../cbc:InvoiceTypeCode='OZELMATRAH'"> -->
    <!-- <xsl:text>DAHİLDİR</xsl:text> -->
<!-- </xsl:if> -->

Normal EFATURA_2026 davranışı (doğru): OZELMATRAH faturasında KDV oran/tutar sütununda DAHİLDİR yazar. _OZELM varyantında ise (%20) oranı ve KDV tutarı normal fatura gibi basılır. Ayrıca _OZELM dosyalarında bir </script> kapanış etiketi eksik/bozuk kalmıştır (satır ~64-66) — iyi biçimlilik/render riski.

Ne yapmalı: _OZELM varyantlarını kullanmayın.

5.5 xsl:output iddiası — ÇÜRÜTÜLDÜ

DÜZELTME: Önceki tur, "EFATURA_2026, EFATURA_OZELM, EIHRACAT_2026, ESMM_2026 dosyalarında xsl:output YOK, dolayısıyla character-map ölü kod" tespitini yapmıştı. Bu YANLIŞTIR. Hata, satır bazlı grep'in çok satıra yayılmış bildirimi kaçırmasından kaynaklanmış. Dört dosyanın da satır 55-57'sinde bildirim mevcuttur:

```xml

<xsl:output version="4.0" method="html" indent="no" encoding="UTF-8"

doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"

doctype-system="http://www.w3.org/TR/html4/loose.dtd" use-character-maps="a"/>

```

13/13 dosyada tam olarak 1 adet xsl:output ve 1 adet use-character-maps="a" vardır. Bu maddeyi eylem listesinden çıkarın; yine de kendi şablonunuzu yazarken bildirimi koymayı unutmayın.

5.6 IBANLI seti — üçüncü bir şirketin banka hesabı gömülü [KRİTİK / YASAL]

Üç IBANLI dosyasında, ana şablonun sonunda sabit kodlanmış bir banka tablosu vardır. İçerik XML'den gelmez, dosyada yazılıdır (doğrulandı, IBANLI_irsaliye_ibanlı.xslt satır 2-13):

BANKA ADIŞUBEPARA BİRİMİBANKA IBAN
ZİRAAT BANKASIİVEDİK/ANKARATRYTR62 0020 9000 0200 4596 0000 01

Aynı IBAN üç IBANLI dosyasında da geçer; Foriba/EDM setlerinde geçmez.

Portal için sonuç: bu üç dosya olduğu gibi kullanılamaz. Kullanılırsa portaldaki her müşterinin her faturasında başkasının IBAN'ı basılır. arsiv.xslt zaten PaymentMeansCode='42' (havale/EFT) durumunda Ödemenin Yapılacağı IBAN: satırını cac:PaymentMeans/cac:PayeeFinancialAccount üzerinden XML'den doğru basıyor — doğru çözüm budur.

5.7 EDM marka izleri

7 EDM dosyasının hepsinde alt bilgi olarak <td style="color:#5a85a9" align="middle">E-Dönüşüm Merkezi EDM Teknolojileri ile Üretilmiştir</td> bulunur (her dosyada 1 kez, doğrulandı). Ayrıca edmquickresponse="newlogo" gibi özel öznitelikler ve 560×140 px EDM banner'ı vardır. Hukuken zorunlu olan yalnızca GİB logosu + "e-Fatura" ibaresidir; EDM izleri temizlenmelidir.

Ek not — EIHRACAT vs EFATURA: ikisinin görünür etiket kümesi birebir aynıdır (98'e 98). Tek yapısal fark, satır çizim tekniğidir: EFATURA_2026 her zaman generic for-each; EIHRACAT_2026 20'den az satırda InvoiceLine[1]..[20] konumsal çağrı yapıp boş satırları doldurur (sayfayı boş ızgarayla doldurma amaçlı kozmetik yöntem, veri kaybı yok). Yani EIHRACAT dosyası e-İhracat senaryosuna ek bir alan getirmiyor.

6. XSLT'nin UBL belgesine gömülme yeri ve zorunluluğu

Yaygın varsayım yanlıştır: XSLT UBLExtensions'a KONMAZ. ext:UBLExtensions/ext:UBLExtension/ext:ExtensionContent GİB'de yalnızca XAdES mali mühür/imza için kullanılır.

Doğru yer:

cac:AdditionalDocumentReference
  ├─ cbc:ID
  ├─ cbc:IssueDate
  ├─ cbc:DocumentType            → "XSLT"
  └─ cac:Attachment
       └─ cbc:EmbeddedDocumentBinaryObject
            mimeCode="application/xml"
            encodingCode="Base64"
            characterSetCode="UTF-8"
            filename="<BelgeNo>.xslt"

Zorunlu mu? EVET.

"XML dosyaları içinde görüntüleme amacı ile kullanılacak olan XSLT tanımı mutlaka bulunmalıdır. XSLT ile fatura XML'i arasında fatura içeriğine ilişkin herhangi bir farklılık olması durumunda fatura XML'inde bulunan bilgiler esas alınacaktır. Fatura XSLT görüntüsünün üst orta kesiminde Gelir İdaresi Başkanlığı logosu ve altında "e-Fatura" ibaresinin bulunması gerekmektedir."

e-Fatura Uygulaması Entegrasyon Kılavuzu v1.10, satır 511-518

Portal Kullanım Kılavuzu v1.5 madde 4-6 aynı şartları tekrarlar ve "XSLT, XML faturadaki tüm bilgilerin gösterimine imkân verecek nitelikte oluşturulacaktır" der. Bu cümle, yukarıdaki kapsam boşluklarının (İDİS, Vazgeçilen KDV, ESURaporID) doğrudan uyumsuzluk gerekçesidir.

Ama Schematron ile denetlenmiyor: UBL-TR_Main_Schematron.xml ve UBL-TR_Common_Schematron.xml'de XSLT varlığını zorunlu kılan tek bir sch:assert yoktur. Yani şema/şematron geçer, kılavuz ihlali olur — özel entegratör denetiminde bulgu çıkar.

Aynı yapı e-Müstahsil Makbuzu V1.1, e-Gider Pusulası V1.0 ve e-İrsaliye Yanıtı V1.0 kılavuzlarında birebir tekrarlanır.

Muafiyetin geçerli olduğu TEK durum (e-Arşiv Teknik Kılavuzu V1.18, satır 2143-2153): e-Arşiv faturası özel izinle PDF formatında düzenlenmiş, PDF PAdES ile imzalanmış, PDF'in ekine (attach) ProfileId=EARSIVFATURA + CopyIndicator=true olan geçerli UBL-TR XML'i konmuşsa — o ek XML'in ayrıca imzalanması ve içinde XSLT bulunması zorunlu değildir. Normal UBL-TR akışında muafiyet YOKTUR.

Ayrıca özel entegratör denetim kılavuzu (madde J28 fatura, L25 irsaliye) bir varsayılan XSLT fallback bekler: gelen belgenin kendi XSLT'si bozuksa, en azından belge no / tarih / tutar / notlar gösterilebilmelidir.

7. XSLT sürümü ve dosya boyutu riski

13/13 dosya <xsl:stylesheet version="2.0">. Gerçekte kullanılan 2.0'a özgü yapılar (doğrulandı):

YapıToplam geçiş (13 dosya)Not
xsl:character-map + 32 xsl:output-character13/13 dosyadaC1 kontrol karakterlerini (U+0080–U+009F) siler. XSLT 2.0 özelliğidir; libxslt (PHP/Python varsayılanı) ve .NET XslCompiledTransform çalıştıramaz
exists()2 (arsiv 1, IBANLI_e_arsiv 1)XPath 2.0 fonksiyonu
for-each-group, xsl:function, xsl:sequence, matches(), tokenize(), analyze-string, upper-case(), castable as0Hiçbirinde yok
replace(7Tamamı gömülü JavaScript içinde, XPath değil

Yani pratikte tek gerçek 2.0 bağımlılığı character-map'tir. Onu ve iki exists() çağrısını kaldırmak şablonları XSLT 1.0'a indirir.

Ondalık biçimi 13/13 dosyada doğru kurulmuş: <xsl:decimal-format name="european" decimal-separator="," grouping-separator="." NaN=""/>.

Dış parametre arayüzü (arsiv.xslt): param_logo (mükellef logosu), param_Imza (kaşe/imza), SV_OutputFormat. Bu mekanizma karekodu da dışarıdan geçirmek için hazır bir kancadır.

Dosya boyutu riski. [TEK KAYNAK] Web kaynaklı (Orkestra) bir iddiaya göre "60 KB'tan büyük XSLT kullanan faturalar Portal yöntemiyle görüntülenemez". Bu iddia yerel korpustaki hiçbir birincil kılavuzda (Portal v1.5, e-Arşiv V1.18, Entegrasyon v1.10) doğrulanamadı DOĞRULANAMADI. Doğruysa etkisi ciddidir: 13 şablonun 11'i 118–270 KB aralığındadır; yalnızca iki irsaliye dosyası (58 KB) sınırın altındadır. Portal mimarisi açısından kritik olduğu için GİB'den teyit edilmelidir. Bağımsız olarak, boyutun ana kaynağı gömülü base64 görsellerdir — logo/banner'ları param_logo ile dışarıdan geçirmek dosyayı 60 KB'ın altına indirmenin en doğrudan yoludur.

Şablonların güncelliği. GİB 2026 paket zinciri: 27.07.2026 (e-Fatura + e-Arşiv paketleri + Kod Listeleri V1.43) → 11.08.2026 düzeltme → 24.08.2026 ek düzeltme → yürürlük 14.09.2026. EDM seti 12.08.2026 tarihlidir (11.08 sonrası, 24.08 öncesi). Ancak 14.09.2026 değişiklikleri şema/şematron değişiklikleridir, XSLT değişiklikleri değil — yerel History.txt'in son kaydı 20260701'dir ve tüm maddeler şematron kural adlarıdır (EnerjiInvoicePeriodCheck, IdisSevkiyatNoCheck, TaxExemptionReasonCodeType...). Şablonlar istisna kodlarını generic bastığı için yeni kod eklenmesi XSLT'yi doğrudan bozmaz. Yani asıl sorun tarih değil, kapsamdır. Foriba ve IBANLI setleri tarihsizdir; içlerindeki en yeni iz <!-- 09-08-2023 qr code regülasyonu sovos --> yorumu ve ©2026 Foriba notudur.

8. Portal için net öneri

Temel: arsiv.xslt. Gerekçe: 176 benzersiz etiketle en geniş kapsam; 6 senaryo + 8 fatura tipi dallanması; HKS masraf kırılımı, YTB, ihraç kayıtlı satır kodları, tevkifat iade, özel matrah, SGK (doğru koşulla), kıymetli maden, standart kod ve CalculationSequenceNumeric farkındalığı yalnızca burada var. Karekod JSON içeriği GİB standardıyla tam uyumlu. Tek dosya hem e-Arşiv hem e-Fatura kapsıyor. e-İrsaliye için irsaliye.xslt, e-SMM için ESMM_20260812_134008Z.xslt (başka seçenek yok).

Kullanmayın: IBANLI seti (üçü de — gömülü IBAN + eski revizyon), _OZELM varyantları (özel matrahı kaldırıyorlar).

A. Hemen kaldırılacaklar (yasal / gizlilik riski)

  1. $QRSOVOShttps://qr.sovostr.com/qr?data= çağrısını SİL (arsiv.xslt satır ~401-405; aynı blok efatura.xslt, irsaliye.xslt ve 3 IBANLI dosyasında). JSON üretim mantığını koru (standarda uygun), karekodu sunucu tarafında PNG üretip data:image/png;base64,... olarak göm — veya mevcut param_logo/param_Imza kalıbını izleyerek <xsl:param name="param_qr"/> ile dışarıdan geçir.
  2. IBANLI dosyalarındaki sabit ZİRAAT BANKASI / TR62 0020 9000 0200 4596 0000 01 tablosunu kullanma; IBAN'ı PaymentMeansCode='42' yolundan XML'den bas.
  3. EDM setinden herhangi bir parça alıyorsan E-Dönüşüm Merkezi EDM Teknolojileri ile Üretilmiştir alt bilgisini ve edmquickresponse özniteliklerini SİL.
  4. arsiv.xslt'deki ProfileID='STDKODFATURA' dallanmalarını (3 adet) kaldır — kod listesinde olmayan ölü senaryo.

B. Düzeltilecek hatalar

  1. cbc:CalculationSequenceNumeric != -1not(cbc:CalculationSequenceNumeric = -1)arsiv.xslt satır 1636 ve 1963. (Bu düzeltilmezse portalın ürettiği normal faturalarda KDV toplam satırı görünmez.)
  2. YTB koşulunu genişlet — arsiv.xslt satır 972, 2277, 2930, 3101: ProfileID='YATIRIMTESVIK' or InvoiceTypeCode=('YTBSATIS','YTBIADE','YTBISTISNA','YTBTEVKIFAT','YTBTEVKIFATIADE').
  3. EDM ESMM'yi kullanacağın için oradaki karekod JSON'unu onar: eksik }, "kdvtutari":180.00" tek taraflı tırnak, "tahsilat" alanının InvoiceLine/Price/PriceAmount yerine gerçek tahsilat toplamından beslenmesi.
  4. EDM'den herhangi bir fatura şablonu alırsan: sondaki ,} virgülü, "ETTN""ettn", eksik "vergidahil", Percent yuvarlaması ve SGK sabit-VKN koşulu (satır 687/684/687/609).

C. Eklenecekler (kapsam boşluğu)

  1. Vazgeçilen KDV Tutarı için ayrı toplam satırı: TaxTotal/TaxSubtotal[cbc:CalculationSequenceNumeric = -1]/cbc:TaxAmount → etiket Vazgeçilen KDV Tutarı (%N), toplama dahil edilmez, yanında TaxExemptionReasonCode + TaxExemptionReason.
  2. 9 eksik fatura tipi: KONAKLAMAVERGISI, SARJ, SARJANLIK, TEKNOLOJIDESTEK, YTBSATIS, YTBIADE, YTBISTISNA, YTBTEVKIFAT, YTBTEVKIFATIADE. Asgari olarak Fatura Tipi: alanına 20 kodun tamamı için Türkçe karşılık çeviren bir xsl:choose ekle (şu an hepsi ham kod olarak basılıyor).
  3. SARJ/SARJANLIK: cac:InvoicePeriod içinde StartDate + StartTime + EndDate + EndTime dörtlüsü; SARJ için AdditionalDocumentReference/cbc:ID[@schemeID='ESURaporID'] + IssueDate. (Şu an EndTime ve ESURaporID 13 dosyada 0.)
  4. İDİS: fatura başlığında PartyIdentification/cbc:ID[@schemeID='SEVKIYATNO'], satır tablosunda Item/AdditionalItemIdentification/cbc:ID[@schemeID='ETIKETNO'] sütunu — hem faturada hem irsaliyede.
  5. Yolcu Beraber Eşya: karekoda pasaportno + aracikurumvkn alanları, ekranda pasaport no gösterimi.
  6. ILAC_TIBBICIHAZ: AdditionalItemIdentification içindeki künye alanları (arsiv.xslt Künye Numarasını yalnız HKS bağlamında basıyor; ILAC/TIBBICIHAZ hiçbir dosyada yok).
  7. KAMU senaryosu ek alanları — hiçbir şablonda dallanma yok.
  8. Fallback XSLT modülü: gelen belgenin XSLT'si bozuksa belge no / tarih / tutar / notları gösteren yedek şablon (denetim maddeleri J28 / L25). Özel entegratörlük planlıyorsan zorunlu sayın.

D. Teknik kararlar

  1. Sürüm: character-map + 2 exists() dışında 2.0 bağımlılığı yok. Saxon (Java/.NET) kullanacaksan 2.0'da kal. libxslt/PHP kullanacaksan xsl:character-mapi ve exists()i kaldırıp 1.0'a in; C1 karakter temizliğini XML üretim aşamasında yap.
  2. xsl:output: version="4.0" method="html" indent="no" encoding="UTF-8" doctype-public/system=HTML 4.01 Transitional use-character-maps="a" — 13 dosyanın hepsinde bu haliyle var, kendi şablonunda da koru.
  3. Boyut: gömülü base64 logo/banner'ları çıkar, param_logo/param_Imza/param_qr ile dışarıdan geçir. Hem 60 KB riskini (bkz. Açık Kalanlar) hem dosya şişkinliğini çözer.
  4. Zorunlu görsel: üst orta kesimde GİB logosu + altında "e-Fatura" ibaresi.
  5. Gömme: cac:AdditionalDocumentReference + cbc:DocumentType="XSLT" + cac:Attachment/cbc:EmbeddedDocumentBinaryObject (Base64, mimeCode="application/xml", encodingCode="Base64", characterSetCode="UTF-8", filename="<BelgeNo>.xslt") — UBLExtensions'a DEĞİL.

Açık Kalanlar

  1. XSLT 1.0 mı 2.0 mı? GİB'in hangi sürümü kabul ettiğine dair birincil kaynak bulunamadı DOĞRULANAMADI. Yerel korpustaki hiçbir kılavuz (Entegrasyon v1.10, Portal v1.5, e-Arşiv V1.18, Özel Entegrasyon v1.14) sürüm numarasından bahsetmiyor. 13 şablonun tamamının version="2.0" olması pratikte 2.0'ın kabul gördüğünü düşündürür, ama bu bir çıkarımdır, belgelenmiş kural değil.
  2. 60 KB sınırı [TEK KAYNAK] DOĞRULANAMADI. "60 KB'tan büyük XSLT kullanan faturalar Portal yöntemiyle görüntülenemez" iddiası üçüncü parti (Orkestra) kaynaklıdır; yerel korpusta teyit edilemedi. Doğruysa 13 şablonun 11'i Portal'da açılamaz. GİB'den teyit alın.
  3. 24.08.2026 paketinin içerik farkı birincil kaynaktan alınamadı. ebelge.gib.gov.tr/duyurular.html yalnızca özet döndü, pwc.com.tr bülteni HTTP 403 verdi. Yerel History.txt'in son kaydı 20260701 — korpusta 27.07 / 11.08 / 24.08.2026 değişiklik listesi yok.
  4. GİB'in gerçek varsayılan XSLT'si (general.xslt) elde edilemedi. Elinizdeki "GİB varsayılan" set Foriba/Sovos türevidir (©2026 Foriba + qr.sovostr.com kanıtlıyor). GİB'in kendi referans şablonuyla karşılaştırma yapılamadı — 9 eksik tipin GİB referansında nasıl gösterildiği bilinmiyor.
  5. KONAKLAMAVERGISI, SARJ, SARJANLIK, TEKNOLOJIDESTEK ve YTB* tipleri için GİB referans bir XSLT görünümü yayınladı mı, doğrulanamadı. Elektrik Şarj Hizmetleri Fatura Teknik Kılavuzu V1.0 ve YTB V1.2 yalnızca XML alanlarını tarif ediyor, görünüm örneği vermiyor.
  6. Vazgeçilen KDV'nin belge GÖRÜNTÜSÜNDE gösterilmesi zorunlu mu, net değil. YTB Kılavuzu V1.2 satır 243'teki "Bu alan sadece xml üzerinden gösterilecektir" ifadesi CalculationSequenceNumeric elemanı için kullanılmış; tutarın kendisinin ekranda gösterilip gösterilmeyeceği açıkça yazılmamış. Portal Kılavuzu v1.5 madde 4'teki "tüm bilgilerin gösterimine imkân verecek nitelikte" genel kuralı göstermeyi gerektiriyor gibi okunabilir — ama bu bir yorumdur. (Buna karşın 4.1'de tespit edilen toplam şişirme hatası yoruma açık değildir, açık bir hatadır.)
  7. "12.01.2026 YTB zorunluluğu" tarihi korpusta bulunamadı (12.01.2026, 12.1.2026, 12/1/2026 → 0 sonuç). Korpustaki YTB Teknik Kılavuzu V1.2'nin yayım tarihi 09.01.2026'dır ve TEVKIFAT/TEVKIFATIADE/YTBTEVKIFAT/YTBTEVKIFATIADE tiplerinin eklendiği sürümdür. 12.01.2026'da ayrı bir duyuru/yürürlük varsa doğrulanmalıdır.
  8. Hiçbir şablon gerçek bir XML üzerinde çalıştırılamadı. Ortamda Saxon/xsltproc yok; xsd/ klasöründeki örnek XML'ler gider pusulası / döviz / sigorta belgeleridir, e-Fatura/e-Arşiv örnek XML'i yok. Bölüm 5'teki hatalar (5.1 != semantiği, 5.2 YTB koşulu, 5.3 SGK VKN, 5.4 yorumlu blok, 4.2 JSON bozuklukları) statik kod analizine dayanır; kod metni ve satır numaraları doğrulanmıştır ama üretimde runtime teyidi yapılmalıdır. Öncelikli test: CalculationSequenceNumeric içermeyen normal bir fatura XML'i ile arsiv.xslt çalıştırıp KDV toplam satırının kaybolup kaybolmadığını görün.
  9. ILAC_TIBBICIHAZ ve KAMU senaryolarında GÖRÜNÜMDE hangi alanların zorunlu olduğu bu turda incelenmedi. Bu senaryolara özgü alanların hiçbir şablonda olmadığı tespit edildi, ancak Ilac_ve_Tibbi_Cihaz_..._V.1.2 ve Kamu_e-Fatura_Teknik_Kilavuzu_v1.5 dosyalarından zorunlu görünüm alanları çıkarılmadı — 8. maddedeki eylem planı bu nedenle bu iki senaryo için eksiktir.

BÖLÜM 9 — e-Defter, Yardımcı Paketler ve Kalan Mevzuat

e-Defter, Yardımcı Belge Paketleri ve Kalan Mevzuat

e-Defter

0. Önce bir uyarı: yerel korpustaki kılavuz eskimiştir

Korpustaki eDefter_Kilavuz_.txt dosyası e-Defter Uygulama Kılavuzu V 1.5 / Kasım 2016 sürümüdür (dosyanın ilk satırları bunu doğruluyor). Güncel sürüm V.1.12 / 03.01.2025'tir. Yerel dosyaya dayanarak kod yazmayın; şu bilgiler artık geçersizdir:

Yerel V1.5 (2016)Güncel durum (31.08.2026)
Berat yükleme süresi = takip eden üçüncü ayın son günüDördüncü ayın 10/14'ü (5 Sıra No.lu ED Tebliği, RG 08/11/2024-32716)
Sadece beratlar yüklenir22.5.2024'ten itibaren defter + berat eşanlı yüklenir
Büyük defter dosyası da yüklenirOcak 2025'ten itibaren büyük defter dosyası (K) yüklenmez, sadece KB beratı
Yevmiye + büyük defter1/1/2025'ten itibaren envanter defteri de (ihtiyari)
Bir yevmiye maddesinde en fazla 50 faturaEn fazla 100 fatura
Zaman damgası TÜBİTAK-UEKAETÜBİTAK BİLGEM KAMU SM
Zayi belgesi için 15 gün30 gün

1. Mevzuat zinciri

Temel: Elektronik Defter Genel Tebliği (Sıra No: 1), RG 13/12/2011-28141. Değiştiren tebliğler:

SıraRGÖne çıkan içerik
2(RG künyesi tespit edilemedi — bkz. Açık Kalanlar)Berat süresini "üçüncü ayın son günü"ne çekmişti (mülga)
319/10/2019-30923Zorunluluk kapsamı, kopya saklama (1/1/2020'den 10 yıl), geçici vergi dönemi bazında yükleme
421/05/2024-32552"İkincil" ibaresinin kaldırılması, defter+berat eşanlı yükleme, Dijital Vergi Dairesi muvafakatnamesi, zayi 15→30 gün, TÜBİTAK BİLGEM KAMU SM
508/11/2024-327164.3.4 tablosunun yeniden yazımı (10/14 ayrımı), bilanço esasının kapsama alınması, uyumlu yazılım firmalarına yaptırım
631/12/2024-32769Envanter defteri (ihtiyari), açılış/kapanış onayı tanımları, Dijital Vergi Dairesi/e-Devlet ile başvuru

2. Zorunluluk kapsamı ve geçiş tarihleri

Tebliğ 3.2.1 (6 SN ile değişik) üç grup sayar: (1) e-Fatura'ya geçiş zorunluluğu bulunanlar, (2) TTK 397/4 uyarınca bağımsız denetime tabi şirketler, (3) bilanço esasına göre defter tutmak zorunda olanlar + ihtiyari bilanço tercih edenler. (Defter tutma yükümlülüğü olmayan dernek/vakıf/sendika/oda/birlik, KV'den muaf kooperatifler ve iflas hâlindekiler hariç.) 3.2.3: 5018 sayılı Kanuna ekli cetveldeki idareler için zorunluluk yok.

GrupGeçiş tarihi (3.2.6)
e-Fatura zorunluluğu bulunanlare-Fatura'ya geçiş süresi içinde; yıl içinde zorunlu geçenlerde izleyen yıl başı
19/10/2019 itibarıyla TTK 397/4 bağımsız denetime tabi şirketler1/1/2020
2020 ve sonrasında bağımsız denetim şartlarını sağlayanlarŞartın sağlandığı yılı takip eden yıl başı
1/1/2025'ten itibaren bilanço esasına tabi olanlar / ihtiyari tercih edenler1/1/2025 (VUK 174/3 özel hesap dönemi: 2025 içinde başlayan dönem başı)
1/1/2025'ten itibaren yeni/yeniden işe başlayan, sınıf değiştiren, muafiyeti kalkanİşlem tarihinden itibaren

Bölünme/birleşme/nev'i değişikliğinde geçiş "hiçbir koşulda tescili izleyen ayın başından itibaren 3 ayı geçemez" (3.2.5, 3.2.8, 3.2.9).

Bağın yönü tek yönlüdür: e-Fatura zorunluluğu → e-Defter zorunluluğu doğurur. Tersi doğru değildir: 509 SSS S.87 "e-Arşiv'e geçen Defter-Beyan mükellefi e-Fatura'ya da geçer, bununla birlikte e-Defter uygulamasına geçmek zorunluluğu bulunmamaktadır"; S.78 bağımsız denetime tabi şirketlerin e-Fatura/e-Arşiv zorunluluğu yoktur.

3. Hangi defterler

Yevmiye defteri (Y), büyük defter/defterikebir (K) ve 1/1/2025'ten itibaren ihtiyari olarak envanter defteri (E). Beratlar: YB / KB / EB; ayrıca DR = defter raporu beratı. Paket XSLT'leri: yevmiye.xslt, kebir.xslt, envanter.xslt, berat.xslt, defterraporu.xslt.

Kasa defteri e-Defter kapsamında DEĞİLDİR — VUK'un "Günlük kasa defteri" başlıklı mükerrer 185. maddesi 4369/82 ile mülgadır; VUK 182 bilanço esasında yalnız yevmiye, defterikebir ve envanter defterini sayar. Defter-Beyan Sistemi defterleri (işletme hesabı, serbest meslek kazanç defteri, çiftçi işletme defteri) e-Defter'in değil 486 SN VUK GT'nin konusudur.

4. Berat yükleme takvimi — AYLIK seçenek (Tebliğ 4.3.4, tam tablo)

Kural: "ilgili olduğu ayı takip eden dördüncü ayın 10 uncu (gelir vergisi) / 14 üncü (diğer) günü sonuna kadar".

Dönem (ay)Gelir Vergisi MükellefleriDiğer Mükellefler
OcakMayıs ayının 10 uncu günü sonuMayıs ayının 14 üncü günü sonu
ŞubatHaziran 10Haziran 14
MartTemmuz 10Temmuz 14
NisanAğustos 10Ağustos 14
MayısEylül 10Eylül 14
HaziranEkim 10Ekim 14
TemmuzKasım 10Kasım 14
AğustosAralık 10Aralık 14
EylülOcak 10Ocak 14
EkimŞubat 10Şubat 14
KasımMart 10Mart 14
Aralık (hesap döneminin son ayı)GV beyannamesinin verileceği ayı takip eden ayın 10'u sonuKV beyannamesinin verileceği ayı takip eden ayın 14'ü sonu

5. Berat yükleme takvimi — 3 AYLIK / "Geçici Vergi Dönemleri Bazında Yükleme" (tam tablo)

Resmî adı artık "3 aylık" değil "Geçici Vergi Dönemleri Bazında Yükleme"dir. Dosyalar her ay için ayrı ayrı oluşturulur, tek son tarihte yüklenir.

DönemGelir Vergisi MükellefleriDiğer Mükellefler
Ocak-Şubat-MartHaziran ayının 10 uncu günü sonuHaziran ayının 14 üncü günü sonu
Nisan-Mayıs-HaziranEylül 10Eylül 14
Temmuz-Ağustos-EylülAralık 10Aralık 14
Ekim-Kasım-AralıkGV beyannamesinin verileceği ayı takip eden ayın 10'u sonuKV beyannamesinin verileceği ayı takip eden ayın 14'ü sonu

Cezai açıdan kritik: "Tercihini geçici vergi dönemi bazında yapan mükelleflerden … belirtilen sürede gerçekleştirmeyenler hakkında cezai müeyyidelerin tayininde her bir ay, ayrı ayrı dikkate alınır." → 3 aylık gecikme = 3 ayrı ceza.

Envanter defteri için bu tercih YOKTUR. Süreler herkes için sabittir:

Envanter defteriGelir VergisiDiğer
Hesap döneminin ilk günü (= açılış onayı yerine)İlk ayı takip eden dördüncü ayın 10'uDördüncü ayın 14
Hesap döneminin son günü (= kapanış onayı yerine)GV beyannamesi ayını takip eden ayın 10'uKV beyannamesi ayını takip eden ayın 14

Envanter yüklemesi yevmiye/kebir yüklemesinden sistemsel olarak bağımsızdır; ancak kullanılacak uyumlu yazılım yevmiye/kebir ile AYNI olmak zorundadır. Başvuru/iptal Dijital Vergi Dairesi'nden ("Envanter Defteri Başvuru Dilekçesi" / "Envanter Defteri İptal Talep Dilekçesi"); posta veya vergi dairesi başvuruları dikkate alınmaz.

2026 tercih kuralları: 2025 tercihi 2026 için de geçerli; değişiklik son tarihi 2/2/2026 (geçti). Bildirmeyen "Aylık Yükleme" saymış olur. 2026'da işe başlayanlar işe başladıkları ayın sonuna kadar değiştirebilir.

2026 uzatma sirkülerleri (somut tarih doğrulaması): VUK-198 (11/05/2026) → 10 Haziran / 15 Haziran 2026; VUK-202 (8/06/2026) → 30 Haziran 2026 Salı; VUK-201 (22/05/2026) deprem bölgesi mücbir sebep. GİB'in süre uzatma yetkisi bir aya kadardır (4.3.6).

6. Format, imza, paketleme

Format XBRL GL'dir — UBL-TR DEĞİLDİR. Taksonomi sürümü 2006-10-25; modüller gl-cor, gl-bus, gl-muc, gl-gen. Kök:

<edefter:defter xmlns:edefter="http://www.edefter.gov.tr"
  xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
  xmlns:xades="http://uri.etsi.org/01903/v1.3.2#"
  xsi:schemaLocation="http://www.edefter.gov.tr ../xsd/edefter.xsd">

XSLT dosya adları değiştirilemez; namespace prefix'leri kılavuzdaki gibi olmak zorundadır ("ns1, aa, bb gibi kullanımlar … usule uygun bulunmamaktadır").

İmza: Tüzel kişiler yalnız Mali Mühür; gerçek kişiler Mali Mühür veya NES. "Mühürleme ve imzalama işleminde asgari olarak XAdES-BES … XAdES imzalama enveloped yöntemi ile olmalıdır." Örnek algoritmalar: c14n xml-c14n-20010315#WithComments, rsa-sha256, sha256. Zaman damgası TÜBİTAK BİLGEM KAMU SM'den. Güncel metin defter ve berat dosyalarının zaman damgalı imzalanmasını ister (V1.5'teki "sadece beratlara zaman damgası yeterlidir" ifadesi geçersizdir).

Paket adı: [VKN/TCKN]-[YYYYAA]-[Kod]-[ParçaNo(6 hane)]-[ŞubeNo(4 hane, seçimli)].zip → örn. 1234567808-202501-YB-000000-0001.zip. 000000 ile 000001 aynı anda bulunamaz; şube 0000 olamaz. İşleme sırası: önce berat kontrolleri, sonra defter kontrolleri + matematiksel imza doğrulama; ikisi de geçerse berat GİB mührüyle imzalanır. "GİB onaylı berat dosyaları edinilmediği sürece oluşturulan e-Defterler yasal ve geçerli kabul edilmeyecektir."

Berat üretimi: defterin xbrl elemanı kopyalanır, entryHeader'lar çıkarılır, vergi detaylı yeni entryHeader üretilir, defterin SignatureValue'su berata taşınır (defter↔berat eşleştirme anahtarı budur). Yevmiye beratında ek olarak numberOfEntries bulunur.

Berattaki vergi detayı — fatura portalıyla en somut veri bağı. Beratta 1 adet entryHeader altında tam 10 entryDetail: 391 Hesaplanan KDV (Borç/Alacak dönem içi değişiklik), 191 İndirilecek KDV (B/A), 600 Yurt İçi Satışlar (B/A), 601 Yurt Dışı Satışlar (B/A), 602 Diğer Gelirler (B/A). GİB'in bu verileri e-Fatura/e-Arşiv verileriyle fiilen çapraz kontrol ettiği yönündeki yorum DOĞRULANAMADI — Berat Kılavuzu yalnız yapının "trial balance / vergi detayı" modelinden alındığını söyler.

7. Saklama (ikincil kopya)

Tebliğ 4.4.1/(e): kopyaların "e-Defter saklama hizmeti yönünden teknik yeterliğe sahip ve Başkanlıktan izin alan özel entegratörlerinya da Başkanlığın bilgi işlem sistemlerinde 1/1/2020'den itibaren asgari 10 yıl muhafazası zorunludur." 4 SN Tebliğ ile "ikincil" ibaresi metinden kaldırılmıştır (kavram halk arasında hâlâ öyle anılıyor).

NET DURUM: e-Defter saklama için hiçbir özel entegratör yetkilendirilmemiştir. GİB SSS: "…hiçbir özel entegratör kuruluş yetkilendirilmemiş olup, saklama işlemi yalnızca Gelir İdaresi Başkanlığınca ücretsiz olarak yapılmaktadır." Yerel 509 SSS S.82 de aynı yönde. Bu, e-Fatura/e-Arşiv'deki saklamacı kuruluş rejiminden köklü farktır. Bir portal, e-Defter'in resmî saklamacısı olamaz; yalnızca müşterinin kendi ihtiyacı için ticari arşiv hizmeti verebilir (hukuki geçerlilik doğurmaz).

22.5.2024 sonrası eşanlı yükleme, kopya yükümlülüğünü zaten karşılar; e-Defter Saklama Uygulaması (Windows masaüstü, deftersaklama.gib.gov.tr:443 + localhost:1085, .NET 4.5+, sadece .zip) artık yalnız 22/5/2024 öncesi dönemler için kullanılan legacy araçtır.

Mükellefin kendi muhafazası kalkmaz (4.4.1/d, g). Zorunlu dizin yapısı: …/[KÖK]/VKN/HESAP DÖNEMİ/AY/ içinde Y, K, YB, KB, GIB-YB, GIB-KB ve XSLT dosyaları. Silinenler için ayrıca …/AY/İPTAL EDİLENLER-SİLİNENLER/. Muhafaza Türkiye Cumhuriyeti sınırları içerisinde yapılmak zorundadır.

8. NET KARAR: e-Defter fatura portalının işi mi?

HAYIR. e-Defter bir e-Fatura/e-Arşiv portalının işi değildir; uyumluluk onaylı muhasebe yazılımının işidir.

BoyutFatura Portalıe-Defter
Mevzuat509 SN VUK GT1 SN Elektronik Defter GT (+2,3,4,5,6)
Veri standardıUBL-TR 1.2XBRL GL 2006-10-25
GirdiTekil belgeAylık muhasebe kayıtları bütünü (yevmiye maddeleri, hesap planı, borç/alacak)
Platformebelge.gib.gov.tr / ÖEedefter.gib.gov.tr
İzin rejimiÖzel entegratörlük / portale-Defter Yazılım Uyumluluk Onayı (dilekçe + taahhütname + tanıtım raporu + Testmatik'te 7 senaryo × 4 adım)

Kesin engel: uyumluluk onayı olmadan üretilemez — "uyumlu program listesinde bulunmayan kaynak uygulamaya sahip defter paketleri kabul edilmeyecektir" ve "e-Defter yazılımlarının her yeni versiyonu yeniden test sürecinden geçmeli ve onay almalıdır". Sürekli deploy eden bir SaaS için bu operasyonel olarak ağırdır. gl-bus:sourceApplication formatı: VERGINO##ÜNVAN##PROGRAM_ADI##VERSİYON. Ek engel: envanter defteri kullanan müşteride yevmiye/kebir ile aynı yazılım şartı → portal, müşterinin tüm defter zincirini devralmak zorunda kalır.

Portalın bunun yerine yapması gerekenler (kapsam içi, onay gerektirmez):

  1. Muhasebe aktarım çıktısı: her belge için documentType + documentNumber + documentDate + KDV kırılımı + hesap kodu önerisi. documentType yalnız 8 değer alır: check, invoice, order-customer, order-vendor, voucher, shipment, receipt, other. invoice SADECE fatura içindir — e-SMM, e-MM, e-Gider Pusulası, e-Döviz, e-Sigorta hep other + documentTypeDescription. En kritik kural: "e-Fatura kullanıcıları bu alana e-Faturanın ETTN numarasını DEĞİL, fatura ID'sini girmelidir" (yani cbc:ID, cbc:UUID değil). documentReference = muhasebe fiş no ve entryNumber'a eşit olmalıdır (şematron kontrollü).
  2. Elektronik Muhasebe Fişi üretimi — onay gerektirmez, format serbest (xml, pdf içi xml, pdf, txt, csv, json vb.). 12 zorunlu alan: mükellef adı+VKN/TCKN, fiş türü (Tahsil/Tediye/Mahsup), düzenleme tarihi, düzenleme zamanı (saat ve dakika), fiş no, ait olduğu yevmiye madde no, borçlu hesap kodu/adı/tutarı, alacaklı hesap kodu/adı/tutarı. VUK 219: en geç 45 gün içinde yevmiyeye kaydedilmelidir.
  3. e-Arşiv fatura icmali desteği. Esas kural her fatura ayrı yevmiye maddesidir; iki istisna: (a) genel gruplandırma — en fazla 10'ar günlük periyot, en fazla 100 adet fatura, her faturanın belge türü/tarihi/numarası ayrı görünmek şartıyla; (b) e-Arşiv fatura icmali — yalnız abonelik esaslı firmalar, kargo şirketleri, Ticaret Bakanlığı güven damgası aktif e-ticaret hizmet/aracı hizmet sağlayıcıları, 507 SN GT kapsamında GMÖEBYS kullananlar ve yazılı talep üzerine uygun görülenler. İcmalde belge tipi other, açıklama "eArşiv fatura icmali", e-Arşiv Raporu formatında ve aynı içerikte, mali mühürle imzalı. Benzerleri: "e-Bilet icmali", "Z Raporu İcmali", "Döviz ve Kıymetli Maden Alım/Satım Belgeleri İcmali", "Ücret Bordrosu İcmali", "Masraf Formu", "Muhasebe Fişi".
  4. Berat vergi detayı mutabakatı (391/191/600/601/602 ↔ portalın satış/KDV toplamları) ve yükleme takvimi hatırlatıcısı (aylık vs. geçici vergi tercihine göre).

9. Yaptırımlar ve düzeltme kapısı

Süresinde yüklenmeyen/geç yüklenen defter-berat için VUK ceza hükümleri (6.8). Zorunlu olduğu hâlde geçmeyenlerin hesabı re'sen açılır ve "kâğıt ortamda tuttukları defterler hiç tutulmamış sayılır" (3.2.10). Uyumlu yazılım firmalarına: eksikliği gidermeyen ya da aynı takvim yılında aynı eksikliği tekrarlayanların onayı iptal edilebilir, iptalden itibaren bir yıl yeni başvuru değerlendirilmez (6.6). Mükellefin izin iptalinde de bir yıl yasak (5.1).

Düzeltme senaryosuGerekli evrakSüre
Yasal süre geçmemişBerat silinir, defter+berat yeniden üretilip yüklenir
Mücbir sebeple kayıt kaybıMahkemeden zayi belgesi + Özel Amaçlı YMM Raporu + GİB'in yazılı izniÖğrenmeden itibaren 30 gün içinde mahkemeye
Uyumlu yazılım kaynaklı hatalı veriYazılım firmasının teknik raporu + Özel Amaçlı YMM RaporuÖğrenmeden itibaren 15 gün içinde GİB'e

Muvafakatname (4.3.7): İmzalama yetkisi özel entegratöre, uyumluluk onaylı yazılım firmasına veya 3568 sayılı Kanuna göre yetkili meslek mensubuna devredilebilir — noterde özel vekâletname veya Dijital Vergi Dairesi üzerinden elektronik muvafakatname ile; hangi ay/yıl/hesap dönemi için yetki verildiği açıkça belirtilmelidir. Yetki devri mükellefin hukuki ve cezai sorumluluğunu kaldırmaz.

Defter Raporu Beratı (DR) halen askıdadır: 05.06.2024 duyurusu — "Başkanlığımız tarafından yeni bir belirleme yapılarak duyurulana kadar, Defter Raporu Beratı gönderimi yapılmayacaktır." 31.08.2026 itibarıyla yeniden başlatma duyurusu bulunamamıştır.


Yardımcı belge paketleri

e-Gider Pusulası

SMS KODU / İADE KODU'nun tam XPath'i — kod alıcı tarafın Contact bloğuna yazılır; kodun kendisi cbc:ID, türü cbc:Name, telefon cbc:Telephone'dur:

/CreditNote/cac:AccountingCustomerParty/cac:Party/cac:Contact/cbc:ID         -> kodun kendisi
/CreditNote/cac:AccountingCustomerParty/cac:Party/cac:Contact/cbc:Name       -> "SMS" | "IADEKODU" (sabit)
/CreditNote/cac:AccountingCustomerParty/cac:Party/cac:Contact/cbc:Telephone  -> kodun gönderildiği telefon

# alıcı adına iade eden 3. kişi varsa aynı üçlü:
/CreditNote/cac:BuyerCustomerParty/cac:Party/cac:Contact/{cbc:ID | cbc:Name | cbc:Telephone}

# kodu üreten sağlayıcı (düzenleyen tarafta):
/CreditNote/cac:AccountingSupplierParty/cac:Party/cac:Contact/cac:OtherCommunication/cbc:ChannelCode/@name  -> "SMS_PROVIDER" | "IADE_PROVIDER"
/CreditNote/cac:AccountingSupplierParty/cac:Party/cac:Contact/cac:OtherCommunication/cbc:ChannelCode        -> uygulama/operatör adı
/CreditNote/cac:AccountingSupplierParty/cac:Party/cac:Contact/cac:OtherCommunication/cbc:Value              -> sağlayıcı VKN

Kılavuz metni birebir: "'Contact'/'Name' alanına 'SMS' ya da 'IADEKODU' yazılarak 'Contact'/'ID' alanına SMS kodu ya da iade kodu yazılmalıdır." giderPusulasi.xslt (satır 2118-2133) cbc:Name='IADEKODU' → "İADE KODU: ", ='SMS' → "SMS: " basar; cbc:Name yanlış yazılırsa kod çıktıda hiç görünmez.

4 örnek XML'in farkı (korpustan doğrulandı):

AlanSATISIADE_BelgesizIADE_SMS_KoduIADE_IADE_Kodu
cbc:IDGIB2026000000001GIP2026000000001GIP2026000000001GIP2026000000001
cbc:CreditNoteTypeCodeSATISIADEIADEIADE
BillingReference/…/cbc:ID/@schemeIDyok (blok hiç yok)BELGESIZ (değer boş)SATIS_FISI (001)EARSIV_FATURA (GIB2026000000002)
Supplier ChannelCode/@nameSMS_PROVIDERSMS_PROVIDERSMS_PROVIDERIADE_PROVIDER
Customer Contact/cbc:NameSMSSMSSMSIADEKODU
cac:Delivery (kargo)yokvarvarvar

Ortak: ProfileID=GIDERPUSULASI, CustomizationID=TR1.2.1, TRY, TaxTypeCode 0015 %10, tek CreditNoteLine (unitCode="C62"). ÇELİŞKİ: GİB'in kendi SATIS örneği "GIB" ön ekiyle, IADE örnekleri "GIP" ön ekiyle numaralanmış — aynı pakette tutarsız; birim kodu serbest olduğu için hata sayılmaz ama kopyala-yapıştır tuzağıdır.

Karar matrisi — hangi durumda hangi kod:

SenaryoTipKodContact/NameChannelCode/@nameDelivery
KDV mükellefi olmayandan mal/hizmet alımıSATISSMS KODUSMSSMS_PROVIDERyok
Depozitolu ambalaj iadesi + depozito geri ödemesiSATISSMS KODUSMSSMS_PROVIDERyok
Nihai tüketiciden yüz yüze iadeIADESMS ya da İADE KODUSMS \IADEKODUSMS_ \
Nihai tüketiciden kargoyla iadeIADEsadece İADE KODUIADEKODUIADE_PROVIDERzorunlu
İadeyi fatura alıcısı dışında biri yapıyorIADEkod BuyerCustomerParty altınaduruma göre

BELGESIZ iadede alıcının gerçek TCKN'si zorunludur ve "Yazılan TCKN'nin doğrulanmasında özel entegratör sorumludur." Kargolu iadede cac:Delivery/cac:DeliveryParty altında kargo firmasının VKN, unvan ve yetki belge numarası (<cbc:IndustryClassificationCode name="YETKIBELGENO">) zorunludur.

STOPAJ gösterimi — kılavuz boşluğu, iki yol birlikte kullanılmalı. Kılavuz V.1.0'da "stopaj/tevkifat/WithholdingTax" kelimeleri geçmez; TaxTotal örneği yalnız 0015'tir. Ancak:

  • giderPusulasi.xslt satır 1289 n1:CreditNote/cac:WithholdingTaxTotal/cac:TaxSubtotal döngüsünü render eder ve tutarı "Vergiler Dahil Toplam Tutar"ın üstüne basar.
  • Rapor tarafında (eArsiv.xsd) vergiBilgisiType içinde tevkifat alt elemanı yoktur; stopaj ancak vergi/vergiKodu = 0003 (GV Stopajı) veya 0011 (KV Stopajı) ile taşınabilir. GİB'in kendi ornek_rapor.xml'i tam olarak bunu yapar (iki adet <vergiKodu>0003</vergiKodu>).

Sonuç: belgede cac:WithholdingTaxTotal, raporda vergiKodu=0003/0011. PayableAmount'un stopaj düşülmüş hesaplanıp hesaplanmayacağı yazılı değildir (bkz. Açık Kalanlar).

Kılavuzun iki baskısı arasında BREAKING CHANGE var — ikisi de "V.1.0" diyor:

KonuKasım 2025 (17.11.2025)Mayıs 2026 (22.05.2026)
İade referansı@schemeID=FATURANO/OKCSERINO + tür DocumentDescription'da@schemeID doğrudan EARSIV_FATURA / SATIS_FISI / BELGESIZ; DocumentDescription yok
BELGESIZ iadeyokeklendi (TCKN zorunlu)
Sağlayıcı bloğuAccountingSupplierParty/…/cac:AgentParty…/cac:Contact/cac:OtherCommunication
SATIS kapsamıKDV mükellefi olmayanlardan alımlar+ depozitolu ambalaj iadesi

Korpustaki 4 örnek XML Mayıs 2026 sürümüyle uyumludur.

509 IV.6.3 zorunlu bilgiler: (a) alıcının (=belgeyi düzenleyen, UBL'de Supplier) kimlik/adres bilgileri, (b) tarih + saat ve dakika + belge no, (c) satıcının (=muhatap, UBL'de Customer) bilgileri, (ç) işin mahiyeti, bedeli, vergi ve varsa diğer kesintiler tutarı, (d) karekod/barkod. Tebliğ terminolojisi ile UBL rol adlandırması TERSTİR — portal ekranlarında birinci sınıf karışıklık kaynağı.

Uygulama yalnız e-Fatura'ya dâhil mükelleflerce ve yalnızca özel entegratör aracılığıyla kullanılabilir. İmza XADES-BES. Belge no = 3 hane alfanümerik birim kodu + 13 hane (4 yıl + 9 müteselsil) = 16 hane. Zorunluluk yalnız yazılı bildirim + en az 3 ay süre ile getirilir. Karekod JSON alanları (giderPusulasi.xslt satır 976-1012): vkntckn, avkntckn, senaryo, tip, tarih, no, ettn, parabirimi, malhizmettoplam, odenecek — e-Fatura karekodundaki vergitoplam/gvstopaj/merafonu yoktur.

e-Döviz ve Kıymetli Maden Alım-Satım Belgesi

Kök: UBL CreditNote. CustomizationID=TR1.2.1, ProfileID = EDOVIZBELGE | EKIYMETLIMADENBELGE, CreditNoteTypeCode = ALIM | SATIM. Belge no önekleri örneklerde: DAB / DSB / KAB / KMS. Şema/şematrondan geçmek için boş bir <cac:CreditNoteLine><cbc:ID/></cac:CreditNoteLine> taşınır.

Zorunlu(1): UBLExtensions, UBLVersionID, CustomizationID, ProfileID, ID, CopyIndicator, UUID, IssueDate, CreditNoteTypeCode, AccountingSupplierParty, AccountingCustomerParty, PricingExchangeRate, PaymentExchangeRate, LegalMonetaryTotal. Zorunlu(1..n): Signature, TaxTotal, CreditNoteLine. IssueTime kılavuzda "Seçimli (1)" yazılmıştır (kendi içinde çelişkili ifade).

Kıymetli maden birim kodları (7): XAU_22C çeyrek, XAU_22Y yarım, XAU_22T tam, XAU_22I ikibuçukluk, XAU_22B beşlik, XAU_24G 24 ayar gram, XAU_24G_1000 külçe. alim.xslt/satim.xslt ters yazımı da (22C_XAU vb.) tanır ve GİB'in kendi Kıymetli_Maden_Alım_Belgesi.xml örneği ters formu kullanmıştır → her iki forma tolerans şart.

MUSTERITURU (4): BANKA, GERCEKKISI, TUZELKISI, YETKILIMUESSESE. PaymentMeansCode (4): 10 Nakit, 55 Banka Kartı, 46 Havale, 68 Ödeme Sistemleri — ancak döviz örnekleri kod listesinde olmayan ZZZ (listID="UN/4461") kullanır (çelişki).

ÇELİŞKİ — AdditionalDocumentReference: Kılavuz gövdesi GUMRUKBEYANNAMETARIHI / GUMRUKBEYANNAMENO derken örnek XML ve alim.xslt GBTARIHI / GBNO kullanır; ayrıca kılavuz kimi yerde cbc:DocumentType, kimi yerde cbc:DocumentTypeCode yazar — örnekler ve XSLT'lerin tamamı cbc:DocumentTypeCode kullanır. Uygulanabilir olan örnek+XSLT tarafıdır. alim.xslt'in tanıdığı kodlar: ISTATISTIKNO, FATURANO, GELDIGIULKE, GELISNEDENI, GBTARIHI, GBNO, DBTTARIH, DBTSAYI, GMTYTARIH, GMTYSAYI. satim.xslt yalnız ISTATISTIKNO'yu tanır. FATURANO kılavuz metninde hiç geçmez (dokümante edilmemiş alan). satim.xslt'te ProfileID = 'EDOVIZBELGE ' testinde sonda fazladan boşluk vardır.

e-Sigorta Komisyon Gider Belgesi

Belge: UBL CreditNote; ProfileID = EARSIVBELGE (kendine özel senaryo yok), CreditNoteTypeCode = SIGORTAKOMISYONGIDERBELGESI, cac:InvoicePeriod zorunlu (örn. "MART - 2022"), Supplier'da ikinci PartyIdentification schemeID="TICARETSICILNO".

Komisyonlar kalem bazında cac:AllowanceCharge ile: iptal → ChargeIndicator=false + AllowanceChargeReason=IPTAL; istihsal → ChargeIndicator=true + Reason=Istihsal. Reason değerleri harf duyarlıdır (IPTAL tümü büyük, Istihsal yalnız baş harf). TUZAK: toplamlar ters eşlenir — ChargeTotalAmount = Toplam İptal Komisyonu, AllowanceTotalAmount = Toplam İstihsal Komisyonu (XSLT satır 1290-1390 bunu doğrular). UBL semantiğine göre terstir; XSLT'nin beklediği gibi üretmezseniz çıktı yer değiştirir.

Rapor şeması eArsiv_eSigortaKomisyonGiderBelgesi.xsd — kök eArsivRaporu, ns http://earsiv.efatura.gov.tr, choice: eSigortaKomisyonGider + eSigortaKomisyonGiderIptal. Alanlar: sigortaKomisyonGiderBelgeNo (kısıtsız string), UUID, ozetDeger, duzenlenmeTarihi, duzenlenmeZamani, donemBilgisi{baslangicTarihi,bitisTarihi}, paraBirimi, aliciBilgileri, odemeBilgileri{iptalKomisyonu?, istihsalKomisyonu?}, imzaZamani. İptal kaydında ise belge no 16 haneli idType — asimetrik. Şemadaki 4 xs:unique kısıtının field xpath'i earsiv:SigortaKomisyonBelgeNo yazar; gerçek eleman sigortaKomisyonGiderBelgeNokısıtlar hiç tetiklenmez. vergiBilgisiType (tevkifat dâhil), satisType, belgeTutarTipEnum gibi tipler tanımlı ama kullanılmaz (ölü kod).

509 IV.8 dayanağı: sigorta/emeklilik/reasürans şirketlerinin aracılara ödedikleri komisyonlar için aracı adına düzenledikleri, aracının keseceği fatura yerine geçen belge. Uygulama isteğe bağlıdır.

e-Sigorta Poliçesi

İki XSD karıştırılmamalıdır:

ePolice.xsdePoliceBelge.xsd
Katmane-Arşiv RAPORUBELGE (PDF'e attach edilecek XML)
KökeArsivRaporu (+eSigortaPolice, eSigortaPoliceIptal)eSigortaPolice
Namespacehttp://earsiv.efatura.gov.trnamespace yok (çıplak xs:schema)
XAdES import / baslik / ozetDegervaryok
kurulusBilgileriyokvar (9 alt alan)
bransType alan sayısı511 (+ghTutari, thgfTutari, ysvTutari ve döviz karşılıkları)

eSigortaPolice (belge) zorunlu sırası: eSigortaPoliceBelgeNo, UUID, duzenlenmeTarihi, duzenlenmeZamani, policeBaslamaTarihi, policeBitisTarihi, grupPoliceNo?, policeBilgileri{policeNo,yenilemeNo,zeyilNo}, policeParaBirimi, kurulusBilgileri, sigortaIslemTipi, sigortaBedeliLimitTipi, sigortaBedeli, sigortaBedeliDoviz?, acenteBilgileri, sigortaEttirenBilgileri(1..n), sigortaliBilgileri(1..n), riskBilgileri(1..n), bransListesi(1..n).

Kod listeleri: sigortaIslemTipi 1=Yeni Poliçe, 2=Tecditname, 3=Zeyilname, 4=Yürürlüğü Alma, 5=İştira, 6=Vade Gelimi, 7=İptal, 8=Vefat, 9=Diğer. sigortaBedeliLimitTipi 1=Limitli, 0=Limitsiz. kimlikTipi 1=TCKN, 2=VKN, 3=Pasaport, 4=YKN. riskKodu 1=UAVT, 2=Plaka, 3=IMO, 4=Diğer. Belge no 16 hane, pattern [A-Za-z0-9]{3}20[0-9]{2}[0-9]{9}.

Portalı doğrudan etkileyen kural: e-Arşiv Raporu hazırlanır ve XADES-A ile zaman damgalı imzalanır ama Başkanlık sistemine YÜKLENMEZ — "…'e-Arşiv Raporu' dosyalarını Başkanlık sistemine yüklemeyeceklerdir." Başkanlık duyuru ile uzaktan erişim veya e-Arşiv Uygulaması üzerinden gönderim isteyebilir. Poliçe XML'i PDF'e attach edilir; eklenen XML'in ayrıca imzalanması zorunlu değildir.

eArsiv.xsd rapor şeması ve raporda taşınan TÜM belge tipleri

Korpustaki xsd/eArsiv.xsd genel e-Arşiv rapor şeması DEĞİLDİR — kök eArsivRaporu olsa da choice'ı yalnız eGiderPusulasi ve eGiderPusulasiIptal içerir (satır 11-41'den doğrulandı). ornek_rapor.xml'in schemaLocation'ı bunu ele veriyor: file:/D:/e-Arşiv Projeler/Gider Pusulası/GıderPusulası/eArsiv(2).xsd.

eGiderPusulasiType — tam alan listesi (xs:sequence, sıra önemli): giderPusulasiBelgeNo (kısıtsız string), UUID, belgeTip (SATIS|IADE), gonderimSekli (KAGIT|ELEKTRONIK), ozetDeger, duzenlenmeTarihi, duzenlenmeZamani, paraBirimi, toplamTutar, odenecekTutar, vergiBilgisi{vergilerToplami + vergi(1..n){matrah, vergiKodu, vergiTutari, vergiOrani}}, aliciBilgileri{kisi(gercekKisi{tckn,adiSoyadi}|yabanci{pasaportNo,adiSoyadi}) + bilgiDetay{kod,tip,telefon}}, iadeDetay?{iadeBelgeTip,belgeNo,belgeTarihi}, operatorUygulamaBilgi (1..1 ZORUNLU) {yontem,saglayiciAdi,vkn}, kargoBilgi?{yetkiBelgeNo,vkn}, url, imzaZamani.

Enum'lar: iadeBelgeTip = EARSIV_FATURA | BELGESIZ | SATIS_FISI; yontem = IADE_PROVIDER | SMS_PROVIDER; bilgiDetay/tip = IADEKODU | SMS; telefon pattern 0[1-9][0-9]{9}. vergiKodu enum'u (29 kod, XSD sırasıyla): 0003, 0011, 0015, 0021, 0061, 0071, 0073, 0074, 0075, 0076, 0077, 1047, 1048, 4080, 4081, 4171, 9015, 9021, 9077, 8001, 8002, 4071, 8004, 8005, 8006, 8007, 8008, 9040, 9064. vergiOrani burada zorunlu, decimal(6,3), 0-300 aralığında.

GENEL e-Arşiv Raporunda taşınan TÜM belge tipleri (e-Arşiv Teknik Kılavuzu V.1.18, bölüm 3.2 — 14 ana eleman, korpustan birebir doğrulandı):

#Eleman#Eleman
1baslik8serbestMeslekMakbuzIptal
2fatura9serbestMeslekMakbuzuItiraz
3faturaIptal10bankReceipt (e-Dekont)
4faturaItiraz11bankReceiptIptal
5mustahsilMakbuz12adisyon
6mustahsilMakbuzIptal13adisyonIptal
7serbestMeslekMakbuz14zRapor (ÖKC günlük Z Raporu)

Bu listede giderPusulasi, eSigortaKomisyonGider, eSigortaPolice YOKTUR. Mimari kural: GİB her belge ailesi için aynı kök adı ve aynı namespace ile ayrı bir eArsivRaporu şema varyantı yayımlar → portal, gönderim tipine göre doğru şemayı seçen bir dispatcher kurmalıdır. baslik yapısı (versiyon, mukellef, hazirlayan, raporNo, donemBaslangic/Bitis, bolumBaslangic/Bitis, bolumNo, ds:Signature) ve vknType/tcknType/uuidType/idType/currencyCode yardımcı tipleri dört varyantta birebir aynıdır. idType her yerde: uzunluk 16, pattern [A-Za-z0-9]{3}20[0-9]{2}[0-9]{9}.

Genel e-Arşiv raporu gönderim süresi: günlük dönemler hâlinde, en geç izleyen günün sonuna kadar (1/1/2019'dan itibaren), XADES-A + zaman damgası, web servis ile. "SARJANLIK" tipinde anlık. PORTAL yöntemiyle dâhil olanlar rapor göndermez.

Schematron uyarısı: xsd/earsiv_schematron.xsl'in $NodeType değişkeni ',baslik,belge,belgeIptal,' içerir; oysa şema eGiderPusulasi/eGiderPusulasiIptal üretir → olduğu gibi devreye alınırsa her geçerli rapor "Geçersiz şema elemanı" hatası alır. Ana dizindeki genel sürümde ise zorunlu eleman listesinde bankReceipt, adisyon, zRapor yok, buna karşılık kılavuzda hiç geçmeyen mRapor ve ymRapor var — kılavuz tablosuyla çelişir.

e-Bilet: web servisi ve rapor dönemi

Web servisi (e-Bilet Uygulaması Webservis Kılavuzu V2.1 / Haziran 2016):

  • WSDL: https://portal.efatura.gov.tr/ebilet/services/EBiletWSPort?wsdl (test: test.efatura.gov.tr). SOAP ns http://webservice.ebilet.gib.gov.tr/. Etkinlik rapor kılavuzu V1.3 (2023) ise arayüz için portal.ebelge.gov.tr/ebilet/ verir — adres taşınmış olabilir, 2026 endpoint'i doğrulanamadı.
  • İki metot: sendDocumentFile (Attachment olarak ZIP; içinde aynı isimde XML; ZIP en fazla 5 MB) ve getBatchStatus (paketAdi ile en güncel durum).
  • Güvenlik: WSS ile Timestamp + Body imzalanır; key identifier DirectReference; SignatureMethod zorunlu …xmldsig-more#rsa-sha256.
  • Hata kodları — sendDocumentFile: 401 yetkilendirme, 402 kayıtlı kullanıcı değil, 403 attachment null, 404 paket adı boş, 405 içerik boş, 406 boyut aşımı, 407 datahandler, 408 geçersiz paket adı, 409 imza sahibinin yetkisi yok, 410 veritabanı, 411 daha önce yüklenmiş, 412 disk, 413 kuyruk. getBatchStatus: 503 veritabanı, 504 geçersiz paket adı, 505 sorgulama yetkisi yok, 506 paket bulunamadı.
  • Paket adı: VKN/TCKN-YYYYAA-EB-000000.zip; parçalı yüklemede 000001'den başlar; aynı ayda 000000 ile 000001 birlikte gönderilemez; önceki parça/dönem gönderilmeden sonraki gönderilemez; başlıkta BILET türü varsa paket adında EB olmalıdır.

Rapor dönemi: "en çok aylık dönemler itibariyle hazırlayacakları 'e-Bilet Raporlarını', ait olduğu ayı takip eden ayın 15 inci … günü saat 24:00'e kadar … imzalamak ve Başkanlık sistemine yüklemek zorundadırlar." Bu hüküm hem Etkinlik V.1.3 hem Karayolu/Denizyolu V.2.3 kılavuzunda birebir aynıdır (korpustan doğrulandı). İmza XAdES-A, enveloped, zaman damgalı, ebilet:baslik içindeki ds:Signature'a konur. Belge PDF ise PAdES.

Etkinlik raporu blokları: baslik (gonderen, baslangicTarihi, bitisTarihi, version, uuid, Signature), bilet (biletNo, ozetDeger, duzenlemeTarihi, odemeSekli, tutar, kdv, giderGosteren, hizmetinNevi, etkinlik zamanı, yer, organizatör, digerVergiler, biletUrl — V1.3 ile zorunlu), biletIptal (biletNo, iptalZamani, tutar, Kdv). Sinema: e-Bilet Bilgi Fişi/Toplu Bilgi Fişi/Fatura Bilgi Fişi üç kademesi; Eğlence Vergisi izleyen ayın 20'nci günü akşamına kadar.

GMÖEBYS'in portalla ilgisi

GMÖEBYS = Güvenli Mobil Ödeme ve Elektronik Belge Yönetim Sistemi, dayanak 507 SN VUK GT (RG 01.06.2019-30791), teknik kılavuz Sürüm 1.0 / 30.12.2019. Aktörler: İşletici Kuruluş (banka/ödeme kuruluşu ya da ÖKC üreticisi + özel entegratör; asli sorumlu), Özel Entegratör (e-Belge üretir; GİB'e karşı müşterek ve müteselsil sorumlu), kullanan mükellef (vergiden muaf esnaf ve basit usul dâhil), TÜBİTAK KamuSM (İşletici Kuruluş Güvenli Mali Sertifikası).

Portalla ilgisi doğrudandır: sistem kendi başına e-Belge üretemez, mutlaka bir ÖE'ye bağlanır. Bağlayıcı gereklilikler: (1) tüm mali işlemler ÖE aracılığıyla ANLIK e-Belgeye dönüşür; (2) çevrimiçi çalışma esastır — ÖE ile çevrimiçi olunmayan durumda GMU mali işlemi gerçekleştirmez; (3) GMU↔ÖE iletişimi ve ÖE'nin e-Belge servisleri aylık %99,75 kullanılabilirlik; (4) kart ödemesinde slipteki temel ödeme bilgileri e-Belgenin içinde; (5) her e-Belgede GMU'nun sürüm numarası bulunmalı; (6) mal/işin nev'i genel-soyut isimlerle (yiyecek, içecek, gıda, ilaç) tanımlanamaz; (7) vergiden muaf esnafta mali değeri olmayan Bilgi Fişi; (8) basit usul ve gerçek usulde vergilenmeyen çiftçilerde fatura/müstahsil makbuzunda KDV tutarı yer almaz. Zorunlu mali raporlar: Günlük/Aylık/İki Tarih Aralığı Satış Raporu, Düzenlenen Belgeler Raporu, Bilgi Fişleri Raporu, Başkanlıkça belirlenecek raporlar. Ödeme türleri: Nakit; Banka/Kredi Kartı (NFC/HCE/QR dâhil); Senet-Çek-Açık Hesap-Kredili; Havale/EFT; Hediye Kartı; Belediye Ulaşım/Yardım Kartları; Yemek Kartı-Çeki (bilgi fişi).

Ayrıca GMÖEBYS kullanıcıları e-Arşiv fatura icmali ile toplu yevmiye kaydı yapabilen 5 gruptan biridir ve "NİHAİ TÜKETİCİ" e-Arşiv Faturası düzenleyebilir (509 V.2).


Kalan mevzuat

591 SN VUK GT — Taksi Mali Cihaz (TMC)

RG 13/02/2026-33167, yayımı tarihinde yürürlükte. Dayanak VUK 149, mük. 242, mük. 257. İki TMC tipi: fiş düzenleyen ve e-Belge düzenleyen.

  • Md. 12: Taksiyle yolcu taşımacılığı yapanlar (basit usul dâhil) 1/9/2026'ya kadar TMC kullanmaya başlamak zorundaydı; GİB'in 28.08.2026 duyurusu ile bu tarih 16/11/2026'ya uzatıldı (Md. 16/1-a'daki "altı ayı geçmemek üzere" yetkisine dayanarak). Cihaz kullanımından sonra 15 gün içinde üye iş yeri anlaşması; yapılmazsa cihaz pasife alınır.
  • Md. 13 (portalı doğrudan ilgilendirir): Bedel fatura düzenleme haddini aşıyorsa veya fatura talep edilirse, TMC fişi müşterinin TCKN/VKN'sini içermek şartıyla fatura yerine geçen belge sayılır. e-Belge düzenleyebilen TMC'lerde, haddin altındaki bedeller için düzenlenen e-Arşiv Faturaya "NİHAİ TÜKETİCİ" yazılabilir.
  • Md. 14: Bildirim yükümlülüğü TMC üreticilerine aittir. Md. 15: VUK ceza hükümleri.
  • Teknik Kılavuz Sürüm 2.0 (17.08.2026), Bölüm E — en kritik bulgu: e-Belge düzenleyen TMC, e-Belgeyi kendisi üretmez; TMC üreticisinin sorumluluğunda ve ÖZEL ENTEGRATÖR aracılığıyla ANLIK üretir. ÖE'nin GİB'e karşı müşterek ve müteselsil sorumluluğu vardır; çevrimiçi çalışma esastır; aylık %99,75 SLA; çevrim dışı çalışma için ayrı GİB izni ve "Çevrim Dışı Sistem Mimarisi" dokümanı gerekir. Mutabakatsızlık 6 saat içinde GİB Teknoloji'ye bildirilir.
  • Çıktı farkları: "e-Belge üzerinde satıcıya ait hazır imza bulunmak zorundadır"; karekod özel entegratör tarafından oluşturulan linki içermeli ve okutulunca hem görsele hem imzalı XML'e erişim/indirme sağlamalı; "İmza Değeri alanında özel entegratör tarafından imzalanan e-Belgenin imza değerinin ilk 20 karakteri" — anlık imzalanamazsa *****.

593 SN VUK GT — YN ÖKC'lerden e-Belge

RG 08/05/2026-33247, 8 madde, yayımı tarihinde yürürlükte. Md. 4:

  • (1) Hangi e-Belgelerin düzenlenebileceği tebliğle değil, ynokc.gib.gov.tr / ebelge.gib.gov.tr kılavuzlarıyla belirlenir.
  • (3) "YN ÖKC'lerden düzenlenen e-Belgeler, YN ÖKC mali sertifikaları ile elektronik olarak imzalanması işletmeci veya imzaya yetkili kişilerin imzası yerine geçer."
  • (6) "İzin alan YN ÖKC üreticileri … özel entegratörler ile aynı görev ve sorumluluklara sahiptir."

Portala etkisi — üç somut sonuç:

  1. Rekabet vs. kanal: 593'te ÖKC üreticisi ÖE'nin yerine geçebilir (perakende segmentinde portalın ÖE gelirine ikame). 591'de ise durum tersidir — e-Belge düzenleyen TMC üreticisi mutlaka bir ÖE ile anlaşmak zorundadır → portal için yeni B2B müşteri.
  2. İmza modeli: klasik yöntemde mükellefin mali mührü/NES'i veya (talebiyle) ÖE'nin mührü; 591'de ÖE'nin imzası; 593'te cihazın mali sertifikası. Portalın imza katmanı bu üçüncü seçeneği desteklemez.
  3. Belge kapsamı: taslak formatlar kılavuzunda e-Fatura, e-Arşiv Fatura, e-İrsaliye, e-SMM, e-MM, e-Gider Pusulası, e-Bilet (3 alt tür), e-Adisyon başlıkları var.

OKC/TMC üzerinden e-Arşiv ile PORTAL üretimi farkı:

KonuGİB PortalÖzel entegratör / entegrasyon (ÖKC-TMC dâhil)
Belge no yapısı3 hane birim kodu + 13 hane sıra noAynı
Birim kodu"GIB" birim kodu sadece portal kullanıcılarına ait"GIB" kullanılamaz; kendi kodu; e-Arşiv kodu e-Faturadan farklı; internet satışları için ayrı kod
e-Arşiv Raporugönderilmezgünlük, en geç izleyen günün sonuna kadar, XADES-A + zaman damgası, web servis
ETTNGİB sistemi üretirBelgeyi oluşturan taraf üretir ve raporlar (faturaUUID V.1.16'dan beri zorunlu)
İmzaMükellefin mali mührü/NES'iMükellefin mührü veya ÖE'nin mührü; 593'te cihaz sertifikası; 591'de ÖE imzası
Ek raporlaryokÖKC: Z/Günlük Satış/Aylık Satış/Denetim; TMC: Günlük Satış + Günlük İstatistik (TMC GMP2, TMC MYS üzerinden)

509 V.4 tam kural: "Belge numarası içerisinde yer alan sıra numarası, 4 karakter yıl ve 9 karakter müteselsil numaradan oluşmaktadır. Her bir birim koduna ait sıra numarası kendi içinde oluşturulur … 9 karakterlik müteselsil numara, her yılın ilk günü itibarıyla '1' rakamından başlatılarak kullanılır. Mükellef bünyesinde aynı belge numarası birden fazla kullanılamaz." e-Dekont istisnası: en az 4 hane birim kodu + en az 14 hane sıra no. Hava yolu e-Biletlerinde IATA kodlu 13 haneli bilet no kullanılabilir.

Ek olarak 509 V.1.1: "Başkanlık tarafından e-Belge Portalleri üzerinde tanımlanmamış ve uygulama konulmamış e-Belgelerin GİB Portal yöntemi ile düzenlenmesi ve muhataplarına iletilmesi mümkün değildir." → e-İrsaliye, e-Adisyon, e-Gider Pusulası, e-Sigorta, e-Döviz gibi belgelerde özel entegratör kanalı fiilen zorunludur. GİB e-Fatura Portalı kılavuzu hâlâ v1.5 / Kasım 2013 ve aylık 500 adet fatura sınırı + Java JRE 1.6 gerektirir — ticari portal lehine güçlü bir satış argümanı.

VUK 231/5 — Fatura düzenleme süresi

7338 sayılı Kanun VUK 231'i DEĞİŞTİRMEMİŞTİR. 231/5'i en son değiştiren 7318 sayılı Kanun'dur (RG 30/04/2021-31470, Md. 1). Ayrıca "ayın sonunu geçmemek şartıyla" ibaresi kanun metninde YOKTUR — bu, KDV'nin vergiyi doğuran olay döneminde beyanı zorunluluğundan doğan idari yorumdur.

GÜNCEL METİN (md. 231, bent 5): "Fatura, malın teslimi veya hizmetin yapıldığı tarihten itibaren azami yedi gün içinde düzenlenir. (Ek cümle:29/4/2021-7318/1 md.) Hazine ve Maliye Bakanlığı; mal veya hizmetin nev'i, miktarı, fiyatı, tutarı, satışın yapılma şekli, faaliyet konusu, sektör veya mükellefiyet türünü ayrı ayrı veya birlikte dikkate alarak, bu süreyi indirmeye ya da faturanın malın teslim edildiği veya hizmetin yapıldığı anda düzenlenmesi zorunluluğu getirmeye yetkilidir. Bu süreler içerisinde düzenlenmeyen faturalar hiç düzenlenmemiş sayılır."

ESKİ HÂLİ (30/4/2021 öncesi): "Fatura, malın teslimi veya hizmetin yapıldığı tarihten itibaren azami yedi gün içinde düzenlenir. Bu süre içerisinde düzenlenmeyen faturalar hiç düzenlenmemiş sayılır." (7318 iki şey yaptı: Bakanlık yetkisi cümlesini ekledi, son cümledeki "süre"yi "süreler" yaptı.) Tarihçe: süre başlangıçta on gün idi; 5035 sayılı Kanunun 48. maddesiyle yedi güne indirildi.

Portal için teknik takip: GİB süreyi imzalanma anı üzerinden takip ediyor — "Faturanın düzenlenmesi imzalanma aşaması ile tamamlandığından, bahse konu sürenin hesabında … bu tarihin dikkate alınması gerekmektedir" (GİB e-Fatura SSS 0072029) ve 01.07.2024'ten itibaren e-Arşiv raporlarında "İmza Zamanı" (SigningTime) alanı zorunlu hâle geldi. Süre hesabında teslim günü sayılmaz, ertesi günden başlanır; Pazar ve resmî tatiller süreye dâhildir. [TEK KAYNAK] — bu üç yorum GİB SSS'nin ikincil aktarımına dayanıyor; birebir GİB sayfası bu turda çekilmedi.

VUK 234 — Gider pusulası süresi

EVET, gider pusulasına 7 gün süresini 7338 sayılı Kanunun 23. maddesi getirmiştir (yürürlük 1/11/2021; konsolide metinde "14/10/2021-7338/23 md." kabul tarihiyle görünür).

Eklenen 4. fıkra: "Gider pusulası, malın teslimi veya hizmetin yapıldığı tarihten itibaren azami yedi gün içinde düzenlenir. Bu süre içerisinde düzenlenmeyen gider pusulası hiç düzenlenmemiş sayılır."

Eklenen 5. fıkra — gider pusulası YERİNE GEÇEN belgeler: (a) bedelin 7 gün içinde banka, yetkilendirilmiş ödeme kuruluşları veya PTT A.Ş. aracılığıyla ödenmesi hâlinde bu kurumların düzenlediği belgeler; (b) 6502 sayılı Kanun kapsamında iade edilecek tutarların aynı kurumlar aracılığıyla iadesinde düzenlenen belgeler; (c) belge düzenleme zorunluluğu bulunmayan kamu kurum ve kuruluşlarının belgeleri. 6. fıkra: usul ve esasları belirlemeye Hazine ve Maliye Bakanlığı yetkilidir.

Kapsam genişlemesi: Eski metinde gider pusulası yalnız (i) vergiden muaf esnafa yaptırılan işler/ondan alınan emtia ve (ii) şahıslardan alınan altın-mücevher gibi kıymetli eşya içindi. Yeni metinde "bu Kanun kapsamındaki belgeleri düzenleme zorunluluğu bulunmayanlar" ile yapılan tüm işlemler kapsama girdi (gerçek usulde vergilendirilmeyen çiftçilerden alımlar hariç — onlar müstahsil makbuzu). Ayrıca birinci fıkraya "Vergiden muaf esnaf için düzenlenen gider pusulası, bu kişiler tarafından verilmiş fatura hükmündedir" cümlesi korunmuştur.

573 SN Tebliğ Md. 15 ile 509'un V.5.6'sına eklenen fıkra, gider pusulasının ıslak imza yerine "muhatabın bilgilerinin bilgi teknolojileri ve/veya iletişim araç ve ortamları üzerinden doğrulanması" ile düzenlenmesine izin verir — SMS KODU / İADE KODU tam olarak bunun somut uygulamasıdır. Aynı ikame e-Müstahsil Makbuzu için Md. 14 ile getirilmiştir.

VUK 232 — Fatura düzenleme tutar haddi

Madde metni: "Yukarıdakiler dışında kalanların, birinci ve ikinci sınıf tüccarlar ile kazancı basit usulde tespit edilenlerden ve defter tutmak mecburiyetinde olan çiftçilerden satın aldıkları emtia veya onlara yaptırdıkları iş bedelinin 50.000.000 (12.000 TL) lirayı geçmesi veya bedeli … az olsa dahi istemleri halinde emtiayı satanın veya işi yapanın fatura vermesi mecburidir."

2026 haddi: 12.000 TL (KDV dâhil) — 588 SN VUK GT, RG 31/12/2025-33124 (5. Mükerrer), yürürlük 1/1/2026; 2025 yeniden değerleme oranı %25,49. (mevzuat.gov.tr konsolide metnin 62 no.lu dipnotu bu tebliğ için "30/12/2025" der; RG arşivi 31/12/2025 gösteriyor — dipnot hatalı görünüyor.) 7338 ve 7318 VUK 232'yi değiştirmemiştir.

YılTutar (TL)TebliğYılTutar (TL)Tebliğ
201277041120201.400513
201380042220211.500522
201480043220222.000534
201588044220234.400544
201690046020246.900554
201790047620259.900577
20181.000490202612.000588
20191.200504

[TEK KAYNAK] — bu tablonun 2012-2023 satırları TÜRMOB pratik bilgiler tablosuna, 2024-2026 satırları PKF/588 SN GT aktarımına dayanıyor; her yılın tebliğ metni tek tek birincil kaynaktan doğrulanmadı. 2026 değeri (12.000 TL) ve 588 SN GT künyesi ise güvenilir biçimde teyit edildi.

İki özel durum: (1) Kuyumculuk/sarraflık/mücevheratçılık — işlenmiş kıymetli maden ve taş satışlarında had 3 katı (514 SN GT, 1/1/2020'den itibaren) → 2026 için 36.000 TL. (2) "NİHAİ TÜKETİCİ" e-Arşiv Faturası — 483 SN GT md. 6/1 ile ÖKC muafiyeti olanlar ve GMÖEBYS kullananlarda, vergiler dâhil tutarın bu hadde kadar olduğu perakende satışlarda müşteri bilgileri yerine "NİHAİ TÜKETİCİ" yazılır ve belge perakende satış fişi / ÖKC fişi olarak kabul edilir. Bu eşik 550 SN VUK GT (RG 07/10/2023-32332) ile 500 TL'den fatura haddine bağlanmıştır (509 dipnot 66'dan doğrulandı).

2026'nın ilgili diğer hadleri (588 SN GT): VUK 313 doğrudan gider yazma haddi 12.000 TL; VUK 353/1 özel usulsüzlük cezası ilk tespitte 17.000 TL; VUK 353/2 ilk tespitte 35.000 TL; izaha davet tutar sınırı 870.000 TL.

Ba/Bs bildirimleri

Ba/Bs KALDIRILMIŞTIR — 2026 için bir Ba/Bs haddi YOKTUR. 565 SN VUK GT (RG 25/09/2024-32673): "Eylül 2024 dönemi bildirimlerinden başlamak üzere Form Ba ve Form Bs bildirimlerinin verilmesi uygulamasına son verilmesi"; 362, 381 ve 396 SN Tebliğler Eylül 2024'ten itibaren yürürlükten kaldırıldı; yürürlük 1/10/2024. Eski rejimde had KDV hariç 5.000 TL idi ve 2010'dan 2024'e hiç güncellenmedi.

"Sanal Ba/Bs" GİB'in resmî terimi değildir — hiçbir tebliğ veya kılavuzda geçmez [TEK KAYNAK / DOĞRULANAMADI]. Meslek mensuplarının, GİB'in e-belge verilerinden Ba/Bs muadili veri setini arka planda üretmesini anlatmak için kullandığı bir tanımlamadır. Zincir: 2021'de e-belgeler Ba/Bs'den çıkarıldı + İptal/İhtar/İtiraz bildirimi zorunlu hâle geldi → 2024'te Ba/Bs tamamen kaldırıldı.

Portal için sonuç: Ba/Bs mutabakat modülü artık yasal zorunluluk değildir ve öyle pazarlanmamalıdır; bunun yerine İptal/İhtar/İtiraz Bildirim modülü kritik hâle gelmiştir (kılavuzlar: e-Fatura_Iptal_Ihtar_Itiraz_Bildirim_Kilavuzu_V_1.2, e-Arsiv_Uygulamalari_Iptal_Ihtar_Itiraz_Bildirim_Kilavuzu_V.1.1).

Özel entegratör olmak: şartlar ve BİS denetimi

Hukuki çerçeve (509 V.1.2): "Özel entegratörlük izni almak isteyen mükellefler … özel entegrasyon talebini içeren bir dilekçe ve ekinde Özel Entegrasyon Bilgi İşlem Sistem Raporu (BİS) ile Başkanlığa başvuru yapacaklardır." Yazılım/donanım altyapısının Türkiye Cumhuriyeti sınırları içerisinde bulunması zorunludur. Ticari sır yükümlülüğü; ihlalde izin iptali. Aykırılıkta VUK cezaları + izin iptali, iptalden itibaren bir yıl yeni başvuru değerlendirilmez.

Operasyonel şartlar (e-Fatura Özel Entegrasyon Kılavuzu v1.14, Haziran 2026):

  • Bağlantı web servis, iletim EF-VAP protokolüne uygun.
  • Test süreci en geç 1 yıl içinde tamamlanmalı; tamamlayamayanın başvurusu reddedilir.
  • TÜRKAK akrediteli: ISO 27001, ISO 22301, ISO 20000. En az birine sahip olanlar, eksikler için BİS raporunda temin planı + taahhüt sunabilir. Türkiye'de faaliyet gösteren bankalar için bu standartlar aranmaz (BİS'te açıklamak kaydıyla).
  • "Sistem yönetim süreçleri ITIL uyumlu olmalı ve sistem ITIL sertifikalı personel tarafından yönetilmelidir."
  • Mükellef geçişleri: portal kullanan ÖE'ye geçerse portal hesabı kapatılır; ÖE hesabı kapanınca portal yeniden açılır. Birden fazla ÖE'den hizmet alınabilir; ancak ÖE kullananlar GİB Portal ve doğrudan entegrasyondan yararlanamaz.
  • e-Arşiv tarafı (Başvuru Kılavuzu v1.8, Mayıs 2026): her belge türü için ayrı ayrı dilekçe — e-Arşiv Fatura, e-SMM, e-MM, e-Dekont, e-Döviz ve Kıymetli Maden Alım Satım Belgesi, e-Adisyon, e-Sigorta Komisyon Gider Belgesi, e-Gider Pusulası + BİS Raporu + üç ISO belgesi + kâğıt/elektronik belge ve rapor örnekleri; başvuru posta yoluyla.

ÖEBSD / BİS denetimi (e-Belge Özel Entegratörleri Bilgi Sistemleri Denetimi Kılavuzu, Kasım 2019 Sürüm 1.0):

  • Kılavuzun yayımından sonraki tüm ÖE başvurularında ÖEBSD yaptırılmış olması ve dosyaya "ÖEBSD Görüş Yazısı ve Raporu" eklenmesi zorunludur.
  • İlk denetim hariç iki yılda bir; rapor 2 yıl geçerli. Denetimden en az 1 ay önce güncel BİS raporu GİB'e ve denetçiye gönderilir; sonuç en geç 15 gün içinde GİB'e iletilir. Aynı denetçiden sıralı en fazla 2 kez, aynı tüzel kişiden (ekip değişerek) 5 kez. Denetim COBIT (4.1 veya 5) ve ISO standartlarına göre.
  • Birincil varlıklar en az 10 yıl korunur; silme ancak silme kayıtları tutularak mümkündür. Muhafaza TC sınırları içinde.
  • Kripto: anahtarlar yalnızca HSM'de, HSM en az FIPS 140-2 Düzey 3 veya EAL 4+; AES-256 / RSA-2048 / SHA-2; şifreleme cihaz üzerinde. Şifreler en geç 90 günde bir değişir.
  • Sızma testi yılda en az bir kez (ağ, işletim sistemi/platform, uygulama, veri tabanı, web, mobil); son iki rapor denetçiye ibraz edilir.
  • İş sürekliliği: aylık %99,75 kullanılabilirlik; veri tabanı/uygulama/ağ/güvenlik duvarı aktif yedekli; FKM farklı bir ilde, veri tabanının en fazla 30 dakika gecikmeli yedeği, kesintiden sonra FKM'ye geçiş 6 saati aşmamalı (ISO 22301); yılda bir kez en az iki senaryolu tatbikat.
  • Değişiklik yönetimi: sürüm tarihçesi 5 yıl; geliştirme/test ortamı canlı ile aynı alt ağda olamaz. Denetim izleri en az 10 yıl; gerçek zamanlı analiz + otomatik uyarı, ayda bir gözden geçirme, 3 ayda bir değerlendirme.
  • Dış hizmet alımı: sözleşme 15 gün içinde GİB'e bildirilir; HSM taşerondaysa münhasıran ÖE'ye adanmış olduğu sözleşmede yazmalı; "Denetçinin … taşeronun … tesislerine erişiminin engellenmesi, denetim görüşünün 'olumsuz' olması için yeterlidir."
  • Personel: ağ ve ağ güvenliği uzmanı, veri tabanı uzmanı, sistem uzmanı, kalite sistemleri uzmanı, yazılım geliştirme uzmanı, konfigürasyon yöneticisi, test uzmanı — "Bu rollerde ikiz görev kabul edilmez." Kadro planı ve personel bildirimi 15 gün içinde GİB'e.
  • Görüş ve yaptırım: Olumlu → 15 gün içinde eylem planı. Şartlı görüş / görüşten kaçınma → 90 gün içinde denetim tekrarı; üst üste 2 kez olursa faaliyet askıya alınır (2 kez görüşten kaçınmada askı 3 aydan kısa olamaz). Olumsuz → faaliyet ivedilikle geçici durdurulur; 6 ay içinde olumlu rapor gelmezse yetki iptal.

Zorunlu saklama süresi

509 SN GT bölüm VI sayı vermez, "yasal süreler" / "kanuni süreler" der: mükellefler e-Belgeleri Mali Mühür veya elektronik imzayı da içerecek şekilde kendi bünyelerindeki elektronik/manyetik/optik ortamlarda muhafaza eder; kâğıda basarak saklamak söz konusu değildir. Yükümlülük "arşivlenen belgelerin doğruluğuna, bütünlüğüne ve değişmezliğine ilişkin her türlü elektronik kayıt ve veri, veri tabanı dosyası, saklama ortamı ile doğrulama ve görüntüleme araçlarının tümünü" kapsar (yani XSLT'ler ve doğrulayıcılar dâhil). Muhafaza TC sınırları içinde zorunludur; yurt dışında ikincil arşiv serbesttir. Başkalarına saklama hizmeti verecekler "Elektronik Belge Saklama Hizmeti Başvuru Formu ve Taahhütnamesi" + BİS ile izin almak zorundadır; izinsiz saklama GİB nezdinde hüküm ifade etmez. Üçüncü kişiye saklatmak asli sorumluluğu kaldırmaz.

Somut süreler (korpus dışı — VUK/TTK metinlerinden): VUK 253 → ilgili yılı takip eden takvim yılından başlayarak 5 yıl; TTK 82 → ticari defter ve belgelerde 10 yıl; e-Defter kopyaları GİB/ÖE sisteminde asgari 10 yıl (ED Tebliği 4.4.1/e); özel entegratörün birincil varlıkları en az 10 yıl (ÖEBSD). Pratikte bağlayıcı olan 10 yıldır.


Açık Kalanlar

Aşağıdaki noktalar bu araştırmada kapatılamadı; portal geliştirilirken GİB'e veya çalışılacak özel entegratöre yazılı olarak sorulmalıdır.

e-Defter

  1. GİB ay ay somut tarihli resmî bir 2026 berat takvimi yayımlamıyor; Tebliğ 4.3.4 kural bazlıdır. Somut tarih ancak (a) kural, (b) resmî tatil kaydırması, (c) VUK sirküleri uzatmaları katmanlarıyla bulunur — portalın takvim modülü üç katmanı da modellemelidir.
  2. Aralık (hesap döneminin son ayı) için somut tarih GV/KV beyanname aylarına bağlıdır; 2026 hesap dönemi için bu ayların değişip değişmediği birincil kaynaktan doğrulanmadı, türetme yapılmadı.
  3. DOĞRULANAMADI Üçüncü taraf özetinde geçen "Envanter Defteri Kılavuzu 21.04.2026'da güncellendi" iddiası — 31.08.2026'da indirilen resmî pakette kılavuz hâlâ V1.0 / 26.09.2025. Bu iddia kullanılmamalıdır.
  4. e-Defter Web Servis Kılavuzu V.1.7 (22.05.2024) incelenmedi: SOAP endpoint'leri, metot imzaları, WSDL, kimlik doğrulama, hata kodları ve eşanlı yükleme servisinin çağrı yapısı bilinmiyor.
  5. e-Defter Başvuru Kılavuzu V.2.1 ve Elektronik Başvuru Rehberi V.1.1 incelenmedi; Dijital Vergi Dairesi ekran akışları ve envanter başvuru/iptal dilekçesi detayı bilinmiyor.
  6. Uyumlu yazılım firmalarının güncel listesi çekilemedi (sayfa JS ile render ediliyor) — Logo/Mikro/Netsis/Luca'nın hangi ürün adlarıyla onaylı olduğu tespit edilemedi. Kayıtlı kullanıcı/mükellef sayısı istatistikleri de alınmadı.
  7. Defter Raporu Beratının yeniden başlatıldığına dair duyuru 31.08.2026 itibarıyla bulunamadı; 05.06.2024 durdurma duyurusu hâlâ en güncel açıklamadır.
  8. DOĞRULANAMADI GİB'in berattaki 391/191/600/601/602 verilerini e-Fatura/e-Arşiv ile fiilen çapraz kontrol ettiğine dair resmî beyan yok; bu, yapının teknik amacından çıkarılmış güçlü bir yorumdur.
  9. 2 Sıra No.lu ED Tebliği'nin RG tarih/sayısı tespit edilemedi (konsolide metnin dipnotları 3-4-5-6 için künye veriyor, 2 için vermiyor).
  10. Envanter defterinin içerik detayı (XBRL GL elemanları, stok/alacak/borç işaretlemesi, örnek XML) ayrıntılı incelenmedi.
  11. TTK'daki diğer ticari defterlerin (pay defteri, YK karar defteri, genel kurul defteri) elektronik ortamda tutulmasına ilişkin Ticaret Bakanlığı/MERSİS düzenlemesi doğrulanmadı — GİB e-Defter kapsamı dışındadır.

Yardımcı belge paketleri

  1. e-Gider Pusulası RAPORUNUN gönderim süresi hiçbir yerde yazmıyor. Kılavuz V.1.0 (Mayıs 2026) süre/adres/web servis anlatmıyor; ornek_rapor.xml aylık dönem gösteriyor, genel e-Arşiv raporu ise günlük. Bu çelişki korpustan çözülemedi.
  2. e-Gider Pusulası ve e-Sigorta Komisyon raporlarının hangi WSDL/uç noktaya, hangi paket adlandırmasıyla gönderileceği bilinmiyor (e-Bilet'te VKN-YYYYAA-EB-000000.zip standardı var, bunlarda karşılığı yok).
  3. Stopajın yeri yazılı değil: TaxTotal içinde mi (0003), WithholdingTaxTotal içinde mi, yoksa ikisinde birden mi; WithholdingTaxTotal kullanıldığında PayableAmount stopaj düşülmüş mü hesaplanacak? Kılavuz hiçbirini söylemiyor.
  4. SMS/İADE kodunun üretim kuralları tanımsız: uzunluk, format, geçerlilik süresi, tekillik, doğrulama akışı hiçbir kaynakta yok; örneklerde placeholder metin var. SMS_PROVIDER/IADE_PROVIDER sağlayıcılarının GİB nezdinde kayıtlı olup olmadığı, bir sağlayıcı listesi bulunup bulunmadığı bilinmiyor.
  5. 573 SN Tebliğ'in "bilgi teknolojileri ile doğrulama"dan kimlerin yararlanacağı ve başvuru esasları kılavuza bırakılmış; ilgili kılavuz/duyuru korpusta yok.
  6. acenteKimlikTipi'nin sayısal değer eşlemesi (hangi sayı gerçek, hangisi tüzel) kılavuzda verilmemiş. hazineBransKodu (SEDDK) değer listesi korpusta yok.
  7. e-Sigorta Komisyon Gider Belgesine ait teknik kılavuz korpusta yokProfileID=EARSIVBELGE tercihi, alternatif tip kodları, AllowanceChargeReason'ın başka değer alıp alamayacağı ve toplamların ters eşlenmesinin kasıtlı mı hata mı olduğu doğrulanamadı.
  8. e-Sigorta Komisyon ve e-Sigorta Poliçesi için resmî şematron dosyası korpusta yok (poliçe kılavuzu "yayınlanan şema ve şematron kurallarına uygun olmalıdır" dese de).
  9. xsd/earsiv_schematron.xsl'in NodeType uyuşmazlığının GİB paketindeki bir hata mı, yoksa gerçek doğrulama servisinde farklı bir schematron mu kullanıldığı bilinmiyor. Aynı şekilde genel schematron'un bankReceipt/adisyon/zRapor içermemesi ama mRapor/ymRapor içermesi çözülemedi.
  10. Her iki XSD'deki xs:unique kısıtlarının yanlış field xpath'leri karşısında GİB'in gerçek doğrulayıcısının tekillik kontrolünü nasıl yaptığı bilinmiyor.
  11. e-Bilet WSDL adresi: kılavuz V2.1 (2016) portal.efatura.gov.tr, Etkinlik V1.3 (2023) portal.ebelge.gov.tr diyor; 2026 itibarıyla güncel endpoint doğrulanamadı. e-Bilet raporunun XSD dosyası korpusta yok (yalnız kılavuz tablosu var); "e-Bilet Yolcu Listesi Raporu" incelenmedi.
  12. Kıymetli maden örneklerinde cac:Signature hiç yok, oysa kılavuz Zorunlu(1..n) diyor — örneklerin mi eksik olduğu doğrulanamadı.
  13. e-Döviz/Kıymetli Maden belgeleri için raporlama var mı? V1.2 kılavuzda hiç geçmiyor; e-Arşiv raporunda karşılığı yok. Ayrıca "GİB Sanal Alıcısı (VKN 3900892152)" ifadesi V1.1 ile kaldırıldıktan sonra belgelerin GİB'e nasıl iletileceği açıklanmamış.
  14. GMÖEBYS kılavuzu Sürüm 1.0 / 30.12.2019 — 507'nin sonraki değişiklikleri, izinli İşletici Kuruluş listesi ve sistemin 2026'daki yaygınlığı doğrulanmadı. GMU→ÖE arası protokol de standardize değil: "İşletici Kuruluş yazılımsal metodu seçmekte özgür ve bağımsızdır."
  15. UBL-TR Kod Listeleri V1.43'ün metin çıkarımında vergi kodları tablosunun "VERGİ ADI" sütunu iki satır kaymıştır (0015 satırında "Gelir Vergisi Stopajı" yazıyor). Eşleme kısaltma sütunundan çıkarıldı (0003=GV STOPAJI, 0011=KV STOPAJI, 0015=KDV GERCEK); orijinal PDF ile teyit edilmedi.

Kalan mevzuat

  1. 593'ün beklediği nihai teknik kılavuz 31.08.2026 itibarıyla YAYIMLANMAMIŞTIR — yalnız 16.12.2025 tarihli taslak var (tebliğ tarih/sayısı boş, yürürlük 1/7/2026 yazılı). 593 fiilen kılavuz bekliyor.
  2. DOĞRULANAMADI Bazı yorum kaynaklarında geçen 593 için "3 yıllık geçiş süreci" iddiası RG metninde yoktur (tebliğ 8 madde, Md. 7 yürürlük = yayım tarihi).
  3. YN ÖKC'de birim kodunun kim tarafından/hangi kuralla belirleneceği ve ETTN'in cihazda mı, ÖE'de mi, TSM'de mi üretileceği hiçbir yayımlanmış GİB kılavuzunda net değil.
  4. TMC ve YN ÖKC için e-Arşiv Raporunu kimin, hangi sürede göndereceği cihaz kılavuzlarında açıkça yazmıyor. Çıkarım (ÖE, günlük, izleyen gün sonu) mantıksal olarak zorunlu ama birebir hüküm yok; e-Arşiv Raporu ile "Günlük Satış Raporu"nun mükerrer olup olmadığı belirsiz.
  5. 591'in 4-11. maddelerinin birebir metni alınamadı (cihaz onay süreci, üretici başvurusu, TÜBİTAK/TSE incelemesi, onay süresi, yetkili servis, taksimetre uyumluluğu). "Onaylar 3 yıl geçerli" ve "en az 2 farklı taksimetre markasıyla uyumluluk" bilgileri [TEK KAYNAK] — RG metninden teyit edilemedi.
  6. 591 Md. 16/1-a'daki "altı ayı geçmemek üzere" sınırının toplam mı yoksa her seferinde mi olduğu tebliğ metninden kesin çıkarılamadı — ikinci bir uzatmanın mümkün olup olmadığı belirsiz.
  7. TMC Teknik Kılavuzu Sürüm 2.0'ın Sürüm 1.0'a göre neyi değiştirdiği tespit edilemedi (revizyon tablosu yalnız "Güncelleme" diyor).
  8. e-Fatura Uygulaması Başvuru Kılavuzunun güncel sürümü indirilemedi (404); mükellefin e-Fatura başvurusunda istenen belgelerin güncel listesi birincil kaynaktan doğrulanamadı — e-Arşiv Başvuru Kılavuzu v1.8'in eşdeğer maddeleri kullanıldı.
  9. ÖEBSD Kılavuzu korpusta yalnız Sürüm 1.0 / Kasım 2019 olarak var. Daha güncel bir sürüm olup olmadığı ve 593 sonrası YN ÖKC üreticilerine ("ÖE ile aynı görev ve sorumluluklara sahip") ÖEBSD'nin nasıl uygulanacağı — mevcut ÖEBSD mi, ayrı bir kılavuz mu, yoksa YN ÖKC TSM Bilgi Sistemleri Denetimi kılavuzu mu — belirsizdir.
  10. ÖEBSD Kılavuzu EK 1'in tam kontrol tabloları (SER.2, PER, SIS.1-SIS.7 madde madde), EK 2, EK 3 (rapor formatı) ve EK 4 (görüş yazısı şablonları) bu turda okunmadı; dosyada mevcuttur.
  11. Ba/Bs'nin 2024'te kaldırılmasından sonra 2025-2026'da yeniden getirildiğine dair bir düzenleme bulunamadı; ancak 2026 durumu yalnız ticari blog kaynaklarıyla teyit edilebildi, GİB duyurusu ile değil.
  12. Zorunlu saklama süresinin somut yıl sayısı korpusta hiçbir yerde geçmiyor (509 yalnız "kanuni süreler" der; beş yıl/on yıl araması e-Fatura Saklama Kılavuzu, 509, 509 SSS ve e-Arşiv Teknik Kılavuzunda sonuç vermedi). VUK 253 (5 yıl) ve TTK 82 (10 yıl) korpus dışı kaynaklardan alınmıştır.

BÖLÜM 10 — Değişim Tarihçesi ve Yanlış Bilinenler

Eskiden Böyleydi / Şimdi Böyle — Değişim Tarihçesi ve Yanlış Bilinenler

Bu bölümün amacı, e-Belge portalı geliştirirken karşılaşılan en büyük riski ortadan kaldırmaktır: internette (ve GİB'in kendi güncellenmemiş yardımcı dokümanlarında) dolaşan bilginin büyük kısmı 2021–2025 arasında yürürlükten kalkmıştır. Aşağıdaki tüm satırlar, 509 Sıra No.lu VUK Genel Tebliği'nin dipnotlu konsolide metnindeki 87 dipnot, 573/589 tebliğ metinleri, schematron History.txt ve UBL-TR Kod Listeleri kılavuzlarından doğrulanmıştır.

Değiştiren tebliğler ve dipnot dağılımı (kaynak haritası)

Tebliğ (SN)RG TarihiRG No509'daki dipnot sayısı
51510.01.2020310041 (dipnot 67)
52609.02.2021313909 (8, 17, 27, 36, 37, 57, 84, 85, 87)
53522.01.20223172719 (6, 7, 9, 10, 12, 15, 16, 18, 19, 22, 23, 29, 30, 31, 32, 35, 38, 39, 72)
55007.10.2023323329 (11, 13, 14, 20, 21, 60, 66, 68, 70)
57312.11.20243272047 (509'daki değişikliklerin yarıdan fazlası)
58931.12.202533124 (5. Mükerrer)2 (24, 25)
TOPLAM87

Dipnot sayıları hakem tarafından dosya üzerinde yeniden sayılarak düzeltilmiştir (ilk çıkarımdaki 535=18, 550=8, 573=48 değerleri hatalıydı).


1. ANA TABLO — 509'un Dipnotlarından Çıkan Tüm Değişiklikler

Sütunlar: KONU | ESKİ HALİ | YENİ HALİ | DEĞİŞTİREN TEBLİĞ | RG TARİH/NO. "Dn." sütunu 509 konsolide metnindeki dipnot numarasıdır.

Dn.KONUESKİ HALİYENİ HALİTebliğRG Tarih/No
1Tanım: e-Dekont"Elektronik Banka Dekontu (e-Dekont)""Elektronik Dekont (e-Dekont): …banka ve VUK GT (Sıra No:435)'nin (2) numaralı bölümünde sayılan kuruluşlar tarafından düzenlenen dekontu,"57312.11.2024 / 32720
2Tanım: e-Dekont Uygulaması"…dekontunun""…VUK GT (Sıra No:435)'nin (2) numaralı bölümünde sayılan kuruluşlar tarafından düzenlenen dekontun"57312.11.2024 / 32720
3Tanım: İDİS(yoktu)"İnşaat Demiri İzleme Sistemi (İDİS)" tanımı eklendi57312.11.2024 / 32720
4, 5Sertifikasyon merkezi adı"TÜBİTAK-UEKAE" / "TÜBİTAK-UEKAE-BİLGEM/KAMU SM""TÜBİTAK BİLGEM KAMU SM"57312.11.2024 / 32720
6e-Fatura ciro haddi"2018 veya müteakip hesap dönemleri brüt satış hasılatı 5 Milyon TL ve üzeri""a) 2018/2019/2020 → 5 Milyon TL, b) 2021 → 4 Milyon TL, c) 2022 ve müteakip → 3 Milyon TL"53522.01.2022 / 31727
7e-Ticaret e-Fatura zorunluluğuSadece aracı hizmet sağlayıcı, ilan yayınlayan, reklam aracılarıBunlara ek olarak kendi sitesinden veya pazaryerinden satış yapanlar: 2020/2021 → 1 Milyon TL, 2022+ → 500 Bin TL53522.01.2022 / 31727
8e-Fatura kapsamı (bent 6)(yoktu)EK BENT: SGK ile sözleşmeli sağlık hizmeti sunucuları, medikal malzeme ve ilaç/etken madde tedarikçileri52609.02.2021 / 31390
9e-Fatura kapsamı (bent 7)(yoktu)EK BENT: Gayrimenkul ve/veya motorlu taşıt inşa/imal/alım/satım/kiralama ve aracılık — 2020/2021: 1 Milyon TL, 2022+: 500 Bin TL53522.01.2022 / 31727
10e-Fatura kapsamı (bent 8)(yoktu)EK BENT: Kültür ve Turizm Bakanlığı / belediye yatırım-işletme belgeli otel işletmeleri53522.01.2022 / 31727
11e-Fatura kapsamı (bent 9)(yoktu)EK BENT: EPDK şarj ağı işletmeci lisansı sahipleri ve sertifika verdikleri şarj istasyonu işletmecileri55007.10.2023 / 32332
12e-Fatura kullanma zorunluluğu"e-Fatura zorunluluğu bulunan mükelleflerin … düzenleyecekleri faturalar""zorunluluğu bulunan mükellefler ile ihtiyari olarak uygulamaya dahil olan mükelleflerin, birbirlerine sattıkları mallar…"53522.01.2022 / 31727
13Yeniden mükellefiyet(yoktu)EK FIKRA (f): İşi bırakıp yeniden mükellefiyet tesis ettiren gerçek kişiler işe başlama tarihi itibarıyla e-Faturaya geçer55007.10.2023 / 32332
14Ferdi işletme → sermaye şirketi(yoktu)EK FIKRA (g): Dönüşen yeni şirket de dahil olmak zorunda (en geç tescili izleyen ayın başından itibaren 3 ay)55007.10.2023 / 32332
15, 16e-Fatura geçiş süresiHad ve tarihler madde metninde sabitti (5 Milyon TL / 1.7.2020)Tutarlar bentlere taşındı; e-ticaret satıcıları için 1.7.2022 ve "ilgili hesap dönemini izleyen yedinci ayın başı"53522.01.2022 / 31727
17–20Geçiş süresi ek bentleri(yoktu)(d) SGK → 1.7.2021; (e) gayrimenkul/taşıt → 1.7.2022; (f) otel → 1.7.2022 veya faaliyeti izleyen 4. ay başı; (g) şarj → 2.1.2024526 / 535 / 550ilgili tarihler
21Bavul ticareti (özel fatura)"1/7/2020 tarihinden itibaren""Başkanlık tarafından ebelge.gib.gov.tr adresinde yapılan duyuruda belirtilecek tarihten"55007.10.2023 / 32332
22, 23e-Arşiv IV.2.4.2 başlığı/gövdesiSadece AHS / ilan / reklam aracıları, 1.1.2020Başlığa ve gövdeye e-ticaret satıcıları ile 1.7.2022 / izleyen 7. ay başı tarihleri eklendi53522.01.2022 / 31727
27e-Arşiv had (ilk hali)"30 Bin TL'yi (vergi mükelleflerine düzenlenenler açısından 5.000 TL'yi) aşması halinde … Başkanlıkça sunulan e-Belge düzenleme portali üzerinden"Had VUK 232/2 fatura düzenleme haddine bağlandı; "…ya da Başkanlığın e-Belge düzenleme portaline entegre olup izin alan özel entegratör kuruluşların sistemleri aracılığıyla" seçeneği eklendi52609.02.2021 / 31390
26e-Arşiv had (ikinci değişiklik)"1/1/2020'den itibaren … 5 Bin TL'yi (vergi mükelleflerine düzenlenenler açısından VUK 232/2 haddini) aşması halinde""1/1/2025 ila 31/12/2025 tarihleri arasında vergiler dahil toplam tutarının 3 Bin TL'yi aşması halinde, 1/1/2026 tarihinden itibaren ise tutarına bakılmaksızın"57312.11.2024 / 32720
28Gün içi toplama kuralı"Aynı günde aynı kişilere düzenlenen faturalar topluca birlikte değerlendirilecek olup, … toplamının belirtilen tutarı aşması halinde e-Arşiv Fatura zorunludur."YÜRÜRLÜKTEN KALDIRILDI — gün içi toplama kuralı artık YOK57312.11.2024 / 32720
24Basit usul / işletme hesabı ertelemesi(yoktu)"1/1/2025 ila 31/12/2025"den sonra: "(basit usul + işletme hesabı esasına göre defter tutan mükellefler açısından 1/1/2025 ila 31/12/2026)"58931.12.2025 / 33124 (5. Mük.)
25Basit usul / işletme hesabı ertelemesi(yoktu)"1/1/2026"dan sonra: "(basit usul + işletme hesabı … açısından 1/1/2027)"58931.12.2025 / 33124 (5. Mük.)
29, 30İnternet satışında sevk belgesi"İrsaliye yerine geçen e-Arşiv Faturanın kağıt çıktısı, ÖKC fatura bilgi fişi ya da sevk irsaliyesi""sevk irsaliyesi ya da e-İrsaliyenin bir örneği (veya format/standardı Başkanlıkça belirlenen özel kodlu belgenin kağıt çıktısı)" da kabul53522.01.2022 / 31727
31e-İrsaliye — demir/çelik"e-Fatura uygulamasına kayıtlı olan mükelleflerden demir ve çelik (GTİP 72/73) imal, ithal veya ihraç edenler"e-Fatura kaydı şartı kalktı: "…faaliyetinde bulunan mükellefler (ticari kazançları basit usulde tespit edilenler hariç)"53522.01.2022 / 31727
32e-İrsaliye ciro haddi"2018 veya müteakip hesap dönemleri brüt satış hasılatı 25 Milyon TL ve üzeri""a) 2018/2019/2020 → 25 Milyon TL, b) 2021 ve müteakip → 10 Milyon TL"53522.01.2022 / 31727
33, 34e-İrsaliye — İDİS bendi(yoktu)EK BENT 9: "İDİS'e geçiş zorunluluğu getirilen mükelleflerden brüt satış hasılatı 2024 ve müteakip dönemlerde 1 Milyon TL ve üzeri olanlar" + geçiş süresi fıkrasına eklendi57312.11.2024 / 32720
36e-İrsaliye — maden/şekerSadece ruhsat/sertifika sahipleri"(yaptıkları sözleşmeye istinaden maden üretim faaliyetinde bulunan mükellefler dahil)"52609.02.2021 / 31390
37e-Döviz kapsamı"…yetkili müesseseler tarafından kağıt ortamda düzenlenen""…yetkili müesseseler dahil olmak üzere ilgili mevzuat gereğince döviz alım-satım belgesi düzenleyebilen tüm mükellefler tarafından"52609.02.2021 / 31390
38, 39e-Döviz + kıymetli madenSadece "Döviz Alım / Döviz Satım" belgeleri385 SN VUK GT kapsamındaki "Döviz ve Kıymetli Maden Alım/Satım Belgesi" de kapsama alındı53522.01.2022 / 31727
40–49, 52, 54–56e-Dekont — muhatap kitlesi"bankaların / Bankalar, / isteyen bankaların…" (banka odaklı tüm ibareler)"Tebliğin (IV.11.1.) numaralı bölümünde belirtilen mükellefler" / "isteyenlerin" (banka dışı VUK 435(2) kuruluşları dahil)57312.11.2024 / 32720
50e-Dekont red sonrası beklemeReddi izleyen 3 ay içindeki başvurular kabul edilmezReddi izleyen 6 ay içindeki başvurular kabul edilmez57312.11.2024 / 32720
53e-Dekont — banka dışı kuruluşlar(yoktu)"VUK GT (Sıra No:435)'nin (2) numaralı bölümünde sayılan kuruluşlar ise istemeleri halinde 1/1/2025 tarihinden itibaren" dahil olabilir57312.11.2024 / 32720
57e-Adisyon(bölüm yoktu)IV.12. e-Adisyon Uygulaması bölümünün tamamı eklendi52609.02.2021 / 31390
59e-Adisyon içeriği (d) bendi"Düzenlenen e-Adisyonun ilişkili olduğu e-Fatura/e-Arşiv Faturanın ETTN'si veya perakende satış fişinin düzenlendiği ÖKC cihaz sicil numarası"YÜRÜRLÜKTEN KALDIRILDI — e-Adisyonda bu bilgi artık zorunlu değil57312.11.2024 / 32720
60, 70Yazım hataları"V.1. Uygulamalardan Yaralanma Yöntemleri"; "uygulamasına olarak dâhil""Yararlanma"; "uygulamasına dâhil"55007.10.2023 / 32332
61Yanlış iç atıfÖzel entegratörler için "VI.11.5. numaralı bölümüne uygun olarak""V.5. ve V.8. numaralı bölümlerine uygun olarak"57312.11.2024 / 32720
62Özel entegratör yaptırımı(yoktu)EK FIKRA: Kılavuzlara aykırılıkta VUK cezası + münasip süre; gidermeyenin veya aynı takvim yılında birden fazla tespit edilenin izni iptal edilebilir; iptalden itibaren 1 yıl yeni başvuru alınmaz57312.11.2024 / 32720
63Doğrudan entegrasyon şartı"Bilgi işlem sistemleri yeterli olan mükelleflerin""Faaliyet konusu, mükellefiyet süresi, vergi/şirket/mükellefiyet türü, aktif ya da öz sermaye büyüklüğü, brüt satış hasılatı, sektör, düzenlenen belge sayısı ile bilgi işlem altyapısı gibi hususlarda Başkanlıkça belirlenen şartları sağlayan ve başvuruları uygun bulunan mükelleflerin"57312.11.2024 / 32720
64, 65Doğrudan entegrasyon yaptırımı(yoktu)EK FIKRALAR: Şartları kaybedenlerin hesapları tespiti izleyen 3. ayın başı itibarıyla kapatılır; 1 yıl yeni başvuru yasağı; usul/esasa aykırılıkta da aynı yaptırım57312.11.2024 / 32720
66"NİHAİ TÜKETİCİ" e-Arşiv haddiVergiler dahil toplam satış tutarı 500 TL'ye kadarVergiler dahil toplam satış tutarı VUK 232/2'deki, işlemin gerçekleştiği yıla ait fatura düzenleme haddine kadar (yıllık güncellenen had)55007.10.2023 / 32332
67ÖKC muafiyetli e-ArşivSadece 483 SN VUK GT md.6 şartlarıyla ÖKC muafiyeti olanlar507 SN VUK GT'deki Güvenli Mobil Ödeme ve Elektronik Belge Yönetim Sistemi (GMÖEBYS) kullanıcıları da eklendi + Başkanlığa usul-esas belirleme yetkisi51510.01.2020 / 31004
68Şarj işletmecileri(yoktu)EK FIKRA: Şarj ağı ve şarj istasyonu işletmecileri, VUK 232/2 haddine bağlı olmaksızın tüm mali belgelerini e-Fatura/e-Arşiv olarak düzenler (2.1.2024'ten itibaren)55007.10.2023 / 32332
69Belge numarasıGenel fıkra içinde e-Dekont için "4 haneli birim kodu + en az 14 haneli sıra numarası" parantezie-Dekont numarası ayrı fıkraya taşındı; genel fıkrada yalnızca IATA 13 haneli bilet numarası istisnası kaldı57312.11.2024 / 32720
71, 73Islak imza yerine e-doğrulama(yoktu)EK FIKRALAR: e-Müstahsil Makbuzu ve e-Gider Pusulasında, Başkanlıkça belirlenen mükellefler için ıslak imza yerine "muhatabın bilgilerinin bilgi teknolojileri ve/veya iletişim araç ve ortamları üzerinden doğrulanması"57312.11.2024 / 32720
72Kâğıt çıktının imzası"…çıktının belgeyi düzenleyen ve muhatabı tarafından ıslak imza ile imzalanmış olması esastır.""…çıktının muhatabı tarafından ıslak imza ile imzalanması" (düzenleyenin ıslak imzası kalktı)53522.01.2022 / 31727
74–78e-Dekontun düzenlenmesi"banka" / "banka yetkilisinin" / "banka dekontu""belgeyi düzenleyen kurum" / "…kurumun yetkilisinin"; VUK 435 kapsamında BSMV'ye tâbi hizmet ve satışlarda fatura yerine geçen dekont kapsama alındı57312.11.2024 / 32720
79, 80Ceza kesilmeyen hâller (V.7-ç)Sadece "belgelerin e-Belge yerine kâğıt olarak düzenlenmesine izin verilmesi""ve e-Fatura yerine e-Arşiv Fatura düzenlenmesine" izin verilmesi de eklendi; ceza muafiyeti metnine "[(ç) bendi bakımından e-Fatura yerine e-Arşiv Fatura düzenlenmesi de dâhil]" ibaresi girdi57312.11.2024 / 32720
81–83Mali mühür (V.9)"TÜBİTAK-UEKAE" (3 yerde)"TÜBİTAK BİLGEM KAMU SM"57312.11.2024 / 32720
84Mali mühür üreticisiSadece TÜBİTAKBTK tarafından yetkilendirilen ESHS kuruluşları da Başkanlıkça mali mühür üretimi/satışı için yetkilendirilebilir52609.02.2021 / 31390
85İptal/itiraz bildirimi(bölüm yoktu)EK BÖLÜM V.10: "e-Belgelere İlişkin İptal/İtiraz, İhbar ve İhtarların Bildirilmesi" — 1/5/2021'den itibaren elektronik ortamda GİB'e bildirim zorunlu52609.02.2021 / 31390
86İzni iptal edilenin bekleme süresi"…bildirimin yapıldığı tarihten itibaren 6 ay süre ile uygulamayı kendi bilgi işlem sistemleri üzerinden kullanmak üzere başvuru yapamazlar."Bu ibare YÜRÜRLÜKTEN KALDIRILDI (yerine dipnot 62/64/65 ile gelen 1 yıllık yasaklar geçerlidir)57312.11.2024 / 32720
87Yöntem seçmeyen mükellef(yoktu)EK FIKRA: Zorunluluk başlangıcına kadar yöntem seçmeyenlerin GİB Portal hesaplarını re'sen tanımlama yetkisi52609.02.2021 / 31390

2. 573 Sıra No.lu Tebliğ (RG 12.11.2024 – 32720) — Madde Madde Etkisi

509'u değiştiren en kapsamlı tebliğdir: 87 dipnotun 47'si 573'e aittir.

MaddeDeğişen bölümNe yaptı
1II. Tanımlar/Kısaltmalar"Elektronik Banka Dekontu (e-Dekont)" ve "TÜBİTAK-UEKAE-BİLGEM/KAMU SM" tanımları değişti; e-Dekont Uygulaması tanımına VUK 435(2) kuruluşları girdi; IATA'dan sonra "İnşaat Demiri İzleme Sistemi (İDİS)" tanımı eklendi
2IV.2.4.3 e-Arşiv zorunluluğuEn kritik madde. "5 Bin TL'yi aşması halinde" → "1/1/2025 ila 31/12/2025 arasında 3 Bin TL'yi aşması halinde, 1/1/2026'dan itibaren tutarına bakılmaksızın"; ayrıca 3. fıkra (gün içi toplama) yürürlükten kaldırıldı
3IV.3.5 e-İrsaliye zorunluluğu(9) numaralı bent eklendi: İDİS'e geçiş zorunluluğu olanlardan 2024 ve müteakip dönemlerde 1 Milyon TL ve üzeri hasılatlılar
4IV.3.6 e-İrsaliye geçiş süresi"komisyoncular" ibaresinden sonra İDİS + 1 Milyon TL mükellefleri eklendi (şartın sağlandığı ayı izleyen 4. ayın başı)
5IV.11.1 e-Dekont Genel"bankalar"dan sonra "ve VUK GT (Sıra No:435)'nin (2) numaralı bölümünde sayılan kuruluşlar" eklendi
6IV.11.2 e-Dekonta dahil olmaBanka odaklı ifadeler "IV.11.1'de belirtilen mükellefler"e çevrildi; red sonrası bekleme 3 ay → 6 ay
7IV.11.3 e-Dekont bilgileri"bankalardan," ibaresi kaldırıldı; "Bankalar," → "IV.11.1'de belirtilen mükellefler,"
8IV.11.4 e-Dekont geçişVUK 435(2) kuruluşları istemeleri halinde 1/1/2025'ten itibaren dahil olabilir
9IV.11.5 e-Dekont geçiş süresi"olacağı belirtilen bankaların," → "edilenlerin,"
10IV.12.3 e-Adisyon(ç) bendinde "tutarı," → "tutarı."; (d) bendi yürürlükten kaldırıldı (ilişkili ETTN / ÖKC sicil no zorunluluğu bitti)
11V.1.2 Özel EntegratörYanlış atıf düzeltildi ("VI.11.5." → "V.5. ve V.8."); yeni fıkra: kılavuza aykırılıkta ceza + izin iptali + 1 yıl başvuru yasağı
12V.1.3 Doğrudan Entegrasyon"Bilgi işlem sistemleri yeterli olan mükelleflerin" → Başkanlıkça belirlenen kriterleri sağlayan ve başvurusu uygun bulunan mükelleflerin; iki yeni fıkra: şart kaybında hesap tespiti izleyen 3. ayın başında kapatılır + 1 yıl yasak
13V.4 Belge Numarasıe-Dekont parantezi genel fıkradan çıkarıldı
14V.5.5 e-Müstahsil MakbuzuYeni fıkra: ıslak imza yerine elektronik doğrulama + Başkanlığa düzenli bilgi verme yükümlülüğü getirme yetkisi
15V.5.6 e-Gider PusulasıAynı içerikte yeni fıkra (ıslak imza yerine elektronik doğrulama)
16V.5.11 e-Dekontun düzenlenmesi"banka" → "belgeyi düzenleyen kurum"; VUK 435 kapsamında BSMV'ye tâbi hizmet/satışlarda fatura yerine geçen dekont kapsama alındı
17V.7 Kâğıt düzenlenebilecek hâller(ç) bendine "ve e-Fatura yerine e-Arşiv Fatura düzenlenmesine" eklendi; ceza muafiyeti kapsamı genişledi
18V.9 Mali MühürTüm "TÜBİTAK-UEKAE" ibareleri "TÜBİTAK BİLGEM KAMU SM" oldu
19VII. Sorumluluk ve Cezai Müeyyideler"bildirimin yapıldığı tarihten itibaren 6 ay süre ile … başvuru yapamazlar. Bu mükellefler," ibaresi yürürlükten kaldırıldı
20Yürürlük(a) 2. maddenin had kısmı 1/1/2025'ten itibaren gerçekleştirilen teslim ve hizmetlere uygulanmak üzere 1/1/2025'te; 3. fıkranın kaldırılması 1/1/2026'dan itibaren gerçekleştirilen teslim ve hizmetlere uygulanmak üzere 1/1/2026'da; (b) diğer maddeler yayımı tarihinde (12/11/2024)
21YürütmeHazine ve Maliye Bakanı

3. 589 Sıra No.lu Tebliğ (RG 31.12.2025 – 33124, 5. Mükerrer)

589 yalnızca 3 maddedir ve tamamı 509'un IV.2.4.3 birinci fıkrasına iki parantez eklemekten ibarettir — ama pratik etkisi büyüktür: basit usul ve işletme hesabı mükellefleri için "tutar sınırsız e-Arşiv" zorunluluğu 1 yıl ertelenmiştir.

MaddeNe yaptı
MADDE 1(a) "1/1/2025 ila 31/12/2025" ifadesinden sonra: "(ticari kazançları basit usulde tespit edilen mükellefler ile işletme hesabı esasına göre defter tutan mükellefler açısından 1/1/2025 ila 31/12/2026)"; (b) "1/1/2026" ifadesinden sonra: "(… açısından 1/1/2027)"
MADDE 2Yayımı tarihinde (31/12/2025) yürürlüğe girer
MADDE 3Hazine ve Maliye Bakanı yürütür

Portal iş kuralı — 31.08.2026 itibarıyla yürürlükteki matris:

Mükellef grubu1/1/2025 – 31/12/20251/1/2026 – 31/12/20261/1/2027 ve sonrası
Bilanço esası (genel)Vergiler dahil 3 Bin TL üzeri → e-Arşiv zorunluTutara bakılmaksızın zorunluTutara bakılmaksızın
Basit usul ticari kazanç3 Bin TL üzeri3 Bin TL üzeri (589 ile 1 yıl uzatıldı)Tutara bakılmaksızın
İşletme hesabı esası3 Bin TL üzeri3 Bin TL üzeri (589 ile 1 yıl uzatıldı)Tutara bakılmaksızın

Bu zorunluluk, e-Arşiv Fatura uygulamasına dahil olmayan mükellefler içindir; belge GİB e-Belge düzenleme portali üzerinden ya da portale entegre olup izin almış özel entegratör sistemleri aracılığıyla düzenlenir. Kâğıt fatura düzenlenmesi/alınması hâlinde her bir belge için ayrı ayrı VUK 353 cezası uygulanır (düzenleyene ve nihai tüketici dışındaki mükellef alıcıya).


4. Schematron Zaman Çizelgesi — History.txt (2025–2026)

History.txt, e-Fatura paketindeki schematron değişim günlüğüdür. En eski kayıt 20170317, en yeni kayıt 20260701'dir; 24.08.2026 tarihli pakette 01.07.2026'dan sonra tarihli schematron değişikliği yoktur.

Tarih (kayıt)Paket / konuEklenen kurallarGüncellenen
28.01.2025 (20250128) — 12 kalemİADE + İlaç/Tıbbi CihazIADEInvioceCheck, AdditionalItemIdentificationIDType, IlacTibbiCihazAdditionalItemIdentificationCheck, PartyIdentificationSchemeIDCheck (DespatchAdvice), PartyIdentificationPartyNamePersonCheckTaxExemptionReasonCodeType, ihracExemptionReasonCodeType, istisnaTaxExemptionReasonCodeType, TaxExemptionReasonCodeCheck, InvoiceTypeCodeCheck, InvoiceTypeCodeList, ProfileIDType (ILAC_TIBBICIHAZ)
28.04.2025 (20250428) — 10 kalemTeknoloji DesteğiTeknolojiDestekAdditionalItemIdentificationCheck, PartyIdentificationTEKNOLOJIDESTEKCheck + ReceiptAdvice tarafına aynı taraf kontrolleriInvoiceTypeCodeList/Check (TEKNOLOJIDESTEK), AdditionalItemIdentificationIDType (TELEFON, TABLET_PC)
05.09.2025 (20250905) — 5 kalemİhraç kayıtlı DİİB satır koduIhracKayitliPartyIdentificationIDType (SATICIDIBSATIRKOD, ALICIDIBSATIRKOD)AdditionalItemIdentificationIDType (DIGER), IhracKayitliPartyIdentificationIDTypeheck (702), IADEInvioceCheck
11.09.2025 (20250911) — 1 kalemİstisna koduTaxExemptionReasonCodeType
04.11.2025 (20251104) — 3 kalemBakımIlacTibbiCihazAdditionalItemIdentificationCheck, CurrencyCodeList; IhracKayitliPartyIdentificationIDTypeheck...IDTypeCheck (yazım düzeltmesi)
09.12.2025 (20251209) — 17 kalem (dosya 1–16 diye numaralandırıyor, "3)" iki kez kullanılmış)YATIRIM TEŞVİKYatirimTesvikInvoiceTypeCodeCheck, ...ContractDocumentReferenceIDCheck, ...CommodityClassificationCheck, ...ItemClassificationCodeCheck, ...IstisnaCheck, ...IstisnaCalculationSequenceNumericCheck, ...TaxExemptionReasonCode308Check, ...339Check, ...ItemInstanceCheck, ...KDVCheck, YatirimTesvikEArsivInvoiceTypeCodeList, YatirimTesvikItemClassificationCodeListProfileIDType (YATIRIMTESVIK), InvoiceTypeCodeList/Check (YTB*), TaxExemptionReasonCodeCheck, IADEInvioceCheck
09.01.2026 (20260109) — 18 kalemİDİS (İnşaat Demiri İzleme Sistemi)IdisInvoiceTypeCodeCheck, IdisSevkiyatNoCheck (SE-0000000 / ES-0000000), IdisEtiketNoCheck, DespatchIdisEtiketNoCheck, DespatchIdisSevkiyatNoCheck, YatirimTesvikLineKDVCheckProfileIDType / ProfileIDTypeDespatchAdvice (IDIS, IDISIRSALIYE), PartyIdentificationIDType (SEVKIYATNO), GeneralWithholdingTaxTotalCheck, IADEInvioceCheck, TaxExemptionReasonCheck, YatirimTesvikItemInstanceCheck, YatirimTesvikKDVCheck, YatirimTesvikInvoiceTypeCodeCheck, YatirimTesvikEArsivInvoiceTypeCodeList, InvoiceTypeCodeList/Check
12.03.2026 (20260312) — 4 kalem555 / Demirbaş KDVDemirbasKDVTaxExemptionCheckInvoiceTypeCodeCheck, TaxExemptionReasonCodeType (555 eklendi), TaxExemptionReasonCodeCheck (555 kapsam dışı bırakıldı)
01.07.2026 (20260701) — 17 kalem, paketteki en güncel kayıtENERJİ (elektrikli araç şarj)EnerjiInvoicePeriodCheck (StartDate/StartTime/EndDate/EndTime zorunlu), EnerjiESURaporIDCheck (schemeID=ESURaporID, GUID), EnerjiPartyIdentificationPlakaCheck (schemeID=PLAKA, regex ^[A-Z0-9_-]+$, max 50), EnerjiItemInstanceSerialIDCheck (SARJANLIK), LicensePlateIDCheck, YatirimTesvikTaxExemptionReasonCodeType (308, 339)LicensePlateIDSchemeIDType (PLAKA, YABANCIPLAKA), TaxExemptionReasonCodeCheck/Type, istisnaTaxExemptionReasonCodeType, IdisSevkiyatNoCheck, DespatchIdisSevkiyatNoCheck, UserAccountCheck, ReservedAliases, UserEnvelopeAliases, InvoiceTypeCodeCheck

Yayım ≠ devreye alma: 28.01.2025 paketi için GİB önce 17.02.2025 devreye alma tarihi duyurmuş, ardından 14.02.2025 tarihli duyuru ile 28.03.2025'e uzatmıştır (kaynak: e-Fatura_Paketi_ve_UBL-TR_(Kod_Listeleri)_Kilavuzundaki_guncellemeler duyurusu — History.txt değil). History.txt kayıtlarının yayım mı devreye alma tarihi mi olduğu dosyada belirtilmemiştir.


5. UBL-TR Kod Listeleri V1.31 (01.01.2023) → V1.43 (27.07.2026)

5.1 Fatura Tipleri (InvoiceTypeCode)

V1.31 lafzı: "Faturalar düzenleme amaçlarına göre beş tipte tanımlanmıştır." — sayılan 6 değer: SATIS, IADE, TEVKIFAT, ISTISNA, OZELMATRAH, IHRACKAYITLI. V1.43 lafzı: "Faturalar düzenleme amaçlarına göre farklı tiplerde tanımlanmıştır." — 18 değer sayar. Bağlayıcı liste (24.08.2026 paketi, UBL-TR_Codelist.xmlInvoiceTypeCodeList) 20 değerdir:

SATIS, IADE, TEVKIFAT, TEVKIFATIADE, ISTISNA, OZELMATRAH, IHRACKAYITLI, SGK, KOMISYONCU, HKSSATIS, HKSKOMISYONCU, KONAKLAMAVERGISI, SARJ, SARJANLIK, TEKNOLOJIDESTEK, YTBSATIS, YTBIADE, YTBISTISNA, YTBTEVKIFAT, YTBTEVKIFATIADE

Yeni tipV1.31V1.43 kılavuzCodelist.xmlNot
TEVKIFATIADETevkifatlı faturanın iadesi
SGKSGK kapsamı satışlar
KOMISYONCUHal Kayıt Sistemi
HKSSATIS, HKSKOMISYONCU✘ (kılavuz metninde yok)Yalnız Codelist'te
KONAKLAMAVERGISI
SARJ / SARJANLIKSARJ = haftalık, SARJANLIK = anlık
TEKNOLOJIDESTEK28.04.2025; yalnız EARSIVFATURA
YTBSATIS, YTBIADE, YTBISTISNA, YTBTEVKIFAT, YTBTEVKIFATIADE09.12.2025; e-Arşiv Yatırım Teşvik

Senaryo–tip kısıtları (UBL-TR_Common_Schematron.xml):

  1. IADE tipi yalnızca TEMELFATURA, EARSIVFATURA, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS, KAMU senaryolarında olabilir → TICARIFATURA'da IADE kullanılamaz.
  2. ENERJISARJ/SARJANLIK çift yönlü zorunlu eşleşme.
  3. TEKNOLOJIDESTEKProfileID mutlaka EARSIVFATURA.
  4. YatirimTesvikInvoiceTypeCodeCheck: YATIRIMTESVIK'te tip SATIS, ISTISNA, IADE, TEVKIFAT, TEVKIFATIADE.
  5. IdisInvoiceTypeCodeCheck: IDIS'te tip SATIS, ISTISNA, IADE, TEVKIFAT, TEVKIFATIADE, IHRACKAYITLI.
  6. IADEInvioceCheck: IADE/TEVKIFATIADE/YTBIADE/YTBTEVKIFATIADE tiplerinde iade edilen fatura sayısı kadar cac:BillingReference/cac:InvoiceDocumentReference; her birinde cbc:DocumentTypeCode = İADE/IADE ve cbc:ID tam 16 hane.

5.2 Senaryolar (ProfileID)

V1.31 (5 değer)V1.43 (16 değer)
TEMELFATURA, TICARIFATURA, YOLCUBERABERFATURA, EARSIVFATURA, IHRACATYukarıdakiler + OZELFATURA, KAMU, HKS, STDKODFATURA, TEMELIRSALIYE, HKSIRSALIYE, ENERJI, ILAC_TIBBICIHAZ (28.01.2025), YATIRIMTESVIK (09.12.2025), IDIS (09.01.2026), IDISIRSALIYE (09.01.2026)

Bağlayıcı schematron listeleri (24.08.2026 paketi):

ListeDeğerler
ProfileIDType (e-Fatura)TICARIFATURA, TEMELFATURA, YOLCUBERABERFATURA, IHRACAT, OZELFATURA, KAMU, HKS, ENERJI, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS (11)
ProfileIDTypeEarchiveEARSIVFATURA
ProfileIDTypeDespatchAdviceTEMELIRSALIYE, HKSIRSALIYE, IDISIRSALIYE
ProfileIDTypeGoruntulemeYukarıdaki 11 + EARSIVFATURA (12)
DespatchAdviceTypeCodeListSEVK, MATBUDAN

TUZAK: STDKODFATURA V1.43 kılavuz tablosunda vardır ama ProfileIDType schematron listesinde YOKTUR. Portalda seçilebilir yapılırsa belge reddedilir. (Kılavuz–schematron çelişkisi; schematron esastır.)

5.3 V1.31'de hiç olmayan yeni tanımlama alanları

AlanDeğerler
AdditionalItemIdentification (böl. 2.3)ILAC (seri no), TIBBICIHAZ (seri no), TELEFON (IMEI), TABLET_PC ("Alanda herhangi bir veri girilmesine gerek bulunmamaktadır."), KUNYENO (Hal senaryoları ürün künye no), DIGER (İTS/ÜTS bildirimi dışı)
IhracKayitliPartyIdentification (böl. 2.4)SATICIDIBSATIRKOD, ALICIDIBSATIRKOD — "İhraç Kayıtlı fatura tipinde 702 kodu için kalem alanında"
YatirimTesvikItemClassificationCodeList (böl. 2.5)01 makine-teçhizat/yazılım/gayrimaddi hak, 02 inşaat işleri mal teslimi ve hizmet, 03 arsa/arazi satışları, 04 diğer harcamalar
PartyIdentificationIDType eklenenlerPLAKA, SEVKIYATNO
LicensePlateIDSchemeIDTypePLAKA, YABANCIPLAKA

5.4 İstisna / özel matrah / ihraç kayıtlı kod farkları

V1.43'te olup V1.31'de olmayan GERÇEK yeni kodlar — 8 adet:

KodListeAdı
233Kısmi İstisna2942 Sayılı Kamulaştırma Kanunu Kapsamında Taşınmazların Kamulaştırmayı Yapan Devlet ve Kamu Tüzel Kişilerine Devri
329Tam İstisnaFATİH Projesi Kapsamında Milli Eğitim Bakanlığına Yapılacak Mal Teslimi ve Hizmet İfası
341Tam İstisnaAfetzedelere Bağışlanacak Konutların İnşasına İlişkin İstisna
342Tam İstisnaGenel Bütçeli Kamu İdarelerine Bağışlanacak Taşınmazların İnşasına İlişkin İstisna
343Tam İstisnaGenel Bütçeli Kamu İdarelerine Bağışlanacak Konutların Yabancı Devlet Kurum ve Kuruluşlarına Teslimine İlişkin İstisna
344Tam İstisna13/o Milli Savunma ve İç Güvenlik İhtiyaçlarında Kullanılmak Üzere Taşıt Teslimi
555Diğer İşlem Türü (yeni liste, V1.42)KDV Oran Kontrolüne Tabi Olmayan Satışlar
704İhraç KayıtlıKDVK 11/1-c ve 4760 s. ÖTV Kanunu 8/2 Kapsamındaki İhraç Kayıtlı Satış

Açıklaması değişen kodlar:

KodV1.31V1.43
219"17/4-p Hazine ve Arsa Ofisi Genel Müdürlüğünün işlemleri""Hazine, Toplu Konut İdaresi Başkanlığı, Belediyeler, il özel idareleri ve yatırım izleme ve koordinasyon başkanlıklarının İşlemleri"
220"17/4-r İki Tam Yıl Süreyle Sahip Olunan Taşınmaz ve İştirak Hisseleri Satışları""…İştirak Hisseleri ile 15/7/2023 tarihinden önce kurumların aktifinde kayıtlı Taşınmaz satışı"
229"…Gıda Bankacılığı Faaliyetinde Bulunan Dernek ve Vakıflara Bağışlanan…""…Darülacezeye, Dernek ve Vakıflara Bağışlanan…"
336"Geçici 40 UEFA Müsabakaları…""Geçici 46 UEFA Müsabakaları…"

Bağlayıcı kod listeleri (24.08.2026 paketi, UBL-TR_Codelist.xml):

Listeİçerik
TaxExemptionReasonCodeType001, 101–108, 151, 201, 202, 204–209, 211–221, 223, 225–242, 250, 301–307, 309–338, 340–344, 350, 351, 501, 555, 801–812, 701–704 (111 kod)
istisnaTaxExemptionReasonCodeTypeYukarıdakinin alt kümesi (97 kod); 151, 351, 555 içermez, 308 ve 339 içerir
ozelMatrahTaxExemptionReasonCodeType801–812
ihracExemptionReasonCodeType701, 702, 703, 704
YatirimTesvikTaxExemptionReasonCodeType308, 339 (01.07.2026'da eklendi)
WithholdingTaxType601–627 + 801–825 (52 kod)
TaxType0003, 0011, 0015, 0021, 0022, 0059, 0061, 0071, 0073–0077, 1047, 1048, 4071, 4080, 4081, 4171, 8001, 8002, 8004–8008, 9015, 9021, 9040, 9077, 9944 (31 kod)

308 = "13/d Teşvikli Yatırım Mallarının Teslimi", 339 = "İmalat Sanayii ile Turizme Yönelik Yatırım Teşvik Belgesi Kapsamındaki İnşaat İşlerine İlişkin Teslim ve Hizmetler" — her ikisi de V1.43 Tam İstisna listesinde açıklamalıdır. Buna karşılık 501 kodu ne V1.31'de ne V1.43'te hiçbir kılavuz tablosunda geçmez, ancak schematron'da geçerlidir. Kural: kod doğrulamasını kılavuz PDF'ine değil UBL-TR_Codelist.xml'e göre yapın.


6. 555 KODU HİKÂYESİ — Duyuru, Erteleme, Bugünkü Durum

Adım 1 — 12.03.2026: Kod ve kural pakete girdi

History.txt / 20260312: "1) InvoiceTypeCodeCheck güncellendi. 2) TaxExemptionReasonCodeType güncellendi. 3) TaxExemptionReasonCodeCheck güncellendi. 4) DemirbasKDVTaxExemptionCheck eklendi." UBL-TR Kod Listeleri V1.42 (12.03.2026) ile kılavuzun 11. sayfasına yeni bir liste geldi: "DİĞER İŞLEM TÜRÜ KODLARI LİSTESİ" — tek kod: 555 = "KDV Oran Kontrolüne Tabi Olmayan Satışlar". Kullanım tarifi: "Faaliyet ve sicil servislerinde faaliyet koduna uygun KDV oranı bulunmayan satışlarda (yansıtma, mükellefin aktifine kayıtlı demirbaş/taşıt satışı gibi) kullanılacaktır."

Adım 2 — 16.03.2026: "1 Nisan 2026'da kontroller başlıyor"

27.03.2026 duyurusunda aktarıldığı şekliyle: "…16/3/2026 tarihinde yapılan duyuruda Özel Entegratör sistemleri üzerinden düzenlenen tüm elektronik belgeler için Gelir İdaresi Başkanlığı sicil ve faaliyet kodu kayıtları üzerinden gerekli kontrollerin 1 Nisan 2026 tarihi itibarıyla yapılmaya başlanacağı belirtilmiştir."

Adım 3 — 27.03.2026: ERTELEME

"…sicil ve faaliyet kodu karşılığı KDV oran kontrolleri, mükelleflerin yaptıkları tüm işlemleri kapsayacak şekilde geliştirilebilmesi ve … altyapısının hazırlanması amacıyla Başkanlığımız tarafından yapılacak ikinci bir duyuruya kadar ertelenmiştir." Ve: "Bu kapsamda e-Fatura Paketi, UBL-TR (Kod Listeleri) Kılavuzu ve UBLTR 1.2.1 Paketi güncellemeleri için yapılan 16/3/2026 tarihli duyurumuz için işlem yapılmayacaktır."

Adım 4 — BUGÜN (31.08.2026) DURUM

SoruCevapKanıt
Sicil/faaliyet kodu karşılığı KDV oran kontrolü aktif mi?HAYIR. İkinci bir duyuruya kadar ertelenmiş; korpusta ertelemeyi kaldıran duyuru yok.27.03.2026 duyurusu
555 kodu paketten çıkarıldı mı?HAYIR — hâlâ pakette. 27.07.2026 tarihli V1.43'ün 11. sayfasında "DİĞER İŞLEM TÜRÜ KODLARI LİSTESİ / 555" duruyor.UBL-TR Kod Listeleri V1.43
Schematron'da 555 geçerli mi?EVET. 24.08.2026 paketinde TaxExemptionReasonCodeType içinde 555 var.UBL-TR_Codelist.xml
DemirbasKDVTaxExemptionCheck duruyor mu?EVET. UBL-TR_Common_Schematron.xml sat. 512–515; UBL-TR_Main_Schematron.xml sat. 220'de <sch:extends rule="DemirbasKDVTaxExemptionCheck"/>.Common / Main Schematron
555 kullanmak zorunlu mu?HAYIR — zorunluluğu doğuracak kontrol ertelendi.27.03.2026 duyurusu
555 kullanılırsa hangi kurallar bağlayıcı?(a) Senaryo TEMELFATURA / TICARIFATURA / EARSIVFATURA olmalı ve fatura tipi ISTISNA veya IHRACKAYITLI olmamalı (EARSIVFATURA'da YTB* ile başlayan tipler de yasak). Hata: "…senaryolu … fatura tipinde '555' vergi muafiyet kodu kullanılamaz." (b) "Vergi istisna muafiyet kodu 555 olduğu durumda KDV 0 geçilemez."0015 (KDV) için hem kalem hem toplam seviyesinde Percent=0 veya TaxAmount=0 reddedilir.UBL-TR_Common_Schematron.xml sat. 512–515
555, "istisna kodu ancak istisna faturasında olur" kuralından muaf mı?EVET. TaxExemptionReasonCodeCheck assert'i cbc:TaxExemptionReasonCode != 555 şartıyla 555'i kapsam dışı bırakır → SATIS gibi normal tiplerde kullanılabilir.Common Schematron sat. 320

PORTAL TALİMATI: 555'i destekleyin ama zorunlu tutmayın. Kullanıcı 555 seçtiğinde iki validasyonu client tarafında da uygulayın: (1) senaryo/fatura tipi kısıtı, (2) KDV oranı ve tutarının sıfırdan büyük olma zorunluluğu. "1 Nisan 2026'da 555 zorunlu oldu" bilgisi YANLIŞTIR; erteleme yürürlüktedir.

İÇ ÇELİŞKİ (açıkça belirtilmelidir): 27.03.2026 duyurusu "16/3/2026 tarihli duyurumuz için işlem yapılmayacaktır" derken, 555 kodu hem 27.07.2026 tarihli V1.43 kılavuzunda hem 24.08.2026 paketinin Codelist.xml ve Common Schematron dosyalarında durmaya devam etmektedir. Ertelemenin yalnızca "sicil/faaliyet kodu karşılığı KDV oran kontrolünü" mü, yoksa 555 kullanımını da mı kapsadığı korpustan netleşmemektedir.


7. 14.09.2026'da Devreye Girecek Değişiklikler

DOĞRULANAMADI — Korpusta 14.09.2026 tarihine atıf yapan hiçbir belge yoktur ("14.9.2026 / 14/9/2026 / 14.09.2026 / 14/09/2026" araması tüm .txt ve .xml dosyalarında 0 sonuç). "27.07.2026 güncellemeleri 14.09.2026'da devreye alınacak" bilgisi korpustan doğrulanamamaktadır; ilgili GİB duyurusu korpusa dahil edilmemiştir.

Korpusun söyleyebildiği maksimum:

A) 27.07.2026 (V1.43) ile kod listesinde ne değişti? V1.43 sürüm tablosunun son iki satırı:

VersiyonYayım TarihiSayfaAçıklama
1.4212.03.2026Sayfa 11Diğer İşlem Türü Kodları Listesi eklendi.
1.4327.07.2026Sayfa 10Kısmi İstisna Kodları Listesi güncellendi. / Kısmi İstisna Kod Listesine yeni kod eklendi.

Kısmi istisnadaki tek yeni kod 233; açıklaması değişenler 219, 220, 229. (GİB'in kendi sürüm tablosundaki "Sayfa 10" referansı fiili sayfa konumuyla uyuşmuyor: çıkarılan metinde 233 kodu sayfa 9'da, sayfa 10 tamamen Tam İstisna listesidir. Esas sonuç değişmez.)

B) Schematron tarafında bekleyen ne var? Hiçbir şey. 24.08.2026 tarihli paketin History.txt dosyasındaki son kayıt 20260701'dir; sonrasında schematron değişikliği yoktur.

C) Korpustan doğrulanabilen yakın takvim:

TarihKaynakNe oluyor
22.05.2026e-Arşiv Başvuru Kılavuzu v1.8Entegrasyon yöntemiyle başvuracaklara TURKAK onaylı ISO zorunluluğu; "1 Giriş" bölümüne e-Gider Pusulası eklendi
29.06.2026e-Fatura Özel Entegrasyon Kılavuzu v1.14Özel entegrasyon başvurusunda TURKAK onaylı ISO 27001 + 22301 + 20000; e-Gider Pusulası kodları ve etiketi eklendi
01.07.2026History.txt 20260701ENERJİ (SARJ/SARJANLIK) kuralları + YatirimTesvikTaxExemptionReasonCodeType (308, 339)
27.07.2026UBL-TR Kod Listeleri V1.43Kısmi İstisna Kodları Listesi güncellemesi (233)
01.01.2027589 SN VUK GTBasit usul + işletme hesabı mükelleflerinde e-Arşiv Faturanın tutara bakılmaksızın zorunlu hâle gelmesi
İkinci bir duyuruya kadar27.03.2026 duyurusuSicil/faaliyet kodu karşılığı KDV oran kontrolü (555) ertelenmiş durumda

8. YANLIŞ BİLİNENLER TABLOSU

#YAYGIN YANLIŞDOĞRUSU (31.08.2026)NEDEN KARIŞIYOR / Dayanak
1"e-Arşiv zorunluluğu nihai tüketiciye 30.000 TL, mükellefe 5.000 TL"526 (09.02.2021) ile kaldırıldı. Bugün: 1/1/2025–31/12/2025 arası 3 Bin TL; 1/1/2026'dan itibaren tutara bakılmaksızın509 dipnot 27 + 573 md. 2. Bu rakam hâlâ GİB'in "509 Çok Sorulan Sorular" (soru 30-31) ve "Geçiş Takvimi Tablosu" dokümanlarında yayında
2"5 Bin TL sınırı hâlâ geçerli"573 ile 3 Bin TL'ye çekildi ve 1/1/2026'dan itibaren tamamen kaldırıldı509 dipnot 26
3"Tüm mükellefler için 1/1/2026'dan itibaren sınırsız e-Arşiv"Basit usul ve işletme hesabı mükelleflerinde 1/1/2027; 2026 boyunca onlar için 3 Bin TL589 md. 1; 509 dipnot 24-25. 589 çok yeni (31.12.2025) ve tek maddelik olduğu için gözden kaçıyor
4"Aynı gün aynı kişiye kesilen faturalar toplanır, toplam haddi aşarsa e-Arşiv zorunlu"573 ile bu fıkra yürürlükten kaldırıldı (12.11.2024). Gün içi toplama kuralı yok509 dipnot 28 (mülga fıkra). Eski muhasebe eğitim materyallerinde ısrarla geçiyor
5"e-Fatura ciro haddi 5 Milyon TL"535 ile kademelendi: 2018/2019/2020 → 5 Milyon; 2021 → 4 Milyon; 2022 ve müteakip → 3 Milyon TL509 dipnot 6. GİB "Geçiş Takvimi Tablosu" ve SSS hâlâ 5 Milyon TL yazıyor
6"e-Ticaret satıcıları için had 1 Milyon TL"2020/2021 için 1 Milyon TL, 2022 ve müteakip için 500 Bin TL509 dipnot 7
7"AHS/ilan/reklam aracıları dışında e-ticarette e-Fatura zorunluluğu yok"535 ile kendi sitesinden veya pazaryerinden satış yapanlar da hadde bağlı kapsama alındı509 dipnot 7, 22, 23
8"e-İrsaliye ciro haddi 25 Milyon TL"2018/2019/2020 → 25 Milyon; 2021 ve müteakip → 10 Milyon TL509 dipnot 32
9"Demir-çelikte e-İrsaliye için e-Fatura mükellefi olmak şart"535 ile şart kaldırıldı; imal/ithal/ihraç yapan herkes (basit usul hariç)509 dipnot 31
10"e-İrsaliye zorunluluk listesi 8 bent"573 ile 9. bent eklendi: İDİS'e geçiş zorunluluğu olanlardan 2024+ 1 Milyon TL ve üzeri509 dipnot 33; 573 md. 3
11"e-Arşiv Raporu aylık, takip eden ayın 15'ine kadar"Bu kural 31/12/2018'e kadar geçerliydi. 1/1/2019'dan itibaren GÜNLÜK dönemler hâlinde, en geç izleyen günün sonuna kadar. SARJANLIK tipinde ANLIKe-Arşiv Teknik Kılavuzu V.1.18 Böl. 5. Kılavuz cümlesi eski ve yeni rejimi aynı cümlede barındırdığı için ilk yarısı alıntılanıp yanlış aktarılıyor
12"UBL-TR Kod Listeleri V1.26 (veya V1.31) güncel"V1.26 = 09.04.2021, V1.31 = 01.01.2023. Güncel: V1.43 (27.07.2026)V1.43 sürüm tablosu. Arama motorlarında eski PDF'ler üstte çıkıyor
13"Fatura tipleri 5-6 tanedir"20 tanedir. Yeni: TEVKIFATIADE, SGK, KOMISYONCU, HKSSATIS, HKSKOMISYONCU, KONAKLAMAVERGISI, SARJ, SARJANLIK, TEKNOLOJIDESTEK, YTBSATIS, YTBIADE, YTBISTISNA, YTBTEVKIFAT, YTBTEVKIFATIADEUBL-TR_Codelist.xml. V1.31 lafzı "beş tipte tanımlanmıştır" diyor — eski kılavuzu okuyan yanılıyor
14"Senaryo (ProfileID) 5 tanedir"e-Fatura için 11, e-Arşiv EARSIVFATURA, irsaliye TEMELIRSALIYE, HKSIRSALIYE, IDISIRSALIYEUBL-TR_Codelist.xml
15"V1.43'te STDKODFATURA var, kullanabilirim"Kılavuz tablosunda var ama schematron ProfileIDType'ta YOK → gönderilirse reddedilirKılavuz–schematron çelişkisi; schematron esastır
16"Mali mühür TÜBİTAK-UEKAE tarafından üretilir"573 ile tüm ibareler "TÜBİTAK BİLGEM KAMU SM" oldu; ayrıca 526 ile BTK'nın yetkilendirdiği ESHS kuruluşları da üretebilir509 dipnot 4, 5, 81, 82, 83, 84
17"e-Dekont sadece bankalar içindir"573 ile VUK GT (Sıra No:435)'nin (2) numaralı bölümünde sayılan kuruluşlar da kapsama alındı; onlar için başlangıç 1/1/2025573 md. 5–9; 509 dipnot 40-56. Belgenin eski adı "Elektronik Banka Dekontu" olduğu için yerleşmiş
18"e-Dekont başvurusu reddedilen 3 ay bekler"6 ay509 dipnot 50
19"Bilgi işlem sistemi yeterli olan her mükellef doğrudan entegrasyon yapabilir"573 ile GİB kriterleri + başvurunun uygun bulunması şart; şartı kaybedenin hesabı tespiti izleyen 3. ayın başında kapatılır, 1 yıl yasak509 dipnot 63, 64, 65
20"İzni iptal edilen 6 ay başvuru yapamaz"Bu ibare 573 ile kaldırıldı; yerine özel entegratör ve doğrudan entegrasyon için 1 YIL yasağı geldi509 dipnot 86 vs. 62/64/65
21"e-Adisyonda ilişkili e-Fatura/e-Arşiv ETTN'si veya ÖKC sicil no zorunlu"573 ile (d) bendi mülga — artık zorunlu değil (buna karşılık faturada e-Adisyonun ETTN'si yer alır)509 dipnot 59
22"ÖKC muafiyetlilerde 500 TL'ye kadar 'NİHAİ TÜKETİCİ' e-Arşiv"550 ile 500 TL sabit had kaldırıldı; yerine VUK 232/2'deki yıllık güncellenen fatura düzenleme haddi geldi. Ayrıca 515 ile 507 SN VUK GT (GMÖEBYS) mükellefleri kapsama girdi509 dipnot 66, 67
23"e-Gider Pusulası çıktısı hem düzenleyen hem muhatap tarafından ıslak imzalanmalı"535 ile sadece muhatabın ıslak imzası; 573 ile Başkanlıkça belirlenen mükelleflerde ıslak imza yerine elektronik doğrulama. Aynı imkân e-Müstahsil Makbuzunda da var509 dipnot 72, 71, 73
24"e-Fatura zorunluluğu yalnızca zorunluluk kapsamındakiler arasında"535 ile ihtiyari olarak dahil olanlar da kapsama girdi: kayıtlı iki mükellef birbirine mutlaka e-Fatura düzenler509 dipnot 12
25"Bavul ticareti (özel fatura) e-Faturası 1/7/2020'den zorunlu"550 ile tarih "ebelge.gib.gov.tr'de yapılan duyuruda belirtilecek tarih" oldu509 dipnot 21
26"Başvuruda ISO belgelerinden birine sahip olmak yeterli"e-Arşiv Başvuru Kılavuzu v1.7 (17.02.2023): "belirtilen ISO belgelerinin tamamına sahip olması"; v1.8 (22.05.2026) ve ÖE Kılavuzu v1.14 (29.06.2026): TURKAK onaylı ISO 27001 + ISO 22301 + ISO 20000Kılavuz sürümleri
27"İade faturasında referans vermek opsiyonel"28.01.2025'ten beri schematron kuralı: IADE/TEVKIFATIADE/YTBIADE/YTBTEVKIFATIADE tiplerinde DocumentTypeCode='IADE' ve tam 16 haneli cbc:ID içeren InvoiceDocumentReference zorunluIADEInvioceCheck (History.txt 20250128)
28"555 kodu 1 Nisan 2026'da zorunlu oldu"HAYIR — 27.03.2026'da ikinci bir duyuruya kadar ertelendi. Kod pakette duruyor ama kullanımı zorunlu değil27.03.2026 duyurusu. 16.03.2026 duyurusu hâlâ dolaşımda olduğu için karışıyor
29"KDV oranları %8 / %18"Bu oranlar güncel değildir. Portalda KDV oranı sabit kodlanmamalı, kullanıcı girdisi/parametre olarak alınmalı; schematron oran listesi tutmaz, yalnızca TaxType kodunu (0015) doğrular. 555 kullanılıyorsa KDV oranı ve tutarı sıfırdan büyük olmak zorundadır.Korpusta oran tablosu yoktur; oran doğrulaması KDV mevzuatı işidir, e-Belge şemasının değil

YANLIŞ BİLGİNİN ANA KAYNAĞI: GİB'İN KENDİ GÜNCELLENMEMİŞ DOKÜMANLARI

DokümanNe yazıyor (ESKİ)Neden yanıltıyor
509 Çok Sorulan SorularSoru 30: "…vergiler dahil toplam tutarının 30 Bin TL'yi (vergi mükelleflerine düzenlenenler açısından vergiler dahil toplam tutarı 5.000 TL'yi) aşması hâlinde…"; Soru 2: "2018 veya müteakip hesap döneminde 5 milyon TL ve üzeri…"526 (2021) ve 573 (2024) sonrası güncellenmemiş; hâlâ ebelge.gib.gov.tr'de yayında. İnternetteki "30 Bin / 5 Bin TL" bilgisinin birinci kaynağı budur
509 s. VUK GT Kapsamında Uygulamalara Geçiş Takvimi Tablosu"2020 veya müteakip hesap dönemleri brüt satış hasılatı 5 Milyon TL"; "vergiler dahil toplam tutarı 30 Bin TL'yi aşanlar"; "…5 Bin TL'yi aşanlar"535 / 573 / 589 sonrası güncellenmemiş. Tablo formatında olduğu için blog ve muhasebe sitelerinde en çok kopyalanan belge
Zorunluluk Karşılaştırma TablosuSağ sütunun başlığı zaten: "TEBLİĞ TASLAKLARINA GÖRE (HENÜZ YÜRÜRLÜĞE GİRMEMİŞTİR.)"; içinde "5 Milyon TL", "50.000 TL", "500 TL" gibi 2019 taslak dönemi rakamları509'un taslak dönemine ait bir karşılaştırma belgesidir; hiçbir zaman yürürlükteki mevzuat olmamıştır. Başlığındaki uyarı çoğu zaman okunmadan rakamlar alıntılanıyor

PORTAL GELİŞTİRME KURALI — TEK BAĞLAYICI KAYNAK:

(a) Tutar, had, tarih ve zorunluluk için → dipnotlu konsolide 509 metni + 573 + 589 tebliğ metinleri.

(b) Kod, senaryo, fatura tipi ve alan zorunlulukları için → UBL-TR_Codelist.xml + Schematron dosyaları (Common, Main).

509 SSS, Geçiş Takvimi Tablosu ve Zorunluluk Karşılaştırma Tablosu referans alınmamalıdır. Kılavuz PDF'i ile schematron çeliştiğinde schematron esastır (bkz. STDKODFATURA, 501 kodu).


Doğrulanamayanlar

KonuDurumAçıklama
14.09.2026'da devreye girecek değişikliklerDOĞRULANAMADIKorpusta 14.09.2026'ya atıf yapan hiçbir belge yok (tüm .txt/.xml üzerinde 0 sonuç). 27.07.2026 güncellemelerinin devreye alma tarihini bildiren GİB duyurusu korpusa dahil edilmemiş
16.03.2026 duyurusunun tam içeriğiDOĞRULANAMADIDuyurunun kendisi korpusta yok; içeriği yalnızca 27.03.2026 duyurusundaki alıntıdan biliniyor. 555 dışında hangi kod/kural değişikliklerini içerdiği bilinmiyor
555 ertelemesinin kapsamı[ÇELİŞKİLİ]27.03.2026 duyurusu "16/3/2026 tarihli duyurumuz için işlem yapılmayacaktır" derken 555 kodu V1.43'te ve 24.08.2026 paketinde duruyor. Ertelemenin yalnızca KDV oran kontrolünü mü, 555 kullanımını da mı kapsadığı netleşmiyor. En güvenli yaklaşım: destekle, zorunlu tutma
509 dipnot 1'in eski lafzıDOĞRULANAMADIDipnot 1'de GİB/PDF kaynaklı hata var: "değiştirilmeden önceki hali" olarak yazılan metin gövdedeki YENİ hâlle aynı görünüyor. Eski kısaltmanın "Elektronik Banka Dekontu (e-Dekont)" olduğu 573 MADDE 1'den anlaşılıyor; eski tanımın tam lafzı okunamıyor
V1.43 PDF'inde sütun kayması[KISMEN DOĞRULANAMADI]Tam İstisna (325-351), Ölçü Birimleri, Vergi Kodları, Özel Matrah ve Senaryo tablolarında kod–açıklama sütunları metne çevirmede kaymış. 341/342/343/344 eşleşmeleri iki uçtan çapa alınarak yeniden kurgulandı; tekil kod-açıklama eşleşmeleri orijinal PDF'ten teyit edilmelidir
V1.43 sürüm geçmişi 1.35–1.43 satırlarıDOĞRULANAMADIAynı sütun kayması sürüm tablosunda da var; "hangi kod hangi sürümde eklendi" kesinleştirilemedi. Bunun yerine kesin tarihli History.txt kayıtları esas alındı
501 kodunun resmi adıDOĞRULANAMADITaxExemptionReasonCodeType ve istisnaTaxExemptionReasonCodeType içinde geçerli olduğu hâlde ne V1.31 ne V1.43 kılavuz tablolarında bulunuyor
STDKODFATURA'nın hangisinin hatalı olduğuDOĞRULANAMADIV1.43 kılavuzunda var, ProfileIDType/ProfileIDTypeGoruntuleme schematron listelerinde yok. Kılavuz hatası mı, paket eksikliği mi belirlenemiyor. Portalda kullanmayın
V1.31 döneminde OZELFATURA/KAMU/HKS'nin geçerliliğiDOĞRULANAMADIV1.31 PDF'inin ProfileID tablosu son sayfada (20/20) kesiliyor ve 5 senaryo görünüyor; o tarihe ait schematron korpusta olmadığı için kesin karşılaştırma yapılamıyor
515, 526, 535, 550 tebliğlerinin tam metinleri[KAPSAM DIŞI]Korpusta yok; etkileri yalnızca 509 dipnotları üzerinden okunabildi. Bu tebliğlerin 509 dışındaki (e-Defter, ÖKC vb.) hükümleri kapsam dışıdır
573'te dipnot–madde birebir eşlemesi[KISMEN]573'ün 21 maddesine karşılık 47 dipnot var (MADDE 6, 8, 16 gibi maddeler tek maddede birden fazla ibare değiştiriyor). Eşleme bölüm bazında kuruldu; birebir madde numarası eşlemesi 509 metninde belirtilmiyor
History.txt tarihlerinin niteliği[BELİRSİZ]Kayıtların "yayım tarihi" mi "devreye alma tarihi" mi olduğu dosyada yazmıyor; GİB duyurularından (14.02.2025 örneği) ikisi arasında haftalar olabildiği görülüyor. Ayrıca bazı eski kayıtlar hatalı biçimde yazılmış (örn. "2018103" — 7 haneli)
e-Belgelerde "ikincil örnek iletimi" zorunluluğunun kapsamıDOĞRULANAMADI509'un V.8 ve VIII. bölümleri Başkanlığa bu yetkiyi (ve karşılığında raporlama zorunluluğunu kaldırma yetkisini) veriyor; e-Arşiv Teknik Kılavuzu Böl. 14 mekanizmayı (ftp) tarif ediyor. Hangi sektör/mükellef gruplarına hangi tarihten itibaren getirildiğine dair duyuru korpusta yok

EK — Schematron Anomalileri ve Portal Kontrol Listesi

| 2 | e-Arşiv ve görüntüleme ana schematron dosyaları. Korpustaki UBL-TR_Main_Schematron.xml sabit <let name="type" value="efatura"/> içerir. $type='earchive' ve $type='goruntuleme' set eden main dosyaları korpusta yok. Korpustaki earsiv_schematron.xsl, e-Arşiv RAPORUNU (earsiv:eArsivRaporu) doğrular — e-Arşiv faturasının UBL XML'ini değil. e-Arşiv UBL'inin hangi dosya ve hangi $type ile doğrulandığı birebir teyit edilemedi (mantıksal çıkarım: $type='earchive'). | | 3 | HKSSATIS ve HKSKOMISYONCU açıklaması. InvoiceTypeCodeList'te mevcut, V1.43 bölüm 1.4 metninde açıklanmıyor (yalnızca KOMISYONCU için "Hal Kayıt sistemi kapsamındaki satışlar" açıklaması var). Ayrıca schematron'da bu üç tipi ProfileID='HKS' senaryosuna bağlayan hiçbir assert yoktur — teknik olarak TEMELFATURA/TICARIFATURA/EARSIVFATURA senaryolarında da geçerli sayılırlar. Kasıtlı mı eksik mi olduğu anlaşılamıyor. | | 4 | S_APR ve GUMRUKONAY V1.43'te açıklanmamış. V1.43 bölüm 1.7 yalnızca KABUL/RED/IADE'yi tarif eder. Bu iki kodun açıklamaları sırasıyla Ek-2 Sistem Yanıtı ve Gümrük İşlemleri kılavuzlarından derlenmiştir. | | 5 | 308 ve 339'un resmi adları V1.43'ten birebir doğrulanamadı. V1.43 satır 427 ve 502'de yalnızca kod numaraları görünüyor, açıklama sütunu hizalaması kaymış. Adlar Yatırım Teşvik Teknik Kılavuzu V1.2'den alınmıştır. | | 6 | ProfileIDTypeGoruntuleme'nin hangi serviste kullanıldığı. $type='goruntuleme' değerinin hangi GİB servisinde/API ucunda set edildiği (fatura görüntüleme portalı mı, özel entegratör validasyon servisi mi) hiçbir kılavuzda açıklanmıyor. Yalnızca schematron değişkeni olarak var. | | 7 | TEKNOLOJIDESTEK için ayrı teknik kılavuz. Bu tip 28.04.2025'te schematron'a eklenmiş; TCKN zorunluluğu ve TELEFON/TABLET_PC schemeID kuralları schematron'dan çıkarıldı. Hangi mevzuat/destek programı kapsamında, hangi tarihten itibaren, hangi mükellef grubu için zorunlu olduğu korpusta geçmiyor. | | 8 | GİB'in resmî TEVKIFAT.xml örnek fatura dosyası. e-Fatura paketinin ORNEKLER klasörü indirilmemiş; korpusta yalnızca UBL-TR Fatura V1.0 ve Ortak Elemanlar V0.7'deki tek parçalı WithholdingTaxTotal fragmanı var. Uçtan uca doğrulanmış tam tevkifatlı fatura XML'i için 24.08.2026 paketindeki örnek XML dosyaları indirilmelidir. | | 9 | Tevkifatlı faturada KDV hesaplama formülü. Kılavuzlar yalnızca "Toplam tevkifat tutarı girilir" / "Tevkifat kodu ve oranı bilgisi girilir" der. "Tevkifat tutarı = KDV × (Percent/100)" denklemi hiçbir yerde açıkça ifade edilmemiş; yalnızca örnekteki 3240/0,90 = 3600 rakamından çıkarım yoluyla türetilebiliyor. | | 10 | LegalMonetaryTotal/PayableAmount'a tevkifatın düşülüp düşülmeyeceği. Schematron dosyalarının hiçbirinde PayableAmount veya LegalMonetaryTotal geçen tek bir kural yok. Kılavuzlarda da tevkifat ile ödenecek tutar ilişkisi tanımlanmamış. Portal için en kritik hesaplama kararlarından biri ve korpustan cevaplanamıyor. | | 11 | e-Arşiv raporundaki tevkifat kodlarının (BDP kodları) listesi. e-Arşiv Teknik Kılavuzu "İnternet Vergi Dairesi Beyanname Düzenleme Programında yayınlanan kodlar" der ama listeyi vermiyor. Örnekteki 410 kodunun karşılığı ve 601-627 ile eşleme tablosu bulunamadı. | | 12 | İstisna kodlarının 1 no.lu KDV beyannamesi işlem kodları ile eşleşme tablosu. V1.43 yalnızca dipnotta atıf yapıyor, tabloyu vermiyor. | | 13 | Konaklama vergisi için TaxTypeCode. 001 Diplomatik İstisna kodunun hangi vergi kodu ile kullanılacağı yazmıyor. Schematron TaxType listesinde 0059 kodu var ama V1.43'ün VERGİ KODLARI LİSTESİ tablosunda 0059 tanımlı değil. | | 14 | KONAKLAMAVERGISI istisna kod listesinin tamamı. V1.43'te "KONAKLAMA VERGİSİ İSTİSNA KODLARI LİSTESİ" başlığı altında yalnızca "001 Diplomatik İstisna" görünüyor; tam liste PDF dönüşümünde kesilmiş olabilir. Ayrıca KONAKLAMAVERGISI tipini herhangi bir senaryoya bağlayan schematron kuralı yok. | | 15 | V1.32-V1.42 ara sürümler. Diff yalnızca V1.31 ↔ V1.43 arasında yapılabildi; 329/233/341-344/704 kodlarının tam olarak hangi ara sürümde eklendiği kesinleştirilemedi. | | 16 | Boş kod numaraları: 203, 210, 222, 224, 243-249 (kısmi istisna) ve 345-349 (tam istisna) hiçbir listede yer almıyor; daha önce kullanılıp kaldırılıp kaldırılmadıkları belirtilmemiş. | | 17 | Fatura tipi bazında zorunluluk/yürürlük tarihleri. Hangi tipin hangi tarihten itibaren zorunlu/geçerli olduğu bu dosyalarda yok; geçiş takvimi ve zorunluluk tabloları ayrı dosyalardadır (509_s.VUK_GT_Kapsaminda_Uygulamalara_Gecis_Takvimi_Tablosu, Zorunluluk_Karsilastirma_Tablosu). |

18.3 Gerekçesi açıklanmamış schematron davranışları

#DavranışNot
1YTBTEVKIFAT ↔ 4171 asimetrisi. GeneralWithholdingTaxTotalCheck assert-1 YTBTEVKIFAT'a cac:WithholdingTaxTotal izni verirken assert-2 aynı tipe TaxTypeCode 4171 izni vermiyor. Kasıtlı tasarım mı schematron hatası mı anlaşılamıyor.
2TEVKIFATIADE ve YTBTEVKIFATIADE'nin assert-1'de olmaması. Tevkifat iade faturasında fatura seviyesinde tevkifat bloğu taşınamaması gerekçelendirilmemiş. Doğru düzenleme biçimi (IADE tipiyle mi, kalem seviyesi tevkifatla mı) hiçbir kılavuzda anlatılmamış.
3SGKInvoiceCheck tanımlı ama bağlı değil. Common Schematron satır 524-527'de abstract rule mevcut (7750409379 VKN'li SGK'ya gönderilen faturaların SGK/TEVKIFAT tipinde olması kuralı) ancak Main Schematron'da hiçbir <sch:extends> bu kuralı çağırmıyor. History.txt "20171213 1) SGKInvoiceCheck silindi." kaydıyla uyumlu — ölü koddur. SGK faturalarının senaryo/tip kısıtının bugün nasıl zorlandığı netleşmiyor.
4650 kodunun ne zaman/hangi tebliğle kaldırıldığı. Yalnızca V1.22 (14.03.2019) "650 Tevkifat koduna 3/10 eklendi" kaydı var; kaldırılma kaydı yok. WithholdingTaxTypeWithPercent'te 5 ölü kombinasyonun (65020, 65030, 65050, 65070, 65090) neden temizlenmediği belirsiz.
5Satır seviyesinde istisna kodu doğrulamasının kapalı olması. Main Schematron'da inv:Invoice/cac:InvoiceLine/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory context'i için TaxExemptionReasonCodeCheck ve TaxExemptionReasonCheck yorum satırı yapılmış. Satır seviyesine istisna kodu yazmanın zorunlu/serbest/yasak olup olmadığına dair resmî açıklama yok (YATIRIMTESVIK hariç — orada satır seviyesi zorunlu).
6Tevkifat tutarının aritmetik doğruluğu hiç kontrol edilmiyor. WithholdingTaxTotal/TaxAmount ile alt TaxSubtotal/TaxAmount toplamının eşitliği, tevkifat tutarının KDV ile tutarlılığı, tevkifat varken TaxTotal altında 0015 bulunması — hiçbiri denetlenmiyor. GİB'in bu kontrolleri schematron dışında (uygulama katmanında) yapıp yapmadığı anlaşılmıyor.
7555'in yeniden devreye alınma tarihi. 27.03.2026 duyurusu "ikinci bir duyuruya kadar" erteliyor; korpusta ikinci duyuru yok. Kod ve DemirbasKDVTaxExemptionCheck 24.08.2026 paketinde hâlâ mevcut — kuralın GİB tarafında şu anda aktif uygulanıp uygulanmadığı anlaşılmıyor.
8627 için 4/10 → 5/10 geçiş tarihi. WithholdingTaxTypeWithPercent hem 62740 (4/10) hem 62750 (5/10) içeriyor; V1.31 ve V1.43 tabloda yalnızca 5/10 basıyor. Geçiş tarihi ve 4/10'un hangi dönem faturalarında kullanılacağı yok.
9601 (3/10→4/10), 603 (5/10→7/10), 609, 612, 613, 615 oran geçiş tarihleri. Eski oranlar listede duruyor ama hangisinin hangi tarihten itibaren geçersiz olduğu ne kılavuzda ne History.txt'de yazıyor. History.txt yalnızca "WithholdingTaxTypeWithPercent guncellendi" diyor, neyin değiştiğini yazmıyor.
10"TAM TEVKİFAT" / "KISMİ TEVKİFAT" terimleri korpusta hiç geçmiyor. 801-825 bloğunun %100 oranlı olduğu yalnızca oran sütunundan okunuyor; GİB bu bloğa resmî bir ad vermemiş, 601-627'den ayıran başlık koymamış. 801-825'in hangi mükellef gruplarına (5018 sayılı Kanuna ekli idareler vb.) uygulanacağı KDVGUT'ta olmalı — KDVGUT metni korpusta değil.
11Kısmî/tam istisna ayrımının iade hakkı sonucu. Kılavuz yalnızca iki ayrı liste başlığı veriyor; indirim/iade hakkı farkı UBL-TR dokümanlarında tanımlanmamış. Tek istisna: 236 kodunun adında "(İade Hakkı Tanınmayan)" ibaresi geçiyor.
12351 ile 501 arasındaki ilişki. 351 "KDV - İstisna Olmayan Diğer" olarak tanımlı ve istisna listesinde YOK; 501 istisna listesinde VAR ama tanımsız. İkisinin neden ayrı ayrı durduğu, hangisinin kullanılacağı açıklanmıyor.
13509 Sıra No.lu VUK Genel Tebliği tevkifata hiç değinmiyor. Dipnotlu konsolide 509 metninde "tevkifat" kelimesi yalnızca bir kez, e-Gider Pusulası içeriği bağlamında geçiyor. 509 Çok Sorulan Sorular dokümanında "tevkifat" hiç geçmiyor. Tevkifat mevzuatı tamamen KDV Genel Uygulama Tebliği'nde ve o metin korpusta yok.
14e-Arşiv raporu (earsiv_schematron.xsl) tarafında istisna kodu doğrulaması yok. TaxExemptionReasonCode ile ilgili hiçbir kural bulunmuyor (yalnızca YTB fatura tipleri için ytbBilgileri zorunluluğu var). e-Arşiv raporunda istisna kodunun hangi alana yazılacağı e-Arsiv_Teknik_Kilavuzu_V.1.18_'de tanımlı değil.

19. Bölüm Özeti — Portal İçin Kritik 10 Madde

#Madde
1SARJ = HAFTALIK, SARJANLIK = ANLIK. İsimlendirme sezgiye terstir.
2Tevkifat cbc:Percent ondalıksız tamsayı olmalıdır (90, 90.0 değil) — schematron metinsel concat yapar. KDV'de ondalık serbest, tevkifatta yasak.
3650 tevkifat kodu kullanılamazWithholdingTaxTypeWithPercent'te var ama WithholdingTaxType'ta yok. 616/626'ya map et.
4801-812 iki farklı listedir: özel matrah (TaxExemptionReasonCode) ve tevkifat (TaxTypeCode). Tek tabloda tutma.
5308 ve 339 artık yalnızca YATIRIMTESVIK / YTB* ile kullanılabilir (01.07.2026 değişikliği). Eski portaller hata almaya başlayacak.
6"0 KDV'li SATIS" pratikte imkânsızdır — 351 veya 151 kodu + ISTISNA tipi kullanılmalıdır; 555 bu problemi çözmez (555 ile KDV 0 geçilemez).
7TEVKIFATIADE tipinde fatura seviyesinde cac:WithholdingTaxTotal kullanılamaz. IADE tipine geçmek veya kalem seviyesi tevkifat kullanmak gerekir — GİB test ortamında doğrulanmalı.
8IADE tipi TICARIFATURA'da kesilemez (TEVKIFATIADE kesilebilir).
9PayableAmount'a tevkifatın düşülüp düşülmeyeceği korpusta tanımlı değil ve schematron hiç kontrol etmiyor — GİB'e sorulmalıdır.
10Senaryo/tip matrisi kod içine gömülmemelidir. Son 9 ayda ENERJI, IDIS, Yatırım Teşvik ve 555 satırları eklenmiştir; matris veritabanı/konfigürasyon olarak tutulmalı ve schematron paketi güncellendiğinde yeniden üretilebilmelidir. 240 hücrelik regresyon testi kurulmalıdır.