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.
Qué significa cada acción
Enlace a esta sección: 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 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
Enlace a esta sección: Operaciones que la especificación califica de irreversibles o finalesEstas 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 | 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 | Descrito como no reversible. Se rechaza con address_in_use mientras un pedido use la dirección. |
DELETE /api | Descrito como no reversible. |
DELETE /api | Descrito como no reversible. |
DELETE /api | Descrito como no reversible. |
DELETE /api | Descrito como no reversible. |
DELETE /api | Descrito como no reversible. Quita la etiqueta de todos los registros que la tenían. |
DELETE /api | Descrito como no reversible. |
DELETE /api | Descrito como no reversible. Elimina sus asignaciones de personal y su reflejo en el calendario externo. |
POST /api | 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 | Bloquea la factura como inmutable. Una factura validada se anula, no se edita. |
POST /api | Bloquea la nota de crédito como inmutable. |
POST /api | Bloquea el contrato como inmutable. |
POST /api | Bloquea la factura recibida como inmutable. |
POST /api | La especificación llama terminal a cancelled. Un contrato firmado no se puede cancelar: anúlalo en su lugar. |
POST /api 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 y, en las operaciones que aceptan If-Match (todas las anteriores salvo DELETE /api y DELETE /api), el ETag que has leído, de modo que una vista obsoleta no pueda desencadenar la acción.
Archivado no es eliminado
Enlace a esta sección: Archivado no es eliminadoPUT /api 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 /apicon/v1 /orders /{orderId} /archive archived: falsey el id que guardaste: mientras el pedido está archivado no puedes listarlo ni leerlo. Tras el 204 vuelve a leerse con su GET. OrderDto.listastatus archivedcomo valor posible, pero Filmo nunca lo produce: archivar no cambia el estado.
Los proyectos se comportan de otra manera. PUT /api también acepta solo un proyecto en borrador o cancelado, pero un proyecto archivado solo se oculta del listado: 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.
Eliminar un registro que está en uso
Enlace a esta sección: Eliminar un registro que está en usoAlgunos borrados se niegan a ejecutarse cuando algo todavía usa el registro. contact_in_use y 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.
Páginas relacionadas
Enlace a esta sección: Páginas relacionadasGuías
Sincronizar datos
Filmo v1 no envía webhooks, así que mantienes otro sistema sincronizado consultando periódicamente: lee lo que cambió en ventanas de tiempo semiabiertas y ejecuta un barrido aparte para encontrar lo que se eliminó. No sigas el cursor de paginación para decidir qué cambió o qué desapareció.
Para saber más
Capacidades y límites de la v1
La API cubre la mayor parte del trabajo diario con pedidos, contactos, artículos, facturas y la agenda, y deja una lista corta de cosas a la app. Compruébalo aquí antes de diseñar una integración en torno a una función.
Guías
Idempotencia y reintentos seguros
Envía una cabecera
Idempotency-Keycon cada escritura y reutiliza el mismo valor cuando reintentes esa operación: Filmo devuelve el resultado almacenado del primer intento en lugar de escribir dos veces.Guías
Concurrencia y bloqueo optimista
Cada lectura de detalle devuelve un
ETag. Envíalo de vuelta en la cabeceraIf-Matchde una escritura y Filmo rechaza la escritura con 412 si el registro ha cambiado desde que lo leíste, de modo que dos integraciones no puedan sobrescribirse en silencio.
¿Te ha resultado útil esta página?