---
id: varejo/fiscal-por-item
industria: Varejo e e-commerce
uso: comum
esforco: alto
grao: Item de cupom ou de nota (loja + PDV + cupom + data + sequencial, ou chave de acesso + item)
---

# Fiscal por item

Cada item de cupom NFC-e e de NF-e com ICMS, PIS, COFINS e os tributos da Reforma, o CFOP e o status na SEFAZ, batendo com o total fiscal do dia e sem contar remessa, kit ou cancelamento como venda.

## Resumo executivo

**Para quem:** Áreas fiscal, contábil e de dados de redes de lojas e e-commerces que precisam do imposto de cada item vendido.

**O que resolve**

- O imposto de cada item, nota e loja sai de uma base só, que bate com o total fiscal do dia.
- Cupons cancelados, rejeitados e em contingência ficam separados dos autorizados.
- Remessa, transferência, bonificação e componente de kit deixam de entrar como venda.

**Por que importa:** O fiscal trabalha com milhões de itens por ano espalhados em logs do PDV, notas do ERP e retornos da SEFAZ, cada um com sua chave. Um cruzamento errado mistura itens de cupons de anos diferentes, um cancelamento mal lido some com venda válida, e a soma da nota repetida em cada item infla o imposto. Com a Reforma Tributária, IBS e CBS passam a conviver com ICMS, PIS e COFINS, e a simulação só é confiável se o item estiver certo.

**Perguntas de negócio que responde**

- Quanto pagamos de ICMS, PIS e COFINS por loja e por mês, e qual a carga sobre a venda?
- Quantas NFC-e distintas cada CNPJ emitiu por ano?
- Quais itens estão em revisão fiscal e por quê?
- A venda fiscal de cada loja bate com o total do dia no PDV?
- Quanto o IBS e a CBS representariam sobre a venda de cada loja?
- Quais produtos têm NCM, CEST ou CST faltando no cadastro?

**O que você precisa**

- As tabelas de cupom, item, NFC-e e eventos do PDV, ou as NF-e do ERP, conectadas na Nekt
- O cadastro de produto com NCM, CEST e CST, e o de loja com UF, CNPJ e regime tributário
- A lista de CFOPs de venda e o significado dos códigos de cancelamento, validados com o fiscal

**O que você recebe**

- Uma tabela por item com valores, impostos, CFOP, chave de acesso e status fiscal
- Conferência diária por loja contra o total fiscal do dia, com as diferenças listadas
- Relatório mensal por CNPJ com imposto por tributo e carga tributária
- Lista de revisão com itens rejeitados, cancelamentos atípicos e produtos sem cadastro fiscal

## Detalhado

### O problema

O PDV grava o item vendido numa tabela, o imposto do item em outra, o cabeçalho da NFC-e e o retorno da SEFAZ em uma terceira, e o número do cupom recomeça depois de um tempo. As flags de cancelamento têm mais de dois valores e o código de retorno da SEFAZ nem sempre conta a história inteira. No ERP, a nota tem itens de kit sem CFOP, notas de remessa no meio das de venda e totais de imposto no cabeçalho. Quem cruza pelo número do cupom, conta todo cancelamento como perda e soma o imposto do cabeçalho em cada item entrega um relatório que o fiscal não consegue usar.

### Regras de negócio

