E-fatura?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7507
Kayıt: 09 Haz 2003 11:26
Konum: İstanbul
İletişim:

E-fatura?

Mesaj gönderen mussimsek » 18 Kas 2013 04:03

Merhaba,

E-fatura ile ilgili Delphi tarafında çalışma yapan oldu mu? UBL-TR formatında dosya oluşturma, mali mühürle imzalama gibi???

Teşekkürler.

Kullanıcı avatarı
doctorfunks
Üye
Mesajlar: 105
Kayıt: 26 Oca 2005 10:37
Konum: İstanbul

Re: E-fatura?

Mesaj gönderen doctorfunks » 21 Kas 2013 08:51

Merhaba,
Biz çalışmalar yapıyoruz,E-Fatura için birkaç yöntem var biliyorsunuz. Biz şuanda özel entegratör aracılığı ile onların istemiş olduğu xml dosyaları hazırlayarak gönderime başlayacağız. Siz UBL-TR sistemini kendiniz mi oluşturmayı düşünüyorsunuz Mustafa hocam ?

Kullanıcı avatarı
Battosai
Üye
Mesajlar: 1316
Kayıt: 30 Eyl 2007 11:02
Konum: Ankara

Re: E-fatura?

Mesaj gönderen Battosai » 21 Kas 2013 11:09

viewtopic.php?f=2&t=31560&hilit=+fatura Burda aynı mevzu geçti kimse devamını getirmedi :) Bu mevzuda daha çok konu açılır. Basit bir Restful yapısı ile çözülecek mesele tecrübeli geliştiricileri bile zorlayacak bir yapıda kurgulanmasını anlamış değilim. Bilmediğimiz birşey vardır elbet.

Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7507
Kayıt: 09 Haz 2003 11:26
Konum: İstanbul
İletişim:

Re: E-fatura?

Mesaj gönderen mussimsek » 21 Kas 2013 04:55

Merhaba,

Evet UBL-TR yapısı biraz özelleştirilmiş XML'e benziyor. Bu dosyanın formatını temin ettim, biz kendimiz oluşturmayı planlıyoruz. Sonrasında mali mühür ve entegratöre gönderme sıkıntıları var. Bakalım uğraşıyoruz.

Çalışma yapan varsa, tecrübelerini paylaşırsa memnun olurum...

Kolay gelsin.

Kullanıcı avatarı
doctorfunks
Üye
Mesajlar: 105
Kayıt: 26 Oca 2005 10:37
Konum: İstanbul

Re: E-fatura?

Mesaj gönderen doctorfunks » 21 Kas 2013 05:20

Eğer özel entegratör ile anlaşma yapıyorsanız mali mühür işleminide onlara devredin. Siz direkt xml yada en uygun hangisi olursa istedikleri formata uygun verileri gönderin bence.

Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7507
Kayıt: 09 Haz 2003 11:26
Konum: İstanbul
İletişim:

Re: E-fatura?

Mesaj gönderen mussimsek » 26 Kas 2013 09:32

Bu konu yeni olduğu için şu ana kadar öğrendiklerimi paylaşayım.

* UBL TR dosyası UBL formatının özelleştirilmiş hali, kısaca bir XML dosyası diyebiliriz. Faturanızı şu adresteki

http://efatura.gov.tr/efaturamevzuat.html

Kılavuzlar kısmındaki "Ek-4 UBL-TR Kılavuzları_V-1.2" isimli dosyadan çıkan kılavuzlara göre oluşturabilirsiniz. Dosya formatı ile alakalı her türlü bilgi var. Diğer kılavuzları da incelemenizde fayda var.

* Mali mühür denilen şey bir sertifika. Bu sertifika ile dosyanızı mühürlemeniz (imzalamanız) lazım. Bu dosyayı sizin gönderdiğinizi anlamak için. Bunun için en güzeli @doctorfunks'ın dediği gibi anlaştığınız entegratörün programını kullanmak. Bu programlar mühürlemeyi, entegratöre göndermeyi ve gelen faturaları almayı yapıyor. Detayları entegratör ile konuşursunuz. Ben kendim mali mühür yapmam lazım diyorsanız :

