Защо не може просто да пропуснете секцията
Месечният SAF-T файл има фиксирано съдържание. В XSD схемата на НАП месечната последователност е зададена изрично:
<!-- Monthly sequence --> <xs:sequence> <xs:element ref="MasterFilesMonthly"/> <xs:element ref="CorrespondingAccountsReport" minOccurs="0"/> <xs:element ref="GeneralLedgerEntries"/> <xs:element ref="SourceDocumentsMonthly"/> </xs:sequence>
Само CorrespondingAccountsReport е незадължителен (minOccurs="0"). Останалите секции трябва да ги има във всеки месечен файл — включително за месец, в който във вашата главна книга не се е случило нищо. Ако секция липсва, порталът връща това съобщение:
„Видът на файла (месечен, годишен, при поискване), избран при подаването му в е-услугата, не отговаря на изискуемото съдържание за съответния вид файл.“
Портал за е-услуги на НАП · „Въпроси и отговори за SAF-T“, IV.2.2
А месечният файл се подава всеки месец — до края на месеца, следващ отчетния (пълният график е в SAF-T сроковете). Въпросът „нямаме движение, какво подаваме?“ е зададен директно на НАП и има официален отговор.
Официалното решение: една нулева структура
Отговорът на НАП (FAQ, въпрос IV.2.6) е кратък: за секция без движение
„…в елементи Number of entries, Total Debit и Total Credit се посочва стойност „0“ и се подава една структура, в която се посочват нулеви стойности.“
„Въпроси и отговори за SAF-T“, ЦУ на НАП, версия 2 · IV.2.6
Тоест секцията не се маха и не се оставя празна — подава се с NumberOfEntries = 0, TotalDebit и TotalCredit = 0.00 и една структура-запис с нулеви стойности. В примерите на НАП се виждат и конвенциите за „нулевия“ запис:
- дати (
TransactionDate,SystemEntryDate,GLPostingDate,InvoiceDate,TaxPointDate) —1900-01-01; AccountID— сметка998;CustomerIDиSupplierID—0;- суми —
0.00; в примерите на НАП валутата еBGN; - данъчна информация —
TaxType000иTaxCode000000, кодовете за неприложимост (подробно в TaxType 000: транзакции без данък).
По-долу са трите пълни примера от документа на НАП, дословно.
Пример 1: период без плащания
<nsSAFT:Payments>
<nsSAFT:NumberOfEntries>0</nsSAFT:NumberOfEntries>
<nsSAFT:TotalDebit>0.00</nsSAFT:TotalDebit>
<nsSAFT:TotalCredit>0.00</nsSAFT:TotalCredit>
<nsSAFT:Payment>
<nsSAFT:PaymentRefNo>0</nsSAFT:PaymentRefNo>
<nsSAFT:Period>0</nsSAFT:Period>
<nsSAFT:PeriodYear>0</nsSAFT:PeriodYear>
<nsSAFT:TransactionID>0</nsSAFT:TransactionID>
<nsSAFT:TransactionDate>1900-01-01</nsSAFT:TransactionDate>
<nsSAFT:PaymentMethod>0</nsSAFT:PaymentMethod>
<nsSAFT:Description>0</nsSAFT:Description>
<nsSAFT:PaymentLine>
<nsSAFT:LineNumber>1</nsSAFT:LineNumber>
<nsSAFT:AccountID>998</nsSAFT:AccountID>
<nsSAFT:CustomerID>0</nsSAFT:CustomerID>
<nsSAFT:SupplierID>0</nsSAFT:SupplierID>
<nsSAFT:DebitCreditIndicator>D</nsSAFT:DebitCreditIndicator>
<nsSAFT:PaymentLineAmount>
<nsSAFT:Amount>0.00</nsSAFT:Amount>
<nsSAFT:CurrencyCode>BGN</nsSAFT:CurrencyCode>
<nsSAFT:CurrencyAmount>0.00</nsSAFT:CurrencyAmount>
</nsSAFT:PaymentLineAmount>
</nsSAFT:PaymentLine>
</nsSAFT:Payment>
</nsSAFT:Payments>
Пример 2: период без счетоводни записвания
Обърнете внимание: тук Period и PeriodYear са реалните (9 и 2025 в примера на НАП), а не 0 — нулеви са датите, сумите и референциите.
<nsSAFT:GeneralLedgerEntries>
<nsSAFT:NumberOfEntries>0</nsSAFT:NumberOfEntries>
<nsSAFT:TotalDebit>0.00</nsSAFT:TotalDebit>
<nsSAFT:TotalCredit>0.00</nsSAFT:TotalCredit>
<nsSAFT:Journal>
<nsSAFT:Transaction>
<nsSAFT:TransactionID>1</nsSAFT:TransactionID>
<nsSAFT:Period>9</nsSAFT:Period>
<nsSAFT:PeriodYear>2025</nsSAFT:PeriodYear>
<nsSAFT:TransactionDate>1900-01-01</nsSAFT:TransactionDate>
<nsSAFT:Description> </nsSAFT:Description>
<nsSAFT:SystemEntryDate>1900-01-01</nsSAFT:SystemEntryDate>
<nsSAFT:GLPostingDate>1900-01-01</nsSAFT:GLPostingDate>
<nsSAFT:CustomerID>0</nsSAFT:CustomerID>
<nsSAFT:SupplierID>0</nsSAFT:SupplierID>
<nsSAFT:TransactionLine>
<nsSAFT:RecordID>1</nsSAFT:RecordID>
<nsSAFT:AccountID>998</nsSAFT:AccountID>
<nsSAFT:TaxpayerAccountID>0</nsSAFT:TaxpayerAccountID>
<nsSAFT:CustomerID>0</nsSAFT:CustomerID>
<nsSAFT:SupplierID>0</nsSAFT:SupplierID>
<nsSAFT:Description> </nsSAFT:Description>
<nsSAFT:DebitAmount>
<nsSAFT:Amount>0.00</nsSAFT:Amount>
<nsSAFT:CurrencyCode>BGN</nsSAFT:CurrencyCode>
<nsSAFT:CurrencyAmount>0.00</nsSAFT:CurrencyAmount>
<nsSAFT:ExchangeRate>1.0000</nsSAFT:ExchangeRate>
</nsSAFT:DebitAmount>
<nsSAFT:TaxInformation>
<nsSAFT:TaxType>000</nsSAFT:TaxType>
<nsSAFT:TaxCode>000000</nsSAFT:TaxCode>
<nsSAFT:TaxAmount>
<nsSAFT:Amount>0</nsSAFT:Amount>
<nsSAFT:CurrencyCode>BGN</nsSAFT:CurrencyCode>
<nsSAFT:CurrencyAmount>0</nsSAFT:CurrencyAmount>
<nsSAFT:ExchangeRate>0</nsSAFT:ExchangeRate>
</nsSAFT:TaxAmount>
</nsSAFT:TaxInformation>
</nsSAFT:TransactionLine>
</nsSAFT:Transaction>
</nsSAFT:Journal>
</nsSAFT:GeneralLedgerEntries>
Пример 3: период без продажби или покупки
Същият образец важи и за SalesInvoices, и за PurchaseInvoices:
<nsSAFT:SalesInvoices> <!-- или <nsSAFT:PurchaseInvoices> -->
<nsSAFT:NumberOfEntries>0</nsSAFT:NumberOfEntries>
<nsSAFT:TotalDebit>0.00</nsSAFT:TotalDebit>
<nsSAFT:TotalCredit>0.00</nsSAFT:TotalCredit>
<nsSAFT:Invoice>
<nsSAFT:InvoiceNo>1</nsSAFT:InvoiceNo>
<nsSAFT:CustomerInfo>
<nsSAFT:CustomerID>0</nsSAFT:CustomerID>
<nsSAFT:Name> </nsSAFT:Name>
<nsSAFT:BillingAddress>
<nsSAFT:City></nsSAFT:City>
<nsSAFT:Country>BG</nsSAFT:Country>
</nsSAFT:BillingAddress>
</nsSAFT:CustomerInfo>
<nsSAFT:AccountID>998</nsSAFT:AccountID>
<nsSAFT:InvoiceDate>1900-01-01</nsSAFT:InvoiceDate>
<nsSAFT:InvoiceType>01</nsSAFT:InvoiceType>
<nsSAFT:SelfBillingIndicator>N</nsSAFT:SelfBillingIndicator>
<nsSAFT:TransactionID>1</nsSAFT:TransactionID>
<nsSAFT:InvoiceLine>
<nsSAFT:LineNumber>1</nsSAFT:LineNumber>
<nsSAFT:AccountID>998</nsSAFT:AccountID>
<nsSAFT:ProductCode>0</nsSAFT:ProductCode>
<nsSAFT:ProductDescription>0</nsSAFT:ProductDescription>
<nsSAFT:Quantity>0</nsSAFT:Quantity>
<nsSAFT:InvoiceUOM>0</nsSAFT:InvoiceUOM>
<nsSAFT:UOMToUOMBaseConversionFactor>1</nsSAFT:UOMToUOMBaseConversionFactor>
<nsSAFT:UnitPrice>0.00</nsSAFT:UnitPrice>
<nsSAFT:TaxPointDate>1900-01-01</nsSAFT:TaxPointDate>
<nsSAFT:Description>Продажба</nsSAFT:Description>
<nsSAFT:InvoiceLineAmount>
<nsSAFT:Amount>0.00</nsSAFT:Amount>
<nsSAFT:CurrencyCode>BGN</nsSAFT:CurrencyCode>
<nsSAFT:CurrencyAmount>0.00</nsSAFT:CurrencyAmount>
</nsSAFT:InvoiceLineAmount>
<nsSAFT:DebitCreditIndicator>D</nsSAFT:DebitCreditIndicator>
<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>
</nsSAFT:InvoiceLine>
</nsSAFT:Invoice>
</nsSAFT:SalesInvoices> <!-- или </nsSAFT:PurchaseInvoices> -->
BGN, а отчетният период е 2025 г. За валутата на отчитане във вашия период вижте речника на грешките.Какво хваща валидаторът, преди порталът да откаже
SAFTCheck проверява файла локално, в браузъра, преди подаване:
- Структурата по XSD схемата. Пропусната задължителна секция (например изтрит
Paymentsвместо нулева структура) се хваща веднага — не чакате отговора на портала. - Декларираните суми.
NumberOfEntries,TotalDebitиTotalCreditсе сверяват с действителния сбор от редовете (вижте несъответствие в тоталите). Имайте предвид: нулевата структура декларира 0 записа, но физически съдържа един ред-образец — ако при нулев файл проверката отчете разминаване тук, сверете записа с примерите на НАП по-горе, преди да променяте стойностите. - Референциите. Всеки
CustomerID/SupplierIDв записите се търси в MasterFiles — още една проверка, която порталът иначе прави чак след подаване.
Схема, суми, референции — всичко се проверява в браузъра. Файлът не напуска компютъра ви.
Източник: „Въпроси и отговори за SAF-T“, ЦУ на НАП, версия 2 — въпроси IV.2.2 и IV.2.6 (страница на обявата в nra.bg). XML примерите са възпроизведени дословно от документа.