Ana içeriğe atla

Netle Yazılım | e-Defter Şematron Raporu | Sürüm 2.0.1.8.3


Netle Yazılım San. Tic. Ve A.Ş.

e-Defter Şematron Raporu

Ver 2.0.1.8.3



Açıklama

Yasal e-defter dosyaları hazırlandıktan ve imzalandıktan sonra mutlaka XML şema ve Şematron denetimleri ile kontrol edilmelidir. Bu kontrol süreci sonrasında ortaya en az bir hata çıkması durumunda GİB tarafından e-defter dosyaları geçersiz sayılabilir. 

Bu kontrollerin çok geniş ve uzun sürebilmesi nedeniyle kontrol süreçlerinde e-defter uyumlu yazılımlar kullanılmaktadır.

Netle Yazılım tarafından geliştirilen "Netle-Defter" uygulaması bu kontrolleri fiş girişinde, döneme ilişkin parçalı ya da bütün defter oluşturmada ve GİB'e gönderim öncesinden yapmaktadır. Olası bir sorunda kullanıcı iş akış sistemi ile bilgilendirilerek hatanın giderilmesi beklenmektedir.

Şematron denetimleri XML içine bütünleşik şekilde yazılmış ve bunların tam bir liste şeklinde dokümanı yoktu. Bu faydalı bilgileri liste haline getirdik ve 2018 / 3 dönemini esas olarak aşağıdaki açıklamaların  yer aldığı tabloları hazırladık.

Yazılımdan bağımsız, şematron içinde nelerin kontrol edildiğini öğrenmek isteyenler aşağıdaki bilgileri inceleyebilir.

Berat Şematronu

The following table lists the namespaces and typical prefixes.

