Developer documentation
Give an agent enough authority to be useful.
mnd8t evaluates a proposed payment against a live, versioned mandate and answers APPROVE, REJECT or ESCALATE before any money moves — deterministically, with no LLM in the decision path. You or your regulated provider execute; mnd8t proves what was authorised.
Your first decision
curl -X POST $MANDATE_API_URL/v1/decision-intents \
-H "Authorization: Bearer $MANDATE_API_KEY" \
-H "Idempotency-Key: my-first-decision" \
-H "Content-Type: application/json" \
-d '{
"agent_external_id": "procurement_agent_12",
"action_type": "PAYMENT",
"amount": { "asset": "USDC", "asset_amount_minor": 84000000 },
"valuation": { "policy_amount_minor": 50000, "policy_currency": "GBP" },
"counterparty_external_id": "supplier_acme_cloud",
"purpose": "cloud_infrastructure"
}'Amounts are integer minor units. A sandbox key, an agent and a mandate is all you need — the quickstart walks through all three in about 8 minutes.
Get started
Core concepts
Reference
Common tasks
Run in shadow mode
Replay real payments and see what would have been decided, blocking nothing.
Handle an escalation
Send an approver a single-use link and act on what they decide.
Execute with an artifact
Verify, claim, execute with your own credentials, report the outcome.
Verify a receipt
Check an Ed25519 signature yourself, without trusting the issuer.
Receive webhooks
Signature verification, the replay window, and deduplication.
Read the reason codes
Every code the engine can return, and the order rules are evaluated in.