KSeF відхилив фактуру? 10 помилок валідації FA(3)

Відхилена системою KSeF фактура не отримує унікального номера, тому юридично вона вважається невиставленою і не підлягає звичайному коригуванню. Для вирішення проблеми необхідно виправити помилки у файлі XML та надіслати його знову під тим самим номером. Ознайомтеся з технічними причинами відмов.

7 хв читання 256 переглядів
KSeF відхилив фактуру? 10 помилок валідації FA(3)

KSeF (Krajowy System e-Faktur, польська національна система електронних фактур) відхиляє документ непомітно: у відповіді сесії з'являється тризначний код і короткий напис польською. Проблема в тому, що цей напис майже ніколи не вказує на поле, яке насправді не пройшло перевірку.

Наслідки цілком податкові. Згідно зі ст. 106na ч. 1 закону про VAT, структуровану фактуру вважають виставленою в день її надсилання до KSeF. Це загальне правило: якщо файл потрапляє до KSeF іншого дня, ніж дата в полі P_1, датою виставлення залишається дата з P_1 і діють правила режиму offline24 (надсилання до наступного робочого дня). Відхилена фактура не є виставленою, тож момент, коли виправлений файл потрапить до системи, важливий для термінів.

Ця стаття зіставляє коди відповіді KSeF із тим, що саме у файлі FA(3) їх викликає.

Які коди KSeF повертає для окремої фактури

Статус фактури в сесії описано в офіційній специфікації API KSeF 2.0. Ось кінцеві коди.

КодЗначенняЧи це проблема змісту фактури
200Успіх, присвоєно номер KSeFНі
405Обробку скасовано через помилку сесіїНі
410Неправильний обсяг повноваженьНі, це повноваження
415Неможливо надіслати фактуру із додаткомЧастково
430Помилка перевірки файлу фактуриТак
435Помилка розшифрування файлуНі, транспортний рівень
440Дублікат фактуриТак
450Помилка семантики документа фактуриТак
500Невідома помилкаЗвернення до Міністерства фінансів
550Операцію скасовано системоюПовторити надсилання

Ключова різниця: 430 стосується файлу та схеми, 450 стосується бізнес-правил усередині документа, а 440 це конфлікт із тим, що вже є в базі Міністерства фінансів.

10 помилок, які дають більшість відмов

1. Дублікат номера фактури (код 440)

KSeF виявляє дублікати глобально. Критерієм є комбінація трьох значень: NIP продавця (Podmiot1:NIP), вид фактури (RodzajFaktury) і номер фактури (P_2). Унікальність зберігається протягом 10 повних років від кінця року виставлення.

Найтиповіший сценарій: інтеграція не дочекалася відповіді, вважала надсилання невдалим і повторила його з тим самим номером, хоча фактура вже була в системі. Другий варіант стосується фірм із філіями, які виставляють документи від одного NIP без узгодженої нумерації.

2. Кодування та структура файлу XML (код 430)