- https://yazilim.kamusm.gov.tr/?q=tr/node/14/surum : burda bir activeX çözümü var. Üye olup indirebilirsiniz, sanırım ücretli. Üyelik 1-2 güne açılıyor.
- http://www.chilkatsoft.com/ : Burda da delphi için bir activeX ve dll çözümü var.
- https://www.eldos.com/sbb/ : burda da secure black box isimli bir component seti var.

Bunlardan hiçbirisini denemedim.

Kolay gelsin.

erceskar
Üye
Mesajlar: 7
Kayıt: 02 Eki 2012 12:25

Re: E-fatura?

Mesaj gönderen erceskar » 12 Ara 2013 12:03

Selamlar,

Öncelikle 1. yöntem olan Portal'dan kullanmak isteyenler için XML(zip) oluşturma kısmını yaptım. Bunun için dediğiniz gibi UBL-TR formatına göre xml hazırlandıktan sonra USB aygıtındaki kart vasıtasıyla şifrelemek(mühürlemek) gerekiyor. Ben verdiğiniz linklerdeki gibi araşlar yerine .NET de bulunan örneği dll e çevirip Delphi içinden kullandım. Örnek kamusm sitesinde var. Delphi'den COM visible kullanma de yine anlatılıyor diye hatırlıyorum. regasm ile register etmeyi unutmayın yeter. Elbetteki e-fatura.gov tr sitesindeki klavuzları satır satır okuyup xml leri buna göre hazırlamak gerekiyor, sonrasında şifreleme ve şifre kontrolü ayrı bir bela ama eğer 3 yöntemi de desteklemek istiyorsanız (GIB sitesine direk bağlantı) şifreleme işlemini eninde sonunda yapmanız gerekiyor. Yok ben işin kolayına kaçayım derseniz hiç bunlarla uğraşmayın, direk özel entegratörle anlaşın. Aslında müşterinin gerçekten büyük bir firma değilse ve ben arşivimi kendi server'ımda tutmak istiyorum diye ayak diretmiyorsa onun için de en doğrusu özel entegratör olacaktır. Çünkü bu işin arşivleme loglama 7/24 online olma vs zorunlulukları çok sert. Adeta herkes özel entegratörle çalışsın diye yapmışlar.
Gelelim özel entegratör çözümüne; entegratörler farklı şekillerde çalışıyorlar. Kimi kendi tanımladığı Fatura nesnesinin propertylerini doldurmanızı istiyor, kimi direk sizin hazırladığınız xml i alıyor. Her halükarda imzalamayı onlar yapıyor ki bunun da pek çok avantajı var. Bu aşamada nesne doldurmanın da faydaları bulunmakla beraber xml oluşturup xsd şema kontrolünü siz yaparsanız entegratöre göndermeden hataları kullanıcının karşısına çıkarabilirsiniz.

Özetle tavsiyem entegratörlerdir. Diğer 2 yöntemden birine mecbur değilseniz şifreleme ile vakit kaybetmeyin. Hatta bu tarihten sorna yetiştirmek istiyorsanız xml ile bile vakit kaybetmetin. Direk entegratörün nesnesini doldurun gönderin.

Önemli Not: Delphi'nin eski versiyonunu kullananlar entegratörün servisine bağlanamayacaklar (Ör: Delphi 7) Yeni tip nesneler hep sorun çıkarıyor. Bununla da zaman kaybetmeyin. Delphi'nin yeni versiyonunu alıp gönderme/kontrol etme vs fonksiyonlarını onda yazıp dll vb bir çözümle ana progamınız üzerinden kullanın. Ben bunlarla çok vakit kaybettim, siz etmeyin.

Mercag
Üye
Mesajlar: 1
Kayıt: 05 Oca 2016 10:29

Re: E-fatura?

Mesaj gönderen Mercag » 05 Oca 2016 10:39

Merhaba;
e fatura,xml ve ile ilgili araştırma yaparken UBL TR formatında araştırma yaparken forumunuza rastladım. Biz entegratörle anlaştık. Anlaştığımız entegratör bize sözleşme aşamasında onlara herhangi bir xml formatı sağladığımızda faturalarımız toplu olarak sisteme yükleyebileceğimizi söylemişlerdi. Ancak distribütörlüğünü yaptığımız firma başka bir entegratör ile çalıştığından bu geliştirme işini onlara bıraktılar. Özetle bu firmanın bize sağladığı xml formatı birtek kendi portalında çalışıyor. Bizim anlaştığımız entegratör firmada çalışmıyor. Anlaştığımız firma daha dönüş yapmadı ancak bizim kendi çabalarımızla bu xml i GİB formatına sanırım UBL TR formatına dönüştürüp kendi entegratörümüzün portalına yüklememiz mümkün müdür?

