Confirmar una acción destructiva
Gestiona 412 confirmation_required: emite un token de confirmación y repite la llamada con X-Trustvice-Confirmation.
La tarea
Tu llamador necesita una acción cuya confirmationPolicy es "always", lo que incluye toda acción destructive y billing_impacting. Trustvice no las ejecuta hasta que la petición lleva un token de confirmación reciente: una persona, o una concesión de autonomía explícita, tiene que haber dicho que sí, hace poco, para esta acción.
Antes de empezar
- Credencial
- Necesitarás
- Un token de acceso OAuth, como en la primera receta
curl
El código lee los secretos de variables de entorno. Guárdalos en tu shell o en tu gestor de secretos, nunca en un archivo que subas. Las llamadas a acciones también envían X-Workspace-Id.
Pasos
Llama a la acción
Llama a la acción protegida como siempre. Sin token responde
412con el códigoconfirmation_required. Las docs usanprivacy.dsr.submitcomo ejemplo.curl -sS -X POST https://api.trustvice.com/api/v1/actions/privacy.dsr.submit \ -H "Authorization: Bearer $TRUSTVICE_TOKEN" \ -H "X-Workspace-Id: ws_…" \ -H "Content-Type: application/json" \ -d '{ … }'{ "ok": false, "error": { "code": "confirmation_required", "message": "This action requires an explicit confirmation." } }Emite un token de confirmación
Pide a
POST /api/v1/confirmations/mintun token para ese id de acción. El token queda ligado al actor que llama y a la audiencia de la acción, dura segundos y se consume en el primer uso.curlcurl -sS -X POST https://api.trustvice.com/api/v1/confirmations/mint \ -H "Authorization: Bearer $TRUSTVICE_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "actionId": "privacy.dsr.submit" }'Repite la acción
Envía la misma llamada otra vez con el
jtidel token enX-Trustvice-Confirmation. Ahora la acción se ejecuta y devuelve su resultado real.curlcurl -sS -X POST https://api.trustvice.com/api/v1/actions/privacy.dsr.submit \ -H "Authorization: Bearer $TRUSTVICE_TOKEN" \ -H "X-Workspace-Id: ws_…" \ -H "X-Trustvice-Confirmation: cnf_…" \ -H "Content-Type: application/json" \ -d '{ … }'Deja que un agente actúe con límites
Un agente que debe llamar a acciones protegidas sin un clic humano por llamada tiene una concesión de autonomía: limitada en el tiempo, con un techo de seguridad y registrada en el workspace. Concederla requiere un token de confirmación humano para la audiencia
agents.autonomy.grant. Mientras haya una concesión activa que cubra la acción, mint devuelve tokens conautonomous: truepara las acciones dentro de su alcance.HTTPPOST /api/v1/autonomy/grant { "maxSafetyLevel": …, "ttlSeconds": … } POST /api/v1/autonomy/revoke GET /api/v1/autonomy/status
Copiado de: /docs/confirmations
Qué se devuelve
La llamada a mint devuelve el token en jti, la acción a la que está ligado en audience y cuándo caduca.
{ "ok": true,
"jti": "cnf_…",
"audience": "privacy.dsr.submit",
"autonomous": false,
"expiresAt": "2026-09-14T13:20:37.675Z" }En qué puedes confiar
Puedes confiar en
- Un token de confirmación no se puede reutilizar ni usar para otra acción.
- Una acción protegida nunca se ejecuta en silencio: cada llamada necesita un token nuevo o una concesión de autonomía que la cubra.
- La autonomía nunca se puede crear de forma autónoma.
No des por hecho
- Que una segunda llamada confirmada sea inofensiva: las acciones no seguras no son idempotentes, así que una segunda llamada es un segundo efecto.
- Que un token siga sirviendo: dura segundos.
Todo lo anterior procede de las docs de Trustvice enlazadas en esta página. Donde una página de las docs dice más, esa es la referencia.
Después
Recetas afines
Llamar a una acción de la Agentic API
Emite un token de acceso OAuth, busca una acción en el catálogo público y llámala en POST /api/v1/actions/<id>.
Conectar un cliente MCP
Añade el servidor MCP de Trustvice en https://mcp.trustvice.com/mcp a Claude Code, Cursor o VS Code.
Verificar un recibo en el navegador
Pega un recibo firmado de Trustvice en /verify y comprueba su firma Ed25519 en tu propio navegador.
Recetas por email
Un email breve cuando añadimos recetas. Ningún otro correo, y puedes darte de baja desde cualquier mensaje.
Empieza con la Agentic API.
Un endpoint POST por cada acción registrada, con el mismo comportamiento por REST y por MCP. Las docs listan cada acción con su entrada y sus permisos.
