Skip to content

[Feat]: Post-checkout agent action record — verifiable audit trail after Checkout Receipt #290

Description

@giskard09

Summary

AP2 defines the commerce flow through the Checkout Receipt. The Shopping Agent's role ends at "receiving Receipts and handling success and error" (implementation_considerations.md). After that receipt is issued, the Shopping Agent executes a task — books the flight, reserves the table, completes the order. AP2 does not currently define how to record that execution in a verifiable way.

The gap

The Payment Evidence Frame (#274) establishes a closed taxonomy for payment lifecycle events: payment_admission, payment_settlement, payment_cancellation, payment_refund, composite_verdict. This is the payment layer.

After the receipt with payment_settlement is issued, the Shopping Agent acts. That action is outside the PEF taxonomy by design — it is not a payment event. But it is the event that regulators and principals need to verify: what did the autonomous agent do with the access it received?

AP2 has no primitive for this.

Why this matters now

EU AI Act Article 12 requires logging capabilities for high-risk AI systems. Article 26 places the obligation on deployers to maintain those logs. Both enter force in August 2026. AP2 implementors deploying autonomous Shopping Agents in the EU will need to give a technical answer to this requirement. The Checkout Receipt confirms that payment happened. It does not confirm what the agent did next.

The gap is structural, not implementation-specific. Any Shopping Agent that receives a Checkout Receipt and executes autonomously has this audit gap, regardless of the payment processor or credential provider.

A proposed primitive: action_ref

An action_ref is a deterministic post-execution anchor:

action_ref = SHA-256(JCS({
  agent_id,       // stable identifier for the Shopping Agent
  action_type,    // what was executed (e.g. "checkout_complete")
  scope,          // what resource was accessed
  timestamp       // ISO 8601, ms precision
}))

Canonicalization follows RFC 8785 (JCS) — the same standard used throughout AP2. The action_ref is recomputable by any verifier from the same four fields, without trusting the operator that ran the agent.

This is distinct from the AlgoVoi Settlement Attestation (#271): the Settlement Attestation records the categorical payment outcome (SETTLED/PENDING/REVERSED). The action_ref records what the agent did after settlement. These are orthogonal — a verifier can have both without one implying the other.

Implementation path

A provider implementation exposes a /external/trail endpoint that accepts a POST with the action payload and returns a trail_id backed by an on-chain anchor. The action_ref is included in the trail and recomputable independently.

This is specified in draft-giskard-aeoess-action-ref (Internet-Draft, co-authored with AEOESS): https://github.com/giskard09/draft-giskard-aeoess-action-ref

CTEF v0.4 marks action_ref as REQUIRED for exactly-once execution guards (commit 773660e1). Four independent conformance sets have been validated byte-identical.

A reference implementation and self-certify endpoint are live at https://mycelium.rgiskard.xyz/external/trail

Suggested addition

Would an addition to implementation_considerations.md be the right place to document this — either as a new "Post-checkout audit" section or as an extension to the existing "Agent Identification" section? Happy to submit a PR if the direction is useful for AP2.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions