public static void Main()
Console.WriteLine(ValidarCodigoBarras("07622300862077"));
Console.WriteLine(ValidarCodigoBarras("7622300862077"));
Console.WriteLine(ValidarCodigoBarras("76223008620770"));
Console.WriteLine(ValidarCodigoBarras("00000078930223"));
Console.WriteLine(ValidarCodigoBarras("0000078930223"));
Console.WriteLine(ValidarCodigoBarras("7893022300000"));
Console.WriteLine(ValidarCodigoBarras("78930223000000"));
Console.WriteLine(ValidarCodigoBarras("SEM GTIN"));
public static string ValidarCodigoBarras(string codigoBarras)
long barrasNumerico = long.Parse(codigoBarras);
if (codigoBarras.Length > 8)
if (codigoBarras.Length > 13 && !codigoBarras.StartsWith("00000"))
string barrasValidar = codigoBarras.Substring(codigoBarras.Length - 13, 13);
if (ValidarEAN13(barrasValidar)) return barrasValidar;
string barrasValidar = codigoBarras.Substring(0, 13);
if (ValidarEAN13(barrasValidar)) return barrasValidar;
else if (codigoBarras.Length == 13 && !codigoBarras.StartsWith("00000"))
if (ValidarEAN13(codigoBarras)) return codigoBarras;
else if (codigoBarras.Length >= 8)
string barrasValidar = codigoBarras.Substring(codigoBarras.Length - 8, 8);
if (ValidarEAN13("00000"+barrasValidar)) return barrasValidar;
string barrasValidar = codigoBarras.Substring(0, 8);
if (ValidarEAN13("00000" + barrasValidar)) return barrasValidar;
public static bool ValidarEAN13(string codigoBarras)
bool valido = (codigoBarras.Length == 13);
const string checkSum = "131313131313";
int digito = int.Parse(codigoBarras[codigoBarras.Length - 1].ToString());
string ean = codigoBarras.Substring(0, codigoBarras.Length - 1);
for (int i = 0; i <= ean.Length - 1; i++)
sum += int.Parse(ean[i].ToString()) * int.Parse(checkSum[i].ToString());
int calculo = 10 - (sum % 10);
valido = (digito == calculo);