Autenticación

MorisBox expone dos tipos de claves según el tipo de cuenta.

CuentaPrefijo de claveUso
Sociosk_… (excepto sk_dev_)Partner API completa (/messages, bots, plantillas…)
Desarrolladorsk_dev_…Solo API para desarrolladores (/dev/*): plantillas de MorisBox

No utilice los JWT de usuarios finales en un backend de socio o desarrollador.


Encabezado común

Authorization: Bearer <api_key>
Content-Type: application/json

Las claves de desarrollador también aceptan X-Api-Key: sk_dev_….


Claves de socios

PropiedadDescripción
FormatoOpaco (sk_…)
AlmacenamientoHash del lado del servidor; el secreto se muestra una sola vez
Scopessend, read, templates, full
Allowlist de IPOpcional por clave

Crear una clave (Partner Hub)

  1. Iniciar sesión en Partner Hub
  2. Administración → Claves API → Crear
  3. Copiar el secreto de inmediato

Creación programática

POST /api/v1/settings/api-keys
Authorization: Bearer <clé_existante>
{
  "name": "Backend production",
  "scopes": "send"
}

Inicio de sesión en Partner Hub (interfaz)

EndpointFunción
POST /api/v1/auth/partner/loginInicio de sesión + contraseña → clave de sesión
POST /api/v1/auth/partner/logoutRevoca la clave de sesión
OnboardingSolicitud de una cuenta de socio

Las integraciones de servidor deben preferir claves API dedicadas, no la sesión de la interfaz.


Claves de desarrolladores

Consulte la guía completa: Cuentas de desarrollador.

EndpointFunción
POST /api/v1/auth/developer/registerCrear una cuenta + primera clave
POST /api/v1/auth/developer/loginSesión del panel
GET/POST /api/v1/dev/api-keysGestionar las claves
DELETE /api/v1/dev/api-keys/{id}Revocar

Los desarrolladores no utilizan el endpoint para socios /api/v1/messages: únicamente /api/v1/dev/messages con template_code.


Lista de comprobación de seguridad

  • HTTPS en producción / sandbox público
  • Rotar las claves en caso de filtración
  • Principio de mínimo privilegio (scopes)
  • Nunca incorporar una clave en una aplicación móvil pública
  • Verificar las firmas de webhook (Webhooks)

Respuestas no autorizadas

{
  "error": {
    "code": "unauthorized",
    "message": "Invalid or expired API key."
  }
}

Estados: 401 (clave no válida) o 403 (scope / IP / rol).