mert_37
Üye
Mesajlar: 35
Kayıt: 13 Şub 2014 02:53

Re: E-fatura?

Mesaj gönderen mert_37 » 16 Oca 2016 01:48

ARKADAŞLAR BU İŞİ TAMAMLAYAN VARSA LÜTFEN YARDIM. YARDIM DIYINCE YANLIŞ ANLAŞILMASIN Buradan para konuşak doğru değil ama. Bu bir iştir EMEK KARŞILIGI ÖDENECEKTIR.

thelvaci
Kıdemli Üye
Mesajlar: 769
Kayıt: 11 Tem 2010 06:17
Konum: Istanbul
İletişim:

Re: E-fatura?

Mesaj gönderen thelvaci » 16 Oca 2016 06:41

Tüm Delphi'cilerin (daha doğru bir ifade ile C# kullanmayanların) sıkıntılarını bertaraf edecek bir çözüm yakında sunulacak arkadaşlar. Bir firma ile yaptığımız görüşmelerin neticesinde artık C# ile uğraşmak zorunda kalmayacaksınız. Json formatında basitçe faturalarınızı gönderip alabileceksiniz. Neticeyi yakın bir zamanda paylaşacağım sizler ile.

3ddark
Üye
Mesajlar: 69
Kayıt: 14 Eyl 2010 09:55
Konum: İstanbul

Re: E-fatura?

Mesaj gönderen 3ddark » 17 Oca 2016 10:33

Ben logo entegratör üzerine E-Fatura ile ilgilendim ve şu anda sorunsuz olarak çalışıyoruz. UBL-TR dedikleri dosya XML dosyadan farksız.
İmza ile hiç ilgilenecek vaktim olmadı fakat burada
https://yazilim.kamusm.gov.tr/?q=tr/node/14/surum
delphi ile ilgili örnek dokümanlar da eklenmiş. Daha önce girdiğimde bu sayfada delphi için böyle ayrıntılı örnek yoktu.
PostgreSQL - Delphi - Linux :!:

mkysoft
Kıdemli Üye
Mesajlar: 3011
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: E-fatura?

Mesaj gönderen mkysoft » 18 Oca 2016 03:49

UBL oluşturmak için basit bir örnek: http://delphiturkiye.com/forum/viewtopi ... 19&t=35265

mkysoft
Kıdemli Üye
Mesajlar: 3011
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: E-fatura?

Mesaj gönderen mkysoft » 18 Oca 2016 04:05

