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

# Mensajes

> Las cuatro formas de enviar un mensaje y cuál aplica según la ventana de 24h.

La API ofrece cuatro formas de enviar un mensaje de WhatsApp en nombre de tu
negocio. Cuál puedes usar depende del estado de la
[ventana de 24h](/es/conversations) de la conversación.

## Qué modo aplica según la ventana

| Modo          | Ventana abierta | Ventana cerrada       |
| ------------- | --------------- | --------------------- |
| Texto         | ✅               | ❌ `WINDOW_CLOSED`     |
| Media         | ✅               | ❌ `WINDOW_CLOSED`     |
| Quick reply   | ✅               | ❌ `WINDOW_CLOSED`     |
| **Plantilla** | ✅               | ✅ — reabre la ventana |

<Tip>
  La **plantilla** es el único mensaje enviable con la ventana cerrada. Además,
  enviarla reabre la ventana, habilitando texto, media y quick reply otra vez.
</Tip>

## Las cuatro formas de enviar

<Tabs>
  <Tab title="Texto">
    Texto libre, hasta 4096 caracteres, vía `POST /conversation/messages/text`.

    ```bash theme={null}
    curl -X POST "https://app.1to1.ai/api/v1/public/{slug}/conversation/messages/text" \
      -H "Authorization: Bearer sk_1to1_tu_api_key" \
      -H "Content-Type: application/json" \
      -d '{
        "conversation": { "phone": "+5215512345678" },
        "body": "Hola 👋, ¿en qué te puedo ayudar?"
      }'
    ```

    Acepta un `reply_to_uuid` opcional para citar un mensaje previo. Responde
    `201` con `message_uuid` y `wamid`.
  </Tab>

  <Tab title="Media">
    Imagen, video, audio o documento — mismo endpoint que texto
    (`POST /conversation/messages/text`), pasando un `file_uuid` en vez de —o
    junto a— `body` como caption.

    ```bash theme={null}
    curl -X POST "https://app.1to1.ai/api/v1/public/{slug}/conversation/messages/text" \
      -H "Authorization: Bearer sk_1to1_tu_api_key" \
      -H "Content-Type: application/json" \
      -d '{
        "conversation": { "phone": "+5215512345678" },
        "file_uuid": "7b8a...",
        "body": "Aquí está tu comprobante 📄"
      }'
    ```

    <Note>
      El `file_uuid` debe ser de un archivo ya subido y confirmado, del mismo
      negocio. El tipo de mensaje (imagen, video, audio, documento) se deduce
      automáticamente del archivo. Ver el flujo de `/files` en la Referencia de
      API.
    </Note>

    <Warning>
      `body` (caption) no es compatible con archivos de audio. WhatsApp no
      soporta captions en audio — combinarlos retorna `INVALID_REQUEST` (400).
    </Warning>
  </Tab>

  <Tab title="Quick reply">
    Una respuesta preconfigurada en el dashboard, vía
    `POST /conversation/messages/quick-reply`. Se identifica por **uno** de
    `quick_reply_uuid` o `quick_reply.name` (XOR estricto — mandar ambos
    devuelve `400 INVALID_REQUEST`).

    ```bash theme={null}
    curl -X POST "https://app.1to1.ai/api/v1/public/{slug}/conversation/messages/quick-reply" \
      -H "Authorization: Bearer sk_1to1_tu_api_key" \
      -H "Content-Type: application/json" \
      -d '{
        "conversation": { "phone": "+5215512345678" },
        "quick_reply": { "name": "Bienvenida" }
      }'
    ```

    Una quick reply puede emitir **varios mensajes**, por eso la respuesta es un
    array `messages` con un `message_uuid`, `wamid` y `subtype` por cada uno.
  </Tab>

  <Tab title="Plantilla">
    Una plantilla aprobada por Meta, vía `POST /conversation/messages/template`.
    Es el único modo que funciona con la ventana cerrada — ver
    [Plantillas](/es/templates) para el detalle.

    ```bash theme={null}
    curl -X POST "https://app.1to1.ai/api/v1/public/{slug}/conversation/messages/template" \
      -H "Authorization: Bearer sk_1to1_tu_api_key" \
      -H "Content-Type: application/json" \
      -d '{
        "conversation": { "phone": "+5215512345678" },
        "template_name": "confirmacion_cita",
        "body_variables": [
          { "index": 1, "value": "Ana" }
        ]
      }'
    ```

    Responde `201` con `message_uuid` y `wamid`.
  </Tab>
</Tabs>

## Próximos pasos

<CardGroup cols={2}>
  <Card title="Plantillas" icon="file-lines" href="/es/templates">
    Crear y enviar plantillas para reabrir la ventana.
  </Card>

  <Card title="Conversaciones" icon="comments" href="/es/conversations">
    Identificadores y la ventana de 24h en detalle.
  </Card>
</CardGroup>
