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):
| Kaynak | Sürüm / tarih | Neden kritik |
|---|---|---|
e-FaturaPaketi (29).zip → schematron/ | 24.08.2026 | Gİ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.zip | 11.08.2026 | e-Arşiv XSD + schematron |
UBLTR_1.2.1_Kilavuzlar.zip → UBL-TR Kod Listeleri V1.43 | 27.07.2026 | Kodların Türkçe açıklamaları |
UBLTR_1.2.1_Paketi.zip, UBL-TR1.2.1_Paketi.zip | 27.07.2026 / 16.03.2026 | Örnek XML'ler, XSLT'ler, XSD'ler |
| 509 SN VUK GT — dipnotlu konsolide metin | güncel | Dipnotlar "hangi tebliğ neyi ne zaman değiştirdi"yi gösterir |
| 573 ve 589 SN VUK GT tam metinleri | 12.11.2024 / 31.12.2025 | Son iki değişiklik tebliği |
| 40+ GİB teknik kılavuzu | çeşitli | e-İ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:
| Katman | Kapsam | Denetim | Güven |
|---|---|---|---|
| A — Makine-okunur | Kod listeleri, senaryo×tip matrisi, schematron assert'leri | GİB'in kendi XML dosyasından birebir kopya; kaynak-dosyalar/UBL-TR_Codelist.xml ile karşılaştırılabilir | En yüksek |
| B — Tebliğ metni | Eş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 maddeler | Birincil 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
| Etiket | Anlamı |
|---|---|
| (etiketsiz) | Kaynaktan birebir alıntıyla doğrulandı |
| DOĞRULANAMADI | Korpusta 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
- Bu rapor mali müşavirlik veya hukuki görüş değildir. Mevzuat yorumu gerektiren kararlarda YMM/SMMM görüşü alın.
- 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.
- 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
| # | Bulgu | Etki |
|---|---|---|
| 1 | Gİ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 |
| 2 | e-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 |
| 3 | e-Fatura ciro haddi: 2018-2020 → 5M ₺, 2021 → 4M ₺, 2022 ve müteakip → 3M ₺. İnternet satışı yapanlarda 2022+ için 500 Bin ₺. | Kural motorunun temeli |
| 4 | Gü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 |
| 5 | ProfileID 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 |
| 6 | STDKODFATURA tuzağı: V1.43 kılavuzunda tanımlı, UBL-TR_Codelist.xml'de yok → schematron reddeder. | Kılavuza güvenip kodlamayın |
| 7 | Gİ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 |
| 8 | 555 "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ış |
| 10 | e-İ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ı |
| 11 | e-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 |
| 12 | Ticari 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 |
| 13 | Tevkifatta 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 |
| 14 | KDV 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 |
| 15 | Elinizdeki "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.
$type | Kullanılan ProfileID listesi | InvoiceTypeCodeCheck assert-3 (ENERJI ⇔ SARJ/SARJANLIK) |
|---|---|---|
efatura (veya boş / tanımsız) | ProfileIDType (11 değer) | AKTİF |
earchive | ProfileIDTypeEarchive (1 değer) | Devre dışı (vacuous geçer) |
goruntuleme | ProfileIDTypeGoruntuleme (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,'"/>| ProfileID | V1.43 açıklaması (birebir) | e-Fatura | e-Arşiv | e-İrsaliye | Görüntüleme | Ne zaman kullanılır |
|---|---|---|---|---|---|---|
| TEMELFATURA | "Temel Fatura sürecini belirtir." | OK | – | – | OK | Sadece 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." | OK | – | – | OK | Alıcının uygulama yanıtı (KABUL/RED/IADE) düzenlemesine imkân veren senaryo. |
| YOLCUBERABERFATURA | "Yolcu Beraber Eşya Fatura sürecini belirtir." | OK | – | – | OK | Tax-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." | OK | – | – | OK | İ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." | OK | – | – | OK | Bavul ticareti / özel fatura. Zarf alıcısı urn:mail:ihracatpk@gtb.gov.tr olabilir. |
| KAMU | "Kamu Fatura sürecini belirtir." | OK | – | – | OK | Kamu kurumlarına düzenlenen faturalar; geçerli TR IBAN zorunlu. |
| HKS | "Hal Kayıt Sistemi Fatura sürecini belirtir." | OK | – | – | OK | Hal Kayıt Sistemi kapsamındaki satışlar; her satırda 19 karakter KUNYENO. |
| ENERJI | "Elektrikli Araçlar için düzenlenecek faturayı belirtir." | OK | – | – | OK | Elektrikli araç şarj hizmetleri; sadece SARJ veya SARJANLIK tipi. |
| ILAC_TIBBICIHAZ | "İlaç ve Tıbbi Cihaz için düzenlenecek faturayı belirtir." | OK | – | – | OK | İTS/ÜTS bildirimli ilaç ve tıbbi cihaz ticareti. |
| YATIRIMTESVIK | "Yatırım Teşvik için düzenlenecek faturayı belirtir." | OK | – | – | OK | Yatırım Teşvik Belgesi kapsamı; 6 haneli YTBNO zorunlu. |
| IDIS | "İnşaat Demiri İzleme Sistemleri için düzenlenecek faturayı belirtir." | OK | – | – | OK | İnşaat demiri teslimleri; SEVKIYATNO + ETIKETNO zorunlu. |
| EARSIVFATURA | "e-Arşiv Fatura sürecini belirtir." | – | OK | – | OK | e-Arşiv Fatura ($type='earchive' ile doğrulanır). |
| TEMELIRSALIYE | "İrsaliye sürecini belirtir." | – | – | OK | – | e-İrsaliye (DespatchAdvice) temel senaryosu. |
| HKSIRSALIYE | "Hal Kayıt Sistemi İrsaliye sürecini belirtir." | – | – | OK | – | HKS kapsamında e-İrsaliye; her DespatchLine'da 19 karakter KUNYENO. |
| IDISIRSALIYE | "İnşaat Demiri İzleme Sistemleri için düzenlenecek irsaliye sürecini belirtir." | – | – | OK | – | IDIS 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:
| Kural | Bağlam | Türkçe hata mesajı |
|---|---|---|
ProfileIDCheck assert-1 | inv: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-4 | inv:Invoice | "Invoice alanın xsi:schemaLocation özeliği 'UBL-Invoice-2.1.xsd' olmalıdır" |
ProfileIDTypeDespatchAdvice | desp: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,'"/>| # | Kod | V1.43 açıklaması |
|---|---|---|
| 1 | SATIS | Her türlü mal ve hizmet satışı ile ilgili düzenlenen faturalar |
| 2 | IADE | Bir malın iadesi amacıyla alıcı tarafından düzenlenen faturalar |
| 3 | TEVKIFAT | Tevkifat içeren faturalar |
| 4 | TEVKIFATIADE | Tevkifat içeren faturaların iadesi |
| 5 | ISTISNA | Vergi istisnası içeren faturalar |
| 6 | OZELMATRAH | Özel matrah faturaları |
| 7 | IHRACKAYITLI | İ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 |
| 8 | SGK | Sosyal Güvenlik Kurumu kapsamındaki satışlar için düzenlenen faturalar |
| 9 | KOMISYONCU | Hal Kayıt sistemi kapsamındaki satışlar için düzenlenen faturalar |
| 10 | HKSSATIS | V1.43 metninde ayrıca açıklanmamıştır (bkz. Doğrulanamayanlar) |
| 11 | HKSKOMISYONCU | V1.43 metninde ayrıca açıklanmamıştır (bkz. Doğrulanamayanlar) |
| 12 | KONAKLAMAVERGISI | Konaklama kapsamındaki satışlar için düzenlenen faturalar |
| 13 | SARJ | Elektrikli araçlar şarj istasyonunda haftalık olarak düzenlecek faturalar |
| 14 | SARJANLIK | Elektrikli araçlar şarj istasyonunda anlık olarak düzenlecek faturalar |
| 15 | TEKNOLOJIDESTEK | Teknolojik cihaz desteği kapsamında telefon, bilgisayar/tablet satışlarında düzenlenecek e-Arşiv Faturalar |
| 16 | YTBSATIS | Yatırım Teşvik kapsamında düzenlenecek e-Arşiv satış faturaları |
| 17 | YTBIADE | Yatırım Teşvik kapsamında düzenlenecek e-Arşiv iade faturaları |
| 18 | YTBISTISNA | Yatırım Teşvik kapsamında düzenlenecek e-Arşiv istisna faturaları |
| 19 | YTBTEVKIFAT | Yatırım Teşvik kapsamında düzenlenecek e-Arşiv Tevkifat faturaları |
| 20 | YTBTEVKIFATIADE | Yatı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) |
|---|---|
| SATIS | YTBSATIS |
| ISTISNA | YTBISTISNA |
| IADE | YTBIADE |
| TEVKIFAT | YTBTEVKIFAT |
| TEVKIFATIADE | YTBTEVKIFATIADE |
3. Senaryo × Fatura Tipi geçerlilik matrisi
Lejant
OK— schematron ve kılavuz düzeyinde serbest; ek zorunlu alan yokKOSULLU— geçerli, ancak senaryo/tip nedeniyle ek zorunlu alan(lar) devreye girerKOSULLU*— 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ırYASAK— 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 \ Tip | SATIS | IADE | TEVKIFAT | TEVKIFATIADE | ISTISNA | OZELMATRAH | IHRACKAYITLI | SGK |
|---|---|---|---|---|---|---|---|---|
| TEMELFATURA | OK | KOSULLU | OK | KOSULLU | OK | OK | KOSULLU | OK |
| TICARIFATURA | OK | YASAK | OK | KOSULLU | OK | OK | KOSULLU | OK |
| YOLCUBERABERFATURA | KOSULLU | YASAK | KOSULLU | KOSULLU | KOSULLU | KOSULLU | KOSULLU | KOSULLU |
| IHRACAT | KOSULLU | YASAK | KOSULLU | KOSULLU | KOSULLU | KOSULLU | KOSULLU | KOSULLU |
| OZELFATURA | OK | YASAK | OK | KOSULLU | OK | OK | KOSULLU | OK |
| KAMU | KOSULLU | KOSULLU | KOSULLU | KOSULLU | KOSULLU | KOSULLU | KOSULLU | KOSULLU |
| HKS | KOSULLU | YASAK | KOSULLU | KOSULLU | KOSULLU | KOSULLU | KOSULLU | KOSULLU |
| ENERJI | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK |
| ILAC_TIBBICIHAZ | KOSULLU | KOSULLU | KOSULLU | KOSULLU | KOSULLU | YASAK | KOSULLU | YASAK |
| YATIRIMTESVIK | KOSULLU | KOSULLU | KOSULLU | KOSULLU | KOSULLU | YASAK | YASAK | YASAK |
| IDIS | KOSULLU | KOSULLU | KOSULLU | KOSULLU | KOSULLU | YASAK | KOSULLU | YASAK |
| EARSIVFATURA | OK | KOSULLU | OK | KOSULLU | OK | OK | KOSULLU | OK |
Tablo B — Özel / sektörel fatura tipleri
| Senaryo \ Tip | KOMISYONCU | HKSSATIS | HKSKOMISYONCU | KONAKLAMAVERGISI | SARJ | SARJANLIK | TEKNOLOJIDESTEK | YTBSATIS | YTBIADE | YTBISTISNA | YTBTEVKIFAT | YTBTEVKIFATIADE |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| TEMELFATURA | OK | OK | OK | OK | YASAK | YASAK | YASAK | KOSULLU* | KOSULLU* | KOSULLU* | KOSULLU* | KOSULLU* |
| TICARIFATURA | OK | OK | OK | OK | YASAK | YASAK | YASAK | KOSULLU* | KOSULLU* | KOSULLU* | KOSULLU* | KOSULLU* |
| YOLCUBERABERFATURA | KOSULLU | KOSULLU | KOSULLU | KOSULLU | YASAK | YASAK | YASAK | KOSULLU* | KOSULLU* | KOSULLU* | KOSULLU* | KOSULLU* |
| IHRACAT | KOSULLU | KOSULLU | KOSULLU | KOSULLU | YASAK | YASAK | YASAK | KOSULLU* | KOSULLU* | KOSULLU* | KOSULLU* | KOSULLU* |
| OZELFATURA | OK | OK | OK | OK | YASAK | YASAK | YASAK | KOSULLU* | KOSULLU* | KOSULLU* | KOSULLU* | KOSULLU* |
| KAMU | KOSULLU | KOSULLU | KOSULLU | KOSULLU | YASAK | YASAK | YASAK | KOSULLU* | KOSULLU* | KOSULLU* | KOSULLU* | KOSULLU* |
| HKS | KOSULLU | KOSULLU | KOSULLU | KOSULLU | YASAK | YASAK | YASAK | KOSULLU* | KOSULLU* | KOSULLU* | KOSULLU* | KOSULLU* |
| ENERJI | YASAK | YASAK | YASAK | YASAK | KOSULLU | KOSULLU | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK |
| ILAC_TIBBICIHAZ | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK |
| YATIRIMTESVIK | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK |
| IDIS | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK | YASAK |
| EARSIVFATURA | OK | OK | OK | OK | KOSULLU | KOSULLU | KOSULLU | KOSULLU | KOSULLU | KOSULLU | KOSULLU | KOSULLU |
3.1 YASAK hücrelerinin dayanağı
| # | Etkilenen hücreler | Assert adı (kural / sıra) | Kaynak satır | Türkçe hata mesajı (birebir) |
|---|---|---|---|---|
| Y1 | IADE sütunu × TICARIFATURA, YOLCUBERABERFATURA, IHRACAT, OZELFATURA, HKS, ENERJI (6 hücre) | InvoiceTypeCodeCheck assert-2 | Common 176 | "Fatura tipi IADE iken fatura profili sadece TEMELFATURA , EARSIVFATURA, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS veya KAMU olabilir" |
| Y2 | ENERJI satırı × SARJ ve SARJANLIK dışındaki 18 tip | InvoiceTypeCodeCheck assert-3 | Common 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." |
| Y3 | SARJ / 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) |
| Y4 | TEKNOLOJIDESTEK sütunu × EARSIVFATURA dışındaki 11 senaryo | InvoiceTypeCodeCheck assert-4 | Common 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." |
| Y5 | ILAC_TIBBICIHAZ satırı × OZELMATRAH, SGK, KOMISYONCU, HKSSATIS, HKSKOMISYONCU, KONAKLAMAVERGISI, SARJ, SARJANLIK, TEKNOLOJIDESTEK, YTBSATIS, YTBIADE, YTBISTISNA, YTBTEVKIFAT, YTBTEVKIFATIADE (14 hücre) | IlacTibbiCihazInvoiceTypeCodeCheck | Common 365-367 | "ILAC_TIBBICIHAZ Fatura senaryosunda fatura tipi “SATIS”, “ISTISNA” “TEVKIFAT”, “TEVKIFATIADE”, “IADE” ve “IHRACKAYITLI” tiplerinden biri olmalıdır." |
| Y6 | YATIRIMTESVIK satırı × Y5'teki 14 tip + IHRACKAYITLI (15 hücre) | YatirimTesvikInvoiceTypeCodeCheck | Common 369-371 | "Yatırım Teşvik Faturasında fatura tipi “SATIS”, “ISTISNA” , “IADE” , \"TEVKIFAT\" ve \"TEVKIFATIADE\" tiplerinden biri olmalıdır." |
| Y7 | IDIS satırı × Y5'teki 14 tip | IdisInvoiceTypeCodeCheck | Common 373-375 | "IDIS fatura senaryosunda fatura tipi SATIS, ISTISNA, IADE, TEVKIFAT, TEVKIFATIADE ve IHRACKAYITLI tiplerinden biri olmalıdır." |
| Y8 | Listede olmayan herhangi bir tip (matris dışı) | InvoiceTypeCodeCheck assert-1 | Common 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, ''}ikenProfileID = '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ücreler | Assert adı | Kaynak satır | Türkçe hata mesajı (birebir) |
|---|---|---|---|---|
| K1 | IADE, TEVKIFATIADE, YTBIADE, YTBTEVKIFATIADE tiplerinin tüm geçerli hücreleri | IADEInvioceCheck | Common 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." |
| K2 | KAMU satırının tamamı | KamuFaturaCheck | Common 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" |
| K3 | HKS satırının tamamı | HKSInvioceCheck | Common 357-359 | "ProfileID='HKS' iken, her cac:InvoiceLine elemanı 19 karakterli 'KUNYENO' içermelidir." |
| K4 | IHRACAT satırının tamamı | IhracatYolcuBeraberCheck assert-4 | Common 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." |
| K5 | IHRACAT satırının tamamı | PriceAmountCheck | Common 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." |
| K6 | IHRACAT satırının tamamı | PackageCheck | Common 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." |
| K7 | IHRACAT 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." |
| K8 | IHRACAT satırının tamamı | PartyVDCheck | Common 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." |
| K9 | IHRACAT satırının tamamı | OfficelTitleCheck | Common 450-452 | "cbc:ProfileID elemanının değeri IHRACAT iken, cac:BuyerCustomerParty/cac:Party/cac:PartyLegalEntity/cbc:RegistrationName elamanı dolu olmalıdır." |
| K10 | YOLCUBERABERFATURA satırının tamamı | IhracatYolcuBeraberCheck assert-3 | Common 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." |
| K11 | YOLCUBERABERFATURA 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." |
| K12 | YOLCUBERABERFATURA satırının tamamı | TaxFreeNationalityIDCheck | Common 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." |
| K13 | YOLCUBERABERFATURA satırının tamamı | PassportIDCheck | Common 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." |
| K14 | ILAC_TIBBICIHAZ satırının 6 geçerli hücresi | IlacTibbiCihazAdditionalItemIdentificationCheck | Common 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" |
| K15 | YATIRIMTESVIK satırının 5 geçerli hücresi + EARSIVFATURA × YTB* 5 hücresi | YatirimTesvikContractDocumentReferenceIDCheck | Common 377-379 | "Yatırım Teşvik Faturasında 6 Haneli Yatırım Teşvik Numarası olmalıdır." |
| K16 | K15 ile aynı hücreler | YatirimTesvikCommodityClassificationCheck, YatirimTesvikItemClassificationCodeCheck, YatirimTesvikItemInstanceCheck, YatirimTesvikKDVCheck, YatirimTesvikLineKDVCheck | Common 467-473, 491-501 | Harcama tipi (01/02/03/04) ve KDV kuralları — bkz. §4 |
| K17 | IDIS satırının 6 geçerli hücresi | IdisSevkiyatNoCheck | Common 443-445 | "Sevkiyat Numarası değeri SE-0000000 veya ES-0000000 formatında girilmelidir." |
| K18 | IDIS satırının 6 geçerli hücresi | IdisEtiketNoCheck | Common 504-506 | "İlk iki hanesi karakter ve sonraki 7 hanesi rakam olan 9 karakterli en az bir Etiket Numarası bulunmalıdır." |
| K19 | ENERJI × SARJ, ENERJI × SARJANLIK, EARSIVFATURA × SARJ/SARJANLIK | EnerjiInvoicePeriodCheck | Common 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." |
| K20 | SARJ hücreleri | EnerjiESURaporIDCheck | Common 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." |
| K21 | SARJ ve SARJANLIK hücreleri | EnerjiPartyIdentificationPlakaCheck | Common 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." |
| K22 | SARJANLIK hücreleri | EnerjiItemInstanceSerialIDCheck | Common 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." |
| K23 | EARSIVFATURA × TEKNOLOJIDESTEK | PartyIdentificationTEKNOLOJIDESTEKCheck | Common 261-263 | "TEKNOLOJIDESTEK fatura tipinde alıcı kimlik numarası TCKN olmalıdır." |
| K24 | EARSIVFATURA × TEKNOLOJIDESTEK | TeknolojiDestekAdditionalItemIdentificationCheck | Common 458-460 | "TEKNOLOJIDESTEK fatura tipinde yer alan tüm kalemler TELEFON, TABLET_PC schemeID li cac:AdditionalItemIdentification bulunmalıdır." |
| K25 | IHRACKAYITLI hücreleri (yalnızca 702 muafiyet kodu kullanılırsa) | TaxExemptionReasonCodeCheck assert-6 | Common 326 | "IHRACKAYITLI fatura tipinde 702 Muafiyet sebebi için GTİP ve Alıcı Satır Kodu bilgisi girilmelidir" |
| K26 | IHRACKAYITLI hücreleri (702 ile) | IhracKayitliPartyIdentificationIDTypeCheck | Common 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ı
| Senaryo | Kural | Zorunlu alan(lar) ve format |
|---|---|---|
| IHRACAT | IhracatYolcuBeraberCheck | cac:BuyerCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID = 'EXPORT', @schemeID='PARTYTYPE' |
| IHRACAT | PriceAmountCheck | Her satırda cac:Price/cbc:PriceAmount ve cbc:LineExtensionAmount dolu |
| IHRACAT | PackageCheck | Her satırda cbc:InvoicedQuantity dolu |
| IHRACAT | LineDeliveryCheck | (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) |
| IHRACAT | PartyVDCheck | cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cac:TaxScheme/cbc:Name (vergi dairesi) dolu |
| IHRACAT | OfficelTitleCheck | cac:BuyerCustomerParty/cac:Party/cac:PartyLegalEntity/cbc:RegistrationName dolu |
| YOLCUBERABERFATURA | IhracatYolcuBeraberCheck | cac:BuyerCustomerParty/…/cbc:ID = 'TAXFREE', @schemeID='PARTYTYPE' |
| YOLCUBERABERFATURA | TaxRepresentativePartyCheck | cac:TaxRepresentativeParty/cac:PartyIdentification/cbc:ID[@schemeID='ARACIKURUMVKN'] — 10 veya 11 hane, tam 1 adet; [@schemeID='ARACIKURUMETIKET'] — boş değil, tam 1 adet |
| YOLCUBERABERFATURA | TaxFreeNationalityIDCheck | cac:BuyerCustomerParty/cac:Party/cac:Person/cbc:NationalityID geçerli ülke kodu |
| YOLCUBERABERFATURA | PassportIDCheck | cac:BuyerCustomerParty/cac:Party/cac:Person/cac:IdentityDocumentReference/cbc:ID (pasaport) dolu |
| KAMU | KamuFaturaCheck | cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID — regex ^TR\d{7}[A-Z0-9]{17}$ |
| HKS | HKSInvioceCheck | Her cac:InvoiceLine içinde cac:Item/cac:AdditionalItemIdentification/cbc:ID[@schemeID='KUNYENO'], tam 19 karakter |
| ILAC_TIBBICIHAZ | IlacTibbiCihazAdditionalItemIdentificationCheck | Her satırda en az 1 cac:Item/cac:AdditionalItemIdentification/cbc:ID — @schemeID ∈ {ILAC, TIBBICIHAZ, DIGER}, değer boş değil |
| YATIRIMTESVIK (ve EARSIVFATURA + YTB*) | YatirimTesvikContractDocumentReferenceIDCheck | Tam 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*) | YatirimTesvikCommodityClassificationCheck | Her satırda en az 1 cac:Item/cac:CommodityClassification/cbc:ItemClassificationCode |
| YATIRIMTESVIK (ve EARSIVFATURA + YTB*) | YatirimTesvikItemClassificationCodeCheck | Kod $YatirimTesvikItemClassificationCodeList = ',01,02,03,04,' içinde olmalı |
| YATIRIMTESVIK (ve EARSIVFATURA + YTB*) | YatirimTesvikItemInstanceCheck | ItemClassificationCode='01' ise cac:Item/cbc:ModelName + cac:ItemInstance/cbc:ProductTraceID + cac:ItemInstance/cbc:SerialID |
| YATIRIMTESVIK (ve EARSIVFATURA + YTB*) | YatirimTesvikKDVCheck, YatirimTesvikLineKDVCheck | IADE / TEVKIFATIADE / YTBIADE / YTBTEVKIFATIADE dışındaki tüm tiplerde 0015 kodlu TaxSubtotal için Percent > 0 ve TaxAmount > 0 |
| YATIRIMTESVIK (ISTISNA / YTBISTISNA) | YatirimTesvikItemClassificationCodeIstisnaCalculationSequenceNumericCheck | cac:TaxSubtotal/cbc:CalculationSequenceNumeric = '-1' (0015 vergi kodu ile) |
| IDIS | IdisSevkiyatNoCheck | cac:AccountingSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID[@schemeID='SEVKIYATNO'] — SE-####### veya ES-#######, toplam 10 karakter, 4.–10. haneler rakam |
| IDIS | IdisEtiketNoCheck | Her satırda cac:Item/cac:AdditionalItemIdentification/cbc:ID[@schemeID='ETIKETNO'] — 9 karakter: ilk 2 harf + 7 rakam |
| HKSIRSALIYE | DespatchAdviceHKSKunyeCheck | Her cac:DespatchLine'da 19 karakter KUNYENO |
| IDISIRSALIYE | DespatchIdisSevkiyatNoCheck, DespatchIdisEtiketNoCheck | Fatura tarafıyla aynı SEVKIYATNO / ETIKETNO kuralları |
Yatırım Teşvik harcama tipi (ItemClassificationCode) zinciri — hem e-Fatura hem e-Arşiv için:
| Kod | V1.43 açıklaması | ISTISNA/YTBISTISNA'da kullanılacak istisna kodu | KDV kuralı (schematron) |
|---|---|---|---|
| 01 | "Makine ve teçhizat teslimleri ile yazılım ve gayrimaddi hak satış ve kiralamaları" | 308 | IADE/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." | 339 | Aynı |
| 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/YatirimTesvikLineKDVCheckKDV > 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 tipi | Kural | Zorunlu alan(lar) |
|---|---|---|
| IADE / TEVKIFATIADE / YTBIADE / YTBTEVKIFATIADE | IADEInvioceCheck | En az 1 cac:BillingReference/cac:InvoiceDocumentReference; hepsinin cbc:DocumentTypeCode değeri IADE veya İADE ve cbc:ID tam 16 karakter |
| SARJ | EnerjiInvoicePeriodCheck | ≥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) |
| SARJ | EnerjiESURaporIDCheck | ≥1 cac:AdditionalDocumentReference içinde cbc:ID[@schemeID='ESURaporID'] GUID formatında + cbc:IssueDate regex ^20\d{2}-\d{2}-\d{2}$ |
| SARJ / SARJANLIK | EnerjiPartyIdentificationPlakaCheck | cac:AccountingCustomerParty/cac:Party altında tam 1 cac:PartyIdentification/cbc:ID[@schemeID='PLAKA'], boş değil, ≤ 50 karakter, regex ^[A-Z0-9_-]+$ |
| SARJANLIK | EnerjiItemInstanceSerialIDCheck | Her satırda cac:Item/cac:ItemInstance/cbc:SerialID dolu |
| SARJANLIK | EnerjiInvoicePeriodCheck | InvoicePeriod (SARJ ile aynı kural, iki tipi de kapsar) |
| TEKNOLOJIDESTEK | PartyIdentificationTEKNOLOJIDESTEKCheck | Alıcı kimliği @schemeID='TCKN' (VKN kabul edilmez) |
| TEKNOLOJIDESTEK | TeknolojiDestekAdditionalItemIdentificationCheck | Her satırda cac:Item/cac:AdditionalItemIdentification/cbc:ID[@schemeID='TELEFON' or @schemeID='TABLET_PC'] |
| IHRACKAYITLI + muafiyet kodu 702 | TaxExemptionReasonCodeCheck assert-6 | Her cac:InvoiceLine'da 12 haneli cbc:RequiredCustomsID (GTİP) ve 11 haneli cbc:ID[@schemeID='ALICIDIBSATIRKOD'] |
| IHRACKAYITLI + 702 | IhracKayitliPartyIdentificationIDTypeCheck | CustomsDeclaration/IssuerParty altındaki schemeID'ler yalnızca SATICIDIBSATIRKOD veya ALICIDIBSATIRKOD olabilir |
| TEVKIFAT / YTBTEVKIFAT / IADE / YTBIADE / SGK / SARJ / SARJANLIK | GeneralWithholdingTaxTotalCheck assert-1 | cac:WithholdingTaxTotal yalnızca bu 7 tipte bulunabilir (kural yalnız UBLVersionID='2.1' iken devrededir) |
| TEVKIFAT / IADE / SGK / YTBIADE | GeneralWithholdingTaxTotalCheck assert-2 | TaxTypeCode='4171' yalnızca bu 4 tipte kullanılabilir |
| IADE / YTBIADE / IHRACKAYITLI / OZELMATRAH / SGK / KONAKLAMAVERGISI dışındaki tüm tipler | TaxExemptionReasonCheck | 0015 kodlu ve TaxAmount = 0 olan TaxSubtotal varsa cac:TaxCategory/cbc:TaxExemptionReason dolu olmalıdır |
4.3 Her belgede koşulsuz çalışan kurallar
| Kural | Kontrol |
|---|---|
UBLVersionIDCheck | cbc:UBLVersionID = '2.1' |
CustomizationIDCheck | cbc:CustomizationID = 'TR1.2' veya 'TR1.2.1' |
InvoiceIDCheck | matches(cbc:ID,'^[A-Z0-9]{3}20[0-9]{2}[0-9]{9}$') — 3 alfanümerik seri + 20YY + 9 hane sıra |
CopyIndicatorCheck | cbc:CopyIndicator = 'false' |
TimeCheck | Yalnı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. |
CurrencyCodeCheck | TRY 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) |
PartyIdentificationPartyNamePersonCheck | Satı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 |
PartyIdentificationTCKNVKNCheck | VKN = 10 hane, TCKN = 11 hane |
DocumentSenderCheck / DocumentReceiverCheck | Zarf 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,'"/>| Kod | Anlam / ne zaman kullanılır |
|---|---|
| SEVK | Doğrudan elektronik olarak düzenlenen normal sevk irsaliyesi |
| MATBUDAN | Kâğı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:
| Assert | Tü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
| ProfileID | SEVK | MATBUDAN |
|---|---|---|
| TEMELIRSALIYE | OK | KOSULLU (AdditionalDocumentReference zorunlu) |
| HKSIRSALIYE | KOSULLU (her satırda 19 karakter KUNYENO) | KOSULLU (KUNYENO + AdditionalDocumentReference) |
| IDISIRSALIYE | KOSULLU (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,'"/>| Kod | Anlam |
|---|---|
| SEVK | Sevk 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,'"/>| Kod | Ne zaman kullanılır | Zarf türü | Zorunlu ProfileID | Ek zorunluluklar |
|---|---|---|---|---|
| KABUL | V1.43: "Uygulama yanıtı faturanın kabul edildiğini gösteriyor ise KABUL". IHRACAT'ta gümrük süreci sonunda. | POSTBOXENVELOPE | TICARIFATURA veya IHRACAT | Gö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])$ |
| RED | V1.43: "faturanın reddedildiğini gösteriyor ise RED". TEMELFATURA'da uygulama yanıtı düzenlenemez. | POSTBOXENVELOPE | TICARIFATURA veya IHRACAT | KABUL ile aynı taraf/imza kuralları |
| IADE | V1.43: "iade faturası ile ilişkili olarak düzenlenmişse IADE değerini alacaktır." | POSTBOXENVELOPE | TICARIFATURA veya IHRACAT | KABUL ile aynı |
| S_APR | Sistem yanıtı — zarfın/belgenin teknik işlenme sonucu. İş süreci yanıtı değildir. | SYSTEMENVELOPE | UBL-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 |
| GUMRUKONAY | Yolcu beraberi eşya faturasının gümrük memurunca onaylanması sonrası aracı kuruma giden KDV-iade yanıtı. | POSTBOXENVELOPE | YOLCUBERABERFATURA | Gü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 uretmemelidirAdı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 -> REDAdı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' -> REDAdı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] -> REDAdı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 -> REDistisnaTaxExemptionReasonCodeType — 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$TaxExemptionReasonCodeTypelistesinde 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ızcaProfileID='YATIRIMTESVIK'iken veya tip YTB* iken kullanılabilir."0 KDV'li SATIS" çıkış yolu:
351("KDV - İstisna Olmayan Diğer") veya OTV için151. Bu iki kod istisna alt listesinde olmadığı için fatura tipini ISTISNA'ya çevirmek gerekmez; SATIS tipiyle geçerlidir.555bu problemin çözümü değildir —DemirbasKDVTaxExemptionCheckassert-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.
| # | Konu | Durum |
|---|---|---|
| 1 | STDKODFATURA çelişkisi | V1.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. |
| 2 | e-Arşiv ve görüntüleme ana schematron dosyaları korpusta yok | Korpustaki 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. |
| 3 | HKSSATIS ve HKSKOMISYONCU | Bu 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ı. |
| 4 | YTB* 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ı. |
| 5 | YatirimTesvikKDVCheck ile kılavuz çelişkisi | Schematron, 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. |
| 6 | ReceiptAdviceTypeCode TEMEL vs SEVK | UBL-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. |
| 7 | S_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. |
| 8 | YTBTEVKIFAT / 4171 asimetrisi | GeneralWithholdingTaxTotalCheck 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ı. |
| 9 | SGKInvoiceCheck ölü koddur | Common 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. |
| 10 | KONAKLAMAVERGISI | Bu 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. |
| 11 | 308 / 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ı. |
| 12 | ProfileIDTypeGoruntuleme'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. |
| 13 | TEKNOLOJIDESTEK için teknik kılavuz yok | 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 korpustaki hiçbir dosyada geçmiyor. |
| 14 | Geçiş takvimi / zorunluluk tarihleri | Hangi 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şken | Ne tanımlar | Eleman sayısı |
|---|---|---|
WithholdingTaxType | Geçerli tevkifat kodları | 52 (601-627 = 27 kod, 801-825 = 25 kod) |
WithholdingTaxTypeWithPercent | Geç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 Oran | cbc:Percent | Geçerli kombinasyon(lar) |
|---|---|---|---|---|
| 601 | Yapım İşleri İle Bu İşlerle Birlikte İfa Edilen Mühendislik-Mimarlık Ve Etüt-Proje Hizmetleri | 4/10 | 40 | 60140 (eski: 60130 = 3/10) |
| 602 | Etüt, Plan-Proje, Danışmanlık, Denetim Ve Benzeri Hizmetler | 9/10 | 90 | 60290 |
| 603 | Makine, Teçhizat, Demirbaş Ve Taşıtlara Ait Tadil, Bakım Ve Onarım Hizmetleri | 7/10 | 70 | 60370 (eski: 60350 = 5/10) |
| 604 | Yemek Servis Hizmeti | 5/10 | 50 | 60450 |
| 605 | Organizasyon Hizmeti | 5/10 | 50 | 60550 |
| 606 | İşgücü Temin Hizmetleri | 9/10 | 90 | 60690 |
| 607 | Özel Güvenlik Hizmeti | 9/10 | 90 | 60790 |
| 608 | Yapı Denetim Hizmetleri | 9/10 | 90 | 60890 |
| 609 | Fason Olarak Yaptırılan Tekstil Ve Konfeksiyon İşleri, Çanta Ve Ayakkabı Dikim İşleri Ve Bu İşlere Aracılık Hizmetleri | 7/10 | 70 | 60970 (eski: 60950 = 5/10) |
| 610 | Turistik Mağazalara Verilen Müşteri Bulma / Götürme Hizmetleri | 9/10 | 90 | 61090 |
| 611 | Spor Kulüplerinin Yayın, Reklâm Ve İsim Hakkı Gelirlerine Konu İşlemleri | 9/10 | 90 | 61190 |
| 612 | Temizlik Hizmeti | 9/10 | 90 | 61290 (eski: 61270 = 7/10) |
| 613 | Çevre Ve Bahçe Bakım Hizmetleri | 9/10 | 90 | 61390 (eski: 61370 = 7/10) |
| 614 | Servis Taşımacılığı Hizmeti | 5/10 | 50 | 61450 |
| 615 | Her Türlü Baskı Ve Basım Hizmetleri | 7/10 | 70 | 61570 (eski: 61550 = 5/10) |
| 616 | Diğer Hizmetler [Kdvgut-(I/C-2.1.3.2.13)] | 5/10 | 50 | 61650 |
| 617 | Hurda Metalden Elde Edilen Külçe Teslimleri | 7/10 | 70 | 61770 |
| 618 | Hurda 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/10 | 70 | 61870 |
| 619 | Bakır, Çinko Ve Alüminyum Ürünlerinin Teslimi | 7/10 | 70 | 61970 |
| 620 | İstisnadan Vazgeçenlerin Hurda Ve Atık Teslimi | 7/10 | 70 | 62070 |
| 621 | Metal, Plastik, Lastik, Kauçuk, Kâğıt Ve Cam Hurda Ve Atıklardan Elde Edilen Hammadde Teslimi | 9/10 | 90 | 62190 |
| 622 | Pamuk, Tiftik, Yün Ve Yapağı İle Ham Post Ve Deri Teslimleri | 9/10 | 90 | 62290 |
| 623 | Ağaç Ve Orman Ürünleri Teslimi | 5/10 | 50 | 62350 |
| 624 | Yük Taşımacılığı Hizmeti [Kdvgut-(I/C-2.1.3.2.11)] | 2/10 | 20 | 62420 |
| 625 | Ticari Reklam Hizmetleri [Kdvgut-(I/C-2.1.3.2.15)] | 3/10 | 30 | 62530 |
| 626 | Diğer Teslimler [Kdvgut-(I/C-2.1.3.3.7.)] | 2/10 | 20 | 62620 |
| 627 | Demir-Çelik Ürünlerinin Teslimi [Kdvgut-(I/C-2.1.3.3.8)] | 5/10 | 50 | 62750 (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-627 | 801-825 | |
|---|---|---|
| Tevkifat türü | Kısmi tevkifat | Tam tevkifat |
cbc:Percent değeri | 20, 30, 40, 50, 70, 90 (koda göre) | Her zaman 100 |
| Oran | 2/10 – 9/10 | 10/10 (tamamı) |
| KDV'nin ne kadarı tevkif edilir | Bir kısmı; kalanı satıcıya ödenir | Tamamı; satıcıya hiç KDV ödenmez |
| Kod adedi | 27 | 25 |
| İşlem konusu | — | 601-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) | Oran | cbc:Percent | 6xx karşılığı |
|---|---|---|---|---|
| 801 | Yapı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/10 | 100 | 601 |
| 802 | Etüt, Plan-Proje, Danışmanlık, Denetim ve Benzeri Hizmetler [KDVGUT-(I/C-2.1.3.2.2)] | 10/10 | 100 | 602 |
| 803 | Makine, Teçhizat, Demirbaş ve Taşıtlara Ait Tadil, Bakım ve Onarım Hizmetleri [KDVGUT-(I/C-2.1.3.2.3)] | 10/10 | 100 | 603 |
| 804 | Yemek Servis Hizmeti [KDVGUT-(I/C-2.1.3.2.4)] | 10/10 | 100 | 604 |
| 805 | Organizasyon Hizmeti [KDVGUT-(I/C-2.1.3.2.4)] | 10/10 | 100 | 605 |
| 806 | İşgücü Temin Hizmetleri [KDVGUT-(I/C-2.1.3.2.5)] | 10/10 | 100 | 606 |
| 807 | Özel Güvenlik Hizmeti [KDVGUT-(I/C-2.1.3.2.5)] | 10/10 | 100 | 607 |
| 808 | Yapı Denetim Hizmetleri [KDVGUT-(I/C-2.1.3.2.6)] | 10/10 | 100 | 608 |
| 809 | Fason 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/10 | 100 | 609 |
| 810 | Turistik Mağazalara Verilen Müşteri Bulma/ Götürme Hizmetleri [KDVGUT-(I/C-2.1.3.2.8)] | 10/10 | 100 | 610 |
| 811 | Spor Kulüplerinin Yayın, Reklâm ve İsim Hakkı Gelirlerine Konu İşlemleri [KDVGUT-(I/C-2.1.3.2.9)] | 10/10 | 100 | 611 |
| 812 | Temizlik Hizmeti [KDVGUT-(I/C-2.1.3.2.10)] | 10/10 | 100 | 612 |
| 813 | Çevre ve Bahçe Bakım Hizmetleri [KDVGUT-(I/C-2.1.3.2.10)] | 10/10 | 100 | 613 |
| 814 | Servis Taşımacılığı Hizmeti [KDVGUT-(I/C-2.1.3.2.11)] | 10/10 | 100 | 614 |
| 815 | Her Türlü Baskı ve Basım Hizmetleri [KDVGUT-(I/C-2.1.3.2.12)] | 10/10 | 100 | 615 |
| 816 | Hurda Metalden Elde Edilen Külçe Teslimleri [KDVGUT-(I/C-2.1.3.3.1)] | 10/10 | 100 | 617 |
| 817 | Hurda 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/10 | 100 | 618 |
| 818 | Bakır, Çinko, Alüminyum ve Kurşun Ürünlerinin Teslimi [KDVGUT-(I/C-2.1.3.3.2)] | 10/10 | 100 | 619 |
| 819 | İstisnadan Vazgeçenlerin Hurda ve Atık Teslimi [KDVGUT-(I/C-2.1.3.3.3)] | 10/10 | 100 | 620 |
| 820 | Metal, 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/10 | 100 | 621 |
| 821 | Pamuk, Tiftik, Yün ve Yapağı İle Ham Post ve Deri Teslimleri [KDVGUT-(I/C-2.1.3.3.5)] | 10/10 | 100 | 622 |
| 822 | Ağaç ve Orman Ürünleri Teslimi [KDVGUT-(I/C-2.1.3.3.6)] | 10/10 | 100 | 623 |
| 823 | Yük Taşımacılığı Hizmeti [KDVGUT-(I/C-2.1.3.2.11)] | 10/10 | 100 | 624 |
| 824 | Ticari Reklam Hizmetleri [KDVGUT-(I/C-2.1.3.2.15)] | 10/10 | 100 | 625 |
| 825 | Demir-Çelik Ürünlerinin Teslimi [KDVGUT-(I/C-2.1.3.3.8)] | 10/10 | 100 | 627 |
Eşleştirme formülü (üç parçalıdır, tek kural değildir):
| 6xx aralığı | Formül | Örnek |
|---|---|---|
| 601-615 | 8xx = 6xx + 200 | 606 → 806 |
| 617-625 | 8xx = 6xx + 199 | 620 → 819 |
| 627 | 8xx = 6xx + 198 | 627 → 825 |
| 616 ve 626 | Karşı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ığı eleman | cac:WithholdingTaxTotal/cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme/cbc:TaxTypeCode | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReasonCode |
| Schematron değişkeni | WithholdingTaxType | ozelMatrahTaxExemptionReasonCodeType |
| Kullanıldığı fatura tipleri | TEVKIFAT / YTBTEVKIFAT / IADE / YTBIADE / SGK / SARJ / SARJANLIK | OZELMATRAH / 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= TaxTypeCode601+ Percent30→ 3/10 = %3060140= TaxTypeCode601+ Percent40→ 4/10 = %40801100= TaxTypeCode801+ Percent100→ 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ım | Oluşan dize | Sonuç |
|---|---|---|
<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şik | Kod | Percent | Oran | Durum |
|---|---|---|---|---|
| 60130 | 601 | 30 | 3/10 | Eski (geçerli) |
| 60140 | 601 | 40 | 4/10 | Güncel |
| 60290 | 602 | 90 | 9/10 | Güncel |
| 60350 | 603 | 50 | 5/10 | Eski (geçerli) |
| 60370 | 603 | 70 | 7/10 | Güncel |
| 60450 | 604 | 50 | 5/10 | Güncel |
| 60550 | 605 | 50 | 5/10 | Güncel |
| 60690 | 606 | 90 | 9/10 | Güncel |
| 60790 | 607 | 90 | 9/10 | Güncel |
| 60890 | 608 | 90 | 9/10 | Güncel |
| 60950 | 609 | 50 | 5/10 | Eski (geçerli) |
| 60970 | 609 | 70 | 7/10 | Güncel |
| 61090 | 610 | 90 | 9/10 | Güncel |
| 61190 | 611 | 90 | 9/10 | Güncel |
| 61270 | 612 | 70 | 7/10 | Eski (geçerli) |
| 61290 | 612 | 90 | 9/10 | Güncel |
| 61370 | 613 | 70 | 7/10 | Eski (geçerli) |
| 61390 | 613 | 90 | 9/10 | Güncel |
| 61450 | 614 | 50 | 5/10 | Güncel |
| 61550 | 615 | 50 | 5/10 | Eski (geçerli) |
| 61570 | 615 | 70 | 7/10 | Güncel |
| 61650 | 616 | 50 | 5/10 | Güncel |
| 61770 | 617 | 70 | 7/10 | Güncel |
| 61870 | 618 | 70 | 7/10 | Güncel |
| 61970 | 619 | 70 | 7/10 | Güncel |
| 62070 | 620 | 70 | 7/10 | Güncel |
| 62190 | 621 | 90 | 9/10 | Güncel |
| 62290 | 622 | 90 | 9/10 | Güncel |
| 62350 | 623 | 50 | 5/10 | Güncel |
| 62420 | 624 | 20 | 2/10 | Güncel |
| 62530 | 625 | 30 | 3/10 | Güncel |
| 62620 | 626 | 20 | 2/10 | Güncel |
| 62740 | 627 | 40 | 4/10 | Eski (geçerli) |
| 62750 | 627 | 50 | 5/10 | Güncel |
| 65020 | 650 | 20 | 2/10 | ÖLÜ KOD — kullanma |
| 65030 | 650 | 30 | 3/10 | ÖLÜ KOD — kullanma |
| 65050 | 650 | 50 | 5/10 | ÖLÜ KOD — kullanma |
| 65070 | 650 | 70 | 7/10 | ÖLÜ KOD — kullanma |
| 65090 | 650 | 90 | 9/10 | ÖLÜ KOD — kullanma |
8xx bloğu — 25 kombinasyon (hepsi Percent = 100, oran 10/10):
| Birleşik | Kod | Birleşik | Kod | Birleşik | Kod | Birleşik | Kod | Birleşik | Kod |
|---|---|---|---|---|---|---|---|---|---|
| 801100 | 801 | 806100 | 806 | 811100 | 811 | 816100 | 816 | 821100 | 821 |
| 802100 | 802 | 807100 | 807 | 812100 | 812 | 817100 | 817 | 822100 | 822 |
| 803100 | 803 | 808100 | 808 | 813100 | 813 | 818100 | 818 | 823100 | 823 |
| 804100 | 804 | 809100 | 809 | 814100 | 814 | 819100 | 819 | 824100 | 824 |
| 805100 | 805 | 810100 | 810 | 815100 | 815 | 820100 | 820 | 825100 | 825 |
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:
| Assert | 650 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 + 90 → 60690 → listede mevcut ✔ (606 = İşgücü Temin Hizmetleri, 9/10).
Yapısal notlar:
cac:TaxSchemealtındacbc:Nameyoktur (normal KDV'de<cbc:Name>Katma Değer Vergisi</cbc:Name>yazılır; tevkifat örneğinde kullanılmamıştır).cac:TaxCategoryaltında doğrudancac:TaxSchemegelir;cbc:TaxExemptionReasonCodeburada kullanılmaz.cac:WithholdingTaxTotal/cbc:TaxAmount(toplam tevkifat) ilecac: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:TaxableAmountkullanılmamıştır; tanımı gereği Seçimli (0..1)'dir. currencyIDniteliği zorunludur.
Kardinaliteler:
| Eleman | Kardinalite |
|---|---|
Invoice/WithholdingTaxTotal | Seçimli (0..n) — birden fazla tevkifat kodu için çoklanır |
InvoiceLine/WithholdingTaxTotal | Seçimli (0..n) |
TaxSubtotal/TaxAmount | Zorunlu (1) |
TaxSubtotal/TaxCategory | Zorunlu (1) |
TaxSubtotal/Percent | Şemada Seçimli (0..1) — schematron zorunlu kılar |
TaxSubtotal/TaxableAmount | Seçimli (0..1) |
Eleman sırası (şema geçerliliği için kritik):
- Fatura seviyesinde
WithholdingTaxTotalana eleman tablosunda 42. sıradadır:TaxTotal(41) ileLegalMonetaryTotal(43) arasına,InvoiceLine'dan (44) önce yazılmalıdır. - Kalem seviyesinde
InvoiceLinesı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 —DeliveryileAllowanceChargearasında değildir; ve kalem seviyesindeTaxTotal0..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ş):
LineExtensionAmount= miktar × birim fiyat − iskontoTaxTotal/TaxSubtotal:TaxableAmount= matrah,Percent= KDV oranı,TaxAmount= matrah × oran,TaxTypeCode=0015WithholdingTaxTotal/TaxSubtotal:Percent= tevkifat yüzdesi (tamsayı!),TaxAmount= 2. adımdaki KDV × (Percent / 100),TaxTypeCode= 601-627 / 801-825WithholdingTaxTotal/TaxAmount= tüm altTaxSubtotal/TaxAmountdeğ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):
cbc:TaxTypeCodevecbc:Percenther ikisi de dolu (boş/whitespace olamaz)- Kod geçerliliği:
contains($WithholdingTaxType, concat(',',TaxTypeCode,',')) - 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:TaxAmountile altTaxSubtotal/cbc:TaxAmounttoplamının eşitliğini kontrol etmezLegalMonetaryTotal/PayableAmount'tan tevkifatın düşülüp düşülmediğini kontrol etmez.PayableAmountüzerindeki tek schematron kuralıdecimalCheck'tir (UBL-TR_Main_Schematron.xmlsatı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:TaxTotalaltı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.
| TEVKIFAT | TEVKIFATIADE | |
|---|---|---|
| Kim düzenler | Satıcı (hizmeti/malı veren) | Alıcı (iade eden) |
| Amaç | Tevkifatlı satış | Tevkifatlı faturanın iadesi |
InvoiceTypeCodeList'te tanımlı mı | Evet | Evet |
Fatura seviyesi cac:WithholdingTaxTotal | İZİNLİ | GeneralWithholdingTaxTotalCheck izin listesinde YOK |
cac:BillingReference/cac:InvoiceDocumentReference | Zorunlu değil | ZORUNLU (IADEInvioceCheck) |
| ProfileID kısıtı | Yok | Yok |
| Yatırım Teşvik karşılığı | YTBTEVKIFAT | YTBTEVKIFATIADE |
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:
- Tevkifatlı iade faturasını TEVKIFATIADE yerine IADE (veya YTBIADE) tipiyle kes — bu iki tip izin listesindedir.
- TEVKIFATIADE tipini kullan ama tevkifatı yalnızca kalem seviyesinde (
cac:InvoiceLine/cac:WithholdingTaxTotal) yaz — bu context assert'in kapsamı dışındadır ve sadeceWithholdingTaxTotalCheckuygulanı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:
- En az 1 adet
cac:BillingReference/cac:InvoiceDocumentReferencebulunacak - Her referansın
cbc:DocumentTypeCodedeğeriİADE(İ ile) veyaIADE(I ile) olacak — schematron ikisini de kabul eder - Her referansın
cbc:IDuzunluğu tam 16 karakter olacak (iade edilen faturanın numarası, ör.GIB2026000000001) - 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_TIBBICIHAZ | SATIS, ISTISNA, TEVKIFAT, TEVKIFATIADE, IADE, IHRACKAYITLI |
YATIRIMTESVIK | SATIS, ISTISNA, IADE, TEVKIFAT, TEVKIFATIADE |
IDIS | SATIS, 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 tipi | Fatura seviyesi tevkifat bloğu |
|---|---|
| TEVKIFAT | İzinli |
| YTBTEVKIFAT | İzinli |
| IADE | İzinli |
| YTBIADE | İzinli |
| SGK | İzinli |
| SARJ | İzinli |
| SARJANLIK | İzinli |
| TEVKIFATIADE | Yasak |
| YTBTEVKIFATIADE | Yasak |
| 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:
| Kural | Fatura seviyesi | Kalem seviyesi |
|---|---|---|
WithholdingTaxTotalCheck (kod ve oran doğrulaması) | Uygulanır | Uygulanır |
GeneralWithholdingTaxTotalCheck (fatura tipi kısıtı) | Uygulanır | Uygulanmaz |
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 |
|---|---|
PayeeFinancialAccountIDCheck | IBAN zorunlu, regex ^TR\d{7}[A-Z0-9]{17}$ |
PayeeFinancialAccountCurrencyCodeCheck | Hesap para birimi zorunlu |
BuyerCustomerPartyCheck | 10 haneli VKN'li (schemeID='VKN') BuyerCustomerParty zorunlu |
Schematron değişiklik geçmişi (History.txt, doğrulanmış tarihler):
| Öğe | Güncellenme tarihleri |
|---|---|
GeneralWithholdingTaxTotalCheck | 20171016, 20210409, 20231228, 20260109 |
WithholdingTaxType | 20211201, 20220501 |
WithholdingTaxTypeWithPercent | 20190103, 20200402, 20220501, 20221101 |
IADEInvioceCheck | 20250128 (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ıra | Kod | V1.31 | V1.43 | Durum |
|---|---|---|---|---|
| 1-18 | 601-618 | 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 | Aynı | Değişiklik yok |
| 19 | 619 | 75/10 | 7/10 | TEK FARK |
| 20-27 | 620-627 | 7/10, 9/10, 9/10, 5/10, 2/10, 3/10, 2/10, 5/10 | Aynı | Değişiklik yok |
| 28-52 | 801-825 | 25 × 10/10 | Aynı | 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):
- 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.
- 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). - 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 2015 | V1.43 (27.07.2026) | |
|---|---|---|
| Kod aralığı | 601-623 + 650 (24 kod) | 601-627 + 801-825 (52 kod) |
| %100 tevkifat bloğu | Yok | 801-825 (25 kod) |
| "Diğer" kalemi | 650 "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 kodlar | — | 624, 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:
| Kod | 2015 | V1.43 | Kod | 2015 | V1.43 |
|---|---|---|---|---|---|
| 601 | 2/10 | 4/10 | 615 | 5/10 | 7/10 |
| 603 | 5/10 | 7/10 | 617 | 5/10 | 7/10 |
| 609 | 5/10 | 7/10 | 618 | 5/10 | 7/10 |
| 612 | 7/10 | 9/10 | 619 | 5/10 | 7/10 |
| 613 | 7/10 | 9/10 | 620 | 5/10 | 7/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).
| Alan | Kardinalite | Açıklama |
|---|---|---|
tevkifat | Seçimli (0..n) | Kapsayıcı |
tevkifatKodu | Zorunlu (1) | Tevkifat kodu |
tevkifatTutar | Zorunlu (1) | Tevkifat tutarı |
tevkifatOrani | Zorunlu (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.
| Konu | Neden doğrulanamadı |
|---|---|
| Oran geçiş tarihleri | 601'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ır | 601-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 tablosu | e-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 tevkifatTutari | Kı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 kontroller | Schematron'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)
| Degisken | Icerik | Islevi |
|---|---|---|
TaxExemptionReasonCodeType | 001, 101-108, 151, 201-250 (39 kod), 301-307, 309-338, 340-344, 350, 351, 501, 555, 801-812, 701-704 | Ana 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 |
istisnaTaxExemptionReasonCodeType | 001, 101-108, 201-250, 301-344 (308 ve 339 dahil), 350, 501 | Bu 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.
| Kod | Aciklama (V1.43) | Kanun maddesi |
|---|---|---|
| 301 | 11/1-a Mal İhracatı | KDVK 11/1-a |
| 302 | 11/1-a Hizmet İhracatı | KDVK 11/1-a |
| 303 | 11/1-a Roaming Hizmetleri | KDVK 11/1-a |
| 304 | 13/a Deniz Hava ve Demiryolu Taşıma Araçlarının Teslimi İle İnşa, Tadil, Bakım ve Onarımları | KDVK 13/a |
| 305 | 13/b Deniz ve Hava Taşıma Araçları İçin Liman Ve Hava Meydanlarında Yapılan Hizmetler | KDVK 13/b |
| 306 | 13/c Petrol Aramaları ve Petrol Boru Hatlarının İnşa ve Modernizasyonuna İlişkin Yapılan Teslim ve Hizmetler | KDVK 13/c |
| 307 | 13/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 |
| 308 | 13/d Teşvikli Yatırım Mallarının Teslimi | KDVK 13/d — yalnizca YATIRIMTESVIK / YTB* |
| 309 | 13/e Liman Ve Hava Meydanlarının İnşası, Yenilenmesi Ve Genişletilmesi | KDVK 13/e |
| 310 | 13/f Ulusal Güvenlik Amaçlı Teslim ve Hizmetler | KDVK 13/f |
| 311 | 14/1 Uluslararası Taşımacılık | KDVK 14/1 |
| 312 | 15/a Diplomatik Organ Ve Misyonlara Yapılan Teslim ve Hizmetler | KDVK 15/a |
| 313 | 15/b Uluslararası Kuruluşlara Yapılan Teslim ve Hizmetler | KDVK 15/b |
| 314 | 19/2 Usulüne Göre Yürürlüğe Girmiş Uluslar Arası Anlaşmalar Kapsamındaki İstisnalar | KDVK 19/2 |
| 315 | 14/3 İhraç Konusu Eşyayı Taşıyan Kamyon, Çekici ve Yarı Romorklara Yapılan Motorin Teslimleri | KDVK 14/3 |
| 316 | 11/1-a Serbest Bölgelerdeki Müşteriler İçin Yapılan Fason Hizmetler | KDVK 11/1-a |
| 317 | 17/4-s Engellilerin Eğitimleri, Meslekleri ve Günlük Yaşamlarına İlişkin Araç-Gereç ve Bilgisayar Programları | KDVK 17/4-s |
| 318 | Geç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 Hizmetler | KDVK Geç. 29 |
| 319 | 13/g Başbakanlık Merkez Teşkilatına Yapılan Araç Teslimleri | KDVK 13/g |
| 320 | Geç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 Hizmetler | KDVK Geç. 16 |
| 321 | Geç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 |
| 322 | 11/1-a Türkiye'de İkamet Etmeyenlere Özel Fatura ile Yapılan Teslimler (Bavul Ticareti) | KDVK 11/1-a |
| 323 | 13/ğ 5300 Sayılı Kanuna Göre Düzenlenen Ürün Senetlerinin İhtisas/Ticaret Borsaları Aracılığıyla İlk Teslimi | KDVK 13/ğ |
| 324 | 13/h Türkiye Kızılay Derneğine Yapılan Teslim ve Hizmetler ile Türkiye Kızılay Derneğinin Teslim ve Hizmetleri | KDVK 13/h |
| 325 | 13/ı Yem Teslimleri | KDVK 13/ı |
| 326 | 13/ı Gıda, Tarım ve Hayvancılık Bakanlığı Tarafından Tescil Edilmiş Gübrelerin Teslimi | KDVK 13/ı |
| 327 | 13/ı Gıda, Tarım ve Hayvancılık Bakanlığı Tarafından Tescil Edilmiş Gübrelerin İçeriğinde Bulunan Hammaddelerin Gübre Üreticilerine Teslimi | KDVK 13/ı |
| 328 | 13/i Konut veya İşyeri Teslimleri | KDVK 13/i |
| 329 | Eğ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ı | — |
| 330 | KDV 13/j md. Organize Sanayi Bölgeleri ile Küçük Sanayi Sitelerinin İnşasına İlişkin Teslim ve Hizmetler | KDVK 13/j |
| 331 | KDV 13/m md. Ar-Ge, Yenilik ve Tasarım Faaliyetlerinde Kullanılmak Üzere Yapılan Yeni Makina ve Teçhizat Teslimlerinde İstisna | KDVK 13/m |
| 332 | KDV Geçici 39. Md. İmalat Sanayiinde Kullanılmak Üzere Yapılan Yeni Makina ve Teçhizat Teslimlerinde İstisna | KDVK Geç. 39 |
| 333 | KDV 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 İstisna | KDVK 13/k |
| 334 | KDV 13/l md. Kapsamında Yabancılara Verilen Sağlık Hizmetlerinde İstisna | KDVK 13/l |
| 335 | KDV 13/n Basılı Kitap ve Süreli Yayınların Teslimleri | KDVK 13/n |
| 336 | Geçici 46 UEFA Müsabakaları Kapsamında Yapılacak Teslim ve Hizmetler | KDVK Geç. 46 (V1.31'de "Geçici 40" idi) |
| 337 | Türk Akım Gaz Boru Hattı Projesine İlişkin Anlaşmanın (9/h) Maddesi Kapsamındaki Gaz Taşıma Hizmetleri | Tü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 Hizmetler | yalnizca YATIRIMTESVIK / YTB* |
| 340 | Elektrik Motorlu Taşıt Araçlarının Geliştirilmesine Yönelik Mühendislik Hizmetleri | — |
| 341 | Afetzedelere Bağışlanacak Konutların İnşasına İlişkin İstisna | — |
| 342 | Genel Bütçeli Kamu İdarelerine Bağışlanacak Taşınmazların İnşasına İlişkin İstisna | — |
| 343 | Genel Bütçeli Kamu İdarelerine Bağışlanacak Konutların Yabancı Devlet Kurum ve Kuruluşlarına Teslimine İlişkin İstisna | — |
| 344 | 13/o Milli Savunma ve İç Güvenlik İhtiyaçlarında Kullanılmak Üzere Taşıt Teslimi | KDVK 13/o |
| 350 | Diğ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.
| Kod | Aciklama (V1.43) |
|---|---|
| 201 | 17/1 Kültür ve Eğitim Amacı Taşıyan İşlemler |
| 202 | 17/2-a Sağlık, Çevre Ve Sosyal Yardım Amaçlı İşlemler |
| 204 | 17/2-c Yabancı Diplomatik Organ Ve Hayır Kurumlarının Yapacakları Bağışlarla İlgili Mal Ve Hizmet Alışları |
| 205 | 17/2-d Taşınmaz Kültür Varlıklarına İlişkin Teslimler ve Mimarlık Hizmetleri |
| 206 | 17/2-e Mesleki Kuruluşların İşlemleri |
| 207 | 17/3 Askeri Fabrika, Tersane ve Atölyelerin İşlemleri |
| 208 | 17/4-c Birleşme, Devir, Dönüşüm ve Bölünme İşlemleri |
| 209 | 17/4-e Banka ve Sigorta Muameleleri Vergisi Kapsamına Giren İşlemler |
| 211 | 17/4-h Zirai Amaçlı Su Teslimleri İle Köy Tüzel Kişiliklerince Yapılan İçme Suyu teslimleri |
| 212 | 17/4-ı Serbest Bölgelerde Verilen Hizmetler |
| 213 | 17/4-j Boru Hattı İle Yapılan Petrol Ve Gaz Taşımacılığı |
| 214 | 17/4-k Organize Sanayi Bölgelerindeki Arsa ve İşyeri Teslimleri İle Konut Yapı Kooperatiflerinin Üyelerine Konut Teslimleri |
| 215 | 17/4-l Varlık Yönetim Şirketlerinin İşlemleri |
| 216 | 17/4-m Tasarruf Mevduatı Sigorta Fonunun İşlemleri |
| 217 | 17/4-n Basın-Yayın ve Enformasyon Genel Müdürlüğüne Verilen Haber Hizmetleri |
| 218 | KDV 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ı |
| 219 | 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 ile 15/7/2023 tarihinden önce kurumların aktifinde kayıtlı Taşınmaz satışı |
| 221 | Geçici 15 Konut Yapı Kooperatifleri, Belediyeler ve Sosyal Güvenlik Kuruluşlarına Verilen İnşaat Taahhüt Hizmeti |
| 223 | Geçici 20/1 Teknoloji Geliştirme Bölgelerinde Yapılan İşlemler |
| 225 | Geçici 23 Milli Eğitim Bakanlığına Yapılan Bilgisayar Bağışları İle İlgili Teslimler |
| 226 | 17/2-b Özel Okulları, Üniversite ve Yüksekokullar Tarafından Verilen Bedelsiz Eğitim Ve Öğretim Hizmetleri |
| 227 | 17/2-b Kanunların Gösterdiği Gerek Üzerine Bedelsiz Olarak Yapılan Teslim ve Hizmetler |
| 228 | 17/2-b Kanunun (17/1) Maddesinde Sayılan Kurum ve Kuruluşlara Bedelsiz Olarak Yapılan Teslimler |
| 229 | Gıda Bankacılığı Faaliyetinde Bulunan Darülacezeye, Dernek ve Vakıflara Bağışlanan, Gıda, Temizlik, Giyecek ve Yakacak Maddeleri |
| 230 | 17/4-g Külçe Altın, Külçe Gümüş Ve Kiymetli Taşlarin Teslimi |
| 231 | 17/4-g Metal Plastik, Lastik, Kauçuk, Kağit, Cam Hurda Ve Atıkların Teslimi |
| 232 | 17/4-g Döviz, Para, Damga Pulu, Değerli Kağıtlar, Hisse Senedi ve Tahvil Teslimleri |
| 233 | 2942 Sayılı Kamulaştırma Kanunu Kapsamında Taşınmazların Kamulaştırmayı Yapan Devlet ve Kamu Tüzel Kişilerine Devri |
| 234 | 17/4-ş Konut Finansmanı Amacıyla Teminat Gösterilen ve İpotek Konulan Konutların Teslimi |
| 235 | 16/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 |
| 236 | 19/2 Usulüne Göre Yürürlüğe Girmiş Uluslararası Anlaşmalar Kapsamındaki İstisnalar (İade Hakkı Tanınmayan) |
| 237 | 17/4-t 5300 Sayılı Kanuna Göre Düzenlenen Ürün Senetlerinin İhtisas/Ticaret Borsaları Aracılığıyla İlk Teslimlerinden Sonraki Teslim |
| 238 | 17/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 |
| 239 | 17/4-y Taşınmazların Finansal Kiralama Şirketlerine Devri, Finansal Kiralama Şirketi Tarafından Devredene Kiralanması ve Devri |
| 240 | 17/4-z Patentli Veya Faydalı Model Belgeli Buluşa İlişkin Gayri Maddi Hakların Kiralanması, Devri ve Satışı |
| 241 | TürkAkım Gaz Boru Hattı Projesine İlişkin Anlaşmanın (9/b) Maddesinde Yer Alan Hizmetler |
| 242 | KDV 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 |
| 250 | Diğ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):
| Kod | Adi |
|---|---|
| 001 | Diplomatik İstisna |
OTV ISTISNA KODLARI LISTESI:
| Kod | Adi |
|---|---|
| 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 |
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:
| Kod | Adi |
|---|---|
| 555 | KDV 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
| Kod | TaxExemptionReasonCodeType | istisnaTaxExemptionReasonCodeType | Sonuc |
|---|---|---|---|
| 001, 101-108 | VAR | VAR | Fatura tipi ISTISNA/IADE/IHRACKAYITLI/SGK/YTBISTISNA/YTBIADE olmak ZORUNDA |
| 151 | VAR | YOK | Serbest — SATIS tipinde de kullanilabilir |
| 351 | VAR | YOK | Serbest — SATIS tipinde de kullanilabilir |
| 555 | VAR | YOK (ayrica assert'te != 555 ile acikca dislanmis) | Kendi ozel kural setine tabi (asagida) |
| 501 | VAR | VAR | Fatura tipi kisitini tetikler (ama adi tanimsiz) |
555'in ozel kurallari (DemirbasKDVTaxExemptionCheck, context inv:Invoice/cac:TaxTotal)
- 555 yalnizca
ProfileID∈ {TEMELFATURA, TICARIFATURA, EARSIVFATURA} iken kullanilabilir;InvoiceTypeCodeISTISNA veya IHRACKAYITLI olamaz; EARSIVFATURA senaryosundaYTBile baslayan fatura tipleri (YTBSATIS, YTBIADE, YTBISTISNA, YTBTEVKIFAT, YTBTEVKIFATIADE) ile de kullanilamaz. Hata: "<ProfileID> senaryolu <InvoiceTypeCode> fatura tipinde '555' vergi muafiyet kodu kullanılamaz." - 555 varken KDV sifir gecilemez: ne satir (
cac:InvoiceLine/cac:TaxTotal/cac:TaxSubtotal) ne belge seviyesinde, 0015 vergi kodlu bir TaxSubtotal'dacbc:Percent = 0veyacbc:TaxAmount = 0olamaz. 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 MATRAH | TEVKIFAT | |
|---|---|---|
| Schematron listesi | ozelMatrahTaxExemptionReasonCodeType = ,801,...,812, | WithholdingTaxType = ,601,...,627,801,...,825, |
| Yazildigi eleman | cbc:TaxExemptionReasonCode | cbc:TaxTypeCode |
| XPath | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReasonCode | cac:WithholdingTaxTotal/cac:TaxSubtotal/cac:TaxCategory/cac:TaxScheme/cbc:TaxTypeCode |
Izinli cbc:InvoiceTypeCode | OZELMATRAH, IADE, SGK | TEVKIFAT, YTBTEVKIFAT, IADE, YTBIADE, SGK, SARJ, SARJANLIK |
| Kaynak assert | TaxExemptionReasonCodeCheck (Common Schematron satir 322) | GeneralWithholdingTaxTotalCheck (Common Schematron satir 292-293) |
| Anlami | Ozel matrah sekli | Tam tevkifat turu (oran 10/10) |
| Kod araligi | 801-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:
| Kod | OZEL MATRAH adi (cbc:TaxExemptionReasonCode) | AYNI SAYININ tevkifat karsiligi (cbc:TaxTypeCode) |
|---|---|---|
| 801 | Milli Piyango, Spor Toto vb. Oyunlar | Yapım İşleri ile Bu İşlerle Birlikte İfa Edilen Mühendislik-Mimarlık ve Etüt-Proje Hizmetleri |
| 802 | At Yarışları ve Diğer Müşterek Bahis ve Talih Oyunları | Etüt, Plan-Proje, Danışmanlık, Denetim ve Benzeri Hizmetler |
| 803 | Profesyonel Sanatçıların Yer Aldığı Gösteriler, Konserler, Profesyonel Sporcuların Katıldığı Sportif Faaliyetler, Maçlar, Yarışlar ve Yarışmalar | Makine, Teçhizat, Demirbaş ve Taşıtlara Ait Tadil, Bakım ve Onarım Hizmetleri |
| 804 | Gümrük Depolarında ve Müzayede Mahallerinde Yapılan Satışlar | Yemek Servis Hizmeti |
| 805 | Altından Mamül veya Altın İçeren Ziynet Eşyaları İle Sikke Altınların Teslimi | Organizasyon Hizmeti |
| 806 | Tütün Mamülleri | İşgücü Temin Hizmetleri |
| 807 | Muzır Neşriyat Kapsamındaki Gazete, Dergi vb. Periyodik Yayınlar | Özel Güvenlik Hizmeti |
| 808 | Gümüşten Mamul veya Gümüş İçeren Ziynet Eşyaları ile Sikke Gümüşlerin Teslimi | Yapı Denetim Hizmetleri |
| 809 | Belediyeler 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 Hizmetleri | Turistik Mağazalara Verilen Müşteri Bulma/Götürme Hizmetleri |
| 811 | TŞOF Tarafından Araç Plakaları ile Sürücü Kurslarında Kullanılan Bir Kısım Evrakın Teslimi | Spor Kulüplerinin Yayın, Reklâm ve İsim Hakkı Gelirlerine Konu İşlemleri |
| 812 | KDV Uygulanmadan Alınan İkinci El Motorlu Kara Taşıtı veya Taşınmaz Teslimi | Temizlik 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:
| Kod | Adi |
|---|---|
| 701 | 3065 s. KDV Kanununun 11/1-c md. Kapsamındaki İhraç Kayıtlı Satış |
| 702 | DİİB ve Geçici Kabul Rejimi Kapsamındaki Satışlar |
| 703 | 4760 s. ÖTV Kanununun 8/2 Md. Kapsamındaki İhraç Kayıtlı Satış |
| 704 | 3065 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:
| Alan | XPath | Uzunluk |
|---|---|---|
| GTIP | cac:Delivery/cac:Shipment/cac:GoodsItem/cbc:RequiredCustomsID | tam 12 karakter |
| Alici DIB satir kodu | cac: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:
| Liste | 308 | 339 |
|---|---|---|
TaxExemptionReasonCodeType (ana gecerlilik) | YOK (...,306,307,309,310,...) | YOK (...,337,338,340,341,...) |
YatirimTesvikTaxExemptionReasonCodeType | VAR | VAR |
istisnaTaxExemptionReasonCodeType | VAR | VAR |
Sonuc: 308 ve 339, TaxExemptionReasonCodeCheck'in gecerlilik assert'inde ancak su kosulla kabul edilir: ../../../cbc:ProfileID = 'YATIRIMTESVIK' VEYA cbc:InvoiceTypeCode ∈ YatirimTesvikEArsivInvoiceTypeCodeList = ,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:
| Kod | Adi | Zorunlu harcama tipi |
|---|---|---|
| 308 | 13/d Teşvikli Yatırım Mallarının Teslimi | 01 = 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 Hizmetler | 02 = İnşaat işlerine ilişkin mal teslimleri ve hizmet ifaları |
YatirimTesvikItemClassificationCodeList = ,01,02,03,04,:
| Harcama tipi | Anlami | Istisna kodu |
|---|---|---|
| 01 | Makine 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 |
| 03 | Arsa/Arazi Satışları | 0 KDV'li fatura duzenlenemez |
| 04 | Diğer harcamalar | 0 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) ikenItemClassificationCode='01'ise, o satirincac:TaxTotal/cac:TaxSubtotal/cac:TaxCategoryicindeTaxTypeCode='0015'veTaxExemptionReasonCode='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 kosullardaItemClassificationCode='02'iseTaxExemptionReasonCode='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):
| # | Assert | Icerik |
|---|---|---|
| A1 | Bos olmama | cbc:TaxExemptionReason varsa bos olamaz. Mesaj: "cbc:TaxExemptionReason(vergi istisna muhafiyet sebebi) elemanı boş değer içermemelidir." |
| A2 | Kod gecerliligi | cbc:TaxExemptionReason varsa cbc:TaxExemptionReasonCode DOLU olmali ve TaxExemptionReasonCodeType icinde olmali; VEYA YatirimTesvikTaxExemptionReasonCodeType (308/339) icindeyse ProfileID='YATIRIMTESVIK' ya da InvoiceTypeCode ∈ YTB* olmali |
| A3 | Istisna → fatura tipi | Kod istisnaTaxExemptionReasonCodeType icindeyse (ve 555 degilse) fatura tipi ISTISNA, IADE, IHRACKAYITLI, SGK, YTBISTISNA, YTBIADE olmali |
| A4 | Ozel matrah → fatura tipi | Kod ∈ 801-812 ise fatura tipi OZELMATRAH, IADE, SGK olmali |
| A5 | Ihrac kayitli → fatura tipi | Kod ∈ 701-704 ise fatura tipi IHRACKAYITLI, IADE, SGK olmali |
| A6 | 702 ozel kurali | IHRACKAYITLI + 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 araligi | Bulundugu liste | Izinli cbc:InvoiceTypeCode |
|---|---|---|
| 001 (konaklama), 101-108 (OTV) | istisna | ISTISNA, IADE, IHRACKAYITLI, SGK, YTBISTISNA, YTBIADE |
| 201-242, 250 (kismi istisna) | istisna | ISTISNA, IADE, IHRACKAYITLI, SGK, YTBISTISNA, YTBIADE |
| 301-307, 309-338, 340-344, 350 (tam istisna) | istisna | ISTISNA, IADE, IHRACKAYITLI, SGK, YTBISTISNA, YTBIADE |
| 308, 339 | istisna + YatirimTesvik | Yukaridakiler + ek sart: ProfileID='YATIRIMTESVIK' VEYA InvoiceTypeCode ∈ {YTBSATIS, YTBIADE, YTBISTISNA, YTBTEVKIFAT, YTBTEVKIFATIADE} |
| 501 | istisna (adi tanimsiz) | ISTISNA, IADE, IHRACKAYITLI, SGK, YTBISTISNA, YTBIADE |
| 151, 351 | yalnizca ana liste | Serbest — SATIS dahil, istisna kisiti tetiklenmez |
| 555 | ana liste + Demirbas kurali | ISTISNA ve IHRACKAYITLI HARIC; ProfileID ∈ {TEMELFATURA, TICARIFATURA, EARSIVFATURA}; EARSIVFATURA'da YTB* haric; KDV 0 olamaz |
| 701-704 | ihrac | IHRACKAYITLI, IADE, SGK |
| 801-812 | ozelMatrah | OZELMATRAH, 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:TaxExemptionReasonSatir seviyesi — YATIRIMTESVIK / YTBISTISNA'da ZORUNLU:
/Invoice/cac:InvoiceLine/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReasonCodecac:TaxCategory eleman tanimi (UBL-TR Ortak Elemanlar V0.7, bolum 2.2.58):
| Eleman | Kardinalite | Aciklama (birebir) |
|---|---|---|
Name | Secimli (0..1) | — |
TaxExemptionReasonCode | Secimli (0..1) | "Vergi muafiyet, istisna sebepleri bu alana kodlu olarak girilecektir. Bknz. Kod listeleri." |
TaxExemptionReason | Secimli (0..1) | "Vergi muafiyet, istisna sebepleri bu alana serbest metin olarak girilecektir." |
TaxScheme | Zorunlu (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:
- Genel istisna faturalarinda KDV satiri silinmez:
cbc:TaxTypeCode= 0015 olarak kalir,cbc:TaxableAmountmatrahi tasir,cbc:TaxAmount= 0 gecilir. UYARI: "her istisna faturasindacbc:Percent= 0" seklinde bir kural schematron'da yoktur ve YATIRIMTESVIK/YTBISTISNA faturalari icin YANLISTIR — GIB'in YTB kilavuzundaki resmi ISTISNA ornegindePercent20,TaxAmount300.00 veCalculationSequenceNumeric-1 kullanilir (KDV hesaplanir, fatura tutarina eklenmez). Percent=0 kurali yalnizca genel istisna faturalari icin uygulanmali, YTB istisnasi ayrik tutulmalidir. cbc:TaxExemptionReasonCode(kod) vecbc:TaxExemptionReason(serbest metin) birlikte yazilmalidir: A2 assert'i Reason varken Code'un dolu ve gecerli olmasini,TaxExemptionReasonCheckise KDV=0 iken Reason'in dolu olmasini sart kosar — pratikte ikisi birbirini zorunlu kilar.TaxExemptionReasonmetnini 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").- Belge seviyesindeki
cbc:InvoiceTypeCode= ISTISNA (e-Arsiv Yatirim Tesvik'te YTBISTISNA). - 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:
| Aralik | Bos 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 1xx | 109-150, 152-200 |
| 5xx | 502-554, 556-600 |
| Ozel matrah / ihrac araliklari | 705-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):
| Kod | Adi |
|---|---|
| 329 | Eğ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ı |
| 341 | Afetzedelere Bağışlanacak Konutların İnşasına İlişkin İstisna |
| 342 | Genel Bütçeli Kamu İdarelerine Bağışlanacak Taşınmazların İnşasına İlişkin İstisna |
| 343 | Genel Bütçeli Kamu İdarelerine Bağışlanacak Konutların Yabancı Devlet Kurum ve Kuruluşlarına Teslimine İlişkin İstisna |
| 344 | 13/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):
| Kod | Adi |
|---|---|
| 233 | 2942 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):
| Kod | Adi |
|---|---|
| 704 | 3065 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):
| Kod | Adi |
|---|---|
| 555 | KDV Oran Kontrolüne Tabi Olmayan Satışlar (27.03.2026'da uygulamasi ertelendi) |
METNI DEGISEN KODLAR (4 adet):
| Kod | V1.31 (2023) | V1.43 (2026) |
|---|---|---|
| 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ı | 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ışı |
| 229 | 17/2-b Gıda Bankacılığı Faaliyetinde Bulunan Dernek ve Vakıflara Bağışlanan Gıda, Temizlik, Giyecek ve Yakacak Maddeleri | Gı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) |
| 336 | Geçici 40 UEFA Müsabakaları Kapsamında Yapılacak Teslim ve Hizmetler | Geç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.
| Konu | Durum |
|---|---|
Ihrac kayitli faturada cbc:CalculationSequenceNumeric = -1 | REDDEDILDI. 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/aciklamasi | KORPUSTA 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 iliski | ACIKLANMAMIS. 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 tarihi | BELIRSIZ. 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 gecmisi | 203, 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 sonucu | Kilavuz 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 tablosu | KORPUSTA 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 oldugu | ACIKLANMAMIS. 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 TaxTypeCode | BELIRSIZ. 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 kodu | e-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 surumler | KORPUSTA 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:
| Öncelik | Kaynak | Kullanım |
|---|---|---|
| 1 | Dipnotlu Güncel Şekli ile 509 Sıra No.lu VUK GT (konsolide metin) | ESAS — tüm hadler, tarihler ve bentler buradan alınır |
| 2 | 573 SN VUK GT (RG 12/11/2024-32720) ve 589 SN VUK GT (RG 31/12/2025-33124) tam metinleri | Yürürlük maddeleri ve değişiklik lafzı için |
| 3 | 509 s. VUK GT Kapsamında Uygulamalara Geçiş Takvimi Tablosu | YALNIZCA TARİHSEL — eskimiştir, kural motorunda kullanılamaz |
| 4 | Zorunluluk Karşılaştırma Tablosu | YALNIZCA TARİHSEL — 509 taslak dönemine (2018/2019) aittir |
| 5 | 509 Ç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:
- Uygulamaya dâhil olma zorunluluğu,
- 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önemi | Brüt satış hasılatı (veya satışları ile gayrisafi iş hasılatı) haddi |
|---|---|
| 2018, 2019 veya 2020 | 5.000.000 TL ve üzeri |
| 2021 | 4.000.000 TL ve üzeri |
| 2022 veya müteakip hesap dönemleri | 3.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_000Had 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şama | Had | Dayanak / RG | Geçiş kuralı |
|---|---|---|---|
| 1 | 2018 hesap dönemi 10 Milyon TL | 454 SN VUK GT | 1/1/2020 |
| 2 | 2018 veya müteakip hesap dönemleri 5 Milyon TL | 509 SN VUK GT (RG 19/10/2019-30923) ilk hâli | 2018/2019 için 1/7/2020; 2020+ için izleyen yılın 7. ayı başı |
| 3 | 2018-2019-2020: 5 Milyon / 2021: 4 Milyon / 2022+: 3 Milyon | 535 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ükellef | Ciro eşiği | Geçiş tarihi (IV.1.5) | Ekleyen / değiştiren tebliğ |
|---|---|---|---|---|
| 1 | Brüt satış hasılatı haddini aşanlar | 2018/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) |
| 2 | 4760 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ükellefler | YOK | (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 edenler | YOK | (b) — bent 2 ile aynı | 509 asıl metin |
| 4 | Aracı 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ştirenler | 2020/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 kadar | 535 ile DEĞİŞTİRİLDİ (dipnot 7; IV.1.5(c) için dipnot 16) |
| 5 | 5957 s. Kanun (Hal Kayıt Sistemi) hükümlerine göre komisyoncu veya tüccar olarak sebze ve meyve ticaretiyle iştigal edenler | YOK | (c) 1/1/2020'ye kadar (2020+ işe başlayanlar 3 ay içinde) | 509 asıl metin |
| 6 | SGK ile sözleşme imzalayan sağlık hizmeti sunucuları ile medikal malzeme ve ilaç/etken madde temin eden tüm mükellefler | YOK | (d) 1/7/2021'den itibaren; bu tarihten sonra SGK ile sözleşme imzalayanlar SGK'ya fatura düzenlemeye başlamadan önce | 526 SN (RG 09/02/2021-31390) ile EKLENDİ (dipnot 8; IV.1.5(d) için dipnot 17) |
| 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 edenler | 2020/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 kadar | 535 ile EKLENDİ (dipnot 9; IV.1.5(e) için dipnot 18) |
| 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 | YOK | (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 kadar | 535 ile EKLENDİ (dipnot 10; IV.1.5(f) için dipnot 19) |
| 9 | 2/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şletmecileri | YOK | (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ıyla | 550 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:
| Uygulama | Hüküm | Kapsam |
|---|---|---|
| e-Fatura | IV.1.4(a)(3) | Yalnızca "imal, inşa ve/veya ithal edenler" |
| e-İrsaliye | IV.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ü |
|---|---|
| 1 | hastane |
| 2 | tıp merkezleri |
| 3 | dal merkezleri |
| 4 | diyaliz merkezleri |
| 5 | Sağlık Bakanlığından ruhsatlı diğer özelleşmiş tedavi merkezleri |
| 6 | tanı, tetkik ve görüntüleme merkezleri |
| 7 | laboratuvarlar |
| 8 | eczaneler |
| 9 | tıbbi cihaz ve malzeme tedarikçileri |
| 10 | optisyenlik müesseseleri |
| 11 | işitme merkezi |
| 12 | kaplıcalar |
| 13 | 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 |
| 14 | ecza 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önemi | Had | e-Fatura'ya geçiş tarihi |
|---|---|---|
| 2018 veya 2019 | 5 Milyon TL | 1/7/2020 |
| 2020 | 5 Milyon TL | 1/7/2021 |
| 2021 | 4 Milyon TL | 1/7/2022 |
| 2022 | 3 Milyon TL | 1/7/2023 |
| 2023 | 3 Milyon TL | 1/7/2024 |
| 2024 | 3 Milyon TL | 1/7/2025 |
| 2025 | 3 Milyon TL | 1/7/2026 |
| 2026 | 3 Milyon TL | 1/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ıkra | Kapsam | Geçiş tarihi |
|---|---|---|
| b | ÖTV (I) EPDK lisansı / ÖTV (III) imal-inşa-ithal | 2019'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şı |
| c | AHS, internet reklamcılığı hizmet aracıları, internette ilan yayınlayanlar | 1/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üccar | 1/1/2020'ye kadar (2020 ve sonrası işe başlayanlar 3 ay içinde) |
| d | SGK 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 |
| e | Gayrimenkul/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 |
| f | Otel 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 | İçerik | Tebliğ |
|---|---|---|
| (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."
| Konu | Gü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."
| Grup | e-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 olanlar | IV.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ükellef | e-Fatura |
| e-Fatura'ya kayıtlı olmayan vergi mükellefi | e-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."
| Grup | e-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ğlayanlar | 1/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 grubu | 3 Bin TL eşiğinin geçerli olduğu dönem | Tutarı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/2025 | 1/1/2026 |
| Ticari kazancı BASİT USULDE tespit edilenler | 1/1/2025 – 31/12/2026 | 1/1/2027 |
| İŞLETME HESABI esasına göre defter tutanlar | 1/1/2025 – 31/12/2026 | 1/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önem | Vergi mükellefi OLMAYANA düzenlenen | Vergi MÜKELLEFİNE düzenlenen | Dayanak / RG |
|---|---|---|---|---|
| 1 | 1/1/2020 – 08/02/2021 | 30.000 TL'yi aşanlar | 5.000 TL'yi aşanlar | 509 SN ilk hâli (RG 19/10/2019-30923) |
| 2 | 09/02/2021 – 31/12/2024 | 5.000 TL'yi aşanlar | VUK md.232/2'deki, işlemin gerçekleştiği yıla ait fatura düzenleme haddini aşanlar | 526 SN (RG 09/02/2021-31390) |
| 3 | 1/1/2025 – 31/12/2025 | 3.000 TL'yi aşanlar (ayrım kalktı, tek eşik) | 3.000 TL'yi aşanlar | 573 SN (RG 12/11/2024-32720) |
| 4 | 1/1/2026 → | Tutarına bakılmaksızın hepsi | Tutarına bakılmaksızın hepsi | 573 SN |
| 5 | Basit usul + işletme hesabı: 3.000 TL dönemi 31/12/2026'ya uzatıldı, sınırsız zorunluluk 1/1/2027'ye ertelendi | — | — | 589 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 1 | IV.2.4.3'e basit usul + işletme hesabı parantezleri eklendi |
| MADDE 2 | Yayımı tarihinde yürürlüğe girer (31/12/2025) |
| MADDE 3 | Hazine 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."
| Madde | Etki |
|---|---|
| MADDE 1 ve 5–8 | e-Dekont kapsamı bankalardan VUK 435 SN GT'nin (2) numaralı bölümündeki kuruluşlara genişletildi; İDİS tanımı eklendi |
| MADDE 2 | e-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 3 | e-İrsaliye IV.3.5'e (9) numaralı İDİS bendi eklendi (2024+ dönemlerde 1 Milyon TL ve üzeri) |
| MADDE 4 | e-İ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 |
|---|---|
| 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ü: 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 |
|---|---|
| 1 | Sevk 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ı) |
| 2 | Sevk 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ği | Geç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âhil | YOK | 1/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) | YOK | Aynı | 509 asıl |
| 3 | 3213 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ükellefler | YOK | Aynı | 509 asıl |
| 4 | 4634 s. Şeker Kanunu md.2/(e) bendindeki şekerin imalini gerçekleştiren mükellefler | YOK | Aynı | 509 asıl |
| 5 | Demir 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ç) | YOK | Aynı | 535 ile DEĞİŞTİRİLDİ (dipnot 31) |
| 6 | Tarım ve Orman Bakanlığınca oluşturulan Gübre Takip Sistemi'ne kayıtlı kullanıcılar | YOK | Aynı | 509 asıl |
| 7 | e-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 olanlar | VAR | Müteakip hesap döneminin yedinci ayı başından itibaren | 535 ile DEĞİŞTİRİLDİ (dipnot 32) |
| 8 | 5957 s. Kanun (Hal Kayıt Sistemi) hükümlerine göre komisyoncu veya tüccar olarak sebze ve meyve ticaretiyle iştigal edenler | YOK | 1/1/2020'ye kadar | 509 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 olanlar | VAR | Şartların sağlandığı ayı izleyen dördüncü ayın başı | 573 ile EKLENDİ (dipnot 33; IV.3.6 için dipnot 34) |
| 10 | Baş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ır | YOK | Yazılı bildirimde belirtilen süre | 509 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 |
|---|---|
| 1 | Beyaz şeker (standart, rafine küp ve kristal şeker) |
| 2 | Yarı beyaz şeker |
| 3 | Rafine şeker |
| 4 | Ham şeker |
| 5 | Kahverengi şeker |
| 6 | Nişasta kökenli izoglukoz |
| 7 | Likid ya da kurutulmuş hâlde glukoz şurubu |
| 8 | Sakaroz 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."
| Unsur | 535 öncesi | 535 sonrası (güncel) |
|---|---|---|
| e-Fatura kaydı ön şartı | VAR | KALDIRILDI |
| Basit usul istisnası | YOK | EKLENDİ |
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):
| Grup | Geç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ılat | Sö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 olanlar | Mü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şama | Had | Dayanak |
|---|---|---|
| 509 ilk hâli | e-Fatura'ya kayıtlı olup 2018 veya müteakip hesap dönemleri 25 Milyon TL ve üzeri | 509 SN (19/10/2019) |
| 535 sonrası (güncel) | 2018-2019-2020: 25 Milyon TL; 2021 ve sonrası: 10 Milyon TL | 535 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.
| Durum | Son tarih |
|---|---|
| 1/2/2020 tarihi itibarıyla faaliyetine devam etmekte olanlar | 1/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 |
|---|---|
| 1 | e-Fatura uygulamasına geçmek zorunda olan mükelleflerden faaliyetleri gereği aynı zamanda 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 eden mükellefler |
| 3 | Baş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):
| Durum | Son tarih |
|---|---|
| Genel | 1/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 olanlar | e-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.4 | Tek 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.5 | Zorunlu 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."
| Grup | Tanım | Geçiş tarihi | Sonradan 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şletmeler | 1/1/2021'e kadar | 2021 veya müteakip yıllarda faaliyete başlayanlar: faaliyete başladığı ayı izleyen dördüncü ayın başından itibaren |
| Sinema | Yerli ve yabancı film gösteriminde bulunan sinema işletmeleri | 1/7/2020'ye kadar | 1/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.4 | Baş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.5 | Bildirim/duyuruda belirtilen süre içinde dâhil olunur ve o tarihten itibaren adisyon belgeleri e-Adisyon olarak düzenlenir |
| IV.12.6 | Kâğı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."
| Belge | Bölüm | Durum | Zorunluluk mekanizması |
|---|---|---|---|
| e-Sigorta Komisyon Gider Belgesi | IV.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çesi | IV.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 Belgesi | IV.10.4 / IV.10.5 | zorunlu değil | Başkanlık en az 3 aylık süre belirleyerek, duyuru ile; muhatap: yetkili müesseseler |
| e-Dekont | IV.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şama | Eşik | Dayanak |
|---|---|---|
| 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ı eklendi | 515 |
| 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ır | 550 |
"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."
| Bent | Hal | Şart |
|---|---|---|
| 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 | Ayrıca ispat şartı yazılmamış |
| b | 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 | İspat veya tevsik edilmek kaydıyla; planlı bakım için yazılı bildirimde belirtilen süre ile sınırlı |
| c | Kullanı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üm | Süre / detay |
|---|---|---|
| 1 | Elektronik 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 sunma | 3 iş günü içinde |
| 2 | Kendi sistemi üzerinden kullananların donanımlarının bir kısmı veya tamamının haczedilmesi veya yetkili mercilerce el konulması hâlinde bildirim + plan | En geç 3 iş günü içinde |
| 3 | Kendi 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 | — |
| 4 | Baş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 | — |
| 5 | Kendi sistemi üzerinden kullananlar ile izin alan özel entegratörlerin anlaşmalı matbaa işletmeciliği sözleşmesi yapma zorunluluğu yoktur | — |
| 6 | GEÇİŞ AYI TOLERANSI (aşağıda ayrıntılı) | e-Fatura/e-Arşiv: ayın 7. günü; diğer e-Belgeler: ay sonu |
| 7 | YEDEK MATBU BELGE BULUNDURMA ZORUNLULUĞU (aşağıda ayrıntılı) | Süreklilik arz ederse entegrasyon izni iptal edilebilir |
| 8 | Millî 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 | — |
| 9 | Başkanlık, izin başvurularının yanıtlanmasını erteleyebilir, başvuruları sıraya koyabilir | — |
| 10 | Başkanlık, e-Belgelerde bulunması gereken bilgilerde değişiklik yapabilir | — |
| 11 | Baş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 | — |
| 12 | Baş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 | — |
| 13 | Baş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 | — |
| 14 | Baş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 yetkilidir | En az 1 ay süre vermek kaydıyla |
| 15 | Başkanlığa ait uygulamalar üzerinden düzenlenen belgeler Başkanlığa ait elektronik imza veya mali mühür ile de imzalanabilir | — |
| 16 | Rİ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" | — |
| 17 | Baş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 yetkilidir | En az 3 ay süre vermek suretiyle |
| 18 | VUK 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 | — |
| 19 | Baş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 yetkilidir | 526 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."
| Uygulama | Kâğıt belge düzenlenebilecek son an |
|---|---|
| e-Fatura ve e-Arşiv Fatura | Uygulamaya dâhil olunan tarihin içinde bulunduğu ayın 7 nci gününün sonu |
| Diğer tüm e-Belgeler | Uygulamaya 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 uyumu | Teknik 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
| Belge | Bölüm | Cezalandırılan taraf |
|---|---|---|
| e-Fatura | IV.1.6 | Sü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ümle | 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 |
| e-Arşiv (genel) | IV.2.5 | Düzenlemeyen ve almayan mükellefler (VUK md.232/1'in 1 ila 5 numaralı bentlerinde sayılanlar) |
| e-İrsaliye | IV.3.7 | Düzenlemeyen ve almayan mükellefler (232/1, 1-5 bentleri) |
| e-SMM | IV.4.6 | Düzenlemeyen ve almayan mükellefler (232/1, 1-5 bentleri) |
| e-MM | IV.5.6 | Düzenlemeyen ve almayan mükellefler |
| e-Gider Pusulası | IV.6.6 | Düzenlemeyen ve almayan mükellefler (232/1, 1-5 bentleri) |
| e-Bilet | IV.7.5 | Düzenlemeyen ve almayan mükellefler (232/1, 1-5 bentleri) |
| e-Adisyon | IV.12.6 | Sadece 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ıkra | Kapsam | Tutar |
|---|---|---|
| VUK 353/1 | Fatura, gider pusulası, müstahsil makbuzu, serbest meslek makbuzu | Her 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/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 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:
| # | Konu | SSS'deki açıklama | Not |
|---|---|---|---|
| 1 | Adi 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." | — |
| 3 | Haddin 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 |
| 4 | Tasfiye / 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 |
| 6 | Bağı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ğ | RG | IV.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 - 30923 | Bentler 1-5, fıkralar (a)-(e), (ğ). e-Fatura haddi 5 Milyon TL | IV.2.4.1 – IV.2.4.5; portal eşiği 30 Bin / 5.000 TL | Bentler 1-8 + Başkanlık yetkisi; had 25 Milyon TL | V.7 (a)-(ç), VIII |
| 515 | 10/01/2020 - 31004 | HAD 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) | — | — | — |
| 526 | 09/02/2021 - 31390 | Bent 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ı eklendi | IV.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İ |
| 535 | 22/01/2022 - 31727 | Bent 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şletildi | Bent 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 | — |
| 550 | 07/10/2023 - 32332 | Bent 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) |
| 573 | 12/11/2024 - 32720 | — | IV.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ÜLGA | Bent 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 |
| 589 | 31/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ı | Dayanak | Geçiş tarihi |
|---|---|---|---|
| 1 | 2018 hesap dönemi brüt satış hasılatı 10 Milyon TL ve üzeri olan mükellefler | 454 SN VUK GT | 1/1/2020 |
| 2 | 2018 veya 2019 hesap dönemleri brüt satış hasılatı 5 Milyon TL ve üzeri | 509 SN VUK GT | 1/7/2020 |
| 3 | 2020 veya müteakip hesap dönemleri brüt satış hasılatı 5 Milyon TL ve üzeri | 509 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ükellefler | 509 SN VUK GT | 1/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 edenler | 509 SN VUK GT | Aynı |
| 6 | AHS'ler, internette gayrimenkul/motorlu araç ilanı yayınlayan siteler, internet reklamcılığı hizmet aracıları | 509 SN VUK GT | AHS/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 |
| 7 | 5957 sayılı Kanun'a göre komisyoncu/tüccar olarak sebze-meyve ticaretiyle iştigal edenler | 509 SN VUK GT | 1/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 GT | 1/7/2017'den (bavul ticareti açısından 1/7/2020'den) itibaren |
| 9 | e-İrsaliye zorunluluğu nedeniyle e-Fatura'ya geçmek zorunda olanlar | 509 SN VUK GT | e-İrsaliye geçiş zorunluluğunun başladığı tarih |
| 10 | e-Arşiv Fatura zorunluluğu nedeniyle e-Fatura'ya geçmek zorunda olanlar | 509 SN VUK GT | e-Arşiv Fatura geçiş zorunluluğunun başladığı tarih |
| 11 | Baş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 GT | Yazı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:
| # | Kapsam | Tarih |
|---|---|---|
| 1 | e-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" |
| 3 | Aracı 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) |
| 4 | e-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." |
| 5 | Aynı kapsamda vergi mükelleflerine düzenlenecek faturaların vergiler dahil toplam tutarı 5 Bin TL'yi aşanlar | Aynı 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):
| Konu | Dayanak | Durum |
|---|---|---|
| e-Fatura + e-Defter | 454 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 SN | e-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şiv | 464 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-İrsaliye | 487 SN | "İSTEĞE BAĞLIDIR. HERHANGİ BİR MÜKELLEF GRUBU İÇİN ZORUNLULUK ÖNGÖRÜLMEMİŞTİR." |
| e-SMM | 487 SN | Aynı — isteğe bağlı, zorunluluk yok |
| e-MM | 487 SN | Aynı — 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:
| Konu | Taslak (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ği | Aynı 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 Portali | 30 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 tarihleri | 31/3/2019 – 1/7/2019 | 1/2/2020 – 1/6/2020 |
Kaynak:
Zorunluluk_Karsilastirma_Tablosu_.txt
Korpus İçi Çelişkiler — Portal Kural Motoru İçin Karar Matrisi
| Konu | Dipnotlu güncel 509 (ESAS) | Geçiş Takvimi Tablosu (ESKİ) | SSS (ESKİ) | e-Arşiv Fatura Portali Entegrasyon Kılavuzu (ESKİ) |
|---|---|---|---|---|
| e-Fatura ciro haddi | 2022+ için 3 Milyon TL | 5 Milyon TL | 5 Milyon TL | — |
| e-İrsaliye ciro haddi | 2021+ için 10 Milyon TL | 25 Milyon TL | 25 Milyon TL | — |
| e-Arşiv portal eşiği | 1/1/2026'dan itibaren tutarına bakılmaksızın (basit usul/işletme hesabı: 1/1/2027) | 30 Bin TL / 5 Bin TL | 30 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) | var | var | var |
| Bavul ticareti e-Fatura tarihi | GİB duyurusunda belirtilecek tarih (550 SN) | 1/7/2020 | 1/7/2020 | — |
| SGK sağlık / otel / gayrimenkul-taşıt / şarj ağı bentleri | VAR (526, 535, 550) | YOK | YOK | — |
| İDİS bendi (e-İrsaliye) | VAR (573) | YOK | — | — |
| Demir-çelik bendinde e-Fatura kaydı şartı | KALDIRILDI (535) | var | — | — |
| e-Adisyon | 509'da IV.12 bölümü VAR | Tabloda 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.
| # | Konu | Durum |
|---|---|---|
| 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 |
| 2 | e-Gider Pusulası için somut had veya takvim | DOĞ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 |
| 3 | e-Adisyon için somut had veya tarih | DOĞ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 |
| 4 | e-Sigorta Komisyon Gider Belgesi, e-Sigorta Poliçesi, e-Döviz Alım-Satım Belgesi, e-Dekont için fiilî zorunluluk duyurusu | DOĞRULANAMADI Başkanlıkça fiilen zorunluluk getirilip getirilmediğine dair bir duyuru metni korpusta yoktur; yalnızca yetki hükmü vardır |
| 5 | e-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 |
| 6 | Bavul ticareti e-Fatura zorunluluğunun güncel başlangıç tarihi | DOĞ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 |
| 7 | 2026 ve sonrası için yeni had düzenlemesi | DOĞ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 |
| 8 | IV.1.4(a)(8) ve (9)'daki "bu Tebliğin yayım tarihi" ibaresinin birebir teyidi | DOĞ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 |
| 9 | SERBEST BÖLGE zorunluluğu | DOĞ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 |
| 10 | TAŞIMACILIK sektörü zorunluluğu | DOĞ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 |
| 11 | YETKİLİ MÜDAHALE / ARAÇ KİRALAMA için ayrı bent | DOĞ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 bendi | DOĞ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) |
| 13 | e-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 |
| 14 | V.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 |
| 15 | GİB SSS'nin güncelliği | DOĞ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 |
| 16 | e-Bilet — hava yolu ve deniz yolu | DOĞ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.
| # | Taraf | Aktivite | Üretilen belge |
|---|---|---|---|
| 1 | Satıcı | Faturayı oluşturur ve gönderir | UBL-TR Invoice (cbc:ProfileID = TEMELFATURA) |
| 2 | Alı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 kendiInvoiceIDCheckkuralından geçemez — zarf1150 SCHEMATRON KONTROL SONUCU HATALIalır. Portal şablonunda bu örnek KULLANILMAMALIDIR. Doğru şablon 16 hanelidir:ABC2026000000001. (Karşılaştırma: Ticari Fatura SenaryosundakiGIB2009000000011veGIB200900000002216 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
| # | Taraf | Aktivite | Belge |
|---|---|---|---|
| 1 | Satıcı | Faturayı düzenler ve gönderir | Invoice (ProfileID=TICARIFATURA) |
| 2 | Alıcı | Faturayı alır ve işler | — |
| 3 | Alıcı | KABUL uygulama yanıtı gönderir | ApplicationResponse (ResponseCode=KABUL) |
| 4 | Satıcı | UY'yi alır, fatura ile eşleyip kayda alır | — |
B. Faturanın Reddedilmesi
| # | Taraf | Aktivite | Belge |
|---|---|---|---|
| 1 | Satıcı | Faturayı düzenler ve gönderir | Invoice |
| 2 | Alıcı | Faturayı alır | — |
| 3 | Alıcı | RED uygulama yanıtı gönderir; red gerekçesini genel açıklamalara yazar | ApplicationResponse (ResponseCode=RED) |
| 4 | Satıcı | UY'yi alır, reddedilen fatura ile eşler | — |
| 5a | Satıcı | UY'yi kabul eder → gerekirse tamamen yeni bir fatura düzenler | Yeni Invoice |
| 5b | Satıcı | UY'yi kabul etmez → harici yollardan itiraz eder | — |
C. İade Faturası Düzenlenmesi
| # | Taraf | Aktivite | Belge |
|---|---|---|---|
| 1 | Satıcı | Faturayı düzenler ve gönderir | Invoice |
| 2 | Alıcı | Faturayı alır ve yasal defterlere kaydeder | — |
| 3 | Alıcı | İade nedenlerini yazdığı IADE UY'sini iade faturası ile birlikte gönderir | ApplicationResponse (IADE) + Invoice (InvoiceTypeCode=IADE) |
| 4 | Satı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 |
|---|---|
| 1 | Red gerekçesi ZORUNLU, uygulama yanıtının genel açıklamalar bölümüne yazılır |
| 2 | Reddedilen fatura DEĞİŞTİRİLMEKSİZİN red UY'si ile birlikte saklanır; fatura üzerinde düzeltme yapılamaz |
| 3 | Red ile fatura süreci kapanır; yerine fatura gerekiyorsa tamamıyla yeni bir fatura düzenlenir (düzeltme/versiyon kavramı YOK) |
| 4 | Satıcı, red'e konu faturaya red UY'si GÖNDEREMEZ (RED'e RED yoktur); itirazı ancak harici yollarladır |
| 5 | Satı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 Durum | Tetikleyici Olay | Yeni Durum | Koşul / Süre | Terminal? |
|---|---|---|---|---|---|
| 1 | TASLAK | Kullanıcı onayı | OLUSTURULDU | Schematron ön-kontrol geçmeli | Hayır |
| 2 | OLUSTURULDU | XAdES imza (mali mühür/NES) | IMZALANDI | — | Hayır |
| 3 | IMZALANDI | Zarflama + sendDocument | GONDERILDI | Zarf ID = zip adı = xml adı | Hayır |
| 4 | GONDERILDI | S_APR / 1000..1143 | ISLENIYOR | Asenkron | Hayır |
| 5 | GONDERILDI | S_APR / 1150,1160,1161,1162,1163,1170-1183,1190,1195 | HATALI | Zarf reddedildi, yeniden gönderim gerekir | Evet |
| 6 | ISLENIYOR | S_APR / 1200 | ZARF_ISLENDI | Zarf başarıyla işlendi | Hayır |
| 7 | ZARF_ISLENDI | Merkez iç durumu 1300 | TAMAMLANDI | Yalnız durum sorgusu ile görülür (bkz. Doğrulanamayanlar) | Evet (başarı) |
| 8 | ZARF_ISLENDI (TICARIFATURA) | Alıcı UY: KABUL | KABUL_EDILDI | ≤ 8 gün | Evet |
| 9 | ZARF_ISLENDI (TICARIFATURA) | Alıcı UY: RED | REDDEDILDI (= iptal) | ≤ 8 gün, gerekçe zorunlu | Evet |
| 10 | ZARF_ISLENDI (TICARIFATURA) | Alıcı UY: IADE + IADE faturası | IADE_EDILDI | Defterlere kayıttan sonra | Evet |
| 11 | ZARF_ISLENDI (TICARIFATURA) | 8 gün doldu, UY gelmedi | ZIMNEN_KABUL | TTK 21/2 | Evet |
| 12 | ZARF_ISLENDI (TEMEL/HKS) | İptal talebi oluşturuldu | IPTAL_TALEBI_BEKLIYOR | ≤ 8 gün (iletim tarihinden) | Hayır |
| 13 | IPTAL_TALEBI_BEKLIYOR | Karşı taraf "Fatura İptal Et" | IPTAL_EDILDI (kod 1235) | ≤ 8 gün | Evet |
| 14 | IPTAL_TALEBI_BEKLIYOR | Karşı taraf "Talebi Reddet" | IPTAL_TALEBI_REDDEDILDI | — | Evet |
| 15 | IPTAL_TALEBI_BEKLIYOR | 8 gün doldu, onay yok | IPTAL_TALEBI_ZAMANASIMI | Sistem onaya izin vermez | Evet |
| 16 | herhangi (portal kapsamındaki senaryo) | TTK 18/3 itirazı + bildirim | ITIRAZ_BILDIRILDI | Harici itiraz ÖNCE yapılmış olmalı | Hayır |
| 17 | ITIRAZ_BILDIRILDI | Karşı taraf kabul | ITIRAZ_KABUL | ≤ izleyen ayın 15'i sonu | Evet |
| 18 | ITIRAZ_BILDIRILDI | Karşı taraf red veya süre doldu | ITIRAZ_REDDEDILDI / ITIRAZ_ZAMANASIMI | Ba/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.
| No | UBL Adı | Türkçe | Kardinalite | İçerik |
|---|---|---|---|---|
| 1 | UBLExtensions | UBL Genişletme Alanı | Seçimli (0..1) | XAdES formatında elektronik imza |
| 2 | UBLVersionID | UBL Versiyon No | Zorunlu (1) | Değer: 2.1 |
| 3 | CustomizationID | Özelleştirme No | Zorunlu (1) | Değer: TR1.2 |
| 4 | ProfileID | Senaryo | Zorunlu (1) | KABUL/RED/IADE için sadece TICARIFATURA veya IHRACAT; S_APR için UBL-TR-PROFILE-1 |
| 5 | ID | UY 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 |
| 6 | UUID | ETTN | Zorunlu (1) | GUID |
| 7 | IssueDate | Düzenleme Tarihi | Zorunlu (1) | YYYY-AA-GG |
| 8 | IssueTime | Düzenleme Zamanı | Seçimli (0..1) | SS:DD:ss |
| 9 | Note | Not | Seçimli (0..n) | UY ile ilgili genel açıklamalar → RED GEREKÇESİ BURAYA |
| 10 | Signature | Mali Mühür/İmza | Seçimli (0..n) | Sistem düzeyinde seçimli, belge düzeyinde ZORUNLU (schematron dayatır) |
| 11 | SenderParty | UY Gönderen Taraf | Zorunlu (1) | — |
| 12 | ReceiverParty | UY Alan Taraf | Zorunlu (1) | — |
| 13 | DocumentResponse | Belge Yanıtı | Zorunlu (1) | Tam 1 adet (DocumentResponseCountCheck) |
ÇELİŞKİ: Uygulama Yanıtı Kılavuzu V0.2
2.1/TR1.2der; Ticari Fatura Senaryosu V0.3'ün ApplicationResponse örnekleri (satır 878-879, 1010-1011, 1352-1354)2.0/TR1.0veProfileID = TicariFatura(karma harf) kullanır. Karma harfliTicariFaturagüncelProfileIDTypelistesini 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.
| Kod | Anlamı | Kim düzenler | Zarf tipi | ProfileID kısıtı |
|---|---|---|---|---|
KABUL | Fatura kabul edildi | Alıcı | POSTBOXENVELOPE | TICARIFATURA veya IHRACAT |
RED | Fatura reddedildi | Alıcı | POSTBOXENVELOPE | TICARIFATURA veya IHRACAT |
IADE | İade faturası ile ilişkili | Alıcı | POSTBOXENVELOPE | TICARIFATURA veya IHRACAT |
S_APR | Sistem Yanıtı (teknik) | GİB Merkez / Gönderici Birim | SYSTEMENVELOPE | UBL-TR-PROFILE-1 |
GUMRUKONAY | Gümrük onayı | Ticaret Bakanlığı (VKN 1460415308) | POSTBOXENVELOPE | YOLCUBERABERFATURA |
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ç:
S_APRbir POSTBOXENVELOPE içinde gönderilemez — sadece SYSTEMENVELOPE içindedir.- KABUL/RED/IADE uygulama yanıtı yalnızca
ProfileID = TICARIFATURAveyaIHRACATile gönderilebilir. TEMELFATURA/KAMU/HKS profilinde UY üretmeye çalışan bir portal zarfı1150ile 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
| Yer | XPath | İş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:Description | DescriptionCountCheck: 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ıt | Kök cbc:Note | Response/Description | LineReference/LineID |
|---|---|---|---|
| KABUL | Fatura Kabul Edilmiştir. (satır 884) | FATURAKABUL (satır 961/979) | boş |
| RED | Fatura Red Edilmiştir. (satır 1016) | FATURARED | boş <cbc:LineID/> |
| IADE | Gİ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'daFatura Kabul Edilmiştir.yazmaktadır — bu bir kopyala-yapıştır hatasıdır; iade gerekçesi satır düzeyindekiDescriptionalanındadır ("Notebook çantaları istenen vasıfta olmadığından iade edilmiştir.", satır 1437-1454). Portal, IADE yanıtının kökNote'una iade gerekçesini yazmalıdır.
2.5 Taraf ve imza schematron kısıtları
| Kural | Bağlam | Dayatma |
|---|---|---|
ARPartyIdentificationPartyNamePersonCheck (satır 568-575; Main satır 331 & 341) | SenderParty + ReceiverParty | schemeID = VKN veya TCKN olan tam 1 cac:PartyIdentification/cbc:ID; ikisi birden olamaz |
| aynı kural | KABUL/RED/IADE | VKN 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 SenderParty | schemeID='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) | POSTBOXENVELOPE | DocumentReference 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):
| Kod | Açıklama | Kod | Açıklama |
|---|---|---|---|
| 1000 | ZARF KUYRUGA EKLENDI | 1171 | GONDERICI BIRIM YETKISI YOK |
| 1100 | ZARF ISLENIYOR | 1172 | POSTA KUTUSU YETKISI YOK |
| 1110 | ZIP DOSYASI DEGIL | 1175 | IMZA YETKISI KONTROL EDILEMEDI |
| 1111 | ZARF ID UZUNLUGU GECERSIZ | 1176 | IMZA SAHIBI YETKISIZ |
| 1120 | ZARF ARSIVDEN_KOPYALANAMADI | 1177 | GEÇERSİZ İMZA |
| 1130 | ZIP ACILAMADI | 1180 | ADRES KONTROL EDILEMEDI |
| 1131 | ZIP BIR DOSYA ICERMELI | 1181 | ADRES BULUNAMADI |
| 1132 | XML DOSYASI DEGIL | 1182 | KULLANICI EKLENEMEDİ |
| 1133 | ZARF ID VE XML DOSYASININ ADI AYNI OLMALI | 1183 | KULLANICI SİLENEMEDİ |
| 1140 | DOKUMAN AYRISTIRILAMADI | 1190 | SISTEM YANITI HAZIRLANAMADI |
| 1141 | ZARF ID YOK | 1195 | SISTEM HATASI |
| 1142 | ZARF ID VE ZIP DOSYASI ADI AYNI OLMALI | 1200 | ZARF BASARIYLA ISLENDI |
| 1143 | GECERSIZ VERSIYON | 1210 | DOKUMAN BULUNAN ADRESE GONDERILEMEDI |
| 1150 | SCHEMATRON KONTROL SONUCU HATALI | 1215 | DOKUMAN GONDERIMI BASARISIZ. TERKAR GONDERME SONLANDI |
| 1160 | XML SEMA KONTROLUNDEN GECEMEDI | 1220 | HEDEFTEN SISTEM YANITI GELMEDI |
| 1161 | IMZA SAHIBI TCKN VKN ALINAMADI | 1230 | HEDEFTEN SISTEM YANITI BASARISIZ GELDI |
| 1162 | IMZA KAYDEDILEMEDI | 1235 | FATURA IPTAL'E KONU EDILDI |
| 1163 | GONDERILEN ZARF ... DAHA ONCE KAYITLI OLAN BIR FATURAYI ICERMEKTEDIR. | 1300 | BASARIYLA TAMAMLANDI |
| 1164 | GONDERILEN ZARF ... DAHA ONCE KAYITLI OLAN BIR BELGEYİ ICERMEKTEDIR. | 1170 | YETKI 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
1191vardır ama Ek-2'de tanımı YOKTUR. Buna karşılık1164, 1210, 1215, 1220, 1230, 1235, 1300bu 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:
| Kaynak | Hü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ç |
|---|---|
| 1 | Alıcı 8 gün içinde itiraz etmezse fatura içeriğini kabul etmiş sayılır (TTK 21/2) → ZIMNEN_KABUL |
| 2 | Posta kutusu birimi 8. günden sonra UY göndermeyi teknik olarak engellemek zorundadır |
| 3 | Gönderici Birim, 8 günden sonra gelen UY'yi kabul etmemelidir |
| 4 | Sonrası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;
TimeCheckkuralı 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öntemi | Süre / başlangıç | Sistem zorluyor mu? |
|---|---|---|---|
| Ticari Fatura | Sistem içinden "Ret Uygulama Yanıtı" (ResponseCode=RED). Ayrı iptal portali kullanılmaz | 8 gün / alıcıya iletildiği tarih | Evet (posta kutusu engellemeli) |
| Ticari Fatura dışındaki senaryolar (Temel dahil) | e-Fatura İptal Portali, mali mühür / e-imza ile | 8 gün / alıcıya iletilme tarihi | EVET — 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İM | Kim başlatabilir |
|---|---|---|---|
| Temel Fatura | ✔ | ✔ | Alı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 Fatura | ✘ | ✔ | Sadece satıcı — alıcı onayı aranmaz |
| YOLCUBERABERFATURA, IHRACAT, OZELFATURA, ENERJI, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS | ✘ | ✘ | Portal 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
| Durum | Talep durumu etiketi | Alıcının sanal Ba | Satıcının sanal Bs |
|---|---|---|---|
| İptal talebi ONAYLANDI | "Fatura İptal Edildi" | YER ALMAZ | YER ALMAZ |
| İptal talebi REDDEDİLDİ | "Talep Reddedildi" | YER ALIR | YER ALIR |
| 8 gün içinde onay verilmedi | — | YER ALIR | YER 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.
| Senaryo | Sistem içi itiraz | Harici itiraz |
|---|---|---|
| Ticari Fatura | ✔ RED uygulama yanıtı (8 gün içinde) | ✔ TTK 18/3 (8 gün içinde) |
| Temel ve diğer senaryolar | ✘ | ✔ SADECE 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 Ba | Satıcının sanal Bs |
|---|---|---|
| Kabul etti (≤ izleyen ayın 15'i sonu) | YER ALMAZ | YER ALMAZ |
| Reddetti ("Talep Reddedildi") | YER ALMAZ | YER ALIR |
| Süresinde onaylamadı | YER ALMAZ | YER 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 Ba | Satıcının sanal Bs |
|---|---|---|
| Kabul etti (≤ izleyen ayın 15'i sonu) | YER ALMAZ | YER ALMAZ |
| Reddetti | YER ALIR | YER ALMAZ |
| Süresinde onaylamadı | YER ALIR | YER 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ı tipi | Giriş yöntemi | Kimlik 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 kullananlar | GİB e-Arşiv (interaktif) Portalı | Dijital V.D kullanıcı kodu ve şifresi |
| Kayıtlı e-Belge kullanıcısı olmayan mükellefler | Gİ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 BA | Satıcının sanal BS |
|---|---|---|
| Kabul (≤ izleyen ayın 15'i) | YER ALMAZ | YER ALMAZ |
| Reddetti VEYA süresinde kabul etmedi | YER ALMAZ | YER ALIR |
| B) İtirazı satıcı başlattı, cevap alıcıda (4.4) | Alıcının sanal BA | Satıcının sanal BS |
|---|---|---|
| Kabul (≤ izleyen ayın 15'i) | YER ALMAZ | YER ALMAZ |
| Reddetti VEYA süresinde kabul etmedi | YER ALIR | YER 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):
| Alan | Kardinalite | Format | Örnek |
|---|---|---|---|
faturaNo | Zorunlu (1) | Alfa nümerik | <earsiv:faturaNo>FGH2013000000001</earsiv:faturaNo> |
iptalTarihi | Zorunlu (1) | YYYY-AA-GG | <earsiv:iptalTarihi>2013-09-02</earsiv:iptalTarihi> |
toplamTutar | Zorunlu (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İ
| Taraf | Rapor yükümlülüğü |
|---|---|
| e-Arşiv uygulamasına PORTAL haricindeki yöntemlerle dahil olan mükellefler | VAR |
| Bu uygulamalar kapsamında hizmet vermeye Başkanlıktan izin alan özel entegratörler | VAR |
| e-Arşiv uygulamalarına PORTAL yönteminden yararlanarak dahil olan mükellefler | YOK — "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 RAPORU | XADES-A + zaman damgası |
| e-Arşiv FATURA belgesinin kendisi | XADES-BES |
| e-Müstahsil Makbuzu belgesi | XADES-BES |
| e-Adisyon belgesi | XADES-BES |
| e-Serbest Meslek Makbuzu | Bu 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ı
| Konu | Kural |
|---|---|
| Metotlar | sendDocumentFile, getBatchStatus, getUserList |
sendDocumentFile | Dosya 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 |
getBatchStatus | Girdi = paket ID |
getUserList | Girdi = XML ya da CSV; zip içinde kullanıcı listesi döner |
| Güvenlik | WSS; 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şi | Ay 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
| Durum | Koşul | Belge |
|---|---|---|
| RED | Fatura henüz defterlere kaydedilmeden; eksik/yanlış/hatalı veya satış anlaşması nedeniyle | RED uygulama yanıtı (yeni fatura YOK) |
| IADE | Fatura alıcı veya satıcı tarafından YASAL DEFTERLERE KAYDEDİLDİKTEN SONRA ortaya çıkan nedenlerle malın tümü veya belirli kalemlerinin iadesi | IADE 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 |
|---|---|
| 1 | Alıcı düzenler — fatura yönü tersine döner (eski alıcı → satıcı konumuna geçer) |
| 2 | Tamamıyla yeni bir faturadır |
| 3 | cbc:InvoiceTypeCode = IADE |
| 4 | Genel 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 |
| 6 | Satı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) > 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ırma — InvoiceTypeCode ∈ {IADE, TEVKIFATIADE, YTBIADE, YTBTEVKIFATIADE} ise iki şart birlikte sağlanmalıdır:
| Şart | İfade | Anlamı |
|---|---|---|
| 1 | count(cac:BillingReference/cac:InvoiceDocumentReference) > 0 | En az bir referans — ZORUNLU (senaryo kılavuzundaki "ilişki kurulabilir" ifadesinin aksine) |
| 2 | filtrelenmiş 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:
cbc:DocumentTypeCode=IADE— belge tipiFATURADEĞİL.cbc:IDtam 16 hane; baştaki/sondaki boşluklarnormalize-spaceile temizlenir.- Birden fazla faturanın iadesi tek iade faturasında yapılabilir; ancak HEPSİ 16 haneli +
DocumentTypeCode=IADEolmak zorundadır — bir tanesi bile bozuksa tüm fatura reddedilir. TEVKIFATIADEveYTBTEVKIFATIADEde kapsamdadır (hata mesajı metnindeYTBTEVKIFATIADEyazmasa datestifadesinde vardır).- 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ğu | Değ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_.txtsatı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 vecbc:DocumentTypeCodehiç yoktur. GİB'in kendi örneği kendiIADEInvioceCheckkuralı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; zarf1150 SCHEMATRON KONTROL SONUCU HATALIile 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:
| Belge | Zorunlu ProfileID | Dayanak |
|---|---|---|
İade FATURASI (InvoiceTypeCode=IADE) | TEMELFATURA (veya EARSIVFATURA/ILAC_TIBBICIHAZ/YATIRIMTESVIK/IDIS/KAMU) — TICARIFATURA OLAMAZ | InvoiceTypeCodeCheck |
IADE UYGULAMA YANITI (ResponseCode=IADE) | TICARIFATURA veya IHRACAT — başkası OLAMAZ | ApplicationResponseProfileIDCheck |
Aynı kural bloğundaki diğer kısıtlar (satır 177-178):
ProfileID = ENERJI⇔InvoiceTypeCode ∈ {SARJ, SARJANLIK}— çift yönlü zorunluluk; yalnızca$type = 'efatura'(veya boş) iken uygulanır.InvoiceTypeCode = TEKNOLOJIDESTEK⇒ProfileIDmutlakaEARSIVFATURA.
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 |
|---|---|
| 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'si |
| 5 | 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ı |
İ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/@schemeID | DocumentDescription | Kullanım |
|---|---|---|
FATURANO | EARSIV_FATURA | e-Arşiv Fatura ile yapılan satışın iadesi |
OKCSERINO | SATIS_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 KODU — Contact/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ükellef | Alı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
| İşlem | Süre | Başlangıç referansı | Sistem engelliyor mu? |
|---|---|---|---|
| e-Fatura KABUL/RED/IADE uygulama yanıtı | 8 gün | Faturanın alınması | EVET (posta kutusu engellemeli) |
| e-Fatura iptal talebi oluşturma | 8 gün | Alıcıya iletilme tarihi | EVET (açık hüküm) |
| e-Fatura iptal talebi onaylama | 8 gün | Alıcıya iletilme tarihi | EVET (açık hüküm) |
| e-Fatura itiraz talebi onaylama | İzleyen ayın 15'i sonu | Faturanın ait olduğu ay | Korpusta engelleme ifadesi YOK |
| e-Arşiv / e-SMM iptal | 8 gün | Belgenin alıcıya iletilme tarihi | Açık engelleme ifadesi YOK |
| e-Arşiv / e-SMM itiraz onaylama | İzleyen ayın 15'i sonu | Belgenin ait olduğu ay | Korpusta engelleme ifadesi YOK |
| e-Arşiv Raporu gönderimi (günlük) | İzleyen günün sonu | Belge düzenleme günü | VUK cezası |
| e-Arşiv Raporu — SARJANLIK | ANLIK | Fatura düzenlenmesi | VUK cezası |
| e-İrsaliye yanıtı (kıyas) | 7 gün | İrsaliyenin gönderilmesi | Gönderici birim kabul etmemeli |
e-İrsaliye kıyası (
e-FaturaUygulamasiEntegrasyonKilavuzu-v1.10_.txtsatı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
| Alan | Neden 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_kodu | S_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_durumu | Portal talep yaşam döngüsü |
rapor_gonderim_durumu, rapor_donemi | Günlük e-Arşiv raporu takibi |
9.3 Zamanlayıcı (scheduler) işleri
| Job | Sıklık | Görev |
|---|---|---|
SAPR_POLL | Dakikalık | Bekleyen 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_KAPAT | Saatlik | teslim_tarihi + 8 gün geçen TICARIFATURA kayıtlarında UY gönderim/kabul butonunu pasifleştir, durumu ZIMNEN_KABUL yap |
IPTAL_PENCERE_UYARI | Günlük | teslim_tarihi + 8 güne 2 gün kalan bekleyen iptal taleplerinde her iki tarafa uyarı |
IPTAL_PENCERE_KAPAT | Saatlik | 8 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_UYARI | Günlük | belge_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_RAPOR | Gü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_RAPOR | Olay tetiklemeli | InvoiceTypeCode = SARJANLIK faturası düzenlenir düzenlenmez sarjAnlik şemalı raporu anlık gönder |
RAPOR_BATCH_STATUS | 15 dakikalık | getBatchStatus ile gönderilen paketlerin durumunu sorgula, başarısızları yeniden kuyruğa al |
IPTAL_ITIRAZ_RAPOR | Gü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)
| # | Kontrol | Kural |
|---|---|---|
| 1 | cbc:ID tam 16 hane, ^[A-Z0-9]{3}20[0-9]{2}[0-9]{9}$ | InvoiceIDCheck |
| 2 | InvoiceTypeCode=IADE ise ProfileID ∈ {TEMELFATURA, EARSIVFATURA, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS, KAMU} | InvoiceTypeCodeCheck |
| 3 | IADE/TEVKIFATIADE/YTBIADE/YTBTEVKIFATIADE ise ≥1 BillingReference/InvoiceDocumentReference, her birinde DocumentTypeCode ∈ {IADE, İADE} ve normalize-space(ID) uzunluğu 16 | IADEInvioceCheck |
| 4 | UY'de ResponseCode ∈ {KABUL,RED,IADE} ise ProfileID ∈ {TICARIFATURA, IHRACAT} | ApplicationResponseProfileIDCheck |
| 5 | UY'de ResponseCode = S_APR ise ProfileID = UBL-TR-PROFILE-1 ve zarf SYSTEMENVELOPE | ApplicationResponseProfileIDCheck / PostBoxResponseCodeCheck |
| 6 | UY'de tam 1 cac:DocumentResponse; LineResponse/Response içinde tam 1 cbc:Description | DocumentResponseCountCheck, DescriptionCountCheck |
| 7 | KABUL/RED/IADE UY'sinde ProfileID != IHRACAT iken cac:Signature ve ext:UBLExtensions zorunlu | ARSignatureCheck |
| 8 | Sender/ReceiverParty'de schemeID VKN veya TCKN tam 1 adet; VKN ise PartyName/Name, TCKN ise Person/FirstName+FamilyName dolu | ARPartyIdentificationPartyNamePersonCheck |
| 9 | POSTBOXENVELOPE'ta DocumentReference içinde boş olmayan DocumentTypeCode ve DocumentType | PostBoxDocumentReferenceCheck |
| 10 | ProfileID=ENERJI ⇔ InvoiceTypeCode ∈ {SARJ, SARJANLIK}; TEKNOLOJIDESTEK ⇒ EARSIVFATURA | InvoiceTypeCodeCheck |
| 11 | GUMRUKONAY yanıtında imza aranmaz (istisna); ProfileID=YOLCUBERABERFATURA | Gü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.
| # | Konu | Durum |
|---|---|---|
| 1 | 1300 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 |
| 2 | 1235 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 |
| 3 | 1191 kodunun anlamı — AppResponseCodeType listesinde vardır, Ek-2 durum kodu tablosunda tanımı YOKTUR. | DOĞRULANAMADI |
| 4 | UY 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 |
| 5 | IADEInvioceCheck'in e-Arşiv iade faturalarında geçerliliği — UBL-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ĞRULANAMADI — ProfileIDTypeEarchive ve InvoiceTypeCodeCheck'in EARSIVFATURA'ya izin vermesi nedeniyle makul, ancak açık hüküm yok |
| 6 | e-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 |
| 10 | e-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 |
| 11 | e-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 |
| 12 | UBLVersionID / 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 |
| 13 | STDKODFATURA 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 |
| 14 | UY 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 |
| 16 | Nihai 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 |
| 17 | Ticari 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:assertmetinleri, 24.08.2026 tarihli e-Fatura paketindekiUBL-TR_Codelist.xml,UBL-TR_Common_Schematron.xmlveUBL-TR_Main_Schematron.xmldosyaları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,'"/>| ProfileID | Kod Listeleri V1.43 açıklaması | Ne zaman kullanılır | Tetiklediğ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 mallar | DespatchAdviceHKSKunyeCheck |
IDISIRSALIYE | "İnşaat Demiri İzleme Sistemleri için düzenlenecek irsaliye sürecini belirtir." | İDİS kapsamındaki demir teslimleri | DespatchIdisSevkiyatNoCheck + 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ğer | Anlamı | Fiili sevk zamanı kısıtı | Ek zorunluluk |
|---|---|---|---|
SEVK | Doğrudan elektronik ortamda düzenlenen e-İrsaliye | ActualDespatchDate/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 tip | cbc: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))) > 0 and string-length(normalize-space(string(cbc:IssueDate))) > 0 ]) > 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ı
| Senaryo | Alan | XPath | Format | Kapsam |
|---|---|---|---|---|
HKSIRSALIYE | KUNYENO | DespatchLine/Item/AdditionalItemIdentification/ID[@schemeID='KUNYENO'] | tam 19 karakter | HER DespatchLine |
IDISIRSALIYE | SEVKIYATNO | DespatchSupplierParty/Party/PartyIdentification/ID[@schemeID='SEVKIYATNO'] | SE- veya ES- + 7 rakam, toplam 10 karakter (örn. SE-1345840) | Belge başına ≥1 |
IDISIRSALIYE | ETIKETNO | DespatchLine/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=HKSIRSALIYEbağı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. ETIKETNOhiçbir kod listesinde tanımlı DEĞİLDİR.AdditionalItemIdentificationIDTypelistesinin 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. (SEVKIYATNOisePartyIdentificationIDTypelistesinde gerçekten vardır.)- History.txt:
DespatchAdviceHKSKunyeCheck20231228;DespatchIdisEtiketNoCheckveDespatchIdisSevkiyatNoCheck20260109'da eklendi,DespatchIdisSevkiyatNoCheck20260701'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ım | Gerç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
| Durum | UBL ifadesi | Aritmetik |
|---|---|---|
| TAM KABUL | Her 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ı/reddedilen | cbc:ReceivedQuantity + cbc:RejectedQuantity + cbc:RejectReason (serbest metin) | Örnekte Received teslim alınan toplam (20), Rejected bunun içinden reddedilen (2) |
| KISMİ KABUL — eksik gelen | cbc:ReceivedQuantity + cbc:ShortQuantity | Received + Short = Delivered (18 + 2 = 20) |
| FAZLA GELEN | cbc:ReceivedQuantity + cbc:OversupplyQuantity | Received fazlalığı İÇERİR (20 = 12 + 8) |
| GEÇ TESLİM ŞİKAYETİ | cbc:TimingComplaint (+ cbc:TimingComplaintCode) | — |
| TAM RED | Korpusta makine-okunur RED kodu YOKTUR. Hukuki dayanak 509 IV.3.4; UBL alan eşlemesi tanımsız. | DOĞRULANAMADI |
ASİMETRİ UYARISI: Eksikte
Receivedeksiği içermez (Received + Short = Delivered); fazladaReceivedfazlalığı içerir (Receivedzaten 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)
| Eleman | Kardinalite | Açıklama (birebir) |
|---|---|---|
| ID | Zorunlu(1) | Kalem numarası girilir. |
| Note | Seçimli(0..n) | Kalem açıklaması girilir. |
| ReceivedQuantity | Seçimli(0..1) | Teslim alınan mal adedi girilir. |
| ShortQuantity | Seçimli(0..1) | Eksik olan mal adedi girilir. |
| RejectedQuantity | Seçimli(0..1) | Kabul edilmeyen mal adedi girilir. |
| RejectReasonCode | Seçimli(0..1) | Reddedilme sebebi kodu girilir. |
| RejectReason | Seçimli(0..n) | Reddedilme sebebi açıklaması girilir. |
| OversupplyQuantity | Seçimli(0..1) | Fazla teslim alınan mal adedi girilir. |
| ReceivedDate | Seçimli(0..1) | Teslim alma tarihi girilir. |
| TimingComplaintCode | Seçimli(0..1) | Geç teslim edilmesi durumunda şikayet kodlu olarak girilir. |
| TimingComplaint | Seçimli(0..1) | Geç teslim edilmesi durumunda şikayet açıklaması girilir. |
| OrderLineReference | Seçimli(0..1) | İlgili sipariş dokümanı kalemi bilgisi girilir. |
| DespatchLineReference | Seçimli(0..1) | İlgili irsaliye dokümanı kalemi girilir. |
| DocumentReference | Seçimli(0..n) | İlgili dokümanların bilgisi girilir. |
| Item | Zorunlu(1) | Teslim alınan mal bilgisi girilir. |
| Shipment | Seç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.0 | e-İrsaliye V1.2 | Not |
|---|---|---|---|
| UBLExtensions | Zorunlu(1..1) | Zorunlu(1..1) | XAdES mali mühür/e-imza |
| UBLVersionID | Zorunlu(1) = 2.1 | Zorunlu(1) = 2.1 | |
| CustomizationID | Zorunlu(1) = TR1.2.1 | Zorunlu(1) | CustomizationIDCheck: TR1.2 veya TR1.2.1 |
| ProfileID | Zorunlu(1) | Zorunlu(1) | Yanıtta schematron kontrolü YOK |
| ID | Zorunlu(1) | Zorunlu(1) | Yanıt: uzunluk = 16 (regex yok). İrsaliye: ^[A-Z0-9]{3}20[0-9]{2}[0-9]{9}$ |
| CopyIndicator | Zorunlu(1) | Zorunlu(1) | asıl false, suret true |
| UUID | Zorunlu(1) | Zorunlu(1) | UUIDCheck GUID regex |
| IssueDate | Zorunlu(1) | Zorunlu(1) | |
| IssueTime | Seçimli(0..1) | Zorunlu(1) | Fark |
| ReceiptAdviceTypeCode | Seçimli(0..1) → schematron fiilen zorunlu | — | Tek değer: SEVK |
| DespatchAdviceTypeCode | — | Seçimli(0..1) → schematron fiilen zorunlu | SEVK / MATBUDAN |
| LineCountNumeric | Zorunlu(1) | Seçimli(0..1) | Fark |
| DespatchDocumentReference | Zorunlu(1) | — | İçine irsaliye ETTN'i |
| Signature | Zorunlu(1..n) | Zorunlu(1..n) | |
| Shipment | Zorunlu(1) | Zorunlu(1) | |
| ReceiptLine / DespatchLine | Zorunlu(1..n) | Zorunlu(1..n) |
3. İrsaliye ↔ Fatura ve Yanıt ↔ İrsaliye bağları
| Bağ | UBL alanı | Konum | Kardinalite | İçine ne yazılır | Schematron kontrolü |
|---|---|---|---|---|---|
| Yanıt → İrsaliye | cac:DespatchDocumentReference/cbc:ID | ReceiptAdvice 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=DespatchAdviceID | ReceiptAdvice başlığı | Seçimli | İrsaliye belge NUMARASI (örn. GIB2016000000023) | Yok |
| Yanıt kalemi → İrsaliye kalemi | cac:DespatchLineReference/cbc:LineID | ReceiptLine | Seçimli(0..1) | DespatchLine/cbc:ID değeri | Yok |
| Fatura → İrsaliye | cac:DespatchDocumentReference | Invoice başlığı | Seçimli (0…n) | Örneklerde irsaliye NUMARASI (123456, 180921) | YOK — DespatchDocumentReference kelimesi Main ve Common Schematron'da hiç geçmez |
| Fatura → Alındı | cac:ReceiptDocumentReference | Invoice başlığı | Seçimli (0…n) | Alındı belgesi | Yok |
| İrsaliye → Fatura (fatura önce kesilmişse) | cac:AdditionalDocumentReference | DespatchAdvice başlığı | Seçimli | Fatura bilgileri | Yok |
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
| Bent | Bilgi |
|---|---|
| a | e-İrsaliyenin düzenlenme tarihi ve belge numarası |
| b | e-İrsaliyeyi düzenleyenin adı/soyadı, ticaret unvanı, adresi, vergi dairesi ve vergi kimlik numarası |
| c | Müş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ı |
| d | Fiili sevk tarihi ile saat ve dakika olarak fiili sevk zamanı |
| e | Karekod 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)
| Eleman | Kardinalite | Not |
|---|---|---|
| UBLExtensions | Zorunlu(1..1) | XAdES |
| UBLVersionID / CustomizationID / ProfileID | Zorunlu(1) | 2.1 / TR1.2 \ |
| ID | Zorunlu(1) | 3 hane alfanumerik + 13 hane müteselsil (ilk 4 hane yıl) |
| CopyIndicator / UUID / IssueDate / IssueTime | Zorunlu(1) | IssueTime SS:DD:SS |
| DespatchAdviceTypeCode | Seçimli(0…1) → schematron zorunlu | |
| Note / LineCountNumeric / OrderReference / AdditionalDocumentReference | Seçimli | |
| Signature | Zorunlu(1…n) | |
| DespatchSupplierParty / DeliveryCustomerParty | Zorunlu(1) | |
| BuyerCustomerParty / SellerSupplierParty / OriginatorCustomerParty | Seçimli(0..1) | Zincir teslim: 15.1 |
| Shipment | Zorunlu(1) | |
| DespatchLine | Zorunlu(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
| # | Alan | XPath (desp:DespatchAdvice altında) | Zorunluluk | Format / kod | Kural |
|---|---|---|---|---|---|
| 1 | Fiili sevk tarihi | cac:Shipment/cac:Delivery/cac:Despatch/cbc:ActualDespatchDate | Koşulsuz ZORUNLU | ^\d{4}\-(0?[1-9]\|1[012])\-(0?[1-9]\|[12][0-9]\|3[01])$ | DespatchDateCheck |
| 2 | Fiili sevk saati | cac:Shipment/cac:Delivery/cac:Despatch/cbc:ActualDespatchTime | Koşulsuz ZORUNLU | boş olamaz | DespatchTimeCheck (20210526) |
| 3 | Teslimat semti | cac:Shipment/cac:Delivery/cac:DeliveryAddress/cbc:CitySubdivisionName | ZORUNLU | boş olamaz | DespatchAddressCheck (20210526) |
| 4 | Teslimat ili | …/cac:DeliveryAddress/cbc:CityName | ZORUNLU | boş olamaz | DespatchAddressCheck |
| 5 | Teslimat ülkesi | …/cac:DeliveryAddress/cac:Country/cbc:Name | ZORUNLU | boş olamaz | DespatchAddressCheck |
| 6 | Posta kodu | …/cac:DeliveryAddress/cbc:PostalZone | ZORUNLU | ^((0[1-9])\|([1-7][0-9])\|(8[0-1]))[0-9]{3}$ — 5 hane, ilk 2 hane il plaka kodu 01–81 | DespatchAddressCheck |
| 7 | Şoför veya taşıyıcı | cac:Shipment/cac:ShipmentStage/cac:DriverPerson veya cac:Shipment/cac:Delivery/cac:CarrierParty | En az biri ZORUNLU; ikisi de yoksa belge reddedilir | — | DespatchCarrierDriverCheck (20210526) |
| 8 | Şoför ad | …/cac:DriverPerson/cbc:FirstName | DriverPerson varsa ZORUNLU | boş olamaz | DespatchCarrierDriverCheck |
| 9 | Şoför soyad | …/cac:DriverPerson/cbc:FamilyName | DriverPerson varsa ZORUNLU | boş olamaz | DespatchCarrierDriverCheck |
| 10 | Şoför kimlik | …/cac:DriverPerson/cbc:NationalityID | DriverPerson varsa ZORUNLU | schemeID="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 aranmaz | schemeID + regex (aşağıda) | LicensePlateIDCheck (20260701) |
| 12 | Plaka schemeID | aynı | ZORUNLU (eleman varsa) | PLAKA \ | YABANCIPLAKA |
| 13 | Dorse/ekipman | cac:Shipment/cac:TransportHandlingUnit/cac:TransportEquipment/cbc:ID | Seçimli(0..n); varsa formatı doğrulanır | DORSE \ | DORSEPLAKA \ |
| 14 | Taşıyıcı kimlik | cac:Shipment/cac:Delivery/cac:CarrierParty/cac:PartyIdentification/cbc:ID | CarrierParty varsa | VKN=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,'"/>| schemeID | Nerede | Regex |
|---|---|---|
PLAKA | LicensePlateID | ^(0[1-9]\|[1-7][0-9]\|8[01])[A-Z]+[0-9]+$ |
YABANCIPLAKA | LicensePlateID | ^[A-Z0-9_-]+$ |
DORSE | TransportEquipment/ID | ^(0[1-9]\|[1-7][0-9]\|8[01])[A-Z]+[0-9]+$ |
DORSEPLAKA | TransportEquipment/ID | ^(0[1-9]\|[1-7][0-9]\|8[01])[A-Z]+[0-9]+$ |
YABANCIDORSE | TransportEquipment/ID | ^[A-Z0-9_-]+$ |
YABANCIDORSEPLAKA | TransportEquipment/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ı:
| LicensePlateID | TransportEquipment/ID | |
|---|---|---|
| Neyi tanımlar | Çekici/motorlu aracın plakası | Dorse / römork / taşıma ekipmanı |
| XPath | Shipment/ShipmentStage/TransportMeans/RoadTransport/LicensePlateID | Shipment/TransportHandlingUnit/TransportEquipment/ID |
| Değer sayısı | 2 | 4 |
| Çoklanabilirlik | RoadTransport içinde Zorunlu(1) | TransportEquipment Seçimli(0..n) — birden çok dorse |
| Koşullu zorunluluk | Şoför varsa ZORUNLU | Hiç 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:
| Durum | Zorunlu |
|---|---|
| VKN'li taraf | Tam 1 adet PartyIdentification/ID@schemeID="VKN" (10 hane) + cac:PartyName/cbc:Name dolu |
| TCKN'li taraf | Tam 1 adet …@schemeID="TCKN" (11 hane) + cac:Person/cbc:FirstName ve cbc:FamilyName dolu |
| İkisi birden | YASAK — belge reddedilir |
Özel VKN/TCKN değerleri:
| Değer | Anlam | Kaynak |
|---|---|---|
5555555555 | Alıcı bilinmiyor → unvan alanına "muhtelif müşteriler" | Kılavuz Bölüm 8 |
3900892152 | Gİ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 tutar | Kılavuz Bölüm 8 + schematron |
11111111111 | Nihai 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önderilir | 15.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 / Konu | Kılavuz ne diyor | Schematron ne dayatıyor | Eklenme (History.txt) |
|---|---|---|---|---|
| 1 | cbc:DespatchAdviceTypeCode | UBL-TR İrsaliye V1.2: "Seçimli (0…1)" | Fiilen ZORUNLU — eleman yok/boşsa contains(',SEVK,MATBUDAN,' , ',,') false döner ve assert patlar | — |
| 2 | cbc:ReceiptAdviceTypeCode | İrsaliye Yanıtı V1.0: "Seçimli (0…1)" | Fiilen ZORUNLU, tek geçerli değer SEVK | — |
| 3 | cbc:ActualDespatchTime | Kılavuz örneklerinde ve UBL-TR İrsaliye V1.2'de zorunlu tutulmaz | KOŞULSUZ ZORUNLU (DespatchTimeCheck) | 20210526 |
| 4 | cbc:ActualDespatchDate | Zorunlu tutulmaz | KOŞULSUZ ZORUNLU + YYYY-MM-DD regex (DespatchDateCheck) | — |
| 5 | cac:DeliveryAddress bloğu | Ortak 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 |
| 6 | cbc:PostalZone | Format kuralı yok | ^((0[1-9])\|([1-7][0-9])\|(8[0-1]))[0-9]{3}$ — 5 hane, ilk 2 hane 01–81 | 20210526 |
| 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 yok | DriverPerson varsa FirstName + FamilyName + NationalityID üçü de dolu olmalı | 20210526 |
| 9 | Çekici plakası | Zorunluluk beyanı yok | Şoför varsa plaka ZORUNLU (LicensePlateIDCheck) | 20260701 |
| 10 | LicensePlateID/@schemeID | Kod Listeleri V1.43'te LicensePlateID schemeID listesi YOKTUR (Bölüm 2.1 yalnızca PartyIdentification schemeID'leri) | PLAKA \ | YABANCIPLAKA + iki ayrı regex |
| 11 | TransportEquipment/ID/@schemeID | Hiçbir kılavuzda açıklanmaz. Eski kılavuzlarda yalnızca DORSEPLAKA örnek olarak geçer | DORSE \ | DORSEPLAKA \ |
| 12 | ProfileID=HKSIRSALIYE ↔ künye bağı | Kılavuz 15.26 yalnızca "künye numarasına yer verilmesi zorunlu" der, ProfileID bağını kurmaz | HKSIRSALIYE iken HER kalemde 19 karakterli KUNYENO | 20231228 |
| 13 | İDİS ETIKETNO | Kod 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ır | SE- veya ES- kabul edilir | 20260109, güncelleme 20260701 |
| 15 | Taraf kimliği + unvan/ad | Kılavuzda birleşik kural yok | VKN → PartyName/Name zorunlu; TCKN → Person/FirstName+FamilyName zorunlu; VKN ve TCKN birlikte YASAK | DespatchAdvice: 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) | — |
| 17 | NationalityID schemeID | İrsaliye Yanıtı V1.0'daki DriverPerson örneğinde schemeID eksiktir | Portalde daima schemeID="TCKN" yazılmalı | — |
| 18 | Fiili sevk ≥ düzenleme zamanı | Kılavuz Bölüm 10 + SSS 70 açıkça kural koyar | SCHEMATRON'DA KODLANMAMIŞTIR — portal kendi kontrolünü yapmalıdır | — |
| 19 | Fatura → irsaliye referansı | Fatura V1.0: Seçimli(0…n) | Hiç kontrol edilmez (DespatchDocumentReference schematron'da geçmez) | — |
| 20 | İrsaliye Yanıtı ProfileID | Yanıt V1.0: Zorunlu(1), örnekte TEMELIRSALIYE | receiptadvice pattern'i ProfileID'yi hiç denetlemez | — |
| 21 | Yanıtta RED | 509 IV.3.4 ve Kılavuz Böl. 12/14 red imkânını hukuken tanır | Ne kod alanı, ne kod listesi, ne kural var. ReceiptAdviceRejectCheck güncel schematron'da YOK | — |
| 22 | Miktar tutarlılığı | Örneklerden çıkarılabilir | Hiçbir aritmetik kural yok — Delivered ile Received/Short/Oversupply arası denetlenmez | — |
| 23 | Alıcı–zarf eşleşmesi | Kılavuzda yok | DocumentSenderCheck / 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
| Konu | Kural |
|---|---|
| Kim gönderir | e-İrsaliyeyi ALAN taraf (DeliveryCustomerParty) → düzenleyene. "e-İrsaliye Yanıtı alıcı tarafından malların sağlayıcısına gönderilir." |
| Zorunlu mu | HAYIR. "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üre | 7 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ıt | Gö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):
| Kaynak | Baş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 62 | soru 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Ü |
|---|---|
SENDERENVELOPE | FATURA (INVOICE), IRSALIYE (DESPATCHADVICE) |
POSTBOXENVELOPE | UYGULAMA YANITI (BAPR), IRSALIYEYANITI (RECEIPTADVICE) |
SYSTEMENVELOPE | SİSTEM YANITI (SAPR) |
USERENVELOPE | KULLANICI 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ır — ReservedAliases 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):
- 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."
- Kapsam: belgenin TAMAMI (kısmi red ≠ red; o kısmi kabuldür)
- 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."
| Durum | Yapılacak |
|---|---|
| Fiili sevkten önce hata | Alıcı RED yanıtı verir |
| Fiili sevkten sonra hata / alıcı kabul etmedi / adreste bulunamadı / mal geri getiriliyor | Malı 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ışı
- Ü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.
- En geç izleyen gün içinde aynı belge
MATBUDANtüründe e-İrsaliye olarak düzenlenir. - 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). - "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 | İbare | Kaynak |
|---|---|---|
| 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ı
| Konu | Sü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
| Bent | Hal |
|---|---|
| a | Baş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
| Konu | Kural |
|---|---|
| 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
| # | Kontrol | Koşul | Hata mesajı / davranış |
|---|---|---|---|
| D01 | cbc:CustomizationID ∈ {TR1.2, TR1.2.1} | daima | BLOKE |
| D02 | cbc:ID ~ ^[A-Z0-9]{3}20[0-9]{2}[0-9]{9}$ | daima | BLOKE (InvoiceIDCheck irsaliyeye de uygulanır) |
| D03 | cbc:UUID ~ GUID regex | daima | BLOKE |
| D04 | cbc:ProfileID ∈ {TEMELIRSALIYE, HKSIRSALIYE, IDISIRSALIYE} | daima | BLOKE |
| D05 | cbc:DespatchAdviceTypeCode ∈ {SEVK, MATBUDAN} ve boş değil | daima | BLOKE |
| D06 | MATBUDAN → AdditionalDocumentReference (ID + IssueDate dolu) ≥ 1 | tip=MATBUDAN | BLOKE; DocumentType=MATBU yazılmalı |
| D07 | Shipment/Delivery/Despatch/ActualDespatchDate dolu + YYYY-MM-DD | daima | BLOKE |
| D08 | Shipment/Delivery/Despatch/ActualDespatchTime dolu | daima | BLOKE |
| D09 | Shipment/Delivery/DeliveryAddress/CitySubdivisionName dolu | daima | BLOKE |
| D10 | …/DeliveryAddress/CityName dolu | daima | BLOKE |
| D11 | …/DeliveryAddress/Country/Name dolu | daima | BLOKE |
| D12 | …/DeliveryAddress/PostalZone ~ ^((0[1-9])\|([1-7][0-9])\|(8[0-1]))[0-9]{3}$ | daima | BLOKE |
| D13 | ShipmentStage/DriverPerson veya Delivery/CarrierParty mevcut | daima | BLOKE |
| D14 | DriverPerson varsa FirstName + FamilyName + NationalityID dolu | koşullu | BLOKE |
| D15 | DriverPerson varsa RoadTransport/LicensePlateID (geçerli schemeID + boş değil) mevcut | koşullu | BLOKE |
| D16 | LicensePlateID/@schemeID ∈ {PLAKA, YABANCIPLAKA}; PLAKA → ^(0[1-9]\|[1-7][0-9]\|8[01])[A-Z]+[0-9]+$; YABANCIPLAKA → ^[A-Z0-9_-]+$ | eleman varsa | BLOKE. Kaydetmeden önce trim + upper |
| D17 | TransportEquipment/ID/@schemeID ∈ {DORSE, DORSEPLAKA, YABANCIDORSE, YABANCIDORSEPLAKA} + ilgili regex | eleman varsa | BLOKE |
| D18 | Her taraf: tam 1 adet VKN(10) veya TCKN(11); ikisi birden YASAK | Despatch/Delivery/Buyer/Carrier | BLOKE |
| D19 | VKN → PartyName/Name dolu; TCKN → Person/FirstName+FamilyName dolu | koşullu | BLOKE |
| D20 | Tüm PartyIdentification/ID/@schemeID değerleri PartyIdentificationIDType listesinde | daima | BLOKE |
| D21 | Her DespatchLine: cbc:ID dolu ve sayı; DeliveredQuantity dolu ve unitCode dolu-geçerli; Item/Name dolu | daima | BLOKE |
| D22 | HKSIRSALIYE → her kalemde KUNYENO tam 19 karakter | ProfileID=HKS | BLOKE |
| D23 | IDISIRSALIYE → DespatchSupplierParty/Party/PartyIdentification/ID[@schemeID='SEVKIYATNO'] SE-/ES- + 7 rakam, 10 karakter | ProfileID=IDIS | BLOKE |
| D24 | IDISIRSALIYE → her kalemde ≥1 ETIKETNO (2 harf + 7 rakam, 9 karakter) | ProfileID=IDIS | BLOKE |
| D25 | ActualDespatchDate/Time >= IssueDate/IssueTime | tip=SEVK | BLOKE — schematron'da yok, portal yapmalı |
| D26 | MATBUDAN'da D25 uygulanmaz | tip=MATBUDAN | Geçir |
| D27 | Zarf gönderen VKN = DespatchSupplierParty VKN | zarf üretiminde | BLOKE |
| D28 | Zarf alan VKN = DeliveryCustomerParty VKN veya 3900892152 | zarf üretiminde | BLOKE |
| D29 | Zarf tipi = SENDERENVELOPE, ElementType = DESPATCHADVICE, alias = edespatch | daima | BLOKE |
| D30 | Alıcı e-İrsaliye kayıtlı kullanıcı mı (e-Fatura kaydı yetmez) | gönderim öncesi | Değ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) | UX | UYARI |
| D32 | Özel entegratör iletiminde imzalama + GİB'e iletim azami 15 dakika | SLA | UYARI/alarm |
8.2 e-İrsaliye Yanıtı (ReceiptAdvice) — ön doğrulama
| # | Kontrol | Hata |
|---|---|---|
| R01 | cbc:CustomizationID ∈ {TR1.2, TR1.2.1} | BLOKE |
| R02 | cbc:ID uzunluğu tam 16 | BLOKE |
| R03 | cbc:UUID ~ GUID regex | BLOKE |
| R04 | cbc:ReceiptAdviceTypeCode = SEVK (boş bırakılamaz) | BLOKE |
| R05 | cbc:LineCountNumeric dolu (Yanıtta Zorunlu(1)) | BLOKE (kılavuz) |
| R06 | cac:DespatchDocumentReference/cbc:ID = ilgili irsaliyenin ETTN'i (GUID) — belge numarası DEĞİL | BLOKE (schematron denetlemez) |
| R07 | cbc:ProfileID = ilgili irsaliyenin ProfileID'si | UYARI (schematron denetlemez) |
| R08 | Her ReceiptLine: cbc:ID dolu ve sayı; Item/Name dolu | BLOKE |
| R09 | Her ReceiptLine/DespatchLineReference/LineID, irsaliyedeki bir DespatchLine/ID ile eşleşmeli | BLOKE (portal kuralı) |
| R10 | Miktar alanları: ReceivedQuantity, ShortQuantity, RejectedQuantity, OversupplyQuantity negatif olamaz; unitCode irsaliyedekiyle aynı | BLOKE (portal kuralı) |
| R11 | Eksik senaryosu: Received + Short = Delivered | UYARI — korpusta açık kural yok |
| R12 | Fazla senaryosu: Received - Oversupply = Delivered (Received fazlalığı içerir) | UYARI — korpusta açık kural yok |
| R13 | RejectedQuantity > 0 iken RejectReason dolu olmalı | UYARI (portal kuralı) |
| R14 | Aynı irsaliyeye ikinci yanıt üretilmesi engellenmeli | BLOKE |
| R15 | Yanıt penceresi: fiili sevk tarihinden itibaren 7 gün; süre dolduysa gönderim engellenir | BLOKE |
| R16 | Tam RED üretiliyorsa: fiili sevk zamanı geçmişse engelle (sevk sonrası retler hükümsüz) | BLOKE |
| R17 | Tam 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 |
| R18 | Zarf tipi = POSTBOXENVELOPE, ElementType = RECEIPTADVICE | BLOKE |
| R19 | Taraf kuralları (VKN/TCKN + PartyName/Person) yanıtta da geçerlidir | BLOKE |
| R20 | 7 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 |
|---|---|
| F01 | cac:DespatchDocumentReference opsiyoneldir; zorunlu tutma. Kullanılacaksa örneklerde irsaliye NUMARASI yazılıdır |
| F02 | Fatura ö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 |
| F04 | Konsinye: irsaliyeye "konsinye teslim" şerhi cbc:Note ile; fatura süresi konsinyinin sattığı tarihten ve fiilen satılan miktar üzerinden başlar (15.27) |
| F05 | Dökme/tartılamayan malda fatura fiili teslim miktarı baz alınarak düzenlenir (15.35) |
| F06 | Fatura 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ğı |
|---|---|
vkntckn | DespatchSupplierParty/PartyIdentification/ID (schemeID zorunlu) |
avkntckn | Alıcı PartyIdentification/ID (schemeID zorunlu) |
senaryo | ProfileID |
tip | DespatchAdviceTypeCode |
tarih | IssueDate |
no | ID |
ettn | UUID |
sevktarihi | Shipment/Delivery/Despatch/ActualDespatchDate |
sevkzamani | Shipment/Delivery/Despatch/ActualDespatchTime |
tasiyicivkn | Shipment/Delivery/CarrierParty/PartyIdentification/ID |
plaka | Shipment/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ı
| Konu | Kural |
|---|---|
| Ç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.
| # | Konu | Durum |
|---|---|---|
| 1 | TransportEquipmentIDSchemeIDType / TransportEquipmentIDSchemeIDCheck eklenme tarihi | DOĞ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. |
| 2 | DORSE ile DORSEPLAKA (ve YABANCIDORSE ile YABANCIDORSEPLAKA) arasındaki fark | DOĞ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. |
| 3 | e-İrsaliye Yanıtı ile TAM RED'in UBL alan eşlemesi | DOĞ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. |
| 4 | cbc:RejectReasonCode ve cbc:TimingComplaintCode kod listeleri | DOĞRULANAMADI — UBL-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. |
| 6 | Miktar 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. |
| 7 | e-İ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. |
| 8 | e-İrsaliyede karekod zorunluluğunun başlama tarihi | DOĞ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. |
| 9 | 1000/1100 durum kodlarıyla sevke başlama imkânının 31.03.2023 sonrası devam edip etmediği | DOĞ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). |
| 10 | ProfileID=TEMELIRSALIYE iken HKS künyesi yazılıp yazılamayacağı | DOĞRULANAMADI — Schematron buna izin verir; kılavuz 15.26 ProfileID bağını kurmaz. |
| 11 | MATBUDAN tipinde bir e-İrsaliyeye verilecek yanıtın ReceiptAdviceTypeCode değeri | DOĞ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. |
| 13 | Fiili sevk zamanı ≥ düzenleme zamanı kuralının GİB tarafında hangi katmanda denetlendiği | DOĞRULANAMADI — Schematron'da kodlanmamıştır; uygulama seviyesinde denetlenip denetlenmediği yazmaz. Portal kendi kontrolünü yapmalıdır. |
| 14 | Gö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. |
| 15 | DocumentDescriptionType 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. |
| 16 | VUK 231/5'in 31.08.2026 itibarıyla yürürlükteki metni | DOĞ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. |
| 17 | e-İrsaliye hükümlerinin 2024 sonrası değişip değişmediği | 573 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. |
| 18 | e-İrsaliye Uygulaması Başvuru Rehberi | Korpusta yoktur; başvuru adımları doğrulanamaz. |
| 19 | Kod 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
| Konu | Kural |
|---|---|
| Ç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:DespatchAdvice | DespatchAdviceTypeCodeCheck, InvoiceIDCheck, CustomizationIDCheck, ProfileIDTypeDespatchAdvice, DespatchDateCheck, DespatchTimeCheck, DespatchAddressCheck, DespatchCarrierDriverCheck, DespatchAdviceHKSKunyeCheck |
desp:DespatchAdvice/cbc:UUID | UUIDCheck |
desp:DespatchAdvice/cac:DespatchLine | DeliveredQuantityCheck, ItemNameCheck, DespatchLineIdCheck, DespatchIdisEtiketNoCheck |
.../cac:DespatchSupplierParty/cac:Party/cac:PartyIdentification | PartyIdentificationTCKNVKNCheck, DocumentSenderCheck |
.../cac:DeliveryCustomerParty/cac:Party/cac:PartyIdentification | PartyIdentificationTCKNVKNCheck, DocumentReceiverCheck |
.../cac:BuyerCustomerParty/cac:Party/cac:PartyIdentification | PartyIdentificationTCKNVKNCheck |
.../cac:Shipment/cac:Delivery/cac:CarrierParty/cac:PartyIdentification | PartyIdentificationTCKNVKNCheck |
.../cac:Shipment/cac:Delivery/cac:CarrierParty/cac:PartyIdentification/cbc:ID | PartyIdentificationSchemeIDCheck |
.../cac:Shipment/cac:ShipmentStage/cac:TransportMeans/cac:RoadTransport/cbc:LicensePlateID | LicensePlateIDSchemeIDCheck |
.../cac:Shipment/cac:TransportHandlingUnit/cac:TransportEquipment/cbc:ID | TransportEquipmentIDSchemeIDCheck |
.../cac:DespatchSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID | PartyIdentificationSchemeIDCheck |
.../cac:DespatchSupplierParty/cac:Party | PartyIdentificationPartyNamePersonCheck, DespatchIdisSevkiyatNoCheck |
.../cac:DeliveryCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID | PartyIdentificationSchemeIDCheck |
.../cac:DeliveryCustomerParty/cac:Party | PartyIdentificationPartyNamePersonCheck |
desp:DespatchAdvice/cac:Shipment | LicensePlateIDCheck |
<sch:pattern id="receiptadvice">:
| Context | Extend edilen kurallar |
|---|---|
recp:ReceiptAdvice | ReceiptAdviceTypeCodeCheck, ReceiptAdviceIDCheck, CustomizationIDCheck |
recp:ReceiptAdvice/cbc:UUID | UUIDCheck |
recp:ReceiptAdvice/cac:ReceiptLine | ItemNameCheck, DespatchLineIdCheck |
.../cac:DespatchSupplierParty/cac:Party/cac:PartyIdentification | PartyIdentificationTCKNVKNCheck |
.../cac:DeliveryCustomerParty/cac:Party/cac:PartyIdentification | PartyIdentificationTCKNVKNCheck |
.../cac:BuyerCustomerParty/cac:Party/cac:PartyIdentification | PartyIdentificationTCKNVKNCheck |
.../cac:DespatchSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID | PartyIdentificationSchemeIDCheck |
.../cac:DespatchSupplierParty/cac:Party | PartyIdentificationPartyNamePersonCheck |
.../cac:DeliveryCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID | PartyIdentificationSchemeIDCheck |
.../cac:DeliveryCustomerParty/cac:Party | PartyIdentificationPartyNamePersonCheck |
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:
| Kural | Kontrol |
|---|---|
InvoiceIDCheck (İrsaliye ID'sine de uygulanır) | ^[A-Z0-9]{3}20[0-9]{2}[0-9]{9}$ |
CustomizationIDCheck | TR1.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}$ |
ReceiptAdviceIDCheck | uzunluk = 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:
sh:StandardBusinessDocumentHeader— Başlık (Sender / Receiver / DocumentIdentification)ef:Package(şemadaany) — 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):
| Eleman | Durum |
|---|---|
sh:StandardBusinessDocumentHeader | Zorunlu |
ef:Package | Zorunlu |
@xsi:schemaLocation içinde PackageProxy_1_2.xsd | Zorunlu |
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:
| Alan | Kardinalite | Değer |
|---|---|---|
sh:HeaderVersion | Zorunlu (1) | "1.0" |
sh:Sender | Zorunlu (1..∞) | Gönderen bilgileri |
sh:Receiver | Zorunlu (1..∞) | Alıcı bilgileri |
sh:DocumentIdentification | Zorunlu (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>| Kural | Schematron davranışı |
|---|---|
HeaderCheck | HeaderVersion = '1.0' veya '1.2' (Ek-1 sadece 1.0 diyor) |
HeaderCheck | count(sh:Sender) = 1 ve count(sh:Receiver) = 1 → Ek-1 "1..∞" dese de schematron TAM 1 tane dayatıyor |
EmptyCheck | sh:Sender/sh:Identifier ve sh:Receiver/sh:Identifier boş olamaz |
ContactInformationCheck | En az bir sh:ContactInformation olmalı VE ContactTypeIdentifier='VKN_TCKN' olan tam 1 tane bulunmalı |
ContactCheck | sh: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ı
| Alan | Ek-1 (v1.5, Mart 2017) | Schematron (24.08.2026) |
|---|---|---|
sh:Standard | Sabit "UBL-TR" | kontrol edilmiyor |
sh:TypeVersion | UBL 2.0 için "1.0", UBL 2.1 için "1.2" | TypeVersionCheck: koşulsuz = '1.2' |
sh:InstanceIdentifier | Gönderenin ürettiği, uygulama içinde biricik GUID | UUIDCheck: regex zorunlu |
sh:Type | SENDERENVELOPE / POSTBOXENVELOPE / SYSTEMENVELOPE | EnvelopeTypeCheck: 4 değer (USERENVELOPE dahil) |
sh:MultipleType | Farklı türde belge yasak → "False"; izin verilirse "True" | schematron'da hiç kontrol edilmiyor |
sh:CreationDateAndTime | xs: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:
| Hata | Durum kodu |
|---|---|
| XML adı ≠ zarf ID | 1133 ZARF ID VE XML DOSYASININ ADI AYNI OLMALI |
| ZIP adı ≠ zarf ID | 1142 ZARF ID VE ZIP DOSYASI ADI AYNI OLMALI |
| ID uzunluğu hatalı | 1111 ZARF ID UZUNLUGU GECERSIZ |
| ZIP birden fazla dosya içeriyor | 1131 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,'"/>| # | EnvelopeType | Ne zaman kullanılır |
|---|---|---|
| 1 | SENDERENVELOPE | Gönderici Birim → Merkez → Posta Kutusu yönünde giden asıl belge zarfı (Fatura, İrsaliye, CreditNote) |
| 2 | POSTBOXENVELOPE | Posta Kutusu → Merkez → Gönderici Birim yönünde giden yanıt zarfı (Uygulama Yanıtı, İrsaliye Yanıtı) |
| 3 | SYSTEMENVELOPE | Zarfın işlenme durumunu bildiren Sistem Yanıtı zarfı (her iki yönde, Merkez dahil) |
| 4 | USERENVELOPE | Sadece ö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,'"/>| # | ElementType | ElementList içindeki XML kökü | Namespace |
|---|---|---|---|
| 1 | INVOICE | inv:Invoice | urn:oasis:names:specification:ubl:schema:xsd:Invoice-2 |
| 2 | APPLICATIONRESPONSE | apr:ApplicationResponse | ...:ApplicationResponse-2 |
| 3 | PROCESSUSERACCOUNT | hr:ProcessUserAccount | http://www.hr-xml.org/3 |
| 4 | CANCELUSERACCOUNT | hr:CancelUserAccount | http://www.hr-xml.org/3 |
| 5 | DESPATCHADVICE | desp:DespatchAdvice | ...:DespatchAdvice-2 |
| 6 | RECEIPTADVICE | recp:ReceiptAdvice | ...:ReceiptAdvice-2 |
| 7 | CREDITNOTE | (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 ElementType | Ek kısıt |
|---|---|---|
| SENDERENVELOPE | INVOICE, DESPATCHADVICE, CREDITNOTE | — |
| POSTBOXENVELOPE | APPLICATIONRESPONSE, RECEIPTADVICE | cbc:ResponseCode sadece RED / KABUL / IADE / GUMRUKONAY |
| SYSTEMENVELOPE | APPLICATIONRESPONSE (Sistem Yanıtı) | cbc:ResponseCode sadece AppResponseCodeType listesinden |
| USERENVELOPE | PROCESSUSERACCOUNT veya CANCELUSERACCOUNT | Alı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Ü |
|---|---|
| SENDERENVELOPE | FATURA (INVOICE), IRSALIYE (DESPATCHADVICE) |
| POSTBOXENVELOPE | UYGULAMA YANITI (BAPR), IRSALIYEYANITI (RECEIPTADVICE) |
| SYSTEMENVELOPE | SİSTEM YANITI (SAPR) |
| USERENVELOPE | KULLANICI HESABI AÇMA (PUA) |
| USERENVELOPE | KULLANICI 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, erreceiptReservedAliases — 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, erreceiptFark: 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ır | Hata mesajı |
|---|---|---|
ElementsGroupCountCheck | ef:Package içinde en fazla 10 Elements elemanı | "ef:Package elemanı içerisinde en fazla 10 tane Elements elemanı olabilir." |
ElementCountCheck | ElementCount değeri en fazla 1000 | "ElementCount elemanın değeri en fazla 1000 olabilir.." |
ElementListCountCheck | count(ElementList/*) = ElementCount (birebir eşit) | — |
InvoiceCountCheck | ElementType='INVOICE' ise inv:Invoice sayısı < 101 (max 100) | "…100'den fazla olamaz." |
ExportInvoiceCountCheck | ProfileID='IHRACAT' olan sadece 1 fatura | — |
ExportInvoiceCountCheck | ProfileID='YOLCUBERABERFATURA' olan sadece 1 fatura | — |
ElementNameCheck | Her ElementType için ilgili kök eleman sayısı = ElementCount | — |
UserAccountCountCheck | Gö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ış):
| Prefix | URI |
|---|---|
sh | http://www.unece.org/cefact/namespaces/StandardBusinessDocumentHeader |
ef | http://www.efatura.gov.tr/package-namespace |
hr | http://www.hr-xml.org/3 |
oa | http://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ım | Kim → Kim | Zarf Türü |
|---|---|---|
| 1 | Gönderici Birim → Merkez (FATURA) | SENDERENVELOPE |
| 2 | Merkez → Gönderici Birim (Sistem Yanıtı) | SYSTEMENVELOPE |
| 3 | Merkez → Posta Kutusu (1. adımdaki zarf AYNEN) | SENDERENVELOPE |
| 4 | Posta Kutusu → Merkez (Sistem Yanıtı) | SYSTEMENVELOPE |
| 5 | Merkez → Gönderici Birim (AYNEN iletir) | SYSTEMENVELOPE |
TİCARİ FATURA SENARYOSU (temel senaryoya EK adımlar):
| Adım | Kim → Kim | Zarf Türü |
|---|---|---|
| 1 | Posta Kutusu → Merkez (UYGULAMA YANITI) | POSTBOXENVELOPE |
| 2 | Merkez → Posta Kutusu (Sistem Yanıtı) | SYSTEMENVELOPE |
| 3 | Merkez → Gönderici Birim (AYNEN) | POSTBOXENVELOPE |
| 4 | Gönderici Birim → Merkez (Sistem Yanıtı) | SYSTEMENVELOPE |
| 5 | Merkez → 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.
| Kod | Durum Açıklaması | Sınıf |
|---|---|---|
| 1000 | ZARF KUYRUGA EKLENDI | Ara durum (bilgi) |
| 1100 | ZARF ISLENIYOR | Ara durum (bilgi) |
| 1110 | ZIP DOSYASI DEGIL | HATA |
| 1111 | ZARF ID UZUNLUGU GECERSIZ | HATA |
| 1120 | ZARF ARSIVDEN_KOPYALANAMADI | HATA |
| 1130 | ZIP ACILAMADI | HATA |
| 1131 | ZIP BIR DOSYA ICERMELI | HATA |
| 1132 | XML DOSYASI DEGIL | HATA |
| 1133 | ZARF ID VE XML DOSYASININ ADI AYNI OLMALI | HATA |
| 1140 | DOKUMAN AYRISTIRILAMADI | HATA |
| 1141 | ZARF ID YOK | HATA |
| 1142 | ZARF ID VE ZIP DOSYASI ADI AYNI OLMALI | HATA |
| 1143 | GECERSIZ VERSIYON | HATA |
| 1150 | SCHEMATRON KONTROL SONUCU HATALI | HATA |
| 1160 | XML SEMA KONTROLUNDEN GECEMEDI | HATA |
| 1161 | IMZA SAHIBI TCKN VKN ALINAMADI | HATA |
| 1162 | IMZA KAYDEDILEMEDI | HATA |
| 1163 | GONDERILEN ZARF SISTEMDE DAHA ONCE KAYITLI OLAN BIR FATURAYI ICERMEKTEDIR. | HATA (mükerrer) |
| 1164 | GONDERILEN ZARF SISTEMDE DAHA ONCE KAYITLI OLAN BIR BELGEYİ ICERMEKTEDIR. | HATA (mükerrer) |
| 1170 | YETKI KONTROL EDILEMEDI | HATA |
| 1171 | GONDERICI BIRIM YETKISI YOK | HATA |
| 1172 | POSTA KUTUSU YETKISI YOK | HATA |
| 1175 | IMZA YETKISI KONTROL EDILEMEDI | HATA |
| 1176 | IMZA SAHIBI YETKISIZ | HATA |
| 1177 | GEÇERSİZ İMZA | HATA |
| 1180 | ADRES KONTROL EDILEMEDI | HATA |
| 1181 | ADRES BULUNAMADI | HATA |
| 1182 | KULLANICI EKLENEMEDİ | HATA (USERENVELOPE) |
| 1183 | KULLANICI SİLENEMEDİ | HATA (USERENVELOPE) |
| 1190 | SISTEM YANITI HAZIRLANAMADI | HATA |
| 1195 | SISTEM HATASI | HATA |
| 1200 | ZARF BASARIYLA ISLENDI | BAŞARI (yerel işleme) |
| 1210 | DOKUMAN BULUNAN ADRESE GONDERILEMEDI | HATA (iletim, tekrar denenir) |
| 1215 | DOKUMAN GONDERIMI BASARISIZ. TERKAR GONDERME SONLANDI | HATA (nihai) |
| 1220 | HEDEFTEN SISTEM YANITI GELMEDI | Ara durum (beklemede) |
| 1230 | HEDEFTEN SISTEM YANITI BASARISIZ GELDI | HATA (nihai) |
| 1235 | FATURA IPTAL'E KONU EDILDI | Bilgi |
| 1300 | BASARIYLA TAMAMLANDI | BAŞ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ırma | Kodlar |
|---|---|
| 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 da1150/1160/1177/1181gibi 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):
1000 ZARF KUYRUGA EKLENDI1100 ZARF ISLENIYOR- Şema/schematron hatası → 1100–1200 arası ilgili hata kodu → Gönderici Birim'e sistem yanıtı → bir sonraki aşamaya geçilmez
- 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. - Merkez → Posta Kutusu iletimi başarılıysa →
1220 HEDEFTEN SISTEM YANITI GELMEDI(PK yanıtı gelene kadar) - İ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):
| Senaryo | Sonuç |
|---|---|
1215 alındıktan SONRA | O zarftaki faturalar aynı Fatura ID'siyle tekrar gönderilebilir |
1215 alınmadan ÖNCE aynı faturayı yeni zarfla göndermeye kalkmak | 1163 GONDERILEN ZARF SISTEMDE DAHA ONCE KAYITLI OLAN BIR FATURAYI ICERMEKTEDIR |
1220 durumundaki zarftaki bir faturayı tekrar göndermek | 1163 |
1230 alındıktan sonra | Faturalar aynı Fatura ID'siyle tekrar gönderilebilir |
Nihai durumlar:
- PK'den
1200gelirse → 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| Metot | Amaç | Girdi | Çıktı |
|---|---|---|---|
| sendDocument | Zarf gönderme | DocumentRequest → DocumentType: binaryData (Base64Binary, ZIP), fileName (zarfID.zip), hash (MD5, 32 karakter) | DocumentResponse → DocumentReturnType: hash (servisin kendi hesapladığı), msg |
| getApplicationResponse | Zarf durumu sorgulama (senkron) | GetAppRespRequest → GetAppRespRequestType: instanceIdentifier (Zarf ID) | GetAppRespResponse → GetAppRespResponseType: 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 Kodu | Hata Açıklaması |
|---|---|
| 2000 | OZET DEGERLER ESIT DEGIL |
| 2001 | ZARF ID SISTEMDE MEVCUT |
| 2002 | ZARF ARSIVE EKLENEMEDI |
| 2003 | ZARF KUYRUGA EKLENEMEDI |
| 2004 | ZARF ID BULUNAMADI |
| 2005 | SISTEM HATASI |
| 2006 | GECERSIZ ZARF ADI |
| 2007 | PAKET 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ı
| Konu | Kural |
|---|---|
| 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 dosya | MTOM (Message Transmission Optimization Mechanism), ikili veri için XOP |
| Birlikte çalışabilirlik | WS-I ve WS-I Basic Profile |
| Taşıma | HTTPS + SSL. İstemci, sunucunun kimliğini doğrular. |
| SSL sertifikası | Verisign, GlobalSign gibi güvenilir sağlayıcılardan alınmalı |
| IP | Entegre birimler Statik IP üzerinden tanımlanır; Statik IP Türkiye'ye ait IP aralığında olacaktır |
| Yurt dışı IP | Bilgi 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 IP | Grup şirketleri ortaklık belgeleriyle başvurabilir |
| Karakter kodlama | XML dosyaları UTF-8 |
| XSLT | XML 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 | & → & , ' → ' , > → > , < → < , " → " |
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ı listesi | https://merkez.efatura.gov.tr/EFaturaMerkez/userList.jsp |
| Test kullanıcı listesi | https://merkeztest.efatura.gov.tr/EFaturaMerkez/userList.jsp |
| Mevzuat/paket | https://ebelge.gib.gov.tr/ , http://www.efatura.gov.tr/efaturamevzuat.html |
| e-Fatura İptal Portali | https://portal.efatura.gov.tr/FaturaIptal/ |
| e-İrsaliye kayıtlı kullanıcılar | https://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.
| Metot | Girdi | Çıktı / Kural |
|---|---|---|
sendDocumentFile | UUID 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ı |
getBatchStatus | Paket ID | Paketin durumunu döner |
getUserList | XML ya da CSV | Kullanı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ı:
| Kod | Açıklama |
|---|---|
000 | Dosya Kaydedildi |
001 | Gönderici imza yetkisi yok |
002 | Attachment null olamaz |
003 | Paket ID boş olamaz |
004 | Paket daha önceden gönderilmiş |
005 | Paket dosyası boş olamaz |
006 | Dosya bulunamadı + (Açıklama) |
007 | IO Hatası |
008 | Hata |
009 | Dosya ismi 36 + .zip 40 karakter olmalıdır |
010 | Dosya 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öntem | Tanım | Kim için |
|---|---|---|---|
| 1 | GİB Portal Yöntemi | Gİ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öntemi | Başkanlıktan izin almış özel entegratörün bilgi işlem sistemi üzerinden | Faturalama ihtiyaçları farklı olan veya çok fatura kesen, kendi altyapısı yetersiz mükellefler |
| 3 | Doğrudan Entegrasyon Yöntemi | Mükellefin kendi bilgi işlem sisteminin GİB sistemine doğrudan entegresi | Baş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.
GIBbirim 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üre | Entegrasyon ç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:
- Başvuru: e-Fatura Uygulamasına kağıt/elektronik başvuru kılavuzuna göre Başkanlığa başvuru.
- Mali sertifika + şifre teslimi.
- "Bilgi İşlem Sistem (BİS) Raporu" + "Test Tanım Formu" →
www.efatura.gov.tr→ Entegrasyon İş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.
- Test hesapları Başkanlıkça tanımlanır, e-posta ile bildirilir.
- "e-Fatura Test Planı" na göre entegrasyon testleri yapılır.
- Test başarılıysa test hesapları kapatılır ve "Canlı Tanım Formu" doldurulur.
- 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üm | Değ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:
| Konu | Zorunluluk |
|---|---|
| Süreç yönetimi | Sistem yönetim süreçleri ITIL uyumlu, sistem ITIL sertifikalı personel tarafından yönetilmeli |
| Mali mühür | TÜBİTAK-BİLGEM Kamu SM'den "Mali Mühür Uyum Değerlendirme Raporu" alınması zorunlu |
| Başvuru ekleri | ISO 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üresi | Sistem 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 sebepleri | Tü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 |
| Saklama | e-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):
| Kural | Değer |
|---|---|
| Boş olamaz | string-length(...) > 0 |
| Maks. uzunluk | 250 karakter |
| Yasaklı liste | ReservedAliases 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ör | GB 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:
| Hizmet | Etiket (sabit değer) |
|---|---|
| Yeni Kullanıcı Ekleme (e-Fatura) | usergb |
| e-Fatura Saklama Hizmeti | archive |
| e-Arşiv Hizmeti | earchive |
| e-Arşiv Arşiv Hizmeti | archive_earchive |
| e-Bilet Hizmeti | eticket |
| e-İrsaliye Hizmeti | edespatch |
| e-İrsaliye Arşiv Hizmeti | archive_edespatch |
| e-Serbest Meslek Makbuzu Hizmeti | esevoucher |
| e-Müstahsil Makbuzu Hizmeti | epreceipt |
| Mali Rapor Bildirim Hizmeti | erevenue |
| e-Serbest Meslek Makbuzu Arşiv Hizmeti | esevoucher_archive |
| e-Müstahsil Makbuzu Arşiv Hizmeti | epreceipt_archive |
| e-Dekont Hizmeti | ebreceipt |
| e-Döviz Hizmeti | eexchangecert |
| e-Adisyon Hizmeti | echeck |
| e-Sigorta Komisyon Gider Belgesi Hizmeti | einsurancecomm |
| e-Gider Pusulası Hizmeti | erreceipt (v1.14 ile eklendi) |
Zarfın diğer sabit alanları:
| Alan | Değer |
|---|---|
Sender/ContactInformation/Contact | Özel entegratörün (veya saklamacının) VKN (gerçek kişiyse TCKN) |
Sender/ContactInformation/ContactTypeIdentifier | VKN_TCKN |
Receiver/Identifier | GIB |
Receiver/ContactInformation/Contact | 3900383669 (Başkanlık VKN) |
DocumentIdentification/Standard | UBL-TR |
DocumentIdentification/Type | USERENVELOPE |
Elements/ElementType | PROCESSUSERACCOUNT (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İZMET | KAMU | ÖZEL | VUK 507 KAMU | VUK 507 ÖZEL |
|---|---|---|---|---|
| e-Fatura | 1 | 2 | 3 | 4 |
| Fatura Saklama | 11 | 12 | 13 | 14 |
| e-Arşiv | 21 | 22 | 23 | 24 |
| e-Arşiv Arşiv | 31 | 32 | 33 | 34 |
| e-Bilet | 41 | 42 | 43 | 44 |
| e-İrsaliye | 51 | 52 | 53 | 54 |
| e-İrsaliye Arşiv | 61 | 62 | 63 | 64 |
| e-Serbest Meslek | 71 | 72 | 73 | 74 |
| e-Müstahsil | 81 | 82 | 83 | 84 |
| e-Serbest Meslek Arşiv | 91 | 92 | 93 | 94 |
| e-Müstahsil Arşiv | 101 | 102 | 103 | 104 |
| e-Mali Rapor (Eski Nesil Cihaz) | 111 | 112 | – | – |
| e-Mali Rapor (Yeni Nesil Cihaz) | 121 | 122 | – | – |
| e-Dekont | 131 | 132 | – | – |
| e-Döviz | 141 | 142 | – | – |
| e-Adisyon | 151 | 152 | – | – |
| e-Sigorta Komisyon Gider Belgesi | 161 | 162 | – | – |
| e-Gider Pusulası | 171 | 172 | 173 | 174 |
Schematron etiket ↔ kod eşleşmesi (zorunlu):
| Etiket | İzin verilen UserOptionCode |
|---|---|
usergb | 1, 2, 3, 4 |
archive | 11, 12, 13, 14 |
earchive | 21, 22, 23, 24 |
archive_earchive | 31, 32, 33, 34 |
eticket | 41, 42, 43, 44 |
edespatch | 51, 52, 53, 54 |
archive_edespatch | 61, 62, 63, 64 |
esevoucher | 71, 72, 73, 74 |
epreceipt | 81, 82, 83, 84 |
esevoucher_archive | 91, 92, 93, 94 |
epreceipt_archive | 101, 102, 103, 104 |
erevenue | 111, 112, 121, 122 |
ebreceipt | 131, 132 |
eexchangecert | 141, 142 |
echeck | 151, 152 |
einsurancecomm | 161, 162 |
erreceipt | 171, 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 kodSchematron ek zorunlulukları:
| Kural | Kontrol |
|---|---|
ApplicationAreaCheck | 1 tane oa:Sender ve oa:Signature zorunlu |
OASignatureCheck | İçinde 1 ds:Signature |
CounterSignatureCheck | xades:CounterSignature içinde 1 ds:Signature |
| Çoklu UserAccount | Aynı 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 Birim | GB 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 Kutusu | Aynı 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 İptal | 6.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 kodu | Serbestç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ırlama | 9 karakterlik müteselsil numara, HER YILIN İLK GÜNÜ itibarıyla "1" rakamından başlatılarak kullanılır |
| Tekillik | Mü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:
| Belge | Format |
|---|---|
| ReceiptAdvice (İrsaliye Yanıtı) | ReceiptAdviceIDCheck sadece uzunluk kontrolü: string-length(cbc:ID) = 16 |
| e-Dekont | En 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-Bilet | Hava 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:
- 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ı
ABCbirim kodu hem e-Fatura hem e-Arşiv için kullanılamaz.
- İ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."
GIBbirim 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):
| Kural | Assert |
|---|---|
XadesSignatureCheck | ds:SignedInfo/ds:Reference/ds:Transforms zorunlu; ds:KeyInfo zorunlu; ds:KeyInfo/ds:X509Data zorunlu; ds:Object zorunlu; xades:SigningTime zorunlu; xades:SigningCertificate zorunlu |
XadesSignatureCheckForInvoice | Yukarıdakiler + count(ds:SignedInfo/ds:Reference[@URI = '']) = 1 (tam bir enveloped reference) |
X509DataCheck | ds:X509Certificate zorunlu |
X509SubjectNameCheck | ds:X509SubjectName boşluk olamaz |
SignatureMethodCheck | UBL 2.1 (cbc:UBLVersionID='2.1') ise ds:SignatureMethod/@Algorithm ...xmldsig#rsa-sha1 OLAMAZ → SHA-1 yasak, SHA-256 kullanılmalıdır |
SignatureCheck | cac:Signature/cbc:ID/@schemeID = VKN_TCKN |
SignatoryPartyPartyIdentificationCheck | cac: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:
| Konu | Kural |
|---|---|
| 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ği | Eski unvanlı sertifika geçerliliğini kaybeder; 15 GÜN içinde yeni unvana uygun sertifika başvurusu yapılmalı |
| HSM | Mü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ği | Baş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 |
|---|---|---|
| 1 | 509 — ö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." |
| 2 | 509 — 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." |
| 3 | e-Arşiv Teknik Kılavuzu — e-Arşiv Raporu | Rapor "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):
| Alan | Zorunluluk |
|---|---|
xades:SigningTime | XAdES-BES içinde schematron tarafından zorunlu tutulur |
sh:CreationDateAndTime | Zarf oluşturma anı (xs:dateTime) |
cbc:IssueDate | Schematron TimeCheck: günün tarihinden ileri olamaz ve 01.01.2005'ten önce olamaz |
| e-Fatura düzenleme saati | Dü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.
| # | Eleman | Türkçe | Kardinalite | Değerler |
|---|---|---|---|---|
| 1 | User | Mükellef bilgi alanı | Zorunlu (1..n) | — |
| 2 | Identifier | Kimlik No | Zorunlu (1) | VKN 10 hane / TCKN 11 hane |
| 3 | Title | Unvan / Ad Soyad | Zorunlu (1) | — |
| 4 | Type | Mükellef Tipi | Zorunlu (1) | KAMU veya OZEL |
| 5 | FirstCreationTime | İlk eklenme tarihi | Zorunlu (1) | 2021-03-09T15:36:56 |
| 6 | AccountType | Kullandığı yöntem | Zorunlu (1) | GIBPORTAL, ENTEGRASYON, OZELENTEGRASYON |
| 7 | Documents | Etiket bilgileri | Zorunlu (1) Document / (1..n) Alias | — |
Documents / Document / Alias:
<Document type="Invoice">→ e-Fatura etiketleri<Document type="DespatchAdvice">→ e-İrsaliye etiketleriAlias→Name(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):
- "UserTempLıst'de yer alan mükelleflerin bağlı olduğu özel entegratörlerin,
ClosureDateelemanında yazan tarih/zaman itibarıyla mükellefin TÜM e-Belge hesaplarını KAPATMA YÜKÜMLÜLÜĞÜ bulunmaktadır." - 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. - Yeniden açılma: Hesap tekrar açılırsa mükellefin bilgileri kapanmadan önceki haliyle
UserListiçinde yayımlanır ve özel entegratörün HR-XML kullanıcı açma işlemini TEKRAR YAPMASINA GEREK YOKTUR.
| # | Eleman | Türkçe | Kardinalite | Not |
|---|---|---|---|---|
| 1 | User | Mükellef bilgi alanı | Zorunlu (1..n) | — |
| 2 | Identifier | Kimlik No | Zorunlu (1) | VKN 10 / TCKN 11 |
| 3 | NewIdentifier | Yeni Kimlik No | Zorunlu (1) | Nevi değişikliği, bölünme, birleşme vb. |
| 4 | ClosureDate | Hesapların sonlandırıldığı tarih | Zorunlu (1) | Örn. 20260326 (YYYYAAGG) |
| 5 | Status | Durum | Zorunlu (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." |
| 6 | RegistrationCode | Sonlandırılma kodu | Zorunlu (1) | Sicil durum kodu (örn. 861) |
| 7 | RegistrationDescription | Sonlandırılma gerekçesi | Zorunlu (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 |
|---|---|
| Esas | Mü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" |
| İzin | Baş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ın | Saklama izni alanların listesi ebelge.gib.gov.tr'de yayımlanır |
| Kapsam genişlemesi | Muhafaza 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:
| Olay | Süre |
|---|---|
| Saklama hizmeti başlangıcı bildirimi | Hizmetin başladığı tarihi takip eden 7 İŞ GÜNÜ içinde |
| Saklama süresi bitmeden hizmetin sona ermesi | 3 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:archiveiçin tam 1hr:UserAccount; ayrıcaUserRoleveAuthorizedWorkScopegirilmemelidir.) - 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ı):
| Gereksinim | Süre / İçerik |
|---|---|
| Tüm izleme kayıtları | EN AZ 10 SENE saklanmalı |
| Gönderilen ve alınan HER ZARF | Saklanmalı ve saklandıktan sonra EN AZ 10 SENE muhafaza edilmeli |
| Log içeriği | Log 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) ← TERMINAL15.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 sonu15.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
| İşlem | Süre | Başlangıç | Sistem engelliyor mu? |
|---|---|---|---|
| e-Fatura KABUL/RED/IADE uygulama yanıtı | 8 gün | Faturanın alınması | EVET (posta kutusu engellemeli) |
| e-Fatura iptal talebi oluşturma | 8 gün | Alıcıya iletilme tarihi | EVET (açık hüküm) |
| e-Fatura iptal talebi onaylama | 8 gün | Alıcıya iletilme tarihi | EVET (açık hüküm) |
| e-Fatura itiraz talebi ONAYLAMA | İzleyen ayın 15'i sonu | Faturanın ait olduğu ay | Korpusta engelleme ifadesi YOK |
| e-Arşiv/e-SMM iptal | 8 gün | Belgenin alıcıya iletilme tarihi | Açık engelleme ifadesi YOK |
| e-Arşiv/e-SMM itiraz ONAYLAMA | İzleyen ayın 15'i sonu | Belgenin ait olduğu ay | Korpusta 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 — SARJANLIK | ANLIK | Fatura düzenlenmesi | VUK cezası uygulanır |
| e-İrsaliye yanıtı | 7 gün | Fiili sevk tarihi / irsaliyenin gönderilmesi (çelişkili) | Gönderici birim kabul etmemeli, PK engellemeli |
| ÖE'nin e-İrsaliyeyi GİB'e iletmesi | 15 dakika | ÖE sistemine iletim | Zorunluluk (kılavuz) |
| Fatura düzenleme | 7 gün | Malın teslimi / hizmetin yapılması (VUK 231/5) | — |
| Merkez retry (1210 → 1215) | 4 deneme × 2 saat = 8 saat | 1210 durum kodu | Otomatik |
| Kapatılan hesabın e-Arşiv Raporu | 24 saat | ClosureDate | ÖE yükümlülüğü |
| Saklama hizmeti başlangıç bildirimi | 7 iş günü | Hizmetin başlaması | Saklama izni iptali riski |
| Saklama hizmeti sona erme bildirimi | 3 gün | Hizmetin sona ermesi | Saklama izni iptali riski |
| Mali mühür unvan değişikliği başvurusu | 15 gün | Unvan değişikliği | Sertifika 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şluk | Durum |
|---|---|---|
| 1 | Zarf 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 |
| 2 | Canlı/test SOAP endpoint URL'leri | sendDocument/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 |
| 3 | WSDL içeriği | EFaturaFaultMessage/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 |
| 4 | 1191 durum kodunun anlamı | Schematron AppResponseCodeType listesinde var; Ek-2 v1.5 durum kodu tablosunda YOK. DOĞRULANAMADI |
| 5 | MultipleType 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 |
| 6 | Hash algoritması güncelliği | Ek-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 |
| 7 | sendDocument 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 |
| 8 | USERENVELOPE 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. |
| 9 | CREDITNOTE 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 |
| 10 | Bİ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 |
| 11 | UserList/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 |
| 12 | RegistrationCode değer listesi | UserTempList'teki sicil durum kodlarının (örnekte 861) tam listesi ve açıklamaları korpusta yoktur. DOĞRULANAMADI |
| 13 | Ek-1 / Ek-2 / Ek-3 güncel sürümleri | Korpustaki 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şki | Durum |
|---|---|---|
| 14 | Ticari faturada UY süresi senaryo kılavuzunda YOK | UBL-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 + TICARIFATURA | Senaryo 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 eksik | Senaryo 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/CustomizationID | Uygulama 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. |
| 18 | ProfileID 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. |
| 19 | e-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" ş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ı yok | e-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 |
| 23 | e-SMM/e-MM iptal gerilimi | 509 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. |
| 24 | Portal form alanı asimetrisi | e-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. |
| 25 | UY zamanlama kontrolü schematron'da yok | Uygulama 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. |
| 26 | 509 SSS'de iade/gider pusulası sorusu yok | 509 Ç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şki | Durum |
|---|---|---|
| 27 | TransportEquipmentIDSchemeIDType History.txt'de YOK | Bu 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. |
| 28 | Dorse/plaka schemeID açıklamaları yok | DORSE, 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 |
| 29 | e-İrsaliye Kılavuzu 1.2 tarihseldir | Korpustaki 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. |
| 30 | UBL-TR irsaliye kılavuzları schematron'u yansıtmıyor | UBL-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. |
| 31 | TAM RED'in UBL karşılığı tanımsız | 509 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 |
| 32 | RejectReasonCode ve TimingComplaintCode kod listeleri yok | Ortak 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şkili | Kı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 |
| 34 | e-İrsaliye için ihtar/itiraz mekanizması yok | Her 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. |
| 35 | VUK 231/5'in güncel metni | Korpustaki 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. |
| 36 | Karekod zorunluluk başlama tarihi | Hem 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 |
| 37 | HKSIRSALIYE seçim kriteri kılavuzda yok | Kı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. |
| 38 | ETIKETNO kod listesinde yok | UBL-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. |
| 39 | MATBUDAN'a verilecek yanıtın tipi | ReceiptAdviceTypeCode 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 |
| 41 | Fiili sevk ≥ düzenleme kuralı schematron'da yok | Kı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. |
| 42 | Miktar aritmetiği denetlenmiyor | DeliveredQuantity 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. |
| 43 | XSLT 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 |
| 44 | E-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 |
| 45 | e-İrsaliye Başvuru Rehberi korpusta yok | E-irsaliyeUygulamasiBasvuruRehberiveKilavuzu_V1.pdf korpusta yoktur; başvuru adımları DOĞRULANAMADI |
| 46 | 573 ve 589'da irsaliye değişikliği yok | Her 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şluk | Durum |
|---|---|---|
| 47 | e-Fatura için zaman damgası düzenlemesi yok | e-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 |
| 48 | e-Fatura Saklama Kılavuzu güncelliği | Korpustaki 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. |
| 49 | Zorunlu 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):
| Liste | Degerler |
|---|---|
ProfileIDType (e-Fatura) | TICARIFATURA, TEMELFATURA, YOLCUBERABERFATURA, IHRACAT, OZELFATURA, KAMU, HKS, ENERJI, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS |
ProfileIDTypeEarchive | EARSIVFATURA (tek deger) |
ProfileIDTypeDespatchAdvice | TEMELIRSALIYE, HKSIRSALIYE, IDISIRSALIYE |
ProfileIDTypeGoruntuleme | Yukaridakiler + EARSIVFATURA (yalnizca goruntuleme icin) |
InvoiceTypeCodeList | SATIS, IADE, TEVKIFAT, TEVKIFATIADE, ISTISNA, OZELMATRAH, IHRACKAYITLI, SGK, KOMISYONCU, HKSSATIS, HKSKOMISYONCU, KONAKLAMAVERGISI, SARJ, SARJANLIK, TEKNOLOJIDESTEK, YTBSATIS, YTBIADE, YTBISTISNA, YTBTEVKIFAT, YTBTEVKIFATIADE |
ResponseCodeType | KABUL, RED, IADE, S_APR, GUMRUKONAY |
AdditionalItemIdentificationIDType | KUNYENO, ILAC, TIBBICIHAZ, TELEFON, TABLET_PC, DIGER |
AccountingCostCodeList | SAGLIK_ECZ, SAGLIK_HAS, SAGLIK_OPT, SAGLIK_MED, ABONELIK, MAL_HIZMET, DIGER |
IhracKayitliPartyIdentificationIDType | SATICIDIBSATIRKOD, ALICIDIBSATIRKOD |
YatirimTesvikEArsivInvoiceTypeCodeList | YTBSATIS, YTBIADE, YTBISTISNA, YTBTEVKIFAT, YTBTEVKIFATIADE |
YatirimTesvikItemClassificationCodeList | 01, 02, 03, 04 |
YatirimTesvikTaxExemptionReasonCodeType | 308, 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):
| ProfileID | Izinli InvoiceTypeCode | Zorlayan assert | IADE? |
|---|---|---|---|
| TEMELFATURA | Kisit yok (liste icinden herhangi biri) | InvoiceTypeCodeCheck #1 | Evet |
| TICARIFATURA | Kisit yok | InvoiceTypeCodeCheck #1 | HAYIR |
| EARSIVFATURA | Kisit yok + TEKNOLOJIDESTEK ve YTB* buraya ozgu | InvoiceTypeCodeCheck #1,#4 | Evet |
| KAMU | Kisit yok | InvoiceTypeCodeCheck #2 | Evet |
| HKS | Kisit yok (schematron duzeyinde bag YOK) | — | HAYIR |
| IHRACAT | Kisit yok | — | HAYIR |
| YOLCUBERABERFATURA | Kisit yok | — | HAYIR |
| OZELFATURA | Kisit yok | — | HAYIR |
| ILAC_TIBBICIHAZ | SATIS, ISTISNA, TEVKIFAT, TEVKIFATIADE, IADE, IHRACKAYITLI | IlacTibbiCihazInvoiceTypeCodeCheck | Evet |
| YATIRIMTESVIK | SATIS, ISTISNA, IADE, TEVKIFAT, TEVKIFATIADE | YatirimTesvikInvoiceTypeCodeCheck | Evet |
| IDIS | SATIS, ISTISNA, IADE, TEVKIFAT, TEVKIFATIADE, IHRACKAYITLI | IdisInvoiceTypeCodeCheck | Evet |
| ENERJI | Sadece SARJ, SARJANLIK | InvoiceTypeCodeCheck #3 | Hayir |
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:
- 555 yalnizca ProfileID = TEMELFATURA / TICARIFATURA / EARSIVFATURA iken ve InvoiceTypeCode ISTISNA degilken, IHRACKAYITLI degilken, (EARSIVFATURA'da) YTB ile baslamiyorken kullanilabilir. Yani
TEMELFATURA + SATISgecerli,TEMELFATURA + ISTISNAreddedilir. Bu bolumdeki tum ozel senaryolarda (KAMU, HKS, IHRACAT, YOLCUBERABERFATURA, OZELFATURA, ENERJI, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS) 555 kullanilamaz. - 555 kullanildiginda KDV 0 gecilemez (ne satir ne fatura bazinda
TaxTypeCode='0015'icinPercent=0veyaTaxAmount=0olan 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->KamuFaturaCheckIBAN zorunlulugu devreye girer.
Izinli kombinasyon. ProfileID = KAMU (veya kilavuza gore TEMELFATURA) x InvoiceTypeCode: kisit yok; IADE acikca izinlidir.
Ek zorunlu UBL alanlari:
| Alan | UBL yolu | Kural | Zorlayan mekanizma |
|---|---|---|---|
| Odemenin yapilacagi IBAN | /Invoice/cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID | Regex ^TR\d{7}[A-Z0-9]{17}$ (26 karakter) | KamuFaturaCheck (yalnizca ProfileID=KAMU iken) |
| IBAN para birimi | /Invoice/cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:CurrencyCode | Zorunlu, bos olamaz (or. TRY) | Sadece kilavuz — schematron karsiligi YOK |
| Odeme notu | /Invoice/cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:PaymentNote | Kilavuz orneginde var | Yok |
| 2. VKN (harcama birimi) | /Invoice/cac:BuyerCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID[@schemeID='VKN'] | Tam 1 adet, 10 haneli sayi | Sadece kilavuz — schematron karsiligi YOK |
Iki VKN alani hangi durumda ne yazilir (Kilavuz Tablo-1):
| Idare tipi | 1. VKN (AccountingCustomerParty) | 2. VKN (BuyerCustomerParty) |
|---|---|---|
| Genel butceli — sozlesmeyi imzalayan = hizmetten faydalanan | Ayni birim VKN | Ayni birim VKN |
| Genel butceli — farkli | Sozlesmeyi imzalayan birim (or. ilce MEM) | Hizmetten faydalanan birim (or. okul) |
| Ozel butceli / duzenleyici-denetleyici | KDV mukellefiyetine tabi VKN (or. Strateji Gelistirme Bsk.) | Hizmetten faydalanan + odemeyi yapan birim (or. Muhendislik Fak.) |
| Doner sermaye — tek VKN mukellefiyeti | KDV mukellefiyetine tabi VKN | Odemeyi gerceklestirecek isletme VKN |
| Doner sermaye — isletme bazinda mukellefiyet | Isletme VKN | Zorunlu 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:
| # | Izin | Kim |
|---|---|---|
| 1 | e-Fatura mukellefi kamu idareleri adina e-Arsiv ya da KAGIT fatura duzenlenebilir (kilavuzdaki gelistirmeler tamamlanana kadar) | Ozel entegratorler ve entegrasyon yontemi kullananlar |
| 2 | Mukellefler adina (e-fatura mukellefi olsun olmasin) kagit ortaminda fatura duzenlemeye devam edilebilir | e-Fatura duzenleyici kamu idareleri |
| 3 | 509 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:
| Bilgi | UBL yolu | Kural | Zorlayan mekanizma |
|---|---|---|---|
| Ilave Fatura Tipi | /Invoice/cbc:AccountingCost (Secimli 0..1) | AccountingCostCodeList icinden bir kod | Yok (AccountingCostCheck 02.10.2017'de silindi) |
| Mukellef Kodu / Mukellef Adi / Dosya No / Donem | DOĞRULANAMADI — UBL eslesmesi korpusta yok | SGK ozel format kontrolu | SGK tarafi (GIB degil) |
Dort fatura grubu ve AccountingCost kodlari:
| Grup | AccountingCost | Mukellef Kodu | Mukellef Adi | Dosya No | Donem |
|---|---|---|---|---|---|
| Hastane | SAGLIK_HAS | Saglik Tesis Kodu | Saglik Tesisi Adi | Evrak Referans No (MEDULA) | Yil-Ay-Gun |
| Eczane | SAGLIK_ECZ | Eczane Sicil Numarasi | Eczane Adi | Evrak No | Yil-Ay-Gun |
| Optik | SAGLIK_OPT | Optisyenlik Muessesesi Tesis Kodu | Optisyenlik Muessesesi Adi | Evrak No | Yil-Ay-Gun |
| Medikal | SAGLIK_MED | Satis Merkezi Kodu | Satis Merkezi Adi | Evrak No | Yil-Ay-Gun |
| Abonelik (elektrik, telefon, internet, TV, dogalgaz) | ABONELIK | — | — | Abone No | Yil-Ay-Gun |
| Mal/Hizmet Alimi | MAL_HIZMET | — | — | Harcama Referans No, yoksa Harcama Birim No | — |
| Diger | DIGER | — | — | — | — |
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):
| Kural | SGK'ya taninan ayricalik |
|---|---|
GeneralWithholdingTaxTotalCheck | cac:WithholdingTaxTotal icerebilir (TEVKIFAT, YTBTEVKIFAT, IADE, YTBIADE, SGK, SARJ, SARJANLIK). TaxTypeCode=4171 icin izinli tipler: TEVKIFAT, IADE, SGK, YTBIADE |
TaxExemptionReasonCodeCheck | Istisna 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:
| Belge | Gecis | Yeni ise baslayanlar |
|---|---|---|
| e-Fatura (509 V.7'nin ilgili bendi) | 1/1/2020 | Ise baslama tarihinden itibaren 3 ay icinde |
| e-Irsaliye (509 IV.3.6) | 1/1/2020 | Sartlarin saglandigi ayi izleyen dorduncu ayin basindan |
Izinli kombinasyon. ProfileID='HKS' (fatura) / ProfileID='HKSIRSALIYE' (irsaliye). InvoiceTypeCode kisiti YOKTUR — HKS + 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:
| Alan | UBL yolu | Kural | Zorlayan 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 satirlar | DespatchAdviceHKSKunyeCheck |
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):
| Durum | Belge | Senaryo / Tip |
|---|---|---|
| e-Fatura kayitli + mal ihracati + GCB ekinde | e-Fatura zorunlu | IHRACAT |
| e-Fatura/e-Arsiv'e kayitli olmayan, fatura >= 30 bin TL | GIB e-Belge Portali uzerinden e-Arsiv Fatura | EARSIVFATURA |
| Hizmet ihracati (e-Fatura kullanicisi olsa bile) | e-Arsiv Fatura | EARSIVFATURA |
| Hizmet ihracati, alici serbest bolgede bir e-Fatura kullanicisi | e-Fatura | Temel/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):
| Senaryo | Etiket |
|---|---|
| IHRACAT | urn:mail:ihracatpk@gtb.gov.tr |
| YOLCUBERABERFATURA | urn: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:
| Kosul | Sart |
|---|---|
receiverAlias = urn:mail:yolcuberaberpk@gtb.gov.tr | ProfileID = YOLCUBERABERFATURA |
receiverAlias = urn:mail:ihracatpk@gtb.gov.tr | ProfileID = IHRACAT veya OZELFATURA |
| ProfileID = YOLCUBERABERFATURA | BuyerCustomerParty'de schemeID='PARTYTYPE', deger TAXFREE |
| ProfileID = IHRACAT | BuyerCustomerParty'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):
| # | Durum | Yanit |
|---|---|---|
| 1 | Tum kalemler cikti, GCB kapandi | KABUL |
| 2 | Kismi cikis, kalani cikacak | Tum kalemler ciktiktan sonra KABUL |
| 3 | Hicbiri GCB'ye konu edilmedi | RED — mukellef yeni fatura duzenler |
| 4 | Kismi kabul / kismi vazgecme | IADE (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 |
| 5 | GCB'de faturadan fazla kalem | Mevcut 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):
| Alan | UBL yolu | Kural | Zorlayan assert |
|---|---|---|---|
| GTIP | InvoiceLine/cac:Delivery/cac:Shipment/cac:GoodsItem/cbc:RequiredCustomsID | Her satirda zorunlu, bos olamaz | LineDeliveryCheck |
| INCOTERMS | cac:Delivery/cac:DeliveryTerms/cbc:ID[@schemeID='INCOTERMS'] | Satirda yoksa fatura basliginda olmali; DeliveryTermCodeList icinden | LineDeliveryCheck, DeliveryCodeCheck |
| Teslim adresi | cac:Delivery/cac:DeliveryAddress | Fatura veya satirdan en az birinde | LineDeliveryCheck |
| Tasima sekli | cac:Delivery/cac:Shipment/cac:ShipmentStage/cbc:TransportModeCode | Satirda yoksa faturada (kod 0-9) | LineDeliveryCheck, DeliveryCodeCheck |
| Birim fiyat / satir tutari | InvoiceLine/cac:Price/cbc:PriceAmount, InvoiceLine/cbc:LineExtensionAmount | Dolu olmali | PriceAmountCheck |
| Miktar | InvoiceLine/cbc:InvoicedQuantity | Dolu olmali | PackageCheck |
| Satici vergi dairesi | cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cac:TaxScheme/cbc:Name | Dolu olmali | PartyVDCheck |
| Yabanci alici unvani | cac:BuyerCustomerParty/cac:Party/cac:PartyLegalEntity/cbc:RegistrationName | Dolu olmali | OfficelTitleCheck |
| 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:
| Alan | Uzunluk |
|---|---|
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:
| Alan | IHRACAT | YOLCUBERABERFATURA |
|---|---|---|
| BuyerCustomerParty PARTYTYPE | EXPORT (yabanci firma) | TAXFREE (turist) |
| Zarf receiver | urn:mail:ihracatpk@gtb.gov.tr | urn:mail:yolcuberaberpk@gtb.gov.tr |
| TaxRepresentativeParty | — | ZORUNLU |
| Yanit ResponseCode | KABUL / RED / IADE | GUMRUKONAY |
| GTIP (RequiredCustomsID) | Her satirda zorunlu | Zorunlu degil |
Ek zorunlu UBL alanlari:
| Alan | UBL yolu | Kural | Zorlayan assert |
|---|---|---|---|
| Alici tipi | cac:BuyerCustomerParty/.../cbc:ID[@schemeID='PARTYTYPE'] | Deger TAXFREE | IhracatYolcuBeraberCheck |
| Turist ad/soyad | cac:BuyerCustomerParty/cac:Party/cac:Person/cbc:FirstName, cbc:FamilyName | Zorunlu | Kilavuz |
| Uyruk | cac:BuyerCustomerParty/cac:Party/cac:Person/cbc:NationalityID | ISO 3166-1 alpha-2, CountryCodeList icinden | TaxFreeNationalityIDCheck |
| Pasaport no | ...cac:IdentityDocumentReference/cbc:ID | Zorunlu | PassportIDCheck |
| Pasaport tarihi | ...cac:IdentityDocumentReference/cbc:IssueDate | Zorunlu; yazilamiyorsa sabit 1111-11-11 | Kilavuz |
| Araci kurum VKN | cac:TaxRepresentativeParty/cac:PartyIdentification/cbc:ID[@schemeID='ARACIKURUMVKN'] | Tam 1 adet, 10 veya 11 hane | TaxRepresentativePartyCheck |
| Araci kurum etiketi | cac:TaxRepresentativeParty/cac:PartyIdentification/cbc:ID[@schemeID='ARACIKURUMETIKET'] | Tam 1 adet, bos olamaz | TaxRepresentativePartyCheck |
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:
| Kural | OZELFATURA'nin roli |
|---|---|
IhracatYolcuBeraberCheck | urn: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. |
TaxFreeInvoiceCheck | GTB VKN'sine (1460415308) fatura gonderiminde izinli dort senaryodan biri |
DemirbasKDVTaxExemptionCheck | 555 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.
| Ortam | ProfileID | InvoiceTypeCode |
|---|---|---|
| e-Fatura | YATIRIMTESVIK | SATIS, ISTISNA, IADE, TEVKIFAT, TEVKIFATIADE (YatirimTesvikInvoiceTypeCodeCheck) |
| e-Arsiv | EARSIVFATURA | YTBSATIS, YTBISTISNA, YTBIADE, YTBTEVKIFAT, YTBTEVKIFATIADE |
Harcama tipi (ItemClassificationCode) x fatura tipi matrisi:
| Kod | Harcama tipi | e-Fatura tipleri | e-Arsiv tipleri | KDV 0? | Istisna kodu |
|---|---|---|---|---|---|
| 01 | Makine/techizat teslimleri, yazilim ve gayrimaddi hak satis-kiralamalari | SATIS, ISTISNA, TEVKIFAT | YTBSATIS, YTBISTISNA, YTBTEVKIFAT | Evet — sadece ISTISNA/YTBISTISNA ile | 308 (13/d Tesvikli Yatirim Mallarinin Teslimi) |
| 02 | Insaat islerine iliskin mal teslimleri ve hizmet ifalari | SATIS, ISTISNA, TEVKIFAT | YTBSATIS, YTBISTISNA, YTBTEVKIFAT | Evet — sadece ISTISNA/YTBISTISNA ile | 339 (Imalat Sanayi ile Turizme Yonelik YTB Kapsamindaki Insaat Isleri) |
| 03 | Arsa / arazi satislari | SATIS, TEVKIFAT | YTBSATIS, YTBTEVKIFAT | HAYIR | — |
| 04 | Diger harcamalar | SATIS, TEVKIFAT | YTBSATIS, YTBTEVKIFAT | HAYIR | — |
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:
| Alan | UBL yolu | Kural | Zorlayan assert |
|---|---|---|---|
| YTB numarasi | cac:ContractDocumentReference/cbc:ID[@schemeID='YTBNO'] | ContractDocumentReference tam 1 adet; YTBNO uzunlugu tam 6, tamami rakam | YatirimTesvikContractDocumentReferenceIDCheck |
| YTB tarihi | cac:ContractDocumentReference/cbc:IssueDate | Yatirim Tesvik Belge Tarihi | Ayni kural |
| Harcama tipi | InvoiceLine/cac:Item/cac:CommodityClassification/cbc:ItemClassificationCode | Her satirda en az 1 adet; 01/02/03/04 | YatirimTesvikCommodityClassificationCheck, YatirimTesvikItemClassificationCodeCheck |
| ISTISNA'da harcama tipi | Ayni | Sadece 01 veya 02 | YatirimTesvikItemClassificationCodeIstisnaCheck |
| Vazgecilen KDV isareti | TaxTotal/TaxSubtotal/cbc:CalculationSequenceNumeric | -1; TaxTypeCode='0015' olan en az 1 TaxSubtotal | YatirimTesvikItemClassificationCodeIstisnaCalculationSequenceNumericCheck |
| Makine adi (kod 01) | InvoiceLine/cac:Item/cbc:ModelName | Dolu | YatirimTesvikItemInstanceCheck |
| Makine ID (kod 01) | InvoiceLine/cac:Item/cac:ItemInstance/cbc:SerialID | Dolu | Ayni |
| Makine techizat sira no (kod 01) | InvoiceLine/cac:Item/cac:ItemInstance/cbc:ProductTraceID | Dolu | Ayni |
| KDV | TaxTotal / satir TaxTotal | IADE/TEVKIFATIADE/YTBIADE/YTBTEVKIFATIADE disindaki tum YTB faturalarinda TaxTypeCode='0015' icin TaxAmount>0 ve Percent>0; iade tiplerinde 03/04 harcama tipli her kalemde TaxAmount>0 | YatirimTesvikKDVCheck, YatirimTesvikLineKDVCheck |
| Istisna kodu | TaxCategory/cbc:TaxExemptionReasonCode | 308 -> kod 01, 339 -> kod 02 | YatirimTesvikTaxExemptionReasonCode308Check, ...339Check |
| e-Arsiv rapor | ytbBilgileri | YTB* tipli e-Arsiv faturalarinda raporda zorunlu | earsiv_schematron.xsl |
KILAVUZ/SCHEMATRON CELISKISI: Kilavuz
cac:ContractDocumentReferenceelemanini "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:
| Alan | UBL yolu | Kural | Zorlayan assert |
|---|---|---|---|
| Urun kimligi | InvoiceLine/cac:Item/cac:AdditionalItemIdentification/cbc:ID | Her satirda schemeID'si ILAC, TIBBICIHAZ veya DIGER olan, bos olmayan en az 1 adet | IlacTibbiCihazAdditionalItemIdentificationCheck |
Icerik formatlari:
| schemeID | Format | Ornek |
|---|---|---|
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 |
DIGER | ITS/UTS disi urun veya hizmet ayni faturada gosteriliyorsa; ID = 1111111111 | <cbc:ID schemeID="DIGER">1111111111</cbc:ID> |
DUZELTME:
KUNYENObu 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.
| Belge | ProfileID | InvoiceTypeCode |
|---|---|---|
| Fatura | IDIS | SATIS, ISTISNA, IADE, TEVKIFAT, TEVKIFATIADE, IHRACKAYITLI (IdisInvoiceTypeCodeCheck) |
| e-Irsaliye | IDISIRSALIYE | — |
Ek zorunlu UBL alanlari:
| Alan | UBL yolu | Format | Zorlayan 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 rakam | IdisSevkiyatNoCheck |
| Sevkiyat No (irsaliye) | cac:DespatchSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID[@schemeID='SEVKIYATNO'] | Ayni | DespatchIdisSevkiyatNoCheck |
| 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 adet | IdisEtiketNoCheck |
| Etiket No (irsaliye) | DespatchLine/cac:Item/cac:AdditionalItemIdentification/cbc:ID[@schemeID='ETIKETNO'] | Ayni | DespatchIdisEtiketNoCheck |
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:
ETIKETNOdegeriAdditionalItemIdentificationIDTypelistesinde (KUNYENO, ILAC, TIBBICIHAZ, TELEFON, TABLET_PC, DIGER) yer almaz; buna karsilikSEVKIYATNO,PartyIdentificationIDTypelistesinde vardir. Pratikte sorun cikmaz, cunkuAdditionalItemIdentificationIDTypedegiskeni 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:
| SARJANLIK | SARJ | |
|---|---|---|
| Ne zaman | Teslim aninda (anlik) | Yedi gunde bir (haftalik) |
| e-Fatura ProfileID | ENERJI | ENERJI |
| e-Arsiv ProfileID | EARSIVFATURA | EARSIVFATURA |
ESURaporID | Gerekmez | ZORUNLU (icmal yerine gecer) |
Kalem seri no (ItemInstance/SerialID) | ZORUNLU (sarj unitesi seri no) | Zorunlu degil |
InvoicePeriod | Zorunlu | Zorunlu |
PLAKA | Zorunlu | Zorunlu |
| e-Arsiv raporlama | ANLIK (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):
| Alan | UBL yolu | Kural | Zorlayan assert |
|---|---|---|---|
| Fatura donemi | cac:InvoicePeriod/cbc:StartDate, cbc:StartTime, cbc:EndDate, cbc:EndTime | En az 1 InvoicePeriod; dordu de dolu; tarih yyyy-MM-dd, saat HH:mm:ss; tarih 2005-01-01'den kucuk olamaz | EnerjiInvoicePeriodCheck (SARJ + SARJANLIK) |
| ESU rapor kimligi | cac: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 tarihi | cac:AdditionalDocumentReference/cbc:IssueDate | ^20\d{2}-\d{2}-\d{2}$, gecerli tarih | Ayni |
| Plaka | cac: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 no | InvoiceLine/cac:Item/cac:ItemInstance/cbc:SerialID | Dolu olmali | EnerjiItemInstanceSerialIDCheck (sadece SARJANLIK) |
| Arac kimlik no | ...cbc:ID[@schemeID='ARACKIMLIKNO'] | Secimli | — |
| Miktar/fiyat birimi | InvoicedQuantity/@unitCode, PriceAmount birimi | KWH | Kilavuz |
Not:
EnerjiPartyIdentificationPlakaCheckregex'i il kodu kontrolu yapmaz; e-Irsaliye tarafindakiLicensePlateIDSchemeIDCheckise^(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:
| Alan | UBL yolu | Kural | Zorlayan assert |
|---|---|---|---|
| Senaryo kisiti | cbc:ProfileID | EARSIVFATURA olmali | InvoiceTypeCodeCheck (4. assert) |
| Alici gercek kisi | cac:AccountingCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID/@schemeID | TCKN olmali (tuzel kisiye / VKN'ye kesilemez) | PartyIdentificationTEKNOLOJIDESTEKCheck |
| Cihaz kimligi | InvoiceLine/cac:Item/cac:AdditionalItemIdentification/cbc:ID[@schemeID='TELEFON' or @schemeID='TABLET_PC'] | Tum kalemlerde bulunmali | TeknolojiDestekAdditionalItemIdentificationCheck |
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) veKILAVUZ_WARNING(uyar, gerekirse is kuralina gore engelle).
A. Kilavuzda YAZAN, 24.08.2026 schematron'unda OLMAYAN kurallar
| Kural / alan | Kaynak | Guncel pakette durum | Sonuc (GIB) | Portal davranisi |
|---|---|---|---|---|
PayeeFinancialAccountIDCheck (Kamu IBAN) | Kamu e-Fatura Teknik Kilavuzu v1.5 | Main/Common'da YOK (grep bos); History.txt'de adi hic gecmez | Red yok | IS KURALI zorunlu — HYS odemesi aksi halde takilir |
PayeeFinancialAccountCurrencyCodeCheck | Kamu kilavuzu v1.5 | Main/Common'da YOK | Red yok | IS KURALI zorunlu |
BuyerCustomerPartyCheck (2. VKN, tam 1 adet, 10 hane) | Kamu kilavuzu v1.5 | Main/Common'da YOK | Red yok | IS KURALI zorunlu (Tablo-1 mantigina gore) |
SGKInvoiceCheck (SGK VKN -> SGK/TEVKIFAT tipi) | SGK akisi | Common satir 522-525'te tanimli, Main'de <sch:extends> yok = olu kod (13.12.2017'de silindi) | Red yok | IS KURALI: 7750409379'a SGK/TEVKIFAT disi tip engelle |
AccountingCostCheck (cbc:AccountingCost kod kontrolu) | SGK akisi | Hicbir dosyada yok (02.10.2017'de silindi). AccountingCostCodeList degiskeni Codelist.xml'de duruyor ama hicbir kural kullanmiyor | Red yok | IS KURALI: SGK grubuna gore kodu zorla — SGK reddeder |
| SGK "Mukellef Kodu / Mukellef Adi / Dosya No / Donem" | SGK Uygulama Kilavuzu | Schematron karsiligi yok; UBL eslesmesi de korpusta yok | Red yok | Bkz. Dogrulanamayanlar |
GeneralBillingReferenceCheck | — | Common'da tanimli, Main'de cagrilmiyor (ikinci olu kural) | Red yok | Referans kontrolunu portal yapmali |
IDIS sevkiyat no SE- on eki | IDIS Kilavuzu V1.0 | Schematron ES-'i de kabul ediyor (ters yonlu celiski: schematron daha gevsek) | Her ikisi gecer | Her ikisini kabul et |
YTB ContractDocumentReference "Secimli (0…n)" | Yatirim Tesvik kilavuzu v1.2 | Schematron tam 1 adet zorunlu (ters yonlu: schematron daha sikî) | Red | Zorunlu alan yap |
B. Sadece kod listesinde olup kilavuz karsiligi OLMAYANLAR
| Kod | Bulundugu liste | Korpustaki tek gecis | Schematron kurali | Portal davranisi |
|---|---|---|---|---|
| HKSSATIS | InvoiceTypeCodeList | UBL-TR_Codelist.xml satir 10 — baska hicbir dosyada yok | Yok | Kullanicilara sunma (anlami bilinmiyor); gelen faturada kabul et |
| HKSKOMISYONCU | InvoiceTypeCodeList | UBL-TR_Codelist.xml satir 10 | Yok | Ayni |
| GTB_REFNO | PartyIdentificationIDType | Codelist.xml satir 35 + V1.43 bolum 2.1 ("GTB Belge Referans No") | Hicbir kural kontrol etmez | Alani opsiyonel tut; 23 haneli GTB referansi ile iliskisi dogrulanmamis |
| STDKODFATURA | Yalnizca V1.43 senaryo tablosu (satir 940) | ProfileIDType listesinde YOK — ters durum: kilavuzda var, kod listesinde yok | ProfileIDCheck hata verir | Senaryo listesine ekleme |
| ETIKETNO | AdditionalItemIdentificationIDType listesinde YOK ama schematron kullaniyor | IdisEtiketNoCheck | Kural var, whitelist yok | Sorun cikmaz (whitelist degiskeni hicbir kuralda kullanilmiyor) |
| KONAKLAMAVERGISI | InvoiceTypeCodeList, TaxExemptionReasonCheck muafiyeti | V1.43 tanimi var, ek alan tanimi yok | Tipe ozel kural yok | Ek alan zorlamayin |
| AccountingCostCodeList | Codelist.xml satir 18 | Kod listesi mevcut | Hicbir kural kullanmiyor | SGK is kurali ile zorla |
C. Kuralin hangi XPath baglaminda calistigi (implementasyon haritasi)
| Context | Calisan senaryo kurallari |
|---|---|
inv:Invoice | InvoiceTypeCodeCheck, HKSInvioceCheck, IADEInvioceCheck, IlacTibbiCihazInvoiceTypeCodeCheck, YatirimTesvikInvoiceTypeCodeCheck, YatirimTesvikContractDocumentReferenceIDCheck, IdisInvoiceTypeCodeCheck, EnerjiInvoicePeriodCheck, EnerjiESURaporIDCheck, TaxRepresentativePartyCheck, GeneralWithholdingTaxTotalCheck, DeliveryCodeCheck |
inv:Invoice/cbc:ProfileID | IhracatYolcuBeraberCheck, KamuFaturaCheck |
inv:Invoice/cac:AccountingSupplierParty/cac:Party | PartyVDCheck (IHRACAT), IdisSevkiyatNoCheck |
inv:Invoice/cac:AccountingCustomerParty/cac:Party | EnerjiPartyIdentificationPlakaCheck |
.../cac:AccountingCustomerParty/cac:Party/cac:PartyIdentification | PartyIdentificationTEKNOLOJIDESTEKCheck, TaxFreeInvoiceCheck, DocumentReceiverCheck |
inv:Invoice/cac:BuyerCustomerParty | TaxFreeNationalityIDCheck, PassportIDCheck, OfficelTitleCheck |
inv:Invoice/cac:InvoiceLine | IlacTibbiCihazAdditionalItemIdentificationCheck, TeknolojiDestekAdditionalItemIdentificationCheck, IhracKayitliPartyIdentificationIDTypeCheck, YatirimTesvik* (8 kural), IdisEtiketNoCheck, EnerjiItemInstanceSerialIDCheck, PriceAmountCheck, LineDeliveryCheck, PackageCheck, DeliveryCodeCheck |
inv:Invoice/cac:TaxTotal | YatirimTesvikKDVCheck, DemirbasKDVTaxExemptionCheck |
inv:Invoice/cac:TaxTotal/cac:TaxSubtotal | TaxExemptionReasonCheck |
inv:Invoice/cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory | TaxExemptionReasonCodeCheck |
apr:ApplicationResponse/cac:SenderParty | ARPartyIdentificationGTBCheck |
desp:DespatchAdvice | DespatchAdviceHKSKunyeCheck |
desp:DespatchAdvice/cac:DespatchLine | DespatchIdisEtiketNoCheck |
desp:DespatchAdvice/cac:DespatchSupplierParty/cac:Party | DespatchIdisSevkiyatNoCheck |
inv:Invoice/cac:InvoiceLine baglamindaki 8 YatirimTesvik kurali: CommodityClassificationCheck, ItemClassificationCodeCheck, ItemClassificationCodeIstisnaCheck, ItemClassificationCodeIstisnaCalculationSequenceNumericCheck, TaxExemptionReasonCode308Check, TaxExemptionReasonCode339Check, ItemInstanceCheck, LineKDVCheck.
D. Senaryo kurallarinin yurulukluk takvimi (regresyon testi icin)
| Tarih | Degisiklik |
|---|---|
| 20170413 | AccountingCostCodeList, AccountingCostCheck, SGKInvoiceCheck eklendi |
| 20171002 | AccountingCostCheck silindi |
| 20171213 | SGKInvoiceCheck silindi |
| 20190806 | ProfileIDType guncellendi, KamuFaturaCheck guncellendi |
| 20200402 | HKSInvioceCheck eklendi |
| 20231228 | DespatchAdviceHKSKunyeCheck + ProfileIDTypeDespatchAdvice eklendi; PartyIdentificationIDType, HKSInvioceCheck guncellendi |
| 20250128 | IADEInvioceCheck, AdditionalItemIdentificationIDType, IlacTibbiCihazAdditionalItemIdentificationCheck eklendi |
| 20250428 | TeknolojiDestekAdditionalItemIdentificationCheck, PartyIdentificationTEKNOLOJIDESTEKCheck eklendi |
| 20250905 | IhracKayitliPartyIdentificationIDType eklendi |
| 20251104 | IhracKayitliPartyIdentificationIDTypeheck -> ...IDTypeCheck olarak yeniden adlandirildi |
| 20251209 | 10 adet YatirimTesvik* kurali + YatirimTesvikEArsivInvoiceTypeCodeList + YatirimTesvikItemClassificationCodeList eklendi |
| 20260109 | IdisInvoiceTypeCodeCheck, IdisSevkiyatNoCheck, IdisEtiketNoCheck, DespatchIdisEtiketNoCheck, DespatchIdisSevkiyatNoCheck, YatirimTesvikLineKDVCheck eklendi |
| 20260312 | DemirbasKDVTaxExemptionCheck eklendi (555 kodu) |
| 20260701 | EnerjiInvoicePeriodCheck, 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.
| Konu | Durum |
|---|---|
KAMU: KBS / say2000i kodu, cac:OrderReference siparis referansi, muayene-kabul referansi | DOĞ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 akibeti | DOĞ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 eslesmesi | CIKARIM — 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 tablosu | DOĞ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 anlami | DOĞ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 yazilir | DOĞ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 guncelligi | DOĞ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 kilavuzu | DOĞRULANAMADI — korpusta yoktur. Yalnizca IhracatYolcuBeraberCheck ve TaxFreeInvoiceCheck icinde izinli deger olarak gecer. |
| ENERJI: "Elektrik Sarj Hizmetlerine Iliskin Bildirim Teknik Kilavuzu" ve ESURaporID uretimi | DOĞ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 elemanlari | DOĞRULANAMADI — earsiv_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, raporlama | DOĞ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 anlami | DOĞRULANAMADI — schematron kabul eder, hicbir kilavuz aciklamaz. |
| STDKODFATURA senaryosu | DOĞ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 guvenilirligi | UYARI — 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
| Belge | Zorunlu mu? | Kimin için | Dayanak |
|---|---|---|---|
| e-SMM | ZORUNLU (genel) | Vergiden muaf olmayan TÜM serbest meslek erbabı — ciro/sektör/mükellefiyet türü şartı yok | VUK 236 + 509 IV.4 |
| e-Müstahsil Makbuzu | KOŞ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ılanlar | VUK 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 perakendeciler | VUK 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-Bilet | KOŞ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: ihtiyari | 509 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 belge | 509 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 / kapsam | Son tarih |
|---|---|
| e-SMM — 1/2/2020 itibarıyla faaliyetine devam edenler | 1/6/2020 |
| e-SMM — 1/2/2020 (dâhil) sonrası işe başlayanlar | iş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çenler | e-Fatura'ya geçiş süresi içinde |
| e-Bilet — D1 yetki belgeli şehirlerarası tarifeli taşımacılar | 1/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şletmeleri | 1/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-Dekont | Başkanlıkça belirlenecek süre (en az 3 ay) — belirlenmemiş |
| e-Adisyon | Resmî 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ı.
| Belge | e-Arşiv alt belgesi mi? | e-Fatura kaydı şart mı? | GİB Portal | Rapor / iletim | Rapor süresi |
|---|---|---|---|---|---|
| e-SMM | EVET | HAYIR — tek istisna | VAR | e-Arşiv Raporu → serbestMeslekMakbuz | Günlük, izleyen günün sonu |
| e-MM | EVET | EVET | VAR | e-Arşiv Raporu → mustahsilMakbuz | Günlük, izleyen günün sonu |
| e-Gider Pusulası | EVET | EVET | YOK (yalnızca ÖE) | e-Arşiv Raporu (kılavuz emrediyor) | Günlük, izleyen günün sonu — ÇIKARIM |
| e-Adisyon | EVET | EVET + e-Arşiv Fatura da | YOK (ÖE veya Doğrudan Entegrasyon) | e-Arşiv Raporu → adisyon | Günlük, izleyen günün sonu |
| e-Dekont | EVET | Başvuru Kılavuzu V1.8 e-Fatura kaydı ister (509 IV.11.2'de sayılmamış) | YOK (2 yöntem) | e-Arşiv Raporu → bankReceipt | Günlük, izleyen günün sonu |
| e-Döviz / Kıymetli Maden | Başvuru/test yönüyle EVET | EVET | YOK | Belge, 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ğildir | DOĞRULANAMADI |
| e-Sigorta Komisyon Gider Belgesi | EVET (başvuru yönüyle) | EVET | YOK | Korpusta 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çesi | KISMEN AYRILIR — e-Arşiv Raporu üretir ama Başvuru Kılavuzu V1.8 listesinde yoktur | EVET | YOK | e-Arşiv Raporu hazırlanır + XADES-A ile imzalanır + saklanır, Başkanlık sistemine YÜKLENMEZ | Yükleme yok |
| e-Bilet | HAYIR — BAĞIMSIZ UYGULAMA (kendi paketi, kendi XSD'si, kendi web servisi) | EVET (Türkiye'de tam mükellef olmayan havayolu firmaları hariç) | YOK | e-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:
| Kapsam | Standart |
|---|---|
| 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ıyorsa | PADES |
| e-Bilet Raporu paketi | asgari 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.
| # | Belge | 509 bendi | Karekod Kılavuzunda alan tanımı var mı? |
|---|---|---|---|
| 1 | e-Fatura | IV.1.3 | VAR (2.1) — ayrıca 2.1.1 Yolcu Beraber Eşya senaryosu |
| 2 | e-Arşiv Fatura | IV.2.3 | VAR (2.2) |
| 3 | e-İrsaliye | IV.3.3 | VAR (2.3) |
| 4 | e-SMM | IV.4.3 (d) | VAR (2.4) |
| 5 | e-Müstahsil Makbuzu | IV.5.3 | VAR (2.5) |
| 6 | e-Sigorta Komisyon Gider Belgesi | IV.8.3 | VAR (2.6) |
| 7 | e-Döviz ve Kıymetli Maden Alım-Satım Belgesi | IV.10.3 | VAR (2.7) |
| 8 | e-Adisyon | IV.12.3 | VAR (2.8) |
| — | e-Gider Pusulası | IV.6.3 (d) — karekod ZORUNLU bilgi | YOK (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 bilgi | YOK |
| — | e-Sigorta Poliçesi | IV.9.3 — ZORUNLU bilgi | YOK |
| — | e-Dekont | IV.11.3 — ZORUNLU bilgi | YOK |
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 |
| Zorunluluk | ZORUNLU — 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 |
| Kapsam | Serbest 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üm | Mü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 |
| Raporlama | e-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 |
| İptal | e-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 |
|---|---|
| a | Serbest meslek erbabının adı, soyadı, vergi dairesi, VKN veya TCKN'si, adresi |
| b | Müşterinin adı, soyadı veya unvanı, adresi, vergi mükellefi ise vergi dairesi, VKN veya TCKN'si |
| c | Belgenin 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) |
| d | Karekod 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):
| Bilgi | Karekod alanı | Açıklama |
|---|---|---|
| Gönderen VKN/TCKN | vkntckn | 10 hane VKN / 11 hane TCKN |
| Alıcı VKN/TCKN | avkntckn | 10 hane VKN / 11 hane TCKN |
| Belge tarihi | tarih | Yıl-Ay-Gün |
| Belge no | no | 3 hane alfanumerik + 13 hane müteselsil (GIB2021000000001) |
| ETTN | ettn | GUID |
| Belge para birimi | parabirimi | TRY / USD / EUR |
| Brüt ücret tutarı | brutucret | — |
| Tahsil KDV tutarı | tahsilkdv | Tahsil edilen KDV |
| KDV tevkifat tutarı | kdvtevkifat | — |
| GV stopaj tutarı | gvstopaj | Gelir Vergisi Stopaj Tutarı |
| KDV tutarı | kdvtutari | — |
| Net ücret tutarı | netucret | Toplam tutar |
| Tahsilat | tahsilat | Tahsil 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ı):
| Kod | Kısaltma | Kod | Kısaltma |
|---|---|---|---|
| 0003 | GV STOPAJI | 4080 | Ö.İLETİŞİM V |
| 0011 | KV STOPAJI | 4081 | 5035ÖZİLETV. |
| 0015 | KDV GERCEK | 4171 | PTR-DGZ ÖTV TEVKİFAT |
| 0021 | BMV | 8001 | BORSA TES.ÜC. |
| 0022 | SMV | 8002 | ENERJİ FONU |
| 0061 | KKDF KESİNTİ | 8004 | TRT PAYI |
| 0071 | ÖTV 1.LİSTE | 8005 | ELK.TÜK.VER. |
| 0073 | ÖTV 3.LİSTE | 8006 | TK KULLANIM |
| 0074 | ÖTV 4.LİSTE | 8007 | TK RUHSAT |
| 0075 | ÖTV 3A LİSTE | 8008 | ÇEV. TEM. VER. |
| 0076 | ÖTV 3B LİSTE | 9021 | 4961BANKASMV |
| 0077 | ÖTV 3C LİSTE | 9040 | MERA FONU |
| 1047 | DAMGA V | 9077 | ÖTV 2.LİSTE |
| 1048 | 5035SKDAMGAV | 9944 | BEL.ÖD.HAL RÜSUM |
| 4071 | ELK.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 |
| Zorunluluk | KOŞ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) |
| Kapsam | Zirai ü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üm | e-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 |
| Raporlama | e-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." |
| İptal | Sistem ü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ı):
| # | Eleman | Türkçe | Kardinalite |
|---|---|---|---|
| 1 | UBLExtensions | UBL Genişletme Alanı (XAdES imza) | Zorunlu 1..1 |
| 2 | UBLVersionID | UBL Versiyon Numarası | Zorunlu 1 |
| 3 | CustomizationID | Özelleştirme Numarası | Zorunlu 1 |
| 4 | ProfileID | Senaryo | Zorunlu 1 |
| 5 | ID | Müstahsil Makbuzu Numarası | Zorunlu 1 |
| 6 | CopyIndicator | Asıl (false) / Suret (true) | Zorunlu 1 |
| 7 | UUID | ETTN (GUID) | Zorunlu 1 |
| 8 | IssueDate | Düzenleme Tarihi (YYYY-AA-GG) | Zorunlu 1 |
| 9 | IssueTime | Düzenleme Zamanı (SS:DD:sn) | Seçimli 1 |
| 10 | CreditNoteTypeCode | Tip Kodu | Seçimli 0..1 |
| 11 | Note | Not | Seçimli 0..n |
| 12 | AdditionalDocumentReference | İlave Doküman | Seçimli 0..n |
| 13 | Signature | Mali Mühür / İmza | Zorunlu 1..n |
| 14 | AccountingSupplierParty | Makbuzu Düzenleyen — malları SATIN ALAN | Zorunlu 1 |
| 15 | AccountingCustomerParty | Üretici/Çiftçi — malları ÜRETEN/SATAN | Zorunlu 1 |
| 16 | Delivery | Teslimat Bilgileri | Seçimli 0..n |
| 17 | TaxTotal | Toplam Vergi | Zorunlu 1..n |
| 18 | LegalMonetaryTotal | Parasal Toplamlar | Zorunlu 1 |
| 19 | CreditNoteLine | Kalem Bilgileri | Zorunlu 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.
| Olay | Tarih |
|---|---|
| Duyuru yayımı | 22.5.2026 |
| e-MM Teknik Kılavuzu V1.1 güncellemesi | 22.5.2026 |
| ZORUNLU UYGULAMA BAŞLANGICI | 5.11.2026 — bu tarihten itibaren düzenlenecek TÜM e-Müstahsil Makbuzlarında |
| Erken kullanım | Geliş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.
| # | Bilgi | Taraf | XPath | Değer |
|---|---|---|---|---|
| 1 | Operatör bilgisi | AccountingSupplierParty (Düzenleyen, Zorunlu 1) | Party/Contact/OtherCommunication/ChannelCode | name="SMS_PROVIDER", içerik = uygulama/operatör adı |
| 2 | Operatör VKN | AccountingSupplierParty | Party/Contact/OtherCommunication/Value | VKN bilgisi |
| 3 | SMS kodu | AccountingCustomerParty (Müstahsil, Zorunlu 1) | Party/Contact/ID | SMS kodu |
| 4 | Sabit etiket | AccountingCustomerParty | Party/Contact/Name | sabit SMS |
| 5 | Telefon | AccountingCustomerParty | Party/Contact/Telephone | SMS'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ı):
| # | Kalem | Açıklama |
|---|---|---|
| 1 | SMS 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) |
| 2 | SMS 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 |
| 3 | Müstahsil telefon numarası alanı | Cari kartta zorunlu alan; e-MM oluşturma ekranında doğrulanmış numara zorunlu |
| 4 | UBL CreditNote mapping | Yukarıdaki 5 XPath'in yazımı; e-GP'deki karşılığından farklı XPath kullanıldığına dikkat |
| 5 | Geçiş yönetimi | 5.11.2026 öncesi ıslak imza + SMS'in birlikte desteklenmesi; tarihten sonra SMS'siz e-MM üretiminin bloklanması |
| 6 | Test | 5.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):
| Bilgi | UBL alanı | Karekod alanı |
|---|---|---|
| Gönderen VKN/TCKN | AccountingSupplierParty/Party/PartyIdentification/ID | vkntckn |
| Alıcı VKN/TCKN | AccountingCustomerParty/Party/PartyIdentification/ID | avkntckn |
| Senaryo | ProfileID | senaryo (EARSIVBELGE) |
| Tipi | CreditNoteTypeCode | tip |
| Belge tarihi / no / ETTN | IssueDate / ID / UUID | tarih / no / ettn |
| Belge para birimi | DocumentCurrencyCode | parabirimi |
| Mal hizmet toplam tutarı | LegalMonetaryTotal/LineExtensionAmount | malhizmettoplam |
| GV stopaj tutarı | TaxTotal/TaxSubTotal/TaxAmount | gvstopaj |
| Mera fonu ücreti | TaxTotal/TaxSubTotal/TaxAmount | merafonu |
| Borsa tescil ücreti | TaxTotal/TaxSubTotal/TaxAmount | borsatescilucreti |
| Hesaplanan SGK prim kesintisi | TaxTotal/TaxSubTotal/TaxAmount | sgkprimkesintisi |
| Ödenecek tutar | LegalMonetaryTotal/PayableAmount | odenecek |
Ö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)
tipiçin MUSTAHSILMAKBUZU örneği verirken, Teknik Kılavuz V1.1 (2.3.10)CreditNoteTypeCodedeğ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):
| # | Alan | Kardinalite / not |
|---|---|---|
| 3.3.4.1 | makbuzNo | Zorunlu 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.2 | dosyaAdi | Zorunlu 1 (örn. MustahsilMakbuz_CDE2018000000001.pdf) |
| 3.3.4.3 | ozetDeger | Zorunlu 1, SHA-256, hex |
| 3.3.4.4 | duzenlenmeTarihi | Zorunlu 1 |
| 3.3.4.5 | duzenlenmeZamani | Zorunlu 1 |
| 3.3.4.6 | toplamTutar | Zorunlu 1, vergi hariç |
| 3.3.4.7 | odenecekTutar | Zorunlu 1 |
| 3.3.4.8 | paraBirimi | Zorunlu 1, ISO 4217 |
| 3.3.4.9 | mustahsilMakbuzUrl | Zorunlu 1, max 255 karakter — .xml dosyasına ulaşılacak URL (e-SMM'deki serbestMeslekMakbuzUrl ise .pdf der) |
| 3.3.4.10 | vergiBilgisi | vergilerToplami / vergi 1..n / tevkifat 0..n |
| 3.3.4.11 | mustahsilBilgileri | gercekKisi: tckn + adiSoyadi |
| 3.3.4.12 | imzaZamani | Zorunlu 1 |
| 3.3.4.13 | ynOkcFisBilgisi | Seç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) |
| Kapsam | Birinci 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üm | e-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 |
| Raporlama | e-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 |
| İptal | Korpusta 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 |
|---|---|
| 1 | Perakende sektöründe hizmet veren — faaliyet kodları içerisinde 47 ile başlayan NACE kodundan faaliyeti olan |
| 2 | e-Fatura uygulamasına dâhil olan |
| 3 | 2024 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 |
| 4 | Kullanı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).
| Eleman | Kritik kural |
|---|---|
CreditNoteTypeCode | SATIS = KDV mükellefi olmayanlardan satın alınan mal/hizmet; IADE = nihai tüketicilere satılan malların iadesi |
BillingReference | IADE 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ği | TaxTypeCode 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ığı:
| Bilgi | XPath | Değer / kural |
|---|---|---|
| SMS/İade kodu | AccountingCustomerParty/…/Contact/ID | SATIS 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 |
| Etiket | AccountingCustomerParty/…/Contact/Name | sabit SMS ya da IADEKODU |
| Telefon | AccountingCustomerParty/…/Contact/Telephone | Alıcının telefonu |
| Operatör / platform | AccountingSupplierParty/…/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'deAgentPartyalanı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 Entegrasyon — GİB Portal yöntemi YOK |
| Teknik kılavuz + sürüm | e-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 |
| Raporlama | e-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." |
| İptal | Sistem ü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ım | Alanlar |
|---|---|
| 1. Açılma/kapanma zamanı | ID/@schemeID="ADISYON_SESSION" (GUID), DocumentDescription=ADISYON, ValidityPeriod içinde StartDate / StartTime / EndDate / EndTime |
| 2. İlişkili belge | ID/@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 |
| Zorunluluk | KOŞ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şletmeler → 1/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şletmeleri → 1/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üm | e-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 |
| Raporlama | e-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) |
| İptal | Rapor 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:
| Blok | Eleman | İçerik |
|---|---|---|
| baslik | gonderen (Z1) | Raporu gönderenin vkn veya tckn alt elemanı |
| baslik | baslangicTarihi (Z1) | Raporlama dönemi başlangıcı (YYYY-AA-GG) |
| baslik | bitisTarihi (Z1) | Raporlama dönemi bitişi |
| baslik | versiyon (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) |
| baslik | uuid (Z1) | Raporun ETTN'si (GUID) |
| baslik | Signature | Mali Mühür / e-İmza |
| bilet | biletNo | Bilet numarası |
| bilet | ozetDeger | Biletin hash değeri |
| bilet | duzenlemeTarihi | Bİ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 |
| bilet | seferZamani | Sefer zamanı |
| bilet | odemeSekli (Z1) | Sınırlı küme (aşağıda) |
| bilet | tutar (Z1) | KDV HARİÇ bilet bedeli |
| bilet | kdv (Z1) | KDV tutarı |
| bilet | giderGosteren (0..1) | Gider/indirim gösterecek mükellefin vkn/tckn'si |
| bilet | hizmetinNevi (0..1) | tur + aciklama |
| bilet | biletUrl (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:
| Tip | Zorunlu 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 |
| Kapsam | 526 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üm | e-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 |
| Raporlama | Belge, 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 |
| İptal | Korpusta 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):
| Bilgi | UBL alanı | Karekod alanı |
|---|---|---|
| Gönderen / Alıcı VKN-TCKN | AccountingSupplier/CustomerParty/PartyIdentification/ID | vkntckn / avkntckn |
| Senaryo | ProfileID | senaryo — EDOVIZBELGE / EKIYMETLIMADENBELGE |
| Tipi | CreditNoteTypeCode | tip — ALIM / SATIM |
| Belge tarihi / no / ETTN | IssueDate / ID / UUID | tarih / no / ettn |
| Döviz/Kıymetli maden miktarı | LegalMonetaryTotal/LineExtensionAmount | miktari() |
| Uygulanan kur / birim fiyat | PaymentExchangeRate/CalculationRate | uygulanankur (EDOVIZBELGE) / birimfiyat (EKIYMETLIMADENBELGE) |
| Döviz karşılığı | LegalMonetaryTotal/LineExtensionAmount | dovizkarsiligi — yalnızca EDOVIZBELGE |
| TL karşılığı | LegalMonetaryTotal/TaxInclusiveAmount | tlkarsiligi — yalnızca EDOVIZBELGE |
| Toplam tutar | LegalMonetaryTotal/PayableAmount | odenecek() |
Ö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
CreditNoteTypeCodeiçin DOVIZALIMBELGESI/DOVIZSATIMBELGESI derken, Karekod Kılavuzu V1.2 aynı elemandan türeyentipiç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 |
| Kapsam | Sigorta, 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üm | e-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 |
| Raporlama | EN 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 |
| İptal | Belge 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):
| Kod | Anlam | Kod | Anlam |
|---|---|---|---|
| 1 | Yeni Poliçe | 6 | Vade Gelimi |
| 2 | Tecditname (Yenileme) | 7 | İptal |
| 3 | Zeyilname (Değişiklik) | 8 | Vefat |
| 4 | Yürürlüğü Alma | 9 | Diğ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 |
| Kapsam | Sigorta, 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üm | Teknik 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 |
| Raporlama | DOĞ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 |
| İptal | Korpusta tanımlı DEĞİL → DOĞ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):
| Bilgi | UBL alanı | Karekod alanı |
|---|---|---|
| Gönderen VKN | AccountingSupplierParty/Party/PartyIdentification/ID | vkntckn |
| Gönderen unvan | PartyName | unvan (VKN yazılırsa unvan da yazılmalı) |
| Alıcı VKN | AccountingCustomerParty/Party/PartyIdentification/ID | avkntckn |
| Senaryo | ProfileID | senaryo |
| Tipi | CreditNoteTypeCode | tip — SIGORTAKOMISYONGIDERBELGESI |
| Belge tarihi / no / ETTN | IssueDate / ID / UUID | tarih / no / ettn |
| Belge para birimi | DocumentCurrencyCode | parabirimi |
| İstihsal komisyon toplam tutarı | LegalMonetaryTotal/AllowanceTotalAmount | istihsalkomisyon |
| İptal komisyonu toplam tutarı | LegalMonetaryTotal/ChargeTotalAmount | iptalkomisyon |
Ö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" |
| Kapsam | 573 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üm | e-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 |
| Raporlama | e-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) |
| İptal | Rapordaki 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ılavuz | Sürüm | Tarih | Not |
|---|---|---|---|
| e-SMM | — | — | Mü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.1 | 22.05.2026 | İlk yayım 04.01.2018; SMS doğrulama eklendi |
| e-Gider Pusulası | 1.0 | 17.11.2025 | İlk yayım; NACE 47 + eşik şartı |
| e-Adisyon Belgesi | 1.1 | 12.05.2023 | İlk yayım 30.07.2021 |
| e-Bilet Raporu (Karayolu/Denizyolu) | 2.3 | 27.02.2023 | İlk yayım 26.06.2012; biletUrl zorunlu oldu |
| e-Döviz Alım-Satım Belgesi | 1.0 | 29.09.2021 | İlk ve tek yayım |
| e-Sigorta Poliçesi | 1.1 | 22.09.2023 | İlk yayım 16.05.2022 |
| e-Arşiv Teknik Kılavuzu (çatı) | 1.18 | 27.08.2025 | Kapak Ağustos 2025 |
| Elektronik Arşiv Başvuru Kılavuzu | 1.8 | 22.05.2026 | e-Gider Pusulası eklendi; TURKAK onaylı ISO zorunlu |
| e-Arşiv Uygulamaları İptal, İhtar/İtiraz Bildirim Kılavuzu | 1.1 | 03.01.2025 | Yalnızca e-Arşiv Fatura + e-SMM |
| Karekod Standardı Kılavuzu | 1.2 | 06.11.2023 | İlk yayım 17.02.2023 |
| UBL-TR Kod Listeleri | 1.43 | 27.07.2026 | Vergi/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
| Uygulama | 487 SN VUK GT (eski) | 509 taslak | Nihai 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 kadar | Kapsam "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.
| # | Konu | Durum |
|---|---|---|
| 1 | e-SMM'nin XML kök elemanı (Invoice / CreditNote / özel şema), ProfileID ve CustomizationID sabitleri, tam eleman listesi | Mü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 |
| 3 | e-Adisyon zorunluluk tarihi / erteleme | Korpusta 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 |
| 4 | e-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 |
| 5 | VUK 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 |
| 6 | e-Sigorta Komisyon Gider Belgesi teknik kılavuzu | Korpusta 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 |
| 7 | e-Dekont teknik kılavuzu ve başvuru kılavuzu | Korpusta yok → şema, ProfileID, dekont tiplerinin tam kod listesi ve bankReceipt alt alanları çıkarılamıyor |
| 8 | Havayolu 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 |
| 9 | e-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 |
| 10 | e-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 |
| 11 | Karekod zorunluluğunun başlangıç tarihi | 509'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 |
| 12 | Karekod kapsam boşluğu | e-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 |
| 13 | e-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 kodu | Teknik 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 kodu | Teknik 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 |
| 16 | e-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 |
| 17 | e-Sigorta Poliçesi başvuru rejimi | Belge, 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 |
| 18 | e-Adisyon başvuru şartı çelişkisi | 509 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 |
| 19 | e-Fatura/e-İrsaliye için GİB Portal | Korpusta 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ı
| Oran | Kapsam | Dayanak |
|---|---|---|
| %20 | Ekli 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 |
| %10 | Karara ekli (II) sayılı liste | 2007/13033 s. BKK md.1/c, 7346 s. CB Kararı ile değişik |
| %1 | Karara ekli (I) sayılı liste | 2007/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)
| Alan | Değer |
|---|---|
| Karar No | 7346 ("Mal ve Hizmetlere Uygulanacak KDV Oranlarının Tespitine İlişkin Kararda Değişiklik Yapılmasına Dair Karar") |
| Karar tarihi | 6 Temmuz 2023 |
| Resmî Gazete | 7 Temmuz 2023 Cuma, Sayı 32241 |
| Yürürlük | "Yayımını izleyen üçüncü gün" → 10 Temmuz 2023 (Pazartesi) |
| Değişiklik | Genel 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 tarihi | Seçilebilir KDV oranları |
|---|---|
| ≤ 09/07/2023 | 0, 1, 8, 18 |
| ≥ 10/07/2023 | 0, 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 tarihi | Değiştiren tebliğ |
|---|---|---|---|---|---|
| 601 | Yapı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/2021 | 35 SN md.2 (RG 16/2/2021, S.31397) |
| 602 | Etüt, Plan-Proje, Danışmanlık, Denetim vb. (2.1.3.2.2) | 9/10 (90) | — | — | — |
| 603 | Makine, Teçhizat, Demirbaş, Taşıt tadil-bakım-onarım (2.1.3.2.3) | 7/10 (70) | 5/10 (50) | 1/3/2021 | 35 SN md.4 |
| 604 | Yemek Servis Hizmeti (2.1.3.2.4) | 5/10 (50) | — | — | — |
| 605 | Organizasyon 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) | — | — | — |
| 608 | Yapı Denetim Hizmetleri (2.1.3.2.6) | 9/10 (90) | — | — | — |
| 609 | Fason tekstil/konfeksiyon, çanta-ayakkabı dikim ve aracılık (2.1.3.2.7) | 7/10 (70) | 5/10 (50) | 1/3/2021 | 35 SN md.5 |
| 610 | Turistik mağazalara müşteri bulma/götürme (2.1.3.2.8) | 9/10 (90) | — | — | — |
| 611 | Spor kulüplerinin yayın, reklam, isim hakkı (2.1.3.2.9) | 9/10 (90) | — | — | — |
| 612 | Temizlik Hizmeti (2.1.3.2.10) | 9/10 (90) | 7/10 (70) | 1/3/2021 | 35 SN md.6 |
| 613 | Çevre ve Bahçe Bakım Hizmetleri (2.1.3.2.10) | 9/10 (90) | 7/10 (70) | 1/3/2021 | 35 SN md.6 |
| 614 | Servis Taşımacılığı Hizmeti (2.1.3.2.11) | 5/10 (50) | — | — | — |
| 615 | Her Türlü Baskı ve Basım Hizmetleri (2.1.3.2.12) | 7/10 (70) | 5/10 (50) | 1/3/2021 | 35 SN md.8 |
| 616 | Diğer Hizmetler (2.1.3.2.13) | 5/10 (50) | — | — | 35 SN md.9 (bölüm yeniden yazıldı) |
| 617 | Hurda metalden elde edilen külçe teslimleri (2.1.3.3.1) | 7/10 (70) | — | — | — |
| 618 | Hurda dışı bakır, çinko, demir-çelik, alüminyum, kurşun külçe (2.1.3.3.1) | 7/10 (70) | — | — | — |
| 619 | Bakı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) | — | — | — |
| 621 | Metal/plastik/lastik/kauçuk/kâğıt/cam hurdadan hammadde (2.1.3.3.4) | 9/10 (90) | — | — | — |
| 622 | Pamuk, tiftik, yün, yapağı, ham post ve deri (2.1.3.3.5) | 9/10 (90) | — | — | — |
| 623 | Ağaç ve Orman Ürünleri Teslimi (2.1.3.3.6) | 5/10 (50) | — | — | — |
| 624 | Yük Taşımacılığı Hizmeti (2.1.3.2.11) | 2/10 (20) | tevkifat YOK | 1/3/2021 (ihdas) | 35 SN md.7 |
| 625 | Ticari Reklam Hizmetleri (2.1.3.2.15) | 3/10 (30) | tevkifat YOK | 1/3/2021 (ihdas) | 35 SN md.11 |
| 626 | Diğer Teslimler — yalnız DMO'ya (2.1.3.3.7) | 2/10 (20) | tevkifat YOK | 1/3/2021 (ihdas) | 35 SN md.12 |
| 627 | Demir-Ç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 kodu | Karşılığı | İşlem | KDVGUT | Percent |
|---|---|---|---|---|
| 801 | 601 | Yapım işleri + müh.-mimarlık/etüt-proje | 2.1.3.2.1 | 100 |
| 802 | 602 | Etüt, plan-proje, danışmanlık, denetim | 2.1.3.2.2 | 100 |
| 803 | 603 | Makine/teçhizat/demirbaş/taşıt tadil-bakım-onarım | 2.1.3.2.3 | 100 |
| 804 | 604 | Yemek servis hizmeti | 2.1.3.2.4 | 100 |
| 805 | 605 | Organizasyon hizmeti | 2.1.3.2.4 | 100 |
| 806 | 606 | İşgücü temin hizmetleri | 2.1.3.2.5 | 100 |
| 807 | 607 | Özel güvenlik hizmeti | 2.1.3.2.5 | 100 |
| 808 | 608 | Yapı denetim hizmetleri | 2.1.3.2.6 | 100 |
| 809 | 609 | Fason tekstil/konfeksiyon, çanta-ayakkabı dikim | 2.1.3.2.7 | 100 |
| 810 | 610 | Turistik mağazalara müşteri bulma/götürme | 2.1.3.2.8 | 100 |
| 811 | 611 | Spor kulüpleri yayın/reklam/isim hakkı | 2.1.3.2.9 | 100 |
| 812 | 612 | Temizlik hizmeti | 2.1.3.2.10 | 100 |
| 813 | 613 | Çevre ve bahçe bakım hizmetleri | 2.1.3.2.10 | 100 |
| 814 | 614 | Servis taşımacılığı hizmeti | 2.1.3.2.11 | 100 |
| 815 | 615 | Her türlü baskı ve basım hizmetleri | 2.1.3.2.12 | 100 |
| 816 | 617 | Hurda metalden elde edilen külçe teslimleri | 2.1.3.3.1 | 100 |
| 817 | 618 | Hurda dışı bakır/çinko/demir-çelik/alüminyum/kurşun külçe | 2.1.3.3.1 | 100 |
| 818 | 619 | Bakır, çinko, alüminyum ve kurşun ürünleri | 2.1.3.3.2 | 100 |
| 819 | 620 | İstisnadan vazgeçenlerin hurda ve atık teslimi | 2.1.3.3.3 | 100 |
| 820 | 621 | Hurda/atıktan elde edilen hammadde teslimi | 2.1.3.3.4 | 100 |
| 821 | 622 | Pamuk, tiftik, yün, yapağı, ham post ve deri | 2.1.3.3.5 | 100 |
| 822 | 623 | Ağaç ve orman ürünleri teslimi | 2.1.3.3.6 | 100 |
| 823 | 624 | Yük taşımacılığı hizmeti | 2.1.3.2.11 | 100 |
| 824 | 625 | Ticari reklam hizmetleri | 2.1.3.2.15 | 100 |
| 825 | 627 | Demir-çelik ürünlerinin teslimi | 2.1.3.3.8 | 100 |
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ım | concat sonucu | Sonuç |
|---|---|---|
<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ıl | Had (KDV dahil) | Dayanak |
|---|---|---|
| 2025 | 9.900 TL | VUK 232 fatura düzenleme haddi |
| 2026 | 12.000 TL | 588 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:
| Assert | Liste | 650 için sonuç |
|---|---|---|
| A — kod geçerliliği | WithholdingTaxType = ,601…627,801…825, | 650 YOK → FAIL |
| B — kod+oran uyumu | WithholdingTaxTypeWithPercent içinde 65020,65030,65050,65070,65090 | PASS |
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.
| TaxTypeCode | Gİ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 |
| 4171 | PTR-DGZ ÖTV TEVKİFAT | Petrol/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 tarih | Oran |
|---|---|
| 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ır | Tutar |
|---|---|
| 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 Toplam | 88.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
| Alan | Değer |
|---|---|
TaxTypeCode | 0059 — "Konaklama Vergisi" |
InvoiceTypeCode | KONAKLAMAVERGISI |
| İstisna kodu | 001 – Diplomatik İstisna (bu listedeki tek kod) |
| Eklenme | Kod 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_.txt → 0 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
| Bulgu | Kaynak |
|---|---|
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ı yerde | EFATURA_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:LineExtensionAmounttoplamı → "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ı | Örnek | UBL-TR karşılığı |
|---|---|---|
| İşlem Bedeli | 3.000 | LegalMonetaryTotal/cbc:TaxExclusiveAmount |
| Hesaplanan KDV | 540 | TaxTotal/TaxSubtotal[TaxTypeCode=0015]/cbc:TaxAmount |
| Tevkifat Oranı | 5/10 | WithholdingTaxTotal/TaxSubtotal/cbc:Percent = 50 |
| Tevkif Edilecek KDV | 270 | WithholdingTaxTotal/cbc:TaxAmount |
| Tevkifat Dahil Toplam Tutar | 3.540 | LegalMonetaryTotal/cbc:TaxInclusiveAmount |
| Tevkifat Hariç Toplam Tutar | 3.270 | LegalMonetaryTotal/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 etiketi | XPath |
|---|---|
| Vergiler Dahil Toplam Tutar | LegalMonetaryTotal/cbc:TaxInclusiveAmount |
| Ödenecek Tutar | LegalMonetaryTotal/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:
| Alan | Değer |
|---|---|
TaxExclusiveAmount | 3.000,00 |
TaxTotal/TaxSubtotal[0015] → TaxableAmount / Percent / TaxAmount | 3.000,00 / 20 / 600,00 |
WithholdingTaxTotal/cbc:TaxAmount | 600 × 90% = 540,00 |
WithholdingTaxTotal/TaxSubtotal/cbc:Percent | 90 |
WithholdingTaxTotal/TaxSubtotal/cbc:TaxableAmount | 600,00 ← dikkat, 3.000 değil |
TaxInclusiveAmount | 3.600,00 |
PayableAmount | 3.600 − 540 = 3.060,00 |
7.4 WithholdingTaxTotal alt alanlarının XSLT'ye göre ANLAMI
| XPath | XSLT etiketi | Yazılacak (yukarıdaki örnek) |
|---|---|---|
WithholdingTaxTotal/cbc:TaxAmount | (toplam) | 540 |
…/TaxSubtotal/cbc:TaxAmount | "Hesaplanan KDV Tevkifat(%90)" | 540 |
…/TaxSubtotal/cbc:Percent | etiket 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ı:
WithholdingTaxTotalvarsaPayableAmount < TaxInclusiveAmountolmalı 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ği | Satırda kontrol edilmez — uydurma bir kod bile geçer |
| KDV=0 olan satırda istisna sebebi | Satır düzeyinde aranmaz |
| Fatura tipi ↔ istisna kodu uyumu | Satır düzeyinde hiç denetlenmez |
| Görüntüleme | XSLT 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:
| Kural | Koşul | Zorunluluk |
|---|---|---|
YatirimTesvikTaxExemptionReasonCode308Check | (ProfileID=YATIRIMTESVIK & Tip=ISTISNA) veya (EARSIVFATURA & Tip=YTBISTISNA), harcama tipi (ItemClassificationCode) = 01 | Satırda 0015 + TaxExemptionReasonCode=308 zorunlu |
YatirimTesvikTaxExemptionReasonCode339Check | Aynı koşullar, harcama tipi = 02 | Satı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.
| Alan | Kural |
|---|---|
tevkifat | Seçimli (0..n) |
tevkifatKodu | Zorunlu. XSD: xs:string, pattern \d\d\d — tam 3 hane, başka kısıt yok |
tevkifatTutari | Zorunlu. xs:decimal, totalDigits 18, fractionDigits 2 |
tevkifatOrani | Zorunlu. 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ı]
| UBL | BDP 4xx | UBL | BDP 4xx | UBL | BDP 4xx |
|---|---|---|---|---|---|
| 601 | 410 | 609 | 423 | 617 | 430 |
| 602 | 416 | 610 | 431 | 618 | 418 |
| 603 | 414 | 611 | 433 | 619 | 419 |
| 604 | 415 | 612 | 411 | 620 | 409 |
| 605 | 432 | 613 | 412 | 621 | 437 |
| 606 | 421 | 614 | 434 | 622 | 428 |
| 607 | 413 | 615 | 435 | 623 | 438 |
| 608 | 420 | 616 | 436 | 624/625/626/627 | DOĞ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 olamaz | 555 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ı
- 7346 s. Kararın RG birebir madde metni okunamadı — RG PDF'inin gövdesi taranmış görüntüdür,
pdftotextyalnı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. - 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
- 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.
- 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. - 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ı. - 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ü.
- 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ı.
- 2026 tevkifat alt sınırı (12.000 TL) yalnız ikincil kaynaklardan; 588 SN VUK GT'nin birebir metni doğrulanmadı.
- 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ı. - 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
- Ö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.
- 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ı.
- 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.
- Öğ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.
- 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.
- Konaklama vergisinin e-belgede gösterimine ilişkin GİB duyurusunun birebir metni bulunamadı; SATIS/ISTISNA/KONAKLAMAVERGISI üçlüsü ikincil kaynaklardan.
KONAKLAMAVERGISItipi için ayrı bir GİB teknik kılavuzu yoktur. KONAKLAMAVERGISItipinin 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
- 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
TaxTypeolarak 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. - e-Arşiv raporunda
tevkifatKoduiç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.xslhiç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. - 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.
- 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.
- 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 paketindeDemirbasKDVTaxExemptionCheck'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). - 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.
| Dosya | Bayt | Satır | Set | Belge tipi | Kök NS | Benzersiz TR etiket |
|---|---|---|---|---|---|---|
arsiv.xslt | 201.447 | 4012 | Foriba/Sovos | e-Arşiv + e-Fatura birleşik | Invoice-2 | 176 |
efatura.xslt | 125.101 | 172 | Foriba/Sovos | e-Fatura | Invoice-2 | 107 |
irsaliye.xslt | 58.135 | 1 (tek satır) | Foriba/Sovos | e-İrsaliye | DespatchAdvice-2 | — |
IBANLI_e_arsiv_ibanlı.xslt | 190.023 | 3990 | IBANLI (eski Foriba rev.) | e-Arşiv+e-Fatura | Invoice-2 | 172 |
IBANLI_e_fatura_ibanlı.xslt | 118.493 | 186 | IBANLI | e-Fatura | Invoice-2 | — |
IBANLI_irsaliye_ibanlı.xslt | 58.864 | 13 | IBANLI | e-İrsaliye | DespatchAdvice-2 | — |
EFATURA_20260812_134006Z.xslt | 263.477 | 2562 | EDM | e-Fatura | Invoice-2 | 98 |
EFATURA_OZELM_20260812_134009Z.xslt | 263.502 | 2559 | EDM | e-Fatura (bkz. 5.4) | Invoice-2 | 98 |
EARSIV_20260812_134006Z.xslt | 260.739 | 2428 | EDM | e-Arşiv | Invoice-2 | 94 |
EARSIV_OZELM_20260812_134008Z.xslt | 260.746 | 2425 | EDM | e-Arşiv (bkz. 5.4) | Invoice-2 | 94 |
EIHRACAT_20260812_134007Z.xslt | 270.036 | 2743 | EDM | e-İhracat | Invoice-2 | 98 |
EIRSALIYE_20260812_134007Z.xslt | 193.911 | 1419 | EDM | e-İrsaliye | DespatchAdvice-2 | — |
ESMM_20260812_134008Z.xslt | 242.430 | 2126 | EDM | e-SMM | Invoice-2 | 55 |
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çüt | arsiv.xslt | EDM EFATURA_2026 |
|---|---|---|
Desteklenen ProfileID sayısı | 6 (33 dallanma) | 1 (3 dallanma) |
Özel işlenen InvoiceTypeCode sayısı | 8 | 1 (yalnız OZELMATRAH) |
TaxExemptionReasonCode referansı | 9 | 2 |
WithholdingTaxTotal referansı | 14 | 8 |
CalculationSequenceNumeric farkındalığı | 4 | 0 |
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, YTBTEVKIFATIADEAş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.
| # | InvoiceTypeCode | arsiv | IB-arş | efat | IB-efat | EDM EFAT | EDM EARŞ | EDM EIHR | EDM *_OZELM | EDM ESMM | irsaliye ×3 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | SATIS | ✓(3) | ✓(3) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | N/A |
| 2 | IADE | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | N/A |
| 3 | TEVKIFAT | ✗* | ✗* | ✗* | ✗* | ✗* | ✗* | ✗* | ✗* | ✗* | N/A |
| 4 | TEVKIFATIADE | ✓(6) | ✓(6) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | N/A |
| 5 | ISTISNA | ✓(3) | ✓(3) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | N/A |
| 6 | OZELMATRAH | ✓(5) | ✓(4) | ✓(5) | ✓(4) | ✓(4) | ✓(4) | ✓(4) | YORUMLU | ✓(1) | N/A |
| 7 | IHRACKAYITLI | ✓(4) | ✓(4) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | N/A |
| 8 | SGK | ✓(1) | ✓(1) | ✗ | ✗ | ~VKN | ✗ | ~VKN | ~VKN | ~VKN | N/A |
| 9 | KOMISYONCU | ✓(2) | ✓(2) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | N/A |
| 10 | HKSSATIS | ✓(6) | ✓(6) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | N/A |
| 11 | HKSKOMISYONCU | ✓(5) | ✓(5) | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | N/A |
| 12 | KONAKLAMAVERGISI | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | N/A |
| 13 | SARJ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | N/A |
| 14 | SARJANLIK | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | N/A |
| 15 | TEKNOLOJIDESTEK | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | N/A |
| 16 | YTBSATIS | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | N/A |
| 17 | YTBIADE | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | N/A |
| 18 | YTBISTISNA | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | N/A |
| 19 | YTBTEVKIFAT | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | N/A |
| 20 | YTBTEVKIFATIADE | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | N/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 şablonucac:WithholdingTaxTotalvarlığı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. ~VKNSGK: EDM seti tip koduna değil, SGK'nın VKN'sine sabit kodlanmıştır (5.3).- YORUMLU:
_OZELMvaryantları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
| Şablon | Tanınan ProfileID (dallanma sayısı) | Toplam |
|---|---|---|
arsiv.xslt, IBANLI_e_arsiv | EARSIVFATURA(12), HKS(8), IHRACAT(3), OZELFATURA(3), YATIRIMTESVIK(3+1), STDKODFATURA(3) | 6 |
efatura.xslt, IBANLI_e_fatura, EDM EFATURA/EARSIV/EIHRACAT/_OZELM | IHRACAT(3) | 1 |
| EDM ESMM | IHRACAT(1) | 1 |
irsaliye.xslt, IBANLI_irsaliye, EDM EIRSALIYE | — | 0 |
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
| Şablon | CalculationSequenceNumeric sayımı | Sonuç |
|---|---|---|
arsiv.xslt, IBANLI_e_arsiv | 4 (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_fatura | 0 | Vazgeçilen KDV'yi normal "Hesaplanan KDV(%20)" gibi YANLIŞ basar |
| Tüm EDM seti (7 dosya) | 0 | Aynı 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üzdeformat-number(cbc:Percent,'#','european')ile tamsayıya yuvarlanmıştır — standarttakikdvmatrah(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"/>",}| Dosya | Hata |
|---|---|
| EFATURA_2026, EFATURA_OZELM, EARSIV_2026, EARSIV_OZELM, EIHRACAT_2026 | ,} — sondaki fazla virgül |
| ESMM_2026 | kapanış } hiç yok + "kdvtutari":180.00" (açılış tırnağı eksik) |
| EIRSALIYE_2026 | kapanış } 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'de20.0varsa anahtarhesaplanankdv(20.0)olur, standarttakihesaplanankdv(8)biçimine uymaz.- Alan sırası ters:
hesaplanankdvönce,kdvmatrahsonra; standart sırakdvmatrah()→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
| Dosya | WithholdingTaxTotal | "Tevkifat" etiketi |
|---|---|---|
| arsiv.xslt / IBANLI_e_arsiv | 14 | 16 |
| efatura.xslt / IBANLI_e_fatura | 8 | 8 |
| EDM EFATURA / EFATURA_OZELM / EARSIV / EARSIV_OZELM / EIHRACAT | 8 | 8 |
| EDM ESMM | 4 | 3 |
| irsaliye ×3 | 0 | 0 (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ı.
| Alan | XPath | Format |
|---|---|---|
| Sevkiyat No | cac:PartyIdentification/cbc:ID[@schemeID='SEVKIYATNO'] | SE-0000000 veya ES-0000000, 10 karakter |
| Etiket No | cac: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ı):
| Alan | 13 dosyadaki toplam geçiş |
|---|---|
cac:InvoicePeriod | 24 (arsiv, IBANLI_e_arsiv, EDM EFATURA/EIHRACAT/ESMM — yalnızca StartDate+EndDate) |
StartTime | 10 (yalnız irsaliye tarafında "sevk zamanı" için) |
EndTime | 0 |
ESURaporID | 0 |
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ı
| Alan | arsiv | IB-arş | efatura | IB-efat | EDM fatura | ESMM | irsaliye |
|---|---|---|---|---|---|---|---|
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ğrulamamdaIBANLI_e_arsiv_ibanlı.xsltveIBANLI_e_fatura_ibanlı.xsltiçindeYalnızdizgisi 0 kez geçiyor ve for-each koşulsuz:select="//n1:Invoice/cbc:Note". Ayrım yalnızcaarsiv.xsltveefatura.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:
- Standarda aykırı: doğru koşul
cbc:InvoiceTypeCode = 'SGK''dır —arsiv.xsltbunu doğru yapar. - Tırnaksız sayısal karşılaştırma:
= 7750409379yazılmış,= '7750409379'değil. XPath bunu sayısal karşılaştırmaya zorlar; ayrıcaschemeIDfiltresi yoktur —PartyIdentificationaltındaki herhangi bir ID (MERSISNO, TICARETSICILNO...) bu sayıya eşitse blok yanlışlıkla açılır. 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:outputYOK, dolayısıylacharacter-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:outputve 1 adetuse-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 | ŞUBE | PARA BİRİMİ | BANKA IBAN |
|---|---|---|---|
| ZİRAAT BANKASI | İVEDİK/ANKARA | TRY | TR62 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-character | 13/13 dosyada | C1 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 as | 0 | Hiçbirinde yok |
replace( | 7 | Tamamı 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)
$QRSOVOS→https://qr.sovostr.com/qr?data=çağrısını SİL (arsiv.xsltsatır ~401-405; aynı blokefatura.xslt,irsaliye.xsltve 3 IBANLI dosyasında). JSON üretim mantığını koru (standarda uygun), karekodu sunucu tarafında PNG üretipdata:image/png;base64,...olarak göm — veya mevcutparam_logo/param_Imzakalıbını izleyerek<xsl:param name="param_qr"/>ile dışarıdan geçir.- IBANLI dosyalarındaki sabit
ZİRAAT BANKASI / TR62 0020 9000 0200 4596 0000 01tablosunu kullanma; IBAN'ıPaymentMeansCode='42'yolundan XML'den bas. - EDM setinden herhangi bir parça alıyorsan
E-Dönüşüm Merkezi EDM Teknolojileri ile Üretilmiştiralt bilgisini veedmquickresponseözniteliklerini SİL. arsiv.xslt'dekiProfileID='STDKODFATURA'dallanmalarını (3 adet) kaldır — kod listesinde olmayan ölü senaryo.
B. Düzeltilecek hatalar
cbc:CalculationSequenceNumeric != -1→not(cbc:CalculationSequenceNumeric = -1)—arsiv.xsltsatır 1636 ve 1963. (Bu düzeltilmezse portalın ürettiği normal faturalarda KDV toplam satırı görünmez.)- YTB koşulunu genişlet —
arsiv.xsltsatır 972, 2277, 2930, 3101:ProfileID='YATIRIMTESVIK' or InvoiceTypeCode=('YTBSATIS','YTBIADE','YTBISTISNA','YTBTEVKIFAT','YTBTEVKIFATIADE'). - EDM ESMM'yi kullanacağın için oradaki karekod JSON'unu onar: eksik
},"kdvtutari":180.00"tek taraflı tırnak,"tahsilat"alanınınInvoiceLine/Price/PriceAmountyerine gerçek tahsilat toplamından beslenmesi. - EDM'den herhangi bir fatura şablonu alırsan: sondaki
,}virgülü,"ETTN"→"ettn", eksik"vergidahil",Percentyuvarlaması ve SGK sabit-VKN koşulu (satır 687/684/687/609).
C. Eklenecekler (kapsam boşluğu)
- Vazgeçilen KDV Tutarı için ayrı toplam satırı:
TaxTotal/TaxSubtotal[cbc:CalculationSequenceNumeric = -1]/cbc:TaxAmount→ etiketVazgeçilen KDV Tutarı (%N), toplama dahil edilmez, yanındaTaxExemptionReasonCode+TaxExemptionReason. - 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 birxsl:chooseekle (şu an hepsi ham kod olarak basılıyor). - SARJ/SARJANLIK:
cac:InvoicePeriodiçinde StartDate + StartTime + EndDate + EndTime dörtlüsü; SARJ içinAdditionalDocumentReference/cbc:ID[@schemeID='ESURaporID']+IssueDate. (Şu anEndTimeveESURaporID13 dosyada 0.) - İDİS: fatura başlığında
PartyIdentification/cbc:ID[@schemeID='SEVKIYATNO'], satır tablosundaItem/AdditionalItemIdentification/cbc:ID[@schemeID='ETIKETNO']sütunu — hem faturada hem irsaliyede. - Yolcu Beraber Eşya: karekoda
pasaportno+aracikurumvknalanları, ekranda pasaport no gösterimi. - ILAC_TIBBICIHAZ:
AdditionalItemIdentificationiçindeki künye alanları (arsiv.xsltKünye Numarasını yalnız HKS bağlamında basıyor; ILAC/TIBBICIHAZ hiçbir dosyada yok). - KAMU senaryosu ek alanları — hiçbir şablonda dallanma yok.
- 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
- Sürüm:
character-map+ 2exists()dışında 2.0 bağımlılığı yok. Saxon (Java/.NET) kullanacaksan 2.0'da kal. libxslt/PHP kullanacaksanxsl:character-mapi veexists()i kaldırıp 1.0'a in; C1 karakter temizliğini XML üretim aşamasında yap. 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.- Boyut: gömülü base64 logo/banner'ları çıkar,
param_logo/param_Imza/param_qrile dışarıdan geçir. Hem 60 KB riskini (bkz. Açık Kalanlar) hem dosya şişkinliğini çözer. - Zorunlu görsel: üst orta kesimde GİB logosu + altında "e-Fatura" ibaresi.
- 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
- 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. - 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.
- 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. - 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.comkanı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. - 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.
- 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
CalculationSequenceNumericelemanı 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.) - "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. - 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:CalculationSequenceNumericiçermeyen normal bir fatura XML'i ilearsiv.xsltçalıştırıp KDV toplam satırının kaybolup kaybolmadığını görün. - 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.2veKamu_e-Fatura_Teknik_Kilavuzu_v1.5dosyaları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üklenir | 22.5.2024'ten itibaren defter + berat eşanlı yüklenir |
| Büyük defter dosyası da yüklenir | Ocak 2025'ten itibaren büyük defter dosyası (K) yüklenmez, sadece KB beratı |
| Yevmiye + büyük defter | 1/1/2025'ten itibaren envanter defteri de (ihtiyari) |
| Bir yevmiye maddesinde en fazla 50 fatura | En fazla 100 fatura |
| Zaman damgası TÜBİTAK-UEKAE | TÜBİTAK BİLGEM KAMU SM |
| Zayi belgesi için 15 gün | 30 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ıra | RG | Ö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) |
| 3 | 19/10/2019-30923 | Zorunluluk kapsamı, kopya saklama (1/1/2020'den 10 yıl), geçici vergi dönemi bazında yükleme |
| 4 | 21/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 |
| 5 | 08/11/2024-32716 | 4.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 |
| 6 | 31/12/2024-32769 | Envanter 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.
| Grup | Geçiş tarihi (3.2.6) |
|---|---|
| e-Fatura zorunluluğu bulunanlar | e-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 şirketler | 1/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 edenler | 1/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ükellefleri | Diğer Mükellefler |
|---|---|---|
| Ocak | Mayıs ayının 10 uncu günü sonu | Mayıs ayının 14 üncü günü sonu |
| Şubat | Haziran 10 | Haziran 14 |
| Mart | Temmuz 10 | Temmuz 14 |
| Nisan | Ağustos 10 | Ağustos 14 |
| Mayıs | Eylül 10 | Eylül 14 |
| Haziran | Ekim 10 | Ekim 14 |
| Temmuz | Kasım 10 | Kasım 14 |
| Ağustos | Aralık 10 | Aralık 14 |
| Eylül | Ocak 10 | Ocak 14 |
| Ekim | Şubat 10 | Şubat 14 |
| Kasım | Mart 10 | Mart 14 |
| Aralık (hesap döneminin son ayı) | GV beyannamesinin verileceği ayı takip eden ayın 10'u sonu | KV 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önem | Gelir Vergisi Mükellefleri | Diğer Mükellefler |
|---|---|---|
| Ocak-Şubat-Mart | Haziran ayının 10 uncu günü sonu | Haziran ayının 14 üncü günü sonu |
| Nisan-Mayıs-Haziran | Eylül 10 | Eylül 14 |
| Temmuz-Ağustos-Eylül | Aralık 10 | Aralık 14 |
| Ekim-Kasım-Aralık | GV beyannamesinin verileceği ayı takip eden ayın 10'u sonu | KV 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 defteri | Gelir Vergisi | Diğer |
|---|---|---|
| Hesap döneminin ilk günü (= açılış onayı yerine) | İlk ayı takip eden dördüncü ayın 10'u | Dördüncü ayın 14'ü |
| Hesap döneminin son günü (= kapanış onayı yerine) | GV beyannamesi ayını takip eden ayın 10'u | KV 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örlerin … ya 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.
| Boyut | Fatura Portalı | e-Defter |
|---|---|---|
| Mevzuat | 509 SN VUK GT | 1 SN Elektronik Defter GT (+2,3,4,5,6) |
| Veri standardı | UBL-TR 1.2 | XBRL GL 2006-10-25 |
| Girdi | Tekil belge | Aylık muhasebe kayıtları bütünü (yevmiye maddeleri, hesap planı, borç/alacak) |
| Platform | ebelge.gib.gov.tr / ÖE | edefter.gib.gov.tr |
| İzin rejimi | Özel entegratörlük / portal | e-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):
- Muhasebe aktarım çıktısı: her belge için
documentType+documentNumber+documentDate+ KDV kırılımı + hesap kodu önerisi.documentTypeyalnız 8 değer alır:check,invoice,order-customer,order-vendor,voucher,shipment,receipt,other.invoiceSADECE fatura içindir — e-SMM, e-MM, e-Gider Pusulası, e-Döviz, e-Sigorta hepother+documentTypeDescription. En kritik kural: "e-Fatura kullanıcıları bu alana e-Faturanın ETTN numarasını DEĞİL, fatura ID'sini girmelidir" (yanicbc:ID,cbc:UUIDdeğil).documentReference= muhasebe fiş no veentryNumber'a eşit olmalıdır (şematron kontrollü). - 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. - 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". - 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 senaryosu | Gerekli evrak | Sü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ı veri | Yazı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ı VKNKı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ı):
| Alan | SATIS | IADE_Belgesiz | IADE_SMS_Kodu | IADE_IADE_Kodu |
|---|---|---|---|---|
cbc:ID | GIB2026000000001 | GIP2026000000001 | GIP2026000000001 | GIP2026000000001 |
cbc:CreditNoteTypeCode | SATIS | IADE | IADE | IADE |
BillingReference/…/cbc:ID/@schemeID | yok (blok hiç yok) | BELGESIZ (değer boş) | SATIS_FISI (001) | EARSIV_FATURA (GIB2026000000002) |
Supplier ChannelCode/@name | SMS_PROVIDER | SMS_PROVIDER | SMS_PROVIDER | IADE_PROVIDER |
Customer Contact/cbc:Name | SMS | SMS | SMS | IADEKODU |
cac:Delivery (kargo) | yok | var | var | var |
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:
| Senaryo | Tip | Kod | Contact/Name | ChannelCode/@name | Delivery |
|---|---|---|---|---|---|
| KDV mükellefi olmayandan mal/hizmet alımı | SATIS | SMS KODU | SMS | SMS_PROVIDER | yok |
| Depozitolu ambalaj iadesi + depozito geri ödemesi | SATIS | SMS KODU | SMS | SMS_PROVIDER | yok |
| Nihai tüketiciden yüz yüze iade | IADE | SMS ya da İADE KODU | SMS \ | IADEKODU | SMS_ \ |
| Nihai tüketiciden kargoyla iade | IADE | sadece İADE KODU | IADEKODU | IADE_PROVIDER | zorunlu |
| İadeyi fatura alıcısı dışında biri yapıyor | IADE | kod BuyerCustomerParty altına | — | — | duruma 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.xsltsatır 1289n1:CreditNote/cac:WithholdingTaxTotal/cac:TaxSubtotaldöngüsünü render eder ve tutarı "Vergiler Dahil Toplam Tutar"ın üstüne basar.- Rapor tarafında (
eArsiv.xsd)vergiBilgisiTypeiçindetevkifatalt elemanı yoktur; stopaj ancakvergi/vergiKodu = 0003(GV Stopajı) veya0011(KV Stopajı) ile taşınabilir. GİB'in kendiornek_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:
| Konu | Kası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 iade | yok | eklendi (TCKN zorunlu) |
| Sağlayıcı bloğu | AccountingSupplierParty/…/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 sigortaKomisyonGiderBelgeNo → kı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.xsd | ePoliceBelge.xsd | |
|---|---|---|
| Katman | e-Arşiv RAPORU | BELGE (PDF'e attach edilecek XML) |
| Kök | eArsivRaporu (+eSigortaPolice, eSigortaPoliceIptal) | eSigortaPolice |
| Namespace | http://earsiv.efatura.gov.tr | namespace yok (çıplak xs:schema) |
XAdES import / baslik / ozetDeger | var | yok |
kurulusBilgileri | yok | var (9 alt alan) |
bransType alan sayısı | 5 | 11 (+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 |
|---|---|---|---|
| 1 | baslik | 8 | serbestMeslekMakbuzIptal |
| 2 | fatura | 9 | serbestMeslekMakbuzuItiraz |
| 3 | faturaIptal | 10 | bankReceipt (e-Dekont) |
| 4 | faturaItiraz | 11 | bankReceiptIptal |
| 5 | mustahsilMakbuz | 12 | adisyon |
| 6 | mustahsilMakbuzIptal | 13 | adisyonIptal |
| 7 | serbestMeslekMakbuz | 14 | zRapor (Ö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 nshttp://webservice.ebilet.gib.gov.tr/. Etkinlik rapor kılavuzu V1.3 (2023) ise arayüz içinportal.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) vegetBatchStatus(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ç:
- 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.
- İ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.
- 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ı:
| Konu | GİB Portal | Özel entegratör / entegrasyon (ÖKC-TMC dâhil) |
|---|---|---|
| Belge no yapısı | 3 hane birim kodu + 13 hane sıra no | Aynı |
| 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 Raporu | gönderilmez | günlük, en geç izleyen günün sonuna kadar, XADES-A + zaman damgası, web servis |
| ETTN | GİB sistemi üretir | Belgeyi oluşturan taraf üretir ve raporlar (faturaUUID V.1.16'dan beri zorunlu) |
| İmza | Mükellefin mali mührü/NES'i | Mükellefin mührü veya ÖE'nin mührü; 593'te cihaz sertifikası; 591'de ÖE imzası |
| Ek raporlar | yok | Ö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ıl | Tutar (TL) | Tebliğ | Yıl | Tutar (TL) | Tebliğ |
|---|---|---|---|---|---|
| 2012 | 770 | 411 | 2020 | 1.400 | 513 |
| 2013 | 800 | 422 | 2021 | 1.500 | 522 |
| 2014 | 800 | 432 | 2022 | 2.000 | 534 |
| 2015 | 880 | 442 | 2023 | 4.400 | 544 |
| 2016 | 900 | 460 | 2024 | 6.900 | 554 |
| 2017 | 900 | 476 | 2025 | 9.900 | 577 |
| 2018 | 1.000 | 490 | 2026 | 12.000 | 588 |
| 2019 | 1.200 | 504 |
[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
- 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.
- 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ı.
- 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.
- 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.
- 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.
- 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ı.
- 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.
- 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.
- 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).
- Envanter defterinin içerik detayı (XBRL GL elemanları, stok/alacak/borç işaretlemesi, örnek XML) ayrıntılı incelenmedi.
- 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
- 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.xmlaylık dönem gösteriyor, genel e-Arşiv raporu ise günlük. Bu çelişki korpustan çözülemedi. - 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.zipstandardı var, bunlarda karşılığı yok). - Stopajın yeri yazılı değil:
TaxTotaliçinde mi (0003),WithholdingTaxTotaliçinde mi, yoksa ikisinde birden mi;WithholdingTaxTotalkullanıldığındaPayableAmountstopaj düşülmüş mü hesaplanacak? Kılavuz hiçbirini söylemiyor. - 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_PROVIDERsağlayıcılarının GİB nezdinde kayıtlı olup olmadığı, bir sağlayıcı listesi bulunup bulunmadığı bilinmiyor. - 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.
- 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.
- e-Sigorta Komisyon Gider Belgesine ait teknik kılavuz korpusta yok —
ProfileID=EARSIVBELGEtercihi, 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ı. - 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).
xsd/earsiv_schematron.xsl'inNodeTypeuyuş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'unbankReceipt/adisyon/zRaporiçermemesi amamRapor/ymRaporiçermesi çözülemedi.- Her iki XSD'deki
xs:uniquekı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. - e-Bilet WSDL adresi: kılavuz V2.1 (2016)
portal.efatura.gov.tr, Etkinlik V1.3 (2023)portal.ebelge.gov.trdiyor; 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. - Kıymetli maden örneklerinde
cac:Signaturehiç yok, oysa kılavuz Zorunlu(1..n) diyor — örneklerin mi eksik olduğu doğrulanamadı. - 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ış.
- 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."
- 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
- 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.
- 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).
- 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.
- 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.
- 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.
- 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.
- 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).
- 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ı.
- Ö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.
- Ö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.
- 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.
- 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ılaraması 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 Tarihi | RG No | 509'daki dipnot sayısı |
|---|---|---|---|
| 515 | 10.01.2020 | 31004 | 1 (dipnot 67) |
| 526 | 09.02.2021 | 31390 | 9 (8, 17, 27, 36, 37, 57, 84, 85, 87) |
| 535 | 22.01.2022 | 31727 | 19 (6, 7, 9, 10, 12, 15, 16, 18, 19, 22, 23, 29, 30, 31, 32, 35, 38, 39, 72) |
| 550 | 07.10.2023 | 32332 | 9 (11, 13, 14, 20, 21, 60, 66, 68, 70) |
| 573 | 12.11.2024 | 32720 | 47 (509'daki değişikliklerin yarıdan fazlası) |
| 589 | 31.12.2025 | 33124 (5. Mükerrer) | 2 (24, 25) |
| TOPLAM | 87 |
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. | KONU | ESKİ HALİ | YENİ HALİ | Tebliğ | RG Tarih/No |
|---|---|---|---|---|---|
| 1 | Tanı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," | 573 | 12.11.2024 / 32720 |
| 2 | Tanı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" | 573 | 12.11.2024 / 32720 |
| 3 | Tanım: İDİS | (yoktu) | "İnşaat Demiri İzleme Sistemi (İDİS)" tanımı eklendi | 573 | 12.11.2024 / 32720 |
| 4, 5 | Sertifikasyon merkezi adı | "TÜBİTAK-UEKAE" / "TÜBİTAK-UEKAE-BİLGEM/KAMU SM" | "TÜBİTAK BİLGEM KAMU SM" | 573 | 12.11.2024 / 32720 |
| 6 | e-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" | 535 | 22.01.2022 / 31727 |
| 7 | e-Ticaret e-Fatura zorunluluğu | Sadece 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 TL | 535 | 22.01.2022 / 31727 |
| 8 | e-Fatura kapsamı (bent 6) | (yoktu) | EK BENT: SGK ile sözleşmeli sağlık hizmeti sunucuları, medikal malzeme ve ilaç/etken madde tedarikçileri | 526 | 09.02.2021 / 31390 |
| 9 | e-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 TL | 535 | 22.01.2022 / 31727 |
| 10 | e-Fatura kapsamı (bent 8) | (yoktu) | EK BENT: Kültür ve Turizm Bakanlığı / belediye yatırım-işletme belgeli otel işletmeleri | 535 | 22.01.2022 / 31727 |
| 11 | e-Fatura kapsamı (bent 9) | (yoktu) | EK BENT: EPDK şarj ağı işletmeci lisansı sahipleri ve sertifika verdikleri şarj istasyonu işletmecileri | 550 | 07.10.2023 / 32332 |
| 12 | e-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…" | 535 | 22.01.2022 / 31727 |
| 13 | Yeniden 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çer | 550 | 07.10.2023 / 32332 |
| 14 | Ferdi 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) | 550 | 07.10.2023 / 32332 |
| 15, 16 | e-Fatura geçiş süresi | Had 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şı" | 535 | 22.01.2022 / 31727 |
| 17–20 | Geç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.2024 | 526 / 535 / 550 | ilgili tarihler |
| 21 | Bavul ticareti (özel fatura) | "1/7/2020 tarihinden itibaren" | "Başkanlık tarafından ebelge.gib.gov.tr adresinde yapılan duyuruda belirtilecek tarihten" | 550 | 07.10.2023 / 32332 |
| 22, 23 | e-Arşiv IV.2.4.2 başlığı/gövdesi | Sadece AHS / ilan / reklam aracıları, 1.1.2020 | Başlığa ve gövdeye e-ticaret satıcıları ile 1.7.2022 / izleyen 7. ay başı tarihleri eklendi | 535 | 22.01.2022 / 31727 |
| 27 | e-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 eklendi | 526 | 09.02.2021 / 31390 |
| 26 | e-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" | 573 | 12.11.2024 / 32720 |
| 28 | Gü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 YOK | 573 | 12.11.2024 / 32720 |
| 24 | Basit 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)" | 589 | 31.12.2025 / 33124 (5. Mük.) |
| 25 | Basit usul / işletme hesabı ertelemesi | (yoktu) | "1/1/2026"dan sonra: "(basit usul + işletme hesabı … açısından 1/1/2027)" | 589 | 31.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 kabul | 535 | 22.01.2022 / 31727 |
| 31 | e-İ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ç)" | 535 | 22.01.2022 / 31727 |
| 32 | e-İ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" | 535 | 22.01.2022 / 31727 |
| 33, 34 | e-İ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 eklendi | 573 | 12.11.2024 / 32720 |
| 36 | e-İrsaliye — maden/şeker | Sadece ruhsat/sertifika sahipleri | "(yaptıkları sözleşmeye istinaden maden üretim faaliyetinde bulunan mükellefler dahil)" | 526 | 09.02.2021 / 31390 |
| 37 | e-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" | 526 | 09.02.2021 / 31390 |
| 38, 39 | e-Döviz + kıymetli maden | Sadece "Döviz Alım / Döviz Satım" belgeleri | 385 SN VUK GT kapsamındaki "Döviz ve Kıymetli Maden Alım/Satım Belgesi" de kapsama alındı | 535 | 22.01.2022 / 31727 |
| 40–49, 52, 54–56 | e-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) | 573 | 12.11.2024 / 32720 |
| 50 | e-Dekont red sonrası bekleme | Reddi izleyen 3 ay içindeki başvurular kabul edilmez | Reddi izleyen 6 ay içindeki başvurular kabul edilmez | 573 | 12.11.2024 / 32720 |
| 53 | e-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 olabilir | 573 | 12.11.2024 / 32720 |
| 57 | e-Adisyon | (bölüm yoktu) | IV.12. e-Adisyon Uygulaması bölümünün tamamı eklendi | 526 | 09.02.2021 / 31390 |
| 59 | e-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ğil | 573 | 12.11.2024 / 32720 |
| 60, 70 | Yazım hataları | "V.1. Uygulamalardan Yaralanma Yöntemleri"; "uygulamasına olarak dâhil" | "Yararlanma"; "uygulamasına dâhil" | 550 | 07.10.2023 / 32332 |
| 61 | Yanlış 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" | 573 | 12.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ınmaz | 573 | 12.11.2024 / 32720 |
| 63 | Doğ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" | 573 | 12.11.2024 / 32720 |
| 64, 65 | Doğ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ım | 573 | 12.11.2024 / 32720 |
| 66 | "NİHAİ TÜKETİCİ" e-Arşiv haddi | Vergiler dahil toplam satış tutarı 500 TL'ye kadar | Vergiler 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) | 550 | 07.10.2023 / 32332 |
| 67 | ÖKC muafiyetli e-Arşiv | Sadece 483 SN VUK GT md.6 şartlarıyla ÖKC muafiyeti olanlar | 507 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 yetkisi | 515 | 10.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) | 550 | 07.10.2023 / 32332 |
| 69 | Belge numarası | Genel fıkra içinde e-Dekont için "4 haneli birim kodu + en az 14 haneli sıra numarası" parantezi | e-Dekont numarası ayrı fıkraya taşındı; genel fıkrada yalnızca IATA 13 haneli bilet numarası istisnası kaldı | 573 | 12.11.2024 / 32720 |
| 71, 73 | Islak 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ı" | 573 | 12.11.2024 / 32720 |
| 72 | Kâğı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ı) | 535 | 22.01.2022 / 31727 |
| 74–78 | e-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ı | 573 | 12.11.2024 / 32720 |
| 79, 80 | Ceza 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 girdi | 573 | 12.11.2024 / 32720 |
| 81–83 | Mali mühür (V.9) | "TÜBİTAK-UEKAE" (3 yerde) | "TÜBİTAK BİLGEM KAMU SM" | 573 | 12.11.2024 / 32720 |
| 84 | Mali mühür üreticisi | Sadece TÜBİTAK | BTK tarafından yetkilendirilen ESHS kuruluşları da Başkanlıkça mali mühür üretimi/satışı için yetkilendirilebilir | 526 | 09.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 zorunlu | 526 | 09.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) | 573 | 12.11.2024 / 32720 |
| 87 | Yö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 yetkisi | 526 | 09.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.
| Madde | Değişen bölüm | Ne yaptı |
|---|---|---|
| 1 | II. 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 |
| 2 | IV.2.4.3 e-Arşiv zorunluluğu | En 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ı |
| 3 | IV.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 |
| 4 | IV.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şı) |
| 5 | IV.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 |
| 6 | IV.11.2 e-Dekonta dahil olma | Banka odaklı ifadeler "IV.11.1'de belirtilen mükellefler"e çevrildi; red sonrası bekleme 3 ay → 6 ay |
| 7 | IV.11.3 e-Dekont bilgileri | "bankalardan," ibaresi kaldırıldı; "Bankalar," → "IV.11.1'de belirtilen mükellefler," |
| 8 | IV.11.4 e-Dekont geçiş | VUK 435(2) kuruluşları istemeleri halinde 1/1/2025'ten itibaren dahil olabilir |
| 9 | IV.11.5 e-Dekont geçiş süresi | "olacağı belirtilen bankaların," → "edilenlerin," |
| 10 | IV.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) |
| 11 | V.1.2 Özel Entegratör | Yanlış 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ğı |
| 12 | V.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 |
| 13 | V.4 Belge Numarası | e-Dekont parantezi genel fıkradan çıkarıldı |
| 14 | V.5.5 e-Müstahsil Makbuzu | Yeni fıkra: ıslak imza yerine elektronik doğrulama + Başkanlığa düzenli bilgi verme yükümlülüğü getirme yetkisi |
| 15 | V.5.6 e-Gider Pusulası | Aynı içerikte yeni fıkra (ıslak imza yerine elektronik doğrulama) |
| 16 | V.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ı |
| 17 | V.7 Kâğıt düzenlenebilecek hâller | (ç) bendine "ve e-Fatura yerine e-Arşiv Fatura düzenlenmesine" eklendi; ceza muafiyeti kapsamı genişledi |
| 18 | V.9 Mali Mühür | Tüm "TÜBİTAK-UEKAE" ibareleri "TÜBİTAK BİLGEM KAMU SM" oldu |
| 19 | VII. 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ı |
| 20 | Yü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) |
| 21 | Yürütme | Hazine 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.
| Madde | Ne 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 2 | Yayımı tarihinde (31/12/2025) yürürlüğe girer |
| MADDE 3 | Hazine ve Maliye Bakanı yürütür |
Portal iş kuralı — 31.08.2026 itibarıyla yürürlükteki matris:
| Mükellef grubu | 1/1/2025 – 31/12/2025 | 1/1/2026 – 31/12/2026 | 1/1/2027 ve sonrası |
|---|---|---|---|
| Bilanço esası (genel) | Vergiler dahil 3 Bin TL üzeri → e-Arşiv zorunlu | Tutara bakılmaksızın zorunlu | Tutara bakılmaksızın |
| Basit usul ticari kazanç | 3 Bin TL üzeri | 3 Bin TL üzeri (589 ile 1 yıl uzatıldı) | Tutara bakılmaksızın |
| İşletme hesabı esası | 3 Bin TL üzeri | 3 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 / konu | Eklenen kurallar | Güncellenen |
|---|---|---|---|
28.01.2025 (20250128) — 12 kalem | İADE + İlaç/Tıbbi Cihaz | IADEInvioceCheck, AdditionalItemIdentificationIDType, IlacTibbiCihazAdditionalItemIdentificationCheck, PartyIdentificationSchemeIDCheck (DespatchAdvice), PartyIdentificationPartyNamePersonCheck | TaxExemptionReasonCodeType, ihracExemptionReasonCodeType, istisnaTaxExemptionReasonCodeType, TaxExemptionReasonCodeCheck, InvoiceTypeCodeCheck, InvoiceTypeCodeList, ProfileIDType (ILAC_TIBBICIHAZ) |
28.04.2025 (20250428) — 10 kalem | Teknoloji Desteği | TeknolojiDestekAdditionalItemIdentificationCheck, PartyIdentificationTEKNOLOJIDESTEKCheck + ReceiptAdvice tarafına aynı taraf kontrolleri | InvoiceTypeCodeList/Check (TEKNOLOJIDESTEK), AdditionalItemIdentificationIDType (TELEFON, TABLET_PC) |
05.09.2025 (20250905) — 5 kalem | İhraç kayıtlı DİİB satır kodu | IhracKayitliPartyIdentificationIDType (SATICIDIBSATIRKOD, ALICIDIBSATIRKOD) | AdditionalItemIdentificationIDType (DIGER), IhracKayitliPartyIdentificationIDTypeheck (702), IADEInvioceCheck |
11.09.2025 (20250911) — 1 kalem | İstisna kodu | — | TaxExemptionReasonCodeType |
04.11.2025 (20251104) — 3 kalem | Bakım | — | IlacTibbiCihazAdditionalItemIdentificationCheck, 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İK | YatirimTesvikInvoiceTypeCodeCheck, ...ContractDocumentReferenceIDCheck, ...CommodityClassificationCheck, ...ItemClassificationCodeCheck, ...IstisnaCheck, ...IstisnaCalculationSequenceNumericCheck, ...TaxExemptionReasonCode308Check, ...339Check, ...ItemInstanceCheck, ...KDVCheck, YatirimTesvikEArsivInvoiceTypeCodeList, YatirimTesvikItemClassificationCodeList | ProfileIDType (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, YatirimTesvikLineKDVCheck | ProfileIDType / ProfileIDTypeDespatchAdvice (IDIS, IDISIRSALIYE), PartyIdentificationIDType (SEVKIYATNO), GeneralWithholdingTaxTotalCheck, IADEInvioceCheck, TaxExemptionReasonCheck, YatirimTesvikItemInstanceCheck, YatirimTesvikKDVCheck, YatirimTesvikInvoiceTypeCodeCheck, YatirimTesvikEArsivInvoiceTypeCodeList, InvoiceTypeCodeList/Check |
12.03.2026 (20260312) — 4 kalem | 555 / Demirbaş KDV | DemirbasKDVTaxExemptionCheck | InvoiceTypeCodeCheck, TaxExemptionReasonCodeType (555 eklendi), TaxExemptionReasonCodeCheck (555 kapsam dışı bırakıldı) |
01.07.2026 (20260701) — 17 kalem, paketteki en güncel kayıt | ENERJİ (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.xml → InvoiceTypeCodeList) 20 değerdir:
SATIS, IADE, TEVKIFAT, TEVKIFATIADE, ISTISNA, OZELMATRAH, IHRACKAYITLI, SGK, KOMISYONCU, HKSSATIS, HKSKOMISYONCU, KONAKLAMAVERGISI, SARJ, SARJANLIK, TEKNOLOJIDESTEK, YTBSATIS, YTBIADE, YTBISTISNA, YTBTEVKIFAT, YTBTEVKIFATIADE
| Yeni tip | V1.31 | V1.43 kılavuz | Codelist.xml | Not |
|---|---|---|---|---|
TEVKIFATIADE | ✘ | ✔ | ✔ | Tevkifatlı faturanın iadesi |
SGK | ✘ | ✔ | ✔ | SGK kapsamı satışlar |
KOMISYONCU | ✘ | ✔ | ✔ | Hal Kayıt Sistemi |
HKSSATIS, HKSKOMISYONCU | ✘ | ✘ (kılavuz metninde yok) | ✔ | Yalnız Codelist'te |
KONAKLAMAVERGISI | ✘ | ✔ | ✔ | |
SARJ / SARJANLIK | ✘ | ✔ | ✔ | SARJ = haftalık, SARJANLIK = anlık |
TEKNOLOJIDESTEK | ✘ | ✔ | ✔ | 28.04.2025; yalnız EARSIVFATURA |
YTBSATIS, YTBIADE, YTBISTISNA, YTBTEVKIFAT, YTBTEVKIFATIADE | ✘ | ✔ | ✔ | 09.12.2025; e-Arşiv Yatırım Teşvik |
Senaryo–tip kısıtları (UBL-TR_Common_Schematron.xml):
IADEtipi yalnızcaTEMELFATURA, EARSIVFATURA, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS, KAMUsenaryolarında olabilir → TICARIFATURA'da IADE kullanılamaz.ENERJI↔SARJ/SARJANLIKçift yönlü zorunlu eşleşme.TEKNOLOJIDESTEK→ProfileIDmutlakaEARSIVFATURA.YatirimTesvikInvoiceTypeCodeCheck: YATIRIMTESVIK'te tipSATIS, ISTISNA, IADE, TEVKIFAT, TEVKIFATIADE.IdisInvoiceTypeCodeCheck: IDIS'te tipSATIS, ISTISNA, IADE, TEVKIFAT, TEVKIFATIADE, IHRACKAYITLI.IADEInvioceCheck:IADE/TEVKIFATIADE/YTBIADE/YTBTEVKIFATIADEtiplerinde iade edilen fatura sayısı kadarcac:BillingReference/cac:InvoiceDocumentReference; her birindecbc:DocumentTypeCode=İADE/IADEvecbc:IDtam 16 hane.
5.2 Senaryolar (ProfileID)
| V1.31 (5 değer) | V1.43 (16 değer) |
|---|---|
| TEMELFATURA, TICARIFATURA, YOLCUBERABERFATURA, EARSIVFATURA, IHRACAT | Yukarı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):
| Liste | Değerler |
|---|---|
ProfileIDType (e-Fatura) | TICARIFATURA, TEMELFATURA, YOLCUBERABERFATURA, IHRACAT, OZELFATURA, KAMU, HKS, ENERJI, ILAC_TIBBICIHAZ, YATIRIMTESVIK, IDIS (11) |
ProfileIDTypeEarchive | EARSIVFATURA |
ProfileIDTypeDespatchAdvice | TEMELIRSALIYE, HKSIRSALIYE, IDISIRSALIYE |
ProfileIDTypeGoruntuleme | Yukarıdaki 11 + EARSIVFATURA (12) |
DespatchAdviceTypeCodeList | SEVK, MATBUDAN |
TUZAK:
STDKODFATURAV1.43 kılavuz tablosunda vardır amaProfileIDTypeschematron 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ı
| Alan | Değ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 eklenenler | PLAKA, SEVKIYATNO |
LicensePlateIDSchemeIDType | PLAKA, 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:
| Kod | Liste | Adı |
|---|---|---|
| 233 | Kısmi İstisna | 2942 Sayılı Kamulaştırma Kanunu Kapsamında Taşınmazların Kamulaştırmayı Yapan Devlet ve Kamu Tüzel Kişilerine Devri |
| 329 | Tam İstisna | FATİH Projesi Kapsamında Milli Eğitim Bakanlığına Yapılacak Mal Teslimi ve Hizmet İfası |
| 341 | Tam İstisna | Afetzedelere Bağışlanacak Konutların İnşasına İlişkin İstisna |
| 342 | Tam İstisna | Genel Bütçeli Kamu İdarelerine Bağışlanacak Taşınmazların İnşasına İlişkin İstisna |
| 343 | Tam İstisna | Genel Bütçeli Kamu İdarelerine Bağışlanacak Konutların Yabancı Devlet Kurum ve Kuruluşlarına Teslimine İlişkin İstisna |
| 344 | Tam İstisna | 13/o Milli Savunma ve İç Güvenlik İhtiyaçlarında Kullanılmak Üzere Taşıt Teslimi |
| 555 | Diğ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:
| Kod | V1.31 | V1.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 |
|---|---|
TaxExemptionReasonCodeType | 001, 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) |
istisnaTaxExemptionReasonCodeType | Yukarıdakinin alt kümesi (97 kod); 151, 351, 555 içermez, 308 ve 339 içerir |
ozelMatrahTaxExemptionReasonCodeType | 801–812 |
ihracExemptionReasonCodeType | 701, 702, 703, 704 |
YatirimTesvikTaxExemptionReasonCodeType | 308, 339 (01.07.2026'da eklendi) |
WithholdingTaxType | 601–627 + 801–825 (52 kod) |
TaxType | 0003, 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ık501kodu 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ğilUBL-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
| Soru | Cevap | Kanı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.xmlve 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ı:
| Versiyon | Yayım Tarihi | Sayfa | Açıklama |
|---|---|---|---|
| 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. |
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:
| Tarih | Kaynak | Ne oluyor |
|---|---|---|
| 22.05.2026 | e-Arşiv Başvuru Kılavuzu v1.8 | Entegrasyon yöntemiyle başvuracaklara TURKAK onaylı ISO zorunluluğu; "1 Giriş" bölümüne e-Gider Pusulası eklendi |
| 29.06.2026 | e-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.2026 | History.txt 20260701 | ENERJİ (SARJ/SARJANLIK) kuralları + YatirimTesvikTaxExemptionReasonCodeType (308, 339) |
| 27.07.2026 | UBL-TR Kod Listeleri V1.43 | Kısmi İstisna Kodları Listesi güncellemesi (233) |
| 01.01.2027 | 589 SN VUK GT | Basit usul + işletme hesabı mükelleflerinde e-Arşiv Faturanın tutara bakılmaksızın zorunlu hâle gelmesi |
| İkinci bir duyuruya kadar | 27.03.2026 duyurusu | Sicil/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ın | 509 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 TL | 589 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ı yok | 509 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 TL | 509 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 TL | 509 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 TL | 509 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 üzeri | 509 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 ANLIK | e-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, YTBTEVKIFATIADE | UBL-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, IDISIRSALIYE | UBL-TR_Codelist.xml |
| 15 | "V1.43'te STDKODFATURA var, kullanabilirim" | Kılavuz tablosunda var ama schematron ProfileIDType'ta YOK → gönderilirse reddedilir | Kı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 üretebilir | 509 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/2025 | 573 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 ay | 509 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 yasak | 509 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ğı geldi | 509 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 girdi | 509 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 var | 509 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üzenler | 509 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" oldu | 509 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 20000 | Kı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 zorunlu | IADEInvioceCheck (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ğil | 27.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üman | Ne yazıyor (ESKİ) | Neden yanıltıyor |
|---|---|---|
| 509 Çok Sorulan Sorular | Soru 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 Tablosu | Sağ 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
| Konu | Durum | Açıklama |
|---|---|---|
| 14.09.2026'da devreye girecek değişiklikler | DOĞRULANAMADI | Korpusta 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ği | DOĞRULANAMADI | Duyurunun 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ĞRULANAMADI | Dipnot 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ĞRULANAMADI | Aynı 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ĞRULANAMADI | TaxExemptionReasonCodeType 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ğu | DOĞRULANAMADI | V1.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ği | DOĞRULANAMADI | V1.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ĞRULANAMADI | 509'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 |
|---|---|---|
| 1 | YTBTEVKIFAT ↔ 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. | |
| 2 | TEVKIFATIADE 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ış. | |
| 3 | SGKInvoiceCheck 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. | |
| 4 | 650 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. | |
| 5 | Satı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). | |
| 6 | Tevkifat 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. | |
| 7 | 555'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. | |
| 8 | 627 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. | |
| 9 | 601 (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. | |
| 11 | Kı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. | |
| 12 | 351 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. | |
| 13 | 509 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. | |
| 14 | e-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 |
|---|---|
| 1 | SARJ = HAFTALIK, SARJANLIK = ANLIK. İsimlendirme sezgiye terstir. |
| 2 | Tevkifat 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. |
| 3 | 650 tevkifat kodu kullanılamaz — WithholdingTaxTypeWithPercent'te var ama WithholdingTaxType'ta yok. 616/626'ya map et. |
| 4 | 801-812 iki farklı listedir: özel matrah (TaxExemptionReasonCode) ve tevkifat (TaxTypeCode). Tek tabloda tutma. |
| 5 | 308 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). |
| 7 | TEVKIFATIADE tipinde fatura seviyesinde cac:WithholdingTaxTotal kullanılamaz. IADE tipine geçmek veya kalem seviyesi tevkifat kullanmak gerekir — GİB test ortamında doğrulanmalı. |
| 8 | IADE tipi TICARIFATURA'da kesilemez (TEVKIFATIADE kesilebilir). |
| 9 | PayableAmount'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. |
| 10 | Senaryo/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. |