Skip to main content
POST
cURL

Body

application/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.

intentId
string
required

Unique Execution Intent identifier.

businessTransactionId
string
required

The Business Transaction this intent belongs to.

decisionId
string
required

The Decision that approved the action.

authorizationId
string
required

The signed execution authorization this intent refers to. Matches authorization.payload.authorizationId in the Execution Trust Record.

policyName
string
required
policyVersion
string
required
businessTransactionHash
string
required

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.

action
string
required

The capability about to be released, for example paytm:refund.

target
string
required

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.

createdAt
string<date-time>
required

UTC timestamp when the intent was created, before the action was released.

intentHash
string
required

Canonical hash of the intent, same convention as ExecutionTrustRecord.trustRecordHash.

signature
object
required

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.

policyContentHash
string

Hash of the exact policy content in force, copied from the signed authorization. Absent when the authorization carries none.

signalsHash
string

Hash of the signals that were evaluated, copied from the signed authorization. Absent when the authorization carries none.

submittedBy
string

Authenticated caller who submitted the request. Absent when caller authentication is disabled.

grantedCapability
string

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.

valid
boolean
required

Whether the signature verifies against Parmana's public key for the stated algorithm and key ID.