Entegrasyon sırasında en sık hataya yol açan konular aşağıda toplanmıştır.
Kimlik doğrulama
- Token'ın süresi dolduğunda istekler sessizce başarısız olmaz,
401döner. Yanıt gövdesinde"code": "10004","detail": "Full authentication is required"görürsünüz. Bu bir gövde hatası değildir; token'ı yenileyin. - SESSION_ID ve accessToken değerlerini kaynak kodunuza, örnek dosyalarınıza veya paylaştığınız isteklere gömmeyin. Bu değerler mükellef bilgilerinizi ve yetki listenizi taşır. Paylaşılması gereken durumlarda ortam değişkeni kullanın; sızdığından şüphelendiğinizde yeni oturum alarak eskisini geçersiz kılın.
Belge içeriği
- Vergi alt bilgisi boş bırakılamaz.
taxTotal.taxSubTotaldizisi boş gönderildiğinde schematron kontrolü belgeyi10003 — TAX_SUB_TOTAL_CAN_NOT_BE_EMPTYhatasıyla reddeder. Aynı şekildelinesdizisi de en az bir kalem içermelidir. - Tutar alanları sayı tipinde gönderilmelidir.
"lineExtensionAmount": "1000"gibi metin olarak gönderilen değerler doğrulamadan geçmeyebilir. - Toplamlar tutarlı olmalıdır.
legalMonetaryTotaliçindekilineExtensionAmount,taxExclusiveAmount,taxInclusiveAmountvepayableAmountdeğerleri satır toplamları ve vergi tutarlarıyla uyuşmalıdır. - Belge numarası biçimi katıdır: 3 karakter seri öneki + 4 haneli yıl + 9 haneli sıra numarası (toplam 16 karakter). Seri önekinin hesabınızda tanımlı olması gerekir. Numarayı sistemin atamasını istiyorsanız seri özelliklerini kullanın.
- Her belgenin
UUIDdeğeri tekil olmalıdır. Aynı UUID ile ikinci kez gönderim yapılamaz.
İade belgeleri
- İade belgesinde
cac:BillingReferencezorunludur, satış belgesinde ise hiç bulunmaz. Belgesiz iadedeschemeID="BELGESIZ"verilir vecbc:IDboş bırakılır;cbc:IssueDateyine gönderilir. - Referans verilen e-Arşiv faturası gerçekten var olmalı ve daha önce iade edilmemiş olmalıdır. Aksi halde GİB tarafında hata alırsınız.
- İade eden kişi alıcıdan farklıysa alıcı
AccountingCustomerPartyiçinde kalır, iade eden kişiBuyerCustomerPartyolarak eklenir. İki bloğu birbirine karıştırmak belgenin yanlış kişi adına düzenlenmesine yol açar. - Doğrulama yöntemi ile sağlayıcı bilgisi tutarlı olmalıdır. SMS kodu kullanılıyorsa
ChannelCode/@name=SMS_PROVIDERvecac:Contact/cbc:Name=SMS; iade kodu kullanılıyorsa sırasıylaIADE_PROVIDERveIADEKODUolmalıdır.
Vergi ve stopaj
- Satış tipi gider pusulalarında gelir vergisi stopajı uygulanır. Stopaj,
taxSubTotaliçinde ikinci bir kalem olarak gönderilir:taxScheme.name=GV. STOPAJ,taxScheme.typeCode=0003. KDV için tip kodu0015'tir. - Stopaj oranı senaryoya göre değişir. Vergiden muaf esnaftan alım, ikinci el ticareti ve mükellef olmayan kişiden alım için GVK 94 kapsamındaki oranlar farklıdır. Portaldeki örneklerde tek bir varsayılan oran kullanılmıştır; kendi senaryonuza uygun oranı mevzuata göre belirleyin.
SOAP webservis
- Operasyon elemanının adı
...Requestile biter. Gövdede<wsdl:SendDocumentRequest>beklenir.<wsdl:SendDocument>gönderilirse servisCannot find dispatch methodfault'u döner. - Namespace
http://schemas.i2i.com/ei/wsdlşeklinde,http://öneki ile yazılmalıdır. Önek unutulduğunda aynı dispatch hatası alınır. CONTENTalanı base64 kodlanmış UBL XML içerir. İçeriği zip'leyerek gönderiyorsanızREQUEST_HEADER/COMPRESSEDalanınıYyapmayı unutmayın.CancelDocumentmetodundaDELETE_FLAGiki farklı davranış üretir.Nbelgeyi iptal eder ve kaydı iptal statüsüyle bırakır;Ykaydı siler ve yalnızca henüz raporlanmamış belgelerde kullanılabilir.GetDocumentçağrılarında geniş tarih aralığı verirkenHEADER_ONLY=Ykullanın. Aksi halde her belgenin tam içeriği base64 olarak döner ve yanıt çok büyür.
Bu sayfadaki deneme formu
- Dizi içeren gövdelerde "Form" sekmesi yerine "JSON (manuel)" sekmesini kullanın. Form sekmesi şu an dizileri boş, sayıları metin olarak üretiyor; bu haliyle gönderilen istek schematron kontrolünden geçmez.