Валідація та обробка XML у KSeF – як платформа інтерпретує рахунок
У системі KSeF рахунок — це не візуальний документ, а структурований XML-файл. Дізнайтеся про багатоетапний процес валідації та парсингу, який визначає, чи буде рахунок прийнятий.

Вступ
У Національній системі е-рахунків (KSeF) рахунок — це не візуальний документ (напр. PDF), а структурований XML-документ, який повинен відповідати офіційній схемі, опублікованій Міністерством фінансів.
Репозиторій CIRFMF/ksef-docs містить технічну документацію API та процесів інтеграції KSeF 2.0 і є головним джерелом знань для інтеграторів ERP-систем та додатків для виставлення рахунків.
У момент відправки XML-документа до KSeF починається багатоетапний процес валідації та парсингу документа, який визначає, чи буде рахунок прийнятий до системи.
Архітектура обробки XML-рахунку в KSeF
Процес обробки рахунку можна поділити на кілька основних етапів: відправка документа до API KSeF, технічна валідація XML-документа, бізнес-валідація даних, ідентифікація дублікатів, збереження рахунку в системі та присвоєння номера KSeF.
Кожен з цих етапів відповідає за перевірку іншого типу вимог.
1. Технічна валідація XML (XSD)
Першим етапом є валідація структури XML відносно схеми XSD. Рахунок повинен бути у форматі XML, закодований в UTF-8 та відповідати поточній схемі рахунку FA(3).
Схема XSD визначає: структуру документа, дозволені елементи та атрибути, типи даних (напр. дата, сума, ідентифікатор), обов'язкові та необов'язкові поля та обмеження значень.
Приклади помилок, що виявляються на цьому етапі: відсутність обов'язкових полів (напр. номера рахунку P_2), неправильний формат дати, невідповідність простору імен XML, неправильний тип даних.
Якщо XML не відповідає схемі XSD, документ відхиляється ще до бізнес-аналізу.
2. Парсинг XML-документа
Після проходження структурної валідації система KSeF починає парсинг документа. Парсинг полягає у зчитуванні структури XML, перетворенні елементів XML на внутрішні моделі даних системи та перевірці зв'язків між елементами.
У цьому процесі елементи XML, такі як Podmiot1 (продавець), Podmiot2 (покупець), Fa (дані заголовка рахунку) та FaWiersz (позиція рахунку), відображаються на об'єкти в системі KSeF.
На цьому етапі система будує модель рахунку в базі даних KSeF.
3. Бізнес-валідація документа
Після побудови моделі даних відбувається бізнес-валідація. Перевіряються: правильність дат, зв'язки між полями, узгодженість сум нетто та ПДВ, відповідність податкових ідентифікаторів.
Приклад правила: дата виставлення рахунку не може бути пізнішою за момент прийняття документа до KSeF.
На цьому етапі також виявляються проблеми, такі як: неузгоджені значення в підсумку рахунку, відсутність обов'язкових податкових даних та помилкові ідентифікатори суб'єктів.
4. Перевірка дублікатів
KSeF також проводить перевірку унікальності рахунку. Система перевіряє комбінацію: NIP продавця, тип рахунку та номер рахунку.
Якщо в системі вже існує рахунок з таким набором даних, документ відхиляється як дублікат. Період перевірки дублікатів охоплює до 10 років назад.
5. Технічний контроль та системні ліміти
Перед збереженням рахунку також перевіряються технічні ліміти. Приклади обмежень: максимальний розмір XML — приблизно 1 МБ, до 3 МБ для документів з вкладеннями, пакетна відправка в ZIP-архівах до 100 МБ.
Цей контроль спрямований на забезпечення стабільності інфраструктури системи.
6. Шифрування та безпека
Після відправки документа його вміст захищається криптографічно. Використовуються: шифрування AES-256-CBC для даних рахунку та RSAES-OAEP для ключа шифрування.
Додатково валідується електронний підпис документа. Варто зазначити, що валідація структури XML (XSD) та валідація криптографічного підпису — це два незалежні процеси.
7. Присвоєння номера KSeF
Якщо документ пройде всі етапи верифікації: рахунок зберігається в системі, система присвоює йому унікальний ідентифікатор KSeF, а документ стає офіційно виставленим рахунком.
Лише з цього моменту документ вважається виставленим у юридичному сенсі.
Перевірте свій XML перед відправкою — безкоштовний валідатор
Перед відправкою рахунку до KSeF варто переконатися, що XML-файл коректний. Ми надаємо безкоштовний валідатор XML KSeF, який перевіряє відповідність документа схемі XSD, правильність структури, NIP-ів, дат та сум — без реєстрації та без відправки даних на зовнішні сервери.
Спробуйте наш безкоштовний валідатор XML та усуньте помилки до того, як вони потраплять до системи KSeF.
Підсумок
Валідація XML-рахунку в KSeF — це багатоетапний процес, який включає як технічний, так і бізнес-контроль.
Ключові елементи процесу: валідація структури XML відносно схеми XSD, парсинг документа та маппінг даних, валідація бізнес-правил, перевірка дублікатів, перевірка технічних лімітів, верифікація безпеки та підпису, збереження рахунку та присвоєння номера KSeF.
Такий підхід гарантує, що кожен рахунок, збережений у системі KSeF, є узгодженим, структурно правильним та відповідає податковому законодавству.
Валідація та обробка XML у KSeF – як платформа інтерпретує рахунок
Перевірте свій XML-файл перед відправкою до KSeF
Скористайтеся нашим безкоштовним валідатором XML — перевірте структуру, NIP, суми та відповідність схемі FA(3). Без реєстрації.
Відкрити безкоштовний валідатор XMLЧитайте також
ШІ оптимізує електронні рахунки в KSeF: посібник 2026
Як штучний інтелект виявляє помилки, шахрайство та аномалії в рахунках KSeF? Практичний посібник з автоматизації для підприємців та бухгалтерів у Польщі.
KSeFGPT: імпорт, експорт, аналітика та AI для KSeF - все в одному застосунку
Як KSeFGPT підключається безпосередньо до API KSeF, що пропонують модуль AI-чату, модуль Контрагенти та модуль Рахунки - і чому застосунок доступний польською, англійською, німецькою та українською мовами.