Skip to content

Mandates

A mandate is the authority an owner gave an agent to pay: how much, to whom, how often, until when. In AP2 and Mastercard Verifiable Intent it is a signed credential. HalvorAI reads mandates from the evidence on a payment. It does not ask you to enter limits anywhere.

Spending limits that someone retypes into a monitoring tool drift from the real ones. The network credential is the source of truth, so HalvorAI consumes it. If a payment arrives with a valid mandate, HalvorAI evaluates the payment against that mandate. If it arrives without one, the payment is recorded as not_evaluable.

AP2 and Verifiable Intent name the same ideas slightly differently. HalvorAI turns both into one vocabulary:

ConstraintChecked against
amount_range (minimum, maximum, currency)The payment amount
budget (maximum, currency)The sum of settled payments under this mandate
recurrence (frequency, maximum occurrences)The count and spacing of payments
allowed_payees, allowed_merchantsThe payee id, name or website
allowed_instrumentsThe payment instrument
execution_window (not before, not after)When the payment happened
agent_key (key thumbprint)The agent’s key thumbprint on the event
referenceThe link between the checkout and payment mandates

Unknown constraint types are recorded and logged, not rejected, because Verifiable Intent is still a draft.

Each payment with a valid mandate gets one result:

ResultMeaning
withinEvery constraint holds.
outsideAt least one constraint was broken. This raises a high-severity mandate_breach alert whose explanation names the amount and the limit.
not_evaluableThere is no valid mandate, or a constraint cannot be checked from the data available.

For a closed mandate (one payment), HalvorAI also checks that the payee, amount and instrument in the mandate equal those on the event. A difference is a finding.

GET /v1/mandates/{id} returns the normalized mandate, its credential digest and how much of it has been used. The dashboard shows the mandate next to each payment in the evidence drawer.

A mandate is evidence of authority. HalvorAI reports whether a payment stayed within it, but it does not enforce it. Enforcement belongs to the network and your own controls, because HalvorAI is not in the payment path.