Identificación de una cuenta corriente o libreta de ahorros
En España las cuentas corrientes y las libretas de ahorros tienen una identidad única que se compone de 20 dígitos, el denominado Código Cuenta Cliente. Este código identifica a la entidad bancaria, sucursal y cuenta de forma única de tal modo que actúa como dirección de la cuenta para la realización de cualquier operación financiera.
Esquema del código de identificación de una cuenta bancaria
Proceso de cálculo de los dígitos de control
a) Dígito de control de la entidad y sucursal
Posicion | Factor | Datos | Operación | Resultado |
Unidad: | 6 | 8 | 6×8 | 48 |
Decena: | 3 | 3 | 3×3 | 9 |
Centena: | 7 | 3 | 7×3 | 21 |
Unidad de millar: | 9 | 0 | 9×0 | 0 |
Decena de millar: | 10 | 7 | 10×7 | 70 |
Centena de millar: | 5 | 7 | 5×7 | 35 |
Unidad de millón: | 8 | 0 | 8×0 | 0 |
Decena de millón: | 4 | 2 | 4×2 | 8 |
Suma | 191 |
Cálculos:
191/11 = 17; Resto = 191-(17×11) = 4; Dígito = 11-4 = 7
– Si el resultado es 11, el dígito buscado es 0
– Si el resultado es 10, el dígito buscado es 1
b) Dígito de control de la cuenta
Posicion | Factor | Datos | Operación | Resultado |
Unidad: | 6 | 1 | 6×1 | 6 |
Decena: | 3 | 2 | 3×2 | 6 |
Centena: | 7 | 3 | 7×3 | 21 |
Unidad de millar: | 9 | 4 | 9×4 | 36 |
Decena de millar: | 10 | 5 | 10×5 | 50 |
Centena de millar: | 5 | 2 | 5×2 | 10 |
Unidad de millón: | 8 | 0 | 8×0 | 0 |
Decena de millón: | 4 | 0 | 4×0 | 0 |
Centena de millón: | 2 | 1 | 2×1 | 2 |
Unidad de millar de millón: | 1 | 3 | 1×3 | 3 |
Suma | 134 |
Cálculos:
134/11 = 12; Resto = 191-(12×11) = 2; Dígito = 11-2 = 9
– Si el resultado es 11, el dígito buscado es 0
– Si el resultado es 10, el dígito buscado es 1
A continuación, implementaremos el algoritmo en php
function ccc_valido($ccc) { //$ccc sería el 20770338793100254321 $valido = true; /////////////////////////////////////////////////// // Dígito de control de la entidad y sucursal: //Se multiplica cada dígito por su factor de peso /////////////////////////////////////////////////// $suma = 0; $suma += $ccc[0] * 4; $suma += $ccc[1] * 8; $suma += $ccc[2] * 5; $suma += $ccc[3] * 10; $suma += $ccc[4] * 9; $suma += $ccc[5] * 7; $suma += $ccc[6] * 3; $suma += $ccc[7] * 6; $division = floor($suma/11); $resto = $suma - ($division * 11); $primer_digito_control = 11 - $resto; if($primer_digito_control == 11) $primer_digito_control = 0; if($primer_digito_control == 10) $primer_digito_control = 1; if($primer_digito_control != $ccc[8]) $valido = false; /////////////////////////////////////////////////// // Dígito de control de la cuenta: /////////////////////////////////////////////////// $suma = 0; $suma += $ccc[10] * 1; $suma += $ccc[11] * 2; $suma += $ccc[12] * 4; $suma += $ccc[13] * 8; $suma += $ccc[14] * 5; $suma += $ccc[15] * 10; $suma += $ccc[16] * 9; $suma += $ccc[17] * 7; $suma += $ccc[18] * 3; $suma += $ccc[19] * 6; $division = floor($suma/11); $resto = $suma-($division * 11); $segundo_digito_control = 11- $resto; if($segundo_digito_control == 11) $segundo_digito_control = 0; if($segundo_digito_control == 10) $segundo_digito_control = 1; if($segundo_digito_control != $ccc[9]) $valido = false; return $valido; }