Pular para o conteúdo
Fiscal ProBiblioteca
NF-e e NFC-e · Transporte

modFrete na NF-e: códigos 0, 1, 2, 3, 4 e 9 explicados

<modFrete>transp › modFrete

Revisã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