Skip to main content

Notification Endpoint Catalog

Summary

This is the single authoritative catalog. Every verified Notification endpoint appears exactly once: 17 native operations on notification-service, 10 compatibility operations on the monolith, and 2 gateway aggregation operations that read notification data. Gateway proxy routes carry no handlers of their own and are documented in gateway and compatibility.

Audience

API consumers, engineers, architects, QA, support, security reviewers and implementation partners.

Reference Content

The verified reference material for this topic is set out in the sections below.

Reading this catalog

  • Authentication and Authorization record what the reviewed source declares on the endpoint itself, not what an upstream component might add.
  • Tenant behavior records how the handler treats tenant identity.
  • Validation records the guard clauses present in the handler.
  • Compatibility classification is one of Native, Compatibility or Gateway aggregation.
  • No example identifiers, hosts, credentials or payload captures appear in this catalog.

Native operational endpoints

MethodRoutePurposeAuthAuthzTenantValidationResponseClassSource
GET/Service informationNone declaredNone declaredNot applicableNoneApiResponse<ServiceInfoResponse> with correlation idNativemicroservices/src/shared-kernel/Extensions/EndpointRouteBuilderExtensions.cs
GET/healthHealth-check reportNone declaredNone declaredNot applicableNoneDefault health-check reportNativemicroservices/src/notification-service/Program.cs

Native inbox endpoints

MethodRoutePurposeAuthAuthzTenantValidationResponseClassSource
GET/notifications/myRecipient in-app inboxNone declaredNone declaredtenantId query value matched directly against Recipients.TenantId; null matches null-tenant rowsrecipientRef required; take clamped 1–500200 anonymous projection array; empty array when no recipient matchesNativemicroservices/src/notification-service/Api/NotificationEndpoints.cs
POST/notifications/{id:guid}/readMark an in-app message readNone declaredNone declaredNot scoped — lookup is by message id aloneRoute guid constraint only200 anonymous projection; 404 when absentNativemicroservices/src/notification-service/Api/NotificationEndpoints.cs

Native template endpoints

MethodRoutePurposeAuthAuthzTenantValidationResponseClassSource
GET/notification-templatesList templates with optional filtersNone declaredNone declaredOptional tenantId filter; unfiltered by defaultChannel filter normalized; no other checks200 template entity arrayNativemicroservices/src/notification-service/Api/NotificationEndpoints.cs
POST/notification-templatesCreate the next version for a tenant, key and channelNone declaredNone declaredtenantId from body; blank becomes null (global)templateKey and channel required; channel must be known201 with Location and the created entity; 400 on failureNativemicroservices/src/notification-service/Api/NotificationEndpoints.cs
PUT/notification-templates/{id:guid}Update a template row in placeNone declaredNone declaredNot scoped — lookup is by template id aloneRoute guid constraint; only non-null fields applied200 updated entity; 404 when absentNativemicroservices/src/notification-service/Api/NotificationEndpoints.cs
POST/notification-templates/{id:guid}/testRender, and optionally send, a templateNone declaredNone declaredInherits the template's tenantRoute guid constraint; send requires toAddress200 render result, or render plus delivery outcome; 404 when absentNativemicroservices/src/notification-service/Api/NotificationEndpoints.cs

Native administration endpoints

MethodRoutePurposeAuthAuthzTenantValidationResponseClassSource
GET/notifications/{id:guid}Read one messageNone declaredNone declaredNot scopedRoute guid constraint200 message entity; 404 when absentNativemicroservices/src/notification-service/Api/NotificationEndpoints.cs
GET/notifications/{id:guid}/attemptsDelivery attempts for a messageNone declaredNone declaredNot scopedRoute guid constraint200 attempt array, ordered by attempt numberNativemicroservices/src/notification-service/Api/NotificationEndpoints.cs
POST/notifications/{id:guid}/retryRe-drive delivery of a messageNone declaredNone declaredNot scopedRoute guid constraint200 status projection; 404 when absentNativemicroservices/src/notification-service/Api/NotificationEndpoints.cs
GET/notifications/failedMessages that exhausted retriesNone declaredNone declaredNot scoped — all tenantstake clamped 1–500200 message arrayNativemicroservices/src/notification-service/Api/NotificationEndpoints.cs
GET/notifications/processed/{eventId:guid}Idempotency lookup for a consumed eventNone declaredNone declaredNot scopedRoute guid constraint200 processed-event row; 404 when absentNativemicroservices/src/notification-service/Api/NotificationEndpoints.cs
GET/notifications/auditAudit-trail queryNone declaredNone declaredNot scoped — all tenantstake clamped 1–1000200 audit arrayNativemicroservices/src/notification-service/Api/NotificationEndpoints.cs
GET/notifications/statsAggregate countsNone declaredNone declaredNot scoped — platform-wide countsNone200 anonymous count projectionNativemicroservices/src/notification-service/Api/NotificationEndpoints.cs

Native test endpoints

