*Visión general › Para saber más*

# Archivar y eliminar

> Filmo tiene varias maneras de retirar un registro de uso, y no son intercambiables. Algunas se pueden deshacer y otras no; consulta esta página antes de llamar a una operación destructiva.

Cada operación que elimina o retira un registro pertenece a uno de cinco grupos. La tabla siguiente se genera a partir de la especificación y marca también qué operaciones la especificación califica de irreversibles o finales.

| Operación | Método | Nota |
| --- | --- | --- |
| `DELETE /api/v1/contacts/{contactId}` | DELETE | No reversible |
| `DELETE /api/v1/contacts/{contactId}/addresses/{addressId}` | DELETE | No reversible |
| `DELETE /api/v1/contacts/{contactId}/related-contacts/{relatedContactId}` | DELETE | — |
| `DELETE /api/v1/items/{itemId}` | DELETE | No reversible |
| `PUT /api/v1/projects/{projectId}/archive` | PUT | — |
| `DELETE /api/v1/spaces/{spaceId}` | DELETE | No reversible |
| `DELETE /api/v1/vehicles/{vehicleId}` | DELETE | No reversible |
| `DELETE /api/v1/staff/{staffId}` | DELETE | No reversible |
| `DELETE /api/v1/tags/{tagId}` | DELETE | No reversible |
| `DELETE /api/v1/tags/{tagId}/assignments` | DELETE | — |
| `DELETE /api/v1/availability/unavailabilities/{unavailabilityId}` | DELETE | No reversible |
| `DELETE /api/v1/tasks/{taskId}` | DELETE | No reversible |
| `POST /api/v1/orders/{orderId}/cancel` | POST | No reversible |
| `PUT /api/v1/orders/{orderId}/archive` | PUT | — |
| `POST /api/v1/orders/{orderId}/unreserve` | POST | — |
| `DELETE /api/v1/projects/{projectId}/orders/{orderId}` | DELETE | — |
| `POST /api/v1/invoices/{invoiceId}/void` | POST | No reversible |
| `POST /api/v1/credit-notes/{creditNoteId}/void` | POST | No reversible |
| `POST /api/v1/contracts/{contractId}/void` | POST | No reversible |
| `POST /api/v1/contracts/{contractId}/cancel` | POST | No reversible |
| `POST /api/v1/supplier-invoices/{supplierInvoiceId}/void` | POST | No reversible |

## Qué significa cada acción

| Acción | Qué hace | ¿Se puede deshacer? |
| --- | --- | --- |
| Eliminar | Elimina el registro y lo que depende de él físicamente. Su GET responde 404 después, y la API no guarda ninguna lápida, así que un registro borrado no deja rastro en los listados. | No para los borrados de abajo. No se conserva nada que puedas restaurar. En la v1 no hay borrado de pedidos ni de proyectos: se cancelan, se archivan o se desvinculan. |
| Archivar | Saca un pedido o un proyecto de las vistas activas. No borra nada y no toca stock, líneas, documentos ni equipo. | Sí, solo cambia la visibilidad. Un pedido se restaura con `PUT /api/v1/orders/{orderId}/archive` y `archived: false`. |
| Anular | Pasa un documento validado a `voided`. Conserva su número, de modo que la numeración sigue siendo continua. | La especificación no describe ninguna vuelta atrás. El motivo que indicas se conserva. |
| Cancelar | Termina un pedido o la ruta de firma de un contrato. | No para un pedido. Un contrato cancelado ya no se puede firmar. |
| Desvincular | Elimina solo el vínculo entre dos registros. No borra ninguno de los dos. | Sí: el vínculo se vuelve a crear con el POST correspondiente. |

## Operaciones que la especificación califica de irreversibles o finales

Estas descripciones lo dicen de forma explícita, o califican el resultado de bloqueado o terminal. Trata cada una como final.

| Operación | Qué dice la especificación |
| --- | --- |
| `DELETE /api/v1/contacts/{contactId}` | Descrito como no reversible. También elimina sus relaciones, notas, archivos, tareas y métodos de pago. En su lugar, archiva un contacto con `status: archived`. |
| `DELETE /api/v1/contacts/{contactId}/addresses/{addressId}` | Descrito como no reversible. Se rechaza con `address_in_use` mientras un pedido use la dirección. |
| `DELETE /api/v1/items/{itemId}` | Descrito como no reversible. |
| `DELETE /api/v1/spaces/{spaceId}` | Descrito como no reversible. |
| `DELETE /api/v1/vehicles/{vehicleId}` | Descrito como no reversible. |
| `DELETE /api/v1/staff/{staffId}` | Descrito como no reversible. |
| `DELETE /api/v1/tags/{tagId}` | Descrito como no reversible. Quita la etiqueta de todos los registros que la tenían. |
| `DELETE /api/v1/availability/unavailabilities/{unavailabilityId}` | Descrito como no reversible. |
| `DELETE /api/v1/tasks/{taskId}` | Descrito como no reversible. Elimina sus asignaciones de personal y su reflejo en el calendario externo. |
| `POST /api/v1/orders/{orderId}/cancel` | Descrito como no reversible desde la API. Para recuperar el pedido lo duplicas; cancelar también libera el stock y cancela las tareas de logística. |
| `POST /api/v1/invoices/{invoiceId}/validate` | Bloquea la factura como inmutable. Una factura validada se anula, no se edita. |
| `POST /api/v1/credit-notes/{creditNoteId}/validate` | Bloquea la nota de crédito como inmutable. |
| `POST /api/v1/contracts/{contractId}/validate` | Bloquea el contrato como inmutable. |
| `POST /api/v1/supplier-invoices/{supplierInvoiceId}/validate` | Bloquea la factura recibida como inmutable. |
| `POST /api/v1/contracts/{contractId}/cancel` | La especificación llama terminal a `cancelled`. Un contrato firmado no se puede cancelar: anúlalo en su lugar. |

