Asistencia / jornada

Referencia de 19 endpoints generados desde mosend-wb-backend/src/modules/attendance/attendance.controller.ts.

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

Estado de jornada del agente autenticado (null = sin jornada en curso).

Path params

  • orgIdstringrequerido

Respuestas

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

Inicia la jornada. Idempotente: si ya hay una en curso, la devuelve.

Path params

  • orgIdstringrequerido

Respuestas

  • 201
curl -X POST 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/attendance/start' \
  -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/attendance/status
bearer

Cambia el estado de la jornada (Activo, Almuerzo, Pausa, Reunión, Capacitación).

Path params

  • orgIdstringrequerido

Body (JSON)

  • statusstringrequerido
    ONLINELUNCHBREAKMEETINGTRAINING

Respuestas

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

Finaliza la jornada y congela el informe del día (con resumen opcional).

Path params

  • orgIdstringrequerido

Body (JSON)

  • notestring

Respuestas

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

Jornada de hoy del agente: totales en vivo, timeline, métricas y horario esperado.

Path params

  • orgIdstringrequerido

Respuestas

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

Configuración de auto-cierre de jornadas de la org (admin).

Path params

  • orgIdstringrequerido

Respuestas

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

Actualiza la configuración de auto-cierre de jornadas (admin).

Path params

  • orgIdstringrequerido

Body (JSON)

  • enabledboolean
  • autoCloseEnabledboolean
  • inactivityMinutesnumber
  • closeAtShiftEndboolean
  • requireJornadaForInboxboolean
  • allowOvertimeboolean
  • requireActiveToAttendboolean
  • workedCountingstring
    wall-clockwithin-shift
  • dayAttributionstring
    start-daysplit-by-day

    `start-day` (jornada entera al día que empezó) o `split-by-day`.

  • lateGraceMinnumber

    Minutos de gracia antes de contar tardanza.

  • earlyLeaveGraceMinnumber

    Minutos de gracia antes de contar salida temprana.

  • absenceMinWorkedMinnumber

    Minutos mínimos trabajados para que un día con turno no cuente como falta.

  • payrollPeriodstring
    semimonthlyrolling-15monthly

    Forma del período de nómina para los atajos de corte.

  • includeOpenSessionsboolean

    Incluir la jornada en curso (parcial) en los informes.

  • celebrationsany

    Celebración de los hitos de la jornada (frases + explosión).

Respuestas

  • 200
curl -X PATCH 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/attendance/settings' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"enabled": true,"autoCloseEnabled": true,"inactivityMinutes": 0,"closeAtShiftEnd": true,"requireJornadaForInbox": true,"allowOvertime": true,"requireActiveToAttend": true,"workedCounting": "wall-clock","dayAttribution": "start-day","lateGraceMin": 0,"earlyLeaveGraceMin": 0,"absenceMinWorkedMin": 0,"payrollPeriod": "semimonthly","includeOpenSessions": true,"celebrations": "<celebrations>"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
GET/organizations/:orgId/attendance/overtime
bearer

Agentes con turno extra concedido para hoy (admin).

Path params

  • orgIdstringrequerido

Respuestas

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

Concede o revoca el turno extra de un agente para hoy (admin).

Path params

  • orgIdstringrequerido
  • agentIdstringrequerido

Body (JSON)

  • enabledbooleanrequerido

Respuestas

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

Estado en vivo de todos los miembros de la org (admin): qué hace cada agente ahora.

Path params

  • orgIdstringrequerido

Respuestas

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

Tablero de asistencia de un día (admin): presente / tarde / ausente / extra por agente.

Path params

  • orgIdstringrequerido

Query params

  • datestringrequerido

Respuestas

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

Forma de trabajo de cada miembro: turno fijo o por horas (admin).

Path params

  • orgIdstringrequerido

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/attendance/work-modes' \
  -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"
}
PATCH/organizations/:orgId/attendance/work-modes/:agentId
bearer

Cambia la forma de trabajo de una persona. Recalcula también su histórico.

Path params

  • orgIdstringrequerido
  • agentIdstringrequerido

Body (JSON)

  • workModestringrequerido
    FIXEDHOURLY

Respuestas

  • 200
curl -X PATCH 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/attendance/work-modes/00000000-0000-0000-0000-000000000000' \
  -H 'X-Api-Key: mk_live_<prefix>.<secret>' \
  -H 'Content-Type: application/json' \
  -d '{"workMode": "FIXED"}'
Response · 200
{
  "data": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "string",
    "description": "string"
  },
  "timestamp": "2026-05-01T03:42:18.123Z"
}
GET/organizations/:orgId/attendance/period-presets
bearer

Atajos de período (quincena, últimos 15/30, mes) en la TZ y forma de nómina de la org.

Path params

  • orgIdstringrequerido

Respuestas

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

Reporte de horas por agente sobre un rango (admin → nómina). Default: 30 días.

Path params

  • orgIdstringrequerido

Query params

  • fromstringrequerido
  • tostringrequerido
  • comparestringrequerido

Respuestas

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

Historial de jornadas del agente autenticado (default: últimos 30 días).

Path params

  • orgIdstringrequerido

Query params

  • fromstringrequerido
  • tostringrequerido

Respuestas

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

Historial de jornadas de un agente con su informe (admin).

Path params

  • orgIdstringrequerido
  • agentIdstringrequerido

Query params

  • fromstringrequerido
  • tostringrequerido

Respuestas

  • 200
curl -X GET 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/attendance/sessions/agent/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"
}
PATCH/organizations/:orgId/attendance/sessions/:sessionId
bearer

Corrige el cierre de una jornada finalizada (admin): mueve endedAt y recalcula.

Path params

  • orgIdstringrequerido
  • sessionIdstringrequerido

Body (JSON)

  • endedAtnumberrequerido

    Nuevo instante de cierre (epoch en milisegundos).

Respuestas

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

Elimina una jornada y sus eventos (admin): registros erróneos.

Path params

  • orgIdstringrequerido
  • sessionIdstringrequerido

Respuestas

  • 200
curl -X DELETE 'https://api.mosend.dev/organizations/a1b2c3d4-1234-5678-9abc-def012345678/attendance/sessions/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"
}