{
  "capability": "com.decionis.commerce.execution_authority",
  "extends": "dev.ucp.shopping.checkout",
  "version": "2026-09-05",
  "protocol_version": "2026-04-08",
  "canonical_url": "https://decionis.com/reference/ucp-execution-authority",
  "schema_url": "https://decionis.com/reference/ucp-execution-authority.schema.json",
  "category": "execution authority for agentic commerce",
  "summary": "UCP settles how an agent transacts with a business. This extension settles whether the agent was authorised to commit the transaction, and points at the signed dossier that proves why.",
  "standing": "Published by Decionis under its own reverse-domain namespace, which UCP permits without maintainer approval. Not a UCP membership, endorsement, certification or partnership.",
  "availability": {
    "published_releases": [
      "2026-01-23",
      "2026-04-08"
    ],
    "targeted_release": "2026-04-08",
    "available_in_every_published_release": [
      "status.requires_escalation",
      "continue_url",
      "signals"
    ],
    "main_branch_only": [
      "actions",
      "request_constraints"
    ]
  },
  "verdict_mapping": [
    {
      "verdict": "ALLOW",
      "disposition": "The completion proceeds.",
      "ucp": "No status is claimed. Authority raising no objection is not a claim that the checkout is otherwise ready — that answer belongs to the business."
    },
    {
      "verdict": "ESCALATE",
      "disposition": "The completion is held, not refused.",
      "ucp": "status becomes requires_escalation, and continue_url — which UCP makes mandatory in that state — is where a human authority resolves it."
    },
    {
      "verdict": "BLOCK",
      "disposition": "The completion is refused.",
      "ucp": "There is no UCP status meaning “never”, so the call fails with an error carrying a vendor-namespaced code. UCP permits freeform codes."
    }
  ],
  "ap2_boundary": {
    "signers": [
      "The business signs ap2.merchant_authorization.",
      "The platform or the user's wallet signs ap2.checkout_mandate.",
      "The PSP verifies payment_mandate and creates nothing."
    ],
    "finding": "AP2 names exactly two signers, and no third party may generate or sign a mandate claim. So AP2 proves the terms were not tampered with and that consent was captured — it cannot express whether the principal held the authority to commit those terms. That is a different question, and it travels alongside the mandates rather than inside them."
  },
  "signals": {
    "com.decionis.authority_verdict": "ALLOW | ESCALATE | BLOCK",
    "com.decionis.dossier_id": "Identifier of the signed Decision Dossier.",
    "note": "UCP's signals object accepts vendor-namespaced keys, so a platform already holding a verdict can pass it to a business without either side negotiating this extension."
  },
  "error_codes": [
    "com.decionis.execution_authority_blocked",
    "com.decionis.execution_authority_unavailable"
  ],
  "capability_declaration": {
    "name": "com.decionis.commerce.execution_authority",
    "version": "2026-09-05",
    "extends": "dev.ucp.shopping.checkout",
    "spec": "https://decionis.com/reference/ucp-execution-authority",
    "schema": "https://decionis.com/reference/ucp-execution-authority.schema.json"
  },
  "examples": {
    "allow": "https://decionis.com/reference/ucp-execution-authority/examples/allow.json",
    "escalate": "https://decionis.com/reference/ucp-execution-authority/examples/escalate.json",
    "block": "https://decionis.com/reference/ucp-execution-authority/examples/block.json",
    "signals": "https://decionis.com/reference/ucp-execution-authority/examples/signals.json"
  }
}