prefix
Namespace IRI
gl-plt
http://www.xbrl.org/int/gl/plt/2010-04-16
gl-cor
http://www.xbrl.org/int/gl/cor/2006-10-25
gl-bus
http://www.xbrl.org/int/gl/bus/2006-10-25
gl-muc
http://www.xbrl.org/int/gl/muc/2006-10-25
xbrli
http://www.xbrl.org/2003/instance
ds
http://www.w3.org/2000/09/xmldsig#
xades
http://uri.etsi.org/01903/v1.3.2#
edefter
http://www.edefter.gov.tr
defterek
http://www.edefter.gov.tr/ek

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. Belge içerisindeki 'decimals' nitelikleri 'INF' değerini almalıdır.
  2. Berat dokümanı edefter:berat ana elemanı ile başlamalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. xbrli:segment/gl-bus:numberOfEntries elemanı sadece yevmiye beratında bulunabilir.
  2. Yevmiye beratında xbrli:segment/gl-bus:numberOfEntries zorunlu bir elemandır.
  3. xbrli:segment/gl-cor:uniqueID zorunlu bir elemandır.
  4. xbrli:segment/gl-cor:uniqueID elemanı UUID formatında olmalıdır.
  5. Dosya adına yazılan vkn/tckn ile xbrli:identifier elemanına yazılan vkn/tckn aynı olmalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. ds:SignatureValue zorunlu bir elemandır.
  2. defterek:binaryObject elemanı sadece yevmiye defterinde bulunabilir.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. ds:SignatureValue elemanı Id niteliğine sahip olmalıdır.
  2. ds:SignedInfo/ds:Reference/ds:Transforms elemanı zorunlu bir elemandır.
  3. ds:KeyInfo elemanı zorunlu bir elemandır.
  4. ds:KeyInfo elemanı içerisindeki ds:X509Data elemanı zorunlu bir elemandır.
  5. ds:Object elemanı zorunlu bir elemandır.
  6. xades:SigningTime elemanı zorunlu bir elemandır.
  7. xades:SigningCertificate elemanı zorunlu bir elemandır
  8. ds:SignedInfo elamanı içerisinde URI niteliği boşluğa("") eşit olan sadece bir tane ds:Reference elemanının bulunmaldır.
  9. İmzalama işleminde kullanılacak özet(hash) algoritması sha1 olmamalıdır.
  10. ds:X509Data elemanı içerisindeki ds:X509Certificate elemanı zorunlu bir elemandır.
  11. ds:X509SubjectName elemanının değeri boşluk olmamalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. xbrli:context zorunlu bir elemandır.
  2. xbrli:unit zorunlu bir elemandır.
  3. gl-cor:accountingEntries zorunlu bir elemandır.
  4. xbrli:measure zorunlu bir elemandır.
  5. xbrli:identifier elemanına 10 haneli vergi kimlik numarası ve ya 11 haneli TC kimlik numarası yazılmalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. Gecersiz currency degeri: '$currency'.
  2. id'si iso4217 multicurrency kodlarından birisi olan en fazla 1 xbrli:unit elemanı olabilir.
  3. xbrli:measure değeri (.) hatalıdır. xbrli:unit id'nin değeri parent::node()/@id olduğu için xbrli:measure değeri concat('iso4217:',parent::node()/@id) olmalıdır.
  4. gl-muc:defaultCurrency değeri (/edefter:berat/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:documentInfo/gl-muc:defaultCurrency) hatalıdır. gl-muc:defaultCurrency elemanı varsa değeri xbrli:measure(.) ile aynı olmalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. gl-cor:documentInfo zorunlu bir elemandır.
  2. gl-cor:entityInformation zorunlu bir elemandır.
  3. Vergi detayını temsil edecek gl-cor:entryHeader elemanı sayısı 1 olmalıdır.
  4. Vergi detaysız beratlarda gl-cor:entryHeader elemanı bulunmamalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. gl-cor:qualifierEntry zorunlu bir elemandır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. gl-cor:entryHeader elemanının ilk gl-cor:entryDetail elemanının gl-cor:lineNumber değeri 1 olmalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. Dönem içi değişiklikleri temsil eden gl-cor:entryHeader elemanının gl-cor:qualifierEntry değeri standard olmalıdır.
  2. Dönem içi değişiklikleri temsil eden gl-cor:entryDetail elemanı sayısı 10 olmalıdır.
  3. gl-cor:account/gl-cor:accountMainID=391, gl-cor:debitCreditCode=D olan 1 gl-cor:entryDetail elemanı olmalıdır.
  4. gl-cor:account/gl-cor:accountMainID=391, gl-cor:debitCreditCode=C olan 1 gl-cor:entryDetail elemanı olmalıdır.
  5. gl-cor:account/gl-cor:accountMainID=191, gl-cor:debitCreditCode=D olan 1 gl-cor:entryDetail elemanı olmalıdır.
  6. gl-cor:account/gl-cor:accountMainID=191, gl-cor:debitCreditCode=C olan 1 gl-cor:entryDetail elemanı olmalıdır.
  7. gl-cor:account/gl-cor:accountMainID=600, gl-cor:debitCreditCode=D olan 1 gl-cor:entryDetail elemanı olmalıdır.
  8. gl-cor:account/gl-cor:accountMainID=600, gl-cor:debitCreditCode=C olan 1 gl-cor:entryDetail elemanı olmalıdır.
  9. gl-cor:account/gl-cor:accountMainID=601, gl-cor:debitCreditCode=D olan 1 gl-cor:entryDetail elemanı olmalıdır.
  10. gl-cor:account/gl-cor:accountMainID=601, gl-cor:debitCreditCode=C olan 1 gl-cor:entryDetail elemanı olmalıdır.
  11. gl-cor:account/gl-cor:accountMainID=602, gl-cor:debitCreditCode=D olan 1 gl-cor:entryDetail elemanı olmalıdır.
  12. gl-cor:account/gl-cor:accountMainID=602, gl-cor:debitCreditCode=C olan 1 gl-cor:entryDetail elemanı olmalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. Dönem içi değişiklikleri temsil eden gl-cor:entryDetail elemanlarının gl-cor:xbrlInfo/gl-cor:xbrlInclude değeri period_change olmalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. gl-cor:lineNumber zorunlu bir elemandır.
  2. gl-cor:lineNumber müteselsil bir değere sahip olmalıdır.
  3. gl-cor:account zorunlu bir elemandır.
  4. gl-cor:account elemanı içerisinde gl-cor:accountMainID zorunlu bir elemandır ve en az 3 karakter olmalıdır.
  5. gl-cor:account elemanı içerisinde gl-cor:accountMainDescription zorunlu bir elemandır.
  6. gl-cor:amount zorunlu bir elemandır.
  7. gl-cor:debitCreditCode zorunlu bir elemandır.
  8. gl-cor:xbrlInfo/gl-cor:xbrlInclude elemanı zorunlu bir elemandır.
  9. Vergi detayında hiçbir tutar 0'dan küçük olamaz.
  10. gl-cor:amount (gl-cor:amount) virgülden sonra 2 haneden fazla olamaz.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. gl-cor:entriesType zorunlu bir elemandır.
  2. gl-cor:entriesType elemanı yevmiye defteri beratı için 'journal' değerini almalıdır.
  3. gl-cor:entriesType elemanı kebir defteri beratı için 'ledger' değerini almalıdır.
  4. gl-cor:uniqueID zorunlu bir elemandır.
  5. gl-cor:uniqueID elemanı yevmiye defteri için 'YEV' değeri ile başlamalıdır.
  6. gl-cor:uniqueID elemanı yevmiye defteri için 'KEB' değeri ile başlamalıdır.
  7. gl-cor:uniqueID elemanı 15 karakterden oluşmalıdır.
  8. gl-cor:creationDate zorunlu bir elemandır.
  9. gl-cor:periodCoveredStart zorunlu bir elemandır.
  10. gl-cor:periodCoveredEnd zorunlu bir elemandır.
  11. gl-cor:periodCoveredEnd elemanı gl-cor:periodCoveredStart elemanından büyük veya eşit olmalıdır.
  12. gl-cor:creationDate elemanı gl-cor:periodCoveredEnd elemanından büyük ve ya eşit olmalıdır.
  13. gl-bus:sourceApplication zorunlu bir elemandır ve değeri boşluk olmamalıdır.
  14. Dosya adındaki dönem ile periodCoveredStart'daki dönem bilgisi aynı olmalıdır.
  15. gl-cor:periodCoveredStart elemanındaki yıl bilgisi ile periodCoveredEnd elemanındaki yıl bilgisi aynı olmalıdır.
  16. gl-cor:periodCoveredStart elemanındaki ay bilgisi ile periodCoveredEnd elemanındaki ay bilgisi aynı olmalıdır.
  17. gl-cor:uniqueID elemanındaki dönem bilgisi ile gl-cor:periodCoveredStart elemanındaki dönem bilgisi aynı olmalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. gl-bus:entityPhoneNumber zorunlu bir elemandır.
  2. gl-bus:entityEmailAddressStructure zorunlu bir elemandır.
  3. gl-bus:organizationIdentifiers zorunlu bir elemandır.
  4. gl-bus:organizationDescription değeri 'Kurum Unvanı' olan bir tane gl-bus:organizationIdentifiers elemanı bulunmalıdır.
  5. gl-bus:organizationDescription değeri 'Adı Soyadı' olan bir tane gl-bus:organizationIdentifiers elemanı bulunmalıdır.
  6. gl-bus:organizationDescription değeri 'Kurum Unvanı' veya 'Adı Soyadı' olan yalnızca bir tane gl-bus:organizationIdentifiers elemanı bulunmalıdır.
  7. gl-bus:organizationDescription değeri 'Kurum Unvanı' olan gl-bus:organizationIdentifiers elemanının gl-bus:organizationIdentifier eleman değeri en az iki karakter olmalıdır.
  8. gl-bus:organizationDescription değeri 'Adı Soyadı' olan gl-bus:organizationIdentifiers elemanının gl-bus:organizationIdentifier eleman değeri en az iki karakter olmalıdır.
  9. Şube no ve şube adı birlikte bulunmalıdır.
  10. Şube no veya şube adı birden fazla olamaz.
  11. Şube no 4 haneli sayısal bir değer olmalıdır.
  12. Şube adı değeri en az iki karakter olmalıdır.
  13. gl-bus:organizationAddress zorunlu bir elemandır.
  14. gl-bus:organizationAddress elemanı içerisindeki gl-bus:organizationBuildingNumber zorunlu bir elemandır.
  15. gl-bus:organizationAddress elemanı içerisindeki gl-bus:organizationAddressStreet zorunlu bir elemandır.
  16. gl-bus:organizationAddress elemanı içerisindeki gl-bus:organizationAddressCity zorunlu bir elemandır.
  17. gl-bus:organizationAddress' elemanı içerisindeki 'gl-bus:organizationAddressZipOrPostalCode zorunlu bir elemandır.
  18. gl-bus:organizationAddress elemanı içerisindeki gl-bus:organizationAddressCountry zorunlu bir elemandır.
  19. gl-bus:entityWebSite zorunlu bir elemandır.
  20. gl-bus:businessDescription zorunlu bir elemandır ve değeri boşluk olmamalıdır.
  21. gl-bus:fiscalYearStart zorunlu bir elemandır.
  22. gl-bus:fiscalYearEnd zorunlu bir elemandır.
  23. gl-bus:fiscalYearEnd elemanı gl-bus:fiscalYearStart elemanından büyük olmalıdır.
  24. gl-bus:accountantInformation zorunlu bir elemandır.
  25. gl-bus:accountantInformation elemanı içerisindeki gl-bus:accountantName zorunlu bir elemandır ve değeri boşluk olmamalıdır.
  26. gl-bus:accountantInformation elemanı içerisindeki gl-bus:accountantEngagementTypeDescription zorunlu bir elemandır ve değeri boşluk olmamalıdır.
  27. gl-bus:phoneNumber zorunlu bir elemandır ve değeri boşluk olmamalıdır.
  28. gl-bus:entityEmailAddressStructure elemanı içerisinde gl-bus:entityEmailAddress zorunlu bir elemandır ve ve değeri boşluk olmamalıdır.
  29. gl-bus:entityWebSite elemanı içerisindeki gl-bus:webSiteURL zorunlu bir elemandır.

