How it works
A Digital Action Receipt is generated at the moment a digital system takes an action. The receipt is a neutral artifact: it records occurrence and supports integrity verification later, independent of how the originating system later represents or explains the action.
The core lifecycle
The same lifecycle applies across legacy systems, automated systems, and agentic systems. The differences are in integration patterns — not in what the receipt means.
An approval, access change, configuration update, authorization, or other action is performed inside an existing system.
At execution time, the system invokes a receipt service in a non-blocking manner.
A receipt is generated and returned with a receipt identifier and integrity information.
The receipt identifier is used later in audits, disputes, incident timelines, or reviews. Verification confirms integrity only.
// Illustrative only (non-prescriptive)
receipt = issueReceipt({
actor: "system|service|agent|user",
action: "access.approved",
object: "resource:payments",
ref: "internal-id-123"
})
// Later: include receipt.id in a ticket / report / dispute record.
Conceptual flow
These diagrams show conceptual flow only. They are intentionally non-visual and implementation-agnostic.
Integration patterns
“How it works” in the real world is usually about where the receipt identifier travels. Below are common patterns that keep operational systems unchanged while making actions referenceable.
A line-of-business system performs actions; a receipt identifier is written into its existing case/ticket/comment field.
- No new UI required.
- Receipts become “anchors” in existing workflows.
- Verification is external and integrity-only.
An automation engine executes actions; the receipt identifier is attached to deployment records, change tickets, or incident timelines.
- Useful for “what changed?” after incidents.
- Coexists with existing logs/metrics (not a replacement).
- Receipts remain neutral artifacts.
An agent performs actions on behalf of an organization; each action emits a receipt identifier that can be reviewed later without importing agent reasoning.
- Captures occurrence at execution time.
- Does not validate correctness or intent.
- Supports human review through references.
A receipt identifier is the common pointer across multiple systems (ticketing, risk review, vendor records) without requiring shared internal access.
- Reduces dependence on screenshots and narratives.
- Allows multiple parties to reference the same artifact.
- Verification can be performed independently.
What a receipt provides
Receipts are intentionally minimal. They provide durable reference and integrity verification without inheriting the originating system’s narrative, UI, or enforcement model.
A stable reference string used in documentation, cases, and workflows.
A timestamp tied to the occurrence of the action (not to later reconstruction).
Information used to verify the receipt has not been altered.
A compact description sufficient for reference (not explanation).
Optional extension: event-triggered receipts
Some environments require identifying a discrete trigger moment after observing signals/state over time. This extension keeps responsibilities separated: event triggering determines when, the receipt service generates the receipt.
Observes signals/state and determines when a receipt-worthy event has occurred.
At the trigger moment, emits a trigger signal to invoke receipt generation (separately).