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 |