Concepts

The Mandate

"Mandate" names two different objects in the agentic-payments world, and Fidacy uses both. This page is the canonical definition; every other page links here.

1 · The transaction mandate (AP2 envelope)

The thing you send to POST /v1/assess: one intended transaction, described in the AP2 shape. It answers "what exactly is the agent about to do?" and it is what the verdict is signed over.

{
  "mandate": {
    "vct": "mandate.payment.1",          // mandate type (payment)
    "transaction_id": "5f3c…",           // unique per org — idempotency + audit join
    "payee": { "id": "merchant_42", "name": "Acme Corp" },
    "payment_amount": { "amount": 4299, "currency": "EUR" },
    "payment_instrument": { "id": "pi_1", "type": "card" }
  }
}
  • ·The engine validates, scores and signs it; the response injects the signed Risk Payload into mandate.risk_data, ready to forward to the rail.
  • ·On A2A, the signed verdict over this mandate travels as Task metadata via the Trust-Verdict extension, so the counterparty agent verifies it offline.
  • ·On UCP, the same verdict rides the com.fidacy.trust_verdictsignal, advisory to the counterparty's own decision.
One envelope, one verdict, any rail: the mandate is protocol-neutral and the signature is over its content, which is why a verdict verified on UCP means the same thing as one verified on A2A.

2 · The spending mandate (standing constraints)

The standing rule-set that governs an agent over time, the thing the payment firewall and Spend Guard enforce. It answers "what is this agent EVER allowed to do?" and it exists before any transaction.

  • ·Per-transaction cap and a step-up threshold (above it, a human confirms).
  • ·Daily and monthly budgets.
  • ·Merchant allow/deny lists and permitted rails.
  • ·An expiry, so authority is never open-ended.

When a transaction mandate passes both the risk engine and the spending mandate, the firewall issues a short-lived signed Grant bound to the exact payee, amount and invoice. No valid grant, no settlement: that is the enforcement loop, specified in the open Fidacy Grant v1 spec.

Which one do I mean?

  • ·Sending a payment for a decision now → transaction mandate (/v1/assess).
  • ·Constraining an agent going forward → spending mandate (console → Firewall / Spend Guard, or the MCP config).
  • ·Reading AP2 / A2A / UCP docs → they always mean the transaction mandate unless they say "spending".