# API de WhatsApp

import { Badge } from '@astrojs/starlight/components';

<Aside type="caution" title="/createWhatsAppMessage está obsoleto">
Las nuevas integraciones deben usar la [API de Mensajería v2](/es/developer/api-reference/messaging-api-v2/) — pasa `platforms: ["WHATS_APP"]` a `Notify` y usa el bloque `whatsapp` dentro de `payload.content.localized_content`. Consulta la [guía de migración](/es/developer/api-reference/messaging-api-v2/migration-from-v1/#from-createwhatsappmessage).
</Aside>

<Aside type="note">
Antes de enviar mensajes de WhatsApp, asegúrate de que la plataforma de WhatsApp esté configurada correctamente. [Más información](/es/product/first-steps/start-with-your-project/configure-platforms/whatsapp-configuration/)
</Aside>

## createWhatsAppMessage <Badge text="Obsoleto" variant="caution" size="small" />

Se utiliza para enviar mensajes de WhatsApp a los usuarios.

`POST` `https://api.pushwoosh.com/json/1.3/createWhatsAppMessage`

### Cuerpo de la solicitud

| Nombre  <div style="width:180px"></div>   | Requerido <div style="width:100px"></div> | Tipo | Descripción |
| :---- | :---- | :---- | :---- |
| auth\* | Sí | string | [Token de acceso a la API](/es/developer/api-reference/api-identifiers/#api-access-token) desde el Panel de Control de Pushwoosh. |
| application\* | Sí | string | [Código de aplicación de Pushwoosh](/es/developer/api-reference/api-identifiers/#application-code) |
| notifications\* | Sí | array | Configuración de contenido. Array JSON de parámetros de mensaje. Ver detalles a continuación. |

### Parámetros de notificación

| Nombre   <div style="width:150px"></div>     | Requerido                                  | Tipo    | Descripción                                                                                                                                                                                                                                                                                  |
|:----------------------|:------------------------------------------|:--------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| send_date*            | Sí                                       | string  | Fecha y hora para enviar la notificación. Usa el formato `YYYY-MM-DD HH:mm` o `'now'` para enviar inmediatamente.                                                                                                                                                                                        |
| content               | Requerido si no se proporciona `content_id`. | string  | Contenido de texto del mensaje de WhatsApp.                                                                                                                                                                                                                                                        |
| content_id            | Requerido si no se proporciona `content`.    | string  | Identificador de una plantilla de WhatsApp preaprobada de tu cuenta de Meta.                                                                                                                                                                                                                      |
| devices*              | Sí                                       | array   | Número de teléfono del cliente (debe estar asociado con un [ID de Usuario](/es/developer/api-reference/api-identifiers/#user-id) usando [`/registerDevice`](/es/developer/api-reference/device-api#registerdevice) y especificado en el parámetro `hwid`, o usar `use_auto_registration`). Solo se puede especificar un número aquí. |
| use_auto_registration | No                                        | boolean | Si se establece en `true`, el número de teléfono especificado en el parámetro `devices` se registrará automáticamente.                                                                                                                                                                                    |
| content_variables     | No                                        | object  | Variables de contenido para personalizar el contenido del mensaje. Cada marcador de posición será reemplazado con los valores dinámicos correspondientes.                                                                           |
| button_url_variables  | No                                        | object     | Variables de URL dinámicas para botones. Cada clave representa un índice de botón, y su valor es la variable dinámica para reemplazar en la URL del botón.   **Nota**: La indexación de botones comienza en 0, siendo el primer botón 0, el segundo 1, y así sucesivamente.                                                                                              |
| header_variables      | No                                        | object  | Variables para el encabezado en un mensaje de plantilla de WhatsApp. Especifica el `type` (por ejemplo, `text`, `image`, `video`, `document`) y el valor correspondiente. **Ejemplo**: `"header_variables": {"image": "https://image-url.png"}`                                                                   |
| preset                | No                                        | string  | Código de Preset de WhatsApp desde tu Panel de Control.                                                                                |
| language              | No                                        | string  | Configuración regional de idioma de la plantilla de WhatsApp (debe coincidir con la configuración regional en el editor de plantillas de WhatsApp de Meta). Por defecto: `"en_US"`. Ejemplo: `"en_GB"`.                                                                                                            |

<Aside type="caution" title="Importante">
****
Actualmente, cada mensaje de WhatsApp debe enviarse en una solicitud separada para cada cliente.
</Aside>

### Ejemplo de solicitud

```json
{
  "request": {
    "application": "12XXX-67XXX",           // requerido. Código de aplicación de Pushwoosh.
    "auth": "yxoPUlwqm…………pIyEX4H",         // requerido. Token de acceso a la API desde el Panel de Control de Pushwoosh.
    "notifications": [{
      "send_date": "now",                   // requerido. YYYY-MM-DD HH:mm O "now".
      "content": "Hello! {{1}}",            // requerido si no se proporciona content_id. Texto del mensaje.
      "content_id": "hello_world",          // requerido si no se proporciona content. Identificador de la plantilla de WhatsApp.
      "devices": ["whatsapp:+1234567890"],  // requerido. Número de teléfono de WhatsApp del cliente (debe estar asociado
                                            //           con un UserId usando /registerDevice y especificado en
                                            //           el parámetro "hwid" o usar "use_auto_registration").
                                            //           Solo se puede especificar un número de WhatsApp aquí.
      "preset": "XXXXX-XXXXX",              // opcional. Código de Preset de WhatsApp desde tu Panel de Control.
      "content_variables": {                // opcional. Variables de contenido para personalizar el contenido del mensaje.
        "1": "John"
      },
      "header_variables": {                 // opcional. Variables para el encabezado del mensaje de WhatsApp.
        "image": "https://image-url.png"
      },
      "language": "en_GB",                  // opcional. Configuración regional de idioma para la plantilla de WhatsApp (debe coincidir con la configuración regional en el editor de plantillas de WhatsApp de Meta). Por defecto: "en_US".
      "use_auto_registration": true         // opcional. Registrar automáticamente el número de WhatsApp especificado
                                            //           en el parámetro "devices".
    }]
  }
}
```

### Ejemplo: Envío de un código de autenticación de dos factores a través de WhatsApp

```json
{
    "request": {
        "application":"APP_CODE", "auth":"AUTH_TOKEN",
        "notifications":[{
            "send_date":"now",
            "content_id":"replace_with_your_meta_two_factor_template_name",
            "content_variables":{"1":"AUTH_CODE"},
            "button_url_variables":{"0":"AUTH_CODE"},
            "devices":["whatsapp:REPLACE_WITH_YOUR_PHONE_NO"]
        }]
    }
}
```

### Ejemplo de respuesta

```json
{
  "status_code": 200,
  "status_message": "OK",
  "response": {
    "Messages": [
      "9648-0B10EXXX-0D9F2XXX"
    ]
  }
}
```

### Respuesta de error

```json
{
  "status_code": 210,
  "status_message": "Invalid devices list. \"devices\" must be an array.",
  "response": {
    "Messages": []
  }
}
```