---
title: "Listar las constancias de eliminación (LOPDP)"
method: GET
path: "/privacidad/constancias"
tags: ["privacidad"]
---

# Listar las constancias de eliminación (LOPDP)

`GET /privacidad/constancias`

## Request

- Base URL: `https://contadeo.com/api`
- URL: `https://contadeo.com/api/privacidad/constancias`
- Auth: HTTP bearer

Documentos acreditativos de los arts. 20 y 24 de la resolución SPDP-SPD-2025-0030-R: uno por cada eliminación efectiva. El inventario son CONTEOS por repositorio, nunca copias, y la identificación del titular va enmascarada. Declara además lo que sobrevive amparado (la retención tributaria de 7 años en bloqueo) y lo que no se purga (las trazas append-only, datos seudonimizados con ciclo de vida propio por el art. 5). Solo owner; cada consulta queda en la auditoría de accesos. Las constancias de baja de una empresa (alcance `baja_empresa`) NO aparecen aquí: se entregan en la respuesta de `DELETE /tenants/{tenantId}`, porque después no queda empresa desde la que pedirlas. Las de archivo (`archivo_empresa`) sí: la empresa archivada sigue existiendo.

## Query parameters

- `limit` integer
- `offset` integer

## Response `200`

Constancias emitidas, de la más reciente a la más antigua

- ConstanciaEliminacion[]
  - `id` string, uuid
  - `alcance` 'supresion' | 'baja_empresa' | 'archivo_empresa': `supresion`: un comprador ejerció su derecho de eliminación. `baja_empresa`: se borró la cuenta entera. `archivo_empresa`: la empresa que emitió se archivó bloqueada — es el único alcance que NO certifica un borrado, y por eso su `eliminado` va vacío y su `excepciones` declara el diferimiento del borrado físico.
  - `inventario` object: Qué se eliminó, qué sobrevive amparado y qué no se purga. Conteos, nunca copias.
    - `alcance` string
    - `titular` object, nullable: Titular alcanzado; null en la baja de una empresa. La identificación va SIEMPRE enmascarada.
      - `tipoIdentificacion` string
      - `identificacion` string
    - `eliminado` object[]
      - `repositorio` string
      - `registros` integer
    - `conservado` object[]: Lo que sigue vivo y con qué amparo (la retención tributaria de 7 años en bloqueo).
      - `repositorio` string
      - `registros` integer
      - `motivo` string
    - `excepciones` string[]: Lo que deliberadamente no se purga, con su porqué: las trazas append-only son datos seudonimizados con ciclo de vida propio (art. 5).
  - `hash` string: SHA-256 hex del inventario serializado en forma canónica (claves ordenadas). Recalculable sobre el JSON entregado: es lo que hace verificable el documento.
  - `emitidoAt` string, date-time
  - `actor` string: Quién la provocó: `cron:supresiones` o `usuario:<uuid>`. Identificadores técnicos, nunca PII.

## Other responses

- `400`: Cuerpo inválido o validación de negocio (previene errores SRI 62/52/65/69/39)
- `403`: Rol insuficiente o acceso denegado

---

[API](https://skmtc.dev/contadeo/apis/api-de-contadeo.md) · [All operations](https://skmtc.dev/contadeo/apis/api-de-contadeo/llms.txt) · [OpenAPI document](https://skmtc.dev/contadeo/apis/api-de-contadeo/revisions/461bbb9a74ce?raw)
