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