NFER

Fiscal

Como é Feito o Rateio do Frete na NF-e? Fórmula, Exemplo Prático e Como Evitar a Rejeição 533

Como é Feito o Rateio do Frete na NF-e? Fórmula, Exemplo Prático e Como Evitar a Rejeição 533

Entenda como funciona o rateio proporcional de frete na NF-e (modelo 55): cálculo sobre valor líquido dos itens, tratamento de dízimas e centavos, impacto no ICMS/PIS/COFINS e como a API NFER automatiza a distribuição sem Rejeição 533.

·6 min de leitura

Ao vender produtos pela internet ou emitir uma Nota Fiscal Eletrônica (NF-e, modelo 55) que envolva entrega cobrada do destinatário, muitos empresários e desenvolvedores se deparam com uma exigência técnica da Secretaria da Fazenda (SEFAZ): o valor do frete não pode constar apenas no valor total da nota. Ele deve ser rateado e detalhado individualmente em cada um dos itens faturados.

Esse processo é conhecido como rateio do frete. Se a divisão entre os produtos não for feita com rigor matemático — especialmente no tratamento de frações de centavos e abatimento de descontos —, a SEFAZ bloqueia a autorização da nota com a Rejeição 533 (Total do Frete difere do somatório dos itens) ou a Rejeição 534 (Total da NF-e difere do somatório dos itens).

O Que É e Como Funciona o Rateio do Frete?

O rateio do frete consiste em distribuir o custo total de entrega pago pelo cliente entre todos os produtos que compõem o carrinho de compras. Essa distribuição é realizada de maneira proporcional à participação financeira líquida de cada mercadoria no pedido.

A fórmula padrão adotada pelo fisco e pelas melhores práticas contábeis é:

Exemplo Prático Passo a Passo

Imagine uma compra de informática em um e-commerce com 3 produtos e frete de R$ 30,00:

  • Item 1 (Teclado Mecânico): R$ 100,00
  • Item 2 (Mouse Gamer): R$ 60,00
  • Item 3 (Monitor Ultrawide): R$ 140,00
  • Valor Total dos Produtos: R$ 300,00 (R$ 100,00 + R$ 60,00 + R$ 140,00)
  • Valor Total do Frete (vFrete da Nota): R$ 30,00

Aplicando a fórmula para descobrir a tag <vFrete> de cada item no XML da NF-e:

  1. Item 1: (R$ 100,00 / R$ 300,00) × R$ 30,00 = 0,3333... × R$ 30,00 = R$ 10,00
  2. Item 2: (R$ 60,00 / R$ 300,00) × R$ 30,00 = 0,2000 × R$ 30,00 = R$ 6,00
  3. Item 3: (R$ 140,00 / R$ 300,00) × R$ 30,00 = 0,4666... × R$ 30,00 = R$ 14,00

Ao somar os valores rateados: R$ 10,00 + R$ 6,00 + R$ 14,00 = R$ 30,00. A soma fecha perfeitamente com o total da entrega, e a NF-e é autorizada sem qualquer divergência.

O Grande Desafio de Engenharia: A Armadilha das Dízimas e Centavos

No mundo real do comércio eletrônico e do varejo, os números quase nunca são redondos. O que acontece quando um frete de R$ 10,00 precisa ser dividido entre 3 produtos de R$ 50,00 cada?

  • Item 1: (50 / 150) × 10 = R$ 3,3333... → arredondado para R$ 3,33
  • Item 2: (50 / 150) × 10 = R$ 3,3333... → arredondado para R$ 3,33
  • Item 3: (50 / 150) × 10 = R$ 3,3333... → arredondado para R$ 3,33

Se o sistema somar os itens arredondados: R$ 3,33 + R$ 3,33 + R$ 3,33 = R$ 9,99. O frete total informado na capa da nota foi de R$ 10,00. Resultado? Rejeição 533 imediata da SEFAZ, pois existe uma diferença de R$ 0,01.

