Autenticación
MorisBox expone dos tipos de claves según el tipo de cuenta.
| Cuenta | Prefijo de clave | Uso |
|---|---|---|
| Socio | sk_… (excepto sk_dev_) | Partner API completa (/messages, bots, plantillas…) |
| Desarrollador | sk_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
| Propiedad | Descripción |
|---|---|
| Formato | Opaco (sk_…) |
| Almacenamiento | Hash del lado del servidor; el secreto se muestra una sola vez |
| Scopes | send, read, templates, full… |
| Allowlist de IP | Opcional por clave |
Crear una clave (Partner Hub)
- Iniciar sesión en Partner Hub
- Administración → Claves API → Crear
- 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)
| Endpoint | Función |
|---|---|
POST /api/v1/auth/partner/login | Inicio de sesión + contraseña → clave de sesión |
POST /api/v1/auth/partner/logout | Revoca la clave de sesión |
| Onboarding | Solicitud 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.
| Endpoint | Función |
|---|---|
POST /api/v1/auth/developer/register | Crear una cuenta + primera clave |
POST /api/v1/auth/developer/login | Sesión del panel |
GET/POST /api/v1/dev/api-keys | Gestionar 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).