1. **O item tem chave completa.** No cupom, o grão é loja + PDV + número do cupom + data do movimento + sequencial do item. O número do cupom é um contador cíclico que recomeça por loja e PDV ao longo dos anos, e outros campos de evento repetem o mesmo ciclo. Valide a chave com contagem distinta na tabela inteira antes de usar. Na NF-e, o grão é chave de acesso + número do item. Toda deduplicação fica com o registro mais recente do log (maior NSU do evento). (Evite: Cruzar item e cabeçalho por loja + número do cupom.)
2. **A chave de acesso diz quem emitiu e o modelo.** A chave de 44 dígitos traz a UF (posições 1 e 2), ano e mês (3 a 6), o CNPJ do emitente (7 a 20), o modelo (21 e 22: 55 para NF-e, 65 para NFC-e), a série (23 a 25) e o número (26 a 34). Use o CNPJ e o modelo da chave para contar notas distintas por estabelecimento e ano, e o CNPJ da loja no cadastro só como conferência. (Evite: Contar notas pelo número da nota ou por linhas de item.)
3. **Status fiscal conservador, em duas classes.** Autorizado = cupom e item sem nenhuma marca de cancelamento e retorno da SEFAZ sem indício de rejeição no texto. Todo o resto vai para Requer revisão fiscal: cancelamento parcial, denegado, inutilizado, contingência e rejeição. A flag de cancelamento pode ter quatro valores e não é booleana, e o código de retorno de sucesso pode vir junto com texto de rejeição, então leia o texto. Guarde os campos brutos no fato para investigação e só abra novas classes quando o fiscal validar cada código. (Evite: Tratar a flag de cancelamento como sim ou não e confiar só no código de retorno.)
4. **Três cancelamentos diferentes.** Cupom inteiro cancelado no PDV (grão cupom), item cancelado dentro de um cupom válido (grão item) e tentativa de cancelar a NFC-e rejeitada pela SEFAZ por prazo legal (retorno 501, grão nota) são fatos diferentes. A maioria das tentativas rejeitadas é de cupons que continuaram válidos e são venda. Cada um vai para uma tabela ou coluna própria. (Evite: Contar toda tentativa de cancelamento como cupom cancelado.)
5. **CFOP separa venda do que não é venda.** Marque cada item com uma flag de CFOP de venda a partir de uma lista mantida com o fiscal. Remessa para armazém de marketplace (5.949), simples faturamento de entrega futura (5.922), transferência entre filiais (5.152) e bonificação (5.910) ficam fora da venda. Na entrega futura, conte uma das duas notas, nunca as duas: nos casos reais, a nota de simples faturamento fica fora e a de entrega (5.116, 5.117, 6.116, 6.117) entra. (Evite: Somar todas as notas de saída como venda.)
6. **Kit tem o CFOP no componente.** Em pedidos e notas de kit, o item pai vem sem CFOP e os componentes carregam o CFOP e o valor. Somar todos os itens dobra o valor do kit. A venda fiscal soma só os itens com CFOP de venda. (Evite: Somar o valor total do documento ou todos os itens do kit.)
7. **Imposto vem do item, nunca da nota repetida.** Use os valores de imposto do item: ICMS (com CST e base), PIS e COFINS (com CST e base), e, da Reforma, IBS estadual, IBS municipal, CBS e Imposto Seletivo, cada um com sua coluna e o CST de IBS e CBS. Os totais do cabeçalho da nota servem só para conferir: a soma dos itens tem de bater com eles. DIFAL fica em coluna própria, fora do ICMS geral. (Evite: Levar o total de imposto do cabeçalho para cada item.)
8. **O total fiscal do dia é a autoridade.** Por loja e dia, compare a soma dos itens autorizados com o total fiscal do dia do PDV (a redução Z). Diferenças pequenas são esperadas quando o desconto de item fica numa coluna separada do log de cupom. Antes de somar qualquer view do PDV, confira o grão: há views que repetem a mesma linha várias vezes, e uma diferença em múltiplo inteiro é sinal de linha duplicada no cruzamento. (Evite: Somar views do PDV direto e publicar sem conferir com o total do dia.)
9. **Loja e produto trazem o contexto fiscal.** A dimensão de loja traz UF, CNPJ, inscrição estadual e regime tributário (CRT); a UF é necessária para separar IBS estadual de municipal. A dimensão de produto traz NCM, CEST, classificação e os CST de IBS, CBS e Imposto Seletivo, com uma linha por produto pela alteração mais recente. Produto vendido sem NCM ou CST vai para a lista de revisão, nunca para um padrão. (Evite: Assumir a UF da matriz para todas as lojas e preencher NCM vazio com um padrão.)
10. **Correção de produto só na assinatura do defeito.** Quando o PDV grava o código de barras no lugar do código interno do produto, resolva pelo de-para de automação da origem, e só quando a linha tem a assinatura exata do defeito (códigos de automação zerados) e existe correspondência. Marque o item com uma flag de produto corrigido. Qualquer outro produto sem cadastro continua nulo para revisão. (Evite: Casar todo produto não encontrado com a base de códigos de barras.)

### Como cada CFOP entra na venda fiscal

Lista inicial dos casos reais; o fiscal valida e completa.

- **5.101, 5.102, 6.101, 6.102** → Venda de produção ou revenda (`cfop_de_venda = true`)
- **5.401, 5.405, 6.401, 6.404** → Venda com substituição tributária (`cfop_de_venda = true`)
- **6.107, 6.108** → Venda interestadual a não contribuinte (`cfop_de_venda = true`)
- **5.116, 5.117, 6.116, 6.117** → Entrega de venda futura, conta como venda (`cfop_de_venda = true`)
- **5.922** → Simples faturamento de entrega futura, fora (`cfop_de_venda = false`)
- **5.949** → Remessa para armazém de marketplace, fora (`cfop_de_venda = false`)
- **5.152** → Transferência entre filiais, fora (`cfop_de_venda = false`)
- **5.910** → Bonificação ou brinde, fora (`cfop_de_venda = false`)
- **Item pai de kit sem CFOP** → Fora; o componente carrega a venda (`cfop nulo`)

### Definições

| Métrica | Definição |
|---|---|
| Venda fiscal | soma de preço total menos desconto dos itens autorizados com CFOP de venda, por loja (CNPJ) e dia ou mês |
| ICMS do período | soma do ICMS dos itens autorizados com CFOP de venda, por CNPJ e mês; DIFAL em coluna separada |
| PIS e COFINS do período | soma do PIS e da COFINS dos itens autorizados com CFOP de venda, por CNPJ e mês |
| IBS e CBS | soma do IBS estadual, do IBS municipal e da CBS dos itens, cada um em sua coluna, por CNPJ e mês |
| Carga tributária | soma dos impostos do recorte / venda fiscal do recorte, recalculada a partir das somas |
| Notas distintas | contagem distinta da chave de acesso por CNPJ do emitente, modelo (55 ou 65) e período |
| Itens em revisão | itens com status Requer revisão fiscal / total de itens, por loja e dia |
| Diferença para o total do dia | venda fiscal dos itens autorizados menos o total fiscal do dia do PDV, por loja e dia |