Kebir Şematronu

The following table lists the namespaces and typical prefixes.

prefix
Namespace IRI
gl-plt
http://www.xbrl.org/int/gl/plt/2010-04-16
gl-cor
http://www.xbrl.org/int/gl/cor/2006-10-25
gl-bus
http://www.xbrl.org/int/gl/bus/2006-10-25
gl-muc
http://www.xbrl.org/int/gl/muc/2006-10-25
xbrli
http://www.xbrl.org/2003/instance
ds
http://www.w3.org/2000/09/xmldsig#
xades
http://uri.etsi.org/01903/v1.3.2#
edefter
http://www.edefter.gov.tr
fct
localFunctions
defterek
http://www.edefter.gov.tr/ek

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. Belge içerisindeki 'decimals' nitelikleri 'INF' değerini almalıdır.
  2. Büyük defter dokümanı edefter:defter ana elemanı ile başlamalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. xbrli:segment/gl-bus:numberOfEntries sadece yevmiye beratında bulunabilir.
  2. xbrli:segment/gl-cor:uniqueID sadece beratlarda bulunabilir.
  3. Dosya adına yazılan vkn/tckn ile xbrli:identifier elemanına yazılan vkn/tckn aynı olmalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. ds:Signature zorunlu bir elemandır.
  2. defterek:binaryObject elemanı sadece yevmiye defterinde bulunabilir.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. ds:SignedInfo/ds:Reference/ds:Transforms elemanı zorunlu bir elemandır.
  2. ds:KeyInfo elemanı zorunlu bir elemandır.
  3. ds:KeyInfo elemanı içerisindeki ds:X509Data elemanı zorunlu bir elemandır.
  4. ds:Object elemanı zorunlu bir elemandır.
  5. xades:SigningTime elemanı zorunlu bir elemandır.
  6. xades:SigningCertificate elemanı zorunlu bir elemandır
  7. ds:SignedInfo elamanı içerisinde URI niteliği boşluğa("") eşit olan sadece bir tane ds:Reference elemanının bulunmaldır.
  8. İmzalama işleminde kullanılacak özet(hash) algoritması sha1 olmamalıdır.
  9. ds:X509Data elemanı içerisindeki ds:X509Certificate elemanı zorunlu bir elemandır.
  10. ds:X509SubjectName elemanının değeri boşluk olmamalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. xbrli:context zorunlu bir elemandır.
  2. xbrli:unit zorunlu bir elemandır.
  3. gl-cor:accountingEntries zorunlu bir elemandır.
  4. xbrli:measure zorunlu bir elemandır.
  5. xbrli:identifier elemanına 10 haneli vergi kimlik numarası ve ya 11 haneli TC kimlik numarası yazılmalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. Gecersiz currency degeri: '$currency'.
  2. id'si iso4217 multicurrency kodlarından birisi olan en fazla 1 xbrli:unit elemanı olabilir.
  3. xbrli:measure değeri (.) hatalıdır. xbrli:unit id'nin değeri parent::node()/@id olduğu için xbrli:measure değeri concat('iso4217:',parent::node()/@id) olmalıdır.
  4. gl-muc:defaultCurrency değeri (/edefter:defter/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:documentInfo/gl-muc:defaultCurrency) hatalıdır. gl-muc:defaultCurrency elemanı varsa değeri xbrli:measure(.) ile aynı olmalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. gl-cor:documentInfo zorunlu bir elemandır.
  2. gl-cor:entityInformation zorunlu bir elemandır.
  3. Büyük defterde hesaplar, ana hesap numarası bazında sıralı olmalıdır.
  4. Alt hesabı olmayan aynı hesaplar aynı gl-cor:entryHeader elemanı içerisinde bulunmalıdır.
  5. Aynı alt hesaplar aynı gl-cor:entryHeader elemanı içerisinde bulunmalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. gl-cor:entriesType zorunlu bir elemandır.
  2. gl-cor:entriesType elemanı büyük defter için 'ledger' değerini almalıdır.
  3. gl-cor:uniqueID zorunlu bir elemandır.
  4. gl-cor:uniqueID elemanı büyük defter için 'KEB' değeri ile başlamalıdır.
  5. gl-cor:uniqueID elemanı 15 karakterden oluşmalıdır.
  6. gl-cor:creationDate zorunlu bir elemandır.
  7. gl-cor:periodCoveredStart zorunlu bir elemandır.
  8. gl-cor:periodCoveredEnd zorunlu bir elemandır.
  9. gl-cor:periodCoveredEnd elemanı gl-cor:periodCoveredStart elemanından büyük ve ya eşit olmalıdır.
  10. gl-cor:creationDate elemanı gl-cor:periodCoveredEnd elemanından büyük veya eşit olmalıdır.
  11. gl-bus:sourceApplication zorunlu bir elemandır ve değeri boşluk olmamalıdır.
  12. Dosya adındaki dönem ile periodCoveredStart'daki dönem bilgisi aynı olmalıdır.
  13. gl-cor:periodCoveredStart elemanındaki yıl bilgisi ile periodCoveredEnd elemanındaki yıl bilgisi aynı olmalıdır.
  14. gl-cor:periodCoveredStart elemanındaki ay bilgisi ile periodCoveredEnd elemanındaki ay bilgisi aynı olmalıdır.
  15. gl-cor:uniqueID elemanındaki dönem bilgisi ile gl-cor:periodCoveredStart elemanındaki dönem bilgisi aynı olmalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. gl-bus:entityPhoneNumber zorunlu bir elemandır.
  2. gl-bus:entityEmailAddressStructure zorunlu bir elemandır.
  3. gl-bus:organizationIdentifiers zorunlu bir elemandır.
  4. gl-bus:organizationDescription değeri 'Kurum Unvanı' olan bir tane gl-bus:organizationIdentifiers elemanı bulunmalıdır.
  5. gl-bus:organizationDescription değeri 'Adı Soyadı' olan bir tane gl-bus:organizationIdentifiers elemanı bulunmalıdır.
  6. gl-bus:organizationDescription değeri 'Kurum Unvanı' veya 'Adı Soyadı' olan yalnızca bir tane gl-bus:organizationIdentifiers elemanı bulunmalıdır.
  7. gl-bus:organizationDescription değeri 'Kurum Unvanı' olan gl-bus:organizationIdentifiers elemanının gl-bus:organizationIdentifier eleman değeri en az iki karakter olmalıdır.
  8. gl-bus:organizationDescription değeri 'Adı Soyadı' olan gl-bus:organizationIdentifiers elemanının gl-bus:organizationIdentifier eleman değeri en az iki karakter olmalıdır.
  9. Şube no ve şube adı birlikte bulunmalıdır.
  10. Şube no veya şube adı birden fazla olamaz.
  11. Şube no 4 haneli sayısal bir değer olmalıdır.
  12. Şube adı değeri en az iki karakter olmalıdır.
  13. gl-bus:organizationAddress zorunlu bir elemandır.
  14. gl-bus:organizationAddress elemanı içerisindeki gl-bus:organizationBuildingNumber zorunlu bir elemandır.
  15. gl-bus:organizationAddress elemanı içerisindeki gl-bus:organizationAddressStreet zorunlu bir elemandır.
  16. gl-bus:organizationAddress elemanı içerisindeki gl-bus:organizationAddressCity zorunlu bir elemandır.
  17. gl-bus:organizationAddress' elemanı içerisindeki 'gl-bus:organizationAddressZipOrPostalCode zorunlu bir elemandır.
  18. gl-bus:organizationAddress elemanı içerisindeki gl-bus:organizationAddressCountry zorunlu bir elemandır.
  19. gl-bus:entityWebSite zorunlu bir elemandır.
  20. gl-bus:businessDescription zorunlu bir elemandır ve değeri boşluk olmamalıdır.
  21. gl-bus:fiscalYearStart zorunlu bir elemandır.
  22. gl-bus:fiscalYearEnd zorunlu bir elemandır.
  23. gl-bus:fiscalYearEnd elemanı gl-bus:fiscalYearStart elemanından büyük olmalıdır.
  24. gl-bus:accountantInformation zorunlu bir elemandır.
  25. gl-bus:accountantInformation elemanı içerisindeki gl-bus:accountantName zorunlu bir elemandır ve değeri boşluk olmamalıdır.
  26. gl-bus:accountantInformation elemanı içerisindeki gl-bus:accountantEngagementTypeDescription zorunlu bir elemandır ve değeri boşluk olmamalıdır.
  27. gl-bus:phoneNumber zorunlu bir elemandır ve değeri boşluk olmamalıdır.
  28. gl-bus:entityEmailAddressStructure elemanı içerisinde gl-bus:entityEmailAddress zorunlu bir elemandır ve ve değeri boşluk olmamalıdır.
  29. gl-bus:entityWebSite elemanı içerisindeki gl-bus:webSiteURL zorunlu bir elemandır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. gl-bus:totalDebit zorunlu bir elemandır.
  2. gl-bus:totalCredit zorunlu bir elemandır.
  3. gl-cor:entryHeader elemanı en az bir gl-cor:entryDetail elemanı içermelidir.
  4. gl-bus:totalDebit değeri 0 ve ya daha büyük bir değere eşit olmalıdır.
  5. gl-bus:totalCredit değeri 0 ve ya daha büyük bir değere eşit olmalıdır.
  6. gl-bus:totalDebit ve gl-bus:totalCredit değerlerinden en az biri 0 olmalıdır.
  7. gl-bus:totalDebit ile gl-bus:totalCredit değerlerinin farkı, gl-cor:entryDetail elemanı içerisindeki gl-cor:debitCreditCode değeri 'D' ve ya 'debit' olan gl-cor:amount değerlerinin toplamı ile gl-cor:debitCreditCode değeri 'C' ve ya 'credit' olan gl-cor:amount değerlerinin toplamının farkına eşit olmalıdır.
  8. Buyuk defter için gl-cor:entryDetail elemanı içersindeki gl-cor:accountMainID değerleri birbirine eşit olmalıdır.
  9. Buyuk defter için gl-cor:entryDetail elemanı içersindeki gl-cor:accountSubID değerleri birbirine eşit olmalıdır.
  10. gl-bus:totalDebit (gl-bus:totalDebit) virgülden sonra 2 haneden fazla olamaz.
  11. gl-bus:totalCredit (gl-bus:totalCredit) virgülden sonra 2 haneden fazla olamaz.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. gl-cor:lineNumber zorunlu bir elemandır.
  2. gl-cor:lineNumberCounter zorunlu bir elemandır.
  3. gl-cor:entryDetail elemanı içersindeki gl-cor:lineNumberCounter değeri bir önceki gl-cor:entryDetail elemanları içerisindeki gl-cor:lineNumberCounter değerinden büyük ve ya eşit olmalıdır.
  4. gl-cor:account zorunlu bir elemandır.
  5. gl-cor:account elemanı içerisinde gl-cor:accountMainID zorunlu bir elemandır ve en az 3 karakter olmalıdır.
  6. gl-cor:account elemanı içerisinde gl-cor:accountMainDescription zorunlu bir elemandır.
  7. gl-cor:accountSub elemanı içerisinde gl-cor:accountSubID zorunlu bir elemandır.
  8. gl-cor:accountSub elemanı içerisinde gl-cor:accountSubDescription zorunlu bir elemandır.
  9. gl-cor:accountSubID(alt hesap numarası) elemanı gl-cor:accountMainID(ana hesap numarası) değeri ile başlamalıdır.
  10. gl-cor:amount zorunlu bir elemandır.
  11. gl-cor:amount elemanı 0'dan büyük bir değer almalıdır.
  12. gl-muc:amountCurrency olması durumunda gl-muc:defaultCurrency elemanı da bulunmalıdır
  13. gl-muc:amountOriginalAmount elemanı olması durumunda gl-muc:amountOriginalExchangeRateDate elemanı da bulunmalıdır.
  14. gl-muc:amountOriginalAmount elemanı olması durumunda gl-muc:amountOriginalCurrency elemanı da bulunmalıdır.
  15. gl-muc:amountOriginalCurrency elemanı olması durumunda gl-muc:amountOriginalExchangeRate elemanı da bulunmalıdır.
  16. gl-cor:debitCreditCode zorunlu bir elemandır.
  17. gl-cor:postingDate zorunlu bir elemandır.
  18. gl-cor:postingDate elemanın değeri $periodCoveredStart ile $periodCoveredEnd değerleri arasında olmalıdır.
  19. gl-cor:documentType eleman değerinin 'other' olması durumunda gl-cor:documentTypeDescription zorunlu bir elemandır ve değeri boşluk olmamalıdır.
  20. gl-cor:documentType elemanının değeri 'other' olması durumunda gl-cor:documentNumber ve gl-cor:documentDate elemanları da olmalıdır.
  21. gl-cor:documentType elemanının değeri 'invoice' (fatura) olması durumunda gl-cor:documentNumber ve gl-cor:documentDate elemanlarıda olmalıdır.
  22. gl-cor:documentType elemanının değeri 'check' (çek) olması durumunda gl-cor:documentNumber ve gl-cor:documentDate elemanlarıda olmalıdır.
  23. gl-cor:documentNumber elemanı olması durumunda gl-cor:documentType elemanı bulunmalıdır.
  24. gl-cor:documentDate elemanı olması durumunda gl-cor:documentType elemanı bulunmalıdır.
  25. En fazla 1 adet gl-bus:measurable elemanı olabilir.
  26. gl-cor:amount (gl-cor:amount) virgülden sonra 2 haneden fazla olamaz.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. gl-bus:measurableCode elemanı zorunludur.
  2. gl-bus:measurableCodeDescription elemanı zorunludur.
  3. gl-bus:measurableQuantity elemanı zorunludur.
  4. gl-bus:measurableQualifier elemanı zorunludur.
  5. gl-bus:measurableUnitOfMeasure elemanı zorunludur.
  6. gl-bus:measurableCostPerUnit elemanı zorunludur.
  7. gl-bus:measurableCode elemanının değeri "NT" olmalıdır.
  8. gl-bus:measurableCodeDescription elemanının değeri "Maddi Olmayan Kalemler" olmalıdır.
  9. gl-bus:measurableQualifier elemanının değeri "Fon" olmalıdır.
  10. gl-bus:measurableUnitOfMeasure elemanının değeri "Adet" olmalıdır.
  11. gl-bus:measurableCostPerUnit * gl-bus:measurableQuantity = gl-cor:amount olmalıdır.

