Pro edição
Conformidade
Visão geral
Seção intitulada “Visão geral”O NextPDF Pro gera relatórios sobre eventos de tags de idioma do PDF/UA-2, valida e incorpora XML de fatura eletrônica Factur-X / ZUGFeRD e incorpora ou lê stores de manifesto C2PA. Esses recursos produzem relatórios e resultados estruturados. Eles não certificam um documento nem garantem suficiência regulatória.
Disponibilidade e licenciamento
Seção intitulada “Disponibilidade e licenciamento”Este recurso vem no NextPDF Pro (nextpdf/pro) e é ativado com um envelope de licença de nível Pro. Uma implantação sem esse direito de uso não carrega as classes do recurso. O Compliance faz parte da edição Pro; não há um sinalizador de licença separado por recurso. Compare as edições e obtenha uma licença.
Instalação
Seção intitulada “Instalação”composer require nextpdf/pro:^3Visão conceitual
Seção intitulada “Visão conceitual”O módulo Compliance tem três superfícies independentes.
Relatório de tags de idioma. LangComplianceReporter emite um registro JSON estruturado para cada evento de tag de idioma do PDF/UA-2. Cada registro carrega a tag infratora, um motivo legível por máquina, os componentes analisados da tag, uma referência à cláusula ISO 14289-2 §8.4.4 e um carimbo de data/hora. ConformancePolicy é uma fachada Premium que adota por padrão o tratamento estrito de idioma UA-2: ela falha de forma segura (fail closed) quando uma tag BCP-47 malformada ou não registrada chega à entrada /Lang. Uma exclusão permissiva (ConformancePolicy::withStrictUa2(false)) reverte ao comportamento permissivo legado e registra um aviso. O NextPDF marca essa exclusão como deprecated; use o padrão estrito em vez dela. A exclusão existe desde a v5.0 e desaparece na próxima versão principal. Para migrar, audite seu corpus em busca de valores /Lang malformados, corrija-os e, em seguida, remova a chamada de exclusão para que o padrão estrito seja aplicado.
Tratamento de fatura eletrônica. EInvoiceValidator verifica um PDF híbrido em relação ao modelo de dados semântico EN 16931 e à especificação de contêiner Factur-X 1.08 / ZUGFeRD 2.4. Ele detecta o perfil, executa o motor de regras de negócio EN 16931 e executa uma passagem Schematron. Antes de validar, ele extrai o XML da fatura incorporada do PDF — inclusive de PDFs com object-stream, que são a saída padrão de produtores comuns como Ghostscript, Gotenberg e Antenna House e que a extração anterior não conseguia ler. O extrator aceita subtipos MIME parametrizados RFC 7303 (por exemplo text/xml; charset=UTF-8) e nomes de arquivo incorporado em string literal da ISO 32000-2, incluindo escapes. FacturXEmbedder produz um documento híbrido PDF/A-3 com o XML Factur-X anexado. EInvoiceValidationResult informa o perfil, a sintaxe, as violações de regra e as verificações de wrapper.
Proveniência. C2paManifestEmbedder incorpora um store de manifesto C2PA fornecido pelo chamador em uma string de bytes PDF, ou o extrai de volta. ManifestStore é o objeto de valor imutável que cruza o limite. A junção não sintetiza declarações nem resolve vinculações de hash.
O que “compliance” significa aqui
Seção intitulada “O que “compliance” significa aqui”Este módulo relata o que verifica. Ele não afirma que um documento é legalmente conforme, certificado ou juridicamente vinculante, e não garante que qualquer saída satisfaça uma regulamentação ou jurisdição.
- O validador de fatura eletrônica verifica apenas o modelo semântico EN 16931 e a especificação de contêiner Factur-X / ZUGFeRD. Ele não é um validador de autoridade fiscal. Extensões nacionais — por exemplo, o SDI italiano, o Chorus Pro francês, o XRechnung alemão — estão fora do escopo. Como a própria EN 16931-1 observa, o emissor da fatura é responsável por atender às regras da legislação pertinente.
- O relator de tags de idioma produz um relatório de eventos de tag. Ele não torna um documento conforme.
- A incorporação C2PA grava um manifesto fornecido pelo chamador. Ela não produz nem assina as declarações que contém.
Suporte a um padrão não é o mesmo que conformidade com ele. Consulte sua equipe de compliance para julgar a suficiência regulatória para o seu uso.
Por que funciona assim
Seção intitulada “Por que funciona assim”A decisão de sustentação é uma linha rígida entre verificar e certificar. Cada superfície retorna evidências — um relatório, um resultado de validação, um manifesto incorporado — nunca uma afirmação de que um documento é legalmente conforme. Isso mantém a junção honesta entre as edições. ConformancePolicy falha de forma segura em uma tag /Lang malformada, e C2paManifestEmbedder nunca assina as declarações que carrega. EInvoiceValidator::validate() retorna um EInvoiceValidationResult; um isValid() verde é uma entrada para a sua decisão, não um veredito que você possa entregar a um regulador sem verificação. As evidências se compõem com os seus próprios controles em vez de substituí-los, de modo que permanecem verídicas mesmo quando a entrada é hostil.
Contexto de projeto: Conformidade que você pode entregar a um auditor.
Superfície da API
Seção intitulada “Superfície da API”| Classe | Responsabilidade |
|---|---|
LangComplianceReporter | Emitir registros estruturados de eventos de tag de idioma. |
ConformancePolicy | Fachada de política Premium de idioma estrito UA-2. |
EInvoiceValidator | Verificar EN 16931 / Factur-X / ZUGFeRD; retornar um resultado. |
EInvoiceValidationResult | Perfil, sintaxe, violações de regra, verificações de wrapper. |
FacturXEmbedder | Produzir um documento híbrido PDF/A-3 + XML Factur-X. |
C2paManifestEmbedder | Incorporar ou extrair um store de manifesto C2PA. |
ManifestStore | Objeto de valor imutável de store de manifesto C2PA. |
Exemplo de código — Início rápido
Seção intitulada “Exemplo de código — Início rápido”use NextPDF\Pro\Compliance\EInvoice\EInvoiceValidator;
$result = $validator->validate('/path/to/invoice.pdf');$ok = $result->isValid(); // true only if wrapper, attachment, profile, and no fatal BRExemplo de código — Produção
Seção intitulada “Exemplo de código — Produção”$result = $validator->validate($pdfPath);
foreach ($result->businessRuleViolations as $violation) { $logger->warning('einvoice.br_violation', [ 'rule' => $violation->ruleId, 'severity' => $violation->severity->value, ]);}// A green result is one input to your decision, not a compliance verdict.Casos extremos e armadilhas
Seção intitulada “Casos extremos e armadilhas”- Um PDF bem formado que não seja Factur-X retorna um resultado “não é uma fatura eletrônica” em vez de lançar uma exceção.
- O extrator de XML lê PDFs com object-stream (a saída padrão de Ghostscript, Gotenberg e Antenna House) e aceita subtipos MIME parametrizados RFC 7303 e nomes de arquivo em string literal da ISO 32000-2. Isto é extração de compatibilidade para a saída de produtores conformes, não validação autoritativa de anexo contra entrada hostil — a ativação completa de xref para endpoints públicos adversariais é um limite adiado documentado. Trate a extração de fontes não confiáveis de acordo.
- Uma lista vazia de violações de regra de negócio não significa, por si só, que o documento é válido; verificações de wrapper e de anexo também se aplicam.
- O NextPDF marca como deprecated a exclusão permissiva do UA-2 estrito; migre para o padrão estrito (consulte a Visão conceitual). Ela desaparece na próxima versão principal.
Desempenho
Seção intitulada “Desempenho”O custo de validação escala com o tamanho do XML incorporado e a contagem de regras. O relatório de tags de idioma é constante por evento.
Notas de segurança
Seção intitulada “Notas de segurança”Toda análise de XML desativa a resolução de entidades externas (seguro contra XXE) e limita a descompressão. Trate o XML de fatura eletrônica e os bytes C2PA de fontes não confiáveis como hostis.
Residência de dados e mitigações de PII
Seção intitulada “Residência de dados e mitigações de PII”O XML de fatura eletrônica pode conter dados pessoais e financeiros. O processamento é local e no processo; o módulo não realiza chamadas de rede de saída para validação. Aplique seus próprios controles de retenção e minimização ao XML extraído e aos relatórios.
Telemetria segura e limpeza de logs
Seção intitulada “Telemetria segura e limpeza de logs”Os registros do relator e os logs de validação podem incluir valores de tag e identificadores de regra. Eles não incluem cargas úteis completas de faturas. Limpe ou redija os valores de tag antes de encaminhar logs para sinks compartilhados se esses valores forem sensíveis.
Conformidade
Seção intitulada “Conformidade”| Comportamento | Referência | Status |
|---|---|---|
Declaração de idioma natural (/Lang) | ISO 14289-2:2024 §8.4.4 | Verificado / relatado |
| Modelo semântico de fatura principal | EN 16931-1:2026 | Verificado (o emissor permanece responsável) |
| Store de manifesto C2PA / JUMBF | C2PA 2.1 §11.1 | Incorporar / extrair suportado |
Esta tabela registra as especificações em relação às quais o NextPDF Pro é construído e o que ele verifica. Não é uma declaração de certificação ou de suficiência regulatória.
Comportamento em modo FIPS
Seção intitulada “Comportamento em modo FIPS”Este módulo não realiza assinatura criptográfica. A assinatura de declarações C2PA e a custódia de chaves estão fora do seu escopo; consulte o módulo Security para o comportamento de assinatura em modo FIPS.
Modelo de ameaças
Seção intitulada “Modelo de ameaças”O XML de fatura eletrônica e os bytes C2PA não confiáveis são as entradas primárias. Mitigações: análise segura contra XXE, descompressão limitada, ausência de síntese de declarações através da junção C2PA e ausência de E/S de rede durante a validação.
Contrato de comportamento
Seção intitulada “Contrato de comportamento”LangComplianceReporteremite um registro JSON estruturado por evento de tag de idioma do PDF/UA-2 com a tag infratora, um motivo legível por máquina, os componentes analisados da tag, uma referência à ISO 14289-2 §8.4.4 e um carimbo de data/hora.ConformancePolicyadota por padrão o tratamento estrito de idioma UA-2 e falha de forma segura quando uma tag BCP-47 malformada ou não registrada chega a/Lang. A exclusão permissiva está deprecated e é removida na próxima versão principal.EInvoiceValidatordetecta o perfil, executa o motor de regras de negócio EN 16931 e uma passagem Schematron, e retorna umEInvoiceValidationResult. Ele não é um validador de autoridade fiscal; extensões nacionais estão fora de escopo e o emissor permanece responsável conforme a EN 16931-1.FacturXEmbedderproduz um documento híbrido PDF/A-3 com o XML Factur-X anexado.C2paManifestEmbedderincorpora ou extrai umManifestStorefornecido pelo chamador; ele não sintetiza nem assina declarações.- Este módulo relata o que verifica. Ele não certifica um documento nem garante suficiência regulatória.
Nota sobre o limite do Enterprise
Seção intitulada “Nota sobre o limite do Enterprise”O Compliance no Pro abrange relatório de tags de idioma, verificação EN 16931 / Factur-X / ZUGFeRD e incorporação/extração de manifesto C2PA. Perfis estendidos de arquivamento e assinatura, e a assinatura de declarações C2PA com custódia de chaves, são preocupações de nível Enterprise documentadas separadamente e não são fornecidas por este módulo.
Fallback / alternativa do Core
Seção intitulada “Fallback / alternativa do Core”Não há equivalente no Core para relatório de tags de idioma, tratamento de fatura eletrônica ou incorporação de manifesto C2PA. Esses são acréscimos do Pro.
Limite de publicação
Seção intitulada “Limite de publicação”Esta página documenta apenas o comportamento observável externamente e a superfície pública de API suportada. Caminhos de namespace internos, classes helper, tabelas de mecanismos, nomes de arquivo de runbook e prefixos de ticket estão fora do escopo.
Veja também
Seção intitulada “Veja também”- Security — assinatura e redação.
- Edições Enterprise — perfis estendidos de arquivamento e assinatura.
- Especificações — índice das normas referenciadas.
- Compliance — Referência aprofundada — superfície completa de classes e métodos.