Invitaciones

Invitaciones por email para sumar miembros a una organización.

Base path: /·13 endpoints·Source: mosend-wb-backend/src/modules/invitations/invitations.controller.ts
GET/organizations/:orgId/invitations
bearer

Lista las invitaciones de la organización.

Path params

  • orgIdstringrequerido

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/invitations' \
  -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/organizations/:orgId/invitations
bearer

Crear invitación. Devuelve `token` UNA sola vez (enviar por email).

Path params

  • orgIdstringrequerido

Body (JSON)

  • emailstring · emailrequerido
  • roleIdstring · uuidrequerido
  • wabaIdsstring[]

    WABAs a las que se scopeará al aceptar. Vacío/omitido = acceso a todas.

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/invitations' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"email": "persona@empresa.com","roleId": "00000000-0000-0000-0000-000000000000","wabaIds": []}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "email": "invitee@empresa.com",
    "roleId": "00000000-0000-0000-0000-000000000000"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/invitations/bulk
bearer

Invita a varios correos a la vez con un mismo rol (y alcance de WABA opcional). Deduplica y omite los que ya son miembros o ya tienen invitación pendiente.

Path params

  • orgIdstringrequerido

Body (JSON)

  • emailsstring[]requerido
  • roleIdstring · uuidrequerido
  • wabaIdsstring[]

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/invitations/bulk' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"emails": [],"roleId": "00000000-0000-0000-0000-000000000000","wabaIds": []}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "email": "invitee@empresa.com",
    "roleId": "00000000-0000-0000-0000-000000000000"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/invitations/preregister
bearer

Preregistra agentes: crea sus cuentas (estado pendiente) y membresías al invitar, ocupando asiento. El agente solo define su contraseña para activarse.

Path params

  • orgIdstringrequerido

Body (JSON)

  • membersPreregisterMemberDto[]requerido
  • roleIdstring · uuidrequerido
  • wabaIdsstring[]

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/invitations/preregister' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"members": [],"roleId": "00000000-0000-0000-0000-000000000000","wabaIds": []}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "email": "info@empresa.com",
    "password": "••••••••",
    "organizationName": "Mi Empresa"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/organizations/:orgId/invitations/activation/:membershipId
bearer

Regenera el enlace de activación de un miembro pendiente. Con `notify` además reenvía el correo. Devuelve el token nuevo para copiar.

Path params

  • orgIdstringrequerido
  • membershipIdstringrequerido

Body (JSON)

  • notifyboolean

    Si true, además de devolver el enlace, reenvía el correo de activación.

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/invitations/activation/00000000-0000-0000-0000-000000000000' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"notify": true}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
DELETE/organizations/:orgId/invitations/:id
bearer

Cancela una invitación pendiente. Falla si ya fue aceptada.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Respuestas

  • 200
curl -X DELETE 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/invitations/00000000-0000-0000-0000-000000000000' \
  -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/organizations/:orgId/invitations/:id/resend
bearer

Reenvía una invitación: rota el token, refresca la expiración y vuelve a mandar el email. Falla si ya fue aceptada.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/invitations/00000000-0000-0000-0000-000000000000/resend' \
  -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/organizations/:orgId/invitations/:id/link
bearer

Genera un enlace de aceptación fresco (rota el token) SIN enviar email, para copiar y compartir por otro canal. Falla si ya fue aceptada.

Path params

  • orgIdstringrequerido
  • idstringrequerido

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/invitations/00000000-0000-0000-0000-000000000000/link' \
  -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"
}
GET/invitations/lookup
público

Datos públicos de una invitación por token (org, rol, email, si ya tiene cuenta). Sin auth — lo usa la página de aceptación.

Query params

  • tokenstringrequerido

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/invitations/lookup'
Response · 200
{
  "data": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "createdAt": "2026-05-01T03:42:18.123Z"
    }
  ],
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/invitations/accept
bearer

Aceptar invitación con el token recibido

Body (JSON)

  • tokenstringrequerido

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/invitations/accept' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"token": "<token>"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "email": "invitee@empresa.com",
    "roleId": "00000000-0000-0000-0000-000000000000"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/invitations/accept-signup
público

Acepta la invitación creando la cuenta en el mismo paso (email tomado del token). Devuelve una sesión lista para usar.

Body (JSON)

  • tokenstringrequerido
  • namestringrequerido
  • passwordstringrequerido

Respuestas

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

Datos públicos de una activación por token (org, rol, email, nombre). Sin auth — lo usa la página de activar cuenta.

Query params

  • tokenstringrequerido

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/invitations/activate-lookup'
Response · 200
{
  "data": [
    {
      "id": "00000000-0000-0000-0000-000000000000",
      "createdAt": "2026-05-01T03:42:18.123Z"
    }
  ],
  "timestamp": "2026-05-01T03:42:18.123Z"
}
POST/invitations/activate
público

Activa una cuenta preregistrada definiendo su contraseña. Devuelve una sesión lista para usar.

Body (JSON)

  • tokenstringrequerido
  • passwordstringrequerido

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/invitations/activate' \
  -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"
}