---
title: "Anular un cobro, un pago o un cruce"
method: POST
path: "/tesoreria/movimientos/{id}/anular"
tags: ["tesoreria"]
---

# Anular un cobro, un pago o un cruce

`POST /tesoreria/movimientos/{id}/anular`

## Request

- Base URL: `https://contadeo.com/api`
- URL: `https://contadeo.com/api/tesoreria/movimientos/{id}/anular`
- Auth: HTTP bearer

El movimiento no se borra: queda anulado y el saldo de sus documentos vuelve. Si ya tenía asiento, se cuelga el inverso con la fecha de hoy; por eso no se anula con el mes de hoy cerrado. Si parte de su anticipo se aplicó después, primero hay que deshacer esas aplicaciones. Repetir la llamada no hace nada. Sirve para los seis sentidos. Un cobro que está en un depósito no se anula hasta anular el depósito; anular un depósito devuelve sus cobros a «por depositar».

## Path parameters

- `id` string, uuid, required

## Request body

- object
  - `motivo` string, nullable

## Response `200`

El movimiento, ya anulado

- DetalleMovimientoTesoreria
  - `id` string, uuid, required
  - `sentido` 'cobro' | 'pago' | 'cruce' | 'ingreso' | 'egreso' | 'transferencia', required
  - `fecha` string, date, required
  - `importe` number, required
  - `estado` 'registrado' | 'anulado', required
  - `formaPago` string, nullable, required: Tabla 24 del SRI; 15 en un cruce y `null` en una transferencia
  - `referencia` string, nullable, required
  - `nota` string, nullable, required
  - `cuenta` object, nullable, required: El banco o la caja; de donde sale una transferencia. `null` en un cruce.
    - `id` string, uuid, required
    - `nombre` string, required
    - `tipo` 'banco' | 'caja', required
  - `tercero` object, nullable, required: De quién se cobró, a quién se pagó o con quién se cruzó. `null` si su identificación tiene una supresión vigente (LOPDP).
    - `tipo` string, nullable, required: Tabla 6 del SRI
    - `identificacion` string, required
    - `nombre` string, nullable, required
  - `documentos` integer, required: A cuántos documentos se aplicó, contando solo lo vivo
  - `asientoId` string, uuid, nullable, required: Su asiento, si ya está en el libro
  - `anuladoEl` string, date, nullable, required
  - `motivoAnulacion` string, nullable, required
  - `aplicado` number, required: Lo aplicado hoy a documentos
  - `disponible` number, required: Lo que le queda sin aplicar: su anticipo disponible. Cero en todo lo que no es un cobro o un pago
  - `cuentaDestino` object, nullable, required: Adonde llega una transferencia. `null` en lo demás
    - `id` string, uuid, required
    - `nombre` string, required
    - `tipo` 'banco' | 'caja', required
  - `contrapartida` object, nullable, required: La cuenta contable de un ingreso o de un egreso
    - `id` string, uuid, required
    - `codigo` string, required
    - `nombre` string, required
  - `claseFlujo` string, nullable, required: Clase del flujo de efectivo, un código del plan de la SCVS. `null` en un cruce y en una transferencia
  - `depositoId` string, uuid, nullable, required: El depósito (una transferencia) que llevó este cobro al banco
  - `claseFlujoNombre` string, nullable, required: El nombre de esa clase en el plan de la SCVS
  - `esDeposito` boolean, required: Una transferencia que depositó cobros de una caja. Lo sigue siendo anulada
  - `depositoFecha` string, date, nullable, required: La fecha de ese depósito
  - `emisorId` string, uuid, required
  - `asientoAnulacionId` string, uuid, nullable, required: El inverso que dejó la anulación, si ya está en el libro
  - `aplicaciones` object[], required: Todas, también las deshechas
    - `id` string, uuid, required
    - `documentoTipo` 'comprobante' | 'compra' | 'apertura', required: `apertura`: un documento de apertura (`GET /contabilidad/saldos-iniciales/documentos`).
    - `documentoId` string, uuid, required
    - `lado` 'cobrar' | 'pagar', required: Lo que te deben o lo que debes
    - `tipoComprobante` string, required
    - `numero` string, required
    - `fechaEmision` string, date, required
    - `importe` number, required: Lo que este movimiento le aplicó
    - `fecha` string, date, required: El día que se aplicó
    - `diferida` boolean, required: Un anticipo aplicado después del registro: se deshace sola
    - `anuladaEl` string, date, nullable, required: Cuándo se deshizo
    - `asientoId` string, uuid, nullable, required: El asiento propio de una aplicación diferida
  - `cobrosDepositados` object[], required: Los cobros que deposita una transferencia. Vacío en lo demás, y al anularse el depósito
    - `id` string, uuid
    - `fecha` string, date
    - `importe` number
    - `referencia` string, nullable
    - `tercero` object, nullable
      - `tipo` string, nullable
      - `identificacion` string
      - `nombre` string, nullable

## Other responses

- `400`: Cuerpo inválido o validación de negocio (previene errores SRI 62/52/65/69/39)
- `402`: La cuenta no tiene el módulo `tesoreria`
- `403`: Token/key ausente, inválido o expirado
- `404`: Recurso inexistente (o de otra cuenta — aislamiento multi-tenant)

---

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