Yevmiye Şematronu

The following table lists the namespaces and typical prefixes.

prefix
Namespace IRI
gl-plt
http://www.xbrl.org/int/gl/plt/2010-04-16
gl-cor
http://www.xbrl.org/int/gl/cor/2006-10-25
gl-bus
http://www.xbrl.org/int/gl/bus/2006-10-25
gl-muc
http://www.xbrl.org/int/gl/muc/2006-10-25
xbrli
http://www.xbrl.org/2003/instance
ds
http://www.w3.org/2000/09/xmldsig#
xades
http://uri.etsi.org/01903/v1.3.2#
edefter
http://www.edefter.gov.tr
defterek
http://www.edefter.gov.tr/ek

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. Belge içerisindeki 'decimals' nitelikleri 'INF' değerini almalıdır.
  2. Yevmiye defteri dokumanı edefter:defter ana elemanı ile başlamalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. xbrli:segment/gl-bus:numberOfEntries elemanı sadece yevmiye beratında bulunabilir.
  2. xbrli:segment/gl-cor:uniqueID elemanı sadece beratlarda bulunabilir.
  3. Dosya adına yazılan vkn/tckn ile xbrli:identifier elemanına yazılan vkn/tckn aynı olmalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. ds:Signature zorunlu bir elemandır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. ds:SignedInfo/ds:Reference/ds:Transforms elemanı zorunlu bir elemandır.
  2. ds:KeyInfo elemanı zorunlu bir elemandır.
  3. ds:KeyInfo elemanı içerisindeki ds:X509Data elemanı zorunlu bir elemandır.
  4. ds:Object elemanı zorunlu bir elemandır.
  5. xades:SigningTime elemanı zorunlu bir elemandır.
  6. xades:SigningCertificate elemanı zorunlu bir elemandır
  7. ds:SignedInfo elamanı içerisinde URI niteliği boşluğa("") eşit olan sadece bir tane ds:Reference elemanının bulunmaldır.
  8. İmzalama işleminde kullanılacak özet(hash) algoritması sha1 olmamalıdır.
  9. ds:X509Data elemanı içerisindeki ds:X509Certificate elemanı zorunlu bir elemandır.
  10. ds:X509SubjectName elemanının değeri boşluk olmamalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. xbrli:context zorunlu bir elemandır.
  2. xbrli:unit zorunlu bir elemandır.
  3. gl-cor:accountingEntries zorunlu bir elemandır.
  4. xbrli:measure zorunlu bir elemandır.
  5. iso4217 kod listesindeki değerlerden birini içeren en az 1 measure değeri bulunmalıdır.
  6. xbrli:identifier elemanına 10 haneli vergi kimlik numarası ve ya 11 haneli TC kimlik numarası yazılmalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. Gecersiz currency degeri: '$currency'.
  2. id'si iso4217 multicurrency kodlarından birisi olan en fazla 1 xbrli:unit elemanı olabilir.
  3. xbrli:measure değeri (.) hatalıdır. xbrli:unit id'nin değeri parent::node()/@id olduğu için xbrli:measure değeri concat('iso4217:',parent::node()/@id) olmalıdır.
  4. gl-muc:defaultCurrency değeri (/edefter:defter/xbrli:xbrl/gl-cor:accountingEntries/gl-cor:documentInfo/gl-muc:defaultCurrency) hatalıdır. gl-muc:defaultCurrency elemanı varsa değeri xbrli:measure(.) ile aynı olmalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. gl-cor:documentInfo zorunlu bir elemandır.
  2. gl-cor:entityInformation zorunlu bir elemandır.
  3. Tüm ayı kapsayan bir defterde en az 1 gl-cor:entryHeader elemanı olmalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. gl-cor:entriesType zorunlu bir elemandır.
  2. gl-cor:entriesType elemanı yevmiye defteri için 'journal' değerini almalıdır.
  3. gl-cor:uniqueID zorunlu bir elemandır.
  4. gl-cor:uniqueID elemanı yevmiye defteri için 'YEV' değeri ile başlamalıdır.
  5. gl-cor:uniqueID elemanı 15 karakterden oluşmalıdır.
  6. gl-cor:creationDate zorunlu bir elemandır.
  7. gl-cor:periodCoveredStart zorunlu bir elemandır.
  8. gl-cor:periodCoveredEnd zorunlu bir elemandır.
  9. gl-cor:periodCoveredEnd elemanı gl-cor:periodCoveredStart elemanından büyük ve ya eşit olmalıdır.
  10. gl-cor:creationDate elemanı gl-cor:periodCoveredEnd elemanından büyük veya eşit olmalıdır.
  11. gl-bus:sourceApplication zorunlu bir elemandır ve değeri boşluk olmamalıdır.
  12. Dosya adındaki dönem ile periodCoveredStart'daki dönem bilgisi aynı olmalıdır.
  13. gl-cor:periodCoveredStart elemanındaki yıl bilgisi ile periodCoveredEnd elemanındaki yıl bilgisi aynı olmalıdır.
  14. gl-cor:periodCoveredStart elemanındaki ay bilgisi ile periodCoveredEnd elemanındaki ay bilgisi aynı olmalıdır.
  15. gl-cor:uniqueID elemanındaki dönem bilgisi ile gl-cor:periodCoveredStart elemanındaki dönem bilgisi aynı olmalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. gl-bus:entityPhoneNumber zorunlu bir elemandır.
  2. gl-bus:entityEmailAddressStructure zorunlu bir elemandır.
  3. gl-bus:organizationIdentifiers zorunlu bir elemandır.
  4. gl-bus:organizationDescription değeri 'Kurum Unvanı' olan bir tane gl-bus:organizationIdentifiers elemanı bulunmalıdır.
  5. gl-bus:organizationDescription değeri 'Adı Soyadı' olan bir tane gl-bus:organizationIdentifiers elemanı bulunmalıdır.
  6. gl-bus:organizationDescription değeri 'Kurum Unvanı' veya 'Adı Soyadı' olan yalnızca bir tane gl-bus:organizationIdentifiers elemanı bulunmalıdır.
  7. gl-bus:organizationDescription değeri 'Kurum Unvanı' olan gl-bus:organizationIdentifiers elemanının gl-bus:organizationIdentifier eleman değeri en az iki karakter olmalıdır.
  8. gl-bus:organizationDescription değeri 'Adı Soyadı' olan gl-bus:organizationIdentifiers elemanının gl-bus:organizationIdentifier eleman değeri en az iki karakter olmalıdır.
  9. Şube no ve şube adı birlikte bulunmalıdır.
  10. Şube no veya şube adı birden fazla olamaz.
  11. Şube no 4 haneli sayısal bir değer olmalıdır.
  12. Şube adı değeri en az iki karakter olmalıdır.
  13. gl-bus:organizationAddress zorunlu bir elemandır.
  14. gl-bus:organizationAddress elemanı içerisindeki gl-bus:organizationBuildingNumber zorunlu bir elemandır.
  15. gl-bus:organizationAddress elemanı içerisindeki gl-bus:organizationAddressStreet zorunlu bir elemandır.
  16. gl-bus:organizationAddress elemanı içerisindeki gl-bus:organizationAddressCity zorunlu bir elemandır.
  17. gl-bus:organizationAddress' elemanı içerisindeki 'gl-bus:organizationAddressZipOrPostalCode zorunlu bir elemandır.
  18. gl-bus:organizationAddress elemanı içerisindeki gl-bus:organizationAddressCountry zorunlu bir elemandır.
  19. gl-bus:entityWebSite zorunlu bir elemandır.
  20. gl-bus:businessDescription zorunlu bir elemandır ve değeri boşluk olmamalıdır.
  21. gl-bus:fiscalYearStart zorunlu bir elemandır.
  22. gl-bus:fiscalYearEnd zorunlu bir elemandır.
  23. gl-bus:fiscalYearEnd elemanı gl-bus:fiscalYearStart elemanından büyük olmalıdır.
  24. gl-bus:accountantInformation zorunlu bir elemandır.
  25. gl-bus:accountantInformation elemanı içerisindeki gl-bus:accountantName zorunlu bir elemandır ve değeri boşluk olmamalıdır.
  26. gl-bus:accountantInformation elemanı içerisindeki gl-bus:accountantEngagementTypeDescription zorunlu bir elemandır ve değeri boşluk olmamalıdır.
  27. gl-bus:phoneNumber zorunlu bir elemandır ve değeri boşluk olmamalıdır.
  28. gl-bus:entityEmailAddressStructure elemanı içerisinde gl-bus:entityEmailAddress zorunlu bir elemandır ve ve değeri boşluk olmamalıdır.
  29. gl-bus:entityWebSite elemanı içerisindeki gl-bus:webSiteURL zorunlu bir elemandır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. gl-cor:entryNumberCounter müteselsil bir değere sahip olmalıdır.
  2. Yevmiye defteri tarihe göre sıralı olmalıdır.
  3. gl-cor:enteredBy zorunlu bir elemandır.
  4. gl-cor:enteredBy elemanı en az iki karakter olmamalıdır.
  5. gl-cor:enteredDate zorunlu bir elemandır.
  6. gl-cor:enteredDate elemanın değeri $periodCoveredStart ile $periodCoveredEnd değerleri arasında olmalıdır.
  7. gl-bus:totalDebit zorunlu bir elemandır.
  8. gl-bus:totalCredit zorunlu bir elemandır.
  9. gl-cor:entryNumberCounter zorunlu bir elemandır.
  10. gl-cor:entryHeader elemanı en az iki gl-cor:entryDetail elemanı içermelidir.
  11. gl-bus:totalDebit elemanının değeri gl-bus:totalCredit elemanının değerine eşit olmalıdır.
  12. gl-bus:totalDebit değeri, gl-cor:entryDetail elemanı içerisindeki gl-cor:debitCreditCode değeri 'D' ve ya 'debit' olan gl-cor:amount değelerinin toplamına eşit olmalıdır.
  13. gl-bus:totalCredit değeri, gl-cor:entryDetail elemanı içerisindeki gl-cor:debitCreditCode değeri 'C' ve ya 'credit' olan gl-cor:amount değerlerinin toplamına eşit olmalıdır.
  14. gl-bus:totalDebit (gl-bus:totalDebit ) virgülden sonra 2 haneden fazla olamaz.
  15. gl-bus:totalCredit (gl-bus:totalCredit ) virgülden sonra 2 haneden fazla olamaz.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. gl-cor:lineNumber zorunlu bir elemandır.
  2. gl-cor:lineNumber müteselsil bir değere sahip olmalıdır.
  3. gl-cor:lineNumberCounter zorunlu bir elemandır.
  4. gl-cor:lineNumberCounter elemanının değeri bir üst düzeydeki gl-cor:entryNumberCounter elemanının değerine eşit olmalıdır.
  5. gl-cor:account zorunlu bir elemandır.
  6. gl-cor:account elemanı içerisinde gl-cor:accountMainID zorunlu bir elemandır ve en az 3 karakter olmalıdır.
  7. gl-cor:account elemanı içerisinde gl-cor:accountMainDescription zorunlu bir elemandır.
  8. gl-cor:accountSub elemanı içerisinde gl-cor:accountSubID zorunlu bir elemandır.
  9. gl-cor:accountSub elemanı içerisinde gl-cor:accountSubDescription zorunlu bir elemandır.
  10. gl-cor:accountSubID(alt hesap numarası) elemanı gl-cor:accountMainID(ana hesap numarası) değeri ile başlamalıdır.
  11. gl-cor:amount zorunlu bir elemandır.
  12. gl-cor:amount elemanı 0'dan büyük bir değer almalıdır.
  13. gl-muc:amountCurrency olması durumunda gl-muc:defaultCurrency elemanı da bulunmalıdır
  14. gl-muc:amountOriginalAmount elemanı olması durumunda gl-muc:amountOriginalExchangeRateDate elemanı da bulunmalıdır.
  15. gl-muc:amountOriginalAmount elemanı olması durumunda gl-muc:amountOriginalCurrency elemanı da bulunmalıdır.
  16. gl-muc:amountOriginalCurrency elemanı olması durumunda gl-muc:amountOriginalExchangeRate elemanı da bulunmalıdır.
  17. gl-cor:debitCreditCode zorunlu bir elemandır.
  18. gl-cor:postingDate zorunlu bir elemandır.
  19. gl-cor:postingDate elemanının değeri bir üst düzeydeki gl-cor:enteredDate elemanının değerine eşit olmalıdır.
  20. gl-cor:documentType eleman değerinin 'other' olması durumunda gl-cor:documentTypeDescription zorunlu bir elemandır ve bu elemanın değeri boşluk olmamalıdır.
  21. gl-cor:documentType elemanının değeri 'other' olması durumunda gl-cor:documentNumber ve gl-cor:documentDate elemanları da olmalıdır.
  22. gl-cor:documentType elemanının değeri 'invoice' (fatura) olması durumunda gl-cor:documentNumber ve gl-cor:documentDate elemanları da olmalıdır.
  23. gl-cor:documentType elemanının değeri 'check' (çek) olması durumunda gl-cor:documentNumber ve gl-cor:documentDate elemanları da olmalıdır.
  24. gl-cor:documentNumber elemanı olması durumunda gl-cor:documentType elemanı bulunmalıdır.
  25. gl-cor:documentDate elemanı olması durumunda gl-cor:documentType elemanı bulunmalıdır.
  26. gl-cor:documentReference elemanının değeri bir üst düzeydeki gl-cor:entryNumber elemanının değerine eşit olmalıdır.
  27. gl-bus:paymentMethod elemanı var ise değeri boşluk olmamalıdır.
  28. En fazla 1 adet gl-bus:measurable elemanı olabilir.
  29. gl-cor:amount (gl-cor:amount) virgülden sonra 2 haneden fazla olamaz.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. gl-bus:measurableCode elemanı zorunludur.
  2. gl-bus:measurableCodeDescription elemanı zorunludur.
  3. gl-bus:measurableQuantity elemanı zorunludur.
  4. gl-bus:measurableQualifier elemanı zorunludur.
  5. gl-bus:measurableUnitOfMeasure elemanı zorunludur.
  6. gl-bus:measurableCostPerUnit elemanı zorunludur.
  7. gl-bus:measurableCode elemanının değeri "NT" olmalıdır.
  8. gl-bus:measurableCodeDescription elemanının değeri "Maddi Olmayan Kalemler" olmalıdır.
  9. gl-bus:measurableQualifier elemanının değeri "Fon" olmalıdır.
  10. gl-bus:measurableUnitOfMeasure elemanının değeri "Adet" olmalıdır.
  11. gl-bus:measurableCostPerUnit * gl-bus:measurableQuantity = gl-cor:amount olmalıdır.

