Съобщението от портала
„В елемент TaxType, подсекция TaxInformationStructure, секция Structures, е подадена некоректна стойност за вид на данък - несъответстващ на утвърдената номенклатура TAX-IMP“
Портал за е-услуги на НАП · „Въпроси и отговори за SAF-T“, IV.2.3
По FAQ-а на НАП това съобщение има две лица. При подаване на грешен вид или код на данъка порталът визуализира грешната стойност в самото съобщение — виждате какво е сбъркано. Но същата грешка се получава и когато стойността просто липсва: „когато се подаде празен таг TaxType и TaxCode, когато няма стойност в елемента“.
Причината: празните тагове
Ето как изглежда проблемният фрагмент — точно както е показан в документа на НАП:
<nsSAFT:TaxInformation> <nsSAFT:TaxType/> <nsSAFT:TaxCode/>
Типичният сценарий: софтуерът генерира TaxInformation за всеки ред, но за операции без данък (вътрешни записвания, преоценки, операции извън обхвата на ДДС и т.н.) няма какво да попълни — и оставя таговете празни. XML-ът е синтактично коректен, но порталът го отказва.
Решението: кодовете за неприложимост
Официалното правило (FAQ, IV.2.3): „При подаване на информация за транзакции, които не са свързани с начисляването на данък се посочат кодове за неприложимост „000“ за вид на данъка и „000000“ за код на данъка.“ Коригираният фрагмент:
<nsSAFT:TaxInformation>
<nsSAFT:TaxType>000</nsSAFT:TaxType>
<nsSAFT:TaxCode>000000</nsSAFT:TaxCode>
<nsSAFT:TaxAmount>
<nsSAFT:Amount>0.00</nsSAFT:Amount>
<nsSAFT:CurrencyCode>BGN</nsSAFT:CurrencyCode>
<nsSAFT:CurrencyAmount>0.00</nsSAFT:CurrencyAmount>
</nsSAFT:TaxAmount>
</nsSAFT:TaxInformation>
Същата конструкция НАП използва и в собствените си образци за периоди без движение — нулевите структури също носят TaxType 000 и TaxCode 000000.
За редовете с данък стойността на TaxType трябва да е от утвърдената номенклатура TAX-IMP (видовете данъци), а TaxCode — съответният код на данъка. Ако получавате съобщението с визуализирана ненулева стойност, проблемът не е празен таг, а грешен мапинг на вашите кодове към номенклатурата.
Къде да търсите тага
TaxType се среща на 18 места в схемата — но не всички са равни. Едното семейство е регистрационно: TaxRegistration/TaxType в Header и в MasterFiles описва данъчната регистрация на фирмата и контрагентите. Съобщението от IV.2.3 обаче сочи другото семейство — данъчната информация към ред (структурата TaxInformationStructure): например
/AuditFile/GeneralLedgerEntries/Journal/Transaction/TransactionLine/TaxInformation/TaxType
и съответните TaxInformation блокове в редовете на фактурите в SourceDocuments. Именно там всяко записване и всеки фактурен ред носи по един TaxType/TaxCode — и там правилото „000 при неприложимост“ трябва да важи за всеки ред без данък. Всички 18 пътя са изброени в справочника на елементите.
Защо XSD валидацията мълчи
Изненадващото тук: файл с празен <nsSAFT:TaxType/> минава проверката по схемата. В XSD и TaxType, и TaxCode са от тип SAFcodeType — текст до 9 знака, без минимална дължина и без изброени допустими стойности:
<xs:simpleType name="SAFcodeType">
<xs:restriction base="xs:string">
<xs:maxLength value="9"/>
</xs:restriction>
</xs:simpleType>
Празният низ е валиден низ. Затова тази грешка не се появява в никой XSD валидатор — нито в Notepad++, нито в нашата схемна проверка — а чак на портала, който сверява стойностите срещу номенклатурата TAX-IMP. Това я прави от коварните: „валидният“ файл се връща след подаване.
Как да я избегнете предварително
- Правило в софтуера-източник: всяка операция без данък да излиза с
000/000000, никога с празни тагове. Поправя се на едно място — в експорта. - Бърз тест: потърсете във файла
<nsSAFT:TaxType/>или<nsSAFT:TaxType></nsSAFT:TaxType>. Едно намерено съвпадение значи, че порталът ще откаже файла. - Проверете останалото със SAFTCheck: схемата, балансовите равенства, декларираните суми и кръстосаните референции се проверяват в браузъра, преди подаване. Успешната проверка не е гаранция за приемане — правила като TAX-IMP порталът прилага на своя страна — но хваща голямата част от проблемите, докато файлът е още при вас.
Пълния списък на схемните съобщения и какво значат сме събрали в речника на грешките.
Схема, суми, референции — за секунди, в браузъра. Файлът не напуска компютъра ви.
Източник: „Въпроси и отговори за SAF-T“, ЦУ на НАП, версия 2 — въпрос IV.2.3 (страница на обявата в nra.bg). Дефиницията на SAFcodeType — по XSD схемата BG_SAFT_Schema v1.0.2 (Приложение №1).