E-fatura birim kodu: koli mü, adet mi?

Depoda beş koli saydınız. Belgeyi düzenlerken miktarın yanındaki birim kutusuna geldiğinizde "koli" diye bir seçenek bulamıyorsunuz. İnternette bulduğunuz "birim kodları listesi" yazıları da bu soruyu cevaplamıyor, çünkü hepsi aynı tabloyu kopyalamış ve tablonun bittiği yerde duruyor. Aradığınız cevap tablonun içinde değil, tablonun yanındaki alanda.

Yazının tezi tek cümlede duruyor: koli bir ölçü birimi değil, bir kaptır. Elektronik belge "ne kadar mal" ile "kaç kapta" sorularını ayrı ayrı sorar; bunlar iki farklı alandır ve iki farklı kod listesinden beslenir. Depoda koli sayarsınız, ama belgenin miktar biriminde koli diye bir kod yoktur. İkisini aynı alana sıkıştırmak, rampadaki sayı ile belgedeki sayının hiçbir zaman birbirini tutmaması demektir.

Altı ayrım: ne kadar mal sorusu ölçü birimi alanına, kaç kapta sorusu kap cinsi alanına gider; listede varsa kılavuzun listesi, yoksa uluslararası liste; kap adedi alanı seçimlidir; yurt dışında kap kodu birim kodu olabilir
Belge tek bir soru sormuyor: miktarın birimi ile malın kabı iki ayrı karardır.

Koli bir ölçü birimi değil, bir kaptır

Bir belge satırında iki farklı sayı vardır ve ikisi de doğrudur. Birincisi malın miktarıdır: altmış adet, yirmi üç kilogram, dört yüz metre. Bu sayının yanında her zaman bir ölçü birimi durur ve o birim serbest metin değil, bir kod listesinden gelir. İkincisi kap bilgisidir: bu mal kaç kapta gidiyor ve o kaplar ne cinsten? Kap adedinin ve kap cinsinin kendi alanları vardır ve kap cinsinin kendi kod listesi vardır.

Karışıklık tam da burada doğuyor. Depoda konuştuğunuz dil kap dilidir — "beş koli gitti" dersiniz, "altmış adet gitti" demezsiniz. Belgeyi düzenleyen kişi ise miktar alanının başında oturuyor ve elindeki listede koli yok. O anda yapılan şey neredeyse her yerde aynı: birim kutusuna en yakın görünen şey yazılıyor ve kap bilgisi hiç doldurulmuyor. Sonuç, rampada sayılan sayının belgede hiçbir yerde durmaması oluyor.

Bu yüzden sorunun doğru hâli "koli hangi koda karşılık geliyor" değil, "koli hangi alana yazılıyor"dur. Alanı bulduğunuzda kod sorusu kendiliğinden kolaylaşıyor. Belgenin geri kalan alanlarını — taraflar, belge numarası, fiili sevk tarihi, taşıyıcı — ayrı bir yazıda ele almıştık: sevk irsaliyesinde hangi bilgiler bulunur.

Miktarın yanındaki birim: kılavuzun ölçü birimi listesi

Türkiye'de e-belge XML'inde miktar alanının birimi öncelikle Gelir İdaresi Başkanlığı'nın yayımladığı ölçü birimi listesinden alınır. Kılavuzun kendi cümlesi bunu açık söylüyor: değer kümesi öncelikle o listeden alınmalıdır, listede bulunmayan birim kodları ise başka iki listeden alınmalıdır. Bu yazının hazırlandığı gün geçerli olan sürüm UBL-TR (Kod Listeleri), Temmuz 2026, Versiyon 1.43 (GİB e-Belge kılavuzları). Sürümü yazıyoruz çünkü bu kılavuz yılda birkaç kez değişiyor; bir liste kopyasının ne zaman kopyalandığını bilmiyorsanız o listeye güvenemezsiniz.

Listeyi alfabetik olarak buraya dökmenin bir anlamı yok — o iş zaten sekiz kere yapılmış. Bunun yerine listeye işlevine göre bakalım, çünkü sahada sorulan soru "hangi harfler var" değil, "benim sattığım şey hangi gruba giriyor":

Birim ne soruyor? Listede ne var?
Sayılabilir bütünler — kaç tane? Adet için C62 kodu kullanılır. Aynı listede çift, set, yüz adet ve bin adet için de ayrı kodlar vardır — yani "tek tek satmıyorum, düzine satıyorum" durumunun karşılığı listede mevcuttur.
Ölçülen büyüklükler — ne kadar? Kilogram KGM, gram GRM, litre LTR, metre MTR, metre kare MTK, metre küp MTQ, desimetre kare DMK kodlarıyla geçer. Bu grubun ortak özelliği kesirli değer alabilmesidir.
Kaplar — koli, kutu, palet? Bu grup bu listede yoktur. Kap cinsi ayrı bir alanda, ayrı bir listeden yazılır — bir sonraki başlığın konusu.

