Skip to main content
ParmanaClient (python/parmana/client.py) composes seven sub-APIs, each exposed as a public attribute rather than wrapped in top-level convenience methods:
client = ParmanaClient(endpoint="http://localhost:3000")

trust_record = client.execution.execute(transaction)
verification = client.verification.verify(trust_record.business_transaction_id)
receipt = client.receipt.generate(trust_record.business_transaction_id)
replay = client.replay.replay(trust_record.business_transaction_id)
transaction = client.transactions.get(trust_record.business_transaction_id)
trust_record_again = client.trust_records.get(trust_record.business_transaction_id)
result = client.policy.validate({"policyId": "vendor-payment", "policyVersion": "1.0.0"})
AttributeClassMethods
executionExecutionApihealth(), execute(transaction)
verificationVerificationApiverify(business_transaction_id)
replayReplayApireplay(business_transaction_id)
receiptReceiptApigenerate(business_transaction_id)
transactionsTransactionApiget(business_transaction_id), list(page=1, page_size=25)
trust_recordsTrustRecordApiget(business_transaction_id)
policyPolicyApivalidate(policy)
This mirrors the TypeScript SDK’s seven functional areas closely, but the two clients are shaped differently: TypeScript exposes flat methods directly on ParmanaClient (client.execute(...), client.verify(...)) that delegate internally to sub-API instances; Python exposes the sub-API instances themselves as public attributes (client.execution.execute(...), client.verification.verify(...)) with no flat top-level shortcuts.
verify() does not mean the same thing in both SDKs. This is the most important behavioral divergence between the two clients:
  • TypeScript client.verify(businessTransactionId)VerificationApi.verify()GET /verification/${id}. It reads the latest already-computed Verification; it never triggers a new one.
  • Python client.verification.verify(business_transaction_id)VerificationApi.verify() (python/parmana/api/verification_api.py) → POST /verify with {"businessTransactionId": business_transaction_id}. It triggers a new verification — the exact same effect as POST /verify over HTTP, appending a fresh Verification to the trust record.
If you call the Python SDK’s verify() expecting a side-effect-free read (as the TypeScript method name would suggest), you’ll instead create a new persisted Verification record each time. There is no Python method that performs the read-only GET /verification/:id lookup — if you need that, call it directly over HTTP.

Properties

client.endpoint  # -> str, delegates to the underlying HttpTransport
client.version   # -> str, the SDK's own __version__, not the Runtime's /version
repr(client) returns ParmanaClient(endpoint='...', version='...') (__repr__ on ParmanaClient).

Installation

Constructing the client.

APIs & Models

Every sub-API and model in detail.

Verify (REST API)

The two real HTTP endpoints behind “verify.”

TypeScript SDK — ParmanaClient

The other client’s shape.