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.

DELETE
/api/v1/contacts/{contactId}

Ejemplos de petición

curl https://app.filmo.io/api/v1/contacts/cont_8f2a1c \
  --request DELETE \
  --header "Authorization: Bearer $FILMO_API_KEY" \
  --header "Idempotency-Key: $(uuidgen 2>/dev/null || cat /proc/sys/kernel/random/uuid)"
// Sin cuerpo.

Generado a partir del esquema

No reversible

Esta operación no se puede deshacer.

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} y status: archived. 404 si el contacto no existe o pertenece a otra cuenta.

Autorizaciones

Clave de API como Bearer, con el permiso de abajo. contacts:write

Cabeceras

Idempotency-Keystring

Identificador único de la petición, elegido por el cliente (sirve un UUID). Entre 1 y 255 caracteres: una cabecera vacía se rechaza con 400 validation_error, porque el cliente se creería protegido. Repetir la misma clave con el MISMO cuerpo en 24 h devuelve la respuesta guardada sin volver a ejecutar, con la cabecera Idempotent-Replay: true. Con un cuerpo DISTINTO devuelve 422. Es la forma segura de reintentar tras un tiempo de espera de red.

Límites: longitud mín. 1, longitud máx. 255

Ejemplo:"9f1c2f4e-3a5b-4f6d-8e7a-0b1c2d3e4f5a"

If-Matchstring

Bloqueo optimista: el ETag que leíste del recurso (o *). Si el recurso ha cambiado desde entonces, la escritura se rechaza con 412 precondition_failed antes de hacer nada; léelo de nuevo y reintenta. Sin la cabecera, la escritura siempre se realiza.

Ejemplo:"\"3sT3d9pBvZq4h2N0w8x1YkLmQ7c\""

Parámetros de ruta

contactIdstringObligatorio

Identificador del contacto.

Límites: longitud mín. 1

Respuesta

application/json

Sin contenido.

Cabeceras: X-Request-Id · RateLimit-Limit · RateLimit-Remaining · RateLimit-Reset · Idempotent-Replay

Sin cuerpo.

Errores

EstadoCódigosSignificado
404not_foundNo existe o queda fuera del alcance de la clave de API.
409conflict, contact_in_useEl estado actual del recurso impide la operación, ya hay en curso una petición con esa Idempotency-Key, u otra escritura condicional (If-Match) retuvo el recurso durante más de cinco segundos. errors[0].code indica cuál: in_progress y lock_timeout se resuelven reintentando; invalid_state no, porque el estado del recurso prohíbe la operación.
412precondition_failedLa etiqueta de entidad If-Match no coincide con la representación actual. Vuelve a leer el recurso y reintenta.
422idempotency_key_reusedLa misma clave se usó antes con un cuerpo distinto. Cambia la clave.

401, 403, 429, 500 los puede devolver cualquier operación. Errores

Obsolescencia

Esta operación no está obsoleta. Las obsolescencias se anuncian con la cabecera Deprecation y una fecha de retirada. Política de versiones