Quando for emitida uma NF-e (modelo 55) ou NFC-e (modelo 65) e informado o código de benefício fiscal (Campo: cBenef) inexistente ou fora do prazo de vigência de acordo com a Tabela de Código de Benefício Fiscal por UF, haverá a rejeição pelo motivo 946 – Informado código de benefício fiscal incorreto ou inexistente na UF.
Exceções e Observações
Existe uma exceção geral e três exceções a critério da UF para Regra de Validação 946. Veja a seguir, cada uma delas:
-
A RV não se aplica quando Finalidade de emissão da NFe (tag: finNFe) igual a Devolução de Mercadoria e Identificador de local de destino da operação (tag: idDest) igual a Operação interestadual ou com o Exterior;
Essa RV não se aplica quando informado CSOSN (operação realizada por optante pelo Simples Nacional).
A critério da UF, a RV não se aplica quando:
-
Finalidade de emissão da NF-e (tag: finNFe) igual a Devolução de Mercadoria;
Finalidade de emissão da NF-e (tag: finNFe) igual a NF-e de Ajuste;
Tipo de Operação (tag: tpNF) igual à Entrada.
Há uma observação importante, que devem ser ressaltadas:
- Implementação a critério da UF e por modelo de DF-e.
+ Leia mais: cBenef – saiba tudo sobre o Código de Benefício Fiscal
Regra de Validação da Sefaz

Exemplo
No exemplo abaixo, foi emitido uma NF-e e no campo cBenef foi informado o código de benefício fiscal 'PR840015'. Porém, de acordo com a Tabela de Código de Benefício Fiscal do PR esse código venceu em 01/12/2019, ou seja, está fora do prazo de vigência. Nessa situação, a NF-e foi rejeitada pelo motivo 946.
Trecho do XML:
<det nItem="1">
<prod>
<cProd>999999</cProd>
<cEAN>SEM GTIN</cEAN>
<xProd>PRODUTO TESTE</xProd>
<NCM>85171231</NCM>
<CEST>2105301</CEST>
<!-- Código de Benefício Fiscal na UF -->
<cBenef>PR840015</cBenef>
<CFOP>6411</CFOP>
<uCom>PC</uCom>
<qCom>4.0000</qCom>
<vUnCom>4000.185000</vUnCom>
<vProd>16000.74</vProd>
<cEANTrib>SEM GTIN</cEANTrib>
<uTrib>PC</uTrib>
<qTrib>4.0000</qTrib>
<vUnTrib>4000.185000</vUnTrib>
<indTot>1</indTot>
</prod>
<imposto>
<ICMS>
<ICMS40>
<orig>2</orig>
<CST>40</CST>
</ICMS40>
</ICMS>
</imposto>
</det>
Como resolver?
Para resolver esse caso, basta alterar o campo cBenef preenchendo um código de benefício vigente, conforme tabela de código de benefício fiscal por UF.
Abaixo exemplo de XML com a correção:
<det nItem="1">
<prod>
<cProd>999999</cProd>
<cEAN>SEM GTIN</cEAN>
<xProd>PRODUTO TESTE</xProd>
<NCM>85171231</NCM>
<CEST>2105301</CEST>
<!-- Código de Benefício Fiscal na UF -->
<cBenef>PR840016</cBenef>
<CFOP>6411</CFOP>
<uCom>PC</uCom>
<qCom>4.0000</qCom>
<vUnCom>4000.185000</vUnCom>
<vProd>16000.74</vProd>
<cEANTrib>SEM GTIN</cEANTrib>
<uTrib>PC</uTrib>
<qTrib>4.0000</qTrib>
<vUnTrib>4000.185000</vUnTrib>
<indTot>1</indTot>
</prod>
<imposto>
<ICMS>
<ICMS40>
<orig>2</orig>
<CST>40</CST>
</ICMS40>
</ICMS>
</imposto>
</det>
Referências
- Nota Técnica 2019.001 – v.1.50 – http://www.nfe.fazenda.gov.br/portal/exibirArquivo.aspx?conteudo=UDWXVR/WXxw=