---
title: "Ciclo de trabajo del F104: borrador, revisado o listo"
method: POST
path: "/asesor/f104/estado"
tags: ["asesor"]
---

# Ciclo de trabajo del F104: borrador, revisado o listo

`POST /asesor/f104/estado`

## Request

- Base URL: `https://contadeo.com/api`
- URL: `https://contadeo.com/api/asesor/f104/estado`
- Auth: HTTP bearer

Marca el estado de trabajo del F104 del período para la empresa activa. `listo` congela las cifras revisadas (snapshot con fecha y autor) y dispara el webhook `f104.listo` a los endpoints suscritos (solo al ENTRAR al estado; re-marcarlo no re-notifica). A `presentada` se llega únicamente por `POST /asesor/declaraciones` (409 si el período ya está presentado). Requiere sesión de usuario (403 con API key). El `GET /asesor/f104` cachea 5 minutos; este POST devuelve el estado fresco.

## Request body

- object
  - `emisorId` string: Opcional: sin él se usa el emisor de trabajo de la cuenta
  - `anio` integer, required
  - `mes` integer, required
  - `estado` 'borrador' | 'revisado' | 'listo', required

## Response `200`

Estado marcado

- object
  - `emisorId` string, required
  - `codigo` string, required: IVA_MENSUAL | IVA_SEMESTRAL_RIMPE
  - `periodo` string, required: Mensual YYYY-MM; semestral YYYY-S1/S2
  - `estado` 'borrador' | 'revisado' | 'listo', required
  - `snapshotAt` string, date-time, nullable
  - `vencimiento` string, date, nullable

## Other responses

- `400`: Estado inválido, anio/mes ausentes o régimen sin F104
- `409`: El período ya está presentado; desmárcalo primero

---

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