modFrete na NF-e: códigos 0, 1, 2, 3, 4 e 9 explicados
<modFrete>transp › modFreteRevisão editorial em 26 de set. de 2026. As versões e condições das regras estão indicadas ao longo do artigo.
modFrete informa a modalidade de frete em transp: contratação por conta do remetente, destinatário ou terceiros, transporte próprio ou ausência de transporte. Ele não registra o valor do frete e não identifica a transportadora. A informação precisa representar o acordo e a movimentação reais da operação.
O campo é obrigatório uma vez em /nfeProc/NFe/infNFe/transp/modFrete. Seu conteúdo é um dos códigos do leiaute, sem legenda dentro da tag. MOC, X02, p.60.
O significado de cada código
| Código | Significado no leiaute | Distinção a conferir |
|---|---|---|
| 0 | Contratação do frete por conta do remetente, descrita como CIF | Quem assume a contratação |
| 1 | Contratação do frete por conta do destinatário, descrita como FOB | A contratação cabe ao destinatário |
| 2 | Contratação do frete por conta de terceiros | Terceiro distinto dessas partes |
| 3 | Transporte próprio por conta do remetente | Transporte próprio, em vez de contratação |
| 4 | Transporte próprio por conta do destinatário | Transporte próprio pelo destinatário |
| 9 | Sem ocorrência de transporte | Ausência de transporte, não apenas de cobrança |
Não há código 5, 6, 7 ou 8 nesse domínio. As siglas CIF e FOB aparecem na descrição oficial dos códigos; isso não transforma o campo numa declaração completa de todos os termos de um contrato internacional.
Frete grátis, retirada e transporte próprio
“Frete grátis” é uma descrição comercial. Ela não prova modFrete=9: pode existir transporte com custo assumido por uma parte e sem cobrança separada ao comprador. Da mesma forma, retirada no estabelecimento não determina automaticamente o código. É necessário identificar se houve transporte, quem o realizou e se houve contratação ou transporte próprio.
A distinção entre 0 e 3, ou entre 1 e 4, não pode ser feita só olhando quem paga. As duas primeiras modalidades descrevem contratação; as outras, transporte próprio. Confira contrato, pedido, documentos de expedição e informação da parte responsável. Não escolha um código apenas porque o emissor deixou esse valor como padrão.
transporta responde quem transporta, enquanto modFrete responde a modalidade. det/prod/vFrete e o total de frete respondem valores. A existência de um desses dados não calcula automaticamente os demais.
Dois exemplos que representam situações diferentes
Fragmentos parciais e sintéticos, não prontos para transmissão:
<!-- Hipótese: contratação por conta do remetente -->
<transp xmlns="http://www.portalfiscal.inf.br/nfe">
<modFrete>0</modFrete>
</transp>
<!-- Hipótese: transporte próprio por conta do remetente -->
<transp xmlns="http://www.portalfiscal.inf.br/nfe">
<modFrete>3</modFrete>
</transp>
Nos dois casos a responsabilidade está ligada ao remetente, mas a forma de transporte é diferente. Os fragmentos não escolhem modalidade para sua operação nem estabelecem dispensa dos outros grupos em situações que os exijam. Mesmo sem transporte, o XML conserva o grupo com <modFrete>9</modFrete>; retirar transp não é equivalente a informar esse código.
Rejeição 753: modelo, impressão e presença
X02-10 verifica modFrete diferente de 9 combinado com indPres diferente de 4 na NFC-e. indPres=4 identifica entrega em domicílio. A NT 2026.002 v1.10a, p.19 amplia a condição para NF-e modelo 55 com DANFE Simplificado Tipo 2, tpImp=6. O código de rejeição é 753. A linha de cronograma que contém X02-10 registra teste em 01/07/2026 e produção em 03/08/2026; não representa consulta operacional da UF.
Para diagnosticar, confira esses três campos na mesma nota enviada. Se o indicador de presença não corresponde ao atendimento real, corrija sua origem com evidência. Se modalidade ou tipo de documento não correspondem à operação, confirme essa definição antes da geração. Não troque indPres para 4 nem a modalidade para 9 apenas para passar pela validação.
A regra não significa que modFrete=9 torna todos os demais dados de transporte automaticamente válidos. Retenção, veículo, reboque, vagão e balsa têm suas próprias vedações nesses modelos.
Relação com a previsão de entrega
A NT 2025.002 v1.51, regra B10a-50, p.32, documenta para a NF-e modelo 55 que a data de previsão de entrega, ide/dPrevEntrega, é proibida quando a modalidade é 1, 4 ou 9, com rejeição 1157. A linha dessa regra não apresenta exceção própria. O cronograma da versão 1.30 inclui B10a-50 no conjunto com teste até 24/11/2025 e produção em 02/02/2026; esse é seu marco documental, sem prova de implantação consultada por UF. É uma validação sobre a data, condicionada ao código do frete; não é uma nova definição dos códigos. A regra vizinha B10a-40 verifica separadamente a finalidade da nota e permite a previsão somente para normal ou devolução; satisfazer essa finalidade não libera as modalidades vedadas por B10a-50. Para um retorno relacionado, confira modalidade, finalidade, presença de dPrevEntrega e regra aplicável ao ambiente. A simples existência do campo no schema não comprova sua implantação.
Conferência técnica antes de gerar novamente
Verifique se o valor é um único código permitido, se está dentro de transp e se a serialização não escreveu “CIF”, “FOB” ou o número com espaços. Depois compare a modalidade com a contratação e a expedição documentadas. Quando houver rejeição, guarde código e mensagem, modelo, tpImp, indPres e os campos relacionados do XML enviado.
A confirmação fiscal do documento e das obrigações da operação não se resolve pelo preço do frete. Após a modalidade definida com os fatos e o responsável pertinente, confira a representação no XML. Preserve o documento autorizado e não edite XML assinado. Veja também o grupo completo de transporte.
Referência técnica para integração
- XPath completo
/nfeProc/NFe/infNFe/transp/modFrete- 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
- Obrigatório
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- enumeration
4- enumeration
9- whiteSpace
preserve