e-Fatura XSLT nedir? Görüntü dosyası nasıl çalışır?
e-Fatura bir PDF değil, bir XML dosyasıdır. Faturayı ekranda gördüğünüz düzenli belgeye dönüştüren şey XSLT (Extensible Stylesheet Language Transformations) adlı görünüm şablonudur. Bu yazıda XSLT'nin ne olduğunu, faturaya nasıl eklendiğini ve en sık karşılaşılan hataları anlatıyoruz.
XML veri, XSLT görünüm
Türkiye'de e-Fatura, e-Arşiv ve e-İrsaliye belgeleri GİB'in UBL-TR 1.2.1 standardına uygun XML dosyalarıdır. XML yalnızca veriyi taşır: satıcı, alıcı, satırlar, vergiler, toplamlar. Bu verinin nasıl görüneceğini XSLT belirler:
- XML (veri): "Fatura no: ABC2026000000123, KDV: %20, Toplam: 12.000 TL"
- XSLT (görünüm): "Logoyu sol üste koy, fatura numarasını kalın yaz, satırları tablo yap, toplamları sağa hizala."
- Sonuç (HTML): Müşterinin tarayıcıda gördüğü ve yazdırdığı fatura.
Aynı XML'e farklı XSLT uygulanırsa fatura bambaşka görünür ama içerik ve hukuki geçerlilik değişmez.
XSLT faturaya nasıl eklenir?
XSLT dosyası Base64 olarak kodlanır ve fatura XML'inin içine gömülür. UBL-TR'de bunun yeri cac:AdditionalDocumentReference altındaki cbc:EmbeddedDocumentBinaryObject alanıdır:
<cac:AdditionalDocumentReference>
<cbc:ID>...</cbc:ID>
<cbc:IssueDate>2026-10-15</cbc:IssueDate>
<cbc:DocumentType>XSLT</cbc:DocumentType>
<cac:Attachment>
<cbc:EmbeddedDocumentBinaryObject mimeCode="application/xml"
encodingCode="Base64" filename="sablon.xslt">PD94bWwg...</cbc:EmbeddedDocumentBinaryObject>
</cac:Attachment>
</cac:AdditionalDocumentReference>
Bu işi genellikle entegratörünüz ya da ERP programınız yapar. Siz XSLT dosyasını bir kez yüklersiniz, her fatura kesildiğinde otomatik olarak içine eklenir. Fatura hangi portalda veya görüntüleyicide açılırsa açılsın aynı görünür.
Sık yapılan XSLT hataları ve çözümleri
| Sorun | Olası neden | Çözüm |
|---|---|---|
| Türkçe karakterler bozuk (ı, ÅŸ) | Dosya UTF-8 olarak kaydedilmemiş | XSLT'yi UTF-8 kaydedin, <xsl:output encoding="UTF-8"/> kullanın |
| Logo görünmüyor | Logo dış bir adresten çağrılıyor ya da Base64 hatalı | Logoyu Base64 olarak XSLT içine gömün; dosyayı küçük tutun |
| Tablo sayfadan taşıyor | Sabit genişlikler, uzun ürün adları | Yüzde genişlik ve satır kaydırma kullanın; uzun XML ile test edin |
| Tevkifat veya iskonto satırı yok | Şablon bu alanları okumuyor | Tevkifatlı ve iskontolu örnek XML ile önizleyin |
| Fatura boyutu çok büyük | Yüksek çözünürlüklü görseller | Logo, kaşe ve imza görsellerini sıkıştırın (ideal olarak her biri 100 KB altı) |
| Bazı portallarda farklı görünüyor | XSLT 2.0 veya tarayıcıya özel kod | XSLT 1.0 ile uyumlu kalın; tarayıcılar ve görüntüleyiciler XSLT 1.0 kullanır |
Mevcut XSLT dosyamı düzenleyebilir miyim?
Evet. Elinizdeki .xslt veya .xsl dosyasını edXdocu'ya yükleyip aynı görsel editörde düzenleyebilirsiniz. Kendi faturanızın XML'iyle anında önizleme yaparak değişiklikleri kontrol edersiniz.
Sık sorulan sorular
e-Fatura XSLT dosyası nedir?
e-Faturanın UBL-TR XML verisini okunabilir bir belgeye dönüştüren görünüm şablonudur. Logo, yerleşim, tablo ve yazı tipleri bu dosyada tanımlanır.
XSLT olmadan e-Fatura gönderilebilir mi?
Gönderilebilir. Bu durumda alıcı tarafındaki sistemin varsayılan görünümü kullanılır. Kendi XSLT'nizi eklediğinizde faturanız her yerde sizin tasarımınızla görünür.
XSLT bilmeden tasarım yapılabilir mi?
Evet. edXdocu ile sürükle-bırak yöntemiyle tasarlarsınız, XSLT kodu otomatik üretilir.
XSLT kodu yazmadan e-Fatura tasarlayın.
Ücretsiz deneyin