Antylogic
Probar demoAcceso app

399 guías operativas

Secciones de Docs
DocsFacturación
Dispositivo

Cómo eliminar una ficha fiscal

Borra de forma definitiva una ficha fiscal de la ubicación activa mediante `DELETE /api/app/{orgId}/{locationId}/billing-details/{id}`. En la app nativa revisada no hay una pantalla que ejecute este borrado, así que la guía lo presenta como operación interna o de soporte.

En este artículo

Este artículo sirve para equipos internos o soporte. En la app nativa revisada no se encontró una pantalla que permita pulsar “eliminar ficha fiscal”; la operación existe en la API privada y debe tratarse como una acción controlada.

El borrado no es lógico: elimina la entidad `billing_details`. Además, queda aislado a la ubicación actual; si el `id` pertenece a otra ubicación, la API responde como si la ficha no existiera.

Antes de empezar

  • Sesión autenticada en la API privada `/api/app`.
  • Contexto activo con `orgId` y `locationId` de la ubicación correcta, por ejemplo `Grupo Marea Demo` y `Marea Gran Via`.
  • Permiso `customer:manage` en la ubicación actual; `customer:view` permite consultar, pero no borrar.
  • Identificador `id` de una ficha fiscal existente dentro de la misma ubicación.
  • Confirmación operativa previa de que la ficha puede retirarse, porque el borrado es definitivo.

Instrucciones

  1. 1.

    Comprueba ubicación y permiso

    Antes de ejecutar el borrado, confirma que estás trabajando en la ubicación correcta y que la sesión tiene `customer:manage`. La ubicación efectiva sale de la ruta y del contexto, no de un payload enviado por el cliente.

  2. 2.

    Identifica la ficha fiscal

    Localiza la ficha que se va a retirar desde el listado o el detalle de fichas fiscales. El `id` debe existir, no puede estar vacío y la ficha debe pertenecer a la ubicación activa.

  3. 3.

    Revisa referencias antes de borrar

    La acción elimina la fila de `billing_details` y no actualiza explícitamente clientes, facturas ni configuración TPV que puedan referenciar esa ficha. Si la base de datos bloquea el borrado por una relación activa, la API puede devolver conflicto.

  4. 4.

    Ejecuta el DELETE sin body

    Envía `DELETE /api/app/{orgId}/{locationId}/billing-details/{id}` sin payload. La ruta debe incluir exactamente un segmento `id` después de `billing-details`; no funciona sobre la colección ni con subrutas extra.

  5. 5.

    Verifica el listado de la ubicación

    Actualiza el listado de fichas fiscales de la ubicación y comprueba que el registro eliminado ya no aparece. Una consulta posterior al detalle del mismo `id` debe tratarse como no encontrada.

Validaciones y límites

  • La respuesta correcta en éxito es `204 NoContent` sin payload.
  • El servicio recorta `id`; si falta, está vacío o solo contiene espacios, la acción se trata como no encontrada.
  • Si falta `locationId` en el contexto, la acción se trata como no encontrada.
  • Una ficha fiscal de otra ubicación devuelve 404 aunque se conozca su `id`.
  • `customer:view` no habilita el borrado; se requiere `customer:manage`.
  • El handler no acepta body ni campos de confirmación para el DELETE.
  • El handler no soporta `DELETE /billing-details` sin `id` ni subrutas adicionales después del `id`.
  • Si Postgres bloquea el DELETE por una FK o constraint, la API puede responder 409.
  • No documentar esta acción como botón o menú de la app nativa: no se encontró una pantalla app-native que la invoque.

Resultado esperado

La ficha fiscal queda eliminada de la ubicación actual y desaparece del listado filtrado por `locationId`. Si permisos, ubicación, existencia del `id` o relaciones de base de datos no cumplen las condiciones, la operación no borra el registro.

Artículos relacionados