✓ Sin registro 🔒 Todo en tu navegador Lotes de 1 a 100 · CSV y JSON

Generador de cuenta bancaria española

Código Cuenta Cliente de veinte dígitos con sus dos dígitos de control calculados por separado, y el IBAN español que sale de él. Con entidades reales, válidos o deliberadamente rotos.

100 % privado. No hay servidor: los datos se generan en tu navegador y no se envían ni se guardan en ninguna parte.

Cómo funciona

Tres pasos, cero configuración

1

Elige la entidad

El código de cuatro dígitos es el real. Útil si tu aplicación deduce el banco a partir de la cuenta, que es lo habitual en los formularios de domiciliación.

2

Elige qué necesitas

El IBAN para SEPA y formularios modernos, el CCC de veinte dígitos para sistemas antiguos, o los dos a la vez para comprobar que tu sistema los reconoce como la misma cuenta.

3

Copia o exporta

El CSV trae el IBAN, el CCC, la entidad con su código, la oficina, los dos dígitos de control y el número de cuenta por separado.

Veinte dígitos y dos controles, no uno

El Código Cuenta Cliente español se reparte así: 4 dígitos de entidad, 4 de oficina, 2 de control y 10 de cuenta. Y aquí está el malentendido que rompe la mayoría de las implementaciones caseras: esos dos dígitos de control no son un número de dos cifras. Son dos controles independientes, y cada uno valida un trozo distinto.

  • El primero valida la entidad y la oficina.
  • El segundo valida los diez dígitos de la cuenta.

La consecuencia práctica es útil: si te equivocas al teclear la oficina, salta el primero; si te equivocas en la cuenta, salta el segundo. Un sistema que los trate como un solo número de dos cifras puede dar por buena una cuenta con la oficina cambiada.

El algoritmo, con sus dos casos especiales

Los dos controles usan los mismos pesos sobre diez dígitos. Para el primero, la entidad y la oficina suman ocho cifras, así que se rellenan con dos ceros por delante:

const PESOS = [1, 2, 4, 8, 5, 10, 9, 7, 3, 6];

function dc(diez) {
  const suma = [...diez].reduce((a, c, i) => a + Number(c) * PESOS[i], 0);
  const r = 11 - suma % 11;
  return r === 11 ? 0 : (r === 10 ? 1 : r);   // ← los dos casos especiales
}

dc("00" + "2100" + "0418")   // 4
dc("0200051332")             // 5
// control = "45"  →  CCC 2100 0418 45 0200051332

Los dos casos especiales de la última línea son la otra fuente de errores: cuando el resto da 10 el dígito es 1, y cuando da 11 es 0. Si aplicas 11 − resto sin más, te salen dígitos de dos cifras y el algoritmo revienta en una de cada once cuentas aproximadamente. Es la frecuencia justa para que pase las pruebas superficiales y falle en producción.

El IBAN sale del CCC

Esto no siempre se sabe, y simplifica mucho el trabajo: el IBAN español contiene el CCC entero. Solo le añade delante ES y dos dígitos de control del módulo 97 calculados sobre el conjunto.

CCC   2100 0418 45 0200051332
IBAN  ES91 2100 0418 4502 0005 1332
      ^^^^ └── el CCC, tal cual, sin cambiar nada

Por eso los dos van siempre juntos y esta herramienta te da los dos a la vez. Y por eso una comprobación cruzada muy buena para tu sistema es esta: si le das el IBAN y el CCC de la misma cuenta, debe reconocerlos como la misma y no crear un duplicado.

Los tres ejemplos con los que hemos verificado el generador son IBAN publicados — ES9121000418450200051332 entre ellos —, y la comprobación fue en los dos sentidos: los dígitos de control del CCC coinciden con los impresos, y el IBAN reconstruido a partir del CCC sale idéntico al original.

IBAN, BIC y número de cuenta

Qué identificaEjemplo
IBANLa cuenta, de forma única en el mundoES91 2100 0418 4502 0005 1332
CCCLa misma cuenta, en el formato español anterior2100 0418 45 0200051332
BIC o SWIFTEl banco, no la cuentaCAIXESBBXXX

Esta herramienta no genera BIC, y es deliberado: el BIC es un código asignado a entidades que existen, y no tiene ningún sentido inventarlo. Dentro de la zona SEPA basta el IBAN.

Qué probar con cuentas españolas sintéticas

  • Segundo control cambiado. La entidad y la oficina son correctas y solo falla el bloque de la cuenta: separa a quien valida de verdad de quien mira la longitud.
  • IBAN y CCC de la misma cuenta. Deben entrar como una sola, no como dos.
  • Con y sin espacios. La gente copia el IBAN de una factura, agrupado de cuatro en cuatro. Normaliza antes de validar y de guardar.
  • En minúsculas. es91 2100… es lo que llega en un correo.
  • Guardado como número. Un CCC que empieza por 0049 pierde el cero si alguien lo mete en un entero. Es una cadena, siempre.
  • Longitudes de otros países. Un cliente belga tiene 16 caracteres y uno brasileño 29. Si tu formulario exige 24, los rechazas: mira el generador de IBAN internacional.
  • Varias entidades seguidas. Comprueba que la detección automática del banco funciona con más de una.

Válidas en formato, inexistentes en el banco

Estas cuentas pasan los dos dígitos de control y el módulo 97 del IBAN, que es lo que comprueba cualquier formulario, pero no corresponden a ninguna cuenta abierta en ninguna entidad. Una orden SEPA contra ellas será rechazada. No sirven para cobrar ni para pagar: están para probar tu software.

Preguntas frecuentes

Dudas habituales

¿Sirven estas cuentas para hacer una transferencia?

No. Pasan los dos dígitos de control y el módulo 97 del IBAN, que es lo que comprueba un formulario, pero no corresponden a ninguna cuenta abierta en ninguna entidad. Una orden SEPA contra ellas sería rechazada.

¿Por qué el CCC tiene dos dígitos de control?

Porque cada uno valida un trozo distinto: el primero la entidad y la oficina, el segundo los diez dígitos de la cuenta. No son un número de dos cifras, son dos controles independientes calculados por separado.

¿El IBAN español es lo mismo que el CCC?

El IBAN contiene el CCC entero, sin cambiar nada, y le añade delante ES y dos dígitos de control del módulo 97. Son la misma cuenta escrita de dos formas, y tu sistema debería reconocerlas como una sola.

¿Qué pasa cuando el resto de la división da 10 u 11?

Son los dos casos especiales del algoritmo: si el resto de 11 menos la suma da 10, el dígito es 1; si da 11, es 0. Aplicar la resta sin más produce dígitos de dos cifras y falla en aproximadamente una de cada once cuentas.

¿Genera también el BIC o SWIFT?

No, a propósito. El BIC identifica a un banco que existe, y no tiene sentido inventar uno. Dentro de la zona SEPA basta con el IBAN.