> ## Documentation Index
> Fetch the complete documentation index at: https://docs.parmanasystems.com/llms.txt
> Use this file to discover all available pages before exploring further.

# parmana.api.execution_intent_api

Parmana Execution Intent API (ADR-0012).

## ExecutionIntentApi Objects

```python theme={null}
class ExecutionIntentApi()
```

Execution Intent API (ADR-0012).

An Execution Intent is a signed statement, stored BEFORE an action is
released to a connector, of exactly what is about to be released. It proves
what was about to be released. It does NOT prove the action was released,
or what its result was.

## Responsibilities

* Verify an intent's hash and signature (no credential needed)
* Retrieve an intent and its status
* List intents that never reached a signed Trust Record
* Rebuild a missing Trust Record for a released action (finalize)
* Close an intent an operator reconciled by hand (resolve)

This API does NOT execute Business Transactions or call any connector.

#### verify

```python theme={null}
def verify(intent: ExecutionIntent) -> bool
```

Verify an Execution Intent's hash and signature.

Maps to POST /execution-intents/verify. Takes the intent itself and
needs no caller authentication, like RefusalApi.verify().

Returns True if the intent is genuine and unaltered, False otherwise.

#### get

```python theme={null}
def get(business_transaction_id: str) -> ExecutionIntentView
```

Retrieve an Execution Intent and its status.

Maps to GET /execution-intents/:businessTransactionId. Behind caller
authentication and ownership scoping.

#### list\_unfinalized

```python theme={null}
def list_unfinalized(limit: int | None = None) -> UnfinalizedExecutionIntents
```

List intents that never reached a signed Trust Record and were not
closed by hand, oldest first.

Maps to GET /execution-intents/unfinalized. Requires a credential
provisioned as a verified human. `limit` defaults to 50 on the server,
with a maximum of 200.

#### finalize

```python theme={null}
def finalize(business_transaction_id: str) -> FinalizeExecutionIntentResult
```

Rebuild the signed Execution Trust Record for a released action whose
record was never produced.

Maps to POST /execution-intents/:businessTransactionId/finalize. It
never calls a connector and is safe to run twice. Requires a
credential provisioned as a verified human.

#### resolve

```python theme={null}
def resolve(business_transaction_id: str, *,
            resolution: ExecutionIntentResolution | str,
            note: str) -> ResolveExecutionIntentResult
```

Close a PREPARED or ERRORED intent that a verified human reconciled at
the connector.

Maps to POST /execution-intents/:businessTransactionId/resolve.

## Parameters

resolution:
What you found at the connector: NOT\_EXECUTED or EXECUTED.
note:
Required, at most 2000 characters. What you checked and found.

The resolution is an attributed operator statement in unsigned status.
It is not tamper evident and it is not a Trust Record. It never calls
a connector and is idempotent.
