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

# Enviar tu primer mensaje

> Paso a paso para enviar un mensaje de WhatsApp con la API.

## Requisitos

* Una cuenta de Waspy con un número conectado
* Una API key con scope `messages:write` y `channels:read`

***

## 1. Obtener el canal

Primero, necesitás el ID del canal (número de WhatsApp) desde el que vas a enviar:

```bash theme={null}
curl https://api.waspytech.com/api/v2/channels \
  -H "Authorization: Bearer wspy_tu_key"
```

Copiá el `id` del canal que querés usar.

***

## 2. Enviar un template

Si es la primera vez que contactás a este número, necesitás un template (la ventana de servicio no está activa):

```bash theme={null}
curl -X POST https://api.waspytech.com/api/v2/messages \
  -H "Authorization: Bearer wspy_tu_key" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: primer-mensaje-test" \
  -d '{
    "phoneNumberId": "TU_PHONE_NUMBER_ID",
    "to": "+5491100001111",
    "type": "template",
    "template": {
      "name": "hello_world",
      "language": { "code": "en_US" }
    }
  }'
```

***

## 3. Verificar el envío

Usá el ID del mensaje que recibiste en la respuesta:

```bash theme={null}
curl https://api.waspytech.com/api/v2/messages/MSG_ID \
  -H "Authorization: Bearer wspy_tu_key"
```

El campo `status` te dice en qué estado está: `queued`, `sent`, `delivered`, `read` o `failed`.

***

## 4. Enviar texto libre (si el contacto respondió)

Una vez que el contacto te responde, se abre la ventana de servicio y podés enviar texto libre:

```bash theme={null}
curl -X POST https://api.waspytech.com/api/v2/messages \
  -H "Authorization: Bearer wspy_tu_key" \
  -H "Content-Type: application/json" \
  -d '{
    "phoneNumberId": "TU_PHONE_NUMBER_ID",
    "to": "+5491100001111",
    "type": "text",
    "text": { "body": "Gracias por tu respuesta! En qué te podemos ayudar?" }
  }'
```

***

## Notas

* Si el contacto no existe, Waspy lo crea automáticamente al enviar el mensaje.
* Usá `Idempotency-Key` para evitar envíos duplicados si reintentás.
* Los mensajes se envían de forma asíncrona. El status inicial es siempre `queued`.
