Başlarken
Versiyon Tarihçesi
| Tarih | Açıklama |
|---|---|
| 2019-12-31 (Yeni) | E-Fatura menüsünde Hal Tipi Fatura başlığı ve fatura senaryoları başlığı altınada Hal Tipi fatura örnekleri eklenmiştir. |
| 2019-10-05 | Kamu kurumlarına düzenlenecek e-fatura kılavuzu GİB Dokümanları ve UBL-Fatura Örnekleri bölümüne eklendi. |
| 2019-01-01 | E-Fatura, e-arşiv fatura, e-irsaliye entegrasyon kılavuzu ilk versiyon yayınlandı |
Başlarken
TÜRKBELGE E-Dönüşüm Entegrasyon kılavuzuna hoşgeldiniz. Bu kılavuz yazılımlarını TÜRKBELGE sistemlerine entegre etmek isteyen firmalara yol göstermek için hazırlanmıştır. Entegrasyon kılavuzumuz aşağıda ki ürünleri desteklemektedir.
- E-Fatura
- E-Arşiv Fatura
Eğer entegrasyona yeni başlıyorsanız Başlarken başlığı altında ki bilgileri okumanızı tavsiye ederiz.
Yardım Talebi
Entegrasyon süreci ile ilgili her türlü teknik sorularınızı destek@turkbelge.com.tr adresine iletebilirsiniz.
Tanımlar ve Kısaltmalar
| Tanım | Açıklama |
|---|---|
| Başkanlık | T.C. Maliye Bakanlığı Gelir İdaresi Başkanlığı |
| GİB | T.C. Maliye Bakanlığı Gelir İdaresi Başkanlığı |
| E-Fatura | Elektronik Fatura |
| Gönderici Birim | e-Faturanın düzenlenmesinden ve gönderilmesinden sorumlu birim |
| Posta Kutusu | Gönderilen e-faturanın alınmasından sorumlu birim |
| HTTP | (Hyper Text Transfer Protocol) Hiper Metin Transferi Protokolü |
| HTTPS | (Hyper Text Transfer Protocol Secure) Hiper Metin Transferi Protokolü–Güvenli |
| Merkez | Gönderici Birim ile Posta Kutusu arasındaki iletişimi sağlayan ve denetleyen birim |
| MTOM | (Message Transfer Optimization Method) Mesaj Transferi Optimizasyon Mekanizması. Web servisleri üzerinden verimli bir şekilde ikilik dosya iletimine olanak sağlayan veri iletim yöntemi |
| MD5 | (Message-Digest Algorithm 5) Veri bütünlüğünü test etmek içinkullanılan, tek yönlü şifreleme algoritması |
| Schematron/Şematron | XML belgelerini mantıksal olarak kontrol etmek için kullanılan kural tabanlı doğrulama dili |
| Sistem Yanıtı | Fatura veya uygulama yanıtı içeren zarfların durumları ile ilgili olarak birimlerden gönderilen cevap mesajlarıdır. |
| SOAP | (Simple Object Access Protocol) Basit Nesne Erişim Protokolü. Dağıtık uygulamalarda ve web servislerinin haberleşmesinde kullanılmak üzere tasarlanan, sunucu/istemci mantığına dayalıiletişim protokolü |
| SSL | (Secure Sockets Layer) Bilginin bütünlüğü ve gizliliği için,internet üzerinde iki taraf arasında oluşan trafiğin şifrelenerek, gizliliğinin ve bütünlüğünün korunmasını sa ğlayan bir protokol |
| Schema/Şema | XML dosyalarında taşınan verilerin nasıl yorumlanacağının belirtimi |
| TCKN | T.C. Kimlik Numarası |
| VKN | Vergi Kimlik Numarası |
| Veritabanı | Çeşitli kaynaklardan elde edilen verilerin depolandığı veri yapısı |
| VPN | (Virtual Private Network) Telekomünikasyon altyapısı kullanılarak güvenli ve özel veri aktarımını sağlayan sanal özel ağ teknolojisi |
| W3C | WWW Birliği |
| Web Servis | Bilgisayarlar arasında ağ üzerinden etkileşimi ve uyumluluğu sağlayan yazılım sistemi |
| WSDL | (Web Services Description Language) Web Servislerinin tanımlandığı, erişim ve işlev bilgilerinin detaylı olarak sunulduğu XML tabanlı metin işaretleme dili |
| WS-I | (Web Services Interoperability) Değişik web servis belirtimlerinin birlikte çalışabilmesini sağlayan endüstri konsorsiyumu |
| WS-I Basic Profile | SOAP, WSDL, UDDI gibi temel web servis belirtimlerinin birlikte çalışabilmesini sağlayan profil |
| XML | (Extensible Markup Language) Verinin tanımlanması ve tarif edilmesi için kullanılan genişletilebilir işaretleme dili |
| XSD | (XML Schema Definition) XML belgelerinin uyması gereken kuralların belirlendiği metin işaretleme dili |
| XSLT | (Extensible Stylesheet Language Transformations) Genişletilebilir Biçimlendirme Dili Dönüşümleri, XML dokümanlarını dönüştürmek için kullanılan ve orijinal dokümanı değiştirmeden, yeni bir doküman oluşturmaya olanak sağlayan |
| UBL | (Universal Business Language) Evrensel İş Dili |
| UBL-TR | UBL Türkiye Özelleştirmesi |
| Uygulama | Elektronik Fatura Uygulaması |
| Uygulama Yanıtı | Ticari fatura senaryosunda alınan bir faturaya ait “KABUL”, “RED” veya “İADE” bilgisini içeren belge türüdür. |
| Fatura Tarihi | Faturanın kaynak sistemde düzenleme tarihi |
| E-Fatura Numarası | Faturaya Ait E-fatura Numarası |
| Sistem Referansı | Kaynak sistemden gelen folyo/çek/fatura referans numarası |
| Senaryo | Kullanılan fatura senaryosu (Temel Fatura / Ticari Fatura) |
| Fatura Tipi | Fatura Tipi Kodu (Satış / İade) |
| Alıcı Ünvan / Ad Soyad | Alıcı cari hesap ünvanı |
| TCKN / VKN | Alıcı vergi kimlik numarası |
| Fatura Net Tutar | KDV Tutarı / Toplam Tutarı |
| GTB | Gümrük ve Ticaret Bakanlığı |
| GÇB | Gümrük Çıkış Belgesi |
| ZIP | Veri sıkıştırma ve arşivleme formatı |
Belge Numarası Yönetimi
- E-Dönüşüm sisteminde düzenlenen bir belgeyi tanımlayan iki önemli bilgi vardır. Bir tanesi Evrensel Tekil Tanımlama Numarası (ETTN), diğeri ise belge numarasıdır.
- ETTN numarası GUID formatında olurken, belge numarası aşağıda açıklanmış formata olması zorunludur.
- Belge numarası toplam 16 haneden oluşmak zorundadır.
- 3 hane alfanumerik seri ön eki + 4 hane belgenin düzenlendiği yılı + 9 hane müteselsil sıra numarasını ifade etmektedir. Örnek: TUR+2018+000000001
- Her yıl sıra numarası 1 den başlamak zorundadır.
- Ser ön eki (ilk 3 hane) Türkçe karakter içermemeli ve büyük harfler yada sayılardan oluşmalıdr.
- İlk 3 Karakter firmalar tarafından serbestçe belirlebilir. Her firma İstediği kadar seri kullanabilir. Her seri kendi içerisinde 1’den başlayarak sıralı devam etmelidir.
- E-Fatura, E-İhracat fatura, E-Arşiv normal satış ve E-Arşiv internet üzerinden yapılan satışlar için düzenlenen faturalar mutlaka farklı seriden düzenlenmelidir.
- Belge numarası takibi gönderici sistemde yapılmalıdır.
- Fatura düzenleyen bünyesinde aynı fatura numarası birden fazla kullanılamaz.
Belge Görüntüleme
Bilindiği gibi e-dönüşüm sisteminde düzenlenen ve saklanan belgeler UBL-TR XML formatındadır. Düzenlenmiş her XML belgenin içerisinde görüntüsünü sağlayacak bir şablon (XSLT) dosya bulunmak zorundadır. Şablon belgesinin formatı XSLT (Extensible Stylesheet Language Transformations) Genişletilebilir Biçimlendirme Dili Dönüşümleridir. Bu dosya XML dokümanlarını insanların anlayacağı formata (HTML/PDF) dönüştürmek için kullanılır.
Belge şablon dosyası XML dosya içerisinde ki AdditionalDocumentReference elemanına eklenmek zorundadır.