MethodRoutePurposeAuthAuthzTenantValidationResponseClassSource
POST/notifications/test/dispatchRun an event through the dispatcher without the brokerNone declaredNone declaredtenantId taken from the bodyeventType required200 outcome projectionNativemicroservices/src/notification-service/Api/NotificationEndpoints.cs
POST/notifications/test/publishPublish an event onto the busNone declaredNone declaredtenantId written to message metadataeventType required200 publish acknowledgement; 502 when the bus reports failureNativemicroservices/src/notification-service/Api/NotificationEndpoints.cs

Compatibility endpoints — monolith notifications

All six declare [Authorize] at the controller and resolve the caller by email claim.

MethodRoutePurposeAuthAuthzTenantValidationResponseClassSource
GET/api/notificationsUnread notifications for the callerRequiredAuthenticated caller onlyImplicit via the resolved user recordNone200 DTO array, capped at 20; 401 when unresolvedCompatibilityControllers/NotificationsController.cs
GET/api/notifications/allAll notifications for the callerRequiredAuthenticated caller onlyImplicit via the resolved user recordNone200 DTO array, capped at 200; 401 when unresolvedCompatibilityControllers/NotificationsController.cs
GET/api/notifications/unread-countUnread countRequiredAuthenticated caller onlyImplicit via the resolved user recordNone200 count projection; 401 when unresolvedCompatibilityControllers/NotificationsController.cs
POST/api/notifications/{id}/readMark one notification readRequiredOwnership enforced — the row must belong to the callerImplicit via the resolved user recordOptional source selects the legacy table200 DTO; 404 when not owned or absentCompatibilityControllers/NotificationsController.cs
POST/api/notifications/{id}/dismissAlias that delegates to the read actionRequiredOwnership enforcedImplicit via the resolved user recordNoneSame as the read actionCompatibilityControllers/NotificationsController.cs
POST/api/notifications/read-allMark all caller notifications readRequiredScoped to the caller's rowsImplicit via the resolved user recordNone200 updated-count projectionCompatibilityControllers/NotificationsController.cs

Compatibility endpoints — monolith templates

All four declare [Authorize] at the controller.

MethodRoutePurposeAuthAuthzTenantValidationResponseClassSource
GET/api/notification-templatesList templates by event keyRequiredAuthenticated caller onlyTenant-scoped override flag on each rowNone200 template DTO arrayCompatibilityControllers/NotificationTemplatesController.cs
PUT/api/notification-templates/{eventKey}Save a template for an event keyRequiredAuthenticated caller onlyTenant-scoped overrideBound update DTO200 saved DTOCompatibilityControllers/NotificationTemplatesController.cs
POST/api/notification-templates/{eventKey}/previewRender a preview with sample dataRequiredAuthenticated caller onlyTenant-scoped overrideBound preview request200 preview DTOCompatibilityControllers/NotificationTemplatesController.cs
POST/api/notification-templates/{eventKey}/resetReset a template to its definition defaultRequiredAuthenticated caller onlyTenant-scoped overrideNone200 reset DTOCompatibilityControllers/NotificationTemplatesController.cs

Gateway aggregation endpoints

These are gateway-owned handlers that read notification data as one input among several. They are not part of the notification service contract.

MethodRoutePurposeAuthAuthzTenantValidationResponseClassSource
GET/ess/notificationsEmployee self-service notification listGateway-ownedGateway-ownedRecipient reference derived from the requestFixed page sizeAggregated single-source resultGateway aggregationmicroservices/src/gateway-api/EssEndpoints.cs
GET/ess/dashboardSelf-service dashboard including a notification sliceGateway-ownedGateway-ownedRecipient reference derived from the requestFixed page sizeAggregated multi-source resultGateway aggregationmicroservices/src/gateway-api/EssEndpoints.cs

Totals

SurfaceOperations
Native operational2
Native inbox2
Native template4
Native administration7
Native test2
Native total17
Compatibility — notifications6
Compatibility — templates4
Compatibility total10
Gateway aggregation2
Catalog total29

Verified absence

No native endpoint exists for deleting a template, deleting a message, managing recipient preferences, exporting notification history, resending in bulk, or querying delivery by channel. No PATCH or DELETE verb is mapped anywhere on the native surface.

Classification

Implemented catalog; the compatibility rows are Transitional.

Requires confirmation

Which endpoints are approved for direct external consumption, and whether the unscoped administration endpoints are intended to remain platform-wide, require confirmation.

See Also

Keywords

  • Notification API
  • Endpoint Catalog
  • Draft API documentation

Source References

  • microservices/src/notification-service/Api/NotificationEndpoints.cs
  • microservices/src/notification-service/Program.cs
  • microservices/src/shared-kernel/Extensions/EndpointRouteBuilderExtensions.cs
  • Controllers/NotificationsController.cs
  • Controllers/NotificationTemplatesController.cs
  • microservices/src/gateway-api/EssEndpoints.cs

Revision Information

  • Status: Draft
  • Last reviewed: 2026-07-21
  • Review cycle: Quarterly