Bu alanda çalıştığım için bildiklerimi paylaşmak isterim.
Öncelikle bir çok yerde xml'in şifrelenmesinden bahsedilmiş, aslında yapılan şifreleme değil imzalamadır, sadece xml'in değişmediğini garanti altına alır.
Eğer GİB ile direk entegrasyon yapacaksanız sizi uğraştıracak konular:
  • İmzalama (xades, adı geçen kütüphaneler xades'in tüm özelliklerini desteklemiyor, Esya dışında)
    Doğrulama (Esya dışında doğrulama yapmak çok zor)
    Zip algoritmaları (standartlara uymayan çok firma var, gelen zarfları açmakta zorlanacaksınız)
    Sınırsız alanlar (sayısal alanlar dışında her yer sınırsız metin, bunları saklamak, saklamaya çalışmak sıkıntı)
    USB Token
    7/24 canlı sistem
Yinede bu yolda ilerlemek isterseniz imzalama, doğrulama ve zip kısımları için java kütüphanalerinden yararlanın.

USB tokenların performansı çok kötü, bir imza atmanız 13~17 saniye sürebilir okuyucunun modeline göre. USB aygıtları olduğu için çok fazla sorun çıkarmaktadır, tak-çıkar ihtiyacı duyar zaman zaman.

7/24 canlı kalmak çok zor, haber vermeksiniz 48 saatten falz süre erişilemezseniz GİB sisteminizi kapatır, açmak için testleri yeniden yapmanızı isteyebilir.

Özel entegratör ile çalışmak:
Özel entegratörün xml formatını kullanmak sizin esnekliğinizi kısıtlar, özel entegratöre bağımlı kalırsınız, desteklemediği UBL-TR alanlarını kullanamazsınız. Tavsiyem UBL-TR oluşturmaya çalışın.
Faturaları özel entegratörün imzalaması performan açısından kolaylık sağlar, çoğu firmada UPS/yedek sıkıntı olduğundan datalarını saklarlar (opsiyenel olabiliyor, kontrol etmek lazım). Veri çok kritik denetçi istediğinde sunulmak zorunda, elektrik kesilmiş, disk bozulmuş, v.s. bahaneleri işe yaramaz. Fatura üzerindeki vergileri indirim konusu yapmanıza izin vermezler.
Bazı özel entegratörler sorumlulukları olmadığından tüm datayı saklamazlar, ayrılırken alamazsınız yada denetçiye sunamayabilirsiniz. İletişim için kullanılan tüm datanın (fatura zarfı, ticari cevap zarfı, sistem yanıtı) saklandığından emin olun.
İşin ucunda devlet olduğu için hiç beklemediğiniz sorunlar yaşayacaksınız, bunları GİB'e iletmek sıkıntı, ancak özel entegratörlerin ulaşması daha kolay.

Ben ISIS Bilişim Teknolojilerinde çalışıyorum, Delphi XE8 ile SOAP üzerinden çalışan test uygulaması mevcut, Delphi 7 ile de HTTP POST/GET üzerinden ilerleyebiliyoruz. Örnek uygualama UBL-TR oluşturma örnekleri de içermektedir. Bunun dışında SFTP, JSON, excel, csv gibi bir çok teknik ile bağlanmanız mümkün. Ancak hepsi ile yapabilecekleriniz aynı değil, projeye göre seçmekte yarar olabiliyor.

Kullanıcı avatarı
cengaver
Üye
Mesajlar: 111
Kayıt: 01 Nis 2014 04:02
Konum: İstanbul

Re: E-fatura?

Mesaj gönderen cengaver » 29 Ara 2016 10:05

Arkadaşlar, ben e-fatura XML dosyasını üretebiliyorum. bunun için bir nesne yazdım. kamusm'nin .NET DLL'leriyle imza da atırabiliyorum. GİB'in E-Belge görüntüleyicisinde evrakı da görüntüleyebiliyorum fakat o programda "Doğrula" butonuna bastığımda "Matematiksel doğrulama HATALI, imza doğrulama durumu: GEÇERLİ, referans[0] doğrulama durumu: GEÇERLİ, referans[1] doğrulama durumu: GEÇERSİZ" diyor...

Yani yüzdük yüzdük kuyruğuna geldik kafamda saç kalmadı, Bu matematiksel doğrulama ile ilgili bi öneriniz var mı, bunu nasıl aşabiliriz?

mkysoft
Kıdemli Üye
Mesajlar: 3011
Kayıt: 25 Ağu 2003 11:35
Konum: İstanbul
İletişim:

Re: E-fatura?

Mesaj gönderen mkysoft » 30 Ara 2016 01:51

@cengaver sorun imza attıktan sonra doyada değişiklik yapıyorsunuz anlamında. matematiksel doğrulama xml'in hash'inin tutmadığı anlamına gelir. İmza sonrasında dosyayı kaydederken kullandığınız yöntem dosyayı bozuyor. Encoding problemi olabilir, yanlış hash alogirtması kullanımı olabilir, xml hizalama yapıyor olabilirsiniz, new line işaretleriniz (esya \n kullanıyor, delphi \r\n olarak değiştiriyor olabilir) değişiyor olabilir. Çok emek isteyen bir iş, arkadaşlara tavsiyem esya'nın java kütüphanelerini kullanmaları. Son dönemde GİB'in yayınlamış olduğu imzala aracını da kullanabilirsiniz, web socket kullandığı için arka planda çalıştırıp çağırabilirsiniz. Delphi için UBL-TR oluşturan örnek uygulamalarımız için: https://github.com/isisedonusum
XE8 örneği baya kapsamlı oldu, destek veren olursa seviniriz.
Admin arkadaşlar mesaja link eklemek kurallara uygun değil biliyorum ancak verdiğim link sadece örnek içeriyor.
En son mkysoft tarafından 14 Ağu 2018 01:16 tarihinde düzenlendi, toplamda 1 kere düzenlendi.

Cevapla