tpOp na NF-e: operação do veículo novo e faturamento direto
<tpOp>det › prod › veicProd › tpOpRevisão editorial em 14 de out. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
tpOp, no grupo veicProd, identifica o tipo da operação com veículo novo. O código diferencia venda concessionária, faturamento direto para consumidor final, venda direta para grandes consumidores e outras operações. Ele deve refletir o negócio documentado; não é um mecanismo para afastar rejeições ou escolher tributação.
O caminho no XML processado é /nfeProc/NFe/infNFe/det/prod/veicProd/tpOp. Sem o envelope nfeProc, a leitura começa em NFe. O namespace é http://www.portalfiscal.inf.br/nfe; consultas XPath precisam associá-lo a um prefixo.
- O que cada código representa
- Aplicação e exemplo do XML
- Faturamento direto e UF de entrega
- Relação com o total vNF
- vItem tem uma regra e um cronograma próprios
- Diagnóstico sem mudar a operação real
O que cada código representa
| Código | Operação descrita no MOC |
|---|---|
| 0 | Outros |
| 1 | Venda concessionária |
| 2 | Faturamento direto para consumidor final |
| 3 | Venda direta para grandes consumidores, como frotista ou governo |
J02 é obrigatório uma vez em veicProd, e o XSD 010f enumera exatamente 0, 1, 2 e 3. “Outros” tem significado próprio; não é substituto de informação desconhecida. O simples fato de o comprador ser pessoa física ou consumidor final não comprova faturamento direto. Confirme emitente, destinatário, cadeia de venda, local de entrega e documentos/contratos da operação com os responsáveis.
Este tpOp descreve a operação do veículo no item. Ele não é ide/tpNF, que distingue entrada e saída da nota, nem ide/finNFe, sua finalidade. Tampouco é a condição de acabamento condVeic ou a condição do chassi VIN.
Aplicação e exemplo do XML
A aplicação é restrita ao detalhamento de veículo novo, no grupo veicProd do item. Dentro desse grupo, o campo ocorre uma vez e é obrigatório; a ausência do grupo em uma operação diferente não torna este filho exigível isoladamente. A regra J01-10, mensagem 736, rejeita o grupo em NFC-e e em NF-e com DANFE Simplificado Tipo 2 (tpImp=6). A ampliação consta da NT 2026.002, com produção prevista em 03/08/2026; ela restringe o grupo inteiro, não o conteúdo deste campo.
Sob a hipótese sintética de faturamento direto documentalmente confirmado, o recorte é:
<tpOp xmlns="http://www.portalfiscal.inf.br/nfe">2</tpOp>
tpOp é o primeiro filho de veicProd, antes de chassi. Os demais filhos obrigatórios foram omitidos; o elemento não é grupo completo ou nota pronta para transmissão. O código 2 deste exemplo não é recomendação para toda venda a consumidor final.
Faturamento direto e UF de entrega
Para NF-e modelo 55 com tpOp=2, a regra C18-20 verifica se a UF do local de entrega, entrega/UF, foi informada. A ausência produz a mensagem 478. A UF é necessária à validação da inscrição estadual do substituto tributário nessas operações, conforme a referência do MOC ao Convênio ICMS 51/00.
Na regra C18-30, se a IEST foi informada, sua validação usa a UF de entrega quando tpOp=2; nos demais casos, usa a UF do destinatário. A mensagem 211 pertence a essa validação de IEST. Assim, 478 e 211 não são erros de enumeração do campo tpOp: indicam relações com entrega e inscrição. MOC 7.0, p. 82.
Confira o local verdadeiro da entrega e o cadastro da inscrição correspondente. Não altere UF ou tipo de operação só para a validação passar. A determinação de responsabilidades, inscrições e tratamento tributário da operação exige os documentos e a análise fiscal específica; o indicador não resolve isso sozinho.
Relação com o total vNF
A regra W16-10, na redação da NT 2023.004 v.1.11, possui uma exceção para faturamento direto de veículos novos com tpOp=2. Ela compara o total vNF com uma composição específica, em vez de aplicar indiscriminadamente a composição geral que inclui vST e vFCPST.
Na exceção 1, a composição documentada é: vProd − vDesc − vICMSDeson + vFrete + vSeg + vOutro + vII + vIPI + vServ, acrescida de PISST/vPIS quando indSomaPISST=1 e de COFINSST/vCOFINS quando indSomaCOFINSST=1. Os valores de PIS-ST e COFINS-ST vêm dos itens e de seus indicadores; não são o PIS e a COFINS próprios dos totais. A parcela vServ corresponde ao total de serviços sob ISSQN, quando existente no contexto admitido.
A exceção 4 de desoneração da mesma regra precisa ser preservada: não rejeitar por falta de subtração de vICMSDeson nos itens cujo indDeduzDeson seja 0 ou não esteja informado. A regra também declara exceção para operações de importação com CFOP iniciado por 3. Essas condições de validação não autorizam escolher o tratamento tributário ou o indicador por conveniência. A mensagem 610 pertence à conferência de vNF, e sua aplicação é facultativa conforme a regra. NT 2023.004 v.1.11, p. 15–16.
Exemplo aritmético sintético: suponha vProd=50000.00, vDesc=1000.00, vFrete=500.00 e as demais parcelas pertinentes iguais a zero explícito, sem PIS-ST/COFINS-ST compondo o total. A composição desse cenário resulta em 50000−1000+500=49500.00. A conta demonstra somente a soma das parcelas assumidas; não define incidência, base, alíquota ou valor de tributo de uma venda real.
vItem tem uma regra e um cronograma próprios
vItem é o total do item, distinto do total da nota vNF. A NT 2025.002 v.1.52 descreve VB01-20 para tpOp=2, com mensagem 1105, e a NT 2026.008 volta a alterar a composição. Ambas mantêm a observação de implementação futura dessas validações; a publicação de uma fórmula não prova sua ativação. Não atribua 1105 diretamente a tpOp nem trate VB01-20 como substituta atual de W16-10.
Além disso, o aviso ENCAT de 05/10/2026 adiou as alterações das versões indicadas das NTs 2025.002, 2026.007 e 2026.008 para 26/10 em homologação e 16/11 em produção. Em 13/10/2026, esses marcos ainda são futuros. Esse aviso não revoga a observação específica de implementação futura de VB01-20. Aviso oficial de 05/10/2026.
Diagnóstico sem mudar a operação real
Se o erro for de schema, confira a enumeração e a posição inicial de tpOp. Para 478, confira entrega/UF; para 211, confira IEST e UF aplicável; para 610, reconcilie as parcelas de vNF e as condições da regra. Para 736, examine modelo e tpImp e a presença do grupo. Registre ambiente, versão e mensagem completa antes de interpretar uma validação RTC.
O MOC também usa tpOp=2 ou 3 em exceções de validações de alíquota interestadual, como N16-04 e N16-20. Isso não fornece uma alíquota alternativa nem autoriza classificar a operação para escapar de uma regra. Leve documentos da venda, entrega, partes e parâmetros fiscais ao responsável pela decisão; depois confira sua representação técnica no XML.
Campos relacionados
Fontes oficiais
- MOC 7.0, Anexo I — 7.00, novembro de 2020: p. 22: grupo JA, campo J02 (tpOp); p. 96 J01-10, complementada pela NT 2026.002; p. 82 C18-20/30; p. 109–110 N16-04/20; p. 122 W16-10, complementada pela NT 2023.004.
- Schemas XML NF-e, PL_010f_v1.04 — 010f v.1.04, publicado em 31/08/2026: declaração veicProd e seus 24 filhos; escolha exclusiva; campos 1-1 na sequência.
- NT 2026.002, DANFE Simplificado Tipo 2 — 1.11, setembro 2026, catálogo 01/10/2026: p. 3 cronograma; p. 12 J01-10/736.
- NT 2023.004, Informações de pagamentos e outros — 1.11, março 2024: p. 15–16 W16-10, exceção 1 de faturamento direto, exceções de desoneração.
- NT 2025.002, Reforma Tributária do Consumo — 1.52, setembro 2026, catálogo 01/10/2026: p. 68–69 VB01-10/20; implementação futura expressa.
- NT 2026.008, Valor líquido do produto — 1.00, setembro 2026, catálogo 01/10/2026: p. 3 cronograma original; p. 8–10 VB01-10/20, implementação futura; adiamento no aviso 05/10.
- Tipos básicos do schema NF-e — PL_010f_v1.04: tipo TString: whiteSpace preserve e padrão sem espaços nas extremidades.
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/det/prod/veicProd/tpOp- 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
- inline:xs:string · 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.
- enumeration
0- enumeration
1- enumeration
2- enumeration
3- whiteSpace
preserve