# The intent, as returned in .intent by GET /execution-intents/<businessTransactionId>:
curl -X POST https://parmana-api-real.vercel.app/execution-intents/verify \
-H "Content-Type: application/json" \
--data @execution-intent.json
Request body for POST /execution-intents/verify: the Execution Intent itself (the intent field of GET /execution-intents/{businessTransactionId}), not a lookup by ID. Checked structurally on the server (intentId, businessTransactionId, authorizationId, intentHash, signature required) before signature verification runs.
Hash of the executable content (action, target and parameters), copied from the signed authorization. It binds the intent to the exact parameters that were authorized without repeating them here.
The target of the action, for example the order being refunded. Together with action and businessTransactionId it is what an operator searches for at the connector.
Signature over the canonical Execution Intent, made with the deployment's signing key (local or AWS KMS), the same root of trust as the Execution Trust Record.
The capability the caller was granted, when one was recorded.
Response
The check ran. Read valid. A 200 alone does not mean the signature verified.
Response shared by POST /refusal/verify and POST /audit/verify: a bare signature-validity result, no wrapper, no partial-failure detail. Both routes verify a signature over bytes with no database lookup, so there is nothing more specific to report than valid or not.
Whether the signature verifies against Parmana's public key for the stated algorithm and key ID.
⌘I
cURL
# The intent, as returned in .intent by GET /execution-intents/<businessTransactionId>:
curl -X POST https://parmana-api-real.vercel.app/execution-intents/verify \
-H "Content-Type: application/json" \
--data @execution-intent.json
{"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/verify-execution-intent","slug":"/api-reference/endpoints/verify-execution-intent","pageMetadata":{"title":"Verify an Execution Intent's signature","description":"Checks an Execution Intent's hash and signature.","openapi":"openapi.bundled.yaml POST /execution-intents/verify","href":"/api-reference/endpoints/verify-execution-intent"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Checks an Execution Intent’s hash and signature.\"\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":"Verify an Execution Intent's signature","description":"Checks an Execution Intent's hash and signature.","openapi":"openapi.bundled.yaml POST /execution-intents/verify","href":"/api-reference/endpoints/verify-execution-intent"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Execution Intents"],"summary":"Verify an Execution Intent's signature","operationId":"verifyExecutionIntent","description":"Checks an Execution Intent's hash and signature.","security":[],"requestBody":"46a55d33-4543-4a33-853c-b995899580c4","responses":{"200":"00a8a0bc-50ca-44fc-99b2-e1053c126df0","400":"08907fbc-cfec-4607-a57d-8ff17a9307d0","429":"ffbe4a08-2f22-43bf-80b8-77d7cd570b72"},"x-codeSamples":[{"lang":"bash","label":"cURL","source":"# The intent, as returned in .intent by GET /execution-intents/\u003cbusinessTransactionId>:\ncurl -X POST https://parmana-api-real.vercel.app/execution-intents/verify \\\n -H \"Content-Type: application/json\" \\\n --data @execution-intent.json"},{"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 view = await client.executionIntent(\n \"5f0c2a7e-3d7b-4d0e-9a55-2f6d8b1c4e90\",\n);\nconst valid = await client.verifyExecutionIntent(view.intent);\n\nconsole.log(valid);"},{"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\nview = client.execution_intent(\"5f0c2a7e-3d7b-4d0e-9a55-2f6d8b1c4e90\")\nvalid = client.verify_execution_intent(view.intent)\n\nprint(valid)"}],"method":"post","type":"path","servers":["ccbad58a-c6b7-4105-9b97-9f75bf5ac3e8","f8b42300-1978-4b73-8972-e40460cad714"],"path":"/execution-intents/verify","baseUrlOptions":["https://parmana-api-real.vercel.app","http://localhost:3000"],"title":"Verify an Execution Intent's signature","codeSamples":[{"label":"cURL","lang":"bash","source":"# The intent, as returned in .intent by GET /execution-intents/\u003cbusinessTransactionId>:\ncurl -X POST https://parmana-api-real.vercel.app/execution-intents/verify \\\n -H \"Content-Type: application/json\" \\\n --data @execution-intent.json"},{"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 view = await client.executionIntent(\n \"5f0c2a7e-3d7b-4d0e-9a55-2f6d8b1c4e90\",\n);\nconst valid = await client.verifyExecutionIntent(view.intent);\n\nconsole.log(valid);"},{"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\nview = client.execution_intent(\"5f0c2a7e-3d7b-4d0e-9a55-2f6d8b1c4e90\")\nvalid = client.verify_execution_intent(view.intent)\n\nprint(valid)"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.intentId":"b41fe9b9-5730-4d34-aab0-4ab63ae69d3b","body.businessTransactionId":"4c2eb3b2-3382-4bc2-bf22-2a072e6cf428","body.decisionId":"20b4e030-09cd-4447-86fc-b73279d23121","body.authorizationId":"5977535b-d887-423d-b422-01ece1fc7bf1","body.policyName":"customer-refund","body.policyVersion":"1.0.0","body.businessTransactionHash":"9df286daf38c6eba272f47153e0fb3efef5ee61d778f6baecd5a53861763763a","body.action":"paytm:refund","body.target":"DRY-ORDER-1789969223742","body.createdAt":"2026-09-21T05:40:28.434Z","body.intentHash":"13922de380518d582c6bb3e88b1d88908e71565f191119f4cadc7de4e30cf5ed","body.signature.algorithm":"ed25519","body.signature.keyId":"default","body.signature.value":"UhXnkSnm5A3QU4CVrKGbP3FcTWkShnitn86psJprJpqgEBnsXWzDcZ+ktSO0FJek1X+n9DvO3SjR+WvSofS1CA==","body.signature.signedAt":"2026-09-21T05:40:28.555Z","body.policyContentHash":"6a2e92fbde0f4c5dc56b4e202bf45ce24c99e565cf3ddaacaa21a11c71b7e1ea","body.signalsHash":"e22a7b9fd6e0a39e28521f9ffb726d6a57499236055fa6ff2caabd2268f4a395","body.submittedBy":"sandbox-agent","body.grantedCapability":"paytm:refund"}]},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"title":"Execution Intent Verify Request","description":"Request body for POST /execution-intents/verify: the Execution Intent itself (the intent field of GET /execution-intents/{businessTransactionId}), not a lookup by ID. Checked structurally on the server (intentId, businessTransactionId, authorizationId, intentHash, signature required) before signature verification runs.","type":"object","additionalProperties":true,"required":["intentId","businessTransactionId","decisionId","authorizationId","policyName","policyVersion","businessTransactionHash","action","target","createdAt","intentHash","signature"],"properties":{"intentId":{"type":"string","description":"Unique Execution Intent identifier.","isRequired":true,"uniqueKey":"intentId","typeLabel":"string"},"businessTransactionId":{"type":"string","description":"The Business Transaction this intent belongs to.","isRequired":true,"uniqueKey":"businessTransactionId","typeLabel":"string"},"decisionId":{"type":"string","description":"The Decision that approved the action.","isRequired":true,"uniqueKey":"decisionId","typeLabel":"string"},"authorizationId":{"type":"string","description":"The signed execution authorization this intent refers to. Matches authorization.payload.authorizationId in the Execution Trust Record.","isRequired":true,"uniqueKey":"authorizationId","typeLabel":"string"},"policyName":{"type":"string","isRequired":true,"uniqueKey":"policyName","typeLabel":"string"},"policyVersion":{"type":"string","isRequired":true,"uniqueKey":"policyVersion","typeLabel":"string"},"businessTransactionHash":{"type":"string","description":"Hash of the executable content (action, target and parameters), copied from the signed authorization. It binds the intent to the exact parameters that were authorized without repeating them here.","isRequired":true,"uniqueKey":"businessTransactionHash","typeLabel":"string"},"action":{"type":"string","description":"The capability about to be released, for example paytm:refund.","isRequired":true,"uniqueKey":"action","typeLabel":"string"},"target":{"type":"string","description":"The target of the action, for example the order being refunded. Together with action and businessTransactionId it is what an operator searches for at the connector.","isRequired":true,"uniqueKey":"target","typeLabel":"string"},"createdAt":{"type":"string","format":"date-time","description":"UTC timestamp when the intent was created, before the action was released.","isRequired":true,"uniqueKey":"createdAt","typeLabel":"string\u003cdate-time>"},"intentHash":{"type":"string","description":"Canonical hash of the intent, same convention as ExecutionTrustRecord.trustRecordHash.","isRequired":true,"uniqueKey":"intentHash","typeLabel":"string"},"signature":{"type":"object","description":"Signature over the canonical Execution Intent, made with the deployment's signing key (local or AWS KMS), the same root of trust as the Execution Trust Record.","additionalProperties":true,"required":["algorithm","keyId","value","signedAt"],"properties":{"algorithm":{"type":"string","examples":["ed25519"],"isRequired":true,"uniqueKey":"signature.algorithm","typeLabel":"string"},"keyId":{"type":"string","description":"Identifier of the signing key. Fetch its public half from GET /keys/{keyId}.","isRequired":true,"uniqueKey":"signature.keyId","typeLabel":"string"},"value":{"type":"string","description":"Base64 encoded signature value.","isRequired":true,"uniqueKey":"signature.value","typeLabel":"string"},"signedAt":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"signature.signedAt","typeLabel":"string\u003cdate-time>"}},"isRequired":true,"uniqueKey":"signature","typeLabel":"object"},"policyContentHash":{"type":"string","description":"Hash of the exact policy content in force, copied from the signed authorization. Absent when the authorization carries none.","uniqueKey":"policyContentHash","typeLabel":"string"},"signalsHash":{"type":"string","description":"Hash of the signals that were evaluated, copied from the signed authorization. Absent when the authorization carries none.","uniqueKey":"signalsHash","typeLabel":"string"},"submittedBy":{"type":"string","description":"Authenticated caller who submitted the request. Absent when caller authentication is disabled.","uniqueKey":"submittedBy","typeLabel":"string"},"grantedCapability":{"type":"string","description":"The capability the caller was granted, when one was recorded.","uniqueKey":"grantedCapability","typeLabel":"string"}},"examples":[{"intentId":"b41fe9b9-5730-4d34-aab0-4ab63ae69d3b","businessTransactionId":"4c2eb3b2-3382-4bc2-bf22-2a072e6cf428","decisionId":"20b4e030-09cd-4447-86fc-b73279d23121","authorizationId":"5977535b-d887-423d-b422-01ece1fc7bf1","policyName":"customer-refund","policyVersion":"1.0.0","policyContentHash":"6a2e92fbde0f4c5dc56b4e202bf45ce24c99e565cf3ddaacaa21a11c71b7e1ea","signalsHash":"e22a7b9fd6e0a39e28521f9ffb726d6a57499236055fa6ff2caabd2268f4a395","businessTransactionHash":"9df286daf38c6eba272f47153e0fb3efef5ee61d778f6baecd5a53861763763a","action":"paytm:refund","target":"DRY-ORDER-1789969223742","submittedBy":"sandbox-agent","grantedCapability":"paytm:refund","createdAt":"2026-09-21T05:40:28.434Z","intentHash":"13922de380518d582c6bb3e88b1d88908e71565f191119f4cadc7de4e30cf5ed","signature":{"keyId":"default","value":"UhXnkSnm5A3QU4CVrKGbP3FcTWkShnitn86psJprJpqgEBnsXWzDcZ+ktSO0FJek1X+n9DvO3SjR+WvSofS1CA==","signedAt":"2026-09-21T05:40:28.555Z","algorithm":"ed25519"}}],"uniqueKey":"","typeLabel":"Execution Intent Verify Request · object"},"examples":{"Example":{"title":"Example","value":{"intentId":"b41fe9b9-5730-4d34-aab0-4ab63ae69d3b","businessTransactionId":"4c2eb3b2-3382-4bc2-bf22-2a072e6cf428","decisionId":"20b4e030-09cd-4447-86fc-b73279d23121","authorizationId":"5977535b-d887-423d-b422-01ece1fc7bf1","policyName":"customer-refund","policyVersion":"1.0.0","policyContentHash":"6a2e92fbde0f4c5dc56b4e202bf45ce24c99e565cf3ddaacaa21a11c71b7e1ea","signalsHash":"e22a7b9fd6e0a39e28521f9ffb726d6a57499236055fa6ff2caabd2268f4a395","businessTransactionHash":"9df286daf38c6eba272f47153e0fb3efef5ee61d778f6baecd5a53861763763a","action":"paytm:refund","target":"DRY-ORDER-1789969223742","submittedBy":"sandbox-agent","grantedCapability":"paytm:refund","createdAt":"2026-09-21T05:40:28.434Z","intentHash":"13922de380518d582c6bb3e88b1d88908e71565f191119f4cadc7de4e30cf5ed","signature":{"keyId":"default","value":"UhXnkSnm5A3QU4CVrKGbP3FcTWkShnitn86psJprJpqgEBnsXWzDcZ+ktSO0FJek1X+n9DvO3SjR+WvSofS1CA==","signedAt":"2026-09-21T05:40:28.555Z","algorithm":"ed25519"}}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"00a8a0bc-50ca-44fc-99b2-e1053c126df0":{"description":"The check ran. Read `valid`. A `200` alone does not mean the signature verified.","content":{"application/json":{"schema":{"title":"Verify Result Response","description":"Response shared by POST /refusal/verify and POST /audit/verify: a bare signature-validity result, no wrapper, no partial-failure detail. Both routes verify a signature over bytes with no database lookup, so there is nothing more specific to report than valid or not.","type":"object","additionalProperties":false,"required":["valid"],"properties":{"valid":{"type":"boolean","description":"Whether the signature verifies against Parmana's public key for the stated algorithm and key ID.","isRequired":true,"uniqueKey":"valid","typeLabel":"boolean"}},"examples":[{"valid":true},{"valid":false}],"uniqueKey":"","typeLabel":"Verify Result Response · object"},"examples":{"valid":{"title":"valid","value":{"valid":true}},"altered":{"title":"altered","value":{"valid":false}}},"exampleType":"examples"}},"exampleType":"examples"},"08907fbc-cfec-4607-a57d-8ff17a9307d0":{"description":"The body is not shaped like an Execution Intent.","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":{"malformed":{"title":"malformed","value":{"error":"Request body must be an Execution Intent (intentId, businessTransactionId, authorizationId, intentHash, signature required)."}}},"exampleType":"examples"}},"exampleType":"examples"},"ffbe4a08-2f22-43bf-80b8-77d7cd570b72":{"description":"Too many requests from this caller on this route in the last minute. The default limits are 30 per caller per minute on `/execute`, 300 per IP address on `/health` and `/ready`, and 60 per IP address shared by the unauthenticated verification and handbook routes. The request never reached the handler, so nothing was recorded or executed. Wait the number of seconds in the `Retry-After` header, then retry.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer"}}},"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":{"rateLimited":{"title":"rateLimited","value":{"error":"Rate limit exceeded. Try again later.","code":"RATE_LIMITED"}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{},"servers":{"ccbad58a-c6b7-4105-9b97-9f75bf5ac3e8":{"url":"https://parmana-api-real.vercel.app","description":"Production. Needs a key issued by the operator."},"f8b42300-1978-4b73-8972-e40460cad714":{"url":"http://localhost:3000","description":"Local (packages/api, PORT env var, default 3000)"}}},"originalFileLocation":"openapi.bundled.yaml"},"subdomain":"parmanasystems","siteName":"Parmana","title":"Verify an Execution Intent's signature - Parmana","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-01T10:36:32.957Z","originalFileLocation":"api-reference/endpoints/verify-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=\"Checks an Execution Intent\u0026#x27;s hash and signature.\">\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=\"Verify an Execution Intent\u0026#x27;s signature - Parmana\">\u003cmeta data-mint-head property=\"og:description\" content=\"Checks an Execution Intent\u0026#x27;s hash and signature.\">\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/verify-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=Verify+an+Execution+Intent%27s+signature\u0026amp;description=Checks+an+Execution+Intent%27s+hash+and+signature.\u0026amp;theme=330e7d48bcc953731fc52f38\u0026amp;signature=ce698f018b968688c161d4c1103c610a343d6cb64ee109c6685c9b46c123cede\">\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=\"Verify an Execution Intent\u0026#x27;s signature - Parmana\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Checks an Execution Intent\u0026#x27;s hash and signature.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://parmanasystems.mintlify.app/_mintlify/api/og/v2?division=Execution+Intents\u0026amp;title=Verify+an+Execution+Intent%27s+signature\u0026amp;description=Checks+an+Execution+Intent%27s+hash+and+signature.\u0026amp;theme=330e7d48bcc953731fc52f38\u0026amp;signature=ce698f018b968688c161d4c1103c610a343d6cb64ee109c6685c9b46c123cede\">\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/verify-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/verify-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/verify-execution-intent#webpage\",\"url\":\"https://docs.parmanasystems.com/api-reference/endpoints/verify-execution-intent\",\"name\":\"Verify an Execution Intent's signature\",\"description\":\"Checks an Execution Intent's hash and signature.\",\"dateModified\":\"2026-10-01T10:36:32.957Z\",\"isPartOf\":{\"@id\":\"https://docs.parmanasystems.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.parmanasystems.com/api-reference/endpoints/verify-execution-intent#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.parmanasystems.com/api-reference/endpoints/verify-execution-intent#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Parmana\",\"item\":\"https://docs.parmanasystems.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Verify an Execution Intent's signature\",\"item\":\"https://docs.parmanasystems.com/api-reference/endpoints/verify-execution-intent\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.parmanasystems.com/api-reference/endpoints/verify-execution-intent#apireference\",\"headline\":\"Verify an Execution Intent's signature\",\"name\":\"Verify an Execution Intent's signature\",\"description\":\"Checks an Execution Intent's hash and signature.\",\"url\":\"https://docs.parmanasystems.com/api-reference/endpoints/verify-execution-intent\",\"mainEntityOfPage\":{\"@id\":\"https://docs.parmanasystems.com/api-reference/endpoints/verify-execution-intent#webpage\"},\"dateModified\":\"2026-10-01T10:36:32.957Z\",\"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","description":"Returns the signed Refusal Record kept when a policy refused a transaction: the decision, the rule that refused, the facts it saw and the signature.","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","description":"The operator's work queue: Execution Intents that never reached a signed Trust Record and were not closed by hand, oldest first.","openapi":"openapi.bundled.yaml GET /execution-intents/unfinalized","href":"/api-reference/endpoints/list-unfinalized-execution-intents"},{"title":"Get an Execution Intent and its status","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","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":"Verify an Execution Intent's signature - 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"]}