{
  "tool_id": "art-377-build-vop-session-receipt",
  "tool_version": "1.0.0",
  "display_name": "VoP Session Receipt Builder",
  "mcp_name": "build_vop_session_receipt",
  "mandate_type": "compliance_mandate",
  "wave": 2,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-377-build-vop-session-receipt.html",
  "description": "Builds a signed, hash-chained Verification-of-Payee / Confirmation-of-Payee session receipt: binds the declared match result (score, band, algorithm_version or an external source), the warning text and severity shown, and the consumer's action (proceeded, abandoned, retried) across a session's attempts. Each attempt's receipt hash chains to the prior one, rooted at a session-anchored genesis hash, so any reordering or edit breaks the downstream chain. Attests the computation over the declared session record, not ground-truth identity and not the PSP's own UI -- that assertion is the PSP's, bound here as evidence. Verifies fully offline.",
  "input_schema_ref": "chaingraph/art-377-build-vop-session-receipt.html#manifest",
  "deadline": null,
  "deadline_note": "PSR reimbursement-review reporting due October 2026; EU IPR VoP mandatory since October 2025",
  "consumes": [
    "art-376-score-payee-name-match"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:0a05ff3c98289d522ac8c33f9348e44f835c6ace45f93a2e25e4fa6d7871f317","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
  "compute_proof_ready": "ready",
  "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"DDReaNueroIivPh0n9i6rLsuTUzcHACv9ACapdMeh+waotFJXfDVocMZ4RFUMh9xrQjPuiDPcl7jg2cq4sPl4w444wdbk91zy2evXsCvBpK3mG6l8l9RP4Br3+s2gy8RJBtGC1O5X2jRbva7rQ03FBTn4S8lKsidWF8AP55dOgYPziygJwmED5nCsC3pUNnvCq7Xv00vhV4PMaF2JrieOBwO38OVMiIMoa3j9p/OeO2LkyBAFNgjk04YPIAHaIC3Br6v7UIuh9MRbVvddK7W4FMyVeRZAd0J4GXDuxpz2FEkzHZHXrqmy7O7HUxjnCfUCvGrTNoarMaIV6nczd2AUw==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:0a05ff3c98289d522ac8c33f9348e44f835c6ace45f93a2e25e4fa6d7871f317","output":{"attempt_count":1,"chain_genesis_hash":null,"final_match_band":"MATCH","final_receipt_hash":null,"note":"Attests the computation over the declared session record -- match result, warning shown, and consumer action as asserted by the PSP -- NOT ground-truth identity and NOT the PSP's own UI. Hash-chained per attempt; tampering with any attempt breaks every downstream receipt hash. Verifies fully offline.","session_id":"vop-sess-0001","session_outcome":"proceeded","session_receipts":null,"warning_overridden":false}}},
  "export_capability": [
    "xlsx",
    "csv",
    "pdf",
    "xbrl:ocg-ext"
  ]
}
