---
title: "Baja definitiva de una empresa que nunca emitió"
method: DELETE
path: "/tenants/{tenantId}"
tags: ["cuenta"]
---

# Baja definitiva de una empresa que nunca emitió

`DELETE /tenants/{tenantId}`

## Request

- Base URL: `https://contadeo.com/api`
- URL: `https://contadeo.com/api/tenants/{tenantId}`
- Auth: HTTP bearer

Borra la empresa y todo lo suyo, incluidos sus objetos en el almacenamiento. Solo cabe si NUNCA emitió comprobantes: con emisiones manda la conservación de 7 años y la respuesta es 409 pidiendo archivarla. También responde 409 si es la empresa de la sesión, la única del usuario, patrocina a otras, tiene suscripción viva o comisiones de partner. Rol owner en esa empresa; 403 con API key o token OAuth.

Devuelve la CONSTANCIA de eliminación (resolución SPDP-SPD-2025-0030-R, arts. 20 y 24) y su CSV: es el único momento en que se puede entregar, porque después no queda empresa desde la que descargarla. Guarda el CSV. Si el almacenamiento no responde, la baja se aborta con 503 y no se borra nada: reintentar es seguro.

## Path parameters

- `tenantId` string, uuid, required

## Response `200`

Empresa borrada, con su constancia de eliminación

- object
  - `constancia` ConstanciaEliminacion: Documento acreditativo de una eliminación (resolución SPDP-SPD-2025-0030-R, arts. 20 y 24). Append-only: no se modifica ni se borra nunca.
    - `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.
  - `csv` string: El documento acreditativo ya renderizado, listo para guardar o adjuntar.

## Other responses

- `403`: No es owner de esa empresa, o API key / token OAuth
- `404`: El usuario no administra esa empresa
- `409`: Alguna guarda lo impide (ya emitió, es la actual, patrocina, cobra…)
- `503`: El almacenamiento no respondió; no se borró nada

---

[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)