### Armadilhas

- **Itens de anos diferentes no mesmo cupom.** A base cruzava itens e cabeçalhos por loja e número do cupom. Como o número recomeça, itens de cupons de anos diferentes foram juntados. Trocar por campos de evento não resolveu, porque eles reciclam do mesmo jeito. Como evitar: Chave com PDV e data do movimento, validada por contagem distinta em toda a tabela.
- **Sucesso com rejeição no texto.** Milhares de linhas traziam o código de retorno de sucesso junto com um texto de rejeição da SEFAZ. Classificar só pelo código colocava essas notas como autorizadas. Como evitar: Leia o texto do retorno e mande qualquer indício de rejeição para revisão.
- **Cancelamento que não aconteceu.** Tentativas de cancelar NFC-e fora do prazo legal, rejeitadas pela SEFAZ, foram contadas como cupons cancelados. Na maioria, o cupom seguia válido e a venda sumiu do relatório. Como evitar: Separe a tentativa rejeitada do cancelamento efetivo.
- **Kit em dobro.** O valor dos pedidos de kit entrava duas vezes, porque o item pai, sem CFOP, era somado junto com os componentes. Como evitar: Some só itens com CFOP de venda.
- **Desconto multiplicado.** Uma view de desconto por item do PDV repetia a mesma linha até cinco vezes, e a soma direta inflava o desconto em cerca de 2,5 vezes. Como evitar: Deduplique pelo grão do item e confira com o total fiscal do dia.
- **Produto sem cadastro que existia.** Num único dia e loja, o PDV gravou o código de barras no lugar do código interno em algumas centenas de itens, e produtos ativos apareceram como sem cadastro no relatório fiscal. Como evitar: Corrija pelo de-para de automação só quando a linha tem a assinatura do defeito, e marque o item.

### Teste de aceitação

- [ ] A contagem distinta de (loja, PDV, cupom, data, sequencial) é igual ao número de linhas da tabela de itens.
- [ ] Para cada loja e dia de um mês fechado, a venda fiscal dos itens autorizados bate com o total fiscal do dia do PDV dentro da tolerância declarada, e cada diferença acima dela está listada.
- [ ] O número de notas distintas por CNPJ, modelo e ano bate com o relatório de escrituração ou da SEFAZ.
- [ ] Para uma amostra de NF-e, a soma do ICMS, PIS e COFINS dos itens é igual ao total de impostos do cabeçalho.
- [ ] Nenhum item com CFOP fora da lista de venda, nem item pai de kit, entra na venda fiscal.

### Context document

```text
Fiscal por item (varejo)
- Grão: item de cupom (loja + PDV + cupom + data + sequencial) ou item de NF-e (chave de acesso + item). O número do cupom recicla: nunca cruze sem PDV e data.
- Chave de acesso: posições 7 a 20 = CNPJ do emitente; 21 a 22 = modelo (55 NF-e, 65 NFC-e). Conte notas pela chave distinta.
- Status fiscal: 1 = Autorizado (sem cancelamento no cupom e no item e sem indício de rejeição no texto da SEFAZ); 99 = Requer revisão fiscal (todo o resto). Não decodifique os valores 1, 2 e 3 da flag de cancelamento sem validação do fiscal.
- Cancelamento de cupom, de item e tentativa rejeitada pela SEFAZ (retorno 501) são coisas diferentes. Tentativa rejeitada não é cancelamento.
- Venda fiscal = itens autorizados com cfop_de_venda = true. Remessa, transferência, bonificação e simples faturamento ficam fora. Item pai de kit não tem CFOP e não soma.
- Imposto vem do item (ICMS, PIS, COFINS, IBS estadual, IBS municipal, CBS, IS). Nunca leve o total do cabeçalho para o item. DIFAL separado.
- Total fiscal do dia (redução Z) é a referência de valor por loja e dia.
- Dado de cancelamento identifica o operador do caixa: não exponha fora do escopo autorizado.
Exceções por cliente:
- <cliente>: lista de CFOPs de venda validada em <data>: <lista>.
- <cliente>: histórico anterior a <data> sem produto no log do PDV; usar <fonte alternativa>.
- <cliente>: canal <marketplace> faturado em NF-e série <série>.
```

### Variações

- **Notas de entrada:** NF-e e CT-e de fornecedores, via conector de documentos fiscais, para crédito de ICMS, custo de frete e conferência de compras.
- **Recuperação de ST:** Contagem de chaves distintas e itens com substituição tributária por CNPJ e ano, como base temporária para o pedido de recuperação.
- **Margem com imposto:** Lucro bruto por item = venda menos custo menos ICMS, PIS e COFINS do item, como no resultado de peças e serviços de pós-venda.
