Tienes formularios de pago que enviar y necesitas validar tarjetas rápidamente. Al final de esta guía, llamarás a la API de validador de tarjetas de crédito - verificación de BIN desde PHP para validar los primeros 6 dígitos (BIN/IIN), leer datos del emisor y de la marca, y reforzar tu proceso de pago o de riesgo sin construir y mantener tus propias tablas de BIN.
Por qué la validación de BIN es importante y lo que construirás
El BIN (Número de Identificación Bancaria) — los primeros 6 dígitos de una tarjeta — te dice el emisor, la marca, el tipo y a menudo el país. Implementarás un paso de pre-autorización ligero que:
- Acepta los primeros 6 dígitos del cliente (nunca el PAN completo),
- Llama a un único endpoint para validar el BIN,
- Lee la marca de la tarjeta (por ejemplo, AMERICAN EXPRESS), el tipo (CREDITO) y pistas del emisor,
- Rama tu flujo (por ejemplo, indicaciones de 3DS o SCA, marcas permitidas, o desencadenantes adicionales de KYC).
Todo lo siguiente se basa en la API de validador de tarjetas de crédito - verificación de BIN en la categoría de Finanzas y Pagos en Zyla API Hub.
Acerca de la API de validador de tarjetas de crédito - verificación de BIN
Esta API valida el BIN (primeros 6 dígitos) de cualquier tarjeta de crédito y devuelve:
- Marca y tipo de tarjeta,
- Nivel de tarjeta (cuando está disponible),
- Información del emisor (cuando está disponible a través de la API),
- Información del país (cuando está disponible).
Expone un único endpoint HTTP GET que toma un único parámetro de consulta requerido, bin, y devuelve una carga útil JSON concisa confirmando la validez además de los metadatos de la tarjeta.
La facturación en Zyla es por suscripción + cuota (no pago por llamada). Para esta API, normalmente encontrarás una primera opción de API como una prueba de 7 días o 50 solicitudes. No hay Plan Gratuito; consulta la página de la API para las opciones de acceso y precios actuales.
Comenzando en Zyla API Hub
Para obtener una clave API y comenzar a llamar a los endpoints:
- Abre la página de la API: API de validador de tarjetas de crédito - verificación de BIN.
- Haz clic en Suscribirse (o Comenzar prueba gratuita si está disponible) y completa el proceso de pago. Recuerda: modelo de suscripción + cuota; no pago por llamada.
- Copiar tu clave API desde el panel de control.
- Autentica cada solicitud con el encabezado:
Authorization: Bearer YOUR_API_KEY.
Si aún no tienes una cuenta, puedes Registrarte rápidamente para obtener una clave API y probarla desde tu entorno.
Referencia de endpoint e implementación (cURL incluido)
Hay un endpoint para la validación de BIN:
- Método: GET
- URL:
https://zylalabs.com/api/40/credit-card-validator-bin-checker-api/1885/bin-checker - Parámetro de consulta requerido:
bin(cadena): Los primeros 6 dígitos, por ejemplo,346350
- Auth:
Authorization: Bearer YOUR_API_KEY
cURL
curl -s -X GET "https://zylalabs.com/api/40/credit-card-validator-bin-checker-api/1885/bin-checker?bin=346350" \
-H "Authorization: Bearer YOUR_API_KEY"
Esto devuelve un cuerpo JSON que indica si el BIN es válido y, cuando está disponible, metadatos de marca y emisor.
Guía de integración en PHP
El fragmento a continuación utiliza curl_init para invocar el mismo endpoint desde PHP. Demuestra la construcción de la solicitud, autenticación y decodificación básica de JSON para la lógica posterior.
PHP (cURL)
<?php
$apiKey = 'YOUR_API_KEY';
$bin = '346350';
$url = 'https://zylalabs.com/api/40/credit-card-validator-bin-checker-api/1885/bin-checker?bin=' . urlencode($bin);
$ch = curl_init($url);
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . $apiKey,
'Accept: application/json',
],
CURLOPT_TIMEOUT => 10,
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$err = curl_error($ch);
curl_close($ch);
if ($err) {
// Error a nivel de transporte (DNS, TLS, timeout)
error_log('cURL error: ' . $err);
http_response_code(502);
exit('Error en upstream, intenta de nuevo');
}
if ($httpCode < 200 || $httpCode >= 300) {
// Estado no-2xx del Hub
http_response_code(502);
exit('Verificador de BIN no disponible');
}
data = json_decode($response, true);
// Comprobaciones defensivas antes de leer campos
if (!is_array($data) || !isset($data['success'])) {
http_response_code(502);
exit('Respuesta malformada');
}
// Ejemplo de lógica de ramificación
if (!empty($data['isValid'])) {
$brand = $data['data']['card_brand'] ?? 'UNKNOWN';
$type = $data['data']['card_type'] ?? 'UNKNOWN';
// Hacer cumplir marcas/tipos permitidos en el borde (ejemplo)
$allowedBrands = ['AMERICAN EXPRESS', 'VISA', 'MASTERCARD'];
if (!in_array($brand, $allowedBrands, true)) {
http_response_code(400);
exit('Marca de tarjeta no soportada');
}
// Continuar con el flujo de pago o pre-autorización
echo 'BIN válido. Marca: ' . $brand . ' | Tipo: ' . $type . PHP_EOL;
} else {
http_response_code(400);
exit('BIN inválido');
}
JavaScript (fetch)
const apiKey = 'YOUR_API_KEY';
const bin = '346350';
const url = `https://zylalabs.com/api/40/credit-card-validator-bin-checker-api/1885/bin-checker?bin=${encodeURIComponent(bin)}`;
fetch(url, {
method: 'GET',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Accept': 'application/json'
}
})
.then(async (res) => {
const text = await res.text();
if (!res.ok) {
throw new Error(`HTTP ${res.status}: ${text}`);
}
return JSON.parse(text);
})
.then((json) => {
if (json.isValid) {
const brand = json.data?.card_brand ?? 'UNKNOWN';
const type = json.data?.card_type ?? 'UNKNOWN';
console.log(`BIN válido. Marca: ${brand}, Tipo: ${type}`);
} else {
console.log('BIN inválido');
}
})
.catch((err) => {
console.error('La solicitud falló:', err);
});
Estructura de respuesta y mapeo de campos
La respuesta incluye una bandera de validez de nivel superior y un objeto de datos con varios atributos de tarjeta que puedes usar para enrutamiento o controles de cumplimiento. A continuación se muestra la respuesta de muestra oficial que recibirás de la solicitud proporcionada.
JSON (muestra oficial)
{
"status": 200,
"success": true,
"isValid": true,
"message": "The BIN number is valid.",
"data": {
"bin_iin": "346350",
"card_brand": "AMERICAN EXPRESS",
"card_type": "CREDIT",
"card_level": "------",
"issuer_name_bank": "------",
"issuer_bank_website": "API Only",
"issuer_bank_phone": "API Only",
"iso_country_name": null,
"iso_country_code": null
}
}
Notas de campo que realmente usarás:
isValid: Booleano. La señal decisiva para tu flujo. Si es falso, rechaza temprano.data.card_brand: por ejemplo, AMERICAN EXPRESS. Dirige el enrutamiento y las políticas de aceptación a nivel de marca.data.card_type: por ejemplo, CREDITO. Útil para diferenciar el manejo de débito/crédito si la configuración de tu adquirente varía.data.bin_iin: Eco del BIN de la solicitud; bueno para registros y auditorías.data.issuer_* / iso_country_*: Cuando esté disponible, úsalo para controles de riesgo y reglas basadas en el país.
A continuación se presentan ejemplos adicionales completos de JSON que repiten la misma muestra oficial para que puedas copiar/pegar en pruebas o fixtures sin modificación.
JSON (fixture A)
{
"status": 200,
"success": true,
"isValid": true,
"message": "The BIN number is valid.",
"data": {
"bin_iin": "346350",
"card_brand": "AMERICAN EXPRESS",
"card_type": "CREDIT",
"card_level": "------",
"issuer_name_bank": "------",
"issuer_bank_website": "API Only",
"issuer_bank_phone": "API Only",
"iso_country_name": null,
"iso_country_code": null
}
}
JSON (fixture B)
{
"status": 200,
"success": true,
"isValid": true,
"message": "The BIN number is valid.",
"data": {
"bin_iin": "346350",
"card_brand": "AMERICAN EXPRESS",
"card_type": "CREDIT",
"card_level": "------",
"issuer_name_bank": "------",
"issuer_bank_website": "API Only",
"issuer_bank_phone": "API Only",
"iso_country_name": null,
"iso_country_code": null
}
}
JSON (fixture C)
{
"status": 200,
"success": true,
"isValid": true,
"message": "The BIN number is valid.",
"data": {
"bin_iin": "346350",
"card_brand": "AMERICAN EXPRESS",
"card_type": "CREDIT",
"card_level": "------",
"issuer_name_bank": "------",
"issuer_bank_website": "API Only",
"issuer_bank_phone": "API Only",
"iso_country_name": null,
"iso_country_code": null
}
}
Casos de uso, integración de MCP y notas de producción
Casos de uso de finanzas en el mundo real
- Pre-validación de pago: Rechaza BINs evidentemente incorrectos antes de llegar a tu PSP, ahorrando tarifas de gateway y latencia.
- Lista blanca de marcas: Acepta solo marcas soportadas por país o categoría de comerciante.
- Desencadenantes de SCA/3DS: Aplica controles adaptativos basados en marca y tipo.
- Puntuación de riesgo: Alimenta
isValid,card_brandyiso_country_code(cuando esté disponible) en tu modelo de riesgo. - Soporte e informes: Almacena
bin_iinycard_brandpara tableros de conciliación.
Llamando a la API desde agentes de IA a través de MCP
Cada API de Zyla puede ser invocada a través del protocolo de contexto de modelo (MCP). Apunta cualquier cliente compatible con MCP (por ejemplo, Claude Code, Cursor, Windsurf) al endpoint de MCP y proporciona tu clave API:
- Gateway de MCP:
https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY - Aprende más aquí: MCP
Dentro de tu agente, configura una herramienta que emita un GET al endpoint de verificación de BIN con la consulta bin y el encabezado Authorization: Bearer. El agente puede luego ramificarse en isValid y leer data.card_brand para pasos posteriores.
Notas de producción que ahorran tiempo
- Autenticación: Siempre envía
Authorization: Bearer YOUR_API_KEY. No pases claves en cadenas de consulta. - Validación de entrada: Asegúrate de que el
bintenga exactamente 6 caracteres numéricos antes de llamar a la API. - Timeouts y reintentos: Las llamadas de red fallan; establece un tiempo de espera del cliente (por ejemplo, 5–10s) y reintenta con retroceso para condiciones transitorias 5xx/timeout.
- Cacheo: Los datos de BIN son relativamente estables. Cachea respuestas indexadas por
bindurante horas o días para reducir la latencia y las cuotas. - Manejo de errores: Verifica el estado HTTP y valida el esquema JSON antes de leer campos anidados. Retrocede de manera elegante si los campos son nulos u ofuscados (por ejemplo, “Solo API”).
- Minimización de datos: Solo transmite el BIN, nunca el PAN completo de la tarjeta o CVV a este endpoint.
- Observabilidad: Registra
bin,isValid,card_brandy estado HTTP para auditoría y ajuste (evita almacenar PANs completos). - Separación de entornos: Diferentes claves por entorno; nunca comprometas claves en el código.
Para cuotas y opciones de acceso actuales, revisa la página de la API en Zyla API Hub. La facturación es por suscripción + cuota, no pago por llamada; no hay Plan Gratuito. El primer acceso a la API a menudo proporciona una prueba de 7 días o 50 solicitudes; verifica en la lista.
FAQ
1) ¿Cuál es el endpoint exacto y el método que debo llamar?
Usa GET contra: https://zylalabs.com/api/40/credit-card-validator-bin-checker-api/1885/bin-checker?bin=346350 (reemplaza el valor de bin). Incluye el encabezado Authorization: Bearer YOUR_API_KEY.
2) ¿Qué parámetros son requeridos?
Solo se requiere un parámetro de consulta: bin (cadena), los primeros seis dígitos de la tarjeta.
3) ¿Cómo se ve la respuesta?
El cuerpo incluye status, success, isValid, message, y un objeto data con campos como bin_iin, card_brand, y card_type. Consulta las muestras de JSON arriba.
4) ¿Cómo se maneja la facturación?
Zyla utiliza un modelo de suscripción + cuota (no pago por llamada). No hay Plan Gratuito. Para esta API, la primera API típicamente ofrece una prueba de 7 días o 50 solicitudes. Consulta la página de la API para detalles actuales.
5) ¿Puedo llamar a esto desde un agente de IA?
Sí. Usa el gateway de Zyla MCP en https://mcp.zylalabs.com/mcp?apikey=YOUR_API_KEY y configura tu agente para emitir un GET al endpoint de verificación de BIN con el encabezado de autorización requerido.
¿Listo para validar BINs en tu proceso de pago o servicio de riesgo en PHP? Crea tu cuenta, suscríbete a la API y obtén tu clave: Regístrate. Puedes explorar APIs adicionales de Finanzas y Pagos en cualquier momento en Zyla API Hub y en la página dedicada de la API de validador de tarjetas de crédito - verificación de BIN.