Saltar al contenido principal

Autenticación — Visión general

TPVReady soporta dos modelos de autenticación que conviven en la misma API:

  • JWT — Para usuarios humanos que inician sesión.
  • API Key — Para servicios externos sin humano (chatbots, scripts, automatizaciones).

Ambos coexisten: el mismo endpoint puede aceptar JWT y API Key indistintamente (cuando está habilitado para integración).


Comparativa rápida

AspectoJWTAPI Key
Cómo se obtienePOST /auth/login con email/passwordGenerada desde el panel de TPVReady
Caducidad8 h (renovable con refresh token)No caduca hasta revocarse
Header HTTPAuthorization: Bearer <token>X-API-Key: <clave>
IdentidadUn usuario humano concretoUna integración (sin humano)
PermisosLos del usuario (admin, vendedor, etc.)Los scopes asignados a la clave
Caso típicoApp propia, panel del clienteWhatafarma, Zapier, scripts
TrazabilidadQué usuario hizo quéQué integración hizo cuántas llamadas

¿Cuándo usar JWT?

Usa JWT si tu aplicación:

  • Tiene usuarios humanos que se registran o inician sesión.
  • Necesita actuar en nombre del usuario que está usando la aplicación.
  • Es una app móvil propia, un portal web o cualquier producto user-facing.
  • Es tu propio frontend consumiendo tu propia API.

Detalles del flujo JWT →


¿Cuándo usar API Key?

Usa API Key si tu aplicación:

  • Es un servicio backend sin interfaz humana.
  • Necesita actuar en nombre de la empresa, no de un usuario concreto.
  • Hace llamadas automatizadas (sincronizaciones, chatbots, integraciones).
  • Necesita permisos restringidos a ciertas entidades (solo leer clientes, por ejemplo).
  • Se distribuye a terceros (un partner, una farmacia que contrata Whatafarma).

Detalles de API Keys →


¿Y si mi app necesita las dos?

Es perfectamente válido. Casos comunes:

  • Webapp con backend propio: el frontend usa JWT de su usuario, y el backend hace llamadas adicionales con API Key para tareas programadas.
  • App móvil con sincronización: JWT mientras el usuario navega, API Key para un worker que sincroniza cada hora.

Endpoints públicos (sin autenticación)

Algunos endpoints no requieren auth:

EndpointPara qué
POST /auth/loginIniciar sesión y obtener JWT
POST /auth/registroRegistrar empresa nueva
POST /auth/googleLogin/registro con Google
POST /auth/refreshRenovar JWT con refresh token
GET /auth/verificar-emailVerificar email tras registro
POST /auth/reset-passwordSolicitar reset de contraseña
GET /sistema/healthHealthcheck público

Todo lo demás requiere autenticación.