„Файлът не отговаря на утвърдената XSD схема“ — какво значи и как се поправя
Съобщението казва едно нещо: структурата на XML файла не съвпада с официалния образец на НАП. Не е грешка в счетоводството и не е отказ по същество — счетоводните данни може да са напълно верни. Пада формата: елемент, който липсва; елемент на място, което образецът не допуска; или стойност, записана във вид, който образецът не приема.
Тази страница описва точно кое чупи схемата, какво се промени между двете издания на образеца и колко време имате, след като получите съобщението.
Кога точно се появява
При подаването има две отделни спирания, и това е първото, което трябва да различите — защото едното още не е подаване, а другото вече е и пуска часовник.
| Момент | Какво се проверява | Какво получавате |
|---|---|---|
| При качването | Файлът XML ли е, отговаря ли името на конвенцията за съответния вид файл, подписан ли е с квалифициран електронен подпис | Файлът не се приема. Входящ номер няма. |
| След входящия номер | Валидации към XSD-схемата и по отношение на валидността и консистентността на подадената информация | Файлът се отхвърля, грешките идват през електронната услуга и започва да тече 7-дневен срок. |
Съобщение за XSD схема е от втория ред. Тоест: подаването е регистрирано, има входящ номер — и точно затова има и срок.
Седемте дни
При установени несъответствия при валидирането файлът се отхвърля, на лицето се предоставя информация за установените грешки и се дава 7-дневен срок за отстраняването им чрез подаване на нов файл. Ако не бъдат отстранени в срока, стандартният одитен файл се смята за неподаден.
Този 7-дневен срок не се отнася за файлове, подадени в периодите по чл. 71к, ал. 6 от ДОПК и §17, ал. 2 от преходните разпоредби към Закона за държавния бюджет за 2025 г. Пълната картина на сроковете — включително дванадесетмесечния срок за корекции — е в кой подава SAF-T и от кога.
Практическото следствие: XSD несъответствие не е нещо, което се оставя за „когато има време“. Затова и първата работа не е да гадаете, а да видите всички несъответствия наведнъж.
Коя е „утвърдената“ схема
За файловете, подадени до 31.10.2026 г., действащият образец е
BG_SAFT_Schema_V_1.0.2. За подадените от 01.11.2026 г. — и за
корекциите на минали месеци, подадени от тази дата — е
BG_SAFT_Schema_V_1.0.3 (заповед № З-ЦУ-30-1797 от 13.10.2026 г.).
Най-старото издание е 1.0.1.
Има една подробност, която обърква мнозина: файлът не казва по коя
версия е съставен. Всички издания ползват едно и също пространство
от имена — mf:nra:dgti:dxxxx:declaration:v1 — така че по
съдържанието на файла не се вижда срещу кой образец е правен. Полето
AuditFileVersion в Header също не е версията на
схемата; то е стойност, която съставителят записва.
Затова единственият начин да разберете е да проверите файла срещу действащия образец.
Какво се промени между 1.0.1 и 1.0.2
По-малко, отколкото се предполага. Двата файла се различават предимно технически (в 1.0.1 има остатъчни атрибути от Oracle, които нямат отношение към валидирането). Съществените разлики са четири:
| Елемент | 1.0.1 | 1.0.2 |
|---|---|---|
CorrespondingAccountStructure |
първата буква е кирилско С | латинско C |
TaxpayerAccountID |
до 35 знака | до 70 знака |
Region |
тип „код на държава по ISO“ | общ кодов тип |
SortCode |
структура на дружество | собствена структура за платежен оператор |
Първият ред е причината, заради която версията изобщо си струва да се провери. В 1.0.1 името на елемента започва с кирилска буква С, а в 1.0.2 — с латинска C. На екрана двете са неразличими. Файл, съставен по стария образец или по стар пример, носи кирилското С; за действащата схема това е елемент, който тя не познава — и файлът пада, с подчертано неинформативно съобщение, защото името „изглежда правилно“.
Ако в счетоводната програма или в шаблона, по който се съставя файлът, има нещо преписвано от материали от 2025 г., това е първото място за проверка.
Какво се променя между 1.0.2 и 1.0.3
За месечния файл — почти нищо: 1.0.3 само облекчава, затова месечен файл, верен по 1.0.2, минава и по 1.0.3. Петте промени:
| Елемент | 1.0.2 | 1.0.3 |
|---|---|---|
NumberMonthsDepreciationDuring | текст | цяло неотрицателно число |
NonDepreciableAssetDetails | няма го | нова структура за неамортизируемите активи, вместо Valuations |
CategoryTaxDepreciable | свободен текст | цяло число от 0 до 7 |
StartUpDate, ContactPerson, OtherTitles | задължителни | незадължителни |
InvoiceSettlement | най-много веднъж | може да се повтаря |
Кого засягат и какво да направите — в схема 1.0.3: какво се променя от 1 ноември.
Четирите вида несъответствие
Каквото и да пише в конкретното съобщение, всяко XSD несъответствие е едно от четири неща. Формулировките в скоби са тези на стандартен четец на схеми — НАП формулира своите по свой начин, но видовете са същите, защото ги налага една и съща схема.
1. Липсва задължителен елемент
Най-честият случай, с разлика. Образецът изисква определено поле вътре в друго, а него го няма — например ред от документ без задължителния си идентификатор, или раздел без начално салдо.
(„The content of element 'X' is not complete. Tag 'Y' expected.“)
Съобщението е точно: то казва и в кой елемент е липсата, и кое поле се очаква. Стойността обаче идва от счетоводството — схемата казва къде трябва да е, не каква трябва да бъде.
2. Елемент на място, което схемата не допуска
В SAF-T редът на елементите е част от изискването. Едно и също съдържание, подредено другояче, е невалиден файл. Същото важи за елемент, който изобщо не принадлежи на това място — включително елемент с почти правилно име (вижте кирилското С по-горе).
(„Unexpected child with tag 'X' at position N.“)
3. Стойност извън позволения вид
Полето съществува и е на мястото си, но стойността в него не отговаря на типа си. Петте подслучая:
- Извън затворен списък — стойността трябва да е една от изброените в самата схема (таблицата по-долу).
- Грешен тип — дата извън
ГГГГ-ММ-ДД, десетична запетая вместо точка, текст там, където се очаква число. - Не отговаря на шаблон — IBAN, идентификатор или код, чийто вид е описан в схемата.
- Твърде дълга стойност — текстовите полета имат горна граница в знаци; наименование, което програмата е изнесла в пълния му вид, може да я надхвърли.
- Извън числовата граница — поле, което по схемата не допуска отрицателна стойност, я е получило: броят на записите в един раздел, например, не може да е под нула.
4. Брой повторения извън допустимия
Елемент, който трябва да се среща поне веднъж, липсва изцяло; или се повтаря повече пъти, отколкото схемата допуска.
Затворените списъци в самата схема
Девет полета приемат стойност само от изброен списък — и това е списък в схемата, не в номенклатурите. Стойност извън него е XSD грешка, не забележка по Приложение №3:
| Поле | Позволени стойности |
|---|---|
DefaultCurrencyCode (Header) | EUR |
TaxAccountingBasis (Header) | A, P, BANK, INSURANCE |
AccountType (сметкоплан) | Active, Passive, Bifunctional |
Country (в данъчната таблица) | BG |
DebitCreditIndicator | D, C |
SelfBillingIndicator, RelatedParty | Y, N |
AddressType | StreetAddress, PostalAddress, BillingAddress, ShipToAddress, ShipFromAddress |
IsPartOfGroup | 1–5 |
Първият ред заслужава внимание точно сега.
DefaultCurrencyCode приема една единствена стойност —
EUR. Файл, който още записва BGN, не минава схемата,
независимо колко вярно е всичко останало в него. Ако счетоводната програма е
настроена по старому, това е несъответствие на един ред в Header-а.
Какво НЕ е XSD грешка
Скъпото при отхвърлен файл е времето, което отива в търсене на структурна грешка там, където няма такава. Схемата не проверява:
- кодовете от номенклатурите — мерни единици, тарифни кодове, области, данъчни кодове. Те се четат от публикуваните таблици на НАП, не от схемата;
- съгласуваността между разделите — контрагент по фактура, който липсва в клиентите; сметка от записите, която липсва в сметкоплана;
- сумите — контролните суми по документи, плащания и главна книга.
Показателен пример е HeaderComment — полето, което носи вида на
файла (месечен, годишен, при поискване). В самата схема списъкът с трите
стойности е изключен, а полето не е задължително: каквото и да пише
там, XSD проверката ще го приеме. Приложение №3 обаче го изисква. Тоест такъв
файл минава схемата и пада на втората проверка — и съобщението, което получавате,
няма да е за XSD.
Кое изискване къде се проверява е описано ред по ред в справочника по Приложение №3.
Пътят до приет файл
- Не поправяйте по едно. Едно съобщение показва едно спиране, не всички несъответствия. Поправяте го, подавате отново, излиза следващото — и седемте дни изтичат в цикъла.
- Проверете файла срещу същата схема, безплатно.
Проверката минава файла през
схемата, която важи в деня на проверката (
BG_SAFT_Schema_V_1.0.2, от 01.11.2026 г.BG_SAFT_Schema_V_1.0.3), и през правилата на Приложение №3, и връща всички несъответствия наведнъж — всяко с място в документа и обяснение на български. Поправката на намереното е включена в 14-дневния пробен период — без карта. Качете файла за проверка Още нямате профил? Заявете достъп Как работи проверката е описано в безплатната проверка на готов файл. - Разделете двата вида. Всяка наша проверка е публикувана с кода си в списъка с проверките, а до кода пише и кое е: поправимо в самия файл, или изискващо стойност, която трябва да дойде от счетоводната програма.
- Поправете там, където е. Структурно поправимото се поправя в самия файл. Липсваща стойност се попълва в счетоводството и файлът се съставя наново — вписване на число „колкото да мине“ прави файла валиден и подаването невярно.
- Подайте нов пълен файл. Корекцията винаги е цялата информация по утвърдената структура — не се подава само разликата.
Продължете с
- Какво значи грешката от НАП — поставете съобщението
- НАП отхвърли файла — всички класове съобщения
- Безплатната проверка на готов файл
- Какво проверяваме — всяка проверка с код
- Изискванията по Приложение №3, ред по ред
- Сроковете: подаване, отхвърляне, корекции
Изискванията и сроковете тук са по действащия пакет на НАП към Приложение №3 и по Глава осма „б“ от ДОПК; разликите между двете издания на образеца са прочетени от самите XSD файлове.