Rebuild the signed Trust Record for a released action
Rebuilds the signed Trust Record for an action that was released but whose record was never produced, the repair for a 500EXECUTION_RECORD_INCOMPLETE.
POST
/
execution-intents
/
{businessTransactionId}
/
finalize
cURL
# TXN_ID: the businessTransactionId of the transaction. In the sandbox, use one from a playground run;# sandbox data is deleted hourly, so an older id returns 404.TXN_ID="${TXN_ID:?set TXN_ID to a businessTransactionId}"curl -X POST https://parmana-api-real.vercel.app/execution-intents/$TXN_ID/finalize \ -H "Authorization: Bearer $PARMANA_API_KEY"
import { ParmanaClient } from "@parmana/sdk";
const client = new ParmanaClient({
endpoint: "https://parmana-api-real.vercel.app",
apiKey: process.env.PARMANA_API_KEY!,
});
const result = await client.finalizeExecutionIntent(
"5f0c2a7e-3d7b-4d0e-9a55-2f6d8b1c4e90",
);
console.log(result.outcome);
import os
from parmana import ParmanaClient
client = ParmanaClient(
endpoint="https://parmana-api-real.vercel.app",
api_key=os.environ["PARMANA_API_KEY"],
)
result = client.finalize_execution_intent("5f0c2a7e-3d7b-4d0e-9a55-2f6d8b1c4e90")
print(result.outcome)
A human key (credentialHolderType: USER) issued by the operator. Sent as Authorization: Bearer . The public sandbox and its demo key are refused on these routes, so no key is prefilled here.
The Trust Record exists. outcome is FINALIZED when this call built it, ALREADY_FINALIZED when it already existed.
Response returned by POST /execution-intents/{businessTransactionId}/finalize. The finalize operation never calls a connector. It is safe to run more than once: FINALIZED means a Trust Record was rebuilt by this call, ALREADY_FINALIZED means one already existed and nothing was built.
Canonical immutable record representing everything Parmana knows about a Business Transaction: the authoritative source for replay, verification, audit, and receipt generation. One Execution Trust Record exists per Business Transaction. overrides, executions, verifications, and receipts are append-only: existing entries are never modified or removed.
# TXN_ID: the businessTransactionId of the transaction. In the sandbox, use one from a playground run;# sandbox data is deleted hourly, so an older id returns 404.TXN_ID="${TXN_ID:?set TXN_ID to a businessTransactionId}"curl -X POST https://parmana-api-real.vercel.app/execution-intents/$TXN_ID/finalize \ -H "Authorization: Bearer $PARMANA_API_KEY"
import { ParmanaClient } from "@parmana/sdk";
const client = new ParmanaClient({
endpoint: "https://parmana-api-real.vercel.app",
apiKey: process.env.PARMANA_API_KEY!,
});
const result = await client.finalizeExecutionIntent(
"5f0c2a7e-3d7b-4d0e-9a55-2f6d8b1c4e90",
);
console.log(result.outcome);
import os
from parmana import ParmanaClient
client = ParmanaClient(
endpoint="https://parmana-api-real.vercel.app",
api_key=os.environ["PARMANA_API_KEY"],
)
result = client.finalize_execution_intent("5f0c2a7e-3d7b-4d0e-9a55-2f6d8b1c4e90")
print(result.outcome)
{"docsConfig":{"theme":"maple","$schema":"https://mintlify.com/docs.json","name":"Parmana","description":"Parmana lets businesses set clear limits on what AI can do, checks every action against those limits, and keeps a record of each decision.","colors":{"primary":"#6366F1","light":"#6366F1","dark":"#4338CA"},"logo":{"light":"https://mintcdn.com/parmanasystems/3fc1F82PB1uU1_pD/logo/logo-light.svg?fit=max\u0026auto=format\u0026n=3fc1F82PB1uU1_pD\u0026q=85\u0026s=902f62a6181def8e3c6b5aa71a40d247","dark":"https://mintcdn.com/parmanasystems/3fc1F82PB1uU1_pD/logo/logo-dark.svg?fit=max\u0026auto=format\u0026n=3fc1F82PB1uU1_pD\u0026q=85\u0026s=dba61af5a5c9f7960dbd6051e4ec24fb"},"favicon":"https://mintcdn.com/parmanasystems/3fc1F82PB1uU1_pD/logo/seal.svg?fit=max\u0026auto=format\u0026n=3fc1F82PB1uU1_pD\u0026q=85\u0026s=9ede6c2634c534c1d4eadfd76a08d84b","api":{"examples":{"prefill":true}},"background":{"color":{"light":"#FFFFFF","dark":"#1A1A1A"}},"navbar":{"links":[{"href":"https://github.com/pavancharak/parmana-verifier","label":"GitHub"},{"href":"https://github.com/pavancharak/parmana-verifier/discussions","label":"Discussions"}]},"footer":{"socials":{"github":"https://github.com/pavancharak/parmana-verifier"},"links":[{"header":"Legal","items":[{"label":"License and evaluation","href":"/license"},{"label":"Security","href":"https://docs.parmanasystems.com/license"}]}]},"fonts":{"family":"Inter"},"banner":{"content":"The Parmana repository, including the server, the SDKs and the offline verifier, is licensed under the Apache License 2.0. [License](/license)","dismissible":false},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"parmanasystems","hasAudioNarration":false,"actualSubdomain":"parmanasystems","customDomains":["docs.parmanasystems.com"],"gitSource":{"type":"github","owner":"pavancharak","repo":"parmana-core","deployBranch":"main","contentDirectory":"docs/site","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aec643b3744ce14d083eaff","collectionId":"6ff1c97b-24ed-4c5f-b133-8a91defa49e5","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aec643b3744ce14d083eaff"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aec643b3744ce14d083eaff","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"API reference","count":171},{"language":"default","tag":"TypeScript SDK","count":135},{"language":"default","tag":"REST API","count":69},{"language":"default","tag":"Interfaces","count":63},{"language":"default","tag":"Python SDK","count":48},{"language":"default","tag":"Classes","count":32},{"language":"default","tag":"Handbook","count":27},{"language":"default","tag":"Build with Parmana","count":26},{"language":"default","tag":"The Parmana Handbook","count":24},{"language":"default","tag":"Concepts","count":22}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/endpoints/finalize-execution-intent","slug":"/api-reference/endpoints/finalize-execution-intent","pageMetadata":{"title":"Rebuild the signed Trust Record for a released action","description":"Rebuilds the signed Trust Record for an action that was released but whose record was never produced, the repair for a `500` `EXECUTION_RECORD_INCOMPLETE`.","openapi":"openapi.bundled.yaml POST /execution-intents/{businessTransactionId}/finalize","href":"/api-reference/endpoints/finalize-execution-intent"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Rebuilds the signed Trust Record for an action that was released but whose record was never produced, the repair for a \", _jsx(_components.code, {\n children: \"500\"\n }), \" \", _jsx(_components.code, {\n children: \"EXECUTION_RECORD_INCOMPLETE\"\n }), \".\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Rebuild the signed Trust Record for a released action","description":"Rebuilds the signed Trust Record for an action that was released but whose record was never produced, the repair for a `500` `EXECUTION_RECORD_INCOMPLETE`.","openapi":"openapi.bundled.yaml POST /execution-intents/{businessTransactionId}/finalize","href":"/api-reference/endpoints/finalize-execution-intent"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Execution Intents"],"summary":"Rebuild the signed Trust Record for a released action","operationId":"finalizeExecutionIntent","security":["af732d37-5431-41a0-8f01-3617192bfa7b"],"servers":["b02bd471-4a68-4e6a-9665-bd59d513912d"],"description":"Rebuilds the signed Trust Record for an action that was released but whose record was never produced, the repair for a `500` `EXECUTION_RECORD_INCOMPLETE`.","parameters":["fedd6aca-6723-48d7-ac76-68c6b6f3fadc"],"responses":{"200":"7d627295-73a0-479f-9c4d-2c9cc40b2d07","401":"28539288-b224-4f6e-afff-24bfbecf1d98","403":"c70b7772-68dd-45d2-b855-4782cdf9dfbe","404":"42f59598-83cc-4a0f-a162-7b228ce98cfa","409":"8317892c-f3ce-44de-8d63-3c03587f35c4","501":"7758d519-6a3a-4f41-b32a-ea5414f538a1"},"x-codeSamples":[{"lang":"bash","label":"cURL","source":"# TXN_ID: the businessTransactionId of the transaction. In the sandbox, use one from a playground run;\n# sandbox data is deleted hourly, so an older id returns 404.\nTXN_ID=\"${TXN_ID:?set TXN_ID to a businessTransactionId}\"\ncurl -X POST https://parmana-api-real.vercel.app/execution-intents/$TXN_ID/finalize \\\n -H \"Authorization: Bearer $PARMANA_API_KEY\""},{"lang":"typescript","label":"TypeScript","source":"import { ParmanaClient } from \"@parmana/sdk\";\n\nconst client = new ParmanaClient({\n endpoint: \"https://parmana-api-real.vercel.app\",\n apiKey: process.env.PARMANA_API_KEY!,\n});\n\nconst result = await client.finalizeExecutionIntent(\n \"5f0c2a7e-3d7b-4d0e-9a55-2f6d8b1c4e90\",\n);\n\nconsole.log(result.outcome);"},{"lang":"python","label":"Python","source":"import os\n\nfrom parmana import ParmanaClient\n\nclient = ParmanaClient(\n endpoint=\"https://parmana-api-real.vercel.app\",\n api_key=os.environ[\"PARMANA_API_KEY\"],\n)\n\nresult = client.finalize_execution_intent(\"5f0c2a7e-3d7b-4d0e-9a55-2f6d8b1c4e90\")\n\nprint(result.outcome)"}],"method":"post","type":"path","path":"/execution-intents/{businessTransactionId}/finalize","baseUrlOptions":["https://parmana-api-real.vercel.app"],"title":"Rebuild the signed Trust Record for a released action","codeSamples":[{"label":"cURL","lang":"bash","source":"# TXN_ID: the businessTransactionId of the transaction. In the sandbox, use one from a playground run;\n# sandbox data is deleted hourly, so an older id returns 404.\nTXN_ID=\"${TXN_ID:?set TXN_ID to a businessTransactionId}\"\ncurl -X POST https://parmana-api-real.vercel.app/execution-intents/$TXN_ID/finalize \\\n -H \"Authorization: Bearer $PARMANA_API_KEY\""},{"label":"TypeScript","lang":"typescript","source":"import { ParmanaClient } from \"@parmana/sdk\";\n\nconst client = new ParmanaClient({\n endpoint: \"https://parmana-api-real.vercel.app\",\n apiKey: process.env.PARMANA_API_KEY!,\n});\n\nconst result = await client.finalizeExecutionIntent(\n \"5f0c2a7e-3d7b-4d0e-9a55-2f6d8b1c4e90\",\n);\n\nconsole.log(result.outcome);"},{"label":"Python","lang":"python","source":"import os\n\nfrom parmana import ParmanaClient\n\nclient = ParmanaClient(\n endpoint=\"https://parmana-api-real.vercel.app\",\n api_key=os.environ[\"PARMANA_API_KEY\"],\n)\n\nresult = client.finalize_execution_intent(\"5f0c2a7e-3d7b-4d0e-9a55-2f6d8b1c4e90\")\n\nprint(result.outcome)"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[]},"dependencies":{"parameters":{"fedd6aca-6723-48d7-ac76-68c6b6f3fadc":{"name":"businessTransactionId","description":"The transaction's id.","in":"path","required":true,"schema":{"type":"string","isRequired":true,"description":"The transaction's id.","uniqueKey":"","typeLabel":"string"}}},"responses":{"7d627295-73a0-479f-9c4d-2c9cc40b2d07":{"description":"The Trust Record exists. `outcome` is `FINALIZED` when this call built it, `ALREADY_FINALIZED` when it already existed.","content":{"application/json":{"schema":{"title":"Finalize Execution Intent Response","description":"Response returned by POST /execution-intents/{businessTransactionId}/finalize. The finalize operation never calls a connector. It is safe to run more than once: FINALIZED means a Trust Record was rebuilt by this call, ALREADY_FINALIZED means one already existed and nothing was built.","type":"object","additionalProperties":false,"required":["outcome","businessTransactionId","trustRecordId","trustRecord"],"properties":{"outcome":{"type":"string","enum":["FINALIZED","ALREADY_FINALIZED"],"isRequired":true,"uniqueKey":"outcome","typeLabel":"enum\u003cstring>"},"businessTransactionId":{"type":"string","isRequired":true,"uniqueKey":"businessTransactionId","typeLabel":"string"},"trustRecordId":{"type":"string","description":"Identifier of the Execution Trust Record. Equal to trustRecord.trustRecordId.","isRequired":true,"uniqueKey":"trustRecordId","typeLabel":"string"},"trustRecord":{"title":"Execution Trust Record","description":"Canonical immutable record representing everything Parmana knows about a Business Transaction: the authoritative source for replay, verification, audit, and receipt generation. One Execution Trust Record exists per Business Transaction. overrides, executions, verifications, and receipts are append-only: existing entries are never modified or removed.","type":"object","additionalProperties":true,"required":["trustRecordId","businessTransactionId","transaction","overrides","executions","verifications","receipts","trustRecordHash","signature","createdAt","updatedAt"],"properties":{"trustRecordId":{"type":"string","description":"Unique Execution Trust Record identifier.","isRequired":true,"uniqueKey":"trustRecord.trustRecordId","typeLabel":"string"},"businessTransactionId":{"type":"string","description":"Business Transaction identifier.","isRequired":true,"uniqueKey":"trustRecord.businessTransactionId","typeLabel":"string"},"transaction":{"title":"Business Transaction","description":"Canonical immutable business context accepted by Parmana for execution: Authority -> Authorization -> Intent -> Business Transaction -> Policy. Every Business Transaction produces exactly one Decision, one Execution, and one Execution Trust Record.","type":"object","additionalProperties":true,"required":["businessTransactionId","metadata","authority","authorization","intent","policy","signals","status","createdAt"],"properties":{"businessTransactionId":{"type":"string","format":"uuid","description":"Unique Business Transaction identifier. Same value as metadata.businessTransactionId. Must be a valid UUID on both POST /execute and POST /transactions (rejected with a 400 otherwise).","x-default":"8ddd9ae9-eebe-4a5a-8182-4e6187466a74","isRequired":true,"uniqueKey":"trustRecord.transaction.businessTransactionId","typeLabel":"string\u003cuuid>"},"metadata":{"title":"Metadata","description":"Immutable Business Transaction metadata supplied by the calling application. Not evaluated by Policy. businessTransactionId is the only required field; it must match the top-level businessTransactionId. Parmana rejects a mismatch with a 400.","type":"object","additionalProperties":true,"required":["businessTransactionId"],"properties":{"businessTransactionId":{"type":"string","format":"uuid","description":"Unique Business Transaction identifier. Must be a valid UUID.","isRequired":true,"uniqueKey":"trustRecord.transaction.metadata.businessTransactionId","typeLabel":"string\u003cuuid>"},"correlationId":{"type":"string","description":"Optional correlation identifier used by the calling application.","uniqueKey":"trustRecord.transaction.metadata.correlationId","typeLabel":"string"},"tenantId":{"type":"string","description":"Optional tenant identifier for multi-tenant deployments.","uniqueKey":"trustRecord.transaction.metadata.tenantId","typeLabel":"string"},"sourceSystem":{"type":"string","description":"Originating application or service.","uniqueKey":"trustRecord.transaction.metadata.sourceSystem","typeLabel":"string"},"submittedBy":{"type":"string","description":"Identity of the calling application or principal.","uniqueKey":"trustRecord.transaction.metadata.submittedBy","typeLabel":"string"},"submittedAt":{"type":"string","format":"date-time","description":"UTC timestamp when the Business Transaction was submitted.","uniqueKey":"trustRecord.transaction.metadata.submittedAt","typeLabel":"string\u003cdate-time>"}},"examples":[{"businessTransactionId":"eed2a972-1bf5-4166-8472-761f76fbf1b2","correlationId":"6b97caca-1605-4711-bf00-7e5a65434d93","sourceSystem":"vendor-payment-service","submittedBy":"ap-automation","submittedAt":"2026-07-07T16:38:59.285Z"}],"isRequired":true,"uniqueKey":"trustRecord.transaction.metadata","typeLabel":"Metadata · object"},"authority":{"title":"Authority","description":"Entity empowered to authorize execution within a trust domain. Immutable once issued.","type":"object","additionalProperties":true,"required":["authorityId","authorityType","principalId","issuedAt"],"properties":{"authorityId":{"type":"string","description":"Unique Authority identifier.","isRequired":true,"uniqueKey":"trustRecord.transaction.authority.authorityId","typeLabel":"string"},"authorityType":{"type":"string","description":"Type of authority.","enum":["USER","ROLE","SERVICE","ORGANIZATION"],"isRequired":true,"uniqueKey":"trustRecord.transaction.authority.authorityType","typeLabel":"enum\u003cstring>"},"principalId":{"type":"string","description":"Principal identifier.","isRequired":true,"uniqueKey":"trustRecord.transaction.authority.principalId","typeLabel":"string"},"issuedAt":{"type":"string","format":"date-time","description":"UTC timestamp when Authority became effective.","isRequired":true,"uniqueKey":"trustRecord.transaction.authority.issuedAt","typeLabel":"string\u003cdate-time>"},"displayName":{"type":"string","description":"Human-readable display name.","uniqueKey":"trustRecord.transaction.authority.displayName","typeLabel":"string"}},"examples":[{"authorityId":"c0c01c23-04a2-45f2-a821-ef24bfca02d3","authorityType":"SERVICE","principalId":"ap-automation-svc","displayName":"Accounts Payable Automation","issuedAt":"2026-07-07T16:38:59.285Z"}],"isRequired":true,"uniqueKey":"trustRecord.transaction.authority","typeLabel":"Authority · object"},"authorization":{"title":"Authorization","description":"Immutable trust artifact proving that an Authority granted approval for an intended execution.","type":"object","additionalProperties":true,"required":["authorizationId","authorityId","purpose","issuedAt"],"properties":{"authorizationId":{"type":"string","description":"Unique Authorization identifier.","isRequired":true,"uniqueKey":"trustRecord.transaction.authorization.authorizationId","typeLabel":"string"},"authorityId":{"type":"string","description":"Authority issuing this Authorization. Must match authority.authorityId. Parmana rejects a mismatch with a 400.","isRequired":true,"uniqueKey":"trustRecord.transaction.authorization.authorityId","typeLabel":"string"},"purpose":{"type":"string","description":"Business purpose for which the Authorization was granted.","isRequired":true,"uniqueKey":"trustRecord.transaction.authorization.purpose","typeLabel":"string"},"issuedAt":{"type":"string","format":"date-time","description":"UTC timestamp when the Authorization was issued.","isRequired":true,"uniqueKey":"trustRecord.transaction.authorization.issuedAt","typeLabel":"string\u003cdate-time>"},"expiresAt":{"type":"string","format":"date-time","description":"Optional expiration timestamp. After this time the Authorization is no longer valid.","uniqueKey":"trustRecord.transaction.authorization.expiresAt","typeLabel":"string\u003cdate-time>"}},"examples":[{"authorizationId":"6e9d6aa6-6d20-40a8-b05d-383516365cc7","authorityId":"c0c01c23-04a2-45f2-a821-ef24bfca02d3","purpose":"Authorize vendor payment disbursement","issuedAt":"2026-07-07T16:38:59.285Z"}],"isRequired":true,"uniqueKey":"trustRecord.transaction.authorization","typeLabel":"Authorization · object"},"intent":{"title":"Intent","description":"Immutable declaration of the action an Authority intends to be executed under an Authorization.","type":"object","additionalProperties":true,"required":["intentId","authorizationId","action","target","parameters","createdAt"],"properties":{"intentId":{"type":"string","description":"Unique Intent identifier.","isRequired":true,"uniqueKey":"trustRecord.transaction.intent.intentId","typeLabel":"string"},"authorizationId":{"type":"string","description":"Authorization under which this Intent was created. Must match authorization.authorizationId. Parmana rejects a mismatch with a 400.","isRequired":true,"uniqueKey":"trustRecord.transaction.intent.authorizationId","typeLabel":"string"},"action":{"type":"string","description":"Business action being requested. Required and non-empty. Parmana rejects an empty action with a 400.","examples":["VendorPayment","TransferFunds","DeployApplication"],"isRequired":true,"uniqueKey":"trustRecord.transaction.intent.action","typeLabel":"string"},"target":{"type":"string","description":"Target of the intended action.","examples":["vendor/V-100","account/12345"],"isRequired":true,"uniqueKey":"trustRecord.transaction.intent.target","typeLabel":"string"},"parameters":{"type":"object","description":"Immutable business parameters describing the intended action. Not evaluated by policy, see signals.","additionalProperties":true,"isRequired":true,"uniqueKey":"trustRecord.transaction.intent.parameters","typeLabel":"object"},"createdAt":{"type":"string","format":"date-time","description":"UTC timestamp when the Intent was created.","isRequired":true,"uniqueKey":"trustRecord.transaction.intent.createdAt","typeLabel":"string\u003cdate-time>"}},"examples":[{"intentId":"ae5865f6-181b-409a-90ec-1b4b8b8414ba","authorizationId":"6e9d6aa6-6d20-40a8-b05d-383516365cc7","action":"payments:execute","target":"vendor/V-100","parameters":{"amount":4500,"currency":"USD"},"createdAt":"2026-07-07T16:38:59.285Z"}],"isRequired":true,"uniqueKey":"trustRecord.transaction.intent","typeLabel":"Intent · object"},"policy":{"title":"Policy Reference","description":"Exact Policy to evaluate. The client explicitly supplies name, version, and schemaVersion; Parmana does not automatically discover or select a policy. If no matching policy file exists at policies/{name}/{version}/policy.json, the request fails with a 404 (policyId/policyVersion on POST /policies/validate) or a RUNTIME_ERROR (name/version elsewhere, from PolicyNotFoundError not otherwise mapped by the shared error handler in every route, see the error envelope note).","type":"object","additionalProperties":true,"required":["name","version","schemaVersion"],"properties":{"name":{"type":"string","description":"Policy name. Required and non-empty. Parmana rejects an empty name with a 400.","minLength":1,"isRequired":true,"uniqueKey":"trustRecord.transaction.policy.name","typeLabel":"string"},"version":{"type":"string","description":"Business policy version. Required and non-empty. Parmana rejects an empty version with a 400.","minLength":1,"examples":["2.0.0","1.0.0"],"isRequired":true,"uniqueKey":"trustRecord.transaction.policy.version","typeLabel":"string"},"schemaVersion":{"type":"string","description":"Signals schema version expected by the policy.","examples":["1.0.0"],"isRequired":true,"uniqueKey":"trustRecord.transaction.policy.schemaVersion","typeLabel":"string"},"contentHash":{"type":"string","description":"sha256 of the canonicalized policy.json content actually loaded for this decision (G-24). Server-computed, never caller-settable; absent on a request-supplied PolicyReference and on a PolicyReference built before this field existed. Only present on the copy embedded in an Execution Trust Record's transaction.policy.","uniqueKey":"trustRecord.transaction.policy.contentHash","typeLabel":"string"},"governanceAnchor":{"type":"object","description":"Whether the policy content above is traceable to a completed Policy Governance approval, resolved at decision time (G-45). Absent on a PolicyReference built before this field existed. Its presence does not imply POLICY_EXECUTION_VERIFICATION_ENFORCED is on -- only that the lookup ran and recorded what it found, which may honestly be \"no approval record exists for this policy yet.\"","additionalProperties":false,"required":["status"],"properties":{"status":{"type":"string","enum":["VERIFIED","NO_APPROVAL_RECORD","SIGNATURE_INVALID","CONTENT_MISMATCH"],"isRequired":true,"uniqueKey":"trustRecord.transaction.policy.governanceAnchor.status","typeLabel":"enum\u003cstring>"},"approvalRecordId":{"type":"string","description":"The PolicyChangeApprovalRecord this anchor resolved against. Present only when a record was found at all -- absent for NO_APPROVAL_RECORD.","uniqueKey":"trustRecord.transaction.policy.governanceAnchor.approvalRecordId","typeLabel":"string"}},"uniqueKey":"trustRecord.transaction.policy.governanceAnchor","typeLabel":"object"}},"examples":[{"name":"vendor-payment","version":"2.0.0","schemaVersion":"1.0.0"},{"name":"vendor-payment","version":"2.0.0","schemaVersion":"1.0.0","contentHash":"3f2504e04f8964e7ad0dbb0cf7fea1b4e0e1e0a3a1e1a4b6c8e0d5f6a7b8c9d0","governanceAnchor":{"status":"NO_APPROVAL_RECORD"}}],"isRequired":true,"uniqueKey":"trustRecord.transaction.policy","typeLabel":"Policy Reference · object"},"signals":{"title":"Signals","description":"Opaque runtime facts evaluated by the resolved Policy's rules. Parmana assigns no business meaning to these values and does not statically validate them beyond the Policy's own signalsSchema declaration (see policies/{name}/{version}/policy.json). Scaled integers, not floats, for numeric signals such as amounts (house convention across every reference policy).","type":"object","additionalProperties":true,"examples":[{"vendorVerified":true,"invoiceVerified":true,"paymentApproved":true,"sufficientFunds":true,"paymentAmount":4500,"riskScore":10}],"isRequired":true,"uniqueKey":"trustRecord.transaction.signals","typeLabel":"Signals · object"},"status":{"type":"string","description":"Current Business Transaction lifecycle state. Always RECEIVED at creation on both POST /execute and POST /transactions. Parmana sets this field via BusinessTransactionMapper.fromRequest and ignores any status the client sends.","enum":["RECEIVED","POLICY_EVALUATED","APPROVED","REJECTED","OVERRIDDEN","EXECUTING","EXECUTED","FAILED","VERIFIED"],"isRequired":true,"uniqueKey":"trustRecord.transaction.status","typeLabel":"enum\u003cstring>"},"createdAt":{"type":"string","format":"date-time","description":"UTC timestamp when the Business Transaction was accepted by Parmana.","isRequired":true,"uniqueKey":"trustRecord.transaction.createdAt","typeLabel":"string\u003cdate-time>"}},"examples":[{"businessTransactionId":"eed2a972-1bf5-4166-8472-761f76fbf1b2","metadata":{"businessTransactionId":"eed2a972-1bf5-4166-8472-761f76fbf1b2","correlationId":"6b97caca-1605-4711-bf00-7e5a65434d93","sourceSystem":"vendor-payment-service","submittedBy":"ap-automation","submittedAt":"2026-07-07T16:38:59.285Z"},"authority":{"authorityId":"c0c01c23-04a2-45f2-a821-ef24bfca02d3","authorityType":"SERVICE","principalId":"ap-automation-svc","displayName":"Accounts Payable Automation","issuedAt":"2026-07-07T16:38:59.285Z"},"authorization":{"authorizationId":"6e9d6aa6-6d20-40a8-b05d-383516365cc7","authorityId":"c0c01c23-04a2-45f2-a821-ef24bfca02d3","purpose":"Authorize vendor payment disbursement","issuedAt":"2026-07-07T16:38:59.285Z"},"intent":{"intentId":"ae5865f6-181b-409a-90ec-1b4b8b8414ba","authorizationId":"6e9d6aa6-6d20-40a8-b05d-383516365cc7","action":"payments:execute","target":"vendor/V-100","parameters":{"amount":4500,"currency":"USD"},"createdAt":"2026-07-07T16:38:59.285Z"},"policy":{"name":"vendor-payment","version":"2.0.0","schemaVersion":"1.0.0"},"signals":{"vendorVerified":true,"invoiceVerified":true,"paymentApproved":true,"sufficientFunds":true,"paymentAmount":4500,"riskScore":10},"status":"RECEIVED","createdAt":"2026-07-07T16:38:59.325Z"}],"isRequired":true,"uniqueKey":"trustRecord.transaction","typeLabel":"Business Transaction · object"},"overrides":{"type":"array","description":"Override history. Append-only; empty on every transaction in this repository today (no route creates an Override).","items":{"title":"Override","description":"Immutable trust artifact recording an authorized human override for a Business Transaction. No API route in this repository currently creates an Override; this schema exists only because ExecutionTrustRecord.overrides is part of the append-only Trust Record shape; every captured example has an empty overrides array.","type":"object","additionalProperties":true,"required":["overrideId","businessTransactionId","approvedBy","reason","approvedAt"],"properties":{"overrideId":{"type":"string","description":"Unique Override identifier.","isRequired":true,"uniqueKey":"trustRecord.overrides.items.[INDEX].overrideId","typeLabel":"string"},"businessTransactionId":{"type":"string","description":"Business Transaction to which this Override belongs.","isRequired":true,"uniqueKey":"trustRecord.overrides.items.[INDEX].businessTransactionId","typeLabel":"string"},"approvedBy":{"type":"string","description":"Authorized user or system that approved the Override.","isRequired":true,"uniqueKey":"trustRecord.overrides.items.[INDEX].approvedBy","typeLabel":"string"},"reason":{"type":"string","description":"Human-readable reason for the Override.","isRequired":true,"uniqueKey":"trustRecord.overrides.items.[INDEX].reason","typeLabel":"string"},"approvedAt":{"type":"string","format":"date-time","description":"UTC timestamp when the Override was approved.","isRequired":true,"uniqueKey":"trustRecord.overrides.items.[INDEX].approvedAt","typeLabel":"string\u003cdate-time>"},"justification":{"type":"string","description":"Optional business justification.","uniqueKey":"trustRecord.overrides.items.[INDEX].justification","typeLabel":"string"}},"uniqueKey":"trustRecord.overrides.items.[INDEX]","typeLabel":"Override · object"},"isRequired":true,"uniqueKey":"trustRecord.overrides","typeLabel":"Override · object[]"},"executions":{"type":"array","description":"Execution history. Append-only.","items":{"title":"Execution","description":"Immutable trust artifact recording what actually happened while processing a Business Transaction. Every Execution records exactly one Decision produced by deterministic Policy evaluation.","type":"object","additionalProperties":true,"required":["executionId","businessTransactionId","decision","status","mode","startedAt"],"properties":{"executionId":{"type":"string","description":"Unique Execution identifier.","isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].executionId","typeLabel":"string"},"businessTransactionId":{"type":"string","description":"Business Transaction to which this Execution belongs.","isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].businessTransactionId","typeLabel":"string"},"decision":{"title":"Decision","description":"Immutable result of evaluating an Intent against a Policy. Decision does not create authority, grant authorization, or modify Intent; it only records the outcome of deterministic Policy evaluation.","type":"object","additionalProperties":true,"required":["decisionId","intentId","policy","signals","outcome","evaluatedAt"],"properties":{"decisionId":{"type":"string","description":"Unique Decision identifier.","isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision.decisionId","typeLabel":"string"},"intentId":{"type":"string","description":"Intent evaluated by this Decision.","isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision.intentId","typeLabel":"string"},"policy":{"title":"Policy Reference","description":"Exact Policy to evaluate. The client explicitly supplies name, version, and schemaVersion; Parmana does not automatically discover or select a policy. If no matching policy file exists at policies/{name}/{version}/policy.json, the request fails with a 404 (policyId/policyVersion on POST /policies/validate) or a RUNTIME_ERROR (name/version elsewhere, from PolicyNotFoundError not otherwise mapped by the shared error handler in every route, see the error envelope note).","type":"object","additionalProperties":true,"required":["name","version","schemaVersion"],"properties":{"name":{"type":"string","description":"Policy name. Required and non-empty. Parmana rejects an empty name with a 400.","minLength":1,"isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision.policy.name","typeLabel":"string"},"version":{"type":"string","description":"Business policy version. Required and non-empty. Parmana rejects an empty version with a 400.","minLength":1,"examples":["2.0.0","1.0.0"],"isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision.policy.version","typeLabel":"string"},"schemaVersion":{"type":"string","description":"Signals schema version expected by the policy.","examples":["1.0.0"],"isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision.policy.schemaVersion","typeLabel":"string"},"contentHash":{"type":"string","description":"sha256 of the canonicalized policy.json content actually loaded for this decision (G-24). Server-computed, never caller-settable; absent on a request-supplied PolicyReference and on a PolicyReference built before this field existed. Only present on the copy embedded in an Execution Trust Record's transaction.policy.","uniqueKey":"trustRecord.executions.items.[INDEX].decision.policy.contentHash","typeLabel":"string"},"governanceAnchor":{"type":"object","description":"Whether the policy content above is traceable to a completed Policy Governance approval, resolved at decision time (G-45). Absent on a PolicyReference built before this field existed. Its presence does not imply POLICY_EXECUTION_VERIFICATION_ENFORCED is on -- only that the lookup ran and recorded what it found, which may honestly be \"no approval record exists for this policy yet.\"","additionalProperties":false,"required":["status"],"properties":{"status":{"type":"string","enum":["VERIFIED","NO_APPROVAL_RECORD","SIGNATURE_INVALID","CONTENT_MISMATCH"],"isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision.policy.governanceAnchor.status","typeLabel":"enum\u003cstring>"},"approvalRecordId":{"type":"string","description":"The PolicyChangeApprovalRecord this anchor resolved against. Present only when a record was found at all -- absent for NO_APPROVAL_RECORD.","uniqueKey":"trustRecord.executions.items.[INDEX].decision.policy.governanceAnchor.approvalRecordId","typeLabel":"string"}},"uniqueKey":"trustRecord.executions.items.[INDEX].decision.policy.governanceAnchor","typeLabel":"object"}},"examples":[{"name":"vendor-payment","version":"2.0.0","schemaVersion":"1.0.0"},{"name":"vendor-payment","version":"2.0.0","schemaVersion":"1.0.0","contentHash":"3f2504e04f8964e7ad0dbb0cf7fea1b4e0e1e0a3a1e1a4b6c8e0d5f6a7b8c9d0","governanceAnchor":{"status":"NO_APPROVAL_RECORD"}}],"isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision.policy","typeLabel":"Policy Reference · object"},"signals":{"title":"Signals","description":"Opaque runtime facts evaluated by the resolved Policy's rules. Parmana assigns no business meaning to these values and does not statically validate them beyond the Policy's own signalsSchema declaration (see policies/{name}/{version}/policy.json). Scaled integers, not floats, for numeric signals such as amounts (house convention across every reference policy).","type":"object","additionalProperties":true,"examples":[{"vendorVerified":true,"invoiceVerified":true,"paymentApproved":true,"sufficientFunds":true,"paymentAmount":4500,"riskScore":10}],"isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision.signals","typeLabel":"Signals · object"},"outcome":{"type":"string","description":"Policy evaluation outcome. There are no intermediate states: a Decision is always exactly one of these two values.","enum":["APPROVED","REJECTED"],"isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision.outcome","typeLabel":"enum\u003cstring>"},"evaluatedAt":{"type":"string","format":"date-time","description":"UTC timestamp when policy evaluation completed.","isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision.evaluatedAt","typeLabel":"string\u003cdate-time>"},"reason":{"type":"string","description":"Human-readable explanation, taken from the matching Policy rule's outcome.reason.","uniqueKey":"trustRecord.executions.items.[INDEX].decision.reason","typeLabel":"string"},"matchedRuleId":{"type":"string","description":"Identifier of the Policy rule that matched, or \"none\" when no rule matched. Absent on a Decision built before this field existed (docs/internal/VERIFICATION-GAPS.md G-44).","uniqueKey":"trustRecord.executions.items.[INDEX].decision.matchedRuleId","typeLabel":"string"},"evaluatedRules":{"type":"integer","description":"Number of rules evaluated before reaching a match (or exhausting the rule list). Same optionality as matchedRuleId.","uniqueKey":"trustRecord.executions.items.[INDEX].decision.evaluatedRules","typeLabel":"integer"},"matchedPath":{"type":"array","items":{"type":"string","uniqueKey":"trustRecord.executions.items.[INDEX].decision.matchedPath.items.[INDEX]","typeLabel":"string"},"description":"Ordered rule-id trace evaluation walked to reach matchedRuleId. Same optionality as matchedRuleId.","uniqueKey":"trustRecord.executions.items.[INDEX].decision.matchedPath","typeLabel":"string[]"},"assessment":{"type":"object","description":"Authority, business validation and, for a refusal, execution, each as its own status (RFC-0023). AUTHORIZED means the action type may be decided, not that this action is valid or was executed. Absent on decisions made before it existed.","required":["authority","businessValidation"],"properties":{"authority":{"type":"object","required":["status","reason"],"properties":{"status":{"type":"string","enum":["AUTHORIZED","NOT_AUTHORIZED","AUTHORITY_UNCLEAR","AUTHORITY_EXPIRED"],"isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision.assessment.authority.status","typeLabel":"enum\u003cstring>"},"reason":{"type":"string","isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision.assessment.authority.reason","typeLabel":"string"}},"isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision.assessment.authority","typeLabel":"object"},"businessValidation":{"type":"object","required":["status","reason"],"properties":{"status":{"type":"string","enum":["VALID","INVALID","MISSING_DATA","CONFLICTING_DATA","SOURCE_UNAVAILABLE","VALIDATION_EXPIRED","NOT_EVALUATED"],"isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision.assessment.businessValidation.status","typeLabel":"enum\u003cstring>"},"reason":{"type":"string","isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision.assessment.businessValidation.reason","typeLabel":"string"},"signals":{"type":"array","description":"Trusted Signals: facts established by their sources for this exact business object and action.","items":{"type":"object","uniqueKey":"trustRecord.executions.items.[INDEX].decision.assessment.businessValidation.signals.items.[INDEX]","typeLabel":"object"},"uniqueKey":"trustRecord.executions.items.[INDEX].decision.assessment.businessValidation.signals","typeLabel":"object[]"},"failures":{"type":"array","description":"Why business validation did not pass, one entry per signal that failed.","items":{"type":"object","required":["signalKey","status","reason"],"properties":{"signalKey":{"type":"string","isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision.assessment.businessValidation.failures.items.[INDEX].signalKey","typeLabel":"string"},"status":{"type":"string","enum":["VALID","INVALID","MISSING_DATA","CONFLICTING_DATA","SOURCE_UNAVAILABLE","VALIDATION_EXPIRED","NOT_EVALUATED"],"isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision.assessment.businessValidation.failures.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"reason":{"type":"string","isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision.assessment.businessValidation.failures.items.[INDEX].reason","typeLabel":"string"}},"uniqueKey":"trustRecord.executions.items.[INDEX].decision.assessment.businessValidation.failures.items.[INDEX]","typeLabel":"object"},"uniqueKey":"trustRecord.executions.items.[INDEX].decision.assessment.businessValidation.failures","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision.assessment.businessValidation","typeLabel":"object"},"execution":{"type":"object","required":["status","reason"],"properties":{"status":{"type":"string","enum":["EXECUTED","NOT_EXECUTED","EXECUTION_FAILED","EXECUTION_UNKNOWN"],"isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision.assessment.execution.status","typeLabel":"enum\u003cstring>"},"reason":{"type":"string","isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision.assessment.execution.reason","typeLabel":"string"}},"uniqueKey":"trustRecord.executions.items.[INDEX].decision.assessment.execution","typeLabel":"object"}},"uniqueKey":"trustRecord.executions.items.[INDEX].decision.assessment","typeLabel":"object"}},"examples":[{"decisionId":"9d69dc0b-333a-4be3-b09f-358fece806f3","intentId":"ae5865f6-181b-409a-90ec-1b4b8b8414ba","policy":{"name":"vendor-payment","version":"2.0.0","schemaVersion":"1.0.0"},"signals":{"vendorVerified":true,"invoiceVerified":true,"paymentApproved":true,"sufficientFunds":true,"paymentAmount":4500,"riskScore":10},"outcome":"APPROVED","reason":"Vendor payment authorized. Vendor verification, invoice verification, payment approval, funding, and risk assessment requirements were satisfied.","matchedRuleId":"approve-payment","evaluatedRules":1,"matchedPath":["approve-payment"],"evaluatedAt":"2026-07-07T16:38:59.326Z"}],"isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].decision","typeLabel":"Decision · object"},"status":{"type":"string","description":"Execution lifecycle state.","enum":["PROCESSING","COMPLETED","FAILED"],"isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"mode":{"type":"string","description":"Execution mode.","enum":["SYNC","ASYNC"],"isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].mode","typeLabel":"enum\u003cstring>"},"startedAt":{"type":"string","format":"date-time","description":"UTC timestamp when execution started.","isRequired":true,"uniqueKey":"trustRecord.executions.items.[INDEX].startedAt","typeLabel":"string\u003cdate-time>"},"completedAt":{"type":"string","format":"date-time","description":"UTC timestamp when execution completed. Present only for terminal executions.","uniqueKey":"trustRecord.executions.items.[INDEX].completedAt","typeLabel":"string\u003cdate-time>"},"evidence":{"type":"object","description":"Immutable execution evidence: businessTransactionId, action, target, parameters, success, executedAt, and an optional attributes bag for execution-system-specific evidence (for example Connector SDK evidence, when a Connector executed this Execution).","additionalProperties":true,"uniqueKey":"trustRecord.executions.items.[INDEX].evidence","typeLabel":"object"},"metadata":{"type":"object","description":"Execution-specific metadata. Currently populated with authorizationId when the Execution is APPROVED.","additionalProperties":true,"uniqueKey":"trustRecord.executions.items.[INDEX].metadata","typeLabel":"object"}},"examples":[{"executionId":"90746492-7721-4228-b244-67bf8a45ca68","businessTransactionId":"44b34a79-e0f2-49d7-a48e-e52fff88182e","decision":{"decisionId":"8ec880cb-677a-4889-96f1-5a18a4edc1b5","intentId":"1e77d0b3-2e57-4e31-b780-03abc92f1b69","policy":{"name":"vendor-payment","version":"2.0.0","schemaVersion":"1.0.0"},"signals":{"vendorVerified":true,"invoiceVerified":true,"paymentApproved":true,"sufficientFunds":true,"paymentAmount":5000,"riskScore":12},"outcome":"APPROVED","reason":"Vendor payment authorized. Vendor verification, invoice verification, payment approval, funding, and risk assessment requirements were satisfied.","evaluatedAt":"2026-07-13T17:36:00.967Z"},"status":"COMPLETED","mode":"SYNC","startedAt":"2026-07-13T17:36:00.968Z","metadata":{"authorizationId":"dbc09266-2078-4d4e-93d0-f355eb7eebcc"},"evidence":{"businessTransactionId":"44b34a79-e0f2-49d7-a48e-e52fff88182e","action":"payments:execute","target":"vendor/V-500","parameters":{"amount":5000,"currency":"USD"},"success":true,"executedAt":"2026-07-13T17:36:00.970Z","attributes":{"connector":{"connectorId":"vendor-payment","connectorVersion":"1.0.0","capability":"payments:execute","sanitizedEndpoint":"vendor/V-500","credentialProviderId":"environment","requestSummary":{"businessTransactionId":"44b34a79-e0f2-49d7-a48e-e52fff88182e","action":"payments:execute","target":"vendor/V-500","parameters":{"amount":5000,"currency":"USD"}},"responseSummary":{"success":true,"metadata":{}},"startedAt":"2026-07-13T17:36:00.970Z","completedAt":"2026-07-13T17:36:00.970Z","connectorEvidenceHash":"c97411026a82b608d9b0f8b137a64e26d8af24bdda09310b639e527e08a9aada"}}},"completedAt":"2026-07-13T17:36:00.970Z"}],"uniqueKey":"trustRecord.executions.items.[INDEX]","typeLabel":"Execution · object"},"isRequired":true,"uniqueKey":"trustRecord.executions","typeLabel":"Execution · object[]"},"verifications":{"type":"array","description":"Verification history. Append-only.","items":{"title":"Verification","description":"Immutable result of verifying an entire Execution Trust Record: recomputed hash matches the stored hash, signature verifies, and every APPROVED Execution carries a non-empty authorizationId. All checks always run and are reported together in message; a failure in one does not skip the others.","type":"object","additionalProperties":true,"required":["verificationId","businessTransactionId","status","verifiedAt","trustRecordHash"],"properties":{"verificationId":{"type":"string","description":"Unique Verification identifier.","isRequired":true,"uniqueKey":"trustRecord.verifications.items.[INDEX].verificationId","typeLabel":"string"},"businessTransactionId":{"type":"string","description":"Business Transaction being verified.","isRequired":true,"uniqueKey":"trustRecord.verifications.items.[INDEX].businessTransactionId","typeLabel":"string"},"status":{"type":"string","description":"Verification result.","enum":["VERIFIED","FAILED"],"isRequired":true,"uniqueKey":"trustRecord.verifications.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"verifiedAt":{"type":"string","format":"date-time","description":"UTC timestamp when verification completed.","isRequired":true,"uniqueKey":"trustRecord.verifications.items.[INDEX].verifiedAt","typeLabel":"string\u003cdate-time>"},"trustRecordHash":{"type":"string","description":"Hash of the verified Execution Trust Record, proving exactly which record was verified.","isRequired":true,"uniqueKey":"trustRecord.verifications.items.[INDEX].trustRecordHash","typeLabel":"string"},"message":{"type":"string","description":"Human-readable verification summary: either the success message, or every failed check's message joined with \"; \".","uniqueKey":"trustRecord.verifications.items.[INDEX].message","typeLabel":"string"}},"examples":[{"verificationId":"0ad69d3f-7fd0-4507-ab38-e386146757ae","businessTransactionId":"eed2a972-1bf5-4166-8472-761f76fbf1b2","status":"VERIFIED","message":"Execution Trust Record verified successfully.","verifiedAt":"2026-07-07T16:38:59.344Z","trustRecordHash":"989aef83d595202ec02bb338ac00461abec0541098ea065f965b5cde342d3b25"}],"uniqueKey":"trustRecord.verifications.items.[INDEX]","typeLabel":"Verification · object"},"isRequired":true,"uniqueKey":"trustRecord.verifications","typeLabel":"Verification · object[]"},"receipts":{"type":"array","description":"Receipt history. Append-only.","items":{"title":"Receipt","description":"Cryptographically signed, immutable Execution Trust Receipt proving the outcome of an Execution Trust Record at the time it was issued.","type":"object","additionalProperties":true,"required":["receiptId","businessTransactionId","trustRecordHash","receiptHash","signature","algorithm","issuedAt"],"properties":{"receiptId":{"type":"string","description":"Unique Receipt identifier.","isRequired":true,"uniqueKey":"trustRecord.receipts.items.[INDEX].receiptId","typeLabel":"string"},"businessTransactionId":{"type":"string","description":"Business Transaction represented by this Receipt.","isRequired":true,"uniqueKey":"trustRecord.receipts.items.[INDEX].businessTransactionId","typeLabel":"string"},"trustRecordHash":{"type":"string","description":"Canonical hash of the Execution Trust Record, used for independent verification.","isRequired":true,"uniqueKey":"trustRecord.receipts.items.[INDEX].trustRecordHash","typeLabel":"string"},"receiptHash":{"type":"string","description":"Hash of this Receipt.","isRequired":true,"uniqueKey":"trustRecord.receipts.items.[INDEX].receiptHash","typeLabel":"string"},"signature":{"type":"string","description":"Base64-encoded digital signature over the Receipt.","isRequired":true,"uniqueKey":"trustRecord.receipts.items.[INDEX].signature","typeLabel":"string"},"algorithm":{"type":"string","description":"Signing algorithm.","examples":["ed25519"],"isRequired":true,"uniqueKey":"trustRecord.receipts.items.[INDEX].algorithm","typeLabel":"string"},"issuedAt":{"type":"string","format":"date-time","description":"UTC timestamp when the Receipt was generated.","isRequired":true,"uniqueKey":"trustRecord.receipts.items.[INDEX].issuedAt","typeLabel":"string\u003cdate-time>"},"executionId":{"type":"string","description":"Execution represented by this Receipt. Absent when the Receipt represents the latest transaction state; every Receipt currently produced by ReceiptService omits this field.","uniqueKey":"trustRecord.receipts.items.[INDEX].executionId","typeLabel":"string"}},"examples":[{"receiptId":"312ce65d-8ec4-4978-ac50-aeb0062ad7be","businessTransactionId":"eed2a972-1bf5-4166-8472-761f76fbf1b2","trustRecordHash":"989aef83d595202ec02bb338ac00461abec0541098ea065f965b5cde342d3b25","receiptHash":"2cc963456dd71e0e85f2d2fe743d4475072997287356ac1b9c6a9314b189ea8b","issuedAt":"2026-07-07T16:38:59.350Z","algorithm":"ed25519","signature":"2Z49nDSXubFNTpy0ovPwguGW3IpgvdJuiusCAadMNPS4cqmjRUthZmrfN3kZUO5m7Ku5v/poeLxtjsFKvXe9DA=="}],"uniqueKey":"trustRecord.receipts.items.[INDEX]","typeLabel":"Receipt · object"},"isRequired":true,"uniqueKey":"trustRecord.receipts","typeLabel":"Receipt · object[]"},"trustRecordHash":{"type":"string","description":"Canonical hash of the Execution Trust Record, computed over its canonical serialized form.","isRequired":true,"uniqueKey":"trustRecord.trustRecordHash","typeLabel":"string"},"signature":{"type":"object","description":"Cryptographic signature over the canonical Execution Trust Record, proving it was produced by Parmana and has not been modified since signing.","additionalProperties":true,"required":["algorithm","keyId","value","signedAt"],"properties":{"algorithm":{"type":"string","examples":["ed25519"],"isRequired":true,"uniqueKey":"trustRecord.signature.algorithm","typeLabel":"string"},"keyId":{"type":"string","description":"Identifier of the signing key.","isRequired":true,"uniqueKey":"trustRecord.signature.keyId","typeLabel":"string"},"value":{"type":"string","description":"Base64-encoded signature value.","isRequired":true,"uniqueKey":"trustRecord.signature.value","typeLabel":"string"},"signedAt":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"trustRecord.signature.signedAt","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"trustRecord.signature","typeLabel":"object"},"createdAt":{"type":"string","format":"date-time","description":"UTC timestamp when the Execution Trust Record was first created.","isRequired":true,"uniqueKey":"trustRecord.createdAt","typeLabel":"string\u003cdate-time>"},"updatedAt":{"type":"string","format":"date-time","description":"UTC timestamp when the Execution Trust Record was last extended with a new immutable artifact.","isRequired":true,"uniqueKey":"trustRecord.updatedAt","typeLabel":"string\u003cdate-time>"},"evidenceAnchor":{"type":"object","description":"Explicit binding linking policy-governance provenance (transaction.policy.contentHash/governanceAnchor) to what a connector actually did (executions[].evidence.attributes.connector). Not a new cryptographic guarantee on its own -- both were already covered by trustRecordHash/signature -- but a single, explicitly-named pointer an auditor can check without reconstructing the binding themselves. Absent on a Trust Record built before this field existed.","additionalProperties":false,"required":["anchorHash"],"properties":{"anchorHash":{"type":"string","description":"sha256 of the canonicalized {policyContentHash, governanceAnchorStatus, connectorEvidenceHash} above.","isRequired":true,"uniqueKey":"trustRecord.evidenceAnchor.anchorHash","typeLabel":"string"},"policyContentHash":{"type":"string","description":"Copied from transaction.policy.contentHash (G-24). Present on every real Execution Trust Record.","uniqueKey":"trustRecord.evidenceAnchor.policyContentHash","typeLabel":"string"},"governanceAnchorStatus":{"type":"string","enum":["VERIFIED","NO_APPROVAL_RECORD","SIGNATURE_INVALID","CONTENT_MISMATCH"],"description":"Copied from transaction.policy.governanceAnchor.status (G-45). Absent only when no governance anchor resolver was configured for this deployment.","uniqueKey":"trustRecord.evidenceAnchor.governanceAnchorStatus","typeLabel":"enum\u003cstring>"},"connectorEvidenceHash":{"type":"string","description":"Copied from executions[0].evidence.attributes.connector.connectorEvidenceHash, when a real connector executed.","uniqueKey":"trustRecord.evidenceAnchor.connectorEvidenceHash","typeLabel":"string"}},"uniqueKey":"trustRecord.evidenceAnchor","typeLabel":"object"}},"examples":[{"trustRecordId":"759e916e-66d2-48c3-8869-55d557acf155","businessTransactionId":"eed2a972-1bf5-4166-8472-761f76fbf1b2","transaction":{"businessTransactionId":"eed2a972-1bf5-4166-8472-761f76fbf1b2","metadata":{"businessTransactionId":"eed2a972-1bf5-4166-8472-761f76fbf1b2","correlationId":"6b97caca-1605-4711-bf00-7e5a65434d93","sourceSystem":"vendor-payment-service","submittedBy":"ap-automation","submittedAt":"2026-07-07T16:38:59.285Z"},"authority":{"authorityId":"c0c01c23-04a2-45f2-a821-ef24bfca02d3","authorityType":"SERVICE","principalId":"ap-automation-svc","displayName":"Accounts Payable Automation","issuedAt":"2026-07-07T16:38:59.285Z"},"authorization":{"authorizationId":"6e9d6aa6-6d20-40a8-b05d-383516365cc7","authorityId":"c0c01c23-04a2-45f2-a821-ef24bfca02d3","purpose":"Authorize vendor payment disbursement","issuedAt":"2026-07-07T16:38:59.285Z"},"intent":{"intentId":"ae5865f6-181b-409a-90ec-1b4b8b8414ba","authorizationId":"6e9d6aa6-6d20-40a8-b05d-383516365cc7","action":"payments:execute","target":"vendor/V-100","parameters":{"amount":4500,"currency":"USD"},"createdAt":"2026-07-07T16:38:59.285Z"},"policy":{"name":"vendor-payment","version":"2.0.0","schemaVersion":"1.0.0"},"signals":{"vendorVerified":true,"invoiceVerified":true,"paymentApproved":true,"sufficientFunds":true,"paymentAmount":4500,"riskScore":10},"status":"RECEIVED","createdAt":"2026-07-07T16:38:59.325Z"},"overrides":[],"executions":[{"executionId":"2be38c15-f93c-4621-9a1c-7570c130dea0","businessTransactionId":"eed2a972-1bf5-4166-8472-761f76fbf1b2","decision":{"decisionId":"9d69dc0b-333a-4be3-b09f-358fece806f3","intentId":"ae5865f6-181b-409a-90ec-1b4b8b8414ba","policy":{"name":"vendor-payment","version":"2.0.0","schemaVersion":"1.0.0"},"signals":{"vendorVerified":true,"invoiceVerified":true,"paymentApproved":true,"sufficientFunds":true,"paymentAmount":4500,"riskScore":10},"outcome":"APPROVED","reason":"Vendor payment authorized. Vendor verification, invoice verification, payment approval, funding, and risk assessment requirements were satisfied.","evaluatedAt":"2026-07-07T16:38:59.326Z"},"status":"COMPLETED","mode":"SYNC","startedAt":"2026-07-07T16:38:59.328Z","metadata":{"authorizationId":"1dc2d137-fde2-4d9c-b298-79e9f8a0d03e"},"evidence":{"businessTransactionId":"eed2a972-1bf5-4166-8472-761f76fbf1b2","action":"payments:execute","target":"vendor/V-100","parameters":{"amount":4500,"currency":"USD"},"success":true,"executedAt":"2026-07-07T16:38:59.328Z","attributes":{"connector":{"connectorId":"vendor-payment","connectorVersion":"1.0.0","capability":"payments:execute","sanitizedEndpoint":"vendor/V-100","credentialProviderId":"environment","requestSummary":{"businessTransactionId":"eed2a972-1bf5-4166-8472-761f76fbf1b2","action":"payments:execute","target":"vendor/V-100","parameters":{"amount":4500,"currency":"USD"}},"responseSummary":{"success":true,"metadata":{}},"startedAt":"2026-07-07T16:38:59.328Z","completedAt":"2026-07-07T16:38:59.328Z","connectorEvidenceHash":"7bcacb3e399a713e44a4f48aa2783de8060ae28591e4fc1256b504bd32cd7aea"}}},"completedAt":"2026-07-07T16:38:59.329Z"}],"verifications":[{"verificationId":"0b96c8b4-9cd8-4162-81fc-086575cf0924","businessTransactionId":"eed2a972-1bf5-4166-8472-761f76fbf1b2","status":"VERIFIED","message":"Execution Trust Record verified successfully.","verifiedAt":"2026-07-07T16:38:59.331Z","trustRecordHash":"989aef83d595202ec02bb338ac00461abec0541098ea065f965b5cde342d3b25"}],"receipts":[{"receiptId":"3073a598-f927-4caf-8bb8-4f083f62b7e9","businessTransactionId":"eed2a972-1bf5-4166-8472-761f76fbf1b2","trustRecordHash":"989aef83d595202ec02bb338ac00461abec0541098ea065f965b5cde342d3b25","receiptHash":"8a5a0e9255dafef5ec588f0834e3c5b81dc7feb98a59f8bfa7083438fa58e231","issuedAt":"2026-07-07T16:38:59.331Z","algorithm":"ed25519","signature":"vzpykBuJhoy/2BdiR1x02KYZqMtKJu39olRJdzM5veSo9nYmoNSYQnt9HELlb2jlGWf07jPhP8ZXlrQnN4KQBA=="}],"createdAt":"2026-07-07T16:38:59.329Z","updatedAt":"2026-07-07T16:38:59.329Z","trustRecordHash":"989aef83d595202ec02bb338ac00461abec0541098ea065f965b5cde342d3b25","signature":{"algorithm":"ed25519","keyId":"default","value":"l41lr6nCUbrzEfoil/3+gkXd4zEQ9TR1qFaSwLuE70L/9U6cVz3VXdM1lPsDfELKh6RO4qcDrFWF/S3k4CAxAQ==","signedAt":"2026-07-07T16:38:59.330Z"}}],"isRequired":true,"uniqueKey":"trustRecord","typeLabel":"Execution Trust Record · object"}},"uniqueKey":"","typeLabel":"Finalize Execution Intent Response · object"},"examples":{"finalized":{"title":"finalized","value":{"outcome":"FINALIZED","businessTransactionId":"0815b845-20b0-4c45-9582-31fce04eaf58","trustRecordId":"e90c619d-d84d-4ac5-8ccd-1533e19620b7","trustRecord":{"trustRecordId":"e90c619d-d84d-4ac5-8ccd-1533e19620b7","businessTransactionId":"0815b845-20b0-4c45-9582-31fce04eaf58","transaction":{"businessTransactionId":"0815b845-20b0-4c45-9582-31fce04eaf58","metadata":{"businessTransactionId":"0815b845-20b0-4c45-9582-31fce04eaf58","correlationId":"76fd653b-0b4d-42a3-a520-1d54aa0cff39","createdBy":"integration-test","createdAt":"2026-10-01T10:14:05.158Z","submittedBy":"operator-maker","grantedCapability":"test:fixture-execute"},"authority":{"authorityId":"3ab4a04e-f032-4a2d-bdec-45a216e347e2","authorityType":"USER","principalId":"integration-test","displayName":"Integration Test","issuedAt":"2026-10-01T10:14:05.158Z"},"authorization":{"authorizationId":"6b9aa3b5-ea9c-4ffd-8471-a62d127846a8","authorityId":"3ab4a04e-f032-4a2d-bdec-45a216e347e2","purpose":"Integration Test","issuedAt":"2026-10-01T10:14:05.158Z"},"intent":{"intentId":"0ed0f62f-9cb9-4e89-a88e-e7eb0cd733d8","authorizationId":"6b9aa3b5-ea9c-4ffd-8471-a62d127846a8","action":"test:fixture-execute","target":"vendor://payments","parameters":{"paymentId":"payment-001","amount":1000},"createdAt":"2026-10-01T10:14:05.158Z"},"policy":{"name":"vendor-payment","version":"2.1.0","schemaVersion":"1.0.0","contentHash":"18f4acca151fef1c45c867f622bdd4edd5d640aa38b95e026430aba10756ee2d"},"signals":{"vendorVerified":true,"invoiceVerified":true,"paymentApproved":true,"sufficientFunds":true,"paymentAmount":1000,"riskScore":10,"vendorId":"vendor://payments","humanApproved":true,"approvalArtifact":{"payload":{"version":1,"approvalId":"5a8f523b-8bbc-4e85-b802-4e2beed9f423","issuer":{"approverId":"test-approver","keyId":"test-approver-key-1"},"issuedAt":"2026-10-01T10:14:05.158Z","expiresAt":"2026-10-01T10:29:05.158Z","capability":"test:fixture-execute","resourceId":"vendor://payments","scope":{"field":"value","comparator":"lte","value":1000},"nonce":"d95d37c2-5214-4f05-b25b-b6b9cfccc3f1"},"signature":{"algorithm":"ed25519","keyId":"test-approver-key-1","value":"rr8nX28mY3mw4NqI39HFkevWyYIyuR+YfIpROngbwCPnaOIvFzP/xtIiV4TfxwjJzid2v0jw2SkU9na2tm+pAw==","signedAt":"2026-10-01T10:14:05.158Z"}}},"status":"RECEIVED","createdAt":"2026-10-01T10:14:05.161Z"},"authorization":{"payload":{"version":1,"authorizationId":"0124ee41-6b81-4a34-9dca-4e7e6903a605","nonce":"9600d763-0309-4b44-a5c2-d1079e67e112","decisionId":"0086ad8e-8dc6-4dfb-895f-3f6bf93756c3","businessTransactionId":"0815b845-20b0-4c45-9582-31fce04eaf58","policyName":"vendor-payment","policyVersion":"2.1.0","policyContentHash":"18f4acca151fef1c45c867f622bdd4edd5d640aa38b95e026430aba10756ee2d","signalsHash":"22740e756e579df6102d6408aa403cdc42292f8d8ced9b1e23b189ddc655b3f8","submittedBy":"operator-maker","grantedCapability":"test:fixture-execute","authorizedAt":"2026-10-01T10:14:05.162Z","expiresAt":"2026-10-01T10:16:05.162Z","businessTransactionHash":"d1ccf6f901a96576c004a53a197b8e6a32eea95713b9dd00499b07a4b89da4e4"},"signature":"TDZgeHSqXhdacOLBUZzEMIFFTP1BkF68hTrvtQrI3SWJo7MApe6JqPTou7xoqzKK7tBwvDrG25mTyRA3TUA8AQ==","keyId":"default","algorithm":"ed25519"},"overrides":[],"executions":[{"executionId":"ad87bb66-5811-404b-bdbf-f8196bfec100","businessTransactionId":"0815b845-20b0-4c45-9582-31fce04eaf58","decision":{"decisionId":"0086ad8e-8dc6-4dfb-895f-3f6bf93756c3","intentId":"0ed0f62f-9cb9-4e89-a88e-e7eb0cd733d8","policy":{"name":"vendor-payment","version":"2.1.0","schemaVersion":"1.0.0"},"signals":{"vendorVerified":true,"invoiceVerified":true,"paymentApproved":true,"sufficientFunds":true,"paymentAmount":1000,"riskScore":10,"vendorId":"vendor://payments","humanApproved":true,"approvalArtifact":{"payload":{"version":1,"approvalId":"5a8f523b-8bbc-4e85-b802-4e2beed9f423","issuer":{"approverId":"test-approver","keyId":"test-approver-key-1"},"issuedAt":"2026-10-01T10:14:05.158Z","expiresAt":"2026-10-01T10:29:05.158Z","capability":"test:fixture-execute","resourceId":"vendor://payments","scope":{"field":"value","comparator":"lte","value":1000},"nonce":"d95d37c2-5214-4f05-b25b-b6b9cfccc3f1"},"signature":{"algorithm":"ed25519","keyId":"test-approver-key-1","value":"rr8nX28mY3mw4NqI39HFkevWyYIyuR+YfIpROngbwCPnaOIvFzP/xtIiV4TfxwjJzid2v0jw2SkU9na2tm+pAw==","signedAt":"2026-10-01T10:14:05.158Z"}}},"outcome":"APPROVED","reason":"Vendor payment authorized. Vendor verification, invoice verification, payment approval, funding, and risk assessment requirements were satisfied, with a verified human approval.","matchedRuleId":"approve-payment","evaluatedRules":1,"matchedPath":["approve-payment"],"evaluatedAt":"2026-10-01T10:14:05.162Z"},"status":"COMPLETED","mode":"SYNC","startedAt":"2026-10-01T10:14:05.164Z","metadata":{"authorizationId":"0124ee41-6b81-4a34-9dca-4e7e6903a605"},"previousChainHash":null,"chainHash":"94a3d02990b2e74a76bbaf742854ef6478855bc219cfe2c0761aa88a5222e40d","chainSignature":{"algorithm":"ed25519","keyId":"default","value":"4aKQdzrhPjdIEphO85x0am3wAesHiFfhDg45gQvtkCAmAO7sUMkgHdMMm9qmuhZMFPz4rPqY/2QiMVVT9ZpSAA==","signedAt":"2026-10-01T10:14:05.167Z"},"evidence":{"businessTransactionId":"0815b845-20b0-4c45-9582-31fce04eaf58","action":"test:fixture-execute","target":"vendor://payments","parameters":{"paymentId":"payment-001","amount":1000},"success":true,"executedAt":"2026-10-01T10:14:05.165Z","attributes":{}},"completedAt":"2026-10-01T10:14:05.166Z"}],"verifications":[{"verificationId":"ed256da8-bab4-429c-b161-8da81e4c794a","businessTransactionId":"0815b845-20b0-4c45-9582-31fce04eaf58","status":"VERIFIED","message":"Execution Trust Record verified successfully.","verifiedAt":"2026-10-01T10:14:05.174Z","trustRecordHash":"59d9a80090980ef5adf536a08897b66072dd86f98550ff45310502fe22b38612"}],"receipts":[{"receiptId":"85a5bc98-a5e3-4b58-b90c-ae46ee3226f6","businessTransactionId":"0815b845-20b0-4c45-9582-31fce04eaf58","trustRecordHash":"59d9a80090980ef5adf536a08897b66072dd86f98550ff45310502fe22b38612","receiptHash":"1896eea5226afcca692bc7163a446b2699b63b26255b1902549e38d1cafd093f","issuedAt":"2026-10-01T10:14:05.174Z","algorithm":"ed25519","signature":"XxsHhBDY9ZKD3VnjRS7e/ad5mdBoaJFsvETgrdmUEaA4WGT8C4TE+ANj97snSMS/WEmp4d+MjRR3inidJSu9Dg=="}],"evidenceAnchor":{"policyContentHash":"18f4acca151fef1c45c867f622bdd4edd5d640aa38b95e026430aba10756ee2d","anchorHash":"d9c24439faa28d86e5702a10b6cceace41ea1feac5e90af659c306f5ec3cd46e"},"createdAt":"2026-10-01T10:14:05.171Z","updatedAt":"2026-10-01T10:14:05.171Z","trustRecordHash":"59d9a80090980ef5adf536a08897b66072dd86f98550ff45310502fe22b38612","signature":{"algorithm":"ed25519","keyId":"default","value":"XK2qjtDkiHNCA12TNIvb5XnoBLqats3CiLdHN7xYxgYul+hCPrp78CPqNXGWDlzsItk8HMYPjQdkCjsgVBcFCw==","signedAt":"2026-10-01T10:14:05.172Z"}}}},"alreadyFinalized":{"title":"alreadyFinalized","value":{"outcome":"ALREADY_FINALIZED","businessTransactionId":"0815b845-20b0-4c45-9582-31fce04eaf58","trustRecordId":"e90c619d-d84d-4ac5-8ccd-1533e19620b7","trustRecord":{"trustRecordId":"e90c619d-d84d-4ac5-8ccd-1533e19620b7","businessTransactionId":"0815b845-20b0-4c45-9582-31fce04eaf58","transaction":{"businessTransactionId":"0815b845-20b0-4c45-9582-31fce04eaf58","metadata":{"businessTransactionId":"0815b845-20b0-4c45-9582-31fce04eaf58","correlationId":"76fd653b-0b4d-42a3-a520-1d54aa0cff39","createdBy":"integration-test","createdAt":"2026-10-01T10:14:05.158Z","submittedBy":"operator-maker","grantedCapability":"test:fixture-execute"},"authority":{"authorityId":"3ab4a04e-f032-4a2d-bdec-45a216e347e2","authorityType":"USER","principalId":"integration-test","displayName":"Integration Test","issuedAt":"2026-10-01T10:14:05.158Z"},"authorization":{"authorizationId":"6b9aa3b5-ea9c-4ffd-8471-a62d127846a8","authorityId":"3ab4a04e-f032-4a2d-bdec-45a216e347e2","purpose":"Integration Test","issuedAt":"2026-10-01T10:14:05.158Z"},"intent":{"intentId":"0ed0f62f-9cb9-4e89-a88e-e7eb0cd733d8","authorizationId":"6b9aa3b5-ea9c-4ffd-8471-a62d127846a8","action":"test:fixture-execute","target":"vendor://payments","parameters":{"paymentId":"payment-001","amount":1000},"createdAt":"2026-10-01T10:14:05.158Z"},"policy":{"name":"vendor-payment","version":"2.1.0","schemaVersion":"1.0.0","contentHash":"18f4acca151fef1c45c867f622bdd4edd5d640aa38b95e026430aba10756ee2d"},"signals":{"vendorVerified":true,"invoiceVerified":true,"paymentApproved":true,"sufficientFunds":true,"paymentAmount":1000,"riskScore":10,"vendorId":"vendor://payments","humanApproved":true,"approvalArtifact":{"payload":{"version":1,"approvalId":"5a8f523b-8bbc-4e85-b802-4e2beed9f423","issuer":{"approverId":"test-approver","keyId":"test-approver-key-1"},"issuedAt":"2026-10-01T10:14:05.158Z","expiresAt":"2026-10-01T10:29:05.158Z","capability":"test:fixture-execute","resourceId":"vendor://payments","scope":{"field":"value","comparator":"lte","value":1000},"nonce":"d95d37c2-5214-4f05-b25b-b6b9cfccc3f1"},"signature":{"algorithm":"ed25519","keyId":"test-approver-key-1","value":"rr8nX28mY3mw4NqI39HFkevWyYIyuR+YfIpROngbwCPnaOIvFzP/xtIiV4TfxwjJzid2v0jw2SkU9na2tm+pAw==","signedAt":"2026-10-01T10:14:05.158Z"}}},"status":"RECEIVED","createdAt":"2026-10-01T10:14:05.161Z"},"authorization":{"payload":{"version":1,"authorizationId":"0124ee41-6b81-4a34-9dca-4e7e6903a605","nonce":"9600d763-0309-4b44-a5c2-d1079e67e112","decisionId":"0086ad8e-8dc6-4dfb-895f-3f6bf93756c3","businessTransactionId":"0815b845-20b0-4c45-9582-31fce04eaf58","policyName":"vendor-payment","policyVersion":"2.1.0","policyContentHash":"18f4acca151fef1c45c867f622bdd4edd5d640aa38b95e026430aba10756ee2d","signalsHash":"22740e756e579df6102d6408aa403cdc42292f8d8ced9b1e23b189ddc655b3f8","submittedBy":"operator-maker","grantedCapability":"test:fixture-execute","authorizedAt":"2026-10-01T10:14:05.162Z","expiresAt":"2026-10-01T10:16:05.162Z","businessTransactionHash":"d1ccf6f901a96576c004a53a197b8e6a32eea95713b9dd00499b07a4b89da4e4"},"signature":"TDZgeHSqXhdacOLBUZzEMIFFTP1BkF68hTrvtQrI3SWJo7MApe6JqPTou7xoqzKK7tBwvDrG25mTyRA3TUA8AQ==","keyId":"default","algorithm":"ed25519"},"overrides":[],"executions":[{"executionId":"ad87bb66-5811-404b-bdbf-f8196bfec100","businessTransactionId":"0815b845-20b0-4c45-9582-31fce04eaf58","decision":{"decisionId":"0086ad8e-8dc6-4dfb-895f-3f6bf93756c3","intentId":"0ed0f62f-9cb9-4e89-a88e-e7eb0cd733d8","policy":{"name":"vendor-payment","version":"2.1.0","schemaVersion":"1.0.0"},"signals":{"vendorVerified":true,"invoiceVerified":true,"paymentApproved":true,"sufficientFunds":true,"paymentAmount":1000,"riskScore":10,"vendorId":"vendor://payments","humanApproved":true,"approvalArtifact":{"payload":{"version":1,"approvalId":"5a8f523b-8bbc-4e85-b802-4e2beed9f423","issuer":{"approverId":"test-approver","keyId":"test-approver-key-1"},"issuedAt":"2026-10-01T10:14:05.158Z","expiresAt":"2026-10-01T10:29:05.158Z","capability":"test:fixture-execute","resourceId":"vendor://payments","scope":{"field":"value","comparator":"lte","value":1000},"nonce":"d95d37c2-5214-4f05-b25b-b6b9cfccc3f1"},"signature":{"algorithm":"ed25519","keyId":"test-approver-key-1","value":"rr8nX28mY3mw4NqI39HFkevWyYIyuR+YfIpROngbwCPnaOIvFzP/xtIiV4TfxwjJzid2v0jw2SkU9na2tm+pAw==","signedAt":"2026-10-01T10:14:05.158Z"}}},"outcome":"APPROVED","reason":"Vendor payment authorized. Vendor verification, invoice verification, payment approval, funding, and risk assessment requirements were satisfied, with a verified human approval.","matchedRuleId":"approve-payment","evaluatedRules":1,"matchedPath":["approve-payment"],"evaluatedAt":"2026-10-01T10:14:05.162Z"},"status":"COMPLETED","mode":"SYNC","startedAt":"2026-10-01T10:14:05.164Z","metadata":{"authorizationId":"0124ee41-6b81-4a34-9dca-4e7e6903a605"},"previousChainHash":null,"chainHash":"94a3d02990b2e74a76bbaf742854ef6478855bc219cfe2c0761aa88a5222e40d","chainSignature":{"algorithm":"ed25519","keyId":"default","value":"4aKQdzrhPjdIEphO85x0am3wAesHiFfhDg45gQvtkCAmAO7sUMkgHdMMm9qmuhZMFPz4rPqY/2QiMVVT9ZpSAA==","signedAt":"2026-10-01T10:14:05.167Z"},"evidence":{"businessTransactionId":"0815b845-20b0-4c45-9582-31fce04eaf58","action":"test:fixture-execute","target":"vendor://payments","parameters":{"paymentId":"payment-001","amount":1000},"success":true,"executedAt":"2026-10-01T10:14:05.165Z","attributes":{}},"completedAt":"2026-10-01T10:14:05.166Z"}],"verifications":[{"verificationId":"ed256da8-bab4-429c-b161-8da81e4c794a","businessTransactionId":"0815b845-20b0-4c45-9582-31fce04eaf58","status":"VERIFIED","message":"Execution Trust Record verified successfully.","verifiedAt":"2026-10-01T10:14:05.174Z","trustRecordHash":"59d9a80090980ef5adf536a08897b66072dd86f98550ff45310502fe22b38612"}],"receipts":[{"receiptId":"85a5bc98-a5e3-4b58-b90c-ae46ee3226f6","businessTransactionId":"0815b845-20b0-4c45-9582-31fce04eaf58","trustRecordHash":"59d9a80090980ef5adf536a08897b66072dd86f98550ff45310502fe22b38612","receiptHash":"1896eea5226afcca692bc7163a446b2699b63b26255b1902549e38d1cafd093f","issuedAt":"2026-10-01T10:14:05.174Z","algorithm":"ed25519","signature":"XxsHhBDY9ZKD3VnjRS7e/ad5mdBoaJFsvETgrdmUEaA4WGT8C4TE+ANj97snSMS/WEmp4d+MjRR3inidJSu9Dg=="}],"evidenceAnchor":{"policyContentHash":"18f4acca151fef1c45c867f622bdd4edd5d640aa38b95e026430aba10756ee2d","anchorHash":"d9c24439faa28d86e5702a10b6cceace41ea1feac5e90af659c306f5ec3cd46e"},"createdAt":"2026-10-01T10:14:05.171Z","updatedAt":"2026-10-01T10:14:05.171Z","trustRecordHash":"59d9a80090980ef5adf536a08897b66072dd86f98550ff45310502fe22b38612","signature":{"algorithm":"ed25519","keyId":"default","value":"XK2qjtDkiHNCA12TNIvb5XnoBLqats3CiLdHN7xYxgYul+hCPrp78CPqNXGWDlzsItk8HMYPjQdkCjsgVBcFCw==","signedAt":"2026-10-01T10:14:05.172Z"}}}}},"exampleType":"examples"}},"exampleType":"examples"},"28539288-b224-4f6e-afff-24bfbecf1d98":{"description":"The `Authorization` header is missing, is not a bearer key, or names a key the server does not know. Nothing ran. Send a valid key.","content":{"application/json":{"schema":{"title":"Error Response","description":"Shared error envelope produced by packages/api/src/middleware/error-handler.ts and by every route's inline validation checks. error is always a plain human-readable string (never a nested object). code is present only when the failure was a RuntimeError subclass reaching the centralized error handler (VerificationFailedError, ReceiptGenerationError, or an uncategorized RuntimeError); it is absent from every inline route-level check (businessTransactionId format/required checks) and from BusinessTransactionValidationError, PolicyValidationError, SignalValidationError, PolicyNotFoundError, DuplicateBusinessTransactionError, and the generic 500 fallback. POST /policies/validate does NOT use this envelope at all. See its own response schema. For the triggering condition and recommended caller action behind any specific error/code/status combination, see the Error catalog at /api-reference/error-catalog.","type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable machine-readable error code. Only present for errors that reach the handler as a RuntimeError.","examples":["RUNTIME_ERROR","VERIFICATION_FAILED","RECEIPT_GENERATION_FAILED","POLICY_DENIED","CAPABILITY_NOT_ALLOWED","RATE_LIMITED","AUDIT_UNAVAILABLE","SIGNING_UNAVAILABLE","CONNECTOR_NOT_REGISTERED","EXECUTION_RECORD_INCOMPLETE","EXECUTION_INTENT_UNAVAILABLE","EXECUTION_INTENT_RESULT_NOT_RECORDED","EXECUTION_INTENT_NOT_FOUND","EXECUTION_INTENTS_NOT_ENABLED","EXECUTION_INTENT_NOT_RESOLVABLE","EXECUTION_INTENT_RESOLUTION_INVALID","NON_HUMAN_CALLER_DENIED","EXECUTION_OUTCOME_UNKNOWN","AUTHORIZATION_NO_LONGER_VALID"],"uniqueKey":"code","typeLabel":"string"},"executionStatus":{"type":"string","enum":["EXECUTION_UNKNOWN","NOT_EXECUTED"],"description":"RFC-0023 phase 4. EXECUTION_UNKNOWN with EXECUTION_OUTCOME_UNKNOWN: the action was released and the call failed, so whether it ran is unknown; never reported as failed, and the Execution Intent stays ERRORED until a person resolves it. NOT_EXECUTED with AUTHORIZATION_NO_LONGER_VALID: the release was refused because a business condition or the authority grant it rested on no longer held, and nothing was sent.","uniqueKey":"executionStatus","typeLabel":"enum\u003cstring>"}},"examples":[{"error":"businessTransactionId must be a valid UUID."},{"error":"Business Transaction 'eed2a972-1bf5-4166-8472-761f76fbf1b2' already exists."},{"error":"Execution rejected: Vendor payment rejected because the assessed payment risk exceeds the maximum permitted threshold.","code":"RUNTIME_ERROR"}],"uniqueKey":"","typeLabel":"Error Response · object"},"examples":{"authRequired":{"title":"authRequired","value":{"error":"authentication required"}}},"exampleType":"examples"}},"exampleType":"examples"},"c70b7772-68dd-45d2-b855-4782cdf9dfbe":{"description":"`NON_HUMAN_CALLER_DENIED`: this needs a human key.","content":{"application/json":{"schema":{"title":"Error Response","description":"Shared error envelope produced by packages/api/src/middleware/error-handler.ts and by every route's inline validation checks. error is always a plain human-readable string (never a nested object). code is present only when the failure was a RuntimeError subclass reaching the centralized error handler (VerificationFailedError, ReceiptGenerationError, or an uncategorized RuntimeError); it is absent from every inline route-level check (businessTransactionId format/required checks) and from BusinessTransactionValidationError, PolicyValidationError, SignalValidationError, PolicyNotFoundError, DuplicateBusinessTransactionError, and the generic 500 fallback. POST /policies/validate does NOT use this envelope at all. See its own response schema. For the triggering condition and recommended caller action behind any specific error/code/status combination, see the Error catalog at /api-reference/error-catalog.","type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable machine-readable error code. Only present for errors that reach the handler as a RuntimeError.","examples":["RUNTIME_ERROR","VERIFICATION_FAILED","RECEIPT_GENERATION_FAILED","POLICY_DENIED","CAPABILITY_NOT_ALLOWED","RATE_LIMITED","AUDIT_UNAVAILABLE","SIGNING_UNAVAILABLE","CONNECTOR_NOT_REGISTERED","EXECUTION_RECORD_INCOMPLETE","EXECUTION_INTENT_UNAVAILABLE","EXECUTION_INTENT_RESULT_NOT_RECORDED","EXECUTION_INTENT_NOT_FOUND","EXECUTION_INTENTS_NOT_ENABLED","EXECUTION_INTENT_NOT_RESOLVABLE","EXECUTION_INTENT_RESOLUTION_INVALID","NON_HUMAN_CALLER_DENIED","EXECUTION_OUTCOME_UNKNOWN","AUTHORIZATION_NO_LONGER_VALID"],"uniqueKey":"code","typeLabel":"string"},"executionStatus":{"type":"string","enum":["EXECUTION_UNKNOWN","NOT_EXECUTED"],"description":"RFC-0023 phase 4. EXECUTION_UNKNOWN with EXECUTION_OUTCOME_UNKNOWN: the action was released and the call failed, so whether it ran is unknown; never reported as failed, and the Execution Intent stays ERRORED until a person resolves it. NOT_EXECUTED with AUTHORIZATION_NO_LONGER_VALID: the release was refused because a business condition or the authority grant it rested on no longer held, and nothing was sent.","uniqueKey":"executionStatus","typeLabel":"enum\u003cstring>"}},"examples":[{"error":"businessTransactionId must be a valid UUID."},{"error":"Business Transaction 'eed2a972-1bf5-4166-8472-761f76fbf1b2' already exists."},{"error":"Execution rejected: Vendor payment rejected because the assessed payment risk exceeds the maximum permitted threshold.","code":"RUNTIME_ERROR"}],"uniqueKey":"","typeLabel":"Error Response · object"},"examples":{"nonHumanCaller":{"title":"nonHumanCaller","value":{"error":"This action requires a caller credential provisioned as a verified human (credentialHolderType: USER).","code":"NON_HUMAN_CALLER_DENIED"}}},"exampleType":"examples"}},"exampleType":"examples"},"42f59598-83cc-4a0f-a162-7b228ce98cfa":{"description":"No intent exists for this id.","content":{"application/json":{"schema":{"title":"Error Response","description":"Shared error envelope produced by packages/api/src/middleware/error-handler.ts and by every route's inline validation checks. error is always a plain human-readable string (never a nested object). code is present only when the failure was a RuntimeError subclass reaching the centralized error handler (VerificationFailedError, ReceiptGenerationError, or an uncategorized RuntimeError); it is absent from every inline route-level check (businessTransactionId format/required checks) and from BusinessTransactionValidationError, PolicyValidationError, SignalValidationError, PolicyNotFoundError, DuplicateBusinessTransactionError, and the generic 500 fallback. POST /policies/validate does NOT use this envelope at all. See its own response schema. For the triggering condition and recommended caller action behind any specific error/code/status combination, see the Error catalog at /api-reference/error-catalog.","type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable machine-readable error code. Only present for errors that reach the handler as a RuntimeError.","examples":["RUNTIME_ERROR","VERIFICATION_FAILED","RECEIPT_GENERATION_FAILED","POLICY_DENIED","CAPABILITY_NOT_ALLOWED","RATE_LIMITED","AUDIT_UNAVAILABLE","SIGNING_UNAVAILABLE","CONNECTOR_NOT_REGISTERED","EXECUTION_RECORD_INCOMPLETE","EXECUTION_INTENT_UNAVAILABLE","EXECUTION_INTENT_RESULT_NOT_RECORDED","EXECUTION_INTENT_NOT_FOUND","EXECUTION_INTENTS_NOT_ENABLED","EXECUTION_INTENT_NOT_RESOLVABLE","EXECUTION_INTENT_RESOLUTION_INVALID","NON_HUMAN_CALLER_DENIED","EXECUTION_OUTCOME_UNKNOWN","AUTHORIZATION_NO_LONGER_VALID"],"uniqueKey":"code","typeLabel":"string"},"executionStatus":{"type":"string","enum":["EXECUTION_UNKNOWN","NOT_EXECUTED"],"description":"RFC-0023 phase 4. EXECUTION_UNKNOWN with EXECUTION_OUTCOME_UNKNOWN: the action was released and the call failed, so whether it ran is unknown; never reported as failed, and the Execution Intent stays ERRORED until a person resolves it. NOT_EXECUTED with AUTHORIZATION_NO_LONGER_VALID: the release was refused because a business condition or the authority grant it rested on no longer held, and nothing was sent.","uniqueKey":"executionStatus","typeLabel":"enum\u003cstring>"}},"examples":[{"error":"businessTransactionId must be a valid UUID."},{"error":"Business Transaction 'eed2a972-1bf5-4166-8472-761f76fbf1b2' already exists."},{"error":"Execution rejected: Vendor payment rejected because the assessed payment risk exceeds the maximum permitted threshold.","code":"RUNTIME_ERROR"}],"uniqueKey":"","typeLabel":"Error Response · object"},"examples":{"notFound":{"title":"notFound","value":{"error":"No Execution Intent exists for business transaction 'unknown-transaction'. Transactions created before Execution Intents were introduced have none.","code":"EXECUTION_INTENT_NOT_FOUND"}}},"exampleType":"examples"}},"exampleType":"examples"},"8317892c-f3ce-44de-8d63-3c03587f35c4":{"description":"No execution result was saved, so there is nothing to rebuild from. Check the target system, then close the intent with `POST .../resolve`. Nothing was called or changed.","content":{"application/json":{"schema":{"title":"Error Response","description":"Shared error envelope produced by packages/api/src/middleware/error-handler.ts and by every route's inline validation checks. error is always a plain human-readable string (never a nested object). code is present only when the failure was a RuntimeError subclass reaching the centralized error handler (VerificationFailedError, ReceiptGenerationError, or an uncategorized RuntimeError); it is absent from every inline route-level check (businessTransactionId format/required checks) and from BusinessTransactionValidationError, PolicyValidationError, SignalValidationError, PolicyNotFoundError, DuplicateBusinessTransactionError, and the generic 500 fallback. POST /policies/validate does NOT use this envelope at all. See its own response schema. For the triggering condition and recommended caller action behind any specific error/code/status combination, see the Error catalog at /api-reference/error-catalog.","type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable machine-readable error code. Only present for errors that reach the handler as a RuntimeError.","examples":["RUNTIME_ERROR","VERIFICATION_FAILED","RECEIPT_GENERATION_FAILED","POLICY_DENIED","CAPABILITY_NOT_ALLOWED","RATE_LIMITED","AUDIT_UNAVAILABLE","SIGNING_UNAVAILABLE","CONNECTOR_NOT_REGISTERED","EXECUTION_RECORD_INCOMPLETE","EXECUTION_INTENT_UNAVAILABLE","EXECUTION_INTENT_RESULT_NOT_RECORDED","EXECUTION_INTENT_NOT_FOUND","EXECUTION_INTENTS_NOT_ENABLED","EXECUTION_INTENT_NOT_RESOLVABLE","EXECUTION_INTENT_RESOLUTION_INVALID","NON_HUMAN_CALLER_DENIED","EXECUTION_OUTCOME_UNKNOWN","AUTHORIZATION_NO_LONGER_VALID"],"uniqueKey":"code","typeLabel":"string"},"executionStatus":{"type":"string","enum":["EXECUTION_UNKNOWN","NOT_EXECUTED"],"description":"RFC-0023 phase 4. EXECUTION_UNKNOWN with EXECUTION_OUTCOME_UNKNOWN: the action was released and the call failed, so whether it ran is unknown; never reported as failed, and the Execution Intent stays ERRORED until a person resolves it. NOT_EXECUTED with AUTHORIZATION_NO_LONGER_VALID: the release was refused because a business condition or the authority grant it rested on no longer held, and nothing was sent.","uniqueKey":"executionStatus","typeLabel":"enum\u003cstring>"}},"examples":[{"error":"businessTransactionId must be a valid UUID."},{"error":"Business Transaction 'eed2a972-1bf5-4166-8472-761f76fbf1b2' already exists."},{"error":"Execution rejected: Vendor payment rejected because the assessed payment risk exceeds the maximum permitted threshold.","code":"RUNTIME_ERROR"}],"uniqueKey":"","typeLabel":"Error Response · object"},"examples":{"resultNotRecorded":{"title":"resultNotRecorded","value":{"error":"The Execution Intent for business transaction 'b1237ce3-305a-4004-8179-749352fc1ade' is in state PREPARED and has no saved execution result, so its signed Execution Trust Record cannot be rebuilt. The action may or may not have been released. Establish the outcome from the connector and reconcile it by hand. Nothing was called.","code":"EXECUTION_INTENT_RESULT_NOT_RECORDED"}}},"exampleType":"examples"}},"exampleType":"examples"},"7758d519-6a3a-4f41-b32a-ea5414f538a1":{"description":"Execution Intents are not enabled on this deployment.","content":{"application/json":{"schema":{"title":"Error Response","description":"Shared error envelope produced by packages/api/src/middleware/error-handler.ts and by every route's inline validation checks. error is always a plain human-readable string (never a nested object). code is present only when the failure was a RuntimeError subclass reaching the centralized error handler (VerificationFailedError, ReceiptGenerationError, or an uncategorized RuntimeError); it is absent from every inline route-level check (businessTransactionId format/required checks) and from BusinessTransactionValidationError, PolicyValidationError, SignalValidationError, PolicyNotFoundError, DuplicateBusinessTransactionError, and the generic 500 fallback. POST /policies/validate does NOT use this envelope at all. See its own response schema. For the triggering condition and recommended caller action behind any specific error/code/status combination, see the Error catalog at /api-reference/error-catalog.","type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"string","description":"Human-readable error message.","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"code":{"type":"string","description":"Stable machine-readable error code. Only present for errors that reach the handler as a RuntimeError.","examples":["RUNTIME_ERROR","VERIFICATION_FAILED","RECEIPT_GENERATION_FAILED","POLICY_DENIED","CAPABILITY_NOT_ALLOWED","RATE_LIMITED","AUDIT_UNAVAILABLE","SIGNING_UNAVAILABLE","CONNECTOR_NOT_REGISTERED","EXECUTION_RECORD_INCOMPLETE","EXECUTION_INTENT_UNAVAILABLE","EXECUTION_INTENT_RESULT_NOT_RECORDED","EXECUTION_INTENT_NOT_FOUND","EXECUTION_INTENTS_NOT_ENABLED","EXECUTION_INTENT_NOT_RESOLVABLE","EXECUTION_INTENT_RESOLUTION_INVALID","NON_HUMAN_CALLER_DENIED","EXECUTION_OUTCOME_UNKNOWN","AUTHORIZATION_NO_LONGER_VALID"],"uniqueKey":"code","typeLabel":"string"},"executionStatus":{"type":"string","enum":["EXECUTION_UNKNOWN","NOT_EXECUTED"],"description":"RFC-0023 phase 4. EXECUTION_UNKNOWN with EXECUTION_OUTCOME_UNKNOWN: the action was released and the call failed, so whether it ran is unknown; never reported as failed, and the Execution Intent stays ERRORED until a person resolves it. NOT_EXECUTED with AUTHORIZATION_NO_LONGER_VALID: the release was refused because a business condition or the authority grant it rested on no longer held, and nothing was sent.","uniqueKey":"executionStatus","typeLabel":"enum\u003cstring>"}},"examples":[{"error":"businessTransactionId must be a valid UUID."},{"error":"Business Transaction 'eed2a972-1bf5-4166-8472-761f76fbf1b2' already exists."},{"error":"Execution rejected: Vendor payment rejected because the assessed payment risk exceeds the maximum permitted threshold.","code":"RUNTIME_ERROR"}],"uniqueKey":"","typeLabel":"Error Response · object"},"examples":{"notEnabled":{"title":"notEnabled","value":{"error":"Execution Intents are not enabled on this deployment.","code":"EXECUTION_INTENTS_NOT_ENABLED"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"af732d37-5431-41a0-8f01-3617192bfa7b":{"operatorBearer":{"type":"apiKey","in":"header","name":"Authorization","description":"A human key (credentialHolderType: USER) issued by the operator. Sent as Authorization: Bearer \u003ckey>. The public sandbox and its demo key are refused on these routes, so no key is prefilled here.","scopes":[],"schemeName":"operatorBearer"}}},"servers":{"b02bd471-4a68-4e6a-9665-bd59d513912d":{"url":"https://parmana-api-real.vercel.app","description":"Production. Use a key issued by the operator."}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"Authorization","description":"A human key (credentialHolderType: USER) issued by the operator. Sent as Authorization: Bearer \u003ckey>. The public sandbox and its demo key are refused on these routes, so no key is prefilled here.","scopes":[],"schemeName":"operatorBearer"},"schema":{"title":"Authorization","type":"string","description":"A human key (credentialHolderType: USER) issued by the operator. Sent as Authorization: Bearer \u003ckey>. The public sandbox and its demo key are refused on these routes, so no key is prefilled here.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"operatorBearer","name":"Authorization"}],"title":"operatorBearer"}]},"originalFileLocation":"openapi.bundled.yaml"},"subdomain":"parmanasystems","siteName":"Parmana","title":"Rebuild the signed Trust Record for a released action - Parmana","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-01T10:36:33.011Z","originalFileLocation":"api-reference/endpoints/finalize-execution-intent.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Rebuilds the signed Trust Record for an action that was released but whose record was never produced, the repair for a 500 EXECUTION_RECORD_INCOMPLETE.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Parmana\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/parmanasystems/etjcJguz6BN6OG2a/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/parmanasystems/etjcJguz6BN6OG2a/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/parmanasystems/etjcJguz6BN6OG2a/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/parmanasystems/etjcJguz6BN6OG2a/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/parmanasystems/etjcJguz6BN6OG2a/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/parmanasystems/etjcJguz6BN6OG2a/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/parmanasystems/etjcJguz6BN6OG2a/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/parmanasystems/etjcJguz6BN6OG2a/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/parmanasystems/etjcJguz6BN6OG2a/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Rebuild the signed Trust Record for a released action - Parmana\">\u003cmeta data-mint-head property=\"og:description\" content=\"Rebuilds the signed Trust Record for an action that was released but whose record was never produced, the repair for a 500 EXECUTION_RECORD_INCOMPLETE.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Parmana\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.parmanasystems.com/api-reference/endpoints/finalize-execution-intent\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://parmanasystems.mintlify.app/_mintlify/api/og/v2?division=Execution+Intents\u0026amp;title=Rebuild+the+signed+Trust+Record+for+a+released+action\u0026amp;description=Rebuilds+the+signed+Trust+Record+for+an+action+that+was+released+but+whose+record+was+never+produced%2C+the+repair+for+a+%60500%60+%60EXECUTION_RECORD_INCOMPLETE%60.\u0026amp;theme=330e7d48bcc953731fc52f38\u0026amp;signature=12245aab8f634bb2159b9e09b204f4082a56a05d0262ec001203a919ad28fa22\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Rebuild the signed Trust Record for a released action - Parmana\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Rebuilds the signed Trust Record for an action that was released but whose record was never produced, the repair for a 500 EXECUTION_RECORD_INCOMPLETE.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://parmanasystems.mintlify.app/_mintlify/api/og/v2?division=Execution+Intents\u0026amp;title=Rebuild+the+signed+Trust+Record+for+a+released+action\u0026amp;description=Rebuilds+the+signed+Trust+Record+for+an+action+that+was+released+but+whose+record+was+never+produced%2C+the+repair+for+a+%60500%60+%60EXECUTION_RECORD_INCOMPLETE%60.\u0026amp;theme=330e7d48bcc953731fc52f38\u0026amp;signature=12245aab8f634bb2159b9e09b204f4082a56a05d0262ec001203a919ad28fa22\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/parmanasystems/etjcJguz6BN6OG2a/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Parmana\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#6366F1\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.parmanasystems.com/api-reference/endpoints/finalize-execution-intent\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/endpoints/finalize-execution-intent.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.parmanasystems.com/#organization\",\"name\":\"Parmana\",\"url\":\"https://docs.parmanasystems.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/parmanasystems/3fc1F82PB1uU1_pD/logo/logo-light.svg?fit=max\u0026auto=format\u0026n=3fc1F82PB1uU1_pD\u0026q=85\u0026s=902f62a6181def8e3c6b5aa71a40d247\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.parmanasystems.com#website\",\"name\":\"Parmana\",\"url\":\"https://docs.parmanasystems.com\",\"publisher\":{\"@id\":\"https://docs.parmanasystems.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.parmanasystems.com/api-reference/endpoints/finalize-execution-intent#webpage\",\"url\":\"https://docs.parmanasystems.com/api-reference/endpoints/finalize-execution-intent\",\"name\":\"Rebuild the signed Trust Record for a released action\",\"description\":\"Rebuilds the signed Trust Record for an action that was released but whose record was never produced, the repair for a 500 EXECUTION_RECORD_INCOMPLETE.\",\"dateModified\":\"2026-10-01T10:36:33.011Z\",\"isPartOf\":{\"@id\":\"https://docs.parmanasystems.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.parmanasystems.com/api-reference/endpoints/finalize-execution-intent#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.parmanasystems.com/api-reference/endpoints/finalize-execution-intent#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Execution Intents\",\"item\":\"https://docs.parmanasystems.com/api-reference/endpoints/verify-execution-intent\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Rebuild the signed Trust Record for a released action\",\"item\":\"https://docs.parmanasystems.com/api-reference/endpoints/finalize-execution-intent\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.parmanasystems.com/api-reference/endpoints/finalize-execution-intent#apireference\",\"headline\":\"Rebuild the signed Trust Record for a released action\",\"name\":\"Rebuild the signed Trust Record for a released action\",\"description\":\"Rebuilds the signed Trust Record for an action that was released but whose record was never produced, the repair for a 500 EXECUTION_RECORD_INCOMPLETE.\",\"url\":\"https://docs.parmanasystems.com/api-reference/endpoints/finalize-execution-intent\",\"mainEntityOfPage\":{\"@id\":\"https://docs.parmanasystems.com/api-reference/endpoints/finalize-execution-intent#webpage\"},\"dateModified\":\"2026-10-01T10:36:33.011Z\",\"publisher\":{\"@id\":\"https://docs.parmanasystems.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.parmanasystems.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Parmana\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Parmana","nav":{"global":null,"tabs":[{"tab":"Get started","pages":[{"title":"Get started","href":""}]},{"tab":"Concepts","pages":[{"title":"Concepts","href":"/concepts/policies-and-the-decision"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides/full-integration-overview"}]},{"tab":"TypeScript SDK","pages":[{"title":"TypeScript SDK","href":"/sdks/typescript"}]},{"tab":"Python SDK","pages":[{"title":"Python SDK","href":"/sdks/python"}]},{"tab":"Connector SDKs","pages":[{"title":"Connector SDKs","href":"/integrations/overview"}]},{"tab":"REST API","groups":[{"group":"REST API guide","pages":[{"title":"REST API Introduction","href":"/api-reference/introduction"},{"title":"Authentication","href":"/api-reference/authentication"},{"title":"Error Handling","href":"/api-reference/error-handling"},{"title":"Idempotency and Nonces","href":"/api-reference/idempotency-and-nonces"},{"title":"Error Catalog","href":"/api-reference/error-catalog"},{"title":"SDK coverage of the API","href":"/sdks/api-coverage"}]},{"group":"Execution","pages":[{"title":"Execute a Business Transaction","openapi":"openapi.bundled.yaml POST /execute","href":"/api-reference/endpoints/execute-transaction"}]},{"group":"Transactions","pages":[{"title":"List Business Transactions","openapi":"openapi.bundled.yaml GET /transactions","href":"/api-reference/endpoints/list-transactions"},{"title":"Create (execute) a Business Transaction","openapi":"openapi.bundled.yaml POST /transactions","href":"/api-reference/endpoints/create-transaction"},{"title":"Get Business Transaction","openapi":"openapi.bundled.yaml GET /transactions/{businessTransactionId}","href":"/api-reference/endpoints/get-transaction"}]},{"group":"Verification","pages":[{"title":"Verify an Execution Trust Record","openapi":"openapi.bundled.yaml POST /verify","href":"/api-reference/endpoints/verify-transaction"},{"title":"Get latest Verification","openapi":"openapi.bundled.yaml GET /verification/{businessTransactionId}","href":"/api-reference/endpoints/get-latest-verification"}]},{"group":"Receipts","pages":[{"title":"Generate a Receipt","openapi":"openapi.bundled.yaml POST /receipt","href":"/api-reference/endpoints/generate-receipt"},{"title":"Get latest Receipt","openapi":"openapi.bundled.yaml GET /receipt/latest/{businessTransactionId}","href":"/api-reference/endpoints/get-latest-receipt"}]},{"group":"Trust Records","pages":[{"title":"Bulk-export Execution Trust Records (compliance/audit)","openapi":"openapi.bundled.yaml GET /trust-records","href":"/api-reference/endpoints/list-trust-records"},{"title":"Get Execution Trust Record","openapi":"openapi.bundled.yaml GET /trust-records/{businessTransactionId}","href":"/api-reference/endpoints/get-trust-record"}]},{"group":"Replay","pages":[{"title":"Replay an Execution Trust Record","openapi":"openapi.bundled.yaml POST /replay","href":"/api-reference/endpoints/replay-transaction"}]},{"group":"Policies","pages":[{"title":"Get the policy a capability's requests must declare right now","openapi":"openapi.bundled.yaml GET /policies/in-effect","href":"/api-reference/endpoints/get-policy-in-effect"},{"title":"Validate that a Policy exists and is readable","openapi":"openapi.bundled.yaml POST /policies/validate","href":"/api-reference/endpoints/validate-policy"}]},{"group":"Policy Governance","pages":[{"title":"Propose a policy change (maker)","openapi":"openapi.bundled.yaml POST /policies/{name}/{version}/pending-changes","href":"/api-reference/endpoints/propose-policy-change"},{"title":"List pending policy changes (maker-checker)","openapi":"openapi.bundled.yaml GET /policies/pending-changes","href":"/api-reference/endpoints/list-pending-policy-changes"},{"title":"Approve a pending policy change (checker)","openapi":"openapi.bundled.yaml POST /policies/pending-changes/{id}/approve","href":"/api-reference/endpoints/approve-policy-change"},{"title":"Reject a pending policy change (checker)","openapi":"openapi.bundled.yaml POST /policies/pending-changes/{id}/reject","href":"/api-reference/endpoints/reject-policy-change"}]},{"group":"Approvers","pages":[{"title":"List approver keys","openapi":"openapi.bundled.yaml GET /approval-issuers","href":"/api-reference/endpoints/list-approval-issuers"},{"title":"List approver changes","openapi":"openapi.bundled.yaml GET /approval-issuers/changes","href":"/api-reference/endpoints/list-approval-issuer-changes"},{"title":"Propose adding or revoking an approver key","openapi":"openapi.bundled.yaml POST /approval-issuers/changes","href":"/api-reference/endpoints/propose-approval-issuer-change"},{"title":"Approve an approver change","openapi":"openapi.bundled.yaml POST /approval-issuers/changes/{id}/approve","href":"/api-reference/endpoints/approve-approval-issuer-change"},{"title":"Reject an approver change","openapi":"openapi.bundled.yaml POST /approval-issuers/changes/{id}/reject","href":"/api-reference/endpoints/reject-approval-issuer-change"}]},{"group":"External Connectors","pages":[{"title":"List external connectors","openapi":"openapi.bundled.yaml GET /external-connectors","href":"/api-reference/endpoints/list-external-connectors"},{"title":"List external connector changes","openapi":"openapi.bundled.yaml GET /external-connectors/changes","href":"/api-reference/endpoints/list-external-connector-changes"},{"title":"Propose registering or revoking an external connector","openapi":"openapi.bundled.yaml POST /external-connectors/changes","href":"/api-reference/endpoints/propose-external-connector-change"},{"title":"Approve an external connector change","openapi":"openapi.bundled.yaml POST /external-connectors/changes/{id}/approve","href":"/api-reference/endpoints/approve-external-connector-change"},{"title":"Reject an external connector change","openapi":"openapi.bundled.yaml POST /external-connectors/changes/{id}/reject","href":"/api-reference/endpoints/reject-external-connector-change"}]},{"group":"Business Signal Sources","pages":[{"title":"List business signal sources","openapi":"openapi.bundled.yaml GET /business-signal-sources","href":"/api-reference/endpoints/list-business-signal-sources"},{"title":"List business signal source changes","openapi":"openapi.bundled.yaml GET /business-signal-sources/changes","href":"/api-reference/endpoints/list-business-signal-source-changes"},{"title":"Propose registering or revoking a business signal source","openapi":"openapi.bundled.yaml POST /business-signal-sources/changes","href":"/api-reference/endpoints/propose-business-signal-source-change"},{"title":"Approve a business signal source change","openapi":"openapi.bundled.yaml POST /business-signal-sources/changes/{id}/approve","href":"/api-reference/endpoints/approve-business-signal-source-change"},{"title":"Reject a business signal source change","openapi":"openapi.bundled.yaml POST /business-signal-sources/changes/{id}/reject","href":"/api-reference/endpoints/reject-business-signal-source-change"}]},{"group":"Authority Grants","pages":[{"title":"List authority grants","openapi":"openapi.bundled.yaml GET /authority-grants","href":"/api-reference/endpoints/list-authority-grants"},{"title":"List authority grant changes","openapi":"openapi.bundled.yaml GET /authority-grants/changes","href":"/api-reference/endpoints/list-authority-grant-changes"},{"title":"Propose granting or revoking an agent's authority","openapi":"openapi.bundled.yaml POST /authority-grants/changes","href":"/api-reference/endpoints/propose-authority-grant-change"},{"title":"Approve an authority grant change","openapi":"openapi.bundled.yaml POST /authority-grants/changes/{id}/approve","href":"/api-reference/endpoints/approve-authority-grant-change"},{"title":"Reject an authority grant change","openapi":"openapi.bundled.yaml POST /authority-grants/changes/{id}/reject","href":"/api-reference/endpoints/reject-authority-grant-change"}]},{"group":"Sandbox","pages":[{"title":"Get a demo approval (sandbox only)","openapi":"openapi.bundled.yaml POST /sandbox/approvals","href":"/api-reference/endpoints/create-sandbox-approval"}]},{"group":"Kill Switch","pages":[{"title":"Trip the operator kill switch","openapi":"openapi.bundled.yaml POST /kill-switch/trip","href":"/api-reference/endpoints/trip-kill-switch"},{"title":"Reset the operator kill switch","openapi":"openapi.bundled.yaml POST /kill-switch/reset","href":"/api-reference/endpoints/reset-kill-switch"},{"title":"Read the kill switch state","openapi":"openapi.bundled.yaml GET /kill-switch/status","href":"/api-reference/endpoints/get-kill-switch-status"},{"title":"Record a kill switch probe result","openapi":"openapi.bundled.yaml POST /kill-switch/probes","href":"/api-reference/endpoints/record-kill-switch-probe"}]},{"group":"Refusal Records","pages":[{"title":"Verify a Refusal Record's signature","openapi":"openapi.bundled.yaml POST /refusal/verify","href":"/api-reference/endpoints/verify-refusal-record"},{"title":"Get a Refusal Record by transaction ID","openapi":"openapi.bundled.yaml GET /refusal/{businessTransactionId}","href":"/api-reference/endpoints/get-refusal-record"}]},{"group":"Execution Intents","pages":[{"title":"Verify an Execution Intent's signature","openapi":"openapi.bundled.yaml POST /execution-intents/verify","href":"/api-reference/endpoints/verify-execution-intent"},{"title":"List Execution Intents that never reached a signed Trust Record","openapi":"openapi.bundled.yaml GET /execution-intents/unfinalized","href":"/api-reference/endpoints/list-unfinalized-execution-intents"},{"title":"Get an Execution Intent and its status","description":"Returns the signed Execution Intent for a transaction and where it got to.","openapi":"openapi.bundled.yaml GET /execution-intents/{businessTransactionId}","href":"/api-reference/endpoints/get-execution-intent"},{"title":"Rebuild the signed Trust Record for a released action","openapi":"openapi.bundled.yaml POST /execution-intents/{businessTransactionId}/finalize","href":"/api-reference/endpoints/finalize-execution-intent"},{"title":"Close an intent you reconciled by hand","description":"Closes an intent in state `PREPARED` or `ERRORED` after a person checked the target system, the repair for a `502` `EXECUTION_OUTCOME_UNKNOWN`.","openapi":"openapi.bundled.yaml POST /execution-intents/{businessTransactionId}/resolve","href":"/api-reference/endpoints/resolve-execution-intent"}]},{"group":"Audit","pages":[{"title":"Verify a signed caller-authentication audit event","openapi":"openapi.bundled.yaml POST /audit/verify","href":"/api-reference/endpoints/verify-audit-event"}]},{"group":"System","pages":[{"title":"Root","openapi":"openapi.bundled.yaml GET /","href":"/api-reference/endpoints/get-root"},{"title":"Health check","openapi":"openapi.bundled.yaml GET /health","href":"/api-reference/endpoints/get-health"},{"title":"Readiness check","openapi":"openapi.bundled.yaml GET /ready","href":"/api-reference/endpoints/get-ready"},{"title":"Get the OpenAPI spec","openapi":"openapi.bundled.yaml GET /openapi.yaml","href":"/api-reference/endpoints/get-open-api-spec"},{"title":"Get the OpenAPI spec, as JSON","openapi":"openapi.bundled.yaml GET /openapi.json","href":"/api-reference/endpoints/get-open-api-spec-json"},{"title":"Machine-readable SDK and discovery manifest","openapi":"openapi.bundled.yaml GET /api-manifest.json","href":"/api-reference/endpoints/get-api-manifest"},{"title":"Service version","openapi":"openapi.bundled.yaml GET /version","href":"/api-reference/endpoints/get-version"},{"title":"Fetch a public signing key for independent, offline verification","openapi":"openapi.bundled.yaml GET /keys/{keyId}","href":"/api-reference/endpoints/get-key"},{"title":"List every public signing key this deployment can currently produce","openapi":"openapi.bundled.yaml GET /.well-known/jwks.json","href":"/api-reference/endpoints/get-jwks"},{"title":"Get the authenticated caller's identity and resolved scope","openapi":"openapi.bundled.yaml GET /callers/me","href":"/api-reference/endpoints/get-caller-me"}]},{"group":"Handbook","pages":[{"title":"Download the Parmana Handbook (PDF)","openapi":"openapi.bundled.yaml GET /parmana-handbook.pdf","href":"/api-reference/endpoints/get-handbook-pdf"},{"title":"Capture an email address, then redirect straight to the handbook PDF","openapi":"openapi.bundled.yaml GET /handbook/download-leads","href":"/api-reference/endpoints/get-handbook-download-lead"},{"title":"Capture an email address before unlocking the handbook PDF download","openapi":"openapi.bundled.yaml POST /handbook/download-leads","href":"/api-reference/endpoints/create-handbook-download-lead"}]}]},{"tab":"Deploy and operate","pages":[{"title":"Deploy and operate","href":"/self-hosted/overview"}]},{"tab":"Reference","pages":[{"title":"Reference","href":"/reference/shared"}]},{"tab":"Build book","pages":[{"title":"Build book","href":"/build-book/overview"}]},{"tab":"Handbook","pages":[{"title":"Handbook","href":"/handbook/overview"}]}]},"basePath":"","title":"Rebuild the signed Trust Record for a released action - Parmana","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":["10e4515597","c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["BannerMarkdown-DicSZcaX.js","dist-CIQkMg3R.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","clsx-ClVdStUn.js","html-void-elements-mCSPHezU.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","OpenApiReferenceProvider-DX1Meug0.js","utils-B_OMIQVC.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-ChxhRPMa.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-CuKvD8Iv.js","snippetPresets-C5d7p2hp.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-BAvA99GL.js","ApiExamples-CfHcE8m4.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C1zZV314.js","shallow-CmQhqCJn.js","getApiPlaygroundDisplay-YRo9s1O7.js","CodeSnippet-RN1MTdfk.js","CodeSnippets-DKLPHxJA.js","getPastedJson-bz0M41mU.js","icon-CsmhpPrv.js","MethodPill-CNGsVE77.js","DuplicateIcon-DilfU_Z2.js","createIcon-BdsYzQck.js","DynamicMarkdown-CbqEDjbV.js","SectionHeading-O6hXpFCN.js","axios-vUo_bRtp.js","Markdown-nKm-uidQ.js","AssistantPageLink-ImrFS4Fy.js"]}