Como Validar Chave de Acesso NFC-e em C#
Validação de chaves de Nota Fiscal de Consumidor Eletrônica (NFC-e) em C#.
Introdução
Desenvolvedores de automação comercial e PDV em .NET precisam validar chaves NFC-e constantemente.
O Algoritmo
Cálculo do dígito verificador da chave de 44 posições usando Módulo 11.
Implementação em Csharp
nfce-generator.jscsharp
public static bool ValidateNfceKey(string key)
{
if (string.IsNullOrEmpty(key) || key.Length != 44 || !key.All(char.IsDigit)) return false;
string baseKey = key.Substring(0, 43);
int[] weights = { 2, 3, 4, 5, 6, 7, 8, 9 };
int total = 0;
int weightIndex = 0;
for (int i = baseKey.Length - 1; i >= 0; i--)
{
total += (int)char.GetNumericValue(baseKey[i]) * weights[weightIndex];
weightIndex = (weightIndex + 1) % 8;
}
int remainder = total % 11;
int dv = (remainder < 2) ? 0 : 11 - remainder;
return (int)char.GetNumericValue(key[43]) == dv;
}Validação performática em C# para garantir que a chave lida ou gerada está correta antes de enviar para a SEFAZ.
Não quer escrever código?
Use nossa ferramenta online gratuita para processar NFCE-GENERATOR instantaneamente. Perfeito para testes rápidos.
Usar Ferramenta de NFCE-GENERATOR Online