API para validar CBU y CVU en Argentina
Validá cuentas bancarias argentinas por API REST: CBU (banco tradicional) y CVU (fintech/billetera virtual). Doble checksum módulo 10 sobre la especificación BCRA. Respuesta inmediata, schema consistente con todo LatAm.
POST /v1/verify/validate
$ curl -X POST https://api.normadata.io/v1/verify/validate \
-H "X-API-Key: nd_your_key" \
-d '{"country":"AR","type":"cbu","value":"0070123420000012345678"}'
{
"valid": true,
"normalized": "0070123420000012345678",
"type": "CBU",
"category": "bank_account",
"bank_code": "007"
}CBU, CVU y Alias: tres cosas distintas
En Argentina hay tres formas de identificar una cuenta para transferencias, y conviene no confundirlas:
- CBU (Clave Bancaria Uniforme) — 22 dígitos. Identifica una cuenta en un banco tradicional. Estructura: 3 dígitos código de banco + 4 dígitos código de sucursal + 1 dígito DV + 13 dígitos número de cuenta + 1 dígito DV final.
- CVU (Clave Virtual Uniforme) — 22 dígitos. Misma estructura que CBU, pero identifica cuentas en fintechs/billeteras virtuales (Mercado Pago, Ualá, Brubank, Belo, etc.). Mismo algoritmo de validación.
- Alias — string legible (ej:
juan.perez.gaucho). Es solo un "apodo" que apunta al CBU/CVU. NO hay forma pública de validar a qué cuenta apunta un alias — esa es opacidad propia del sistema argentino.
Esta API valida CBU y CVU (mismo algoritmo, distintos códigos de entidad). Para alias solo se puede validar el formato (regex 6-20 caracteres con letras, números, puntos, guiones y guiones bajos), no a qué cuenta apunta.
Cómo se valida un CBU
El CBU tiene doble checksum módulo 10, lo que lo hace muy robusto frente a errores de tipeo. La validación:
- Estructura: tiene que tener exactamente 22 dígitos numéricos (sin espacios ni guiones).
- Bloque 1 (posiciones 1-8): banco + sucursal + DV1. El DV1 se calcula con módulo 10 sobre los 7 primeros dígitos con pesos específicos (7, 1, 3, 9, 7, 1, 3).
- Bloque 2 (posiciones 9-22): número de cuenta + DV2. El DV2 se calcula con módulo 10 sobre los 13 primeros dígitos del bloque con pesos (3, 9, 7, 1, 3, 9, 7, 1, 3, 9, 7, 1, 3).
- Código de banco (primeros 3 dígitos) tiene que pertenecer a la lista oficial de entidades autorizadas por el BCRA.
La API hace los cuatro chequeos en una sola call. Si querés los códigos de los bancos argentinos, son los primeros 3 dígitos del CBU: 007 Galicia, 011 Nación, 014 BIND, 017 BBVA, 027 Supervielle, 029 Ciudad, 044 HSBC, 072 Santander, 191 Credicoop, etc. (Lista BCRA completa, ~80 entidades.)
Qué hace y qué NO hace esta API
Sí hace
- Valida estructura (22 dígitos)
- Valida ambos checksums (DV1 y DV2)
- Identifica banco/fintech por código
- Detecta automáticamente CBU vs CVU
- Devuelve
bank_codeen el response
NO hace
- NO devuelve titular de la cuenta
- NO consulta saldo ni movimientos
- NO valida alias → CBU
- NO realiza transferencias
- NO confirma que la cuenta esté activa
Para titularidad o estado de la cuenta necesitás un proveedor regulado con acuerdos directos con bancos. Esta API va antes: rechaza CBUs malformados o con typos antes de que lleguen a tu pipeline de pagos.
Casos de uso típicos
- Onboarding de usuarios en apps fintech — validar CBU/CVU antes de permitir cobros o transferencias.
- Pagos a proveedores en plataformas B2B — validar antes de procesar la transferencia.
- Apps de payroll/nómina — validar CBU del empleado antes de cargar sueldos.
- Marketplaces — validar CBU/CVU del seller antes de habilitar cobros.
- Limpieza de bases legacy — detectar CBUs malformados en bases heredadas.
- Apps de finanzas personales que dejan al usuario cargar sus cuentas — validar para evitar typos.
También validá CUIT
Si el flujo de onboarding incluye también identificación fiscal del titular, probablemente necesites validar CUIT/CUIL. La misma API lo hace en el mismo endpoint — ver API para validar CUIT en Argentina. Para cobertura multi-país (BR, MX, CL, CO, PE), mirá la cobertura LatAm completa.
FAQ
Preguntas frecuentes sobre la API de validación de CBU
¿La API distingue automáticamente CBU vs CVU?
Sí. Como usan el mismo algoritmo de validación, podés pasar cualquiera con type: "cbu" o type: "cvu" y la API valida correctamente. El campo bank_code en el response te dice si pertenece a un banco tradicional o a una fintech.
¿Puedo validar alias CBU?
Solo formato. NO hay forma pública en Argentina de lookupear a qué CBU/CVU apunta un alias — es opacidad propia del sistema. La API valida que el alias cumpla con el formato (6-20 caracteres con letras, números, puntos, guiones y guiones bajos) pero no más allá.
¿Cuántos bancos soporta?
~80 entidades del padrón oficial BCRA, actualizadas periódicamente. Incluye bancos tradicionales (Galicia, Nación, BBVA, Santander, etc.) y fintechs reguladas (Mercado Pago, Ualá, Brubank, Belo, Lemon, etc.).
¿Valida que la cuenta exista realmente?
No. La API solo valida estructura y checksums. Que el CBU esté bien formado matemáticamente no garantiza que exista una cuenta detrás. Para eso necesitás un proveedor con acuerdos directos con bancos.
¿Es la misma API que valida CUIT?
Sí, mismo endpoint /v1/verify/validate. Cambiás el campo type (cuit, cuil, cbu, cvu, dni) y opcionalmente country si validás de otros países. Schema de response consistente.
¿Soporta validación batch?
Sí. Hay un endpoint específico para validar arrays de hasta 100 CBUs/CVUs en una sola call. Útil para limpieza de bases o validación masiva de pagos.
Validá CBU, CVU y otros con Normadata
Beta privada. Sumate a la lista de espera para recibir tu API key.