Когато подавате SAF-T към НАП, не подавате просто „фактурите си" — подавате структуриран XML файл с ~300 задължителни полета, базиран на международния стандарт OECD SAF-T v2.0. Това е значителна разлика спрямо текущите данъчни декларации.
В тази статия ще видите какви точно данни се изискват за всяка фактура, кои полета са най-често пропускани при ръчно подаване, как се валидира XML файлът срещу НАП XSD схемата и какво означава cross-reference консистентност между фактура, главна книга и плащане.
Какво включва SAF-T за фактурите — общ преглед
SAF-T файлът е разделен на две основни секции:
основни данни (общи данни)
Това са „речниците" на вашата счетоводна система — фиксирани данни, които се използват за многократно reference от транзакциите:
- Контрагенти (Customers и Suppliers) — клиенти и доставчици
- Артикули (Products) — стоки и услуги
- Сметкоплан (Chart of Accounts) — пълна структура на счетоводните сметки
- Данъчни таблици (TaxTable) — ставки на ДДС, корпоративен данък и др.
- Аналитични измерения (Analysis Types) — центрове на разходи, проекти, отдели
Source Documents (транзакции)
Това са реалните бизнес документи за периода:
- Продажбени фактури (SalesInvoices) — изходящи фактури
- Покупни фактури (PurchaseInvoices) — входящи фактури
- Плащания (Payments) — банкови и касови движения
- Главна книга записи (GeneralLedgerEntries) — счетоводни записи
- Движения по AR/AP — задължения и вземания
Цялата структура съдържа ~300 задължителни полета, които НАП валидира при приемане. Пропускането дори на едно задължително поле води до отхвърляне на целия файл.
основни данни — задължителни полета за контрагенти, артикули, сметки
Контрагенти (Customer / Supplier)
За всеки клиент или доставчик SAF-T изисква минимум:
| Поле | Описание | Пример |
|---|---|---|
CustomerID / SupplierID |
Уникален идентификатор | C001234 |
AccountID |
Свързана сметка в сметкоплана | 411-001 |
CompanyName |
Официално наименование | Пример ООД |
BillingAddress |
Адрес за фактуриране (улица, град, ПК, държава) | пълна структура |
TaxRegistrationNumber |
ДДС номер (БГ номер с префикс) | BG123456789 |
Country |
Държава на регистрация | BG |
SelfBillingIndicator |
Индикатор за self-billing | 0 или 1 |
Често пропускани полета:
TaxRegistrationNumberза чуждестранни контрагенти (изисква VIES формат)BillingAddress.PostalCode(пощенски код задължителен)SelfBillingIndicator(мнозина считат, че е опционално)
Артикули (Product)
За всеки артикул в активни транзакции:
| Поле | Описание | Пример |
|---|---|---|
ProductCode |
Уникален код на артикула | ART-0042 |
ProductGroup |
Група/категория | Услуги-консултации |
ProductDescription |
Описание | Консултантска услуга |
ProductType |
Тип: P (продукт), S (услуга), O (друго) | S |
UnitOfMeasure |
Мерна единица | БР, ЧАС, КГ |
Често пропускано поле: ProductType — много счетоводни системи не разграничават продукт от услуга в основни данни, но SAF-T изисква.
Сметкоплан (General Ledger Accounts)
Пълна структура на всички активни сметки:
| Поле | Описание | Пример |
|---|---|---|
AccountID |
Номер на сметката | 411 |
AccountDescription |
Наименование | Клиенти |
StandardAccountID |
Стандартен код (по сметкоплан) | 411 |
GroupingCategory |
Балансова категория | Активи, Пасиви |
OpeningDebitBalance / OpeningCreditBalance |
Начално салдо за периода | 0.00 |
ClosingDebitBalance / ClosingCreditBalance |
Крайно салдо за периода | 1250.50 |
Често пропускани: началните и крайните салда — SAF-T изисква баланс на всяка сметка в началото и края на периода, дори ако са нула.
Source Documents — детайл на полетата ред по ред
Header level (общи данни за фактурата)
За всяка фактура (продажбена или покупна):
| Поле | Описание | Пример |
|---|---|---|
InvoiceNo |
Номер на фактурата | 2026-00123 |
InvoiceStatus |
Статус (N=Normal, A=Annulled, F=Self-billed) | N |
InvoiceDate |
Дата на издаване (YYYY-MM-DD) | 2026-07-15 |
InvoiceType |
Тип: FT (data), FS (simplified), NC (credit note), ND (debit note) | FT |
SelfBillingIndicator |
Self-billing? | 0 |
SystemEntryDate |
Дата на запис в системата | 2026-07-15T14:30:00 |
TransactionID |
Reference към GL запис | JV-2026-07-456 |
CustomerID / SupplierID |
Reference към основни данни | C001234 |
Line level (за всеки ред на фактурата)
| Поле | Описание | Пример |
|---|---|---|
LineNumber |
Пореден номер на реда | 1 |
ProductCode |
Reference към основни данни | ART-0042 |
ProductDescription |
Описание на стоката/услугата | Консултации SAF-T |
Quantity |
Количество | 10.00 |
UnitOfMeasure |
Мерна единица | ЧАС |
UnitPrice |
Единична цена | 100.00 |
TaxPointDate |
Дата на данъчното събитие | 2026-07-15 |
Description |
Описание на реда | Юли 2026, 10 часа |
CreditAmount / DebitAmount |
Сума преди ДДС | 1000.00 |
Tax.TaxType |
Тип на данъка | IVA (за ДДС) |
Tax.TaxCode |
Код на ставката | NOR (стандартна 20%) |
Tax.TaxPercentage |
Процент | 20.00 |
Tax.TaxAmount |
Сума на данъка | 200.00 |
Document totals
В края на всяка фактура:
| Поле | Описание |
|---|---|
TaxPayable |
Общо ДДС за плащане |
NetTotal |
Сума без ДДС |
GrossTotal |
Обща сума с ДДС |
Currency.CurrencyCode |
Валута (BGN по подразбиране) |
Currency.CurrencyAmount |
Сума в оригинална валута (ако не е BGN) |
Currency.ExchangeRate |
Курс към BGN |
Кои полета са най-често пропускани при ръчно подаване
От нашия опит при съпоставяне на SAF-T за български клиенти, топ 10 пропускани полета са:
TaxPointDate— дата на данъчното събитие, различна отInvoiceDateпри доставки на услугиSystemEntryDate— timestamp на въвеждане в счетоводната система (не само дата)SelfBillingIndicator— задължително поле дори когато е нулаProductType— разграничението между продукт (P), услуга (S) и друго (O)CustomerID/SupplierIDreference към основни данни — счетоводните системи често дублират имена вместо да използват IDAccountIDв контрагент основни данни — свързаната сметка в сметкопланаOpeningBalance/ClosingBalance— началните и крайните салда на сметкитеTransactionID— reference към съответния запис в главната книгаCountrycode за чуждестранни контрагенти (BG,DE,FRи т.н.)Currency.ExchangeRateпри фактури в чужда валута
Тези пропуски водят до отхвърляне на целия SAF-T файл при XSD валидация. Подробно за санкциите при неподаване или неуспешно подаване четете в нашия анализ на SAF-T глобите.
Изчислете точно за вашата фирма: SAF-T Калкулатор →
Валидация спрямо НАП XSD схема — примерни грешки
XSD (XML Schema Definition) е техническата спецификация, която НАП използва, за да валидира всеки получен SAF-T файл. Типични грешки при валидация:
Грешка 1: Несъответствие на тип данни
ERROR: Element 'InvoiceDate': '15.07.2026' is not a valid value
of the atomic type 'xs:date'.
Причина: Датата е в българския формат DD.MM.YYYY, а SAF-T изисква YYYY-MM-DD (ISO 8601).
Грешка 2: Липсващо задължително поле
ERROR: Element 'Invoice': The content of element 'Invoice' is not complete.
One of '{TaxPointDate}' is expected.
Причина: Полето TaxPointDate липсва изцяло.
Грешка 3: Невалидно reference
ERROR: Element 'CustomerID': Value 'C001234' not found in основни данни.
Причина: Транзакцията референцира клиент, който не е в основни данни секцията.
Грешка 4: Дублиран запис
ERROR: Element 'InvoiceNo': Duplicate value '2026-00123' found.
Причина: Два записа с един и същ номер на фактура в един и същ период.
Грешка 5: Неправилна сума
ERROR: NetTotal + TaxPayable ≠ GrossTotal at Invoice '2026-00123'.
Причина: Сметката не се връзва (rounding errors или некоректна агрегация).
Автоматизираното решение валидира всички тези грешки преди подаване, което елиминира риска от отхвърляне.
Cross-references — фактура ↔ GL ↔ плащане
Една от най-сложните изисквания на SAF-T е cross-reference консистентността между трите основни секции:
Фактура → Главна книга (GL)
Всяка фактура трябва да референцира съответния счетоводен запис в GL чрез TransactionID. НАП валидира, че:
- Сумата на фактурата = сумата на GL записа
- Датите съвпадат (или са в логичен ред)
- Контрагентът съвпада
Фактура → Плащане
При плащане на фактура (банкова или касова операция):
- Плащането референцира
InvoiceNo - Сумата на плащането ≤ сумата на фактурата
- Датата на плащане ≥ датата на фактурата
GL → AR/AP
Записите за задължения и вземания трябва да съответстват на:
- Salди по клиентски и доставчически сметки
- Баланс на „Клиенти" сметка = сума на отворените клиентски фактури
- Баланс на „Доставчици" сметка = сума на отворените доставчически фактури
При несъответствие НАП отхвърля целия файл.
Ръчното осигуряване на cross-reference консистентност е изключително трудоемко — една грешка в номериране или сума разруши цялата верига. Автоматизираните решения използват референциални константи, които гарантират консистентност.
За пълен преглед на ръчния срещу автоматизирания работен процес четете в нашия анализ на SAF-T автоматизация.
UTF-8 кодиране, валута BGN, дати YYYY-MM-DD
Технически изисквания за всеки SAF-T XML файл:
- Кодиране: UTF-8 (без BOM)
- Валута: BGN като основна; чужди валути в
Currency.CurrencyAmount+ExchangeRate - Дати: ISO 8601, формат YYYY-MM-DD (например
2026-07-15) - Timestamps: ISO 8601, формат YYYY-MM-DDTHH:MM:SS (например
2026-07-15T14:30:00) - Числа: десетична точка (НЕ запетая), 2 знака след точка за суми (например
1000.50) - Boolean:
0за false,1за true (неtrue/false)
Често срещани грешки в кодирането:
- Българските кирилични знаци се замразяват като
???ако файлът не е UTF-8 - Имената на контрагенти с латински акценти (ä, ü, é) се изкривяват без UTF-8
- Excel експорти често запазват CP1251 (Windows кирилица) вместо UTF-8
За Конто 6, Microinvest и Бизнес Навигатор: експортите често изискват преобразуване на кодирането. Подробно за интеграцията четете в нашето ръководство за Конто 6, Microinvest и Бизнес Навигатор.
ЧЗВ (FAQ)
Колко полета общо има в SAF-T XML файла?
Според OECD SAF-T v2.0 има ~300 задължителни полета от общо ~1,000 възможни. Различните полета са задължителни в зависимост от типа на бизнеса (производство, услуги, retail), типа на транзакцията (фактура vs. плащане) и валутата. НАП поддържа официална XSD схема, която точно дефинира кои полета са задължителни в кои случаи.
Какво ако имам специфични полета в моя счетоводен софтуер?
SAF-T има място за аналитични измерения (AnalysisType) и специфични полета (CustomField). Можете да включите центрове на разходи, проекти, отдели и други измерения, които използвате във вашия счетоводен план. При съпоставяне процеса ние идентифицираме всички ваши специфични полета и ги съпоставяме към съответните SAF-T структури.
Каква е разликата между InvoiceDate и TaxPointDate?
InvoiceDate е датата, на която фактурата е издадена и подписана. TaxPointDate е датата на данъчното събитие — моментът, в който данъчното задължение възниква. За доставки на стоки те обикновено съвпадат. За услуги, периодични абонаменти или авансови плащания могат да са различни. SAF-T изисква и двете полета.
Какво ако имам фактури в чужда валута (EUR, USD)?
SAF-T изисква всички суми в BGN като основна валута. За фактури в чужда валута трябва да включите:
Currency.CurrencyCode— код на чуждата валута (EUR, USD, RON и т.н.)Currency.CurrencyAmount— сума в оригиналната валутаCurrency.ExchangeRate— курс към BGN на датата на фактурата
Курсът трябва да е валиден за съответната дата (обикновено фиксинг на БНБ).
Как НАП проверява XSD валидността?
НАП използва автоматизирана валидация при качване на файла в портала. Файлът преминава през:
- Структурна валидация срещу официалната XSD схема
- Бизнес правила валидация (cross-references, суми)
- Дублирана проверка на основни идентификатори
- Crossdate проверка спрямо данъчни декларации (ДДС, корпоративен данък)
Грешен файл се отхвърля с конкретен error report, който позволява корекция и повторно подаване.
💡 💡 Над 300 полета SAF-T могат да са автоматизирани
SAF-T услуга за съответствие от FlowexAI — интеграционно решение за Конто 6, Microinvest, Бизнес Навигатор и др.. Такса за внедряване от €2,500.
Финален извод
SAF-T изискванията към фактурите са много по-детайлни от обичайните счетоводни справки, които българските фирми подават досега. ~300 задължителни полета, cross-reference консистентност и стриктна XSD валидация правят ръчното изпълнение почти невъзможно за фирми с над 100 фактури/месец.
Автоматизираните решения елиминират риска от грешки и осигуряват първо подаване — успешно подаване. Препоръчваме оценка на текущите ви данни минимум 3 месеца преди вашия Етап, за да имате време за корекции в основни данни и счетоводния процес.
Запазете 30-минутна безплатна оценка с нашия екип: Запазете оценка →
📥 Безплатно ръководство: SAF-T Readiness Checklist 2026
8-странична PDF с пълна стъпка-по-стъпка подготовка — от одит на данни до тестово подаване към НАП. Включва преглед на 5-те етапа, времеви график 2026–2030, чеклист за подготовка и сравнение на разходите ръчно срещу автоматизирано.
Готови ли сте за SAF-T съответствие?
Безплатна 30-минутна консултация с Божидар Евдокимов — конкретен анализ за вашия счетоводен софтуер и обем работа, без обвързване.


Вашият коментар