*MCP › Referencia › Alquileres › Proyectos*

# Desvincular un pedido de un proyecto

> Saca el pedido del proyecto.

> **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`.

Es idempotente: si no estaba vinculado, no pasa nada y la respuesta es la misma. NO borra ni cancela el pedido: solo deshace el vínculo, que se rehace con el POST. DELETE porque lo que desaparece es el vínculo, no ninguna de las dos entidades. Devuelve el proyecto completo, la misma proyección que su GET.

HERRAMIENTA `filmo_projects_orders_unlink` · `projects:write` · 120/min · Anotación del servidor: Destructiva · Anotación del servidor: Idempotente · Requiere confirmación humana

## Argumentos

| Nombre | Tipo | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `projectId` | string | Sí | Identificador del proyecto. |
| `orderId` | string | Sí | Identificador del pedido. |
| `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`.

| Nombre | Tipo | Descripción |
| --- | --- | --- |
| `id` | string | Identificador único del proyecto. |
| `projectNumber` | string | Número de proyecto legible; null si no está numerado. |
| `name` | string | Nombre del proyecto. |
| `color` | string | Color asociado al proyecto (para la interfaz); null si no tiene. |
| `externalReference` | string | Referencia externa del proyecto (por ejemplo, del sistema del cliente); null si no consta. |
| `projectTypeId` | string | Identificador del tipo de proyecto; null si el proyecto no tiene tipo. |
| `projectType` | object | Referencia compacta al tipo de proyecto; null si no hay. |
| `projectType.id` | string | Identificador único del tipo de proyecto. |
| `projectType.name` | string | Nombre del tipo de proyecto. |
| `projectType.color` | string | Color asociado al tipo de proyecto (para la interfaz); null si no tiene. |
| `contact` | object | Referencia compacta al contacto del proyecto; null si no hay. |
| `contact.id` | string | Identificador único del contacto. |
| `contact.name` | string | Nombre del contacto. |
| `location` | object | Ubicación del proyecto; sus campos internos son null cuando no se han registrado. |
| `location.name` | string | Nombre del lugar o ubicación; null si no está registrado. |
| `location.address` | string | Dirección de la ubicación; null si no consta. |
| `location.city` | string | Ciudad de la ubicación; null si no consta. |
| `location.postalCode` | string | Código postal de la ubicación; null si no se ha registrado. |
| `location.province` | string | Provincia o región de la ubicación; null si no se ha registrado. |
| `location.country` | string | País de la ubicación; null si no consta. |
| `location.lat` | number | Latitud de la ubicación; null si no está registrada. |
| `location.lng` | number | Longitud de la ubicación; null si no está registrada. |
| `startDate` | string<date-time> | Fecha de inicio del proyecto en ISO 8601 con desplazamiento. |
| `endDate` | string<date-time> | Fecha de fin del proyecto en ISO 8601 con desplazamiento. |
| `status` | string | Estado del proyecto: draft, budgeted, confirmed, in_progress, invoiced, completed, cancelled o archived. `archived` es un estado HEREDADO que aparece en datos antiguos; el estado archivado actual se expresa mediante el booleano `archived` de este mismo DTO. `draft`, `budgeted`, `confirmed`, `in_progress`, `invoiced`, `completed`, `cancelled`, `archived` |
| `archived` | boolean | Si el proyecto está archivado. |
| `orderIds` | string[] | Identificadores de los pedidos del proyecto. El detalle de los pedidos se obtiene en [`GET /api/v1/orders`](https://docs.filmo.io/es/rest-api/endpoint-reference/orders/list-orders)?projectId=. |
| `totalOrders` | integer | Número total de pedidos del proyecto (igual a orderIds.length). |
| `tags` | object[] | Etiquetas adjuntas al proyecto, con su identificador y nombre. |
| `tags.id` | string | Identificador único de la etiqueta. |
| `tags.name` | string | Nombre de la etiqueta. |
| `customFields` | object<string, any> | Valores de los campos personalizados por identificador de campo personalizado; las definiciones están en `/api/v1/custom-fields`. |
| `source` | string | Origen desde el que se creó el proyecto; null si no consta. |
| `createdAt` | string<date-time> | Fecha de creación en ISO 8601 con desplazamiento. |
| `updatedAt` | string<date-time> | Fecha de la última actualización en ISO 8601 con desplazamiento. |

*Llamada · filmo_projects_orders_unlink*

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "filmo_projects_orders_unlink",
    "arguments": {
      "projectId": "proj_8f2a1c",
      "orderId": "orde_8f2a1c"
    }
  }
}
```

*Resultado (generado desde el esquema)*

```json
{
  "structuredContent": {
    "data": {
      "id": "id_8f2a1c",
      "projectNumber": "<projectNumber>",
      "name": "Example",
      "color": "<color>",
      "externalReference": "<externalReference>",
      "projectTypeId": "proj_8f2a1c",
      "projectType": {
        "id": "id_8f2a1c",
        "name": "Example",
        "color": "<color>"
      },
      "contact": {
        "id": "id_8f2a1c",
        "name": "Example"
      },
      "location": {
        "name": "Example",
        "address": "<address>",
        "city": "<city>",
        "postalCode": "<postalCode>",
        "province": "<province>",
        "country": "ES",
        "lat": 1,
        "lng": 1
      },
      "startDate": "2026-09-01T08:00:00Z",
      "endDate": "2026-09-01T08:00:00Z",
      "status": "draft",
      "archived": true,
      "orderIds": [
        "orde_8f2a1c"
      ],
      "totalOrders": 1,
      "tags": [
        {
          "id": "id_8f2a1c",
          "name": "Example"
        }
      ],
      "customFields": {
        "key": "<key>"
      },
      "source": "<source>",
      "createdAt": "2026-09-01T08:00:00Z",
      "updatedAt": "2026-09-01T08:00:00Z"
    },
    "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/projects/{projectId}/orders/{orderId}`](https://docs.filmo.io/es/rest-api/endpoint-reference/projects/unlink-an-order-from-a-project).

---

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