---
title: "Verify an exported Decision Packet"
method: POST
path: "/api/decision/packet/verify"
tags: ["Decision Packets", "Verification"]
---

# Verify an exported Decision Packet

`POST /api/decision/packet/verify`

## Request

- Base URL: `https://www.decide.fyi`
- URL: `https://www.decide.fyi/api/decision/packet/verify`
- Auth: none required

Verifies a Decision Packet v1 object supplied in the request body, including packet hash, embedded Decision Record verification, execution and outcome hash links, intelligence report hashes, and retained audit-chain links when present. A verified=true authenticity result requires a server-configured Decide receipt key or HMAC secret.

## Request body

- VerifyDecisionPacketRequest
  - `packet` DecisionPacket, required
    - `ok` boolean, required
    - `decision_protocol_version` 'decision_protocol_v1', required
    - `decision_packet_version` 'decision_packet_v1', required
    - `generated_at` string
    - `decision_id` string, nullable
    - `record_hash` string, nullable
    - `receipt_hash` string, nullable
    - `policy_id` string, nullable
    - `policy_version` string, nullable
    - `decision_record` DecisionRecord, required
      - `decision_protocol_version` 'decision_protocol_v1', required
      - `decision_record_version` 'decision_record_v1', required
      - `response_view` 'minimal' | 'standard' | 'full'
      - `decision_id` string, required
      - `request_id` string, required
      - `idempotency_key` string
      - `c` string
      - `v` string
      - `verdict` string, required
      - `application_verdict` string: Purpose-specific bounded verdict produced by Rulebook v1, such as APPROVE, BLOCK, REVIEW, or NEEDS_INPUT.
      - `evaluator_version` string: Versioned evaluator that produced the binding rulebook result.
      - `rulebook_contract` RulebookContract
        - `schema_version` 'rulebook_v1', required
        - `schema_url` 'https://api.decide.fyi/schemas/rulebook-v1.schema.json', required
        - `schema_hash` string, required: SHA-256 hash of the published Rulebook v1 JSON Schema enforced by the runtime.
        - `evaluator_version` 'decide_rulebook_v1', required
      - `action` string
      - `reason_code` string
      - `matched_rule_id` string, nullable
      - `rulebook` object
        - `schema_version` 'rulebook_v1'
        - `id` string
        - `version` string
        - `hash` string
      - `rulebook_registry` RulebookRegistryMetadata
        - `rulebook_registry_version` 'decision_rulebook_registry_v1', required
        - `schema_version` 'rulebook_v1', required
        - `rulebook_id` string, required
        - `version` string, required
        - `hash` string, required
        - `evaluator_version` string, required
        - `trusted_adapter` TrustedAdapterDependency
          - `manifest_version` 'trusted_adapter_manifest_v1', required
          - `adapter_id` string, required
          - `version` string, required
          - `implementation_revision` string, required
          - `implementation_hash` string, required
          - `manifest_hash` string, required
        - `hash_algorithm` 'sha256', required
        - `canonicalization` 'json.sort_deep.v1', required
        - `scope_hash` string, required
        - `registry_attestation` RegistryAttestation, required
          - `registry_attestation_version` 'decision_registry_attestation_v1', required
          - `status` 'signed' | 'unsigned', required
          - `attestation_hash` string, required
          - `key_id` string
          - `signature_algorithm` 'ed25519'
          - `signature` string
          - `public_key` string
          - `public_key_fingerprint` string
        - `registered_at` string, date-time, required
      - `runtime_binding` RuntimeBinding
        - `production_core` 'hybrid_declarative_rulebook_with_trusted_adapters', required
        - `binding_mode` 'direct_declarative_rulebook' | 'trusted_adapter_facts_then_declarative_rulebook', required
        - `verdict_authority` 'declarative_rulebook', required
        - `adapter_authority` 'facts_only'
        - `customer_supplied_code` 'rejected', required
      - `trusted_adapter` TrustedAdapterAttestation
        - `manifest_version` 'trusted_adapter_manifest_v1', required
        - `adapter_id` string, required
        - `version` string, required
        - `implementation_revision` string, required
        - `implementation_hash` string, required
        - `manifest_hash` string, required
        - `input_hash` string, required
        - `output_hash` string, required
        - `execution_isolation` 'worker_thread_one_shot_v1', required
        - `capability_enforcement` 'ambient_capability_deny_v2', required
        - `execution_timeout_ms` integer, required
      - `adapter_facts` object: Schema-validated facts emitted by the pinned trusted adapter before Rulebook v1 evaluation.
      - `action_binding` ActionBinding
        - `actor` string
        - `system` string
        - `resource` string
        - `proposed_action` string
        - `subject` string
        - `amount` string
        - `currency` string
        - `target_system` string
        - `target_object_id` string
        - `mutation` string
        - `expires_at` string
        - `execution_state` string
        - `execution_id` string
      - `evidence` string[]
      - `evidence_manifest` EvidenceManifest
        - `codes` string[]
        - `sources` EvidenceSource[]
          - `id` string
          - `type` string
          - `vendor` string
          - `title` string
          - `url` string
          - `policy_ref` string
          - `observed_at` string
          - `retrieval_id` string
          - `hash` string
          - `snapshot_hash` string
          - `content_hash` string
          - `version` string
      - `policy_id` string
      - `policy_version` string
      - `policy_hash` string
      - `source_hash` string: Backend lineage hash returned in the full Decision Record response when the upstream decision engine supplies it.
      - `policy_bundle` PolicyBundle
        - `id` string
        - `version` string
        - `hash` string
        - `hash_algorithm` string
        - `canonicalization` string
        - `source` string
        - `status` string
        - `effective_at` string
        - `deprecated_at` string
        - `changelog` string
        - `content_hash` string
      - `policy_bundle_hash` string
      - `confidence` DecisionConfidence
        - `ok` boolean, required
        - `decision_confidence_version` 'decision_confidence_v1', required
        - `generated_at` string
        - `source` 'decision_outcomes'
        - `scope` 'caller_api_key'
        - `decision_id` string, nullable
        - `policy_id` string, nullable
        - `policy_version` string, nullable
        - `verdict` string
        - `action` string, nullable
        - `score` number, required
        - `level` 'high' | 'medium' | 'low' | 'weak' | 'insufficient_data', required
        - `based_on` integer
        - `similar_decisions` integer
        - `policy_stability` 'high' | 'medium' | 'low' | 'insufficient_data'
        - `recommendation` 'collect_more_outcomes' | 'high_confidence_proceed' | 'high_confidence_block' | 'high_confidence_review' | 'proceed_with_monitoring' | 'route_for_review' | 'monitor', required
        - `metrics` object
        - `baseline` object
        - `data_quality` object
        - `reasons` object[]
        - `confidence_hash` string, required
      - `decision_confidence` DecisionConfidence
        - `ok` boolean, required
        - `decision_confidence_version` 'decision_confidence_v1', required
        - `generated_at` string
        - `source` 'decision_outcomes'
        - `scope` 'caller_api_key'
        - `decision_id` string, nullable
        - `policy_id` string, nullable
        - `policy_version` string, nullable
        - `verdict` string
        - `action` string, nullable
        - `score` number, required
        - `level` 'high' | 'medium' | 'low' | 'weak' | 'insufficient_data', required
        - `based_on` integer
        - `similar_decisions` integer
        - `policy_stability` 'high' | 'medium' | 'low' | 'insufficient_data'
        - `recommendation` 'collect_more_outcomes' | 'high_confidence_proceed' | 'high_confidence_block' | 'high_confidence_review' | 'proceed_with_monitoring' | 'route_for_review' | 'monitor', required
        - `metrics` object
        - `baseline` object
        - `data_quality` object
        - `reasons` object[]
        - `confidence_hash` string, required
      - `confidence_hash` string
      - `input_hash` string
      - `output_hash` string
      - `record_hash` string, required: Tamper-evident hash of the normalized Decision Record v1 envelope, including binding application verdict, reason, matched rule, rulebook lineage, registry attestation, trusted adapter attestation, and adapter facts when present.
      - `receipt_hash` string, required: Portable receipt hash over record_hash plus input/output, policy, action-binding, and evidence-manifest proof hashes.
      - `receipt_key_id` string
      - `receipt_signature` string
      - `receipt_signature_algorithm` 'hmac-sha256' | 'ed25519'
      - `receipt_public_key` string
      - `receipt_public_key_fingerprint` string
      - `integrity` Integrity
        - `canonicalization` string
        - `decision_protocol_version` string
        - `hash_algorithm` string
        - `input_hash` string
        - `output_hash` string
        - `policy_hash` string
        - `policy_bundle_hash` string
        - `record_hash` string
        - `receipt_hash` string
        - `replay_url` string
        - `verify_url` string
        - `signature` object
      - `verify_url` string, required
      - `replay_url` string, required
      - `created_at` string
      - `audit_chain` AuditChain
        - `decision_chain_version` 'decision_chain_v1', required
        - `chain_id` string, required
        - `chain_position` integer, required
        - `previous_link_hash` string, nullable
        - `leaf_hash` string, required
        - `merkle_root` string, required
        - `merkle_strategy` 'rolling_sha256_pair_v1'
        - `link_hash` string, required
        - `chain_url` string
        - `created_at` string
        - `entry_type` string
      - `chain_url` string
    - `input` object
    - `executions` DecisionExecution[]
      - `decision_protocol_version` 'decision_protocol_v1', required
      - `decision_execution_version` 'decision_execution_v1', required
      - `execution_receipt_id` string, required
      - `decision_id` string, required
      - `idempotency_key` string
      - `execution_status` string, required
      - `execution_result` string
      - `action_taken` string
      - `target_system` string
      - `target_object_id` string
      - `mutation` string
      - `external_ref` string
      - `execution_id` string
      - `executor` object
      - `decision_record_hash` string
      - `decision_receipt_hash` string
      - `decision_verdict` string
      - `decision_action` string
      - `policy_id` string
      - `policy_version` string
      - `policy_bundle_hash` string
      - `action_binding` ActionBinding
        - `actor` string
        - `system` string
        - `resource` string
        - `proposed_action` string
        - `subject` string
        - `amount` string
        - `currency` string
        - `target_system` string
        - `target_object_id` string
        - `mutation` string
        - `expires_at` string
        - `execution_state` string
        - `execution_id` string
      - `action_binding_hash` string
      - `action_binding_match` boolean, nullable
      - `state_before_hash` string
      - `state_after_hash` string
      - `state_before_ref` string
      - `state_after_ref` string
      - `evidence_refs` object[]
      - `execution_input_hash` string
      - `execution_hash` string, required
      - `integrity` object
      - `executed_at` string
      - `reported_at` string, required
      - `decision_found` boolean
      - `decision_url` string
      - `verify_url` string
    - `outcomes` DecisionOutcome[]
      - `decision_protocol_version` 'decision_protocol_v1', required
      - `decision_outcome_version` 'decision_outcome_v1', required
      - `outcome_id` string, required
      - `decision_id` string, required
      - `idempotency_key` string
      - `outcome_status` string, required
      - `action_executed` boolean
      - `action_taken` string
      - `target_system` string
      - `target_object_id` string
      - `mutation` string
      - `external_ref` string
      - `decision_record_hash` string
      - `decision_receipt_hash` string
      - `decision_verdict` string
      - `decision_action` string
      - `policy_id` string
      - `policy_version` string
      - `policy_bundle_hash` string
      - `action_binding` ActionBinding
        - `actor` string
        - `system` string
        - `resource` string
        - `proposed_action` string
        - `subject` string
        - `amount` string
        - `currency` string
        - `target_system` string
        - `target_object_id` string
        - `mutation` string
        - `expires_at` string
        - `execution_state` string
        - `execution_id` string
      - `observed_metrics` object
      - `evidence_refs` object[]
      - `outcome_input_hash` string
      - `outcome_hash` string, required
      - `integrity` object
      - `executed_at` string
      - `reported_at` string, required
      - `decision_found` boolean
      - `decision_url` string
      - `verify_url` string
    - `policy_intelligence` object
      - `effectiveness` PolicyEffectiveness
        - `ok` boolean, required
        - `policy_effectiveness_version` 'policy_effectiveness_v1', required
        - `generated_at` string
        - `policy_id` string, required
        - `policy_version` string, nullable
        - `source` 'decision_outcomes'
        - `minimum_sample_size` integer
        - `decisions_analyzed` integer, required
        - `outcomes_analyzed` integer
        - `distinct_decisions` integer
        - `by_status` object
        - `by_verdict` object
        - `metrics` object, required
          - `success_rate` number, nullable
          - `failure_rate` number, nullable
          - `revert_rate` number, nullable
          - `review_rate` number, nullable
          - `skipped_rate` number, nullable
          - `unknown_rate` number, nullable
          - `terminal_coverage` number, nullable
          - `executed_rate` number, nullable
        - `proxy_quality` object
          - `estimated_false_positive_rate` number, nullable
          - `estimated_false_negative_rate` number, nullable
          - `note` string
        - `effectiveness_score` number, nullable
        - `confidence` number, nullable
        - `status` 'scored' | 'insufficient_data'
        - `recommendation` 'insufficient_data' | 'review_policy' | 'monitor' | 'healthy', required
        - `window` object
        - `data_quality` object
        - `effectiveness_hash` string, required
      - `anomalies` PolicyAnomalyReport
        - `ok` boolean, required
        - `decision_anomaly_report_version` 'decision_anomaly_report_v1', required
        - `generated_at` string
        - `policy_id` string, required
        - `policy_version` string, nullable
        - `source` 'decision_outcomes'
        - `minimum_sample_size` integer
        - `anomaly_threshold` number
        - `max_anomalies_returned` integer
        - `decisions_analyzed` integer, required
        - `outcomes_analyzed` integer
        - `distinct_decisions` integer
        - `status` 'scored' | 'insufficient_data'
        - `recommendation` 'collect_more_outcomes' | 'review_high_anomalies' | 'monitor_anomalies' | 'stable', required
        - `summary` object, required
          - `anomaly_count` integer
          - `returned_count` integer
          - `high_count` integer
          - `medium_count` integer
          - `low_count` integer
          - `max_score` number, nullable
        - `baseline` object, required
        - `anomalies` PolicyAnomaly[], required
          - `decision_id` string, required
          - `outcome_id` string, required
          - `anomaly_score` number, required
          - `severity` 'normal' | 'low' | 'medium' | 'high', required
          - `reasons` PolicyAnomalyReason[], required
            - `code` string, required
            - `message` string, required
            - `weight` number, required
            - `observed` object
            - `baseline` object
          - `decision_verdict` string
          - `outcome_status` string
          - `action_executed` boolean, nullable
          - `policy_id` string
          - `policy_version` string, nullable
          - `target_system` string, nullable
          - `target_object_id` string, nullable
          - `mutation` string, nullable
          - `reported_at` string, nullable
          - `outcome_hash` string, nullable
          - `decision_url` string, nullable
          - `verify_url` string, nullable
        - `window` object
        - `data_quality` object
        - `anomaly_hash` string, required
    - `audit_chain` DecisionChain
      - `ok` boolean, required
      - `decision_chain_version` 'decision_chain_v1', required
      - `chain_id` string, required
      - `chain_size` integer, required
      - `merkle_strategy` 'rolling_sha256_pair_v1'
      - `merkle_root` string, nullable, required
      - `head_link_hash` string, nullable
      - `updated_at` string
      - `head` DecisionChainLink, required
        - `decision_chain_version` 'decision_chain_v1', required
        - `chain_id` string, required
        - `chain_position` integer, required
        - `previous_link_hash` string, nullable
        - `previous_merkle_root` string, nullable
        - `leaf_hash` string, required
        - `merkle_root` string, required
        - `merkle_strategy` 'rolling_sha256_pair_v1'
        - `link_hash` string, required
        - `entry_type` string
        - `decision_id` string, required
        - `record_hash` string, required
        - `receipt_hash` string, nullable
        - `policy_id` string, nullable
        - `policy_version` string, nullable
        - `created_at` string
        - `verify_url` string
        - `chain_url` string
      - `retained_links` DecisionChainLink[], required
        - `decision_chain_version` 'decision_chain_v1', required
        - `chain_id` string, required
        - `chain_position` integer, required
        - `previous_link_hash` string, nullable
        - `previous_merkle_root` string, nullable
        - `leaf_hash` string, required
        - `merkle_root` string, required
        - `merkle_strategy` 'rolling_sha256_pair_v1'
        - `link_hash` string, required
        - `entry_type` string
        - `decision_id` string, required
        - `record_hash` string, required
        - `receipt_hash` string, nullable
        - `policy_id` string, nullable
        - `policy_version` string, nullable
        - `created_at` string
        - `verify_url` string
        - `chain_url` string
      - `verification` object, required
    - `verification_hints` object
    - `packet_manifest` object, required
    - `packet_hash` string, required
  - `decision_packet` DecisionPacket
    - `ok` boolean, required
    - `decision_protocol_version` 'decision_protocol_v1', required
    - `decision_packet_version` 'decision_packet_v1', required
    - `generated_at` string
    - `decision_id` string, nullable
    - `record_hash` string, nullable
    - `receipt_hash` string, nullable
    - `policy_id` string, nullable
    - `policy_version` string, nullable
    - `decision_record` DecisionRecord, required
      - `decision_protocol_version` 'decision_protocol_v1', required
      - `decision_record_version` 'decision_record_v1', required
      - `response_view` 'minimal' | 'standard' | 'full'
      - `decision_id` string, required
      - `request_id` string, required
      - `idempotency_key` string
      - `c` string
      - `v` string
      - `verdict` string, required
      - `application_verdict` string: Purpose-specific bounded verdict produced by Rulebook v1, such as APPROVE, BLOCK, REVIEW, or NEEDS_INPUT.
      - `evaluator_version` string: Versioned evaluator that produced the binding rulebook result.
      - `rulebook_contract` RulebookContract
        - `schema_version` 'rulebook_v1', required
        - `schema_url` 'https://api.decide.fyi/schemas/rulebook-v1.schema.json', required
        - `schema_hash` string, required: SHA-256 hash of the published Rulebook v1 JSON Schema enforced by the runtime.
        - `evaluator_version` 'decide_rulebook_v1', required
      - `action` string
      - `reason_code` string
      - `matched_rule_id` string, nullable
      - `rulebook` object
        - `schema_version` 'rulebook_v1'
        - `id` string
        - `version` string
        - `hash` string
      - `rulebook_registry` RulebookRegistryMetadata
        - `rulebook_registry_version` 'decision_rulebook_registry_v1', required
        - `schema_version` 'rulebook_v1', required
        - `rulebook_id` string, required
        - `version` string, required
        - `hash` string, required
        - `evaluator_version` string, required
        - `trusted_adapter` TrustedAdapterDependency
          - `manifest_version` 'trusted_adapter_manifest_v1', required
          - `adapter_id` string, required
          - `version` string, required
          - `implementation_revision` string, required
          - `implementation_hash` string, required
          - `manifest_hash` string, required
        - `hash_algorithm` 'sha256', required
        - `canonicalization` 'json.sort_deep.v1', required
        - `scope_hash` string, required
        - `registry_attestation` RegistryAttestation, required
          - `registry_attestation_version` 'decision_registry_attestation_v1', required
          - `status` 'signed' | 'unsigned', required
          - `attestation_hash` string, required
          - `key_id` string
          - `signature_algorithm` 'ed25519'
          - `signature` string
          - `public_key` string
          - `public_key_fingerprint` string
        - `registered_at` string, date-time, required
      - `runtime_binding` RuntimeBinding
        - `production_core` 'hybrid_declarative_rulebook_with_trusted_adapters', required
        - `binding_mode` 'direct_declarative_rulebook' | 'trusted_adapter_facts_then_declarative_rulebook', required
        - `verdict_authority` 'declarative_rulebook', required
        - `adapter_authority` 'facts_only'
        - `customer_supplied_code` 'rejected', required
      - `trusted_adapter` TrustedAdapterAttestation
        - `manifest_version` 'trusted_adapter_manifest_v1', required
        - `adapter_id` string, required
        - `version` string, required
        - `implementation_revision` string, required
        - `implementation_hash` string, required
        - `manifest_hash` string, required
        - `input_hash` string, required
        - `output_hash` string, required
        - `execution_isolation` 'worker_thread_one_shot_v1', required
        - `capability_enforcement` 'ambient_capability_deny_v2', required
        - `execution_timeout_ms` integer, required
      - `adapter_facts` object: Schema-validated facts emitted by the pinned trusted adapter before Rulebook v1 evaluation.
      - `action_binding` ActionBinding
        - `actor` string
        - `system` string
        - `resource` string
        - `proposed_action` string
        - `subject` string
        - `amount` string
        - `currency` string
        - `target_system` string
        - `target_object_id` string
        - `mutation` string
        - `expires_at` string
        - `execution_state` string
        - `execution_id` string
      - `evidence` string[]
      - `evidence_manifest` EvidenceManifest
        - `codes` string[]
        - `sources` EvidenceSource[]
          - `id` string
          - `type` string
          - `vendor` string
          - `title` string
          - `url` string
          - `policy_ref` string
          - `observed_at` string
          - `retrieval_id` string
          - `hash` string
          - `snapshot_hash` string
          - `content_hash` string
          - `version` string
      - `policy_id` string
      - `policy_version` string
      - `policy_hash` string
      - `source_hash` string: Backend lineage hash returned in the full Decision Record response when the upstream decision engine supplies it.
      - `policy_bundle` PolicyBundle
        - `id` string
        - `version` string
        - `hash` string
        - `hash_algorithm` string
        - `canonicalization` string
        - `source` string
        - `status` string
        - `effective_at` string
        - `deprecated_at` string
        - `changelog` string
        - `content_hash` string
      - `policy_bundle_hash` string
      - `confidence` DecisionConfidence
        - `ok` boolean, required
        - `decision_confidence_version` 'decision_confidence_v1', required
        - `generated_at` string
        - `source` 'decision_outcomes'
        - `scope` 'caller_api_key'
        - `decision_id` string, nullable
        - `policy_id` string, nullable
        - `policy_version` string, nullable
        - `verdict` string
        - `action` string, nullable
        - `score` number, required
        - `level` 'high' | 'medium' | 'low' | 'weak' | 'insufficient_data', required
        - `based_on` integer
        - `similar_decisions` integer
        - `policy_stability` 'high' | 'medium' | 'low' | 'insufficient_data'
        - `recommendation` 'collect_more_outcomes' | 'high_confidence_proceed' | 'high_confidence_block' | 'high_confidence_review' | 'proceed_with_monitoring' | 'route_for_review' | 'monitor', required
        - `metrics` object
        - `baseline` object
        - `data_quality` object
        - `reasons` object[]
        - `confidence_hash` string, required
      - `decision_confidence` DecisionConfidence
        - `ok` boolean, required
        - `decision_confidence_version` 'decision_confidence_v1', required
        - `generated_at` string
        - `source` 'decision_outcomes'
        - `scope` 'caller_api_key'
        - `decision_id` string, nullable
        - `policy_id` string, nullable
        - `policy_version` string, nullable
        - `verdict` string
        - `action` string, nullable
        - `score` number, required
        - `level` 'high' | 'medium' | 'low' | 'weak' | 'insufficient_data', required
        - `based_on` integer
        - `similar_decisions` integer
        - `policy_stability` 'high' | 'medium' | 'low' | 'insufficient_data'
        - `recommendation` 'collect_more_outcomes' | 'high_confidence_proceed' | 'high_confidence_block' | 'high_confidence_review' | 'proceed_with_monitoring' | 'route_for_review' | 'monitor', required
        - `metrics` object
        - `baseline` object
        - `data_quality` object
        - `reasons` object[]
        - `confidence_hash` string, required
      - `confidence_hash` string
      - `input_hash` string
      - `output_hash` string
      - `record_hash` string, required: Tamper-evident hash of the normalized Decision Record v1 envelope, including binding application verdict, reason, matched rule, rulebook lineage, registry attestation, trusted adapter attestation, and adapter facts when present.
      - `receipt_hash` string, required: Portable receipt hash over record_hash plus input/output, policy, action-binding, and evidence-manifest proof hashes.
      - `receipt_key_id` string
      - `receipt_signature` string
      - `receipt_signature_algorithm` 'hmac-sha256' | 'ed25519'
      - `receipt_public_key` string
      - `receipt_public_key_fingerprint` string
      - `integrity` Integrity
        - `canonicalization` string
        - `decision_protocol_version` string
        - `hash_algorithm` string
        - `input_hash` string
        - `output_hash` string
        - `policy_hash` string
        - `policy_bundle_hash` string
        - `record_hash` string
        - `receipt_hash` string
        - `replay_url` string
        - `verify_url` string
        - `signature` object
      - `verify_url` string, required
      - `replay_url` string, required
      - `created_at` string
      - `audit_chain` AuditChain
        - `decision_chain_version` 'decision_chain_v1', required
        - `chain_id` string, required
        - `chain_position` integer, required
        - `previous_link_hash` string, nullable
        - `leaf_hash` string, required
        - `merkle_root` string, required
        - `merkle_strategy` 'rolling_sha256_pair_v1'
        - `link_hash` string, required
        - `chain_url` string
        - `created_at` string
        - `entry_type` string
      - `chain_url` string
    - `input` object
    - `executions` DecisionExecution[]
      - `decision_protocol_version` 'decision_protocol_v1', required
      - `decision_execution_version` 'decision_execution_v1', required
      - `execution_receipt_id` string, required
      - `decision_id` string, required
      - `idempotency_key` string
      - `execution_status` string, required
      - `execution_result` string
      - `action_taken` string
      - `target_system` string
      - `target_object_id` string
      - `mutation` string
      - `external_ref` string
      - `execution_id` string
      - `executor` object
      - `decision_record_hash` string
      - `decision_receipt_hash` string
      - `decision_verdict` string
      - `decision_action` string
      - `policy_id` string
      - `policy_version` string
      - `policy_bundle_hash` string
      - `action_binding` ActionBinding
        - `actor` string
        - `system` string
        - `resource` string
        - `proposed_action` string
        - `subject` string
        - `amount` string
        - `currency` string
        - `target_system` string
        - `target_object_id` string
        - `mutation` string
        - `expires_at` string
        - `execution_state` string
        - `execution_id` string
      - `action_binding_hash` string
      - `action_binding_match` boolean, nullable
      - `state_before_hash` string
      - `state_after_hash` string
      - `state_before_ref` string
      - `state_after_ref` string
      - `evidence_refs` object[]
      - `execution_input_hash` string
      - `execution_hash` string, required
      - `integrity` object
      - `executed_at` string
      - `reported_at` string, required
      - `decision_found` boolean
      - `decision_url` string
      - `verify_url` string
    - `outcomes` DecisionOutcome[]
      - `decision_protocol_version` 'decision_protocol_v1', required
      - `decision_outcome_version` 'decision_outcome_v1', required
      - `outcome_id` string, required
      - `decision_id` string, required
      - `idempotency_key` string
      - `outcome_status` string, required
      - `action_executed` boolean
      - `action_taken` string
      - `target_system` string
      - `target_object_id` string
      - `mutation` string
      - `external_ref` string
      - `decision_record_hash` string
      - `decision_receipt_hash` string
      - `decision_verdict` string
      - `decision_action` string
      - `policy_id` string
      - `policy_version` string
      - `policy_bundle_hash` string
      - `action_binding` ActionBinding
        - `actor` string
        - `system` string
        - `resource` string
        - `proposed_action` string
        - `subject` string
        - `amount` string
        - `currency` string
        - `target_system` string
        - `target_object_id` string
        - `mutation` string
        - `expires_at` string
        - `execution_state` string
        - `execution_id` string
      - `observed_metrics` object
      - `evidence_refs` object[]
      - `outcome_input_hash` string
      - `outcome_hash` string, required
      - `integrity` object
      - `executed_at` string
      - `reported_at` string, required
      - `decision_found` boolean
      - `decision_url` string
      - `verify_url` string
    - `policy_intelligence` object
      - `effectiveness` PolicyEffectiveness
        - `ok` boolean, required
        - `policy_effectiveness_version` 'policy_effectiveness_v1', required
        - `generated_at` string
        - `policy_id` string, required
        - `policy_version` string, nullable
        - `source` 'decision_outcomes'
        - `minimum_sample_size` integer
        - `decisions_analyzed` integer, required
        - `outcomes_analyzed` integer
        - `distinct_decisions` integer
        - `by_status` object
        - `by_verdict` object
        - `metrics` object, required
          - `success_rate` number, nullable
          - `failure_rate` number, nullable
          - `revert_rate` number, nullable
          - `review_rate` number, nullable
          - `skipped_rate` number, nullable
          - `unknown_rate` number, nullable
          - `terminal_coverage` number, nullable
          - `executed_rate` number, nullable
        - `proxy_quality` object
          - `estimated_false_positive_rate` number, nullable
          - `estimated_false_negative_rate` number, nullable
          - `note` string
        - `effectiveness_score` number, nullable
        - `confidence` number, nullable
        - `status` 'scored' | 'insufficient_data'
        - `recommendation` 'insufficient_data' | 'review_policy' | 'monitor' | 'healthy', required
        - `window` object
        - `data_quality` object
        - `effectiveness_hash` string, required
      - `anomalies` PolicyAnomalyReport
        - `ok` boolean, required
        - `decision_anomaly_report_version` 'decision_anomaly_report_v1', required
        - `generated_at` string
        - `policy_id` string, required
        - `policy_version` string, nullable
        - `source` 'decision_outcomes'
        - `minimum_sample_size` integer
        - `anomaly_threshold` number
        - `max_anomalies_returned` integer
        - `decisions_analyzed` integer, required
        - `outcomes_analyzed` integer
        - `distinct_decisions` integer
        - `status` 'scored' | 'insufficient_data'
        - `recommendation` 'collect_more_outcomes' | 'review_high_anomalies' | 'monitor_anomalies' | 'stable', required
        - `summary` object, required
          - `anomaly_count` integer
          - `returned_count` integer
          - `high_count` integer
          - `medium_count` integer
          - `low_count` integer
          - `max_score` number, nullable
        - `baseline` object, required
        - `anomalies` PolicyAnomaly[], required
          - `decision_id` string, required
          - `outcome_id` string, required
          - `anomaly_score` number, required
          - `severity` 'normal' | 'low' | 'medium' | 'high', required
          - `reasons` PolicyAnomalyReason[], required
            - `code` string, required
            - `message` string, required
            - `weight` number, required
            - `observed` object
            - `baseline` object
          - `decision_verdict` string
          - `outcome_status` string
          - `action_executed` boolean, nullable
          - `policy_id` string
          - `policy_version` string, nullable
          - `target_system` string, nullable
          - `target_object_id` string, nullable
          - `mutation` string, nullable
          - `reported_at` string, nullable
          - `outcome_hash` string, nullable
          - `decision_url` string, nullable
          - `verify_url` string, nullable
        - `window` object
        - `data_quality` object
        - `anomaly_hash` string, required
    - `audit_chain` DecisionChain
      - `ok` boolean, required
      - `decision_chain_version` 'decision_chain_v1', required
      - `chain_id` string, required
      - `chain_size` integer, required
      - `merkle_strategy` 'rolling_sha256_pair_v1'
      - `merkle_root` string, nullable, required
      - `head_link_hash` string, nullable
      - `updated_at` string
      - `head` DecisionChainLink, required
        - `decision_chain_version` 'decision_chain_v1', required
        - `chain_id` string, required
        - `chain_position` integer, required
        - `previous_link_hash` string, nullable
        - `previous_merkle_root` string, nullable
        - `leaf_hash` string, required
        - `merkle_root` string, required
        - `merkle_strategy` 'rolling_sha256_pair_v1'
        - `link_hash` string, required
        - `entry_type` string
        - `decision_id` string, required
        - `record_hash` string, required
        - `receipt_hash` string, nullable
        - `policy_id` string, nullable
        - `policy_version` string, nullable
        - `created_at` string
        - `verify_url` string
        - `chain_url` string
      - `retained_links` DecisionChainLink[], required
        - `decision_chain_version` 'decision_chain_v1', required
        - `chain_id` string, required
        - `chain_position` integer, required
        - `previous_link_hash` string, nullable
        - `previous_merkle_root` string, nullable
        - `leaf_hash` string, required
        - `merkle_root` string, required
        - `merkle_strategy` 'rolling_sha256_pair_v1'
        - `link_hash` string, required
        - `entry_type` string
        - `decision_id` string, required
        - `record_hash` string, required
        - `receipt_hash` string, nullable
        - `policy_id` string, nullable
        - `policy_version` string, nullable
        - `created_at` string
        - `verify_url` string
        - `chain_url` string
      - `verification` object, required
    - `verification_hints` object
    - `packet_manifest` object, required
    - `packet_hash` string, required
  - `input` object
  - `public_key` string: Optional Ed25519 public key for integrity diagnostics. Because it arrives with the packet, it is not a hosted-verifier trust anchor and cannot make authenticity_valid true.

