C
Cotizera Docs

Notificaciones

API de Notificaciones

Endpoints para gestionar las notificaciones dentro de la aplicación. Las notificaciones están asociadas al usuario y tenant actual. No se requieren permisos especiales de rol, solo estar autenticado.


Listar Notificaciones

GET /api/notifications

Obtiene una lista paginada de notificaciones del usuario autenticado, con un conteo de no leídas.

Parámetros de consulta:

Parameter Type Required Description
page number No Número de página (predeterminado: 1, máximo: 1000)
limit number No Elementos por página (predeterminado: 20, máximo: 50)
unread string No Usa "true" para mostrar solo notificaciones no leídas

Respuesta 200 OK:

{
  "data": [
    {
      "id": "clxyz...",
      "type": "quote_won",
      "title": "Cotización ganada",
      "body": "La cotización COT-0042 fue marcada como ganada",
      "metadata": { "quoteId": "...", "quoteNumber": 42 },
      "readAt": null,
      "createdAt": "2026-03-31T10:00:00.000Z"
    }
  ],
  "unreadCount": 5
}

Errores:

Status Error When
401 "No autorizado" Sesión ausente o no válida

Ejemplo con cURL:

curl -X GET "https://cotizera.com/api/notifications?unread=true&limit=10" \
  -H "Cookie: next-auth.session-token=YOUR_TOKEN"

Marcar como Leída

PATCH /api/notifications/:id/read

Marca una notificación individual como leída estableciendo readAt con la fecha y hora actual. Solo funciona para notificaciones que pertenecen al usuario autenticado.

Cuerpo de la solicitud: No se requiere.

Respuesta 200 OK:

{
  "success": true
}

Errores:

Status Error When
401 "No autorizado" Sesión ausente o no válida
404 "No encontrada" La notificación no existe o pertenece a otro usuario

Marcar Todas como Leídas

POST /api/notifications/mark-all-read

Marca todas las notificaciones no leídas del usuario autenticado como leídas.

Cuerpo de la solicitud: No se requiere.

Respuesta 200 OK:

{
  "updated": 5
}

El campo updated indica cuántas notificaciones fueron marcadas como leídas.

Errores:

Status Error When
401 "No autorizado" Sesión ausente o no válida
© 2026 Cotizera. All rights reserved.