> ## 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 generar un contrato en Word desde una frase?

> Describe el contrato en prompt con format docx: Doconda lo redacta, lo maqueta con cláusulas numeradas y marca los datos que debes revisar.

Para generar un contrato en Word desde una frase, describe el contrato en `prompt` con `format: "docx"`. Doconda lo
redacta, lo maqueta como contrato (con cláusulas numeradas) y te avisa en el informe de las cifras, fechas o citas
legales que no vienen de tu petición ni de tus fuentes.

## Pasos

1. Guarda tu API key en `DOCONDA_API_KEY` e instala el SDK (`pip install doconda` o `npm install @doconda/sdk`).
2. Describe el contrato con los datos que ya conoces (partes, importes, plazos) y el estilo, si quieres uno.
3. Descarga el Word y lee el informe antes de enviarlo.

<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
  doc = doconda.documents.create(
      format="docx",
      prompt="Contrato de alquiler de vivienda de 900 € al mes, con títulos azules",
      name="Contrato alquiler",
  )
  Path("contrato.docx").write_bytes(doconda.documents.download(doc["id"], "docx"))

  report = doconda.documents.report(doc["id"])
  for issue in report["issues"]:
      print(issue["code"], issue["message"])
  ```

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

  const doconda = new Doconda()
  const doc = await doconda.documents.create({
    format: "docx",
    prompt: "Contrato de alquiler de vivienda de 900 € al mes, con títulos azules",
    name: "Contrato alquiler",
  })
  await writeFile("contrato.docx", await doconda.documents.download(doc.id, "docx"))

  const report = await doconda.documents.report(doc.id)
  for (const issue of report.issues) console.log(issue.code, issue.message)
  ```
</CodeGroup>

## Qué devuelve

* Un Word editable y su PDF. `doc.type` dice qué clase de documento decidió Doconda (aquí, un contrato).
* Avisos en el informe:
  * `content.unsupported_fact`: una cifra, fecha o dato que no está en tu petición ni en tus fuentes.
  * `content.unsupported_citation` · `content.citation_to_review`: una cita legal (artículo, ley, sentencia) que no
    viene de tus fuentes.
* En `standard` y `best`, `key_data`: importes, fechas, NIF/CIF e IBAN del documento, con su papel (importe principal,
  fecha de firma, vencimiento…).
* `status`: `ready`, `ready_with_warnings`, `needs_review` o `failed` (no se cobra).

## Límites

* Si la petición busca engañar o hacer daño (falsificaciones, suplantaciones), falla con `request_refused` y no se
  cobra.
* Con `quality: "fast"` el estilo es el básico; copiar el diseño de tu plantilla necesita `standard` o `best`.

## Preguntas frecuentes

<AccordionGroup>
  <Accordion title="¿Puedo basarlo en mis ficheros?">
    Sí. Súbelos y pásalos en `sources` (hasta 5 documentos): Doconda los lee antes de escribir.
  </Accordion>

  <Accordion title="¿Y si ya tengo el texto del contrato?">
    Pásalo en `content.markdown`: se usa tal cual y Doconda solo lo maqueta.
  </Accordion>

  <Accordion title="¿Puedo cambiar una cláusula después?">
    Sí, con `operation: "edit"` y el id `doc_…`. Lo nuevo sigue la numeración de las cláusulas que ya hay. Ver
    [Editar](/guides/edit).
  </Accordion>

  <Accordion title="¿Revisa que el importe en letra cuadre con la cifra?">
    Sí: `money.words_mismatch` lo señala, sin corregirlo. Ver [Revisar](/guides/review).
  </Accordion>
</AccordionGroup>

## Sigue leyendo

* [Crear](/guides/create#avisos-del-informe) y [SDK: crear documentos](/sdk/create).
* [Quickstart](/quickstart).


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