“Schematron KONTROL SONUCU HATALI” ifadesi XML dosyalarının (özellikle e-fatura, e-arşiv, e-irsaliye, e-defter gibi dijital belgelerin) doğrulama aşamasında görülen bir hatadır.
🔍 1. Schematron nedir?
Schematron, bir XML dosyasının kurallara (şemalara) uygun olup olmadığını kontrol eden bir sistemdir.
Yani XML içeriğinde:
-
Zorunlu alanlar doldurulmuş mu,
-
Alanların formatı doğru mu (örneğin tarih biçimi, vergi numarası yapısı),
-
Alanlar birbiriyle tutarlı mı (örneğin KDV oranı ve tutar uyumu)
gibi kontrolleri yapar.
⚠️ 2. “KONTROL SONUCU HATALI” ne demek?
Bu ifade, dosyanızın Schematron kontrolünden geçemediği, yani belirli kurallara uymadığı anlamına gelir.
Basitçe:
“XML dosyanızda, standartlara göre bir veya daha fazla kural hatası var.”
📄 3. Nerelerde görülür?
Genellikle şu sistemlerde karşımıza çıkar:
-
GİB (Gelir İdaresi Başkanlığı) e-Fatura, e-Arşiv, e-İrsaliye sistemleri
-
UBL-TR formatındaki XML dosyaları (örnek: UBL 2.1)
-
Entegratör sistemleri (örnek: Logo, Mikro, Paraşüt, Nebim, KolayOfis vs.)
🧩 4. Hatanın nedeni ne olabilir?
Bazı yaygın nedenler şunlardır:
-
Eksik veya yanlış doldurulmuş alan (örneğin <TaxAmount> boş)
-
Geçersiz vergi oranı (örneğin 18 yerine 0.18 yazılmış)
-
Yanlış tarih veya saat biçimi (örnek:
2025-13-01geçersiz) -
Zorunlu etiketlerin eksik olması (örnek:
<AccountingSupplierParty>etiketi yok) -
Toplam tutar alanları arasında matematiksel tutarsızlık (örneğin net + vergi ≠ toplam)
🔧 5. Ne yapmalısınız?
-
XML dosyasını bir Schematron Validator veya UBL doğrulama aracı ile kontrol edin.
-
Hata mesajı genellikle detay içerir (örnek: “[Rule] TaxSubtotal must exist for each TaxCategory”).
-
O hataya göre ilgili alanı düzeltin.
-
Düzeltilmiş dosyayı yeniden yükleyin veya gönderin.
1150 schematron hatası ne anlama gelir ?
“1150 Schematron Hatası” ifadesi, özellikle GİB (Gelir İdaresi Başkanlığı) sistemlerinde (örneğin e-Fatura, e-Arşiv Fatura, e-İrsaliye) yüklenen XML dosyalarının doğrulaması sırasında sıkça görülen spesifik bir kontrol hatasıdır.
Bu hata, UBL-TR Schematron kurallarından 1150 numaralı kuralın ihlali anlamına gelir.
Yani XML dosyanız, belirli bir zorunlu alan veya mantıksal kuralı sağlamamış.
⚙️ 1150 Schematron Hatası Ne Anlama Geliyor?
🔸 Hata açıklaması (resmî tanımı):
[SCH-1150] – Faturada zorunlu alanlardan biri eksik veya hatalı.
Özellikle, bu hata genellikle şu durumlarda ortaya çıkar:
Fatura tipi, belgeye uygun değil (örnek: SATIS olması gerekirken ISTISNA veya boş bırakılmış),
veya UBL içindeki alanlardan biri (örneğin
<cbc:ProfileID>veya<cbc:InvoiceTypeCode>) eksik.
📄 Teknik olarak en sık nedenleri
-
ProfileIDetiketi eksik veya hatalı
Doğru örnek:Eğer bu alan yoksa ya da yanlış yazılmışsa, sistem “1150” hatasını verir.
-
InvoiceTypeCodeetiketi hatalı veya geçersiz
Bu alan, faturanın türünü belirtir.
Örnek doğru kullanım:Hatalı örnekler:
-
<cbc:InvoiceTypeCode></cbc:InvoiceTypeCode>(boş) -
<cbc:InvoiceTypeCode>FATURA</cbc:InvoiceTypeCode>(geçersiz değer)
-
-
UBL versiyonu veya namespace uyumsuzluğu
Bazı entegratörlerde UBL 2.1 yerine yanlış sürüm bilgisi yazıldığında da 1150 dönebilir.
🧠 Basitçe özetlersek:
🔹 1150 Schematron hatası, genellikle fatura tipini veya profil bilgisini belirten alanların eksik veya yanlış olması nedeniyle oluşur.
Yani sistem:
“Bu XML’de hangi tür belge olduğunu anlayamadım”
diyor.
🧰 Çözüm:
-
XML dosyanızı açın.
-
Aşağıdaki alanları kontrol edin:
-
Eğer eksik veya yanlışsa düzeltin.
-
Dosyayı yeniden doğrulayıp gönderin.
Schematron hatası nasıl düzeltilir ?
“Schematron Hatası” genellikle e-Fatura, e-Arşiv, e-İrsaliye, e-Defter gibi belgelerde XML dosyası oluşturulurken yapılan biçimsel veya mantıksal hatalardan kaynaklanır.
Bu hataları düzeltmek için birkaç temel adım izlenir.
Aşağıda adım adım nasıl düzelteceğini sade ve teknik olarak anlatıyorum 👇
🧩 1. Öncelikle ne olduğunu bil
Schematron hatası, belgedeki XML yapısının “şemaya” (UBL-TR standartlarına) uygun olmadığını gösterir.
Yani sistem şunu söylüyor:
“Bu dosyada kural dışı veya eksik bilgi var, işleme alamam.”
⚠️ 2. Hata kodunu mutlaka incele
Her Schematron hatasının bir kod numarası vardır (örnek: 1150, 1234, 4020 vb.).
Bu kod, hangi kuralın ihlal edildiğini gösterir.
Örneğin:
-
1150 → Fatura tipi veya profil bilgisi eksik (ProfileID / InvoiceTypeCode hatası)
-
1234 → KDV oranı ve tutar tutarsız
-
4020 → Zorunlu adres alanı eksik
-
4025 → Vergi numarası veya TCKN yanlış biçimde
Her hata, XML’de belirli bir alanla ilgilidir.
🔍 3. Hata mesajını bul
Sistemin verdiği hata çıktısında genelde şöyle bir satır olur:
Burada:
-
SCH-1150→ hata kodu -
InvoiceTypeCode missing or invalid→ hangi alanın hatalı olduğunu gösterir
Bu bilgi olmadan doğrudan düzeltme yapmak zordur.
🛠️ 4. XML dosyasını kontrol et
Fatura dosyanızı (örneğin .xml) Notepad++ veya bir XML düzenleyicide aç.
Hata kodundaki alana git ve kontrol et:
🔸 Örnek: 1150 hatası
Yanlış:
Doğru:
🔸 Örnek: 4020 hatası
Yanlış:
Doğru:
🧪 5. Doğrulama testi yap
Düzelttikten sonra:
-
GİB’in veya entegratörünün sunduğu UBL-TR Schematron doğrulama aracını kullan
(örnek: https://earsivportal.efatura.gov.tr/) -
“Schematron Validation” veya “UBL-TR Kontrol” seçeneğiyle XML’i yükle
-
Yeni hata kalıp kalmadığını kontrol et
💡 6. Tekrar hata alıyorsan
-
XML içeriğini bana (veya ilgili kısmını) gösterirsen, satır satır analiz edip tam hangi alanın hatalı olduğunu belirtebilirim.
-
Bazen aynı anda birkaç kural zincirleme hataya yol açabilir (örneğin yanlış KDV oranı → toplam tutar uyuşmazlığı).
✅ Özet:
| Adım | Ne yapmalısın |
|---|---|
| 1️⃣ | Hata kodunu ve mesajı öğren |
| 2️⃣ | XML dosyasını aç |
| 3️⃣ | Hata mesajında belirtilen alanı kontrol et |
| 4️⃣ | Eksik/yanlış değeri düzelt |
| 5️⃣ | GİB doğrulama aracında yeniden test et |
| 6️⃣ | Gerekirse entegratör veya yazılım destek ekibine bildir |