Listede olmayan bir birimle mi satıyorsunuz?

Ton, mililitre, santimetre, metretül — sahada sürekli kullanılan bu birimlerin bir kısmı listede yok ve bu noktada çoğu kişi tıkanıyor. Oysa "listede yok" bir çıkmaz değil, kılavuzun kendi öngördüğü ikinci adımdır. Kılavuz açıkça yazıyor: bu listede bulunmayan birim kodları UN/ECE birim kodları ve Ticaret Bakanlığı'nın EDI/XML ölçü birimleri kodları listesinden alınmalıdır. Yani kapı kapalı değil, sadece ikinci bir adrese açılıyor.

Burada dikkatli olmak gerekiyor: kılavuzun dipnotları o uluslararası listelerin belirli dosyalarına işaret ediyor, ama o standartların bugünkü güncel revizyonunun hangisi olduğunu bu yazıda söylemiyoruz — çünkü kaynağı bugün doğrulayamadık ve doğrulanmamış bir sürüm numarası, listenin kendisinden daha çok zarar verir. Pratik yol şudur: kılavuzun dipnotunda gösterilen dosyayı kendiniz açın ve birimi orada arayın. Bulduğunuz kodu, hangi tarihte hangi dosyadan aldığınızı da yazarak bir yere not edin; iki yıl sonra "bu kodu neden seçtik" sorusunun cevabı yalnızca o notta olacak.

Kap cinsi ayrı bir listedir: kutu, karton kasa, kasa, çuval

Malın hangi kapta gittiği, miktar biriminin yazıldığı yere değil, kendi alanına yazılır. UBL-TR'de bu alanın adı PackagingTypeCode'dur ve kendi kod listesi vardır. Listede kutu için BX, karton kasa için DK, kasa için CR, sandık için CH, konteyner için CN, çuval için SA, torba için BG, ambalajsız gönderi için NE kodları bulunuyor.

Şimdi asıl tespit: bu listede de "koli" diye bir kod yok. En yakın iki karşılık kutu ve karton kasadır, ve hangisinin seçileceği bir çeviri değil bir karardır. Kararı bir kere verin, sonra herkes aynı kodu kullansın. Karar verirken tek soru şudur: sizin "koli" dediğiniz şey karton bir kap mı, yoksa cinsi ne olursa olsun her türlü dış ambalajın genel adı mı? Birincisiyse karton tarafı, ikincisiyse kutu tarafı daha tutarlı bir seçim olur — ama ikisi de savunulabilir, savunulamayan tek şey her belgede farklısını yazmaktır.

Kap listesi de kapalı bir liste değil: kılavuz, listede bulunmayan kap türleri için UNECE/CEFACT paket ve kap listesine yönlendiriyor. Ölçü birimi tarafındaki mantığın aynısı burada da işliyor — önce kendi listesi, sonra uluslararası liste.

Bir de uyarı: bu sorunun internette dolaşan bir cevabı var ve o cevaptaki kod iki listenin hiçbirinde geçmiyor. Kodu burada tekrar etmiyoruz, çünkü tekrar etmek onu bir adım daha yayar. Doğrulama yöntemi basit: bir kod duyduğunuzda kılavuzun kendi PDF'inde arayın. Orada yoksa, kim söylemiş olursa olsun yoktur.

Kaç koli gittiği belgede çoğu zaman hiç yazmıyor

Yukarıdaki iki bölüm alanların nerede olduğunu anlattı. Şimdi bu yazının en pratik tespiti geliyor: o alanların doldurulması zorunlu değil. UBL-TR ortak elemanlar kılavuzunda paket bilgisi elemanının içinde paket numarası, paket adedi ve kap cinsi alanlarının üçü de seçimli olarak tanımlı; taşıma ünitesi tarafındaki toplam paket adedi alanı da seçimli. Kaynak: UBL-TR Ortak Elemanlar, Nisan 2017, sürüm 0.7.

Seçimli bir alanın sahadaki karşılığı şudur: entegratörün doldurmadığı alan sessizce boş kalır. Kimse hata vermez, hiçbir uyarı çıkmaz, belge geçerli olur. Belgede yalnızca "altmış adet" yazar. Rampada sayılan beş koli hiçbir yerde yazmaz — ne belgede, ne belgenin karşı tarafta okunan hâlinde. Alıcının mal kabulünde "beş koli bekliyorduk" diyebilmesi için o beşi başka bir kâğıttan öğrenmiş olması gerekir.

