Autenticación
Login, refresh, sesión y multifactor. Punto de entrada del dashboard y de cualquier integración interactiva.
/auth·9 endpoints·Source: mosend-wb-backend/src/modules/auth/auth.controller.ts/auth/signupCrear cuenta de usuario
Body (JSON)
emailstring · emailrequeridopasswordstringrequeridonamestringrequeridocaptchaTokenstring
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>"}'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/auth/loginIniciar sesión
Body (JSON)
emailstring · emailrequeridopasswordstringrequeridotwoFactorCodestringcaptchaTokenstring
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>"}'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"email": "info@empresa.com",
"password": "••••••••"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/auth/refreshRenovar 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>"}'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/auth/logoutCerrar 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>"}'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/auth/forgot-passwordSolicita 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 · emailrequeridocaptchaTokenstring
Respuestas
- 200
curl -X POST 'https://api.mosend.dev/auth/forgot-password' \
-H 'Content-Type: application/json' \
-d '{"email": "persona@empresa.com","captchaToken": "<captchaToken>"}'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/auth/verify-emailCanjea 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>"}'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/auth/resend-verificationReenví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>'
{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"createdAt": "2026-05-01T03:42:18.123Z"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/auth/reset-passwordCanjea 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)
tokenstringrequeridopasswordstringrequerido
Respuestas
- 200
curl -X POST 'https://api.mosend.dev/auth/reset-password' \
-H 'Content-Type: application/json' \
-d '{"token": "<token>","password": "<password>"}'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}/auth/impersonate-redeemCanjea 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>"}'{
"data": {
"id": "00000000-0000-0000-0000-000000000000",
"name": "string",
"description": "string"
},
"timestamp": "2026-05-01T03:42:18.123Z"
}