İlgili belge aşağıdaki kurallara uygun olmalıdır:

  1. defterek:binaryObject elemanının mimeCode niteliği 'application/pdf' olmalıdır.
  2. defterek:binaryObject elemanının filename niteliğinin son 4 karakteri '.pdf' olmalıdır.
  3. defterek:binaryObject elemanının değeri boşluk olamaz.


Bu blogdaki popüler yayınlar

Zeki sistemler

Zeki sistemler: Yapay zeka tekniklerini kullanan sistemlerdir. Sistem: Ortak bir amaca hizmet etmek için bir araya gelmiş bir ya da birden fazla elemanın uyum içinde çalışmasıdır. Melez Zeki Sistemler: Bir ya da birden fazla zeki sistemin bir araya gelmesi ve uyum için çalışmasıdır. Neden melez sisteme ihtiyaç var? Birçok iyi sistem bir araya getirilerek daha iyi sistemler oluşturulabilir. Uzman sistemlerdeki kararlılık, Genetik algoritmaların rastgeleliği ve True/False olarak ifade edilemeyen ancak yine de çözüm beklenen durumlarda bulanık sistemlerin kullanılarak "Melez Sistemlerin" tasarlanması birçok soruna çözüm sağlayabilir. Üst Zeki Sistemler: İnsan zekasına biraz daha yaklaşmayı hedefleyen ve şuan üzerinde düşündüğüm, çok daha fazla kaynak okumamı gerektiren sistemlerdir. Bu sistemlerle insan zekasına biraz daha yaklaşılması hedeflenebilir. Üst ( Meta ) Zeki Sistem (ÜZS) ile aynı anda birden fazla yapay zeka tekniği ya da alt sistemler kullanılabilir. Görüntü tanıma t