Технічні вимоги жорсткі. Файл має бути в UTF-8 без знака BOM (байти 0xEF 0xBB 0xBF), не може містити інструкцій обробки XML, а якщо містить пролог, то цей пролог не може оголошувати інше кодування, ніж UTF-8. Заборонені також нерекомендовані символи Unicode із діапазонів на кшталт [#x7F-#x84] чи [#xFDD0-#xFDEF].

BOM це класика під час генерування XML у Windows. Керуючі символи з'являються, коли назву товару скопіювали з таблиці або зі складської системи.

3. NIP не відповідає шаблону або контрольній сумі

Тип TNrNIP у схемі FA(3) вимагає шаблон [1-9]((\d[1-9])|([1-9]\d))\d{7}. Це десять цифр без дефісів, без пробілів і без префікса PL. Значення PL5252344078 відпадає одразу на рівні XSD.

Окремо KSeF перевіряє контрольну суму NIP для Podmiot1, Podmiot2, Podmiot3 та PodmiotUpowazniony. Ця перевірка працює лише на продакшені, і це часта пастка: файл проходить на тестовому середовищі й падає на бойовому.

4. Дата виставлення з майбутнього

Дата в полі P_1 не може бути пізнішою за дату прийняття документа системою KSeF. Достатньо, щоб ваша система формувала P_1 у локальному часі, а шлюз порівнював його з UTC, і фактури, виставлені пізно ввечері 31 січня, підуть із датою 1 лютого.

5. Неправильний заголовок документа

Блок Naglowek має фіксовані значення. Атрибут kodSystemowy має бути точно FA (3), з пробілом перед дужкою. wersjaSchemy це 1-0E, а WariantFormularza це 3. Крім того, DataWytworzeniaFa не може бути ранішою за 2025-09-01T00:00:00Z.

Остання умова ламає старі тестові набори та фікстури, перенесені з FA(2).

<Naglowek>
  <KodFormularza kodSystemowy="FA (3)" wersjaSchemy="1-0E">FA</KodFormularza>
  <WariantFormularza>3</WariantFormularza>
  <DataWytworzeniaFa>2026-08-29T10:15:00Z</DataWytworzeniaFa>
</Naglowek>

6. Суми у форматі, якого схема не приймає

Тип TKwotowy має шаблон -?([1-9]\d{0,15}|0)(\.\d{1,2})?. На практиці це чотири заборони: кома як десятковий роздільник, роздільник тисяч, більше двох знаків після коми та провідні нулі.

Значення в XMLРезультат
1230.50Правильно
1230,50Відхилено
1 230.50Відхилено
1230.500Відхилено
01230.50Відхилено

Три знаки після коми це симптом систем, які рахують ціну за одиницю з більшою точністю і переносять її просто в поля вартості. Ціна за одиницю має власний тип із більшою точністю, значення продажу не мають.

7. Перевищена довжина текстових полів

Базовий символьний тип у схемі (TZnakowy) має ліміт 256 символів і є однорядковим. Назва суб'єкта та опис товару чи послуги (P_7) вміщують по 512 символів, а адреса складається з двох рядків, AdresL1 і AdresL2, по 512 символів кожен.

Найчастіше ламається назва товару, склеєна з описом, у полі P_7. В адресах помилка інша: схема не має окремих полів вулиці, номера чи індексу — усе вміщується у два рядки, AdresL1 і AdresL2 (зазвичай вулиця з номером, а потім індекс з містом).

8. Немає повноважень у контексті надсилання (код 410)

Надсилання фактури вимагає повноважень на її виставлення в контексті конкретного суб'єкта. Код 410 з'являється, коли бухгалтерське бюро (biuro rachunkowe) не має наданого повноваження для NIP клієнта, коли закінчилася довіреність або коли при самофактуруванні покупець не має права виставляти документ від імені продавця.

Це не помилка файлу. Правити XML тут не допоможе.

9. Фактура з додатком в інтерактивній сесії (код 415)

Надсилання фактур із додатками дозволене лише в пакетному режимі та потребує попереднього повідомлення про цю опцію в сервісі e-Urząd Skarbowy (польський електронний податковий кабінет). Єдиний виняток це технічна корекція офлайнової фактури, яку можна надіслати в інтерактивній сесії.

10. Помилка семантики документа (код 450)

Код 450 стосується правил, які сама схема не вловить. Типові випадки: коригувальна фактура без повного блоку DaneFaKorygowanej, посилання на номер KSeF фактури, якої в системі немає, а також неузгоджені умовні блоки, коли позначку процедури поставлено, а поля, які цей вибір робить обов'язковими, залишилися порожніми.

Варто пам'ятати: KSeF не перевіряє фактуру по суті. Він не скаже, чи ставка VAT відповідає товару. Він перевіряє повноту та узгодженість структури.

Що робити, коли фактура повернулася з помилкою

Відхилена фактура не має номера KSeF, отже не є структурованою фактурою і не підлягає корекції. Ви виправляєте файл і надсилаєте його повторно під тим самим номером.

Окремий шлях стосується фактур, виставлених в офлайн-режимі. Якщо така фактура вже потрапила до контрагента з QR-кодами, а KSeF відхилив її з технічної причини, Міністерство фінансів передбачило технічну корекцію. Ви надсилаєте виправлений файл із тим самим змістом, вказуючи в полі hashOfCorrectedInvoice хеш SHA-256 первинного, відхиленого документа. Система пов'язує обидва документи, завдяки чому старий QR-код перенаправляє клієнта на виправлену фактуру.

Технічна корекція має два обмеження: вона не служить для зміни змісту фактури і не вирішує проблем із повноваженнями.

Чекліст перед надсиланням

  1. Файл збережено в UTF-8 без BOM, без інструкцій обробки XML.

  2. Заголовок: kodSystemowy="FA (3)", wersjaSchemy="1-0E", WariantFormularza=3, DataWytworzeniaFa не раніше 2025-09-01.

  3. Усі NIP як 10 цифр без дефісів і префікса, з правильною контрольною сумою.

  4. P_1 не є датою з майбутнього щодо моменту надсилання.

  5. Суми з крапкою, максимум два знаки після коми, без провідних нулів.

  6. Номер P_2 не використаний раніше для цього NIP і цього виду фактури.

  7. Розмір файлу менший за 1 000 000 байтів, а з додатками менший за 3 000 000 байтів.

  8. Повноваження на виставлення в контексті цього NIP активні й не прострочені.

  9. Валідацію файлу за офіційним XSD виконано локально, до надсилання.

Підсумок

Більшість відмов у KSeF виникає не через незнання законів, а через дрібні розбіжності формату: BOM, кома замість крапки, дефіс у NIP, повторне надсилання після таймауту. Локальна валідація за схемою FA(3) вилучає їх ще до того, як документ покине вашу систему.

Biurko валідує згенерований XML за офіційним XSD перед кожним надсиланням, перекладає 28 найпоширеніших кодів помилок KSeF на повідомлення про те, що виправити (решту показує текстом Міністерства фінансів), і записує перебіг надсилання в історії кожної фактури. Дублікати система розпізнає і прив'язує до первинного номера KSeF замість того, щоб показувати хибну помилку.

Інтерфейс Biurko доступний польською, англійською та українською. Створіть безкоштовний акаунт на biurko.io і подивіться, як виглядає надсилання до KSeF, коли помилку видно до відправки, а не після неї.

FAQ

Що означає код 440 у KSeF? Дублікат фактури. Система вже має документ із такою самою комбінацією NIP продавця, виду фактури та номера. Унікальність перевіряється глобально і зберігається 10 повних років від кінця року виставлення. Перевірте, чи попереднє надсилання насправді не завершилося успіхом.

Чи можна скоригувати фактуру, відхилену KSeF? Ні. Відхилена фактура не отримала номера KSeF, отже вона не є структурованою фактурою і не підлягає корекції. Ви виправляєте файл і надсилаєте повторно. Виняток становлять офлайнові фактури, для яких передбачено технічну корекцію.

Чому файл пройшов на тестовому середовищі, а на продакшені його відхилили? Найчастіше через контрольну суму NIP. KSeF перевіряє її лише на продакшені. На тесті вигаданий NIP, що відповідає шаблону, проходить, а на бойовому той самий файл відхиляється.

Чим відрізняється код 430 від 450? Код 430 це помилка перевірки файлу: кодування, структура XML, невідповідність схемі. Код 450 це помилка семантики, тобто бізнес-правил усередині структурно правильного документа, наприклад корекції без повних даних коригованої фактури.

Чи перевіряє KSeF правильність ставок VAT? Ні. Система перевіряє відповідність схемі, унікальність, дати, NIP і повноваження. За змістовну правильність ставок, сум і даних контрагента відповідає виставник. Прийняття фактури системою KSeF не виправляє змістовної помилки.

Теги

#KSeF
Поділитися

Попередня стаття

Як скоротити час виставлення рахунків до кількох хвилин?

Наступна стаття

Як виправити помилковий NIP покупця у фактурі KSeF?

Будь у курсі

Отримуй сповіщення про нові статті — без розсилки новин, відписатися можна будь-коли.

Ми поважаємо твою приватність. Відписатися можна будь-коли.

Файли cookies

Ми використовуємо лише необхідні файли cookies. Статистику відвідувань ведемо на сервері, нічого не зберігаючи у вашому пристрої. Політика сайту