Skip to content

Approval Notifications — Proposed Guide

Planned API — Reference Only

Approval Notifications: Notifications could tell a reviewer that work is awaiting attention. Delivery of a notification is not evidence that the reviewer…

Overview

Notifications could tell a reviewer that work is awaiting attention. Delivery of a notification is not evidence that the reviewer saw or approved the expense.

Key concepts

Separate notification identity, review identity and channel delivery status. Avoid embedding sensitive expense detail in broad collaboration channels.

Implementation considerations

No messages are sent here. A future design needs deduplication, authorized recipients and preferences independent of approval state.

Illustrative data model

This local fixture shows a possible representation for the concepts above. It is not an endpoint response, production configuration or a claim that the described capability is implemented.

JSON fixture
Fictional concept fixture
{
  "reference_only": true,
  "topic": "Approval Notifications",
  "notification_id": "notification_example_123",
  "approval_id": "apr_example_123",
  "recipient_id": "usr_example_123",
  "status": "draft"
}

Design review checklist

  • Document which organization owns the approval notifications representation and which actor may view or change it.
  • Test the boundaries of notification id, approval id, recipient id, status using synthetic values, including missing or inconsistent references.
  • Before future implementation, obtain an approved contract and review failure behavior. This documentation does not authorize production activation.

Proposed data types

Illustrative field dictionary
NameTypeDescription
notification_idstringStable fictional notification reference; not a secret and not evidence that a resource exists.
approval_idstringStable fictional approval reference; not a secret and not evidence that a resource exists.
recipient_idstringStable fictional recipient reference; not a secret and not evidence that a resource exists.
statusstringProposed lifecycle value. Its meaning depends on the resource and must not be inferred from HTTP success.