Utilizamos cookies propias y de terceros. [Más información sobre las cookies].
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Wiki

Programación: El CIF - Código de Identificación Fiscal
Varios


Os explicamos en qué consiste el CIF (Código de Identificación Fiscal), os mostramos su estructura, lo que significa cada número y cada letra, cómo calcular el dígito de control y cómo saber a qué comunidad pertenece una empresa sabiendo su CIF. También podremos saber el tipo de empresa (sociedad anónima, sociedad limitada, comunidades de bienes, etc). Incluimos un ejemplo freeware de la obtención de esta información en Delphi (open source).



Definición:

El Código de identificación fiscal (CIF) es el sistema de identificación tributaria utilizada en España para las personas jurídicas o entidades en general. Este código debe ser único para cada entidad (empresa), por ello, para que una factura tenga validez legal debe aparecer el CIF del cliente facturado y el CIF de la empresa que factura.

Estructura:

X-XX-XXXXX-X
1 2 3 4 5 6 7 8 9

El CIF está compuesto de de 9 caracteres. El primero de ellos (posición 1) es una letra que define el tipo de entidad, con la siguiente correspondencia:

A Sociedades anónimas
B Sociedades de responsabilidad limitada
C Sociedades colectivas
D Sociedades comanditarias
E Comunidades de bienes
F Sociedades cooperativas
G Asociaciones y otros tipos de sociedades civiles
H Comunidades de propietarios en régimen de propiedad horizontal
N Entidades no residentes
P Corporaciones locales
Q Organismos autónomos, estatales o no, y asimilados, y congregaciones e instituciones religiosas
S Órganos de la Administración del Estado y comunidades autónomas


Los dos siguientes dígitos numéricos (posición 2, 3) identifican la provincia a la que pertenece la entidad, con la siguiente correspondencia:

01 Álava
02 Albacete
03, 53, 54 Alicante
04 Almería
05 Ávila
06 Badajoz
07, 57 Islas Baleares
08, 58, 59, 60, 61, 62, 63, 64 Barcelona
09 Burgos
10 Cáceres
11, 72 Cádiz
12 Castellón
13 Ciudad Real
14, 56 Córdoba
15, 70 A Coruña
16 Cuenca
17, 55 Girona
18 Granada
19 Guadalajara
20, 71 Guipúzcoa
21 Huelva
22 Huesca
23 Jaén
24 León
25 Lleida
26 La Rioja
27 Lugo
28, 78, 79, 80, 81, 82, 83, 84, 85 Madrid
29, 92, 93 Málaga
30, 73 Murcia
31 Navarra
32 Ourense
33, 74 Oviedo
34 Palencia
35, 76 Las Palmas
36, 94 Pontevedra
37 Salamanca
38, 75 Santa Cruz de Tenerife
39 Cantabria
40 Segovia
41, 91 Sevilla
42 Soria
43, 77 Tarragona
44 Teruel
45 Toledo
46, 96, 97, 98 Valencia
47 Valladolid
48, 95 Vizcaya
49 Zamora
50, 99 Zaragoza
51 Ceuta
52 Melilla

Los cinco siguientes dígitos (posición 4 a 8) constituyen un número correlativo de inscripción de la organización en el registro provincial.

El último dígito (posición 9) es un código de control que puede ser un número o una letra:

  • Será una letra si la clave de entidad es K, P, Q ó S.
  • Será un número si la clave de entidad es A, B, E ó H.
  • El resto de las claves de entidad: C, D, F, G, N el dígito podrá ser tanto número como letra.

Cálculo del dígito de control:

Las operaciones para calcular el dígito de control se realizan sobre los siete dígitos centrales (posición 2 a 8) y son las siguientes:

X-X-X-X-X-X-X
1 -2 -3 -4 -5 -6 -7

  1. Sumar los dígitos de la posiciones pares de los siete dígitos del cáclulo (posición 2, 4 y 6). Suponemos que la suma de estos números equivale a "A".
  2. Multiplicamos por 2 los dígitos de la posiciones impares (posición 1, 3, 5 y 7) y sumamos los dígitos del resultado de la multiplicación. Suponemos que la multiplicación equivale a "B". Por ejemplo, si la multiplicación por 2 da 18, el resultado de este dígito sería 1 + 8 = 9.
  3. Sumamos el resultado de las dos operaciones anteriores: A + B. Suponemos que este valor es "C".
  4. Tomar sólo el dígito de las unidades de C y restárselo a 10. Suponemos que este valor es D.
  5. A partir de este último resultado, D, se obtiene el dígito de control. Si ha de ser numérico es directamente el valor de D y si se trata de una letra se hace una correspondencia con la siguiente relación: A = 1, B = 2, C= 3, D = 4, E = 5, F = 6, G = 7, H = 8, I = 9, J = 10.

A continuación mostramos un ejemplo para el CIF: E73467433

1. Utilizaremos los siete dígitos centrales: 7346743

2. Sumamos los dígitos pares: A = 3 + 6 + 4 = 13

3. Multiplicamos por 2 los impares:

7 * 2 = 14, sumamos 1 + 4 = 5

4 * 2 = 8, sumamos 8 + 0 = 8

7 * 2 = 14, sumamos 1 + 4 = 5

3 * 2 = 6, sumamos 6 + 0 = 6

Sumamos los resultados: B = 5 + 8 + 5 + 6 = 24

4. Sumamos A + B: C = A + B = 14 + 15 = 29

5. Para obtener D cogemos el "9" de C y a 10 le restamos este valor: D = 10 - 9 = 1

6. Con el último valor (D) ya podemos obtener el dígito de control, primero tendremos que saber si es una letra o un número, si es un número ya lo tenemos, será el 1 (el valor de D), si es una letra, teniendo en cuenta la relación: A = 1, B = 2, C= 3, D = 4, E = 5, F = 6, G = 7, H = 8, I = 9, J = 10, será una A.

Ejemplo de cálculo del CIF con Delphi:

...

Ejemplo de cálculo del CIF con Visual Basic:

Public Function cifDigito(cif As String) As String

    Dim A As Integer    'impares
    Dim B As Integer    'pares
    Dim C As Integer
    Dim Digito As String
    Dim letras As Variant


    A = 0
    B = 0

    For i = 2 To 6 Step 2
      A = A + Mid(cif, i + 1, 1) 'impares
      C = 2 * Mid(cif, i, 1) 'pares
      B = B + (C Mod 10) + Int(C / 10) 'Suma de dígitos
    Next i
    B = B + ((2 * Mid(cif, 8, 1)) Mod 10) + _
        Int((2 * Mid(cif, 8, 1)) / 10)
    C = 10 - ((A + B) Mod 10)
    
    letras = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "J")
    Select Case (Left(cif, 1))
        Case "K", "P", "Q", "S": Digito = letras(C-1)
        Case "A", "B", "E", "H": Digito = C
        Case Else: Digito = C & " o " & letras(C-1)
    End Select
    cifDigito = Digito    
End Function

Anuncios


Enviado el Miércoles, 14 mayo a las 01:15:20 por ajpdsoft
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A