Gelir İdaresi Başkanlığı tarafından mükellefler arasında ki anlaşmazlıklarda kullanabilecekleri ortak bir uygulama olan E-Belge Görüntüleyici uygulaması yayınlamıştır. Bu uygulama UBL-TR formatında ki belgenin içerisinde ki şablon ile görüntülemesini sağlar, şema ve şematron kontrolü yapar, belgenin içerisinde ki imzanın geçerliliğini kontrol eder ve belgenin GİB'de ki durumunu kontrol eder.
Kullandığınız Java Versiyonuna Göre E-Belge Görüntüleyici İndirebilirsiniz:
E-Belge Görüntüleyici Java 1.6 İndir
E-Belge Görüntüleyici Java 1.7 İndir
Belge Gönderme Kontrolleri
Özel entegratör sistemi senkron çalışmaktadır. Yani herhangi bir servise gönderilen istek sunucu tarafından anlık olarak işlenerek sonuç dönülür. Yüklenen belgelerde hatalı durum tespit edilmesi durumunda webservis hata (SOAP Fault) dönülmektedir.
Belge gönderiminde aşağıda ki kontroller yapılmaktadır:
- Webservis parametre kontrolü
- İşlem yapılacak aktif oturum kontrolü
- Gönderici firmanın özel entegratör sisteminde ki tanımlama kontrolü
- Gönderici ve alıcı firmaların mükellefiyet ve etiket kontrolü
- Belgenin UBL-TR şemasına uygunluk kontrolü
- Belgenin UBL-TR şematronuna uygunluk kontrolü
- Gönderilen belge(lerin) özel entegratör sisteminde tekillik kontrolü
Belge Oluşturma
Özel Entegeratör webservislerine gönderilecek belgelerin (fatura, irsaliye, müstahsil vs) UBL-TR formatında istemci ortamında oluşturulması gerekmektedir. UBL-TR XML belge oluşturmak için iki yöntem kullanılabilir :
Güncel GİB UBL-TR Paketi indirilip yerel C: disizine çıkarılır (unzip/extract).
Eğer Visual Studio 2015 öncesi yüklü olan bir bilgisayar kullanılıyorsa V(StudioVersiyonu) Command Prompt komutu çalıştırılır. Örneğin Visual studio 2013 kurulu bir bilgisayarda V2013 Command Prompt şeklinde çalıştırılır.
Eğer Visual Studio 2015 ve sonrası yüklü olan bir bilgisayar kullanılıyorsa Developer Command Prompt komut çalıştırılır.
Açılan komut satırında UBL-TR paketinin unzip edildiği dizinde bulunan maindoc klasörüne geçiş yapılır.
Örneğin: cd %UNZIP_EDILEN_KLASOR%\UBLTR_1.2.1_Paketi\xsdrt\maindoc\Sınıfı oluşturulacak belge türüne uygun komut aşağıda ki listeye göre çalıştırılır.
| Belge Tipi | Çalıştırılacak Komut | Oluşacak Sınıf | Belge Tipi |
|---|---|---|---|
| E-Fatura / E-Arşiv Fatura | xsd /c UBL-Invoice-2.1.xsd ../common/UBL-CommonExtensionComponents-2.1.xsd ../common/UBL-CommonBasicComponents-2.1.xsd ../common/UBL-UnqualifiedDataTypes-2.1.xsd ../common/UBL-CoreComponentParameters-2.1.xsd ../common/CCTS_CCT_SchemaModule-2.1.xsd ../common/UBL-CommonAggregateComponents-2.1.xsd | UBL-Invoice-2.1.cs | InvoiceType |
| E-İrsaliye | xsd /c UBL-DespatchAdvice-2.1.xsd ../common/UBL-CommonExtensionComponents-2.1.xsd ../common/UBL-CommonBasicComponents-2.1.xsd ../common/UBL-UnqualifiedDataTypes-2.1.xsd ../common/UBL-CoreComponentParameters-2.1.xsd ../common/CCTS_CCT_SchemaModule-2.1.xsd ../common/UBL-CommonAggregateComponents-2.1.xsd | UBL-DespatchAdvice-2.1.cs | DespatchAdviceType |
| E-İrsaliye Yanıtı | xsd /c UBL-ReceiptAdvice-2.1.xsd ../common/UBL-CommonExtensionComponents-2.1.xsd ../common/UBL-CommonBasicComponents-2.1.xsd ../common/UBL-UnqualifiedDataTypes-2.1.xsd ../common/UBL-CoreComponentParameters-2.1.xsd ../common/CCTS_CCT_SchemaModule-2.1.xsd ../common/UBL-CommonAggregateComponents-2.1.xsd | UBL-ReceiptAdvice-2.1.cs | ReceiptAdviceType |
| Müstahsil Makbuzu | xsd /c UBL-CreditNote-2.1.xsd ../common/UBL-CommonExtensionComponents-2.1.xsd ../common/UBL-CommonBasicComponents-2.1.xsd ../common/UBL-UnqualifiedDataTypes-2.1.xsd ../common/UBL-CoreComponentParameters-2.1.xsd ../common/CCTS_CCT_SchemaModule-2.1.xsd ../common/UBL-CommonAggregateComponents-2.1.xsd | UBL-CreditNote-2.1.cs | CreditNoteType |
Ödeme Şekilleri
e-Arşiv ve e-Fatura ödeme paymentmeans tag’ini fatura içerisinde kullanıyorsanız bu alanın örnek kod’ları aşağıdaki gibidir.
| KOD | AÇIKLAMASI |
|---|---|
| 48 | KREDIKARTI/BANKAKARTI |
| 46 | EFT/HAVALE |
| 10 | KAPIDAODEME |
| 1 | Diğerleri |
Diğer kodlar için aşağıdaki referanslardan yararlanabilirsiniz. * Referans 1: http://www.unece.org/trade/untdid/d11a/tred/tred4461.htm ** Referans 2: https://www.stylusstudio.com/edifact/D01C/4461.htm
Webservice Endpoint (WSDL) URL
| Ürün | Endpoint URL |
|---|---|
| Kimlik Doğrulama | https://authenticationws.turkbelge.com.tr/AuthenticationWS?wsdl |
| E-Fatura Webservis | https://efaturawstest.turkbelge.com.tr/EFaturaOIB?wsdl |
| E-Arşiv Fatura Webservis | https://earsivwstest.turkbelge.com.tr/EIArchiveWS/EFaturaArchive?wsdl |
Portal Uygulaması
Entegrasyon sürecinde Portal uygulamamızı aşağıda ki durumlar için kullanabilirsiniz:
- Belgelerin durumunu kontrol
- Farklı senaryolar için belge düzenleyerek XML içeriğini kontrol
- Alıcı firmanın mükellefiyet sorgulaması
Test Portal Adresimiz: https://demo.turkbelge.com.tr
Test portali erişim bilgileri için destek@turkbelge.com.tr adresi ile iletişime geçebilirsiniz.
Entegrasyon Sıkça Sorulan Sorular
Entegrasyon sürecinde karşılaşılan soruların cevapları:
Soru: Ürün bazlı (E-Fatura, E-İrsaliye) kayıtlı kullanıcıları sorgulayabileceğimiz bir servis mevcut mu ?
Cevap: Kimlik Doğrulama webservisinde bulunan Mükellef Listesi Çekme (GetGibUserList) metodumuzu kullanarak E-Fatura ve E-İrsaliye mükellef listesini çekebilirsiniz. DOCUMENT_TYPE parametresine E-Fatura için INVOICE, E-İrsaliye için DESPATCHADVICE gönderilmelidir. Her iki ürüne ait etiketleri toplu çekmek için ALL değeri gönderilebilir. Parametre gönderilmez veya boş gönderilirse bütün liste dönülecektir.
Kimlik Doğrulama Webservisi
Entegrasyon sürecinin ilk adımı olan kimlik doğrulamayı sağlayan servistir. Yapılan her işlem mutlaka aktif bir oturum ile yapılmalıdır.
İstemci (client) Örnek Projeler
Webservice entegrasyonu için sunucu taraflı programlama diline uygun farklı istemci(client) örnekleri sunar. Bu istemcilerden programlama yapmak istediğiniz dile uygun olanı seçip test bilgileri ile kullanmaya başlayabilirsiniz.
İstemci örneklerini talep etmek için destek@turkbelge.com.tr adresine .net, php, java, delphi veya soapui örneklerinden hangisini talep ettiğinizi bildiriniz.
Ortak Kullanılan Eleman
Her webservis isteğinde gönderilmesi beklen ortak elemandır (REQUEST_HEADER)
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| SESSION_ID | String | Evet | Login Metodunda sistem tarafında gönderilen SESSION_ID bilgisi. Sonraki tüm metod çağrılarında parametre olarak metoda geçmelidir. |
| APPLICATION_NAME | String | Evet | Metodu çağıran uygulamanın adı. Mutlaka uygulama adının yazılması gerekmektedir. |
| CHANNEL_NAME | String | Evet | Metodun çağrıldığı kanal adı. |
| COMPRESSED | String | Hayır | İçerikte taşınan bilginin ZIP formatında sıkıştırılmış mı gönderildiği/talep edildiği bilgisi. Belge gönderim ve belge okuma servislerinde gönderilen değere göre işlem yapılmaktadır. |
| CLIENT_TXN_ID | String | Hayır | İstemci uygulama tarafından işlem için üretilen işlem bilgisi (transaction id) varsa istek esnasında gönderilip, sonuçta alabileceğiniz bir değerdir. request/response eşleşmesi yapmak için kullanılabilir. |
| INT_PARENT_TXN_ID | String | Hayır | İstemci uygulamasında ana modül entitileri ile ilişkilendirelmek istenen ana transaction ID. |
| ACTION_DATE | String | Hayır | Metodun çağrılma tarihi |
| CHANGE_INFO | Array | Hayır | Bu eleman ile eğer verilerde bir değişiklik yapılacak ise o değişikliği ait bilgi. |
| REASON | String | Hayır | İşlem sebebi. Fatura gönderme, fatura alma vs. |
| HOST_NAME | String | Hayır | Metodu çağıran sunucunun host bilgisi. |
| SIMULATION_FLAG | String | Hayır | Metod çağrılır ancak arkadaki işlem yapılmaz. |
Başarı Sonuç Nesnesi
Webservis işlem başarılı olduğunda response objesi içerisinde REQUEST_RETURN tipinde sonuç dönülecektir.
Servisten dönen hata sonuç nesnesi şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| REQUEST_RETURN | ComplexType | İşlem sonucunu içeren başarılı sonuç objesi |
| INT_TXN_ID | String | Sunucuda işlemin gerçekleştirildiği transaction IDsi. Bu ID istemci tarafında kaydedilerek oluşabilecek hatalarda referans olarak destek ekibine iletilebilir. |
| RETURN_CODE | String | Başarılı durumlarda 0 değeri döner. Başarısız olduğunda bu eleman dönülmez. |
| INVOICE_ID | String | Fatura numarası e-arşiv platformunda atanmışsa atanan fatura numarası dönülür. |
Hata Sonuç Nesnesi
Webservis metodunda hata oluşması durumunda response objesi içerisinde ERROR_TYPE tipinde sonuç dönülecektir.
Servisten dönen hata sonuç nesnesi şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| ERROR_TYPE | ComplexType | İşlem sonucunu içeren başarısız/hatalı sonuç objesi |
| INTL_TXN_ID | String | Sunucuda işlemin gerçekleştirildiği transaction IDsi. Bu ID istemci tarafında kaydedilerek oluşabilecek hatalarda referans olarak destek ekibine iletilebilir. |
| ERROR_CODE | String | Hata kodu. Hata kod detayları için ilgili servisteki hata kod listesini inceleyebilirsiniz. |
| ERROR_SHORT_DESC | String | Hatanın kısa açıklaması. |
Oturum Açma (Login)
- Web servis istemcisinin(client) özel entegratör platformuna kimlik doğrulayarak giriş yapmasını sağlar.
- Bu servise giriş için kullanılan kullanıcı bilgileri, portale giriş için kullanılan kullanıcı bilgileri ile aynıdır.
- Login işleminden dönen işlem ID parametresi daha sonra çağrılacak tüm metotlarda
HEADER_REQUEST.SESSION_IDelemanı olarak gönderilmelidir.
Servise gönderilmesi gereken parametreler şu şekildedir:
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| REQUEST_HEADER | ComplexType | Evet | Request Header objesi içerisinde SESSION_ID ve APPLICATION_NAME alanı zorunludur. |
| REQUEST_HEADER.SESSION_ID | String | Evet | Request Header objesi içerisinde bulunan SESSION_ID login servisinde -1 olarak gönderilmelidir. |
| USER_NAME | String | Evet | Sisteme tanımlı kullanıcı adı. Test hesabı için destek@turkbelge.com.tr e-posta adresiyle iletişime geçebilirsiniz. |
| PASSWORD | String | Evet | Sisteme tanımlı kullanıcıya ait şifre. |
Servisten dönen parametreler şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| SESSION_ID | String | Sonraki metod çağrılarında kullanılacak oturum bilgisi. |
Oturum Kapatma (Logout)
Web servis istemcisinin özel entegratör platformunda ki oturumu kapatmasını sağlayan servistir.
Servise gönderilmesi gereken parametreler şu şekildedir:
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| SESSION_ID | String | Evet | Oturum kapatılmak istenen session ID değeri |
Servisten dönen parametreler şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| RETURN_CODE | String | Oturum başarı ile sonlandırılmışsa 0 döner |
Mükellef Listesi Çekme (GetGibUserList)
E-Fatura ve E-İrsaliye sistemine kayıtlı firmalara ait GB/PK etiketlerinin sıkıştırılmış olarak istenilen tipte dönüldüğü servistir.
Mükellef Çekme Senaryoları
İşlem |
DOCUMENT | ALIAS | ALIAS_MODIFY | REGISTER_TIME |
|---|---|---|---|---|
Aktif E-Fatura ve E-İrsaliye posta kutusu etiketlerini çekme |
ALL | PK | - | - |
Aktif E-Fatura ve E-İrsaliye GB ve PK etiketlerini çekme |
ALL | ALL | - | - |
Aktif E-Fatura posta kutusu etiketlerini çekme |
INVOICE | PK | - | - |
Aktif E-İrsaliye posta kutusu etiketlerini çekme |
DESPATCHADVICE | PK | - | - |
Belirli tarihten sonra (2019-12-01) eklenen veya silinen E-Fatura ve E-İrsaliye posta kutusu etiketlerini çekme |
ALL | PK | 2019-12-01 | - |
Belirli tarihten sonra (2019-12-01) eklenen veya silinen E-Fatura ve E-İrsaliye GB ve PK etiketlerini çekme |
ALL | ALL | 2019-12-01 | - |
Belirli tarihten sonra (2019-12-01) eklenen veya silinen E-Fatura posta kutusu etiketlerini çekme |
INVOICE | PK | 2019-12-01 | - |
Belirli tarihten sonra (2019-12-01) eklenen veya silinen E-İrsaliye posta kutusu etiketlerini çekme |
DESPATCHADVICE | PK | 2019-12-01 | |
Belirli tarihten sonra (2019-12-01) E-Fatura veya E-İrsaliye mükellefi olan firmaların etiketlerini çekme |
ALL | ALL | - | 2019-12-01 |
Belirli tarihten sonra (2013-12-01) E-Fatura veya E-İrsaliye mükellefi olan firmaların belirtilen bir tarihten (2019-12-01) sonra eklenen veya silinen etiketlerini çekme |
ALL | ALL | 2019-12-01 | 2013-12-01 |
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| REQUEST_HEADER | ComplexType | Evet | Request Header objesi içerisinde SESSION_ID ve APPLICATION_NAME alanı zorunludur. |
| TYPE | String | Hayır | Listenin dönüleceği dosya tipi. XML ve CSV olabilir. Varsayılan XMLdir. |
| DOCUMENT_TYPE | String | Hayır | Mükellef listesi çekilmek istenilen ürün tipi. E-Fatura için INVOICE, E-İrsaliye için DESPATCHADVICE gönderilmelidir. Her iki ürüne ait etiketleri çekmek için ALL değeri gönderilebilir. Parametre gönderilmez bütün ürünlere ait Aktif etiket listesi dönülecektir. |
| ALIAS_TYPE | String | Hayır | Mükelleflerin etiketlerine göre çekmek için kullanılır. Sadece Gönderici Birim etiketini çekmek için GB, Posta Kutusu etiketini çekmek için PK gönderilmelidir. Bütün etiketleri çekmek için ALL değeri gönderilebilir. Varsayılan PKdir. Parametre gönderilmez ise sadece PK etiket listesi dönülecektir. Belge göndermek için sadece PK etiketlerine ihtiyaç bulunmaktadır. |
| REGISTER_TIME_START | DateTime | Hayır | Mükellefiyet başlangıç tarihi. Belirli bir tarihten sonra e-fatura veya e-irsaliye mükellefi sisteme dahil olmuş mükellefleri çekmek için kullanılabilir. Eğer tarih içerisinde saat bilgisi gönderilirse sonuç dönülürken dikkate alınacaktır. format: YYYY-AA-GG veya YYYY-AA-GGTSS:DD:SS formatında 2013-01-01, 2013-01-01T01:01:01 |
| ALIAS_MODIFY_DATE | DateTime | Hayır | Etiket durum değişiklik tarihi. Belirli bir tarihten sonra sisteme eklenen veya silinen etiketleri çekmek için kullanılabilir. Bu parametre gönderilirse gönderilen tarihten sonra sisteme eklenen veya silinen etiketler dönülecektir. Eğer tarih içerisinde saat bilgisi gönderilirse sonuç dönülürken dikkate alınacaktır. format: YYYY-AA-GG veya YYYY-AA-GGTSS:DD:SS formatında 2013-01-01, 2013-01-01T01:01:01 |
Servisten dönen parametreler şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| CONTENT | Base64Encoded | Kriterlere uygun mükelleflere ait GB ve PK adresleri |
XML dosyasının içerisinde bulunan USER objesinin elamanları şu şekildedir :
| Eleman | Tip | Açıklama |
|---|---|---|
| USER.IDENTIFIER | String | Mükellefe ait VKNsı. |
| USER.ALIAS | String | Mükellefe ait GB veya PK etiketi. format: urn:mail:defaultgb@firma.com |
| USER.TITLE | String | Firmanın GİB e-fatura sisteminde tanımlı ünvanı. |
| USER.TYPE | String | Firmanın GİB e-fatura sisteminde tanımlı tipi. OZEL veya KAMU olabilir. |
| USER.UNIT | String | Etiketin tipi. GB veya PK |
| USER.DOCUMENT_TYPE | String | E-Fatura için INVOICE, E-İrsaliye için DESPATCHADVICE dönülmektedir. |
| USER.REGISTER_TIME | DateTime | Firmanın GİB e-fatura sistemine ilk kayıt olduğu tarih. formatı: 2013-07-01T15:22:11 |
| USER.ALIAS_CREATION_TIME | DateTime | Etiketin oluşturulduğu tarih. formatı: 2013-07-01T15:22:11 |
| USER.DELETED | String | Eleman sadece silinmiş etiketlerde bulunur. Değeri Y olur. Silinmemiş etiketlerde bu eleman bulunmaz. |
| USER.DELETION_TIME | DateTime | Eleman sadece silinmiş etiketlerde bulunur. Etiketin GİB sisteminde kapatıldığı tarih. formatı: 2013-07-01T15:22:11 |
E-Fatura Mükellefi Sorgulama (CheckUser)
- Mükellefin, Gelir İdaresi Başkanlığı sistemine kayıtlı olup olmadığının kontrol edildiği servistir.
- Sorgulanan VKN GİB sistemine kayıtlıysa, sistemde tanımlanmış etiket listesi dönülmektedir.
- Sorgulanan VKN GİB sistemine kayıtlı değilse liste boş dönülür. Sonuç boş ise firma mükellef değildir.
Servise gönderilmesi gereken parametreler şu şekildedir:
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| REQUEST_HEADER | ComplexType | Evet | Request Header objesi içerisinde SESSION_ID ve APPLICATION_NAME alanı zorunludur. |
| USER.IDENTIFIER | String | Evet | Mükellefiyeti sorgulanacak firmanın vergi kimlik numarası |
| DOCUMENT_TYPE | String | Evet | Mükelleffiyet kontrol edilecek ürün tipi. E-Fatura için INVOICE, E-İrsaliye için DESPATCHADVICE gönderilmelidir. |
Servisten dönen parametreler şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| USER.IDENTIFIER | String | Mükellefe ait VKNsı. |
| USER.ALIAS | String | Mükellefe ait GB veya PK etiketi. |
| USER.TITLE | String | Firmanın GİB sisteminde tanımlı ünvanı. |
| USER.TYPE | String | Firmanın GİB sisteminde tanımlı tipi. OZEL veya KAMU olabilir. |
| USER.REGISTER_TIME | Date | Firmanın GİB sistemine ilk kayıt olduğu tarih. formatı: 2013-07-01T15:22:11 |
| USER.UNIT | String | Etiketin tipi. GB veya PK |
| USER.ALIAS_CREATION_TIME | DateTime | Etiketin oluşturulduğu tarih. formatı: 2013-07-01T15:22:11 |
E-Fatura Webservisi
e-Fatura servisi, e-fatura mükellefinin fatura gönderimini ve gelen faturaları kendisi sistemine çekmesini sağlayan webservis uygulamasıdır.
GİB Dokümanları
UBL-Fatura Örnekleri
E-Fatura ve E-Arşiv Fatura sistemi üzerinden düzenlebilecek ve gönderilebilecek fatura senaryoları ve örnek fatura XML dosyası aşağıda listelenmiştir.
Webservice Endpoint (WSDL) URL
| Ürün | Endpoint URL |
|---|---|
| Kimlik Doğrulama | https://authenticationws.turkbelge.com.tr/AuthenticationWS?wsdl |
| E-Fatura Webservis | https://efaturawstest.turkbelge.com.tr/EFaturaOIB?wsdl |
| E-Arşiv Fatura Webservis | https://earsivwstest.turkbelge.com.tr/EIArchiveWS/EFaturaArchive?wsdl |
Portal Uygulaması
Entegrasyon sürecinde Portal uygulamamızı aşağıda ki durumlar için kullanabilirsiniz:
- Belgelerin durumunu kontrol
- Farklı senaryolar için belge düzenleyerek XML içeriğini kontrol
- Alıcı firmanın mükellefiyet sorgulaması
Test Portal Adresimiz: https://demo.turkbelge.com.tr
Test portali erişim bilgileri için destek@turkbelge.com.tr adresi ile iletişime geçebilirsiniz.
Test Hesaplar
Test sürecinde düzenlenen faturaların/irsaliyelerin göndericisi, alıcısı ve etiketler için aşağıda ki bilgiler kullanılmalıdır.
| Gönderici VKN | Gönderici Etiket | Alıcı VKN | Alıcı Etiket |
|---|---|---|---|
| 4710710430 | urn:mail:defaultgb@ileka.com.tr | 4710710430 | urn:mail:defaultpk@ileka.com.tr |
Dikkat Edilecek Hususlar
Uygulamanızı tasarlarken aşağıda ki bilgiler faydalı olacaktır:
- Kimlik Doğrulama (Authentication) Webservisinde bulunan Login servisi ile oturum açarak session id alınacak. Session Id sistemimiz tarafında 8 saate kadar zaman aşımına uğramadığı için kullanıcı giriş yapınca session id alıp bütün kullanım süresinde aynı session id kullanabilirsiniz.
- Kimlik Doğrulama (Authentication) Webservisinde bulunan GetGibUserList servisi ile GIB e-fatura mükellef listesini her 2 saatte özel entegratör platformundan çekmeniz gerekmektedir. Güncel listeyi çektikten sonra Cari listenizde ki firmaların e-fatura mükellefi olup olmadığını güncellemelisiniz.
- E-Fatura Mükellefi olan firmalara kesilen faturaları UBL-TR formatına dönüştürerek (ekte örnek fatura bulunuyor) TÜRKBELGE sunucularına gönderebilirsiniz. Her fatura içerisinde faturanın görüntülenmesini sağlayan XSLT dokümanı olmalıdır.
- SendInvoice metodu ile fatura gönderimi yapılacak. Gönderim esnasında eğer faturanın alıcısına ait birden fazla Posta Kutusu bulunuyorsa ekranda seçilerek gönderilmesi sağlanmalı. Sadece 1 adet PK adresi varsa seçim yapılmadan gönderim sağlanabilir.
- GetInvoiceStatus metodu ile gelen/giden faturaların durumları sorgulanacak. Nihai duruma erişene kadar faturanın durumu özel entegratör sisteminden minumum 4 saatte bir sorgulanmalıdır. Sık sorgulama yapmayınız.
- GetInvoice metodu ile firmaya gelen faturalar müşteri bilgisayarına aktarılır. TÜRKBELGE sistemlerine gelen yeni faturaları almanız gerekmektedir. Servis ile yeni gelen en fazla 100 adet faturayı çekebilirsiniz. Eğer dönen listede 100 adet fatura varsa yeniden getinvoice servisi çağırılarak başka fatura olup olmadığı kontrol edilmelidir. Dönen listede 100den az fatura varsa tekrar sorgulama yapmaya gerek yoktur. Fatura çekme zamanlayıcı ile yapılıyorsa en az 15 dk bir servis çağırılmalıdır.
- MarkInvoice metodu ile başarılı şekilde teslim alınan faturalar TÜRKBELGE sistemlerinde okundu olarak işaretlenir. Böylece bir sonra ki getinvoice servisi çağrılınca dönülmez.
- SendInvoiceResponseWithServerSign metodu ile gelen ticari bir faturaya kabul veya red yanıtı gönderebilirsiniz.
- Gelen bir faturaya 8 gün içerisinde kabul veya red gönderilebilir. 8 günü geçtikten sonra kabul/red yapılması engellenmelidir. Temel faturalar için yanıt gönderilmesi kısıtlanmalıdır.
- Ticari bir faturaya elektronik ortamda en fazla 1 adet yanıt gönderilebilir. Bundan dolayı bir faturaya başarıyla yanıt (kabul/red) gönderilmişse farklı bir yanıt gönderilmesi kısıtlanmalıdır.
- Kimlik Doğrulama (Authentication) Webservisinde bulunan Logout metodu ile kullanıcı e-fatura programını kapatınca veya sizin belirlediğiniz bir sürede oturumu kapatabilirsiniz.
E-Fatura Entegrasyon Kontrol Listesi
| Durum | Kontrol |
|---|---|
| Evet / Hayır | Oturum Açmak için Kimlik Doğrulama (Authentication) webservisinde ki Login metodu kullanıldı. |
| Evet / Hayır | Oturum açıldıktan sonra bütün isteklerde aynı Session ID kullanılıyor. Eğer Aktif session bulunamadı hatası dönülürse yeni oturum açılıyor. |
| Evet / Hayır | E-Fatura mükellef listesi çekmek için Kimlik Doğrulama (Authentication) webservisinde ki GetGibUserList metodu kullanılıyor. |
| Evet / Hayır | Gönderilen her istek ile REQUEST_HEADER objesinde ki SESSION_ID ve APPLICATION_NAME alanları dolu gönderiliyor. |
| Evet / Hayır | Fatura numarası ataması müteselsilliği sağlıyor. |
| Evet / Hayır | Her türlü fatura senaryosuna göre fatura SendInvoice metodu kullanılarak gönderildi (TEMEL, TICARI, IHRACAT, YOLCUBERABERI,SGK) |
| Evet / Hayır | Her türlü fatura tipinden örnek fatura gönderildi. (Satış, Iade, Tevkifat, Özel Matrah vs) |
| Evet / Hayır | Özel entegratöre iletilen faturalar için muhasebe paketi/ERP'de değişiklik yapılamıyor. Kayıt kitleniyor. |
| Evet / Hayır | Alıcı tarafında hata almış faturalar aynı fatura numarası ama farklı ETTN ile tekrar SendInvoice servisi kullanılarak gönderilebiliyor. |
| Evet / Hayır | 7 günden geriye fatura düzenlenemiyor. |
| Evet / Hayır | GetInvoice metodu kullanılarak yeni gelen bütün faturalar içerikleri ile beraber (XML) müşteri ortamına çekiliyor. |
| Evet / Hayır | Özel entegratörden fatura çekme özelliği ekranda bir butona değilde zamanlayıcı ile belirli aralıkta otomatik yapılıyorsa bu süre konfiguratif ve en az 15dk olarak belirlendi. |
| Evet / Hayır | Özel entegratörden fatura çekme ekranda bir buton ile kullanıcıya bırakıldıysa kullanıcı çok sık butona tıklasa bile 5 dakika da bir yapılıyor. |
| Evet / Hayır | Özel entegratörden GetInvoice metodu ile çekilen faturaların XMLleri (file sisteme veya veritabanına) kaydediliyor. |
| Evet / Hayır | Başarı ile kaydedilen faturalar için MarkInvoice kullanılarak alındı mesajı gönderildi. |
| Evet / Hayır | Alınan bütün faturalar için toplu alındı mesajı gönderilmek için GetInvoice metodu ile dönülen INVOICE listesi MarkInvoice metoduna parametre olarak gönderiliyorsa fatura içeriğinin (Base64Binary) bulunduğu INVOICE.CONTENT alanı boşaltılıyor. Böylece network trafik oluşturulması önleniyor. |
| Evet / Hayır | Faturaların durumu zamanlayıcı ile otomatik sorgulanıyorsa bu süre konfiguratif ve en az 4 saat olarak belirlendi. |
| Evet / Hayır | Nihai duruma ulaşmış giden faturaların (GetInvoiceStatus servisi ile dönülen SUBSTATUS parametresinin değeri SUCCEED veya FAILED ise) durumları sorgulanmıyor. |
| Evet / Hayır | Gelen temel faturaların durumları sorgulanmıyor. |
| Evet / Hayır | Gelen ticari faturaların durumları yanıt verildikten sonra sorugulanmaya başlanıyor ve GetInvoiceStatus servisi ile dönülen STATUS parametresinin değeri SUCCEED veya FAILED olana kadar sorgulanıyor. |
| Evet / Hayır | Alıcı sisteme ulaştıktan sonra üzerinden 8 gün geçmiş gelen veya giden faturaların durumları sorgulanmıyor. |
| Evet / Hayır | Nihai duruma ulaşmamış faturalar için durum sorgulaması GetInvoiceStatus metodu ile yapılıyor. |
| Evet / Hayır | Durum sorgulaması yapılacak fatura birden fazla ise GetInvoiceStatus metodunda UUID parametresi çoklanarak tek bir istek ile yapılıyor. Yani her fatura için ayrı ayrı durum sorgulaması yapılmıyor. |
| Evet / Hayır | İhracat faturaların durumları sorgulanınca GTB numarası vs alınıp müşteriye gösteriliyor. |
| Evet / Hayır | Gelen temel fatura senaryosunda ki faturalara kabul veya ret yanıtı gönderilemiyor. |
| Evet / Hayır | Gelen ticari fatura senaryosunda ki faturalara kabul veya red yanıtı SendInvoiceResponseWithServerSign metodu ile gönderildi. |
| Evet / Hayır | Ret edilen ticari faturalar için red sebebi mutlaka gönderiliyor. |
| Evet / Hayır | Fatura görüntülemek için indirdilen fatura XML içerisinde ki XSLT ile transform edip HTML görüntüsünü oluşturuluyor. |
| Evet / Hayır | Kullanıcı uygulamayı kapattığında Kimlik Doğrulama (Authentication) webservisinde ki Logout metodu kullanarak oturum kapatıldı. |
İstemci (client) Örnek Projeler
Webservice entegrasyonu için sunucu taraflı programlama diline uygun farklı istemci(client) örnekleri sunar. Bu istemcilerden programlama yapmak istediğiniz dile uygun olanı seçip test bilgileri ile kullanmaya başlayabilirsiniz.
İstemci örneklerini talep etmek için destek@turkbelge.com.tr adresine .net, php, java, delphi veya soapui örneklerinden hangisini talep ettiğinizi bildiriniz.
Fatura Sınıfı (InvoiceType) Nasıl Üretilir ?
.NET üzerinden XSD dosyasından sınıf üretmek için şu adımları uygulayınız:
- http://www.efatura.gov.tr/dosyalar/kilavuzlar/UBL-TR1.2.1_Paketi.zip adresinden paket indirilir.
- İndirilen dosya unzip edilir.
- .Net Framework yüklü olan bir bilgisayarda başlat>Developer Command Prompt yazılır ve gelen seçenek tıklanarak komut dosyası açılır
- 2.maddedeki unzip yapılan dizine cd UNZIP_EDILEN_DIZIN olarak gidilir.
- Gelen ekranda aşağıdaki komutu yapıştırıyoruz.
xsd /c UBL-Invoice-2.1.xsd UBL-CommonExtensionComponents-2.1.xsd UBL-CommonBasicComponents-2.1.xsd UBL-UnqualifiedDataTypes-2.1.xsd UBL-CoreComponentParameters-2.1.xsd CCTS_CCT_SchemaModule-2.1.xsd UBL-CommonAggregateComponents-2.1.xsd - Bu işlemin sonunda e-Fatura/E-Arşiv fatura oluşturmak için gerekli bütün sınıflar UBL-Invoice-2.1.cs dosyası içerisinde oluşturulacaktır.
- Fatura InvoiceType sınıfı ile üretilmektedir.
Ortak Kullanılan Eleman
Her webservis isteğinde gönderilmesi beklen ortak elemandır (REQUEST_HEADER)
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| SESSION_ID | String | Evet | Login Metodunda sistem tarafında gönderilen SESSION_ID bilgisi. Sonraki tüm metod çağrılarında parametre olarak metoda geçmelidir. |
| APPLICATION_NAME | String | Evet | Metodu çağıran uygulamanın adı. Mutlaka uygulama adının yazılması gerekmektedir. |
| CHANNEL_NAME | String | Evet | Metodun çağrıldığı kanal adı. |
| COMPRESSED | String | Hayır | İçerikte taşınan bilginin ZIP formatında sıkıştırılmış mı gönderildiği/talep edildiği bilgisi. Belge gönderim ve belge okuma servislerinde gönderilen değere göre işlem yapılmaktadır. |
| CLIENT_TXN_ID | String | Hayır | İstemci uygulama tarafından işlem için üretilen işlem bilgisi (transaction id) varsa istek esnasında gönderilip, sonuçta alabileceğiniz bir değerdir. request/response eşleşmesi yapmak için kullanılabilir. |
| INT_PARENT_TXN_ID | String | Hayır | İstemci uygulamasında ana modül entitileri ile ilişkilendirelmek istenen ana transaction ID. |
| ACTION_DATE | String | Hayır | Metodun çağrılma tarihi |
| CHANGE_INFO | Array | Hayır | Bu eleman ile eğer verilerde bir değişiklik yapılacak ise o değişikliği ait bilgi. |
| REASON | String | Hayır | İşlem sebebi. Fatura gönderme, fatura alma vs. |
| HOST_NAME | String | Hayır | Metodu çağıran sunucunun host bilgisi. |
| SIMULATION_FLAG | String | Hayır | Metod çağrılır ancak arkadaki işlem yapılmaz. |
Başarı Sonuç Nesnesi
Webservis işlem başarılı olduğunda response objesi içerisinde REQUEST_RETURN tipinde sonuç dönülecektir.
Servisten dönen hata sonuç nesnesi şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| REQUEST_RETURN | ComplexType | İşlem sonucunu içeren başarılı sonuç objesi |
| INT_TXN_ID | String | Sunucuda işlemin gerçekleştirildiği transaction IDsi. Bu ID istemci tarafında kaydedilerek oluşabilecek hatalarda referans olarak destek ekibine iletilebilir. |
| RETURN_CODE | String | Başarılı durumlarda 0 değeri döner. Başarısız olduğunda bu eleman dönülmez. |
| INVOICE_ID | String | Fatura numarası e-arşiv platformunda atanmışsa atanan fatura numarası dönülür. |
Hata Sonuç Nesnesi
Webservis metodunda hata oluşması durumunda response objesi içerisinde ERROR_TYPE tipinde sonuç dönülecektir.
Servisten dönen hata sonuç nesnesi şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| ERROR_TYPE | ComplexType | İşlem sonucunu içeren başarısız/hatalı sonuç objesi |
| INTL_TXN_ID | String | Sunucuda işlemin gerçekleştirildiği transaction IDsi. Bu ID istemci tarafında kaydedilerek oluşabilecek hatalarda referans olarak destek ekibine iletilebilir. |
| ERROR_CODE | String | Hata kodu. Hata kod detayları için ilgili servisteki hata kod listesini inceleyebilirsiniz. |
| ERROR_SHORT_DESC | String | Hatanın kısa açıklaması. |
Fatura Gönderme (SendInvoice)
- FATURA Entegrasyon Platformu üzerinden 1 yada daha fazla faturayı GIB (Gelir İdaresi Başkanlığı) EFATURA sistemine gönderir.
- Bu işlemden sonra gönderilen faturaların durumları GetInvoiceStatus servisi ile kontrol edilmelidir.
- Faturanın durumu GIB’de hatalı olduğu zaman bu servis ile faturayı aynı fatura numarası ve aynı ETTN ile tekrar gönderilebilir.
- Fatura yüklenirken fatura şema ve şematron kontrolü ve tekillik kontrolünden geçirilir. Fatura XML içerisinde hata varsa sisteme yüklenmez. Fatura XML içerisinde ki sorun düzeltilerek tekrar gönderilmelidir.
Servise gönderilmesi gereken parametreler şu şekildedir:
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| REQUEST_HEADER.SESSION_ID | String | Evet | Request Header objesi içerisinde bulunan SESSION_ID gönderilmelidir. |
| REQUEST_HEADER.COMPRESSED | String | Hayır | Binary Fatura içeriği sıkıştırılmış/sıkıştırılmamış bilgisi. Varsayılan değer Y olduğu için gönderilmediği durumda fatura sıkıştırılarak/ziplenerek gönderilmesi beklenmektedir. Faturayı XML olarak göndermek için mutlaka eleman eklenmeli ve N değeri gönderilmelidir. |
| SENDER | String | Hayır | Faturayı gönderen tarafın vergi kimlik numarasını vkn attribute içerisine, gönderici birim etiketini alias attribute eklenmelidir. Eğer eleman gönderilmezse oturum açılan kullanıcının bağlı olduğu hesapta ki VKN ve gönderici birim etiketi kullanılacaktır. Sender elemanı gönderilmesini tavsiye ederiz. |
| RECEIVER | String | Hayır | Faturanın alıcı tarafının vergi kimlik numarasını vkn attribute içerisine, posta kutusu etiketini alias attribute içerisine eklenmelidir. Eğer eleman gönderilmezse fatura içerisinde ki alıcı taraf (AccountingCustomerParty) içerisinde ki VKN ve o VKN için tanımlanmış herhangi bir posta kutusu etiketi kullanılacaktır. Receiver elemanı gönderilmesini tavsiye ederiz. Özellikle alıcı tarafından posta kutusu tercihi talep edilmişse bu eleman kullanılmalıdır. |
| INVOICE.CONTENT | Array | Evet | Faturanın Base64Binary tipinde XML veya Ziplenmiş içeriği. Bir istek ile çoklu fatura gönderimi yapılabilir. Birden fazla fatura göndermek için INVOICE elemanı çoklanmalıdır. |
Başarı Sonuç Nesnesi
Webservis işlem başarılı olduğunda response objesi içerisinde REQUEST_RETURN tipinde sonuç dönülecektir.
Servisten dönen hata sonuç nesnesi şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| REQUEST_RETURN | ComplexType | İşlem sonucunu içeren başarılı sonuç objesi |
| INT_TXN_ID | String | Sunucuda işlemin gerçekleştirildiği transaction IDsi. Bu ID istemci tarafında kaydedilerek oluşabilecek hatalarda referans olarak destek ekibine iletilebilir. |
| RETURN_CODE | String | Başarılı işlemlerde 0 değeri döner. Başarısız olduğunda bu eleman dönülmez. |
| INVOICE_ID | String | Fatura numarası e-arşiv platformunda atanmışsa atanan fatura numarası dönülür. |
Hata Sonuç Nesnesi
Webservis metodunda hata oluşması durumunda response objesi içerisinde ERROR_TYPE tipinde sonuç dönülecektir.
Servisten dönen hata sonuç nesnesi şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| ERROR_TYPE | ComplexType | İşlem sonucunu içeren başarısız/hatalı sonuç objesi |
| INTL_TXN_ID | String | Sunucuda işlemin gerçekleştirildiği transaction IDsi. Bu ID istemci tarafında kaydedilerek oluşabilecek hatalarda referans olarak destek ekibine iletilebilir. |
| ERROR_CODE | String | Hata kodu. Hata kod detayları için ilgili servisteki hata kod listesini inceleyebilirsiniz. |
| ERROR_SHORT_DESC | String | Hatanın kısa açıklaması. |
Hata Kodları
| Hata Kodu | Açıklama |
|---|---|
| -1 | Beklenmedik bir hata oluştu. Lütfen daha sonra tekrar deneyiniz. |
| 10001 | Sistemde Beklenmedik Bir Hata Oluştu: {HATA SEBEBİ} |
| 10002 | Oturum oluşturulamadı |
| 10003 | Belge Şematron Kontrolünden Geçemedi: {HATA SEBEBİ} |
| 10004 | Geçersiz oturum. Lütfen tekrar oturum oluşturunuz ve tekrar deneyiniz |
| 10005 | Hesabınızın {ÜRÜN ADI} ürün aktif degildir |
| 10006 | Yetkiniz bulunmamaktadır |
| 10007 | İstek ZİP bir dosya içermelidir |
| 10008 | Belirtilen kriterlere uygun kayıt bulunamamıştır |
| 10009 | Gönderilen belge daha önce gönderilmiş bir belge ile eşleşmektedir. ID: ve UUID: |
| 10010 | Bir istek boyutu maksimum 5MB veya 100 adet belge içerebilir |
| 10011 | Tekrarlanan işlem: kayıt sistemde mevcuttur |
| 10012 | Kullanıcı aktif degil {kullanıcı adı} |
| 10013 | Gönderilen istek geçersizdir. Hata sebebi {0} |
| 10014 | Geçersiz İmza |
| 10015 | Servis desteklenmemektedir. Servis adı |
| 10016 | Müşteri sistemde aktif degildir. |
| 10017 | Gönderilen belge daha önce gönderilmiş bir belge ile eşleşmektedir. ID: ve UUID: |
| 10018 | Yetkisiz erişim tespit edildi! {HATA SEBEBİ} |
Taslak Fatura Yükleme (LoadInvoice)
- FATURA Entegrasyon Platformu üzerinden 1 yada daha fazla faturayı E-Fatura sistemine yükler.
- Eğer fatura numarası atanmışsa (16 hane ise) şema ve şematron kontrolünden geçirilir. Fatura numarası atanmamışsa şema ve şematron kontrolü yapılmaz.
- Aynı faturanın tekrar yüklenmesine müsade edilir. Farklı kayıt oluşturulmaz. Oluşan kayıt yeni içerik ile güncellenir.
Servise gönderilmesi gereken parametreler şu şekildedir:
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| REQUEST_HEADER | ComplexType | Evet | Request Header objesi içerisinde SESSION_ID ve APPLICATION_NAME alanı zorunludur. Fatura sıkıştırılarak/ziplenerek gönderiliyorsa COMPRESSED alanı gönderilmeyebilir veya Y olarak gönderilebilir. Faturayı XML formatında sıkıştırılmadan yüklemek için mutlaka COMPRESSED eleman eklenmeli ve N değeri gönderilmelidir. |
| INVOICE.CONTENT | Array | Evet | Faturanın Base64Binary olarak encode edilmiş XML veya Ziplenmiş içeriği. Bir istek ile çoklu fatura gönderimi yapılabilir. Birden fazla fatura göndermek için INVOICE elemanı çoklanmalıdır. |
Başarı Sonuç Nesnesi
Webservis işlem başarılı olduğunda response objesi içerisinde REQUEST_RETURN tipinde sonuç dönülecektir.
Servisten dönen hata sonuç nesnesi şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| REQUEST_RETURN | ComplexType | İşlem sonucunu içeren başarılı sonuç objesi |
| INT_TXN_ID | String | Sunucuda işlemin gerçekleştirildiği transaction IDsi. Bu ID istemci tarafında kaydedilerek oluşabilecek hatalarda referans olarak destek ekibine iletilebilir. |
| RETURN_CODE | String | Başarılı işlemlerde 0 değeri döner. Başarısız olduğunda bu eleman dönülmez. |
| INVOICE_ID | String | Fatura numarası e-arşiv platformunda atanmışsa atanan fatura numarası dönülür. |
Hata Sonuç Nesnesi
Webservis metodunda hata oluşması durumunda response objesi içerisinde ERROR_TYPE tipinde sonuç dönülecektir.
Servisten dönen hata sonuç nesnesi şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| ERROR_TYPE | ComplexType | İşlem sonucunu içeren başarısız/hatalı sonuç objesi |
| INTL_TXN_ID | String | Sunucuda işlemin gerçekleştirildiği transaction IDsi. Bu ID istemci tarafında kaydedilerek oluşabilecek hatalarda referans olarak destek ekibine iletilebilir. |
| ERROR_CODE | String | Hata kodu. Hata kod detayları için ilgili servisteki hata kod listesini inceleyebilirsiniz. |
| ERROR_SHORT_DESC | String | Hatanın kısa açıklaması. |
Hata Kodları
| Hata Kodu | Açıklama |
|---|---|
| -1 | Beklenmedik bir hata oluştu. Lütfen daha sonra tekrar deneyiniz. |
| 10001 | Sistemde Beklenmedik Bir Hata Oluştu: {HATA SEBEBİ} |
| 10002 | Oturum oluşturulamadı |
| 10003 | Belge Şematron Kontrolünden Geçemedi: {HATA SEBEBİ} |
| 10004 | Geçersiz oturum. Lütfen tekrar oturum oluşturunuz ve tekrar deneyiniz |
| 10005 | Hesabınızın {ÜRÜN ADI} ürün aktif degildir |
| 10006 | Yetkiniz bulunmamaktadır |
| 10007 | İstek ZİP bir dosya içermelidir |
| 10008 | Belirtilen kriterlere uygun kayıt bulunamamıştır |
| 10009 | Gönderilen belge daha önce gönderilmiş bir belge ile eşleşmektedir. ID: ve UUID: |
| 10010 | Bir istek boyutu maksimum 5MB veya 100 adet belge içerebilir |
| 10011 | Tekrarlanan işlem: kayıt sistemde mevcuttur |
| 10012 | Kullanıcı aktif degil {kullanıcı adı} |
| 10013 | Gönderilen istek geçersizdir. Hata sebebi {0} |
| 10014 | Geçersiz İmza |
| 10015 | Servis desteklenmemektedir. Servis adı |
| 10016 | Müşteri sistemde aktif degildir. |
| 10017 | Gönderilen belge daha önce gönderilmiş bir belge ile eşleşmektedir. ID: ve UUID: |
| 10018 | Yetkisiz erişim tespit edildi! {HATA SEBEBİ} |
E-Fatura Okuma (GetInvoice)
- E-Fatura sisteminden giden imzalı faturaları veya gelen faturaları muhasebe paketine çekmek için kullanılır.
- Fatura özet bilgilerini veya fatura özet bilgileri ile beraber XML içeriğini de çekmek için kullanılabilir.
- Entegrasyon yapan iş ortaklarımızdan yeni gelen bütün faturaları içerikleri (XML) beraber müşteri ortamına çekilmesini tavsiye ediyoruz.
- İçerik ile beraber en fazla 100 fatura çekilebilir.
- Fatura özet bilgileri ile en fazla 25000 adet fatura dönülmektedir.
- Alıcı tarafından zamanlanmış fatura çekme özelliği eklenecekse en fazla 15 dakika aralığında olmalıdır.
Servise gönderilmesi gereken parametreler şu şekildedir:
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| REQUEST_HEADER | ComplexType | Evet | Request Header objesi içerisinde SESSION_ID ve APPLICATION_NAME alanı zorunludur. Faturaları XML formatında sıkıştırılmadan çekmek için mutlaka COMPRESSED elemanı eklenmeli ve N değeri gönderilmelidir. Eğer gönderilmezse faturalar sıkıştırılmış/ziplenmiş olarak dönülecektir. Değerler: Y/N |
| SEARCH_KEY.LIMIT | String | Hayır | Kaç fatura okunmak istendiği. Eğer eleman gönderilmezse 10 adet fatura, fatura içerikleri (XML) ile beraber en fazla 100 adet fatura, sadece fatura başlıklarını çekildiğindeise en fazla 25.000 adet fatura dönülür. |
| SEARCH_KEY.FROM | String | Hayır | Gönderici firma gönderici birim (GB) etiketine göre çekmek için kullanılabilir. Örneğin birden fazla GB etiketi olan bir firmanın sadece muhasebe departmanından gelen faturaları okumak için kullanılabilir. format: urn:mail:muhasebegb@firma.com |
| SEARCH_KEY.TO | String | Hayır | Birden fazla Posta Kutusu (PK) etiketi olan bir firmanın sadece bir PK adresine gelen faturaları çekmek için kullanılabilir. Eğer etiket gönderilmez ise kullanıcının yetkisine bağlı olarak bütün faturalar dönülür. format: urn:mail:muhasebepk@firma.com |
| SEARCH_KEY.ID | String | Hayır | Fatura numarası ile fatura okumak için kullanılabilir. format: FYA2018000000001 |
| SEARCH_KEY.UUID | String | Hayır | Evrensel Tekil Tanımlama Numarası (ETTN) ile fatura okumak için kullanılabilir. GUID formatında |
| SEARCH_KEY.START_DATE | String | Hayır | Belirli tarih aralığında fatura çekmek istendiğinde dönem başlangıç tarihi format: YYYY-MM-DD |
| SEARCH_KEY.END_DATE | String | Hayır | Belirli tarih aralığında fatura çekmek istendiğinde dönem bitiş tarihi format: YYYY-MM-DD |
| SEARCH_KEY.READ_INCLUDED | Boolean | Hayır | Fatura okurken daha önce okunmuş faturaları dönüşe dahil edilip edilmeyeceğini belirler. true değeri gönderilirse fatura daha önce okunmuş olsa bile yanıta eklenir. Gönderilmezse veya false gönderilirse sadece yeni gelen faturalar dönülür. Değerler: true/false |
| SEARCH_KEY.DRAFT_FLAG | String | Hayır | Taslak faturaları sonuca eklenmesi için kullanılan parametredir. Y değeri gönderilirse taslak faturalar diğer kriterlere uyan faturalarla beraber sonuca eklenir. Parametre gönderilmezse veya N gönderilirse taslak faturalar sonuca eklenmez. Değerler: Y/N |
| SEARCH_KEY.DIRECTION | String | Hayır | Belge yönü. Gelen veya Giden faturaları çekmek için kullanılabilir. Gelen faturaları çekmek için IN, giden faturaları çekmek için OUT değeri gönderilebilir. Varsayılan değer IN olduğu için eğer parametre gönderilmezse sadece gelen faturalar dönülecektir. Gönderilebilecek değerler: IN, OUT |
| HEADER_ONLY | String | Hayır | Fatura içerik ile beraber mi yoksa sadece özet bilgisi mi okunmak istenildiğini belirler. Eleman gönderilmezse veya N değeri gönderilirse faturalar XML ile beraber dönülür. Y değeri gönderilirse faturaların özeti dönülür. Değerler: Y/N |
Servisten dönen parametreler şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| INVOICE | ComplexType | Sorgu kriterine uyan fatura(lar)ın listesi. Fatura numarası ID, fatura evrensel tekil tanımlama numarası UUID ve e-fatura sisteminde tanımlı tekil numara değeri LIST_ID attribute içerisinde dönülmektedir. |
| INVOICE.HEADER | ComplexType | Faturaya ait özet bilgiler içermektedir. |
| HEADER.SENDER | String | Faturayı gönderen firma VKN'si. |
| HEADER.RECEIVER | String | Faturayı alan firma VKN'si. |
| HEADER.SUPPLIER | String | Faturayı gönderen firma ünvanı. |
| HEADER.CUSTOMER | String | Faturayı alan firma ünvanı. |
| HEADER.ISSUE_DATE | String | Fatura tarihi. |
| HEADER.PAYABLE_AMOUNT | String | Toplam ödenecek tutar. |
| HEADER.FROM | String | Faturayı gönderen Gönderici Birim (GB) |
| HEADER.TO | String | Faturanın geldiği Posta Kutusu (PK) |
| HEADER.PROFILEID | String | Faturanın senaryosu. TEMELFATURA, TICARIFATURA,IHRACATFATURA, YOLCUBERABER değerleri olabilir. |
| HEADER.INVOICE_TYPE_CODE | String | Faturanın tipi. SATIS, IADE, ISTISNA, IHRACAT, OZELMATRAH, TEVKIFAT, IHRACKAYITLI değerleri olabilir. |
| HEADER.STATUS | String | Faturanın durumu. Detay için Fatura durum sorgulama ekranında bulunan Fatura Durumları başlığını inceleyiniz. |
| HEADER.STATUS_DESCRIPTION | String | Fatura durum açıklaması. Detay için Fatura durum sorgulama ekranında bulunan Fatura Durumları başlığını inceleyiniz. |
| HEADER.GIB_STATUS_CODE | String | Faturanın GİB'de ki durum kodu. Detay için Fatura durum sorgulama ekranında bulunan GİB Durum Kodları başlığını inceleyiniz. |
| HEADER.GIB_STATUS_DESCRIPTION | String | Faturanın GİB'de ki durumunun kodunun açıklaması. Detay için GİB Durum Kodları başlığını inceleyiniz. |
| HEADER.RESPONSE_CODE | String | Ticari fatura için verilen yanıtı içeren zarfın durum kodu |
| HEADER.RESPONSE_DESC | String | Ticari fatura için verilen yanıtı içeren zarfın durum açıklaması |
| HEADER.CDATE | String | Faturanın sistemimize ulaştığı tarih |
| HEADER.ENVELOPE_IDENTIFIER | String | Faturanın zarf IDsi. |
| INVOICE.CONTENT | String | Faturanın içeriği. Eğer COMPRESSED elemanı N olarak gönderilmişse XML dosya, COMPRESSED elemanı gönderilmemiş veya Y değeri gönderilmişse sıkıştırılmış/ziplenmiş XML dosyası dönülür. |
Fatura Görsel Okuma (GetInvoiceWithType)
- E-Fatura sisteminden bulunan bir faturanın görselini çekmek için tasarlanmış servistir.
- Faturaların HTML ve PDF görsellerini çekebilirsiniz.
- Fatura görseli içerisinde ki XSLT ile yapılacaktır. Eğer fatura içerisinde ki şablonda sorun varsa hata fırlatılacaktır.
- İçerik sıkıştırılmış olarak dönülmektedir. İstemciye çektikten sonra unzip edilmelidir.
Servise gönderilmesi gereken parametreler şu şekildedir:
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| REQUEST_HEADER | ComplexType | Evet | Request Header objesi içerisinde SESSION_ID ve APPLICATION_NAME alanı zorunludur. Bu serviste COMPRESSED elemanı dikkate alınmamaktadır. Talep edilen formatta sıkıştırılmış/ziplenmiş olarak dönülecektir. İstemciye çektikten sonra unzip edilmelidir. |
| SEARCH_KEY.ID | String | Hayır | Fatura numarası ile fatura okumak için kullanılabilir. örnek FYA2018000000001 UUID elamanı gönderilmemişse zorunludur. |
| SEARCH_KEY.UUID | String | Hayır | Fatura Evrensel Tekil Tanımlama Numarası (ETTN) ile fatura okumak için kullanılabilir. ID elamanı gönderilmemişse zorunludur. |
| SEARCH_KEY.TYPE | String | Evet | Faturanın çekilmek istenilen tipi: PDF, HTML, XML olabilir. |
| SEARCH_KEY.DIRECTION | String | Evet | Belge yönü. Gelen veya Giden faturaları çekmek için kullanılabilir. Gelen faturaları çekmek için IN, giden faturaları çekmek için OUT değeri gönderilebilir. Varsayılan değer IN olduğu için eğer parametre gönderilmezse sadece gelen faturalar dönülecektir. Gönderilebilecek değerler: IN, OUT |
| HEADER_ONLY | String | Evet | Fatura görseli çekmek için N gönderilmelidir. |
Servisten dönen parametreler şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| INVOICE | ComplexType | Sorgu kriterine uyan fatura(lar)ın listesi. Fatura numarası ID, fatura evrensel tekil tanımlama numarası UUID ve e-fatura sisteminde tanımlı tekil numara değeri LIST_ID attribute içerisinde dönülmektedir. |
| INVOICE.HEADER | ComplexType | Faturaya ait özet bilgiler içermektedir. |
| HEADER.SENDER | String | Faturayı gönderen firma VKN'si. |
| HEADER.RECEIVER | String | Faturayı alan firma VKN'si. |
| HEADER.SUPPLIER | String | Faturayı gönderen firma ünvanı. |
| HEADER.CUSTOMER | String | Faturayı alan firma ünvanı. |
| HEADER.ISSUE_DATE | String | Fatura tarihi. |
| HEADER.PAYABLE_AMOUNT | String | Toplam ödenecek tutar. |
| HEADER.FROM | String | Faturayı gönderen Gönderici Birim (GB) |
| HEADER.TO | String | Faturanın geldiği Posta Kutusu (PK) |
| HEADER.PROFILEID | String | Faturanın senaryosu. TEMELFATURA, TICARIFATURA,IHRACATFATURA, YOLCUBERABER değerleri olabilir. |
| HEADER.INVOICE_TYPE_CODE | String | Faturanın tipi. SATIS, IADE, ISTISNA, IHRACAT, OZELMATRAH, TEVKIFAT, IHRACKAYITLI değerleri olabilir. |
| HEADER.STATUS | String | Faturanın durumu. Detay için Fatura Durumları başlığını inceleyiniz. |
| HEADER.STATUS_DESCRIPTION | String | Fatura durum açıklaması. Detay için Fatura Durumları başlığını inceleyiniz. |
| HEADER.GIB_STATUS_CODE | String | Faturanın GİB'de ki durum kodu. Detay için GİB Durum Kodları başlığını inceleyiniz. |
| HEADER.GIB_STATUS_DESCRIPTION | String | Faturanın GİB'de ki durumunun kodunun açıklaması. Detay için GİB Durum Kodları başlığını inceleyiniz. |
| HEADER.RESPONSE_CODE | String | Ticari fatura için verilen yanıtı içeren zarfın durum kodu |
| HEADER.RESPONSE_DESC | String | Ticari fatura için verilen yanıtı içeren zarfın durum açıklaması |
| HEADER.CDATE | String | Faturanın sistemimize ulaştığı tarih |
| HEADER.ENVELOPE_IDENTIFIER | String | Faturanın zarf IDsi. |
| INVOICE.CONTENT | Base64Binary | Faturanın talep edilen formatta (PDF, HTML) sıkıştırılmış/ziplenmiş dosyası dönülür. İstemciye çektikten sonra unzip edilmeldir. |
Fatura Okundu İşaretleme (MarkInvoice)
- E-Fatura sisteminde bir veya birden fazla faturayı alındı/alınmadı olarak işaretlemek için geliştirilmiş servistir.
- GetInvoice servisi ile müşteri ortamına başarı alınan faturaların tekrar sorgulandığında listede gelmemesi için MarkInvoice servisi ile alındı olarak işaretlenmeli.
Servise gönderilmesi gereken parametreler şu şekildedir:
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| REQUEST_HEADER | ComplexType | Evet | Request Header objesi içerisinde SESSION_ID ve APPLICATION_NAME alanı zorunludur. |
| MARK.value | String | Hayır | Başarı ile alındıysa READ gönderilmeli. Daha önce alındı olarak işaretlenen bir faturayı tekrar çekmeden önce UNREAD olarak gönderilebilir. |
| INVOICE.ID | String | Hayır | İşaretlenecek faturanın numarası. Örnek: FYA2018000000001 |
| INVOICE.UUID | String | Hayır | İşaretlenecek faturanın ETTNsi. GUID formatında olmalı. |
Servisten dönen parametreler şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| TXN_ID | String | Sunucuda işlemin gerçekleştirildiği transaction IDsi. Bu ID istemci tarafında kaydedilerek oluşabilecek hatalarda referans olarak destek ekibine iletilebilir. |
| RETURN_CODE | String | Başarılı durumlarda 0 değeri döner. Başarısız olduğunda WS Fault objesi dönecektir. |
Fatura Durum Sorgulama (GetInvoiceStatus)
- E-Fatura sisteminde bulunan bir veya birden fazla taslak, gelen ve giden faturaların durumunu sorgulamayı sağlayan servistir.
Servise gönderilmesi gereken parametreler şu şekildedir:
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| REQUEST_HEADER | ComplexType | Evet | Request Header objesi içerisinde SESSION_ID ve APPLICATION_NAME alanı zorunludur. |
| INVOICE.ID | String | Hayır | Durumu sorgulanacak faturanın 16 hane fatura numarası. örnek: FYA2018000000001 Eğer UUID elemanı gönderilmezse zorunludur. |
| INVOICE.UUID | String | Hayır | Durumu sorgulanacak faturanın GUID formatında Evrensel Tekil Tanımlama Numarası. Eğer ID elemanı gönderilmezse zorunludur. |
Servisten dönen parametreler şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| INVOICE_STATUS | ComplexType | Sorgu kriterine uyan fatura(lar)ın listesi. Fatura numarası ID, fatura evrensel tekil tanımlama numarası UUID attribute içerisinde dönülmektedir. |
| INVOICE_STATUS.STATUS | String | Faturanın e-fatura sisteminde ki durumu. Detay için Fatura Durumları başlığını inceleyiniz. |
| INVOICE_STATUS.STATUS_DESCRIPTION | String | Fatura durum açıklaması. Detay için Fatura Durumları başlığını inceleyiniz. |
| INVOICE_STATUS.GIB_STATUS_CODE | String | Faturanın GİB'de ki durum kodu. Faturanın GİB'de ki durumu e-fatura sistemi tarafından henüz sorgulanmadıysa eleman dönülmez. Detay için GİB Durum Kodları başlığını inceleyiniz. |
| INVOICE_STATUS.GIB_STATUS_DESCRIPTION | String | Faturanın GİB'de ki durumunun kodunun açıklaması. Faturanın GİB'de ki durumu e-fatura sistemi tarafından henüz sorgulanmadıysa eleman dönülmez. Detay için GİB Durum Kodları başlığını inceleyiniz. |
| INVOICE_STATUS.RESPONSE_CODE | String | Ticari fatura için verilen yanıtı içeren zarfın durum kodu. Eğer faturanın senaryosu TICARIFATURA değilse eleman dönülmez. |
| INVOICE_STATUS.RESPONSE_DESC | String | Ticari fatura için verilen yanıtı içeren zarfın durum açıklaması. Eğer faturanın senaryosu TICARIFATURA değilse eleman dönülmez. |
| INVOICE_STATUS.GTB_REFNO | String | Gümrük Sistemine alınan ihracat faturaları için, Gümrük ve Ticaret Bakanlığı tarafından üretilen 23 haneli bir referans numarasıdır. 23 haneli bir referans numarası ile belge tarihi yükümlü tarafından gümrük beyannamesinin 44 no’lu kutusunda “Belge Referans No” ve “Belge Tarihi” alanlarında beyan edilecektir. İhracat faturası değilse dönülmez. |
| INVOICE_STATUS.GTB_GCB_TESCILNO | String | Gümrük İdaresi fiili ihracatı tamamlanan eşyanın kabul uygulama yanıtı ile ilgilisine dönülen Gümrük Çıkış Belgesi (GÇB) tescil numarasıdır. İhracat faturası değilse dönülmez. |
| INVOICE_STATUS.GTB_FIILI_IHRACAT_TARIHI | String | Gümrük İdaresi tarafından fiili ihracatı tamamlanan ihracat faturaları için döndüğü fiili ihraç tarihi bilgisidir. Gümrük İdaresi bu bilgiyi fiili ihracat (intaç) gerçekleştiğinde dönecektir. Eğer ihracat faturası için bu alan dönülmemişse hala fiili ihracat yapılmamıştır. İhracat faturası değilse dönülmez. |
| INVOICE_STATUS.CDATE | String | Faturanın e-fatura sistemine yüklendiği/ulaştığı tarih |
| INVOICE_STATUS.DIRECTION | String | Gelen fatura için IN, Gönderilen fatura için OUT |
| INVOICE_STATUS.ENVELOPE_IDENTIFIER | String | Faturanın zarf IDsi. Taslak faturalar için eleman dönülmez. |
Giden Fatura Durumları
| DURUM KODU | DURUM AÇIKLAMASI |
STATUS_SUBSTATUS | ALINACAK AKSİYON |
|---|---|---|---|
| 100 | DURUM HENÜZ GÜNCELLENMEDİ | LOAD_SUCCEED | Durum sorgulanması yapmaya devam edilecek |
| 101 | KUYRUĞA EKLENDİ | LOAD_SUCCEED | Fatura Yükleme - Başarılı |
| 102 | TASLAK İŞLENİYOR | LOAD_PROCESSING | Belge İşleniyor |
| 103 | PAKETLENİYOR | PACKAGE_PROCESSING | Belge GİB'e Göndermek İçin Zarflanıyor |
| 104 | PAKETLENDİ | PACKAGE_SUCCEED | Belge Zarflandı GİB'e Gönderilecek |
| 105 | PAKETLEME HATASI | PACKAGE_FAILED | Belge Zarflanırken Hata Oluştu. Tekrar Denenecektir. |
| 106 | İMZALANIYOR | SIGN_PROCESSING | Belge İmzalanıyor |
| 107 | İMZALANDI" | SIGN_SUCCEED | Belge İmzalandı |
| 109 | GİB'DEN YANIT BEKLİYOR | SEND_WAIT_GIB_RESPONSE | Belge GİB'e Gönderildi |
| 110 | ALICIDAN YANIT BEKLİYOR | SEND_WAIT_SYSTEM_RESPONSE | Belge Alıcıya Başarıyla Ulaştırıldı. Sistem Yanıtı Bekliyor. |
| 111 | ALICIDAN ONAY BEKLİYOR | SEND_WAIT_APPLICATION_RESPONSE | Ticari Belge Alıcıdan Onay Bekliyor |
| 112 | KABUL EDİLDİ | ACCEPTED_SUCCEED | Belge Kabul Edildi |
| 120 | RET EDİLDİ | REJECTED_SUCCEED | Belge Ret Edildi |
| 134 | ZAMAN AŞIMI OLUŞTU | SEND_TIMEOUT | Belge GİB'e Gönderilirken Zaman Aşımına Uğradı. |
| 135 | GÖNDERİLİYOR | SEND_PROCESSING | Belge GİB'e Gönderiliyor |
| 136 | GÖNDERME İŞLEMİ BAŞARISIZ | SEND_FAILED | Belge GİB'e Gönderilirken Hata Oluştu |
| 137 | GÖNDERİLDİ | SEND_SUCCEED | Belge GİB'e Gönderildi |
| 139 | OTOMATİK GÖNDERİM HATASI | AUTO_FAILED | Otomatik Gönderim Hatası |
| 140 | FATURA NUMARASI ATANDI | LOAD_ID_ASSIGNED | Belge Numarası Atandı |
| 141 | FATURA NUMARASI ATANMA BEKLENİYOR | LOAD_WAIT_ID_ASSIGNED | Belge Numarası Atandı |
Gelen Fatura Durumları
| DURUM KODU | DURUM AÇIKLAMASI |
STATUS_SUBSTATUS | ALINACAK AKSİYON |
|---|---|---|---|
| 133 | ALINDI | RECEIVE_SUCCEED | Temel fatura alındı |
| 132 | ALINDI | RECEIVE_WAIT_APPLICATION_RESPONSE | Ticari Fatura yanıt bekliyor |
| 134 | ZAMAN AŞIMI OLUŞTU | ACCEPT/REJECT_TIMEOUT | İŞLEM SİSTEM TARAFINDAN OTOMATİK TEKRARLANCAKTIR |
| 122 | KABUL EDİLDİ | ACCEPTED_SUCCEED | |
| 123 | KABUL İŞLENİYOR | ACCEPTED_PROCESSING | |
| 124 | KABUL GİBDEN YANIT BEKLİYOR | ACCEPT_GIB_RESPONSE | |
| 125 | KABUL ALICIDAN YANIT BEKLİYOR | ACCEPT_WAIT_SYSTEM_RESPONSE | |
| 126 | KABUL İŞLEMİ BAŞARISIZ | ACCEPT_FAILED | |
| 127 | RED ALICIDAN YANIT BEKLİYOR | REJECT_WAIT_SYSTEM_RESPONSE | |
| 128 | RED GİBDE YANIT BEKLİYOR | REJECT_WAIT_GIB_RESPONSE | |
| 129 | RED İŞLENİYOR | REJECT_PROCESSING | |
| 130 | REDDEDİLDİ | REJECT_SUCCEED | |
| 131 | RED İŞLEMİ BAŞARISIZ | FAILED |
GİB Durum Kodları
| Kod | Açıklama | Alınacak Aksiyon |
|---|---|---|
| 1000 | ZARF KUYRUĞA EKLENDİ | Durum kodunun güncellenmesi beklenmelidir. |
| 1100 | ZARF İŞLENİYOR | Durum kodunun güncellenmesi beklenmelidir. |
| 1110 | ZIP DOSYASI DEĞİL | Belge yeniden gönderilmeli |
| 1111 | ZARF ID UZUNLUĞU GEÇERSİZ | Belge yeniden gönderilmeli |
| 1120 | ZARF ARŞİVDEN KOPYALANAMADI | Belge yeniden gönderilmeli |
| 1130 | ZIP AÇILAMADI | Belge yeniden gönderilmeli |
| 1131 | ZIP BİR DOSYA İÇERMELİ | Belge yeniden gönderilmeli |
| 1132 | XML DOSYASI DEĞİL | Belge yeniden gönderilmeli |
| 1133 | ZARF ID VE XML DOSYASININ ADI AYNI OLMALI | Belge yeniden gönderilmeli |
| 1140 | DOKUMAN AYRIŞTIRILAMADI | Belge yeniden gönderilmeli |
| 1141 | ZARF ID YOK | Belge yeniden gönderilmeli |
| 1142 | ZARF ID VE ZIP DOSYASI ADI AYNI OLMALI | Belge yeniden gönderilmeli |
| 1143 | GEÇERSİZ VERSİYON | Belge yeniden gönderilmeli |
| 1150 | SCHEMATRON KONTROL SONUCU HATALI | Belge yeniden gönderilmeli |
| 1160 | XML SEMA KONTROLÜNDEN GEÇEMEDİ | Belge yeniden gönderilmeli |
| 1161 | İMZA SAHİBİ TCKN VKN ALINAMADI | Belge yeniden gönderilmeli |
| 1162 | İMZA KAYDEDİLEMEDİ | Belge yeniden gönderilmeli |
| 1163 | GÖNDERİLEN ZARF SİSTEMDE DAHA ÖNCE KAYITLI OLAN BİR FATURAYI İÇERMEKTEDİR | Belge yeniden gönderilmeli |
| 1170 | YETKİ KONTROL EDİLEMEDİ | Belge yeniden gönderilmeli |
| 1171 | GÖNDERİCİ BİRİM YETKİSİ YOK | Belge yeniden gönderilmeli |
| 1172 | POSTA KUTUSU YETKİSİ YOK | Belge yeniden gönderilmeli |
| 1175 | İMZA YETKİSİ KONTROL EDİLEMEDİ | Belge yeniden gönderilmeli |
| 1176 | İMZA SAHİBİ YETKİSİZ | Belge yeniden gönderilmeli |
| 1177 | GEÇERSİZ İMZA | Belge yeniden gönderilmeli |
| 1180 | ADRES KONTROL EDİLEMEDİ | Belge yeniden gönderilmeli |
| 1181 | ADRES BULUNAMADI | Belge yeniden gönderilmeli |
| 1182 | KULLANICI EKLENEMEDİ | Belge yeniden gönderilmeli |
| 1183 | KULLANICI SİLİNEMEDİ | Belge yeniden gönderilmeli |
| 1190 | SİSTEM YANITI HAZIRLANAMADI | Belge yeniden gönderilmeli |
| 1195 | SİSTEM HATASI | Belge yeniden gönderilmeli |
| 1200 | ZARF BAŞARIYLA İŞLENDİ | Özel entegratörden gönderilen Belgede sorun tespit edilmedi. Sonra ki aşamalara geçilecek. |
| 1210 | DOKUMAN BULUNAN ADRESE GÖNDERİLEMEDİ | GİB’in tekrar gönderme denemesi sonlandıktan sonra, 1215 durum kodu alınır ise belgeler yeniden gönderilmeli |
| 1215 | DOKÜMAN GÖNDERİMİ BAŞARISIZ. TEKRAR GÖNDERME SONLANDI | Belge yeniden gönderilmeli |
| 1220 | HEDEFTEN SİSTEM YANITI GELMEDİ | Bu durum kodundan sonra 1230 HEDEFTEN SİSTEM YANITI BAŞARISIZ GELDİ durum kodu alınır ise Belge yeniden gönderilmelidir. |
| 1230 | HEDEFTEN SİSTEM YANITI BAŞARISIZ GELDİ | Belge yeniden gönderilmeli |
| 1300 | BAŞARIYLA TAMAMLANDI | Başarılı olan Belge aynı numara ile gönderilemez. |
Toplu Fatura Durum Sorgulama (GetInvoiceStatusAll)
- E-Fatura sisteminde bulunan bir veya birden fazla taslak, gelen ve giden faturaların durumunu sorgulamayı sağlayan servistir.
Servise gönderilmesi gereken parametreler şu şekildedir:
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| REQUEST_HEADER | ComplexType | Evet | Request Header objesi içerisinde SESSION_ID ve APPLICATION_NAME alanı zorunludur. |
| UUID | String | Evet | Durumu sorgulanacak faturanın GUID formatında Evrensel Tekil Tanımlama Numarası. Birden fazla fatura durum sorgulamak için INVOICE elementini çoklayınız. |
Servisten dönen parametreler şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| INVOICE_STATUS | ComplexType | Sorgu kriterine uyan fatura(lar)ın listesi. Fatura numarası ID, fatura evrensel tekil tanımlama numarası UUID attribute içerisinde dönülmektedir. |
| INVOICE_STATUS.STATUS | String | Faturanın e-fatura sisteminde ki durumu. Detay için Fatura Durumları başlığını inceleyiniz. |
| INVOICE_STATUS.STATUS_DESCRIPTION | String | Fatura durum açıklaması. Detay için Fatura Durumları başlığını inceleyiniz. |
| INVOICE_STATUS.GIB_STATUS_CODE | String | Faturanın GİB'de ki durum kodu. Faturanın GİB'de ki durumu e-fatura sistemi tarafından henüz sorgulanmadıysa eleman dönülmez. Detay için GİB Durum Kodları başlığını inceleyiniz. |
| INVOICE_STATUS.GIB_STATUS_DESCRIPTION | String | Faturanın GİB'de ki durumunun kodunun açıklaması. Faturanın GİB'de ki durumu e-fatura sistemi tarafından henüz sorgulanmadıysa eleman dönülmez. Detay için GİB Durum Kodları başlığını inceleyiniz. |
| INVOICE_STATUS.RESPONSE_CODE | String | Ticari fatura için verilen yanıtı içeren zarfın durum kodu. Eğer faturanın senaryosu TICARIFATURA değilse eleman dönülmez. |
| INVOICE_STATUS.RESPONSE_DESC | String | Ticari fatura için verilen yanıtı içeren zarfın durum açıklaması. Eğer faturanın senaryosu TICARIFATURA değilse eleman dönülmez. |
| INVOICE_STATUS.GTB_REFNO | String | Gümrük Sistemine alınan ihracat faturaları için, Gümrük ve Ticaret Bakanlığı tarafından üretilen 23 haneli bir referans numarasıdır. 23 haneli bir referans numarası ile belge tarihi yükümlü tarafından gümrük beyannamesinin 44 no’lu kutusunda “Belge Referans No” ve “Belge Tarihi” alanlarında beyan edilecektir. İhracat faturası değilse dönülmez. |
| INVOICE_STATUS.GTB_GCB_TESCILNO | String | Gümrük İdaresi fiili ihracatı tamamlanan eşyanın kabul uygulama yanıtı ile ilgilisine dönülen Gümrük Çıkış Belgesi (GÇB) tescil numarasıdır. İhracat faturası değilse dönülmez. |
| INVOICE_STATUS.GTB_FIILI_IHRACAT_TARIHI | String | Gümrük İdaresi tarafından fiili ihracatı tamamlanan ihracat faturaları için döndüğü fiili ihraç tarihi bilgisidir. Gümrük İdaresi bu bilgiyi fiili ihracat (intaç) gerçekleştiğinde dönecektir. Eğer ihracat faturası için bu alan dönülmemişse hala fiili ihracat yapılmamıştır. İhracat faturası değilse dönülmez. |
| INVOICE_STATUS.CDATE | String | Faturanın e-fatura sistemine yüklendiği/ulaştığı tarih |
| INVOICE_STATUS.DIRECTION | String | Gelen fatura için IN, Gönderilen fatura için OUT |
| INVOICE_STATUS.ENVELOPE_IDENTIFIER | String | Faturanın zarf IDsi. Taslak faturalar için eleman dönülmez. |
Giden Fatura Durumları
| DURUM KODU | DURUM AÇIKLAMASI |
STATUS_SUBSTATUS | ALINACAK AKSİYON |
|---|---|---|---|
| 100 | DURUM HENÜZ GÜNCELLENMEDİ | LOAD_SUCCEED | Durum sorgulanması yapmaya devam edilecek |
| 101 | KUYRUĞA EKLENDİ | LOAD_SUCCEED | Fatura Yükleme - Başarılı |
| 102 | TASLAK İŞLENİYOR | LOAD_PROCESSING | Belge İşleniyor |
| 103 | PAKETLENİYOR | PACKAGE_PROCESSING | Belge GİB'e Göndermek İçin Zarflanıyor |
| 104 | PAKETLENDİ | PACKAGE_SUCCEED | Belge Zarflandı GİB'e Gönderilecek |
| 105 | PAKETLEME HATASI | PACKAGE_FAILED | Belge Zarflanırken Hata Oluştu. Tekrar Denenecektir. |
| 106 | İMZALANIYOR | SIGN_PROCESSING | Belge İmzalanıyor |
| 107 | İMZALANDI" | SIGN_SUCCEED | Belge İmzalandı |
| 109 | GİB'DEN YANIT BEKLİYOR | SEND_WAIT_GIB_RESPONSE | Belge GİB'e Gönderildi |
| 110 | ALICIDAN YANIT BEKLİYOR | SEND_WAIT_SYSTEM_RESPONSE | Belge Alıcıya Başarıyla Ulaştırıldı. Sistem Yanıtı Bekliyor. |
| 111 | ALICIDAN ONAY BEKLİYOR | SEND_WAIT_APPLICATION_RESPONSE | Ticari Belge Alıcıdan Onay Bekliyor |
| 112 | KABUL EDİLDİ | ACCEPTED_SUCCEED | Belge Kabul Edildi |
| 120 | RET EDİLDİ | REJECTED_SUCCEED | Belge Ret Edildi |
| 134 | ZAMAN AŞIMI OLUŞTU | SEND_TIMEOUT | Belge GİB'e Gönderilirken Zaman Aşımına Uğradı. |
| 135 | GÖNDERİLİYOR | SEND_PROCESSING | Belge GİB'e Gönderiliyor |
| 136 | GÖNDERME İŞLEMİ BAŞARISIZ | SEND_FAILED | Belge GİB'e Gönderilirken Hata Oluştu |
| 137 | GÖNDERİLDİ | SEND_SUCCEED | Belge GİB'e Gönderildi |
| 139 | OTOMATİK GÖNDERİM HATASI | AUTO_FAILED | Otomatik Gönderim Hatası |
| 140 | FATURA NUMARASI ATANDI | LOAD_ID_ASSIGNED | Belge Numarası Atandı |
| 141 | FATURA NUMARASI ATANMA BEKLENİYOR | LOAD_WAIT_ID_ASSIGNED | Belge Numarası Atandı |
Gelen Fatura Durumları
| DURUM KODU | DURUM AÇIKLAMASI |
STATUS_SUBSTATUS | ALINACAK AKSİYON |
|---|---|---|---|
| 133 | ALINDI | RECEIVE_SUCCEED | |
| 134 | ZAMAN AŞIMI OLUŞTU | ACCEPT/REJECT_TIMEOUT - YANLIŞ | |
| 122 | KABUL EDİLDİ | ACCEPTED_SUCCEED | |
| 123 | KABUL İŞLENİYOR | ACCEPTED_PROCESSING | |
| 124 | KABUL GİBDEN YANIT BEKLİYOR | ACCEPT_GIB_RESPONSE | |
| 125 | KABUL ALICIDAN YANIT BEKLİYOR | ACCEPT_WAIT_SYSTEM_RESPONSE | |
| 126 | KABUL İŞLEMİ BAŞARISIZ | ACCEPT_FAILED | |
| 127 | RED ALICIDAN YANIT BEKLİYOR | REJECT_WAIT_SYSTEM_RESPONSE | |
| 128 | RED GİBDE YANIT BEKLİYOR | REJECT_WAIT_GIB_RESPONSE | |
| 129 | RED İŞLENİYOR | REJECT_PROCESSING | |
| 130 | REDDEDİLDİ | REJECT_SUCCEED | |
| 131 | RED İŞLEMİ BAŞARISIZ | FAILED |
GİB Durum Kodları
| Kod | Açıklama | Alınacak Aksiyon |
|---|---|---|
| 1000 | ZARF KUYRUĞA EKLENDİ | Durum kodunun güncellenmesi beklenmelidir. |
| 1100 | ZARF İŞLENİYOR | Durum kodunun güncellenmesi beklenmelidir. |
| 1110 | ZIP DOSYASI DEĞİL | Belge yeniden gönderilmeli |
| 1111 | ZARF ID UZUNLUĞU GEÇERSİZ | Belge yeniden gönderilmeli |
| 1120 | ZARF ARŞİVDEN KOPYALANAMADI | Belge yeniden gönderilmeli |
| 1130 | ZIP AÇILAMADI | Belge yeniden gönderilmeli |
| 1131 | ZIP BİR DOSYA İÇERMELİ | Belge yeniden gönderilmeli |
| 1132 | XML DOSYASI DEĞİL | Belge yeniden gönderilmeli |
| 1133 | ZARF ID VE XML DOSYASININ ADI AYNI OLMALI | Belge yeniden gönderilmeli |
| 1140 | DOKUMAN AYRIŞTIRILAMADI | Belge yeniden gönderilmeli |
| 1141 | ZARF ID YOK | Belge yeniden gönderilmeli |
| 1142 | ZARF ID VE ZIP DOSYASI ADI AYNI OLMALI | Belge yeniden gönderilmeli |
| 1143 | GEÇERSİZ VERSİYON | Belge yeniden gönderilmeli |
| 1150 | SCHEMATRON KONTROL SONUCU HATALI | Belge yeniden gönderilmeli |
| 1160 | XML SEMA KONTROLÜNDEN GEÇEMEDİ | Belge yeniden gönderilmeli |
| 1161 | İMZA SAHİBİ TCKN VKN ALINAMADI | Belge yeniden gönderilmeli |
| 1162 | İMZA KAYDEDİLEMEDİ | Belge yeniden gönderilmeli |
| 1163 | GÖNDERİLEN ZARF SİSTEMDE DAHA ÖNCE KAYITLI OLAN BİR FATURAYI İÇERMEKTEDİR | Belge yeniden gönderilmeli |
| 1170 | YETKİ KONTROL EDİLEMEDİ | Belge yeniden gönderilmeli |
| 1171 | GÖNDERİCİ BİRİM YETKİSİ YOK | Belge yeniden gönderilmeli |
| 1172 | POSTA KUTUSU YETKİSİ YOK | Belge yeniden gönderilmeli |
| 1175 | İMZA YETKİSİ KONTROL EDİLEMEDİ | Belge yeniden gönderilmeli |
| 1176 | İMZA SAHİBİ YETKİSİZ | Belge yeniden gönderilmeli |
| 1177 | GEÇERSİZ İMZA | Belge yeniden gönderilmeli |
| 1180 | ADRES KONTROL EDİLEMEDİ | Belge yeniden gönderilmeli |
| 1181 | ADRES BULUNAMADI | Belge yeniden gönderilmeli |
| 1182 | KULLANICI EKLENEMEDİ | Belge yeniden gönderilmeli |
| 1183 | KULLANICI SİLİNEMEDİ | Belge yeniden gönderilmeli |
| 1190 | SİSTEM YANITI HAZIRLANAMADI | Belge yeniden gönderilmeli |
| 1195 | SİSTEM HATASI | Belge yeniden gönderilmeli |
| 1200 | ZARF BAŞARIYLA İŞLENDİ | Özel entegratörden gönderilen Belgede sorun tespit edilmedi. Sonra ki aşamalara geçilecek. |
| 1210 | DOKUMAN BULUNAN ADRESE GÖNDERİLEMEDİ | GİB’in tekrar gönderme denemesi sonlandıktan sonra, 1215 durum kodu alınır ise belgeler yeniden gönderilmeli |
| 1215 | DOKÜMAN GÖNDERİMİ BAŞARISIZ. TEKRAR GÖNDERME SONLANDI | Belge yeniden gönderilmeli |
| 1220 | HEDEFTEN SİSTEM YANITI GELMEDİ | Bu durum kodundan sonra 1230 HEDEFTEN SİSTEM YANITI BAŞARISIZ GELDİ durum kodu alınır ise Belge yeniden gönderilmelidir. |
| 1230 | HEDEFTEN SİSTEM YANITI BAŞARISIZ GELDİ | Belge yeniden gönderilmeli |
| 1300 | BAŞARIYLA TAMAMLANDI | Başarılı olan Belge aynı numara ile gönderilemez. |
Uygulama Yanıtı Gönderme (SendInvoiceResponseWithServerSign)
- E-Fatura sisteminde bulunan bir veya birden fazla gelen ticari faturaya uygulama yanıtı göndermeyi sağlayan servistir.
- Belgelerinin imzalanmasını Özel Entegratör'e devretmiş müşteriler için uygulama yanıtların e-fatura platformunda imzalanarak gönderilmesini sağlamak için hazırlanmıştır.
- Bir faturaya en fazla 1 defa yanıt gönderilebilmektedir.
- Yanıt gönderilmiş faturalara tekrar yanıt gönderilmesi istemci tarafında kısıtlanmalıdır.
Servise gönderilmesi gereken parametreler şu şekildedir:
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| REQUEST_HEADER | ComplexType | Evet | Request Header objesi içerisinde SESSION_ID ve APPLICATION_NAME alanı zorunludur. |
| STATUS | String | Evet | Faturaya verilecek yanıt. KABUL veya RED değeri alabilir. |
| INVOICE | ComplexType | Evet | Yanıt gönderilecek fatura listesi |
| DESCRIPTION | String | Evet | Yanıt ile beraber gönderilecek mesaj. Ret edilen faturalar için Red Sebebi bu alana yazılabilir. STATUS KABUL ise ve bu alan gönderilmezse Fatura kabul edildi, STATUS RED ise Reddedildi mesajı varsayılan olarak eklenecektir. |
Servisten dönen parametreler şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| TXN_ID | String | Sunucuda işlemin gerçekleştirildiği transaction IDsi. Bu ID istemci tarafında kaydedilerek oluşabilecek hatalarda referans olarak destek ekibine iletilebilir. |
| RETURN_CODE | String | İşlem başarılı ise 0 değeri döner. Başarısız olduğunda WS Fault objesi dönecektir. |
Servisten Dönebilecek Hatalar
| Hata Açıklaması | Açıklama |
|---|---|
| Daha önce yanıtlanmış bir fatura için tekrar yanıt gönderilemez! Fatura UUID:xxxxxxx | Bir faturaya en fazla 1 defa yanıt gönderilebilmektedir. Bundan dolayı yanıt gönderilmiş faturalara tekrar yanıt gönderilmesi istemci tarafında kısıtlanmalıdır. |
| Fatura ID : FYA201800000001 sistemde bulunamadı! | E-Fatura sisteminde gelen fatura kutusunda bulunmayan bir faturaya uygulama yanıtı gönderme yapıldığı zaman dönülmektedir. Özellikle birden fazla hesabı olan firmalarda, erişim yetkisi olan bir kullanıcı tarafından istemciye indirilen bir faturaya, faturaya erişim yetkisi olmayan bir kullanıcı tarafından yanıt gönderilince karşılaşılmaktadır. |
| Uygulama yanıtı 8 gün geciktiği için cevap gönderilemez | Ticari fatura özel entegratör sistemine ulaştıktan sonra 8 gün içerisinde yanıtlanmalıdır. İstemci 8 günü geçen faturalar için kontrol eklemelidir. 8 günü hesaplamak için GetInvoice servisinde fatura için dönülen CDATE alanına 8 gün eklenebilir. |
| Fatura durumu yanıtlama için uygun olmadıgından işlem sonlandı! Fatura UUID:XXX-XXX-, STATUS:XXXXX-XXXXX | Uygulama yanıtı gönderilmiş ve hala süreci tamamlanmamış bir faturaya tekrar yanıt gönderildiğinde dönülen hatadır. |
E-Arşiv Fatura Webservisi
E-Fatura mükellefi olmayan firma veya nihai tüketiciye düzenlenen faturaların özel entegratör sistemine gönderilmesi ve raporlamasını sağlayan webservis uygulamasıdır.
GİB Dokümanları
Webservice Endpoint (WSDL) URL
| Ürün | Endpoint URL |
|---|---|
| Kimlik Doğrulama | https://authenticationws.turkbelge.com.tr/AuthenticationWS?wsdl |
| E-Fatura Webservis | https://efaturawstest.turkbelge.com.tr/EFaturaOIB?wsdl |
| E-Arşiv Fatura Webservis | https://earsivwstest.turkbelge.com.tr/EIArchiveWS/EFaturaArchive?wsdl |
Portal Uygulaması
Entegrasyon sürecinde Portal uygulamamızı aşağıda ki durumlar için kullanabilirsiniz:
- Belgelerin durumunu kontrol
- Farklı senaryolar için belge düzenleyerek XML içeriğini kontrol
- Alıcı firmanın mükellefiyet sorgulaması
Test Portal Adresimiz: https://demo.turkbelge.com.tr
Test portali erişim bilgileri için destek@turkbelge.com.tr adresi ile iletişime geçebilirsiniz.
Dikkat Edilecek Hususlar
Uygulamanızı tasarlarken aşağıda ki bilgiler faydalı olacaktır:
- Kimlik Doğrulama (Authentication) Webservisinde bulunan Login servisi ile giriş yaparak session id alınacak. Session Id sistemimiz tarafında 8 saate kadar zaman aşımına uğramadığı için kullanıcı giriş yapınca session id alıp bütün kullanım süresinde aynı session id kullanabilirsiniz.
- WriteToArchieveExtended servisi ile UBL formatlı e-arşiv faturası gönderilir.
- ReadFromArchive servisi ile fatura istenilen formatta (XML, PDF, HTML) okunabilir.
- CancelEArchiveInvoice servisi ile hata tespiti veya müşterinin malı iade etmesi sebebi ile iptal edilen faturaları GIBe bildirilmek üzere gönderilir.
- GetEArchiveInvoiceStatus servisi ile özel entegratör sistemine yüklemiş e-Arşiv faturasanın durumu, e-posta durumu ve raporlanma durumunu sorgulayabilirsiniz.
- GetEArchiveReport servisi ile GİBe raporlanan e-arşiv raporlarını dönemlik olarak çekebilirsiniz.
- ReadEArchiveReport serivisi ile GİBe gönderilen rapor detayını sorgulayabilirsiniz.
- GetEmailEarchiveInvoice servisi ile özel entegratör sistemine daha önce yüklenen e-arşiv faturasının tekrardan e-posta olarak gönderilmesini tetikleyebilirsiniz.
- E-Fatura ve E-Arşiv faturaları farklı seri ile düzenlenmelidir.
- İnternet üzerinden yapılan satışlar için düzenlenen E-Arşiv faturaları ile diğer satışlardan (E-Fatura veya E-Arşiv) farklı serilerden düzenlenmesi zorunludur.
- UBL-TR olarak hazırlanan E-Arşiv faturaların ProfileId alanı
EARSIVFATURAolarak yazılmalıdır. Bu alan eğer sizin tarafınızda farklı bir değer belirtilmiş ise sistem bu alan otomatik olarak “EARSIVFATURA” yazacaktır. - E-Arşiv faturalarda faturanın düzenlenme zamanı(IssueTime) zorunludur.
- E-Arşiv faturalarda AdditionalDocumentReference alanında DocumentTypeCode ve DocumentType alanları zorunlu alandır.
- İnternet üzerinden yapılan satış için düzenlenen faturalar için Ödeme Şekli (PaymentMeans) ve Kargo bilgileri (Delivery) zorunludur.
E-Arşiv Entegrasyon Testleri
| Test | Test Açıklama |
|---|---|
| Oturum Açma | |
| Nihai Tüketiciye Fatura Gönderme | |
| Firmaya Fatura Gönderme | |
| Satış Faturası Gönderme | |
| İade Faturası Gönderme | |
| Tevkifatlı Fatura Gönderme | |
| Alıcısına Kağıt Ortamda Teslim Edilecek Fatura Gönderme | |
| Alıcısına Kağıt Ortamda Teslim Edilecek ve Ayrıca Elektronik Ortamda İletilecek Fatura Gönderme | |
| Alıcısına Elektronik Ortamda İletilecek Fatura Gönderme | |
| İnternet Üzerinden Yapılan Satış İçin Fatura Gönderme | |
| İrsaliyeli Fatura Gönderme | |
| Raporlanmadan Önce Fatura İptal Etme | |
| Raporlandıktan Sonra Fatura İptal Etme | |
| Hatalı Düzenlenmiş Faturayı Tekrar Yüklemek Üzere İptal Etme | |
| Faturayı Tekrar E-Posta Olarak İletme Talebi Gönderme | |
| İmzalı Fatura Çekme | |
| Fatura Görselini Çekme | |
| Bir Faturanın Durumunu Sorgulama | |
| Birden Fazla Faturanın Durumunu Sorgulama | |
| Rapor Listesi Çekme | |
| Rapor İçeriği Çekme |
İstemci (client) Örnek Projeler
Webservice entegrasyonu için sunucu taraflı programlama diline uygun farklı istemci(client) örnekleri sunar. Bu istemcilerden programlama yapmak istediğiniz dile uygun olanı seçip test bilgileri ile kullanmaya başlayabilirsiniz.
İstemci örneklerini talep etmek için destek@turkbelge.com.tr adresine .Net, PHP, Java veya Soapui örneklerinden hangisini talep ettiğinizi bildiriniz.
Ortak Kullanılan Eleman
Her webservis isteğinde gönderilmesi beklen ortak elemandır (REQUEST_HEADER)
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| SESSION_ID | String | Evet | Login Metodunda sistem tarafında gönderilen SESSION_ID bilgisi. Sonraki tüm metod çağrılarında parametre olarak metoda geçmelidir. |
| APPLICATION_NAME | String | Evet | Metodu çağıran uygulamanın adı. Mutlaka uygulama adının yazılması gerekmektedir. |
| CHANNEL_NAME | String | Evet | Metodun çağrıldığı kanal adı. |
| COMPRESSED | String | Hayır | İçerikte taşınan bilginin ZIP formatında sıkıştırılmış mı gönderildiği/talep edildiği bilgisi. Belge gönderim ve belge okuma servislerinde gönderilen değere göre işlem yapılmaktadır. |
| CLIENT_TXN_ID | String | Hayır | İstemci uygulama tarafından işlem için üretilen işlem bilgisi (transaction id) varsa istek esnasında gönderilip, sonuçta alabileceğiniz bir değerdir. request/response eşleşmesi yapmak için kullanılabilir. |
| INT_PARENT_TXN_ID | String | Hayır | İstemci uygulamasında ana modül entitileri ile ilişkilendirelmek istenen ana transaction ID. |
| ACTION_DATE | String | Hayır | Metodun çağrılma tarihi |
| CHANGE_INFO | Array | Hayır | Bu eleman ile eğer verilerde bir değişiklik yapılacak ise o değişikliği ait bilgi. |
| REASON | String | Hayır | İşlem sebebi. Fatura gönderme, fatura alma vs. |
| HOST_NAME | String | Hayır | Metodu çağıran sunucunun host bilgisi. |
| SIMULATION_FLAG | String | Hayır | Metod çağrılır ancak arkadaki işlem yapılmaz. |
Başarı Sonuç Nesnesi
Webservis işlem başarılı olduğunda response objesi içerisinde REQUEST_RETURN tipinde sonuç dönülecektir.
Servisten dönen hata sonuç nesnesi şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| REQUEST_RETURN | ComplexType | İşlem sonucunu içeren başarılı sonuç objesi |
| INT_TXN_ID | String | Sunucuda işlemin gerçekleştirildiği transaction IDsi. Bu ID istemci tarafında kaydedilerek oluşabilecek hatalarda referans olarak destek ekibine iletilebilir. |
| RETURN_CODE | String | Başarılı durumlarda 0 değeri döner. Başarısız olduğunda bu eleman dönülmez. |
| INVOICE_ID | String | Fatura numarası e-arşiv platformunda atanmışsa atanan fatura numarası dönülür. |
Hata Sonuç Nesnesi
Webservis metodunda hata oluşması durumunda response objesi içerisinde ERROR_TYPE tipinde sonuç dönülecektir.
Servisten dönen hata sonuç nesnesi şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| ERROR_TYPE | ComplexType | İşlem sonucunu içeren başarısız/hatalı sonuç objesi |
| INTL_TXN_ID | String | Sunucuda işlemin gerçekleştirildiği transaction IDsi. Bu ID istemci tarafında kaydedilerek oluşabilecek hatalarda referans olarak destek ekibine iletilebilir. |
| ERROR_CODE | String | Hata kodu. Hata kod detayları için ilgili servisteki hata kod listesini inceleyebilirsiniz. |
| ERROR_SHORT_DESC | String | Hatanın kısa açıklaması. |
E-Arşiv Fatura Gönderme (WriteToArchieveExtended)
- E-Fatura mükellefi olmayan firmalara veya nihai tüketicilere düzenlenen faturaların özel entegratör sistemine gönderilmesini sağlayan servistir.
- Bir istek içerisinde birden fazla fatura göndermek için ArchiveInvoiceExtendedContent elemanı çoklanmalıdır.
- Internet üzerinde yapılan satış için düzenlenen faturalarında e-arşiv tipi
INTERNETolmak zorundadır. Diğer faturalar içinNORMALolacaktır. - Eğer E-Arşiv sisteminde müşterinin e-posta gönderme hizmeti yoksa ve e-posta gönderme seçeneği seçilmişse işlem hata alacaktır. Bu durumda özel entegratör ile iletişime geçerek e-posta gönderim hizmetini aktiflemesi talep edilmelidir. Eğer e-posta gönderimi farklı kanallardan yapılacaksa e-posta gönderim parametresini
Nolarak gönderiniz.
Servise gönderilmesi gereken parametreler şu şekildedir:
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| REQUEST_HEADER | ComplexType | Evet | Request Header objesi içerisinde SESSION_ID ve APPLICATION_NAME alanı zorunludur. Faturaları XML formatında sıkıştırılmadan çekmek için mutlaka COMPRESSED elemanı eklenmeli ve N değeri gönderilmelidir. Eğer gönderilmezse faturalar sıkıştırılmış/ziplenmiş olarak dönülecektir. |
| INVOICE_PROPERTIES.EARSIV_FLAG | String | Evet | E-Arşiv fatura için Y olmalıdır. |
| INVOICE_PROPERTIES.EARSIV_PROPERTIES | ComplexType | Evet | E-Arşiv faturaları için kullanılabilecek parametreler |
| EARSIV_PROPERTIES.EARSIV_TYPE | String | Evet | Gönderilen e-arşiv faturasının tipi: NORMAL veya INTERNET değerleri olabilir. Internet üzerinde yapılan satış için düzenlenen faturalarında e-arşiv tipi INTERNET olmak zorundadır. Diğerleri fatura tipleri için NORMAL olacaktır. |
| EARSIV_PROPERTIES.SUB_STATUS | String | Evet | Varsayılan değer NEW. E-Arşiv faturasını göndermek için NEW değeri gönderilmelidir. Taslaklara yüklemek için ise DRAFT değeri gönderilebilir. |
| EARSIV_PROPERTIES.SERI | String | Hayır | Fatura numara atamasının E-Arşiv platformu üzerinde yapılması istenildiği durumlarda hangi seri ile numara atanacağını belirleyen alandır. Maksimum 3 hane alfanumerik değer içermelidir. Gönderilecek seri önce portal ekranları kullanılarak e-arşiv sisteminde tanımlanmalıdır. Tanımlanmayan seri gönderildiğinde hata dönülecektir. |
| EARSIV_PROPERTIES.EARSIV_EMAIL_FLAG | String | Hayır | E-Arşiv faturasının alıcı tarafa e-posta olarak gönderilmek isteniyorsa Y değeri gönderilmelidir. Varsayılan değer N dir. DİKKAT: Eğer E-Arşiv sisteminde müşterinin e-posta gönderme hizmeti yoksa Y değeri gönderilince hata alacaktır. Bu durumda özel entegratör ile iletişime geçerek e-posta gönderim hizmetini aktiflemesi talep edilmelidir. |
| EARSIV_PROPERTIES.EARSIV_EMAIL | String | Hayır | E-Arşiv faturasının iletileceği e-posta adresi. E-Posta formatında olmalıdır. EARSIV_EMAIL_FLAG= Y olarak gönderilmişse bu alan zorunludur. DİKKAT: Eğer EARSIV_EMAIL_FLAG gönderilmemiş veya N olarak gönderilmişse bu alanda ki değer veritabanına kaydedilecek ama e-posta gönderilmeyecektir. |
| EARSIV_PROPERTIES.EARSIV_SMS_FLAG | String | Hayır | E-Arşiv faturasının alıcıya özel entegratör sistemi üzerinden SMS olarak göndermek isteniyorsa Y değeri gönderilmelidir. Varsayılan değer N dir. DİKKAT: Eğer E-Arşiv sisteminde müşterinin SMS gönderme hizmeti yoksa Y değeri gönderilince hata alacaktır. Bu durumda özel entegratör ile iletişime geçerek SMS gönderim hizmetini aktiflemesi talep edilmelidir. |
| EARSIV_PROPERTIES.SMS_PHONE_NUMBER | String | Hayır | E-Arşiv faturasının iletileceği 10 hane telefon numarası. Format: 1234567890. Telefon numarasının başında 0 olmadığına dikkat ediniz. EARSIV_SMS_FLAG= Y olarak gönderilmişse bu alan zorunludur. DİKKAT: Eğer EARSIV_SMS_FLAG gönderilmemiş veya N olarak gönderilmişse bu alanda ki değer veritabanına kaydedilecek ama SMS gönderilmeyecektir. |
| EARSIV_PROPERTIES.EARCHIVE_TEST_FLAG | String | Hayır | Kullanmayınız Kullanım sonlandırılmıştır. |
| EARSIV_PROPERTIES.ARCH_INVOICE_ID | String | Hayır | Kullanmayınız Kullanım sonlandırılmıştır. |
| EARSIV_PROPERTIES.EARCHIVE_TEST_FLAG | String | Hayır | Kullanmayınız Kullanım sonlandırılmıştır. |
| INVOICE_PROPERTIES.PDF_PROPERTIES | ComplexType | Hayır | Kullanmayınız Kullanım sonlandırılmıştır. |
| INVOICE_PROPERTIES.ARCHIVE_NOTE | String | Hayır | E-Arşiv faturalara not eklenebilecek parametredir. |
| INVOICE_PROPERTIES.INVOICE_CONTENT | Base64Binary | Evet | Faturanın UBL-TR formatında ki dosyasının Base64Binary tipinde sıkıştırılmış/ziplenmiş içeriği. |
Başarı Sonuç Nesnesi
Webservis işlem başarılı olduğunda response objesi içerisinde REQUEST_RETURN tipinde sonuç dönülecektir.
Servisten dönen hata sonuç nesnesi şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| REQUEST_RETURN | ComplexType | İşlem sonucunu içeren başarılı sonuç objesi |
| INT_TXN_ID | String | Sunucuda işlemin gerçekleştirildiği transaction IDsi. Bu ID istemci tarafında kaydedilerek oluşabilecek hatalarda referans olarak destek ekibine iletilebilir. |
| RETURN_CODE | String | Başarılı işlemlerde 0 değeri döner. Başarısız olduğunda bu eleman dönülmez. |
| INVOICE_ID | String | Fatura numarası e-arşiv platformunda atanmışsa atanan fatura numarası dönülür. |
Hata Sonuç Nesnesi
Webservis metodunda hata oluşması durumunda response objesi içerisinde ERROR_TYPE tipinde sonuç dönülecektir.
Servisten dönen hata sonuç nesnesi şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| ERROR_TYPE | ComplexType | İşlem sonucunu içeren başarısız/hatalı sonuç objesi |
| INTL_TXN_ID | String | Sunucuda işlemin gerçekleştirildiği transaction IDsi. Bu ID istemci tarafında kaydedilerek oluşabilecek hatalarda referans olarak destek ekibine iletilebilir. |
| ERROR_CODE | String | Hata kodu. Hata kod detayları için ilgili servisteki hata kod listesini inceleyebilirsiniz. |
| ERROR_SHORT_DESC | String | Hatanın kısa açıklaması. |
Hata Kod Listesi
| Hata Kodu | Açıklama |
|---|---|
| -1 | Beklenmedik bir hata oluştu. Lütfen daha sonra tekrar deneyiniz.: {HATA SEBEBİ} |
| 10001 | Sistemde Beklenmedik Bir Hata Oluştu: {HATA SEBEBİ} |
| 10002 | Oturum oluşturulamadı |
| 10003 | Belge kontrolden geçemedi. Hata sebebi: {HATA SEBEBİ} |
| 10004 | Geçersiz oturum. Lütfen oturum açıp tekrar deneyiniz |
| 10005 | Hesabınızın {ÜRÜN ADI} ürün aktif degildir. Lütfen firma yetkiliniz ile görüşünüz. |
| 10006 | Yetkiniz bulunmamaktadır |
| 10007 | İstek ZİP bir dosya içermelidir |
| 10008 | Belirtilen kriterlere uygun kayıt bulunamamıştır {KRITER} |
| 10009 | Gönderilen belge daha önce gönderilmiş bir belge ile eşleşmektedir. Belge Tipi: Belge No: ve ETTN: |
| 10010 | Bir istek boyutu maksimum 5MB veya 100 adet belge içerebilir |
| 10011 | Tekrarlanan işlem: kayıt sistemde mevcuttur |
| 10012 | Kullanıcı aktif degil {kullanıcı adı} |
| 10013 | Gönderilen istek geçersizdir. Hata sebebi {HATA SEBEBİ} |
| 10014 | Geçersiz İmza Hata Sebebi: {HATA SEBEBİ} |
| 10015 | Servis desteklenmemektedir. Servis adı |
| 10016 | Müşteri sistemde aktif degildir. |
| 10017 | Gönderilen belge daha önce gönderilmiş bir belge ile eşleşmektedir. ID: ve UUID: |
| 10018 | Yetkisiz erişim tespit edildi! {HATA SEBEBİ} |
E-Arşiv Fatura Okuma (ReadFromArchive)
Özel entegratör sistemine gönderilen e-arşiv faturalarının farklı formatlarda (XML,HTML,PDF) okumasını sağlayan servistir.
Servise gönderilmesi gereken parametreler şu şekildedir:
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| REQUEST_HEADER | ComplexType | Evet | Request Header objesi içerisinde SESSION_ID ve APPLICATION_NAME alanı zorunludur. Faturaları XML formatında sıkıştırılmadan çekmek için mutlaka COMPRESSED elemanı eklenmeli ve N değeri gönderilmelidir. Eğer gönderilmezse faturalar sıkıştırılmış/ziplenmiş olarak dönülecektir. |
| INVOICE_ID | String | Evet | Evrensel Tekil Tanımlama Numarası (ETTN) ile fatura okumak için kullanılabilir. GUID formatında |
| PORTAL_DIRECTION | String | Evet | OUT değeri gönderilecek. |
| EXTERNAL_ID | String | Hayır | Kullanmayınız |
| PROFILE | String | Evet | faturayı almak istediğini formattır. PDF, HTML, XML değeri alabilir. XML değeri gönderilmezse faturanın imzalı UBL-TR XML dosyası dönülecektir. |
Servisten dönen parametreler şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| INVOICE | Base64Binary | Faturanın talep edilen formatta ki içeriği. Eğer COMPRESSED elemanı N olarak gönderilmişse sıkıştırılmamış, COMPRESSED elemanı gönderilmemiş veya Y değeri gönderilmişse sıkıştırılmış/ziplenmiş olarak dönülür. Sonuç alındıktan sonra ilgili formatta işlem yapılabilir. |
| REQUEST_RETURN.INTL_TXN_ID | String | Sunucuda işlemin gerçekleştirildiği transaction IDsi. Bu ID istemci tarafında kaydedilerek oluşabilecek hatalarda referans olarak destek ekibine iletilebilir. |
| REQUEST_RETURN.RETURN_CODE | String | Başarılı durumlarda 0 değeri döner. Başarısız olduğunda request return objesi dönülmez. |
Servisten Dönebilecek Hatalar
| Hata Açıklaması | Açıklama |
|---|---|
| Fatura okunurken hata oluştu..Okumaya çalıştığınız UUID: xxxxxxx ile fatura bulunmadı… | webservis isteğinde zorunlu olan bir veya birden fazla parametre eksik gönderilmiştir. |
E-Arşiv Durum Sorgulama (GetEArchiveStatus)
Özel entegratör platformuna gönderilen bir veya birden çok faturanın durumunu sorgulamayı sağlayan servistir.
Servise gönderilmesi gereken parametreler şu şekildedir:
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| REQUEST_HEADER | ComplexType | Evet | Request Header objesi içerisinde SESSION_ID ve APPLICATION_NAME alanı zorunludur. |
| UUID | String | Evet | Durumu sorgulanacak faturanın Evrensel Tekil Tanımlama Numarası (ETTN). GUID formatında. Birden fazla faturanın durumunu sorgulamak için bu parametre çoklanır. |
Servisten dönen parametreler şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| INVOICE.HEADER | ComplexType | Kritere uyan faturaların durumlarınını içeren objedir. |
| HEADER.INVOICE_ID | String | Fatura numarası |
| HEADER.UUID | String | Faturanın Evrensel Tekil Tanımlama Numarası (ETTN) |
| HEADER.PROFILE | String | Faturanın senaryosu (EARSIVFATURA) |
| HEADER.INVOICE_DATE | String | Fatura tarihi |
| HEADER.STATUS | String | Fatura durumu kodu. Lütfen E-Arşiv Durum başlığını inceleyiniz. |
| HEADER.STATUS_DESC | String | Faturanın durum açıklaması Lütfen E-Arşiv Durum başlığını inceleyiniz. |
| HEADER.EMAIL_STATUS | String | E-Posta gönderim durum kodu. Lütfen E-Arşiv E-Posta Durum başlığını inceleyiniz. |
| HEADER.EMAIL_STATUS_DESC | String | E-Posta gönderim durum açıklaması. Lütfen E-Arşiv E-Posta Durum başlığını inceleyiniz. |
| HEADER.REPORT_ID | String | Faturanın GİB'e gönderilen rapor numarası. Raporlanmamış faturalarda parametre dönülmez. |
| HEADER.WEB_KEY | String | Fatura alıcısının e-arşiv platformu üzerinden ulaşabileceği URL. |
| REQUEST_RETURN.INTL_TXN_ID | String | Sunucuda işlemin gerçekleştirildiği transaction IDsi. Bu ID istemci tarafında kaydedilerek oluşabilecek hatalarda referans olarak destek ekibine iletilebilir. |
| REQUEST_RETURN.RETURN_CODE | String | Başarılı durumlarda 0 değeri döner. Başarısız olduğunda request return objesi dönülmez. |
E-Arşiv Durumları
| Durum Kodu | Durum Açıklaması |
|---|---|
| 100 | KUYRUĞA EKLENDİ |
| 105 | TASLAK OLARAK EKLENDİ |
| 110 | İŞLENİYOR |
| 120 | RAPORLANACAK |
| 130 | RAPORLANDI |
| 150 | RAPORLANMADAN İPTAL EDİLDİ. RAPORLANMAYACAK. |
| 200 | FATURA ID BULUNAMADI |
E-Arşiv E-Posta Gönderim Durumları
| Durum Kodu | Durum Açıklaması |
|---|---|
| 100 | HENÜZ İŞLENMEDİ |
| 110 | İŞLENİYOR |
| 120 | İŞLENDİ |
| 130 | E-MAIL GÖNDERİM SONLANDI |
E-Arşiv Fatura İptal (CancelEArchiveInvoice)
- Özel entegratör platformuna gönderildikten veya GİB'e raporlandıktan sonra eksik veya hata tespit edilen veya müşteri tarafından iade edilen belgenin GIB'e iptal fatura durumunda raporlanmasını sağlayan servistir.
- GİB'e raporlamadan tespit edilmiş bir hata sebebi ile hiç raporlanmamasını istenildiği durumlarda belge numarası farklı bir faturaya atanarak gönderilebilir.
- İptal edilen değil ama silinen fatura müteselsilliği bozmamak için tekrar yüklenmelidir.
Servise gönderilmesi gereken parametreler şu şekildedir:
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| REQUEST_HEADER | ComplexType | Evet | Request Header objesi içerisinde SESSION_ID ve APPLICATION_NAME alanı zorunludur. |
| INVOICE_ID | String | Hayır | İptal edilecek faturanın numarası. FYA201800000001 formatında |
| INVOICE_UUID | String | Evet | İptal edilecek faturanın Evrensel Tekil Tanımlama Numarası (ETTN). GUID formatında |
| UPLOAD_FLAG | String | Hayır | E-Arşiv platformunda bulunmayan bir faturayı iptal etmek için Y degeri gönderilmesi ve İptal Tarihi, Toplam Tutar ve Fatura Tarihi parametrelerinin doldurulması gerekir. |
| EARSIV_CANCEL_EMAIL | String | Hayır | İptal edilecek e-arşiv faturasının alıcısına e-posta olarak bildirimi için kullanılacak parametre. Birden fazla e-posta adresini virgül , ile ayırarak gönderebilirsiniz. E-Posta formatında olmalıdır. (adsoyad@domain.com) |
| DELETE_FLAG | String | Hayır | Sisteme yüklenmiş ama raporlanmamış bir e-Arşiv faturasını hiç raporlamamak için kullanılan parametredir. Y değeri gönderilirse fatura GİB'e hiç bir türlü raporlanmayacaktır. Silinen fatura müteselsilliği bozmamak için tekrar yüklenmelidir. |
| IPTAL_TARIHI | String | Hayır | E-Arşiv platformunda bulunmayan bir faturanın iptal isteğinde gönderilecek. Faturanın iptal tarihi. |
| TOPLAM_TUTAR | String | Hayır | iptal edilen faturanın ödenecek tutarı. E-Arşiv platformunda bulunmayan bir faturayı iptal ederken gönderilmelidir. |
| INVOICE_CONTENT | String | Hayır | Kullanmayınız |
Servisten dönen parametreler şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| INTL_TXN_ID | String | Sunucuda işlemin gerçekleştirildiği transaction IDsi. Bu ID istemci tarafında kaydedilerek oluşabilecek hatalarda referans olarak destek ekibine iletilebilir. |
| RETURN_CODE | String | Başarılı durumlarda 0 değeri döner. |
E-Arşiv Faturasını E-Posta Olarak Tekrar Gönderme (GetEmailEarchiveInvoice)
- E-Arşiv faturasını yükledikten sonra e-posta olarak aynı veya farklı e-postalara tekrar gönderilmesini sağlayan servistir.
- Birden fazla e-postaya göndermek için virgül (,) ile ayırarak gönderilmelidir.
Servise gönderilmesi gereken parametreler şu şekildedir:
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| REQUEST_HEADER | ComplexType | Evet | Request Header objesi içerisinde SESSION_ID ve APPLICATION_NAME alanı zorunludur. |
| FATURA_UUID | String | Evet | E-Posta olarak iletilecek faturanın Evrensel Tekil Tanımlama Numarası (ETTN). GUID formatında. |
| FATURA_ID | String | Hayır | Kullanılmamaktadır |
| String | Evet | E-Arşiv faturasının iletileceği e-posta adresi. E-Posta formatında olmalıdır. Birden fazla e-postaya göndermek için virgül (,) ile ayırarak gönderilmelidir. |
Servisten dönen parametreler şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| REQUEST_RETURN.INTL_TXN_ID | String | Sunucuda işlemin gerçekleştirildiği transaction IDsi. Bu ID istemci tarafında kaydedilerek oluşabilecek hatalarda referans olarak destek ekibine iletilebilir. |
| REQUEST_RETURN.RETURN_CODE | String | Başarılı durumlarda 0 değeri döner. Başarısız olduğunda request return objesi dönülmez. |
E-Arşiv Durumları
| Durum Kodu | Durum Açıklaması |
|---|---|
| 100 | KUYRUĞA EKLENDİ |
| 105 | TASLAK OLARAK EKLENDİ |
| 110 | İŞLENİYOR |
| 115 | İŞLENİYOR |
| 120 | İŞLENDİ |
| 130 | RAPORLANDI |
| 200 | FATURA ID BULUNAMADI |
E-Arşiv E-Posta Gönderim Durumları
| Durum Kodu | Durum Açıklaması |
|---|---|
| 100 | HENÜZ İŞLENMEDİ |
| 110 | İŞLENİYOR |
| 120 | İŞLENDİ |
| 130 | E-MAIL GÖNDERİM SONLANDI |
E-Arşiv Rapor Listesini Çekme (GetEArchiveReport)
Özel entegratör platformunda mükellefe ait oluşturulan bir döneme ait rapor listesini çekmek için kullanılır. Bu servis sadece rapor listesini döndecektir. Servisin döndüğü raporlara ait içerikleri almak için ReadEArchiveReport servisi kullanılabilir.
Servise gönderilmesi gereken parametreler şu şekildedir:
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| REQUEST_HEADER | ComplexType | Evet | Request Header objesi içerisinde SESSION_ID ve APPLICATION_NAME alanı zorunludur. |
| REPORT_PERIOD | String | Evet | Rapor listesinin alınmak istenilen dönem bilgisi. Örnek: Mayıs 2018 dönemi için 201805 |
| REPORT_STATUS_FLAG | String | Hayır | Rapor durumunun sonuca eklenmesi isteniyorsa Y, değilse N değeri gönderilmelidir. |
Servisten dönen parametreler şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| REPORT | ComplexType | Dönem için oluşturulan raporların listesi. Birden fazla rapor varsa REPORT objesi çoklu olur. |
| REPORT.REPORT_NO | String | Raporun numarası GUID formatında |
| REPORT.STATUS | String | Raporun durumu. İşlenmiş rapor durumu SUCCEED olur. |
| REQUEST_RETURN.INTL_TXN_ID | String | Sunucuda işlemin gerçekleştirildiği transaction IDsi. Bu ID istemci tarafında kaydedilerek oluşabilecek hatalarda referans olarak destek ekibine iletilebilir. |
| REQUEST_RETURN.RETURN_CODE | String | Başarılı durumlarda 0 değeri döner. Başarısız olduğunda request return objesi dönülmez. |
E-Arşiv Rapor Çekme (ReadEArchiveReport)
Mükellef için GİB'e gönderilen raporun imzalı XML dosyasını okumayı sağlayan servistir.
Servise gönderilmesi gereken parametreler şu şekildedir:
| Parametre | Tip | Zorunluluk | Açıklama |
|---|---|---|---|
| REQUEST_HEADER | ComplexType | Evet | Request Header objesi içerisinde SESSION_ID ve APPLICATION_NAME alanı zorunludur. |
| RAPOR_ID | String | Evet | Detay/içeriği çekilecek raporun IDsi. Rapor IDsine GetEArchiveReport servisini kullanarak erişebilirsiniz. |
Servisten dönen parametreler şu şekildedir:
| Parametre | Tip | Açıklama |
|---|---|---|
| EARCHIVEREPORT | Base64Binary | GİB'e gönderilen raporun imzalı XML dosyasının sıkıştırılmış/ziplenmiş ve Base64 encode edilmiş değeri. |
| REQUEST_RETURN.INTL_TXN_ID | String | Sunucuda işlemin gerçekleştirildiği transaction IDsi. Bu ID istemci tarafında kaydedilerek oluşabilecek hatalarda referans olarak destek ekibine iletilebilir. |
| REQUEST_RETURN.RETURN_CODE | String | Başarılı durumlarda 0 değeri döner. Başarısız olduğunda request return objesi dönülmez. |
