Back to Blog
Technical Spec

Authorization Needs an Outcome Record

How KYA connects agent attestations, verification decisions, and what happened next

Know Your Agent (KYA)August 20, 20266 min read

A signed agent credential answers one important question: did this request carry an authorization claim that a verifier could check? It does not answer the questions a merchant receives later from risk, operations, or a customer: what decision did we make, what did the agent actually buy, and did the transaction end in a completion, refund, or dispute?

That is the gap behind KYA's Phase 0 attestation record. The design keeps the authorization side and the outcome side separate, then binds them to the same internal verification record. The result is a replayable evidence chain, not a new score and not a claim that one issuer is more trustworthy than another.

/ Takeaway

The core record is simple: what authorization was observable, what KYA decided, and what the merchant or provider reported after the decision.

The missing middle is the asset

Most agent-commerce systems can log a request. Some can verify a signature. Fewer can connect that request to a terminal merchant event without accepting client-supplied IDs as truth. That missing linkage is where the useful history lives.

KYA treats the verification record as the join key. A normalized attestation set points to the internal verification row, while a later outcome receipt points to that same row. Each part keeps its own meaning:

authorization claim
        |
        v
normalized attestation set  --->  KYA verification decision
                                      |
                                      v
                         authoritative outcome receipt

This matters because authorization is not behavior. A valid trace can show that an agent had a spending limit. It cannot show that the agent stayed inside that limit, that the order was fulfilled, or that a later dispute was resolved correctly.

What Phase 0 records

The record normalizes facts from documented authorization sources into one issuer-neutral shape. The first adapters cover Visa TAP observations, Web Bot Auth observations, and KYA trace credentials. Each observation includes the issuer, adapter version, verdict, non-secret reference, asserted scope, key identifier, and time bounds when those facts are verified.

RecordPurposeBoundary
Attestation setRecord observable authorization claimsNo raw tokens, signatures, or nonces
VerificationRecord the merchant-side decisionUses the internal verification UUID
Outcome receiptRecord what the merchant or provider reportedReplay-safe and source-scoped

A failed or unavailable credential is recorded as invalid, expired, or unobservable when the evidence does not support a stronger claim. The system does not turn a request ID, traceparent, or bare trace string into an attestation.

Append-only is a product decision

A historical record is useful only if a later replay can trust its boundaries. Phase 0 writes through a service-role function that derives the merchant and agent from the verification row. The corpus rejects direct updates and deletes, and the verification-to-set link cannot be moved to another identity.

Replays are part of the design. Concurrent writes for the same verification resolve to one set. Repeated outcome events resolve to one receipt before additive interaction or spend effects run. The record can therefore answer both questions: what was observed, and whether the same event was counted twice.

The first closed loop is Shopify

The Shopify outcome path now resolves the public verification reference stored during checkout to the internal verification UUID. It scopes that lookup to the merchant and agent, and it copies a trace only when KYA marked the trace as validated. A client-supplied payload trace cannot create the link.

Direct activity submissions follow the same rule. The account-scoped API actor determines the source and environment. The caller cannot label a direct request as Shopify, WooCommerce, Stripe ACP, or production. This keeps an integration receipt and a direct merchant report from becoming interchangeable records by accident.

/ Note

WooCommerce outcome propagation still lacks the verification and trace identifiers needed for a closed-loop join. KYA records that limitation instead of presenting an unlinked receipt as proof of agent behavior.

What this does not do

Phase 0 does not add a Visa-specific field, a Visa score bonus, or a new user interface. A future directory observation would enter the same attestation schema as any other source. A directory listing would still be evidence about authorization, not proof that an agent behaved well after authorization.

This work is record-only and local until deployment evidence exists. The next useful step is not a larger dashboard. It is collecting enough trusted, linked outcomes to test whether the corpus explains merchant risk better than isolated verification logs do.

Read the supporting product documentation for the record-only Phase 0 boundaries and the current implementation status.