public static bool ValidarCNPJ(Cnpj cnpj) { if (cnpj.CalculaNumeroDeDigitos() != 14) { return(false); } // Verifica os Patterns mais Comuns para CNPJ's Inválidos if (cnpj.VerficarSeTodosOsDigitosSaoIdenticos()) { return(false); } var soma1 = 0; var soma2 = 0; for (var i = 0; i < 12; i++) { var d = cnpj.ObterDigito(i); soma1 += d * multiplicador1[i]; soma2 += d * multiplicador2[i]; } var resto = (soma1 % 11); if (resto < 2) { resto = 0; } else { resto = 11 - resto; } var dv1 = resto; //var digito = resto.ToString(); soma2 += resto * multiplicador2[12]; resto = (soma2 % 11); if (resto < 2) { resto = 0; } else { resto = 11 - resto; } var dv2 = resto; return(cnpj.ObterDigito(12) == dv1 && cnpj.ObterDigito(13) == dv2); }