CNPJ em infRespTec: empresa responsável pelo software
<CNPJ>infRespTec › CNPJRevisão editorial em 14 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
CNPJ, em infRespTec, identifica a empresa responsável tecnicamente pelo sistema emissor. É uma ocorrência própria do CNPJ no XML: não deve ser preenchida automaticamente com o CNPJ do emitente, do destinatário ou do escritório contábil sem comprovar que essa empresa exerce o papel técnico documentado.
Caminho desta página: /nfeProc/NFe/infNFe/infRespTec/CNPJ. O prefixo nfeProc identifica a nota processada; a informação estudada pertence ao conteúdo da NF-e, dentro de NFe/infNFe.
Formato admitido e validade do cadastro
O pacote PL 010f v1.04 usa TCnpjOpc nessa declaração. O tipo admite estrutura de 14 posições, com as 12 primeiras alfanuméricas maiúsculas e as duas últimas numéricas, além da alternativa lexical vazia prevista nesse tipo. Isso não torna um CNPJ vazio válido para a regra de negócio: ZD02-10/973 trata CNPJ nulo, zerado ou com dígito verificador inválido.
Pontuação de máscara, espaços e letras minúsculas não substituem a forma aceita pelo XSD. O suporte estrutural alfanumérico não dispensa a validação do identificador e do vínculo. XSD PL 010f e NT 2018.005 v1.52, p. 22.
Exemplo exclusivamente estrutural
A alternativa vazia do tipo pode ser observada no fragmento abaixo:
<CNPJ xmlns="http://www.portalfiscal.inf.br/nfe"/>
Este exemplo é intencionalmente limitado: demonstra a diferença entre forma XSD e regra cadastral. Não é um preenchimento operacional, não identifica empresa e não é XML completo da NF-e. A regra 973 pode rejeitar o valor nulo quando aplicável. No documento real, a origem deve fornecer o identificador verdadeiro da empresa responsável pelo software.
CNPJ inválido e CNPJ divergente são problemas diferentes
A mensagem 973 está vinculada à validade do identificador. Já 7ZD02-10/974 compara o CNPJ do responsável com o cadastrado para o emitente. Um CNPJ com formato e dígitos válidos pode pertencer ao fornecedor errado ou não corresponder ao vínculo oficial.
A NT v1.52 documenta 7ZD02-10 para PR/modelo 55 desde 16/09/2024 em homologação e 01/05/2025 em produção, com modelo 65 em implementação futura. As exceções abrangem NFF (tpEmis=3) e SVC (7 ou 8). A validação não se resume a comparar o CNPJ do software com o CNPJ do emitente: são papéis diferentes. NT v1.52, p. 24.
Roteiro para uma correção comprovada
Leia o CNPJ no XPath técnico e compare-o com o cadastro do fornecedor do software e o vínculo registrado para o emitente/UF/ambiente. Se houver mudança de sistema, confira a atualização oficial e a vigência; não reutilize credenciais de outro fornecedor apenas porque eliminam a mensagem.
Para erro de formato, remova a máscara na transformação preservando todos os caracteres do identificador verdadeiro. Para divergência cadastral, confirme qual configuração ou cadastro está errado antes de alterar qualquer CNPJ. Depois gere e valide novamente antes de assinar. O campo identifica responsabilidade técnica, sem definir regime fiscal ou comprovar autorização da nota.
Fontes oficiais
- Leiaute NF-e/NFC-e — PL_010f_v1.04: TInfRespTec/CNPJ l7356–7360; TCnpjOpc em tiposBasico
- Tipos básicos NF-e/NFC-e — PL_010f_v1.04: TCnpjOpc, linhas 109–117; TString e restrições textuais.
- NT 2018.005 — responsável técnico — 1.52, julho/2025: Cronograma, p. 4; CSRT e geração, p. 8–10; regras ZD07-10 e 7ZD02/08/09, p. 23–25.
- MOC 7.0 — Anexo I — 7.00, novembro/2020: Grupo ZD, p. 65; regras de responsável técnico, p. 128.
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/infRespTec/CNPJ- Namespace
http://www.portalfiscal.inf.br/nfe- Leiaute
- 4.00 · PL_010e_v1.02
- Ocorrências no XSD
- 1–1 no contexto do elemento pai
- Tipo
- TCnpjOpc · string
- Preenchimento no catálogo
- Condicional
A ocorrência vale dentro da estrutura XML: um campo obrigatório em um grupo opcional não torna esse grupo obrigatório. A aplicação fiscal depende da operação e da versão da regra.
- maxLength
14- pattern
[0-9]{0}|[0-9A-Z]{12}[0-9]{2}- whiteSpace
preserve