KolaySoft e-Fatura Entegrasyonu
    • 01 Aug 2024
    • 7 Minutes to read
    • Dark
      Light

    KolaySoft e-Fatura Entegrasyonu

    • Dark
      Light

    Article summary

    KolaySoft e-Fatura Entegrasyonu


    Servis AdıInvoiceWS
    Endpoint Adresihttps://servis.kolayentegrasyon.net/InvoiceService/InvoiceWS 
    WSDL Adresihttps://servis.kolayentegrasyon.net/InvoiceService/InvoiceWS?wsdl 
    Açıklama
    Mükellef tarafından oluşturulan UBL XML formatındaki fatura ve uygulama yanıtlarının entegratöre iletildiği servistir. Metot açıklamaları aşağıda yer almaktadır.

    KolaySoft e-fatura servisinde gelen faturaları PaperWork platformuna çekmek için kullanılacak bir fonksiyon vardır. Bu fonksiyon, QueryInboxDocumentWithDocumentDate’dir. Eşleştirilecek alan sayısı tahmini 25 adettir.

    QueryInboxDocumentWithReceivedDate

    Gelen e-Faturaları çekmek için flag değeri ile filtrelenerek aynı faturayı ikinci kez almamak için kullanılacak fonksiyondur. Mükellefin gelen kutusunda, verilen tarih aralığında alınan fatura ve uygulama yanıtlarının durumunu sistem tarafından alınma tarihine göre sorgulamak amacıyla kullanılır.

    Parametreler 

    TipiAdıAçıklama
    StringstartDate
    Dokümanın düzenlenme tarihine göre sorgulanacak faturaların sorgu başlangıç tarihini tutar.
    StringendDate
    Dokümanın düzenlenme tarihine göre sorgulanacak faturaların sorgu bitiş tarihini tutar.
    StringdocumentType
    Dokuman türünün fatura ya da uygulama yanıtı olup olmadığını belirtir. {1,2} değerlerinden birini alır. [1:Fatura, 2:Uygulama yanıtı]
    Stringqueried
    Alınan dokumanın durumunun entegratörden daha önce sorgulanıp sorgulanmadığını belirten değişkendir. {“YES”,”NO”,”ALL”} değerlerinden birini alır. 
    StringwithXML
    Sorgu sonucunda döndürülecekse dokumanın XML, PDF veya HTML içeriğinin istenilip istenilmediğin belirtildiği parametredir. {“XML”, “PDF”, “HTML”, ”NONE”} değerleri alır. “NONE” herhangi bir içerik döndürmez, diğer seçeneklerde ise içeriğin bayt değerine sorgu sonucunda dönen DocumentQueryResponse nesnesi içerisindeki documents listesinde yer alan ResponseDocument nesnelerindeki ‘content’ alanından ulaşılabilir. Bu alanın “NONE” olmadığı durumlarda dönen dokuman sayısı performans açısından 20 ile sınırlandırılır. 
    StringtakenFromEntegrator

    Entegratörden sorgulanan dökümanın lokalde kaydedilip kaydedilmediğini tutar. 

    {“YES”,”NO”,”ALL”} değerlerinden birini alır.

    StringminRecordId
    Sorgu sonucunda döndürülecek dokümanların en düşük numaralı kayıt numarasını tutar. 

    Dönüş değeri DocumentQueryResponse nesnesidir.

    DocumentQueryResponse Sınıfı 

    Sınıf AdıAçıklaması
    queryState
    Sorgu sonucunda hata oluşup oluşmadığına dair kod bilgisini tutar.
    stateExplanation
    Sorgu sonucunda hata oluşup oluşmadığına dair açıklama bilgisini tutar.
    maxRecordIdinList
    Dokuman listesi içerisindeki en yüksek kayıt numaralı dokumanın kayıt numarasını tutar.
    documentsCount
    Sorgu sonucunda dönen dokuman sayısını sayısını taşır.
    documents
    Sorgu sonucunda dönen dokümanları ResponseDocument listesi içinde tutar.

    ResponseDocument Sınıfı

    Sınıf AdıAçıklaması
    document_uuidDokümanın UUID bilgisini taşır. 
    document_idFatura için fatura numarası, uygulama yanıtı için ise UUID formatında eşsiz ID değerini taşır. 
    envelope_uuid
    Dokümanların zarflanmasının akabinde oluşturulan zarfın UUID bilgisini taşır.
    document_profileDokümana ait senaryo türü bilgisini taşır. TEMELFATURA, TICARIFATURA gibi.
    system_creation_timeDokümanın entegratör tarafından alındığı zamanı tutar.
    document_issue_dateDokümanın düzenlenme tarihini tutar.
    source_idDokümanı gönderenin VKN ya da TCKN bilgisini taşır.
    source_urnDoküman göndericisinin adres etiketini taşır.
    source_titleDokümanı gönderenin ünvan bilgisini taşır.
    destination_idDoküman alıcısının VKN ya da TCKN bilgisini taşır.
    destination_urnDoküman alıcısının adres etiketini taşır.
    state_codeDoküman durumunun kod değerini taşır.
    state_explanationDoküman durumunun açıklama değerini taşır.
    content_typeDoküman içeriğinin türünü taşır.  
    document_contentDoküman içeriğini byte dizisi olarak taşır.
    currency_codeDoküman tutarının para birimi değerini tutar. (Örn: TRY)
    causeDokümanın işlenmesi sırasında bir hata oluşmuşsa, hata nedeni bu alanla geri dönülür.
    invoice_totalDokümanın toplam tutarını taşır.
    emailSentKullanılmıyor
    emailSentDateKullanılmıyor
    cancelledKullanılmıyor
    cancel_dateKullanılmıyor
    reference_document_uuidMükellefe gelen uygulama yanıtlarında cevap verilen dokümana ait UUID bilgisini taşır.
    response_document_uuidMükellef tarafından gönderilen uygulama yanıtlarında cevap verilen dokümana ait UUID bilgisini taşır.
    response_codeGönderilen uygulama yanıtlarının RED ya da KABUL bilgisini tutar. {KABUL, RED} değerlerinden birini alır.
    response_validation_stateGönderilen uygulama yanıtlarının GİB yönergelerine göre geçerlilik durumunu taşır.
    response_received_dateGönderilen veya gelen faturaya cevap alınmışsa/verilmişse, bu cevabın alındığı/gönderildiği tarihi taşır.
    gtb_reference_noSorgulanan ihracat faturalarına ait 23 haneli GTB Referans Numarasını taşır.
    gtb_gcb_tescil_noSorgulanan ihracat faturalarına ait GÇB Tescil Numarasını taşır.
    gtb_fiili_ihracat_tarihiSorgulanan ihracat faturalarına ait Fiili İhracat Tarihini taşır.
    document_type_codeFaturanın türünü (SATIS, IADE, TEVKIFAT, OZELMATRAH, ISTISNA, IHRACKAYITLI, SGK ) taşır.  
    notesDoküman içeriğindeki notları string listesi halinde taşır.
    despatchInfoDoküman içeriğindeki irsaliye bilgilerini taşır.
    orderInfoDoküman içeriğindeki sipariş bilgilerini taşır.
    taxInfoDoküman içeriğindeki vergi bilgilerini taşır.
    taxInclusiveAmountFaturaya ait vergiler dahil toplam fiyatı taşır.
    taxExlusiveAmount
    Faturaya ait vergisiz toplam fiyatı taşır.
    allowanceTotalAmount
    Faturaya ait vergisiz toplam fiyatı taşır.
    taxAmount0015
    Faturaya ait toplam KDV bilgisini taşır.
    lineExtensionAmount
    Faturaya ait ürün/hizmet kalemleri toplam fiyatını taşır.
    supplierPersonName
    Göndericinin özel kişi olması halinde kişi adı bilgisini taşır.
    supplierPersonMiddleName
    Göndericinin özel kişi olması halinde kişi orta adı bilgisini taşır.
    supplierPersonFamilyName
    Göndericinin özel kişi olması halinde kişi orta soyadı bilgisini taşır.
    customerPersonName
    Alıcının özel kişi olması halinde kişi adı bilgisini taşır.
    customerPersonMiddleName
    Alıcının özel kişi olması halinde kişi orta adı bilgisini taşır.
    customerPersonFamilyName
    Alıcının özel kişi olması halinde kişi soyadı bilgisini taşır.
    is_read
    Dokümana ait okundu bilgisidir. {0,1} değerlerinden birini alır.
    is_archieved
    Dokümana ait arşivlendi bilgisidir. {0,1} değerlerinden birini alır.
    is_accounted
    Dokümana ait muhasebeleştirildi bilgisidir. {0,1} değerlerinden birini alır.
    is_transferred
    Dokümana ait aktarıldı bilgisidir. {0,1} değerlerinden birini alır.
    is_printed
    Dokümana ait yazdırıldı bilgisidir. {0,1} değerlerinden birini alır.
    local_id
    İstemci sisteminde dokümana karşılık gelen kayıt numarası bilgisidir. Bu alan belge gönderim esnasında belirlenir. Gönderilmesi zorunlu değildir. 
    sendingTypeKullanılmıyor
    buyer_customer_party_nameKullanılmıyor
    buyer_customer_person_nameKullanılmıyor
    buyer_customer_person_familynameKullanılmıyor
    Bilgi
    Yukarıda giriş ve çıkış parametreleri verilen QueryInboxDocumentWithReceivedDate fonksiyonu ile ilgili firmaya ait e-faturaların çekilmesi gerekmektedir.

    QueryInboxDocumentWithReceivedDate Giriş Parametreleri

    Parametre AdıÖrnek veri
    startDate
    endDate
    documentType
    queried
    withXML
    minRecordId
    takenFromEntegrator

    QueryInboxDocumentWithReceivedDate Çıkış Parametreleri

    Parametre AdıÖrnek veri
    DocumentQueryResponse Nesnesi
    queryState
    stateExplanation
    maxRecordIdinList
    documentsCount
    documents
    Bilgilendirme
    Metodun tanımlı işlerinde her gün 06:00 ile 14:00 arasında çalışacak olan kolaysoft e-fatura servisi ile günde iki kez çalışarak gelen tüm faturaları çekmesi gerekmektedir.

    QueryInboxDocument

    Çekilen her bir faturanın bilgilerine ulaşılır. Alınan fatura ve uygulama yanıtlarının durumunu sorgulamak amacıyla kullanılır. 

    Parametreler 

    TipiParametre AdıAçıklama
    StringparamType

    Dokumanın sorgulanacağı parametre tipini tutar. Fatura UUID’si, Fatura Numarası veya Zarf UUID’si bilgilerinden herhangi birisi ile sorgulama yapılabilir. {“Document_UUID”,”Document_ID”,”Envelope_UUID”} değerlerinden birini alır. 

    Stringparameter
    paramType ile belirtilen parametrenin değerini tutar.
    StringwithXML
    Sorgu sonucunda döndürülecekse dokumanın XML, PDF veya HTML içeriğinin istenilip istenilmediğin belirtildiği parametredir. {“XML”, “PDF”, “HTML”, ”NONE”} değerleri alır. “NONE” herhangi bir içerik döndürmez, diğer seçeneklerde ise içeriğin bayt değerine sorgu sonucunda dönen DocumentQueryResponse nesnesi içerisindeki documents listesinde yer alan ResponseDocument nesnelerindeki ‘content’ alanından ulaşılabilir. Bu alanın “NONE” olmadığı durumlarda dönen Doküman sayısı performans açısından 20 ile sınırlandırılır.

    Dönüş Değeri

    DocumentQueryResponse nesnesi döndürür. Sorgunun sonucu ve açıklaması bu sınıf içerisindeki queryState ve stateExplanation alanları ile kontrol edilebilir. Eğer sorgu sonucunda doküman(lar) bulunursa documentCount alanı bulunan Doküman sayısını gösterir. ResponseDocument listesi tipindeki documents alanından ise her bir Doküman ile ilgili detaylı bilgiye ulaşılabilir.

    Aşağıda giriş ve çıkış parametreleri verilen QueryInboxDocument fonksiyonu ile ilgili firmaya ait faturanın txt formatı halinde response döner.

    Giriş Parametreleri

    Parametre AdıÖrnek veri
    paramType
    parameter
    withXML

    Çıkış Parametreleri

    Parametre AdıÖrnek veri
    DocumentQueryResponse Nesnesi
    queryState
    stateExplanation
    maxRecordIdinList
    documentsCount
    documents

    setDocumentFlag

    Çekilen her bir faturanın tekrar tekrar içeriye alınmaması için ilgili faturaya flag atacağımız fonksiyondur. Dokümana ait belli işaretlemelerin yapılmasını sağlayan metottur.

    Parametreler 

    TipiParametre AdıAçıklama
    FlagSetterflagSetterEntResponse nesnesi döndürür. İşlem sonucu bu nesneye ait ‘code (kod)’, ‘explanation (açıklama)’ alanlarında yer alır.

    Dönüş Değeri

    EntResponse nesnesi döndürür. İşlem sonucu bu nesneye ait ‘code (kod)’, ‘explanation (açıklama)’ alanlarında yer alır

    flagSetter Sınıfı

    Sınıf AdıAçıklaması
    document_directionDokümanın gelen veya giden kutusunda aranmasını sağlar. {‘GIDEN’, ’GELEN’} değerlerinden birini alır.
    flag_nameDoküman üzerinde yapılacak işaretleme işleminin türünü tutar.  {‘ARSIVLENDI’,’OKUNDU’,’MUHASEBELESTIRILDI’,’AKTARILDI’,’YAZDIRILDI’} değerlerinden birini almalıdır.
    flag_value
    Dokümanın işaretleme değerini tutar. {0,1} değerlerinden birini almalıdır.
    document_uuid
    İşaretlenecek dokümanın UUID sini taşır.

    entResponse Sınıfı

    Sınıf AdıAçıklaması
    documentUUIDDokümanın UUID bilgisini taşır.
    code
    İşlem sonucuna ait kod değerini taşır.  
    explanation
    İşlem sonucuna ait açıklama değerini taşır.
    causeİşlem sonucunda hata oluşmuşsa hatanın nedenini taşır.

    e-Fatura Servisi Giden Fatura

    KolaySoft e-Fatura servisinde faturaları çekmek için kullanılacak fonksiyon QueryOutboxDocumentWithDocumentDate’dir.

    QueryOutboxDocumentWithReceivedDate

    Giden e-Faturaları çekmek için flag değeri ile filtrelenerek aynı faturayı 2.kez almamak için kullanılacak fonksiyondur. Mükellefin giden kutusunda verilen tarih aralığında gönderilen fatura ve uygulama yanıtlarının durumunu sistem tarafından alınma tarihine göre sorgulamak amacıyla kullanılır. 

    Parametreler 

    TipiParametre AdıAçıklama
    StringstartDate
    Dokümanın düzenlenme tarihine göre sorgulanacak faturaların sorgu başlangıç tarihini tutar.
    StringendDate
    Dokümanın düzenlenme tarihine göre sorgulanacak faturaların sorgu bitiş tarihini tutar.
    StringdocumentType
    Doküman türünün fatura ya da uygulama yanıtı olup olmadığını belirtir. {1,2} değerlerinden birini alır. [1:Fatura, 2:Uygulama yanıtı]
    Stringqueried
    Gönderilen dokumanın durumunun entegratörden daha önce sorgulanıp sorgulanmadığını belirten değişkendir. {“YES”,”NO”,”ALL”} değerlerinden birini alır.
    StringwithXML
    Sorgu sonucunda döndürülecekse dokumanın XML, PDF veya HTML içeriğinin istenilip istenilmediğin belirtildiği parametredir. {“XML”, “PDF”, “HTML”, ”NONE”} değerleri alır. “NONE” herhangi bir içerik döndürmez, diğer seçeneklerde ise içeriğin bayt değerine sorgu sonucunda dönen DocumentQueryResponse nesnesi içerisindeki documents listesinde yer alan ResponseDocument nesnelerindeki ‘content’ alanından ulaşılabilir. Bu alanın “NONE” olmadığı durumlarda dönen Doküman sayısı performans açısından 20 ile sınırlandırılır. 
    StringminRecordId
    Sorgu sonucunda döndürülecek dokümanların en düşük numaralı kayıt numarasını tutar. 

    Aşağıda giriş ve çıkış parametreleri verilen QueryOutboxDocumentWithReceivedDate fonksiyonu ile ilgili firmaya ait e-faturaların çekilmesi gerekmektedir.

    Giriş Parametreleri

    Parametre AdıÖrnek veri
    startDate
    endDate
    documentType
    queried
    withXML
    minRecordId
    takenFromEntegrator

    Çıkış Parametreleri

    Parametre AdıÖrnek veri
    DocumentQueryResponse Nesnesi
    queryState
    stateExplanation

    maxRecordIdinList
    documentsCount
    documents
    Bilgilendirme
    Metotun tanımlı işlerinde her gün 06:00 ile 14:00 arasında çalışacak olan kolaysoft e-Fatura servisi ile günde iki kez çalışarak gelen tüm faturaları çekmesi gerekmektedir. 

    QueryOutboxDocument

    Gönderilen her bir faturanın bilgilerine ulaşılır. Gönderilen fatura ve uygulama yanıtlarının durumunu sorgulamak amacıyla kullanılır. 

    Parametreler 

    TipiParametre AdıAçıklama
    StringparamType
    Dokumanın sorgulanacağı parametre tipini tutar. Fatura UUID’si, Fatura Numarası veya Zarf UUID’si bilgilerinden herhangi birisi ile sorgulama yapılabilir. {“Document_UUID”,”Document_ID”,”Envelope_UUID”} değerlerinden birini alır.
    Stringparameter
    paramType ile belirtilen parametrenin değerini tutar.
    StringwithXML
    Sorgu sonucunda döndürülecekse dokumanın XML, PDF veya HTML içeriğinin istenilip istenilmediğin belirtildiği parametredir. {“XML”, “PDF”, “HTML”, ”NONE”} değerleri alır. “NONE” herhangi bir içerik döndürmez, diğer seçeneklerde ise içeriğin bayt değerine sorgu sonucunda dönen DocumentQueryResponse nesnesi içerisindeki documents listesinde yer alan ResponseDocument nesnelerindeki ‘content’ alanından ulaşılabilir. Bu alanın “NONE” olmadığı durumlarda dönen Doküman sayısı performans açısından 20 ile sınırlandırılır.

    Dönüş Değeri

    DocumentQueryResponse nesnesi döndürür. Sorgunun sonucu ve açıklaması bu sınıf içerisindeki queryState ve stateExplanation alanları ile kontrol edilebilir. Eğer sorgu sonucunda dokuman(lar) bulunursa documentCount alanı bulunan Doküman sayısını gösterir. ResponseDocument listesi tipindeki documents alanından ise her bir Doküman ile ilgili detaylı bilgiye ulaşılabilir.

    Giriş Parametreleri

    Parametre AdıÖrnek veri
    paramType
    parameter
    withXML

    Çıkış Parametreleri

    Parametre AdıÖrnek veri
    DocumentQueryResponse Nesnesi
    queryState
    stateExplanation
    maxRecordIdinList
    documentsCount
    documents

    setDocumentFlag

    Gönderilen her bir faturanın tekrar tekrar içeriye alınmaması için ilgili faturaya flag atacağımız fonksiyondur. Dokümana ait belli işaretlemelerin yapılmasını sağlayan metottur.

    Parametreler 

    TipiParametre AdıAçıklama
    FlagSetterflagSetterEntResponse nesnesi döndürür. İşlem sonucu bu nesneye ait ‘code (kod)’, ‘explanation (açıklama)’ alanlarında yer alır.

    Dönüş Değeri

    EntResponse nesnesi döndürür. İşlem sonucu bu nesneye ait ‘code (kod)’, ‘explanation (açıklama)’ alanlarında yer alır

    flagSetter Sınıfı

    Sınıf AdıAçıklaması
    document_directionDokümanın gelen veya giden kutusunda aranmasını sağlar. {‘GIDEN’, ’GELEN’} değerlerinden birini alır.
    flag_nameDoküman üzerinde yapılacak işaretleme işleminin türünü tutar.  {‘ARSIVLENDI’,’OKUNDU’,’MUHASEBELESTIRILDI’,’AKTARILDI’,’YAZDIRILDI’} değerlerinden birini almalıdır.
    flag_value
    Dokümanın işaretleme değerini tutar. {0,1} değerlerinden birini almalıdır.
    document_uuid
    İşaretlenecek dokümanın UUID bilgisini taşır.

    entResponse Sınıfı

    Sınıf AdıAçıklaması
    documentUUIDDokümanın UUID bilgisini taşır.
    code
    İşlem sonucuna ait kod değerini taşır.  
    explanation
    İşlem sonucuna ait açıklama değerini taşır.
    causeİşlem sonucunda hata oluşmuşsa hatanın nedenini taşır.

    Giden e-Faturalar için PaperWork de UBL Listesine Kayıt Atma

    Her bir fatura için Fatura NO, ETTN  NO, Gönderim Tarihi gibi toplam da beş alan için SQL üzerinden bir tablo oluşturup buraya kayıt atacaktır. İçeriye alınan faturalar ile ilgili takibi kolaylaştırmak adına.

    E-Arşiv Servisi

    Servis AdıInvoiceWS
    Endpoint Adresihttps://servis.kolayentegrasyon.net/InvoiceService/InvoiceWS 
    WSDL Adresihttps://servis.kolayentegrasyon.net/InvoiceService/InvoiceWS?wsdl 
    Açıklama
    Mükellef tarafından oluşturulan UBL XML formatındaki fatura ve uygulama yanıtlarının entegratöre iletildiği servistir. Metot açıklamaları aşağıda yer almaktadır.