Como Validar Chave de Acesso NF-e em Java
Validação robusta de chaves de Nota Fiscal Eletrônica (NF-e) para sistemas corporativos Java.
Introdução
Em ambientes corporativos Java, a validação de chaves de acesso NF-e é crítica para garantir a integridade dos dados fiscais antes da transmissão para a SEFAZ.
O Algoritmo
O cálculo do Dígito Verificador (DV) utiliza o algoritmo Módulo 11. A chave de 43 dígitos é percorrida inversamente com pesos de 2 a 9.
Implementação em Java
nfe-generator.jsjava
public class NfeValidator {
public static boolean validate(String key) {
if (key == null || key.length() != 44 || !key.matches("\\d+")) {
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 += Character.getNumericValue(baseKey.charAt(i)) * weights[weightIndex];
weightIndex = (weightIndex + 1) % 8;
}
int remainder = total % 11;
int dv = (remainder < 2) ? 0 : 11 - remainder;
return Character.getNumericValue(key.charAt(43)) == dv;
}
}O método recebe a chave como String e verifica o tamanho e se é numérica. O loop calcula a soma ponderada dos 43 primeiros dígitos. O DV calculado é comparado com o último dígito da chave.
Não quer escrever código?
Use nossa ferramenta online gratuita para processar NFE-GENERATOR instantaneamente. Perfeito para testes rápidos.
Usar Ferramenta de NFE-GENERATOR Online