WS-Security(WSS ya da WSSE) ve E-Dönüşüm (E-Defter ve E-Arşiv)

Yeni e-dönüşüm modüllerinin GİB entegrasyonlarında kullanılacak web servislerde iletişim protokolünde " WSS " kullanılmak zorunda. Bu konuda birçok 3. yazılım evinin sunduğu çözüm(ler) var ancak eğer mevcut yazılım mimariniz HSM ya da ESYA API üzerine kurulu ise yeni bir sorun ile karşılaşabiliyorsunuz. Bu sorun, mevcut imza yapısının yeni SOAP iletişimindeki WSS özelliğini desteklememesinden kaynaklanıyor. Eğer çözümünüz CAPICOM arayüzü ile kart içindeki private key değerine eskiden erişim yapabiliyorsanız bu durumda da bazı riskler ortaya çıkabiliyor. Yeni nesil mali mühür kartlarında yer alan düzenleme ile private key değeri artık dışarıya alınamıyor. JAVA dışında, . Net ortamında, e-dönüşüm kodları geliştirenler yeni nesil GİB iletişiminde bu tür zorlukları aşmak zorunda kalıyor. Ar-Ge ekibimizin çalışmaları sonrasında, ESYA API üzerine kurulu kendi kütüphanemizi tasarladık. Microsoft .Net ortamından ( c#, vb.net ) kolayca GİB e-defter ya da e-arşiv web servislerin