Buradan çıkan iş listesi kısa ama işe yarar. Birincisi: kendi belgenizin ham hâlini bir kere açın ve kap adedi alanının dolu olup olmadığına bakın. İkincisi: doluysa hangi kodu taşıdığına bakın. Üçüncüsü: boşsa, o sayının müşteriye başka hangi yoldan gittiğini yazılı hâle getirin. Üçünü de yapmak yarım saat sürüyor ve bir daha "belgede neden koli yazmıyor" tartışması yaşamıyorsunuz.

Tek satırın yolculuğu beş adımda: depoda sayılan koli, ürün kartındaki birim, belgedeki miktar ve ölçü birimi, boş kalan kap adedi alanı, alıcının okuduğu belge
Dördüncü halka soluk çünkü zorunlu değil: doldurulmadığında koli sayısı zincirden düşüyor.

Depoda saydığınız birim ile belgeye yazılan birim aynı olmak zorunda değil

Buraya kadar okuyan çoğu kişinin sorusu şudur: "Peki ben depoda koli sayıyorsam sistemimde ne tutacağım?" Cevap rahatlatıcı: ikisi aynı olmak zorunda değil. Depo birimi ile belge birimi iki ayrı gerçektir ve ikisinin de kendi haklı sebebi vardır. Rampa kap sayar çünkü elleçlediği şey kaptır; belge malı beyan eder çünkü ölçüsü olan şey maldır.

Önemli olan, ikisi arasındaki dönüşümü kimin, ne zaman yaptığıdır. Bu dönüşümü eninde sonunda biri yapar: ya ürün kartında bir kere yapılır ve her belgede otomatik uygulanır, ya da her sevkiyatta belgeyi düzenleyen kişinin kafasında yapılır. İkincisi ilk on sevkiyatta işe yarar, on birincide bir başkası girer ve farklı hesaplar. Kural olarak yazın: dönüşüm ürün kartında durur, belgede değil.

Birimin neden serbest metin değil kodlu bir alan olduğunu, ayrık ve kesirli birimlerin neden ikişer ikişer yürüdüğünü ve bir ürün kartında bunun nasıl kurulduğunu ayrı bir yazıda ele almıştık; bu ayrımı sıfırdan kuracaksanız oradan başlayın: birimi geçiş sırasında düzeltmek.

Uluslararası tarafta kural farklı: kap kodu birim kodu olabiliyor

Yurt dışına kesilen faturada aynı ayrım geçerli mi? Hayır — ve fark, entegrasyon yapanların en çok yanıldığı noktadır. Peppol BIS Billing 3.0'ın miktar birimi için kullandığı kod listesinin adı birebir şöyle: "Recommendation 20, including Recommendation 21 codes - prefixed with X (UN/ECE)" (docs.peppol.eu). Yani orada kap kodları, X önekiyle, doğrudan birim kodu olarak kullanılabiliyor.

Peppol'ün lojistik tarafındaki kap kod listesinde karton için CT, kutu için BX, palet için PX, kafesli kasa için CR, sandık için CS kodları duruyor (docs.peppol.eu). Aynı kelime iki sistemde iki farklı yere yazılıyor: Türkiye'de kap kodu ayrı bir alanda ve öneksiz, Peppol tarafında ise miktarın birimi olarak ve önekli durabiliyor. Bir entegrasyonu iki tarafa birden bağlıyorsanız bu farkı bir yere not edin — çünkü aynı kod harflerinin iki yerde farklı anlamı var.

Buradan çıkarılacak genel ders şu: "birim kodu" diye evrensel tek bir alan yok. Hangi kod listesinin geçerli olduğunu, belgeyi hangi biçimde ve hangi idareye gönderdiğiniz belirler. Bir kodu bir yerde görüp başka bir yere taşımak, bu yazıda anlatılan bütün karışıklıkların ortak kaynağıdır.

Kılavuzun kendi örneği güncel listesiyle aynı değil

Aynı kılavuz paketinin içinde ilginç bir tutarsızlık var ve bunu bilmek, "neden bazı yerlerde farklı bir kod görüyorum" sorusunu bir anda açıklıyor. Kod listeleri kılavuzunun güncel sürümü adet için C62 veriyor. Aynı paketteki sevk irsaliyesi kılavuzunun 2018 tarihli örnek XML'i ise miktar birimi olarak NIU gösteriyor (UBL-TR Sevk İrsaliyesi, Aralık 2018, sürüm 1.2). İki belge, iki farklı kod.

Burada çok dikkatli olmak gerekiyor, çünkü bu tespitten kolayca yanlış sonuç çıkarılır. Bu yazı yalnızca iki belgenin ne yazdığını söylüyor. "Eski kod artık geçersizdir", "idare reddeder", "entegratör hata verir" gibi hiçbir sonuç çıkarmıyoruz — çünkü bunların hiçbiri elimizdeki birincil kaynaklarda yazmıyor ve kaynaksız bir hüküm, kodun kendisinden daha fazla zarar verir.