[`POST /api/v1/orders/{orderId}/unreserve`](https://docs.filmo.io/es/rest-api/endpoint-reference/orders/unreserve-an-order) no está en esta lista. Devuelve el pedido a borrador y el pedido se puede volver a reservar, pero elimina las tareas de entrega y devolución que creó la reserva, y estas no se recrean a mano.

Antes de llamar a cualquiera de estas desde un agente o un script, lee la página de la operación y considera enviar tu propio [clave de idempotencia](https://docs.filmo.io/es/rest-api/guides/idempotency) y, en las operaciones que aceptan `If-Match` (todas las anteriores salvo [`DELETE /api/v1/tags/{tagId}`](https://docs.filmo.io/es/rest-api/endpoint-reference/tags/delete-a-tag) y [`DELETE /api/v1/availability/unavailabilities/{unavailabilityId}`](https://docs.filmo.io/es/rest-api/endpoint-reference/availability/delete-an-unavailability)), el [ETag](https://docs.filmo.io/es/rest-api/guides/concurrency) que has leído, de modo que una vista obsoleta no pueda desencadenar la acción.

## Archivado no es eliminado

[`PUT /api/v1/orders/{orderId}/archive`](https://docs.filmo.io/es/rest-api/endpoint-reference/orders/archive-or-restore-an-order) archiva o restaura un pedido: el cuerpo es `{ "archived": true }` o `{ "archived": false }`. Es un PUT que fija un valor, no hay alternancia, y responde 204 sin cuerpo. La especificación dice que repetir la llamada no hace nada nuevo, pero no cuentes con que `updatedAt` se quede quieto: una repetición todavía puede actualizarlo, así que el pedido puede volver a aparecer en una lectura incremental.

- Solo se puede archivar un pedido en borrador o cancelado. Cualquier otro estado responde `409 conflict`, indicando el estado.
- Un pedido archivado deja de ser visible para la API: su GET responde 404, igual que con un pedido que no existe, se excluye de las listas y no hay ninguna opción `includeArchived`.
- Para restaurar un pedido, llama a [`PUT /api/v1/orders/{orderId}/archive`](https://docs.filmo.io/es/rest-api/endpoint-reference/orders/archive-or-restore-an-order) con `archived: false` y el id que guardaste: mientras el pedido está archivado no puedes listarlo ni leerlo. Tras el 204 vuelve a leerse con su GET.
- `OrderDto.status` lista `archived` como valor posible, pero Filmo nunca lo produce: archivar no cambia el estado.

Los proyectos se comportan de otra manera. [`PUT /api/v1/projects/{projectId}/archive`](https://docs.filmo.io/es/rest-api/endpoint-reference/projects/archive-or-restore-a-project) también acepta solo un proyecto en borrador o cancelado, pero un proyecto archivado solo se oculta del listado: [`archived`](https://docs.filmo.io/es/rest-api/endpoint-reference/projects/list-projects#param-archived) con valor `true` lista solo los archivados, y su GET sigue respondiendo con `archived: true`.

> **Un 404 no significa eliminado:** Durante una sincronización, un 404 en un pedido puede significar que se eliminó o que se archivó. No borres el registro de tu lado solo por un 404. Sigue los pasos de conciliación en [sincronizar datos](https://docs.filmo.io/es/rest-api/guides/syncing-data).

## Eliminar un registro que está en uso

Algunos borrados se niegan a ejecutarse cuando algo todavía usa el registro. [`contact_in_use`](https://docs.filmo.io/es/rest-api/errors/contact_in_use) y [`address_in_use`](https://docs.filmo.io/es/rest-api/errors/address_in_use) devuelven 409 y no borran nada; `errors[]` tiene una entrada por cada tipo de registro que lo usa, con un `count`. Mueve o elimina antes esos registros, o archiva el contacto en su lugar.

---

URL canónica: https://docs.filmo.io/es/further-reading/archiving-and-deleting  
Última actualización: 2026-10-09