Como o NFER Executa o Rateio no Código

Em nossa infraestrutura interna (distributeValorFreteToItems), consideramos a base líquida real de cada item — subtraindo descontos incondicionais (vDesc) antes de calcular o percentual de rateio:

1
2
3
4
5
6
7
8
9
10
11
12
// Cálculo de base líquida por item no NFER
const bases = itens.map((it) => {
const bruto = Number(it.quantidade) * Number(it.valorUnitario);
const desc = Number(it.valorDesconto) || 0;
return Math.max(0, bruto - desc); // Frete incide sobre o valor líquido
});
const sumBase = bases.reduce((a, b) => a + b, 0);
let remaining = valorFreteNota;
return itens.map((it, idx) => {
// No último item, absorve o resíduo exato de centavos

Rateio Automático vs Frete Manual por Item na API NFER

A API REST do NFER oferece flexibilidade total para desenvolvedores e softwares de ERP:

Cenário de EnvioComo Funciona na API NFERQuando Utilizar
Frete Global na Raiz (valorFrete / vFrete)O NFER calcula o rateio líquido automático e faz a equalização de centavos em todos os itens.Checkouts de e-commerce, VTEX, Shopify, Nuvemshop ou WooCommerce onde o frete é único no carrinho.
Frete Individual nos Itens (itens[].valorFrete)Se você já calculou o frete item a item na sua TMS ou transportadora, o NFER preserva os seus valores e não sobrescreve.Sistemas WMS e logísticos avançados com regras de frete por peso, cubagem ou múltiplos centros de distribuição.
Frete dentro de transporte (transporte.valorFrete)Compatibilidade total com o layout do grupo de transporte da NF-e.ERPs legados que agrupam dados de frete no bloco de transportadora.

Exemplo de Payload na API REST do NFER

Basta enviar o valorFrete na raiz do documento. Você não precisa calcular frações decimais manualmente no seu código:

1
2
3
4
5
6
7
8
9
10
11
12
{
"naturezaOperacao": "Venda de Mercadoria",
"tipoOperacao": "1",
"finalidade": 1,
"valorFrete": 30.00,
"itens": [
{
"codigo": "PRD-01",
"descricao": "Teclado Mecânico",
"ncm": "84716052",
"cfop": "5102",
"quantidade": 1,

O NFER gera o XML oficial da SEFAZ com <vFrete>10.00</vFrete>, <vFrete>6.00</vFrete> e <vFrete>14.00</vFrete> em cada nó <prod>, posicionados rigorosamente na sequência exigida pelo XSD antes de <indTot>.

Perguntas Frequentes (FAQ)

O frete entra na base de cálculo do ICMS?

Sim. De acordo com a Lei Complementar 87/96 (art. 13, § 1º, II, "a"), o frete cobrado pelo emitente ao adquirente integra a base de cálculo do ICMS. O mesmo vale para o IPI, PIS e COFINS nas operações tributadas.

Posso ratear o frete pelo peso em vez do valor?

Para fins de precificação comercial interna ou contratos com transportadoras, o rateio por peso é bastante utilizado. No entanto, perante o fisco e para preenchimento dos campos da NF-e, o rateio proporcional ao valor das mercadorias é a regra padrão que assegura proporcionalidade direta com a base tributável dos produtos.

E se um produto tiver frete grátis e outro não no mesmo pedido?

Nesse caso específico, você deve informar o valor do frete manualmente nos itens correspondentes (itens[].valorFrete), deixando o item com frete grátis zerado. O NFER respeitará a distribuição manual fornecida pelo seu sistema.

Simplifique a emissão de NF-e e o rateio de frete com o NFER

Engine fiscal com rateio inteligente, tratamento automático de centavos, assinatura A1 e integração via API REST em minutos.

Testar gratuitamente em homologação

Posts recentes

Ver todos