Documentación · API

API de Lealtad

Conecta tu programa de lealtad directo con tu propio sistema — POS, CRM, lo que ya uses. Consulta saldos, abona puntos, canjea premios y da de alta clientes, todo desde tu código.

Autenticación

Cada solicitud necesita tu llave de API en el header Authorization. Genera tu llave desde tu panel, en la sección "API" de tu negocio.

Authorization: Bearer lz_TU_LLAVE_AQUI

Tu llave da acceso completo a los datos de tu negocio únicamente — nunca a los de otros negocios. Puedes tener varias llaves activas (por ejemplo, una por sucursal o por sistema) y revocarlas individualmente sin afectar las demás.

Antes de empezar

Endpoints

GET/lealtad_api_tarjeta.php

Consulta el saldo y los datos de una tarjeta.

ParámetroTipoDescripción
codequeryCódigo impreso en la tarjeta física.
phonequeryTeléfono del cliente (tarjeta digital). Usa uno u otro.
curl "https://kredentik.com/api/lealtad_api_tarjeta.php?code=AB12CD34" \
  -H "Authorization: Bearer lz_TU_LLAVE"
{
  "success": true,
  "data": {
    "code": "AB12CD34",
    "phone": null,
    "customer_name": "Juan Pérez",
    "balance_points": 45,
    "created_at": "2026-08-01 10:00:00",
    "activated_at": "2026-08-03 18:22:10"
  }
}

POST/lealtad_api_abonar.php

Registra una compra y abona los puntos/sellos correspondientes. Aplica las mismas validaciones anti-fraude que la pantalla del cajero: el folio no se puede repetir el mismo día, y hay un límite de frecuencia por tarjeta.

CampoObligatorioDescripción
codeUno de los dosCódigo de la tarjeta.
phoneUno de los dosTeléfono del cliente.
folioSíNúmero de ticket/comanda de la venta.
amountSolo si el negocio es "por puntos"Monto de la compra.
curl -X POST "https://kredentik.com/api/lealtad_api_abonar.php" \
  -H "Authorization: Bearer lz_TU_LLAVE" \
  -H "Content-Type: application/json" \
  -d '{"code": "AB12CD34", "folio": "00456", "amount": 250.00}'
{
  "success": true,
  "data": {
    "points_earned": 25,
    "card": { "code": "AB12CD34", "balance_points": 70, ... }
  }
}

POST/lealtad_api_canjear.php

Canjea un premio del catálogo. A diferencia de la pantalla del cajero, esto no pide PIN de gerente — tu llave de API ya es la autorización, así que tu sistema es responsable de cuándo la usa.

CampoObligatorioDescripción
codeUno de los dosCódigo de la tarjeta.
phoneUno de los dosTeléfono del cliente.
reward_idSíID del premio (ver /lealtad_api_premios.php).
curl -X POST "https://kredentik.com/api/lealtad_api_canjear.php" \
  -H "Authorization: Bearer lz_TU_LLAVE" \
  -H "Content-Type: application/json" \
  -d '{"code": "AB12CD34", "reward_id": 3}'

GET/lealtad_api_premios.php

Lista el catálogo de premios activos de tu negocio.

curl "https://kredentik.com/api/lealtad_api_premios.php" \
  -H "Authorization: Bearer lz_TU_LLAVE"
{ "success": true, "data": { "rewards": [
  { "id": 3, "name": "Postre gratis", "cost_points": 50 },
  { "id": 4, "name": "10% de descuento", "cost_points": 20 }
] } }

POST/lealtad_api_crear_tarjeta.php

Da de alta una tarjeta digital nueva por teléfono — útil si tu sistema registra clientes nuevos automáticamente en el punto de venta. Si el teléfono ya tenía tarjeta en tu negocio, regresa la existente en vez de duplicarla.

CampoObligatorioDescripción
phoneSíTeléfono del cliente.
nameNoNombre del cliente.
curl -X POST "https://kredentik.com/api/lealtad_api_crear_tarjeta.php" \
  -H "Authorization: Bearer lz_TU_LLAVE" \
  -H "Content-Type: application/json" \
  -d '{"phone": "5551234567", "name": "Ana López"}'

Códigos de error comunes

HTTPCódigoSignificado
401invalid_api_keyLa llave no existe o fue revocada.
403business_not_activeEl negocio no tiene el servicio activo (pendiente de pago o vencido).
404card_not_foundNo existe ninguna tarjeta con ese código/teléfono en este negocio.
409transaction_rejectedFolio repetido, o la tarjeta abonó hace muy poco tiempo.
409insufficient_balanceLa tarjeta no tiene saldo suficiente para el premio.
429rate_limitedMás de 60 solicitudes por minuto con esa llave.

¿Ya tienes tu programa de Lealtad en Kredentik? Genera tu llave desde tu cuenta.

Iniciar sesión