"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.
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" }
}
}risk_dataThe engine validates, scores and signs it; the response injects the signed Risk Payload into mandate.risk_data, ready to forward to the rail.
on A2AThe signed verdict travels as Task metadata via the Trust-Verdict extension, so the counterparty agent verifies it offline.
on UCPThe same verdict rides the com.fidacy.trust_verdict signal, 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.
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.
capsPer-transaction cap and a step-up threshold (above it, a human confirms).
budgetsDaily and monthly budgets.
listsMerchant allow/deny lists and permitted rails.
expiryAn 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.
nowSending a payment for a decision now → transaction mandate (/v1/assess).
forwardConstraining an agent going forward → spending mandate (console → Firewall / Spend Guard, or the MCP config).
docsReading AP2 / A2A / UCP docs → they always mean the transaction mandate unless they say "spending".