🔴
Mali Mühür Merkezi TÜBİTAK Kamu SM Başvuru ve Süre Yönetimi Portalı

E-İhracat faturası keserken GTİP kodlarını girdikten sonra imzalama aşamasında mali mühür "Encoding error: UTF-8 BOM" hatası döndürüyor, fatura XML'inde Türkçe karakter sorunu mu var?

Mikro ihracat kapsamında düzenlediğimiz e-faturada 12 haneli GTİP kodlarını ve ürün detaylarını girdikten sonra mali mühür ile imzalama butonuna bastığımızda 'Encoding error: UTF-8 BOM' hatası ile karşılaşıyoruz. Fatura kalemlerindeki ürün açıklamalarında ve alıcı bilgilerinde Türkçe karakter kullanmamaya özen göstermemize rağmen imzalama aşaması başarısız oluyor. Bu hatanın asıl sebebi Türkçe karakterler midir, yoksa XML belgesinin dosya kodlama yapısıyla ilgili teknik bir problem midir?
Durum: Çözüldü Kategori: Soru-Cevap

2 Cevap

✓

Yaşadığınız sorun kesinlikle Türkçe karakterlerden (ç, ğ, ı, ö, ş, ü) kaynaklanmamaktadır. Hata mesajında yer alan "UTF-8 BOM" ifadesi, doğrudan XML dosyasının başına eklenen görünmez 3 baytlık bayt sırası işaretinden (Byte Order Mark - EF BB BF) kaynaklanan teknik bir dosya kodlama uyuşmazlığıdır.

Gelir İdaresi Başkanlığı'nın (GİB) UBL-TR standartlarına göre, tüm e-belge XML dosyaları kesinlikle BOM içermeyen UTF-8 (UTF-8 without BOM) formatında kodlanmak zorundadır. Dijital imzalama kütüphaneleri (Kamu SM AKİS veya Java XML-DSig motorları), XML belgesini kanonikleştirirken (Canonicalization - C14N) dosyanın ilk karakterinin standart XML prologu (<?xml...) olmasını bekler. Dosyanın başında gizli bir BOM imzası olduğunda, imzalama motoru bunu geçersiz/bozuk karakter olarak algılar ve imzalama işlemini güvenlik gerekçesiyle durdurarak bu hatayı fırlatır.

Bu durum genellikle şu iki senaryoda meydana gelir:

  1. Excel'den Kopyala-Yapıştır: GTİP kodlarını veya ürün listesini Excel veya Windows Not Defteri'nden ERP yazılımınıza yapıştırırken gizli kontrol karakterleri veya BOM formatı metin alanına taşınmış olabilir.
  2. ERP / Entegratör Yazılım Hatası: Kullandığınız ERP yazılımı e-ihracat XML'ini oluştururken dosyayı UTF-8 BOM'lu olarak kaydetmektedir.

Çözüm Yolları:

  • Eğer faturayı ERP üzerinden kesiyorsanız, ERP firmanızın teknik destek birimiyle görüşerek e-ihracat modülünün XML üretim fonksiyonunun 'UTF-8 Without BOM' standardına güncellenmesini talep edin.
  • Eğer faturayı XML olarak dışarı aktarıp manuel veya portal üzerinden imzalıyorsanız; XML dosyasını Notepad++ veya gelişmiş bir kod editörüyle açın. Üst menüden Kodlama (Encoding) sekmesine tıklayın ve UTF-8'e Dönüştür (BOM olmadan) seçeneğini işaretleyip dosyayı kaydedin. Ardından mali mühür ile tekrar imzalayın.
Yanıtlayan
Serkan O.

Bu hatanın Türkçe karakterlerle bir ilgisi yoktur; fatura XML dosyasının en başında Windows'un eklediği 3 baytlık gizli BOM (Byte Order Mark) karakteri bulunmaktadır. XML dosyasını Notepad++ gibi bir editörle açıp menüden 'UTF-8'e Dönüştür (BOM olmadan)' seçeneğiyle kaydedip tekrar imzalarsanız sorun çözülecektir. Sürekli tekrarlıyorsa muhasebe programınızın XML dışa aktarma modülü için güncelleme almanız gerekir.

Yanıtlayan
Murat Ç.