## Response `200`

Decision Packet verification result

- VerificationResult
  - `ok` boolean, required
  - `decision_id` string
  - `source` string
  - `verified` boolean, required: True only when both integrity_valid and authenticity_valid are true.
  - `integrity_valid` boolean: True when the supplied hashes, signature bytes, fingerprints, and optional input links are internally consistent.
  - `authenticity_valid` boolean: True when the receipt signature validates against a trusted server, registry, pinned-key, or HMAC trust anchor.
  - `key_source` 'public_key' | 'key_registry' | 'environment' | 'request_body' | 'record' | 'none': Where the verification key came from. request_body and record are diagnostic sources, not authenticity trust anchors.
  - `checks` object, required
  - `expected` object
  - `actual` object
  - `policy_bundle` PolicyBundle
    - `id` string
    - `version` string
    - `hash` string
    - `hash_algorithm` string
    - `canonicalization` string
    - `source` string
    - `status` string
    - `effective_at` string
    - `deprecated_at` string
    - `changelog` string
    - `content_hash` string
  - `record_hash` string, nullable
  - `receipt_hash` string, nullable

---

[API](https://skmtc.dev/decide/apis/decide-decision-api.md) · [All operations](https://skmtc.dev/decide/apis/decide-decision-api/llms.txt) · [OpenAPI document](https://skmtc.dev/decide/apis/decide-decision-api/revisions/caf1d3069dfd?raw)
