Validar tarjeta de crédito
Validar tarjeta es una API que comprueba si un número de tarjeta está bien construido (checksum de Luhn) y detecta su red (Visa, Mastercard, Amex, Discover, Diners, JCB), antes de guardarlo o de enviarlo a tu procesador de pagos. No cobra nada ni mueve dinero: solo dice si el número en sí tiene sentido.
Cómo funciona
Le mandas el número (con o sin espacios/guiones) y comprueba matemáticamente si pasa el algoritmo de Luhn, el mismo que usan todas las redes de tarjetas para pillar errores de tecleo. No consulta ningún banco ni sabe si la tarjeta existe, tiene fondos o está activa: solo si el número está bien formado.
Que la tarjeta no sea válida no es un error de la petición: la respuesta es 200 con "valid": false, igual que cuando sí lo es.
doc.privacyTitle
El número que mandas nunca se guarda ni aparece en los registros de uso: solo se registra si era válido y qué red detectó. La respuesta tampoco devuelve el número, solo si es válido, la red y su longitud.
Lo único que necesitas
- Tu API key. La creas en tu panel con "+ Crear llave". Se muestra una sola vez, así que cópiala y guárdala.
- En tu plataforma de automatización, un paso de tipo "HTTP Request" / "Hacer una petición HTTP" (lo tienen n8n, Make, Zapier, Pipedream…).
Cómo usarlo en n8n (paso a paso)
En el nodo HTTP Request:
- Method:
POST - URL:
https://api.cofferdock.com/validate-card - Send Headers: actívalo y añade dos:
x-api-key= tu llave, yContent-Type=application/json - Send Body: actívalo → Body Content Type: JSON →
{ "number": "4111 1111 1111 1111" }
En Make (módulo HTTP → Make a request): mismo método y URL, Body type: Raw, Content type: JSON, con el mismo cuerpo.
Opciones (dentro del JSON)
| Opción | Por defecto | Para qué sirve |
|---|---|---|
number | - | Obligatorio. El número de tarjeta, con o sin espacios/guiones. |
Resumen de la API
- Endpoint:
POST https://api.cofferdock.com/validate-card - Auth: cabecera
x-api-key: TU_LLAVE. - Entrada: SOLO
application/json. - Algoritmo: checksum de Luhn + detección de red por rango IIN, JS puro (sin dependencia externa ni servicio de terceros).
- Redes detectadas: Visa, Mastercard, Amex, Discover, Diners, JCB (rangos más comunes; algunos sub-rangos poco usados de Discover/JCB pueden no reconocerse).
- Límites: 30 peticiones/min por IP. 1 llamada = 1 crédito, sea la tarjeta válida o no.
Opciones
| Opción | Por defecto | Descripción |
|---|---|---|
number | - | Obligatorio. String no vacío, 12-19 dígitos tras quitar espacios/guiones (400 si no cumple), hasta 40 caracteres antes de limpiar. |
Ejemplos
curl:
curl -X POST "https://api.cofferdock.com/validate-card" \
-H "x-api-key: TU_LLAVE" \
-H "Content-Type: application/json" \
-d '{"number":"4111111111111111"}'
JavaScript (Node 18+):
const r = await fetch('https://api.cofferdock.com/validate-card', {
method: 'POST',
headers: { 'x-api-key': 'TU_LLAVE', 'Content-Type': 'application/json' },
body: JSON.stringify({ number: '4111111111111111' }),
});
const { valid, network } = await r.json();
Respuesta
{ "success": true, "valid": true, "network": "visa", "length": 16,
"meta": { "used": 12, "remaining": 488 } }
Lo que recibes
valid (verdadero/falso), network (visa/mastercard/amex/discover/diners/jcb, o null si no coincide con ninguna) y length (cuántos dígitos tenía). Nunca el número.