Validar un IBAN
La API Validar IBAN toma cualquier número de cuenta bancaria internacional y determina, a nivel estructural, si podría ser real: prefijo de país correcto, longitud correcta para ese país y un dígito de control que efectivamente cuadra. Existe porque una transferencia construida sobre un error de tecleo no rebota con elegancia: o cae en la cuenta equivocada o queda atascada por días, y este endpoint atrapa el error antes de que ocurra cualquiera de las dos cosas.
Ejecutar — gratis
Corre en su navegador. Gratis y sin límite: sus datos no salen de esta página.
Qué demuestra en realidad el dígito de control
Todo IBAN lleva dos dígitos de control justo después del código de país, y esos dígitos son el resultado de un cálculo mod-97 sobre el resto del número. Eso significa que un IBAN con un dígito traspuesto, un carácter faltante o una letra cambiada casi siempre falla ese control, aunque a simple vista parezca plausible. Esta api validar iban recalcula ese dígito en el servidor y lo compara contra la longitud y estructura del BBAN que cada país registra ante SWIFT, así que un resultado positivo confirma que el número es internamente consistente, no que la cuenta exista o esté abierta.
Quién necesita esto antes de mover dinero
Los sistemas de nómina que dan de alta la cuenta bancaria de un nuevo empleado, los marketplaces que pagan a vendedores en distintos países, los equipos de tesorería que concilian datos de proveedores y cualquier formulario de checkout que recoja IBAN de sus clientes comparten el mismo riesgo: un IBAN mal formado o lo rechaza el banco días después o, peor, se enruta mal. Validar en el momento de la captura convierte un ticket de soporte y un pago retrasado en un error visible que el usuario corrige en segundos.
La petición y lo que regresa
Llame a POST /verify/iban con la cadena del IBAN y recibe un task_id de inmediato; la verificación corre de forma asíncrona para que el envío de su formulario nunca se bloquee. El resultado indica si el formato es válido, el país detectado, la longitud esperada para ese país y si el dígito de control pasó. Si una tarea falla de plano, se reintenta tres veces antes de devolver un error claro, y una tarea fallida jamás se cobra: solo paga por las verificaciones que se completan.
Cobertura en más de 80 países
El IBAN nació como estándar europeo a finales de los años noventa y desde entonces se ha adoptado mucho más allá de la Unión Europea, con cada país participante registrando su propia longitud fija y estructura de BBAN en el registro IBAN. Algunos países incluyen un código de banco, otros un código de sucursal, otros ninguno, y las longitudes van de 15 a 34 caracteres. Este endpoint mantiene actualizada esa estructura por país, así que la misma llamada funciona igual si el IBAN viene de Alemania, Brasil, Arabia Saudita o Ucrania, sin que tenga que mantener usted mismo una tabla de referencia.
Cómo encaja en un flujo de pagos
Como la respuesta es JSON estructurado entregado por webhook, los equipos lo conectan directo a formularios de alta, importaciones masivas de nómina y limpiezas de registros de proveedores: validar en la captura para bloquear un pago antes de programarlo, o correr un lote nocturno sobre una tabla de clientes existente para marcar registros que merecen revisión. El acceso requiere saldo prepago, lo que mantiene el endpoint rápido y libre de abuso por scraping, y cada verificación tiene un precio fijo y publicado de $0.002 sin créditos empaquetados que rastrear.
Qué puede hacer con ella
Alta de nómina
Una plataforma de recursos humanos valida el IBAN de un nuevo empleado en el momento en que se captura en el formulario, atrapando un dígito mal tecleado antes de que la primera nómina intente usarlo.
Pagos en un marketplace
Un marketplace multipaís revisa el IBAN de cada vendedor antes de programar un lote de pagos, para que una sola cuenta mal escrita no detenga toda la corrida.
Limpieza de datos maestros de proveedores
Un equipo de finanzas corre su base de proveedores existente contra el endpoint durante la noche para marcar IBAN que fallan el dígito de control, antes de migrar a un nuevo sistema de pagos.
Validación en el checkout
Una página de facturación por suscripción valida el IBAN del cliente en línea durante el alta a domiciliación SEPA, reemplazando un rechazo silencioso del banco días después por un error inmediato y corregible.
Preguntas frecuentes
¿Cómo valido un IBAN con una API?
Envíe POST /verify/iban con la cadena del IBAN. La api validar iban devuelve un task_id de inmediato y entrega el resultado del formato y el dígito de control a su webhook o a un enlace firmado al terminar la verificación.
¿Esto confirma que la cuenta bancaria existe de verdad?
No. Confirma que el IBAN es estructuralmente válido: formato de país correcto, longitud correcta y un dígito de control mod-97 que pasa. Confirmar que una cuenta está abierta y activa requiere los propios rieles de verificación del banco, algo que este endpoint no realiza.
¿Existe una capa gratuita para validar IBAN?
La herramienta de arriba es gratis en su navegador. La API es de pago: cada llamada se descuenta de su saldo prepago de ForHosting KIT — se recarga desde $10.00 (no caduca), se paga el precio publicado de cada solicitud, y una llamada sin saldo devuelve HTTP 402. Sin suscripción, sin tokens, y una tarea fallida no se cobra.
¿Cuántos países cubre la API de validar IBAN?
Más de 80 países que participan en el estándar IBAN, cada uno verificado contra su propia longitud y estructura de BBAN registradas, y no una regla genérica única.
¿Puedo validar IBAN en lote?
Sí. Envíe cada IBAN en su propio POST y las tareas corren en paralelo; cada petición se cobra por separado y una tarea fallida se reintenta y nunca se cobra.
¿Qué suele significar un dígito de control que falla?
Casi siempre un dígito traspuesto o mal tecleado, un carácter faltante o un IBAN copiado del campo equivocado. Rara vez significa que la cuenta bancaria de fondo sea inválida, solo que el número tal como se ingresó no lo es.
¿Cómo se entregan los resultados?
De dos formas: un webhook firmado que enviamos a su servidor apenas termina la verificación, lo recomendado, o un enlace firmado válido por 24 horas que puede consultar cuando quiera.
¿Se conserva mi IBAN después de la verificación?
No. El IBAN enviado y su resultado se eliminan al cerrar la ventana de retención y jamás se usan para entrenar nada; los enlaces de entrega son firmados y caducan.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, y pronto desde nuestra app, el email y Telegram.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/verify/iban \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"items":["valor-1","valor-2"]}'const res = await fetch("https://api.kit.forhosting.com/verify/iban", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"items": [
"valor-1",
"valor-2"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/verify/iban",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"items": [
"valor-1",
"valor-2"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/verify/iban", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"items":["valor-1","valor-2"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"items":["valor-1","valor-2"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/verify/iban", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"items": [
"valor-1",
"valor-2"
]
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "verify.iban",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |