*MCP › Referencia › CRM › Contactos*

# Eliminar un contacto

> Elimina el contacto y todo lo que cuelga de él: sus relaciones con otros contactos (en ambos sentidos), sus notas, sus archivos, sus tareas, sus métodos de pago y su acceso al portal de clientes.

> **No reversible:** Esta herramienta no se puede deshacer.

> **Requiere confirmación humana:** Pon esta herramienta en la lista de «preguntar antes de ejecutar» de tu cliente. Las anotaciones son pistas que declara el servidor, no garantías: no decidas la aprobación solo por `destructiveHint`. El servidor marca esta herramienta con `_meta["anthropic/requiresUserInteraction"]`, que los clientes que lo respetan usan para preguntar a una persona antes de cada llamada.

Los contactos relacionados NO se eliminan. NO es reversible. Responde 204 sin cuerpo: el contacto ya no existe para la API (su GET responde 404). 409 `contact_in_use` si algo sigue usando el contacto —pedidos, proyectos (también como su persona de contacto), presupuestos, facturas, proformas, notas de crédito, recibos de venta, facturas de proveedor, contratos, subalquileres (como proveedor), pedidos de compra (como proveedor), mandatos SEPA, recibos o consignaciones—: no se elimina nada y `errors[]` lleva una entrada por cada tipo que lo usa (`path` es el tipo, `count` cuántos). Archívalo en su lugar con [`PATCH /api/v1/contacts/{contactId}`](https://docs.filmo.io/es/rest-api/endpoint-reference/contacts/update-a-contact) y `status: archived`. 404 si el contacto no existe o pertenece a otra cuenta.

HERRAMIENTA `filmo_contacts_delete` · `contacts:write` · 120/min · Anotación del servidor: Destructiva · Anotación del servidor: Idempotente · Requiere confirmación humana · No reversible

## Argumentos

| Nombre | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `contactId` | string | Sí | Identificador del contacto. |
| `idempotencyKey` | string | No | Clave de idempotencia elegida por el cliente (se recomienda un UUID). Repetir la misma clave con los mismos argumentos en 24 h devuelve la respuesta almacenada sin volver a ejecutar; con argumentos distintos responde 422. Es la forma segura de reintentar tras un fallo de red. |
| `ifMatch` | string | No | Bloqueo optimista: el meta.etag que obtuviste de la lectura de detalle de este recurso (o "*"). Si el recurso ha cambiado desde entonces, la llamada falla con 412 precondition_failed antes de escribir nada; léelo de nuevo y reintenta. Omítelo para escribir sin condiciones. |

## Resultado

En un éxito el resultado lleva `structuredContent` con `data` y `meta`. Estos son los atributos de `data`.

*Llamada · filmo_contacts_delete*

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "filmo_contacts_delete",
    "arguments": {
      "contactId": "cont_8f2a1c"
    }
  }
}
```

*Resultado (generado desde el esquema)*

```json
{
  "structuredContent": {
    "data": "<value>",
    "meta": {
      "idempotencyKey": "<the key you sent, or the one the server generated>",
      "rateLimit": {
        "limit": 120,
        "remaining": 119,
        "reset": 42
      }
    }
  }
}
```

## La misma operación por REST

Esta herramienta ejecuta [`DELETE /api/v1/contacts/{contactId}`](https://docs.filmo.io/es/rest-api/endpoint-reference/contacts/delete-a-contact).

---

URL canónica: https://docs.filmo.io/es/mcp/tools/contacts/filmo-contacts-delete  
Última actualización: 2026-10-25