Guias
Troca e devolução no e-commerce: como emitir a nota fiscal de devolução sem erro

O cliente comprou no mês passado e pediu troca? Veja por que você não pode cancelar a nota antiga e como emitir a nota fiscal de devolução de forma correta e sem erro na SEFAZ.
Um dos cenários mais comuns no dia a dia de qualquer loja virtual é o cliente solicitar a troca ou devolução de um produto dias ou semanas após a compra. A dúvida que surge para muitos empreendedores e desenvolvedores é: como fazer isso fiscalmente se a nota fiscal já foi autorizada no mês passado?
Como os grandes e-commerces fazem: o fluxo com nota fiscal de devolução
A operação de troca ou devolução no Brasil é resolvida através de duas etapas fiscais bem definidas, usando a nota fiscal de devolução:
- Etapa 1 — Nota Fiscal de Devolução (Entrada): Sua própria empresa emite uma nota fiscal de devolução de entrada para o CPF do cliente. Ela serve para anular o imposto da venda anterior e registrar a reentrada da mercadoria no seu estoque.
- Etapa 2 — Nova Nota Fiscal de Saída: Quando você for despachar o novo item (outro tamanho, modelo ou cor), emite-se uma nova NF-e de saída normal para acompanhar o transporte da mercadoria.
Estrutura da Nota Fiscal de Devolução (Etapa 1)
Como o cliente final (Pessoa Física) não emite nota fiscal, a sua loja emite a nota fiscal de devolução com as seguintes regras obrigatórias da SEFAZ:
- Tipo de Operação: 0 (Entrada).
- Finalidade da Emissão: 4 (Devolução de mercadoria).
- Natureza da Operação: "DEVOLUCAO DE MERCADORIA" ou "DEVOLUCAO DE VENDA DE MERCADORIA".
- CFOP do Item: 1.202 ou 1.201 (venda interna) e 2.202 ou 2.201 (venda interestadual).
- Chave de Acesso Referenciada (nfeReferenciada): É obrigatório vincular por item a chave de 44 dígitos da nota de venda original e o número do item correspondente (nItem) no grupo <det><DFeReferenciado> (NT 2025.002-RTC / Regra VC02-14).
- Forma de Pagamento: tPag 90 (Sem Pagamento) com valor = 0.00 obrigatoriamente (regras SEFAZ YA02-20 e W16c). Atenção: informar o valor dos produtos em tPag 90 gera rejeição imediata da SEFAZ!
1. Exemplo de Envio Manual via POST /v1/nfe (Request Payload)
Se a venda original foi faturada em outro ERP ou sistema legado e você possui apenas a chave de 44 dígitos da nota antiga, este é o JSON que seu sistema deve enviar no corpo da requisição (Request Body) para a rota POST /v1/nfe:
Observe que o campo de pagamentos nem precisa ser enviado no payload de requisição: na API NFER, notas com finalidade 4 (Devolução) têm o grupo de pagamentos preenchido automaticamente com forma "90" (Sem Pagamento) e valor 0.00, garantindo conformidade sem rejeições.
2. Resposta da API ao criar a nota (Response 201 Created)
Após processar o envio acima, a API NFER valida os dados, monta os grupos fiscais da SEFAZ e retorna o seguinte JSON de resposta (Response Body), com a nota em status de rascunho (draft) pronta para envio:
Como o NFER automatiza a devolução completa em 1 chamada (sem montar JSON manual)
Se a venda original já foi autorizada no NFER, você não precisa montar o payload acima nem cadastrar produtos e tributos manualmente. Basta enviar uma chamada simples com o ID da nota original autorizada:
Ao receber essa chamada, o NFER realiza todo o trabalho pesado por debaixo dos panos:
- Inverte automaticamente a operação de Saída (1) para Entrada (0).
- Mapeia os CFOPs de venda (5102, 6102, 5405) para os CFOPs correspondentes de devolução (1202, 2202, 1411).
- Vincula a chave de 44 dígitos e o nItem de cada produto no grupo <det><DFeReferenciado> em conformidade com a NT 2025.002-RTC (Regra VC02-14), eliminando de vez as Rejeições 321 e 1010.
- Enquadra automaticamente o grupo de pagamentos em tPag = "90" com valor = 0.00 (na API do NFER, o bloco de pagamentos é 100% opcional na criação de devoluções).
- Entrega a nota fiscal de devolução 100% pronta como rascunho para envio imediato à SEFAZ.
A resposta da chamada traz os dados da nova NF-e de devolução vinculada à nota original:
Devolução Parcial: devolvendo apenas itens ou quantidades específicas
Se o cliente comprou 3 itens na mesma compra, mas pediu devolução ou troca de apenas 1, você não precisa fazer cálculos complexos nem cadastrar a nota do zero. Basta passar o array de itens no corpo da requisição:
Exemplo da chamada completa via cURL com o payload de devolução parcial:
O NFER valida que o item existe na nota de venda original, garante que a quantidade devolvida não excede a quantidade faturada, recalcula os valores proporcionais e ancora o nItem exato no XML autorizado.
Assistente Expresso no Painel NFER: devolução com 1 clique
Para lojistas e operadores que preferem utilizar o painel web em vez da API REST, o NFER conta com o Assistente Expresso de Devolução diretamente na listagem de Notas Fiscais:
- Emissão em 1 Clique: gere e transmita a devolução total da nota fiscal autorizada com um único clique.
- Seleção Visual de Itens: selecione quais produtos devolver através de checkboxes, defina a quantidade desejada de cada item e acompanhe o recálculo do valor total em tempo real.
- Edição Avançada: se precisar ajustar transportadora, volume ou dados adicionais do frete, acesse o editor completo com todos os dados da nota original já pré-preenchidos.
Veja a documentação de Nota de Devolução
Confira exemplos em código cURL, Node.js, Python e o guia completo de endpoints na documentação técnica.
Abrir docs de Nota de Devolução