Çıkarılacak tek pratik ders şu ve bu ders yeterince değerli: bağlayıcı olan kod listesi kılavuzudur, örnek XML değil. Bir örnekte gördüğünüz kodu kopyalamadan önce güncel kod listesinde arayın. Ve kılavuz sürümünün yılda birkaç kez değiştiğini unutmayın — üç yıl önce doğru olan bir kopya bugün doğru olmayabilir. Kendi entegrasyonunuzda kullandığınız kodların hangi kılavuz sürümünden geldiğini bir yerde tutmak, bu sorunun tekrar sorulmasını engelliyor.

Yanlış eşleştirme sahada nereye çarpar

Bütün bunlar bir muhasebe ayrıntısı gibi görünebilir. Değil — çünkü aynı sayı depoda üç ayrı yerde daha kullanılıyor. Birincisi basılacak etiket adedi: kaç etiket çıkacağı kap sayısından türer, kap sayısı yanlışsa ya fazla etiket ya etiketsiz koli kalır. İkincisi okutarak yüklemede beklenen okutma sayısı: sistem kaç okutma bekleyeceğini aynı ilişkiden hesaplar. Üçüncüsü çeki listesindeki miktar ile koli adedinin uyumu. Üçünün de kaynağı tek bir karardır ve o karar bu yazının konusudur.

Üçünü burada açmıyoruz, çünkü her birinin kendi yazısı var. Etiketin üzerinde hangi alanların durduğu ayrı bir tasarım işidir: koli etiketinde hangi alanlar durur. Çeki listesinde miktar ile koli adedinin nasıl birlikte okunduğu da öyle: çeki listesindeki miktar ve koli adedi. Etiketi hemen denemek isterseniz tarayıcıda çalışan bir aracımız var: koli etiketi oluşturucu.

Aynı sevkiyat, üç belgede üç ayrı sayı

Bir sevkiyatın üç belgesine bakıp üç farklı sayı görmek yaygın bir durumdur ve çoğu zaman üçü de doğrudur, çünkü üçü farklı şeyi sayar: mal adedi, kap adedi ve bir kabın içindeki adet. Hangi sayının hangi belgede durduğunu bilmek, çelişki sanılan şeyin çoğunu ortadan kaldırıyor. Bu ayrım ve belgelerde kullanılan kısaltmalar ayrı bir yazının konusu: CTNS ve PCS ne anlatıyor.

Biz bu tarafta ne yapıyoruz, ne yapmıyoruz

Bu yazıyı bir ürün tanıtımıyla değil bir sınır çizgisiyle kapatıyoruz, çünkü konu tam da yanlış beklentinin pahalıya patladığı bir konu.

Yaptıklarımız. Smartifie Logistic'te birim serbest bir metin kutusu değil, kanonik bir koddur: adet, kilogram, ton, gram, litre, mililitre, metre, santimetre, metrekare, metreküp, paket, kutu, koli, palet, rulo, set, çift ve takım. Kod veridir, ekranda gördüğünüz ad ise sunumdur — kod dile göre değişmez. Excel'den içe aktarırken birim adını üç arayüz dilinin herhangi birinde yazabilirsiniz, hepsi aynı koda çözümlenir; çözümlenemeyen bir birim yazan satır ise tahmin edilmez, atlanır. Kesirli değer alabilen birimlerde (kilogram, litre, metre gibi) ikinci bir birim ve dönüşüm oranı zorunludur. /units adresindeki birim ekranı hangi kodların kabul edildiğini ve her birinin sürekli mi ayrık mı olduğunu gösterir.

Yapmadıklarımız — ve bunu açıkça yazmak istiyoruz. Uygulamada e-fatura üretimi yoktur. Sevk irsaliyesi tarafında bir XML dosyası indirilebiliyor, ama imzalama, idarenin şemasına karşı doğrulama ve gönderme adımlarını yapmıyoruz; bunlar uygulamanın kapsamı dışında ve kodda da açıkça sonraki bir faza bırakılmış durumda. Bu yüzden bu yazıda ürettiğimiz XML'i örnek olarak göstermiyor ve "kodları doğru yazıyoruz" demiyoruz. Ayrıca uygulamada kap cinsi diye bir alan yok ve birim kodlarını resmî listeye karşı doğrulayan bir araç da yok. Yazının anlattığı karıştırma yaygın bir karıştırmadır ve dürüst cevap şudur: bizim tarafımız da bu işin dışında değil.

Baştaki teze dönerek bitirelim: koli bir ölçü birimi değil, bir kaptır. Belgede iki ayrı soru var, iki ayrı alan var ve iki ayrı liste var. Bunu bir kere ayırdığınızda, "koli hangi kod" sorusu bir kod arama sorusu olmaktan çıkıp bir alan seçme sorusuna dönüşüyor — ve o soruya cevap vermek çok daha kolay.

Smartifie Logistic'i inceleyin