Enterprise редакция
Счёт-фактура
Краткий обзор
Заголовок раздела «Краткий обзор»NextPDF Enterprise формирует структурированные гибридные счета ZUGFeRD / Factur-X / Peppol-UBL и проверяет XML счёта по модели данных EN 16931 и наборам правил Schematron. Он формирует структурированные счета, соответствующие модели данных, определённой в EN 16931; он не является валидатором налогового органа и не сертифицирует ни один документ.
Доступность и лицензирование
Заголовок раздела «Доступность и лицензирование»Эта возможность поставляется в NextPDF Enterprise (nextpdf/enterprise) и активируется лицензионным конвертом уровня Enterprise. Развёртывание без этого права не загружает классы возможности. Сравните редакции и получите лицензию.
Установка
Заголовок раздела «Установка»composer require nextpdf/enterprise:^3Движок Schematron использует расширение PHP ext-xsl. Установите и включите его перед запуском проверки Schematron.
Концептуальный обзор
Заголовок раздела «Концептуальный обзор»Модуль Invoice имеет три независимые поверхности: встраивание структурированного счёта, проверку XML по EN 16931 и выполнение правил Schematron.
Встраивание. ZugferdEmbedder прикрепляет переданный вызывающим кодом XML-пейлоад ZUGFeRD 2.4 / Factur-X 1.08 UN/CEFACT CII к носителю PDF/A, формируя гибридный счёт. Поддерживаются два формата носителя: PDF/A-4f (ISO 19005-4:2020) — предпочтительный современный носитель, и PDF/A-3b (ISO 19005-3:2012) для обратной совместимости. ZugferdXmpSchema внедряет объявление расширения-схемы XMP для Factur-X, которое требуется носителю. PeppolEmbedder выполняет ту же роль для переданного вызывающим кодом XML счёта или кредит-ноты Peppol BIS Billing 3.0 UBL 2.1, прикрепляя его с правильным отношением связанного файла и MIME-типом. NextPDF не синтезирует XML счёта; вызывающий код предоставляет действительный XML и остаётся эмитентом счёта.
Проверка. InvoiceXmlValidator проверяет XML счёта по семантической модели данных EN 16931 и ожиданиям контейнера ZUGFeRD / Factur-X, включая идентификатор спецификации BT-24, который предписывает бизнес-правило BR-1 стандарта EN 16931. Он работает в одном из двух режимов: COMPAT (по умолчанию; пограничные замечания о кратности EN 16931 сообщаются как предупреждения для сохранения обратной совместимости с существующими фикстурами) и STRICT (кратность BT-24 является жёсткой ошибкой, что отражает семантику внешних валидаторов). Режим выбирается для каждого вызова, переопределением через окружение или политикой соответствия.
Schematron. SchematronValidator запускает предварительно скомпилированные наборы правил Schematron (правила CEN EN 16931 .sch, скомпилированные в XSLT на этапе сборки) над XML счёта с помощью внутрипроцессного XSLT-процессора PHP и разбирает отчёт SVRL в структурированные замечания. Перечисление ZugferdProfile моделирует профили соответствия — MINIMUM, BASIC WL, BASIC, EN 16931, EXTENDED и немецкий XRechnung B2G CIUS поверх EN 16931.
Что этот модуль заявляет и чего не заявляет
Заголовок раздела «Что этот модуль заявляет и чего не заявляет»Этот модуль формирует и проверяет структурированные данные счёта. Он не утверждает, что какой-либо документ является юридически соответствующим счётом, что он одобрен налоговым органом или что он гарантированно будет принят каким-либо органом.
- Валидатор проверяет только семантическую модель EN 16931 и контейнер ZUGFeRD / Factur-X / UBL. Он не является валидатором налогового органа. Национальные расширения и клиринговые платформы — например итальянская SDI, французская Chorus Pro, немецкий транспорт XRechnung — находятся вне области охвата на транспортном уровне.
- Как указано в самом EN 16931-1, основная семантическая модель несёт существенную информацию, необходимую электронному счёту для поддержки юридического и фискального соответствия; эмитент счёта отвечает за соблюдение норм соответствующего законодательства. Это не валидатор налогового органа.
- Поддержка стандарта не равнозначна соответствию ему. Обращайтесь к своим налоговым консультантам и консультантам по соответствию, чтобы оценить нормативную достаточность в вашей юрисдикции.
Почему это устроено именно так
Заголовок раздела «Почему это устроено именно так»Модуль намеренно никогда не синтезирует XML счёта. Встраивание, проверка по EN 16931 и выполнение Schematron — это три независимые поверхности над XML, который предоставляет и которым владеет вызывающий код. Благодаря этому NextPDF остаётся производителем и контролёром, но никогда не эмитентом, поскольку правовую ответственность нельзя делегировать библиотеке. По умолчанию проверка использует COMPAT, поэтому пограничное замечание о кратности является предупреждением, а не регрессией. STRICT включается по запросу, когда вам нужна семантика внешнего валидатора. Результат — чёткое разделение: NextPDF сообщает о том, что наблюдает, а эмитент решает, соответствует ли документ закону.
Проектный контекст: Счета и электронное выставление счетов.
Поверхность API
Заголовок раздела «Поверхность API»| Класс | Назначение |
|---|---|
ZugferdEmbedder | Прикрепляет ZUGFeRD / Factur-X CII XML к носителю PDF/A-4f или PDF/A-3b. |
ZugferdXmpSchema | Внедряет объявление расширения-схемы XMP для Factur-X. |
ZugferdProfile | Перечисление профилей соответствия (MINIMUM … EXTENDED, XRECHNUNG). |
PeppolEmbedder | Прикрепляет XML счёта / кредит-ноты Peppol BIS 3.0 UBL к носителю PDF/A. |
InvoiceXmlValidator | Проверяет XML по модели данных EN 16931; режим COMPAT или STRICT. |
InvoiceValidatorMode | Перечисление режима проверки: COMPAT (по умолчанию) или STRICT. |
SchematronValidator | Запускает предварительно скомпилированные наборы правил Schematron; разбирает замечания SVRL. |
InvoiceValidationResult / SchematronResult | Структурированные результаты: профиль, замечания, серьёзности. |
Пример кода — быстрый старт
Заголовок раздела «Пример кода — быстрый старт»use NextPDF\Enterprise\Invoice\ZugferdEmbedder;use NextPDF\Enterprise\Invoice\ZugferdProfile;
$pdf = ZugferdEmbedder::basic($pdfAManager, $fileAttachment, $ciiXml) ->embed(ZugferdProfile::EN16931);Пример кода — рабочая среда
Заголовок раздела «Пример кода — рабочая среда»use NextPDF\Enterprise\Invoice\InvoiceXmlValidator;use NextPDF\Enterprise\Invoice\InvoiceValidatorMode;
$result = $validator->validate($ciiXml, InvoiceValidatorMode::STRICT);
foreach ($result->findings as $finding) { $logger->warning('invoice.finding', [ 'rule' => $finding->ruleId, 'severity' => $finding->severity->value, ]);}// A clean result is one input to your decision, not a compliance verdict.// The invoice issuer remains responsible for relevant legislation.Граничные случаи и подводные камни
Заголовок раздела «Граничные случаи и подводные камни»- Корректно сформированный PDF, не несущий распознаваемого пейлоада счёта, даёт результат «не счёт», а не выбрасывает исключение.
COMPAT— режим проверки по умолчанию: отсутствие идентификатора спецификации BT-24 сообщается как предупреждение, поэтому места вызова, которые опираются на булев флаг действительности, не регрессируют. ИспользуйтеSTRICT, чтобы сделать BT-24 жёсткой ошибкой, соответствующей семантике внешних KoSIT / Mustang.- Вызывающий код предоставляет XML счёта. NextPDF не генерирует и не исправляет его; пустой список замечаний не делает несоответствующий пейлоад соответствующим.
- Движку Schematron требуется
ext-xsl. Наборы правил компилируются на этапе сборки; во время выполнения исполняется только предварительно скомпилированный XSLT.
Производительность
Заголовок раздела «Производительность»Стоимость проверки растёт с размером встроенного XML и числом правил Schematron. Стоимость встраивания растёт с размером носителя и определяется в основном сериализацией PDF/A. Бюджет производительности страницы отражает отрисовку документации, а не пропускную способность по счетам.
Замечания по безопасности
Заголовок раздела «Замечания по безопасности»Весь разбор XML проходит через усиленный XML-щит: разрешение внешних сущностей отключено (защита от XXE), DOCTYPE отклоняется, а распаковка ограничена. XSLT-процессор работает с отключённой загрузкой ресурсов из сети и файловой системы и никогда не регистрирует функции PHP, поэтому document(), xsl:include, xsl:import и result-document не могут обратиться к сети или диску. Относитесь к XML счёта из недоверенных источников как к враждебному.
Размещение данных и меры по защите ПДн
Заголовок раздела «Размещение данных и меры по защите ПДн»XML счёта может содержать персональные, коммерческие и финансовые данные. Обработка выполняется внутри процесса и локально; модуль не делает исходящих сетевых вызовов во время встраивания или проверки. Применяйте собственные меры контроля хранения и минимизации к извлечённому XML и замечаниям.
Безопасная телеметрия и очистка журналов
Заголовок раздела «Безопасная телеметрия и очистка журналов»Замечания и журналы проверки могут включать идентификаторы правил и значения тегов. Они не включают полные пейлоады счетов. Очищайте или редактируйте значения полей перед пересылкой журналов в общие приёмники, если эти значения конфиденциальны.
Соответствие
Заголовок раздела «Соответствие»| Поведение | Ссылка | Статус |
|---|---|---|
| Основная семантическая модель счёта | EN 16931-1:2026 §4 | Реализовано в соответствии; эмитент отвечает за соответствующее законодательство |
| Идентификатор спецификации (BT-24) | EN 16931-1:2026 BR-1 | Проверяется (предупреждение в COMPAT, ошибка в STRICT) |
| Синтаксическая привязка UN/CEFACT CII | CEN/TS 16931-3-3:2020 | Встраивание поддерживается |
| Синтаксическая привязка UBL 2.1 | CEN/TS 16931-3-2:2020 | Встраивание поддерживается |
| Связанный файл PDF/A-3 | ISO 19005-3:2012 §6.7.8 | Носитель поддерживается |
| Встроенный файл PDF/A-4f | ISO 19005-4:2020 Annex A | Носитель поддерживается |
Эта таблица фиксирует спецификации, в соответствии с которыми реализован NextPDF Enterprise, и то, что он проверяет. Она не является заявлением о сертификации, одобрении налоговым органом или нормативной достаточности. Эмитент счёта отвечает за соблюдение норм соответствующего законодательства; это не валидатор налогового органа.
Поведение в режиме FIPS
Заголовок раздела «Поведение в режиме FIPS»Этот модуль не выполняет криптографического подписания. Подписание гибридного счёта и хранение ключей в режиме FIPS находятся вне области охвата здесь; см. модуль Signature.
Модель угроз
Заголовок раздела «Модель угроз»Основной вход — недоверенный XML счёта. Меры противодействия: разбор с защитой от XXE, отклонение DOCTYPE, ограниченная распаковка, XSLT-процессор с отключённой загрузкой сетевых и файловых ресурсов и отсутствие синтеза утверждений — вызывающий код предоставляет содержимое счёта и владеет им.
Контракт поведения
Заголовок раздела «Контракт поведения»ZugferdEmbedder/PeppolEmbedderприкрепляют переданный вызывающим кодом XML счёта к носителю PDF/A-4f или PDF/A-3b; NextPDF никогда не синтезирует XML счёта.InvoiceXmlValidatorработает в режимеCOMPAT(по умолчанию; пограничная кратность EN 16931 — это предупреждение) илиSTRICT(кратность BT-24 — жёсткая ошибка).SchematronValidatorисполняет предварительно скомпилированные наборы правил через внутрипроцессный XSLT-процессор и разбирает замечания SVRL; пустой список замечаний не делает несоответствующий пейлоад соответствующим.- Весь разбор XML защищён от XXE: разрешение внешних сущностей отключено,
DOCTYPEотклоняется, распаковка ограничена.
Граница публикации
Заголовок раздела «Граница публикации»Эта страница документирует только внешне наблюдаемое поведение и поддерживаемую публичную поверхность API. Внутренние пути пространств имён, вспомогательные классы, таблицы механизмов, имена файлов runbook и префиксы заявок находятся вне области охвата.
Резервный режим Core
Заголовок раздела «Резервный режим Core»NextPDF Core не генерирует и не проверяет структурированные счета. Развёртывание только с Core может сформировать PDF, но не имеет встраивания ZUGFeRD / Factur-X / Peppol, валидатора EN 16931 и движка Schematron.
Резервный режим Pro
Заголовок раздела «Резервный режим Pro»В развёртывании только с Pro поддерживаемая поверхность — это обнаружение и проверка электронных счетов уровня Pro для пейлоадов Factur-X / ZUGFeRD. Pro не формирует гибридные носители ZUGFeRD / Factur-X или Peppol-UBL, не добавляет профиль XRechnung CIUS и не запускает внутрипроцессный движок Schematron; конфигурация, запрашивающая формирование, профиль XRechnung CIUS или Schematron в развёртывании только с Pro, не имеет компонента Enterprise, который бы её удовлетворил. См. Pro Compliance для поверхности обнаружения и проверки в Pro.
Замечание о границе Enterprise
Заголовок раздела «Замечание о границе Enterprise»Внутренние детали механизма остаются во внутренней документации исходного репозитория и находятся вне области охвата этого руководства.
Граница развёртывания
Заголовок раздела «Граница развёртывания»Движку Schematron требуется расширение PHP ext-xsl; его подготовка и включение — обязанность оператора. Обработка выполняется внутри процесса и локально; модуль не делает исходящих сетевых вызовов во время встраивания или проверки. Национальный транспорт электронного выставления счетов, клиринговые платформы и системы архивирования являются внешними по отношению к этому модулю и находятся в зоне ответственности оператора.
Граница правового соответствия
Заголовок раздела «Граница правового соответствия»NextPDF формирует структурированные счета, соответствующие модели данных, определённой в EN 16931, и сообщает о замечаниях по правилам. Он не формирует «юридически соответствующих счетов», не предоставляет «одобренного налоговым органом» вывода и не гарантирует, что какой-либо счёт будет принят налоговым органом, судом или реестром. Эмитент счёта отвечает за соблюдение норм соответствующего законодательства; это не валидатор налогового органа. Национальные платформы электронного выставления счетов, модели клиринга, мандаты на архивирование и требования к цифровой подписи различаются по юрисдикциям и находятся в зоне ответственности эмитента. Обращайтесь к своим налоговым и юридическим консультантам.
См. также
Заголовок раздела «См. также»- Справочник по счетам — справочник уровня API по встраивателям, валидаторам и движку Schematron.
- Pro Compliance — обнаружение и проверка электронных счетов уровня Pro.
- Document E-Filing — оптимизация доставки в суд/реестр.
- Обзор Enterprise
- Матрица возможностей Core, Pro и Enterprise