Autenticación

Login, refresh, sesión y multifactor. Punto de entrada del dashboard y de cualquier integración interactiva.

Base path: /auth·9 endpoints·Source: mosend-wb-backend/src/modules/auth/auth.controller.ts
POST/auth/signup
público

Crear cuenta de usuario

Body (JSON)

  • emailstring · emailrequerido
  • passwordstringrequerido
  • namestringrequerido
  • captchaTokenstring

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/auth/signup' \
  -H 'Content-Type: application/json' \
  -d '{"email": "persona@empresa.com","password": "<password>","name": "<name>","captchaToken": "<captchaToken>"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/auth/login
público

Iniciar sesión

Body (JSON)

  • emailstring · emailrequerido
  • passwordstringrequerido
  • twoFactorCodestring
  • captchaTokenstring

Respuestas

  • 200
curl -X POST 'https://api.mosend.dev/auth/login' \
  -H 'Content-Type: application/json' \
  -d '{"email": "persona@empresa.com","password": "<password>","twoFactorCode": "<twoFactorCode>","captchaToken": "<captchaToken>"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "email": "info@empresa.com",
    "password": "••••••••"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/auth/refresh
público

Renovar tokens (rotación)

Body (JSON)

  • refreshTokenstringrequerido

Respuestas

  • 200
curl -X POST 'https://api.mosend.dev/auth/refresh' \
  -H 'Content-Type: application/json' \
  -d '{"refreshToken": "<refreshToken>"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/auth/logout
público

Cerrar sesión (revoca el refresh token)

Body (JSON)

  • refreshTokenstringrequerido

Respuestas

  • 204
curl -X POST 'https://api.mosend.dev/auth/logout' \
  -H 'Content-Type: application/json' \
  -d '{"refreshToken": "<refreshToken>"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/auth/forgot-password
público

Solicita un email de recuperación de contraseña. Por seguridad SIEMPRE responde 200 — no revela si el email existe o no en el sistema.

Body (JSON)

  • emailstring · emailrequerido
  • captchaTokenstring

Respuestas

  • 200
curl -X POST 'https://api.mosend.dev/auth/forgot-password' \
  -H 'Content-Type: application/json' \
  -d '{"email": "persona@empresa.com","captchaToken": "<captchaToken>"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/auth/verify-email
público

Canjea el token de verificación de email enviado tras signup. Marca al usuario como verificado y desbloquea acciones sensibles (envío de mensajes, conectar WhatsApp, billing).

Body (JSON)

  • tokenstringrequerido

Respuestas

  • 200
curl -X POST 'https://api.mosend.dev/auth/verify-email' \
  -H 'Content-Type: application/json' \
  -d '{"token": "<token>"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/auth/resend-verification
bearer

Reenvía el email de verificación al usuario logueado. Si ya está verificado, responde 200 sin enviar (idempotente).

Respuestas

  • 200
curl -X POST 'https://api.mosend.dev/auth/resend-verification' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "createdAt": "2026-05-01T03:42:18.123Z"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/auth/reset-password
público

Canjea el token recibido por email + nueva contraseña. Si el token es inválido/expirado lanza 401. Tras éxito se revocan todas las sesiones activas del usuario (logout en todos los dispositivos).

Body (JSON)

  • tokenstringrequerido
  • passwordstringrequerido

Respuestas

  • 200
curl -X POST 'https://api.mosend.dev/auth/reset-password' \
  -H 'Content-Type: application/json' \
  -d '{"token": "<token>","password": "<password>"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/auth/impersonate-redeem
público

Canjea un ImpersonationToken (creado por staff via /admin/impersonate) por una sesión válida del target user. El JWT resultante lleva el flag `impersonatedBy` para que el frontend muestre banner persistente.

Body (JSON)

  • tokenstringrequerido

Respuestas

  • 200
curl -X POST 'https://api.mosend.dev/auth/impersonate-redeem' \
  -H 'Content-Type: application/json' \
  -d '{"token": "<token>"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}