Skerry/ Reference/ Limits, agents and approvals
Record that a person agreed to the mandate as it stands
post/spend-policies/{id}/consent
Record that a person agreed to the mandate as it stands. The evidence is stored with the mandate's canonical text and its SHA-256. partner_attested is taken on your word; passkey and oauth are verified only with an attestation signed by the configured identity provider naming the subject and the mandate hash, and are unverified when no identity provider is configured; console_session from a partner key is unverified. Refuses an agent's own credential.
Before you call
- Credential
Authorization: Bearer $KEY- Scope
policies:write- Moves money
no- Idempotency
optional- Untrusted
name, purpose, approved_by, summary, revoked_reason
Parameters
- idstringrequiredIn the path
- Idempotency-KeystringHeader. A repeat with the same key and body returns the first answer instead of acting twice.
Request bodyapplication/json, required
object
Responses
- 200Success.
- 202requires_approval — Not an error: the operation is held for a person. The body names the approval.
- 400price_below_minimum — The price is below the smallest single payment for a method (
detail.method,detail.minimum), or has a part of a cent. Setcredit_only, raise the price, or drop the method. - 401dpop_invalid — The token is bound to a key and the DPoP proof was missing, wrong for this request, or already used.
- 402payment_failed — The payer's bank or card refused.
detail.reasonsays why in plain terms. - 403agent_payment_over_max — The merchant asks for more than
max_amount. Nothing was signed.detail.asked_minoris the lowest price asked, in US cents. - 404not_found — No such object in this project — including one that belongs to somebody else.
- 409token_not_issued — A delegated payment token could not be issued ready to use, for instance because the payer would have to act. Nothing was sent to the merchant.
- 429too_many_waiters — This key already has as many requests waiting (
?wait=) as it may. Let one finish, or read without wait. - 500internal_error — Ours. Quote the
request_idand we can find the call. - 502platform_error — A provider failed. Safe to retry with the same Idempotency-Key.
- 503oauth_unavailable — The authorisation server's keys could not be read, so tokens cannot be checked. API keys still work.