Descripci贸n

validar_cuit(cuit) es una funci贸n a la que se le pasa un CUIT/CUIL (cadena '00-00000000-0') y devuelve True si el CUIT es v谩lido (tiene la longitud y formato correcto, y su digito verificador esta ok).

El CUIT/CUIL es el c贸digo 煤nico de de identificaci贸n tributaria/laboral, que se le asigna a cada persona f铆sica o jur铆dica (sociedades) alcanzadas por el sistema impositivo argentino.

Aclaraci贸n: que el CUIT sea v谩lido no quiere decir que la persona titular exista y est茅 habilitada por los organismos correspondientes.

Siempre se debe verificar la vigencia del CUIT en la p谩gina de la AFIP (Administraci贸n Federal de Ingresos P煤blicos). Por el momento es una p谩gina web, quizas en un futuro ofrezcan un servicio web para automatizar el proceso. Tambien es posible bajarse un padr贸n (archivo de texto plano), tarea para otra receta 馃檪

Ejemplos:

>>> validar_cuit("00-00000000-0")
True
>>> validar_cuit("00-00000000-1")
False

C贸digo:

def validar_cuit(cuit):
    # validaciones minimas
    if len(cuit) != 13 or cuit[2] != "-" or cuit[11] != "-":
        return False

    base = [5, 4, 3, 2, 7, 6, 5, 4, 3, 2]

    cuit = cuit.replace("-", "") # remuevo las barras

    # calculo el digito verificador:
    aux = 0
    for i in xrange(10):
        aux += int(cuit[i]) * base[i]

    aux = 11 - (aux - (int(aux / 11) * 11))

    if aux == 11:
        aux = 0
    if aux == 10:
        aux = 9

    return aux == int(cuit[10])

Autor / Autores:

MarianoReingart