> ## Documentation Index
> Fetch the complete documentation index at: https://docs.doconda.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ¿Cómo añadir control de cambios a un Word por código?

> Sube el Word y pide la edición con operation edit y quality standard, diciendo «con control de cambios»: cada cambio sale marcado en Word.

Para añadir control de cambios a un Word por código, sube el archivo y pide la edición con `operation: "edit"`,
diciendo en `prompt` que la quieres «con control de cambios» y con `quality: "standard"` o `"best"`. Cada cambio
queda marcado a nombre de «Doconda», para que quien lo abra en Word lo acepte o lo rechace.

## Pasos

1. Guarda tu API key en `DOCONDA_API_KEY` e instala el SDK (`pip install doconda` o `npm install @doconda/sdk`).
2. Sube el Word con `files.upload`.
3. Pide la edición con control de cambios y descarga el resultado.

<CodeGroup>
  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
  from pathlib import Path
  from doconda import Doconda

  doconda = Doconda()  # lee la key de DOCONDA_API_KEY
  file = doconda.files.upload("contrato.docx")
  edited = doconda.documents.create(
      operation="edit",
      file=file["id"],
      prompt="Con control de cambios: cambia el plazo de preaviso a 60 días y añade una cláusula de confidencialidad",
      quality="standard",
  )
  Path("contrato-con-cambios.docx").write_bytes(doconda.documents.download(edited["id"], "docx"))
  ```

  ```ts TypeScript theme={"theme":{"light":"github-light","dark":"github-dark-dimmed"}}
  import { readFile, writeFile } from "node:fs/promises"
  import { Doconda } from "@doconda/sdk"

  const doconda = new Doconda()
  const file = await doconda.files.upload(await readFile("contrato.docx"), "contrato.docx")
  const edited = await doconda.documents.create({
    operation: "edit",
    file: file.id,
    prompt: "Con control de cambios: cambia el plazo de preaviso a 60 días y añade una cláusula de confidencialidad",
    quality: "standard",
  })
  await writeFile("contrato-con-cambios.docx", await doconda.documents.download(edited.id, "docx"))
  ```
</CodeGroup>

## Qué devuelve

* El mismo Word con cada cambio marcado como revisión a nombre de «Doconda». El resto del documento queda idéntico.
* Lo nuevo copia el formato del documento: una cláusula añadida sigue la numeración y el aspecto de las que ya hay.
* Su PDF, y un informe (`documents.report(id)`): el resultado se revisa igual que en [Revisar](/guides/review).
* `status`: `ready`, `ready_with_warnings`, `needs_review` o `failed`. Si la petición no se puede convertir en
  cambios, termina en `failed` con `edit_not_understood` y no se cobra.

## Límites

* El control de cambios y los comentarios necesitan `standard` o `best`; `fast` no los hace.
* Máximo 50 páginas.
* También acepta `.doc`: el resultado sale en `.docx`.

## Preguntas frecuentes

<AccordionGroup>
  <Accordion title="¿Puedo añadir comentarios en vez de cambios?">
    Sí. En Word puedes pedir control de cambios, añadir comentarios o aceptar los cambios pendientes, en la misma frase
    del `prompt`.
  </Accordion>

  <Accordion title="¿Puedo aceptar todos los cambios pendientes de un Word?">
    Sí, pídelo en el `prompt` («acepta todos los cambios pendientes») con `operation: "edit"`.
  </Accordion>

  <Accordion title="¿Puedo editar un documento que ya hizo Doconda?">
    Sí: en `file` pasa su id (`doc_…`) en vez de subirlo.
  </Accordion>

  <Accordion title="¿Cómo leo un Word con control de cambios como texto?">
    Con [`extract`](/guides/extract) sale en Markdown, con los cambios aceptados.
  </Accordion>
</AccordionGroup>

## Sigue leyendo

* [Editar](/guides/edit) y [niveles de calidad](/guides/create#niveles-de-calidad).
* [Quickstart](/quickstart).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.