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

# Enviar Plantilla como Business

> Envía una plantilla de WhatsApp directamente desde el negocio, sin requerir un agente asignado

Envía una plantilla de WhatsApp en nombre del negocio. A diferencia del endpoint de arquitectura, este endpoint no requiere un `chat_id` ni `contacto_id` preexistentes — crea automáticamente el contacto y la conversación si no existen.

Útil para disparos externos, integraciones de CRM, o flujos donde el negocio inicia el contacto sin intervención de un agente.

## Autenticación

Requiere el encabezado `x-api-key` con el App Key del negocio. Consulta [Autenticación](/authentication).

## Encabezados

<ParamField header="x-api-key" type="string" required>
  App Key del negocio. Consulta [Autenticación](/authentication).
</ParamField>

## Cuerpo de la solicitud

<ParamField body="empresa_id" type="number" required>
  ID del negocio que envía la plantilla.
</ParamField>

<ParamField body="phone_number" type="string" required>
  Número de WhatsApp del destinatario. Se aceptan formatos con o sin caracteres especiales (guiones, espacios, `+`) — el sistema extrae solo los dígitos. Ejemplo: `+52 155 1234 5678` o `5215512345678`.
</ParamField>

<ParamField body="plantilla_id" type="number" required>
  ID interno de la plantilla a enviar. Debe pertenecer al negocio indicado en `empresa_id`.
</ParamField>

<ParamField body="parameters" type="string[]">
  Lista de valores de texto para inyectar en los componentes dinámicos de la plantilla. Cada elemento debe ser un **string**; el sistema los envuelve automáticamente en el formato `{ type: "text", text: "..." }` al enviar a Meta. Por defecto es un arreglo vacío. Debe ser un arreglo; de lo contrario la solicitud será rechazada con `400`.

  ```json theme={null}
  ["Juan Pérez", "Orden #1234"]
  ```
</ParamField>

<ParamField body="name" type="string">
  Nombre del contacto. Se usa como nombre visible si el contacto es creado por primera vez. Si se omite, se usa el número de teléfono como nombre. Debe ser un texto; de lo contrario la solicitud será rechazada con `400`.
</ParamField>

## Respuesta

<ResponseField name="success" type="boolean">
  `true` cuando la plantilla fue enviada y registrada correctamente.
</ResponseField>

<RequestExample>
  ```bash theme={null}
  curl -X POST https://beta.api-iobot-desarrollo.com/chats/enviar/plantilla/business \
    -H "Content-Type: application/json" \
    -H "x-api-key: TU_APP_KEY" \
    -d '{
      "empresa_id": 1,
      "phone_number": "5215512345678",
      "plantilla_id": 12,
      "name": "Juan Pérez",
      "parameters": ["Juan Pérez", "Orden #9982"]
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 Éxito theme={null}
  {
    "success": true
  }
  ```

  ```json 400 Validación de campo requerido theme={null}
  {
    "success": false,
    "error": "empresa_id es requerido y debe ser un número"
  }
  ```

  ```json 400 parameters no es un arreglo theme={null}
  {
    "success": false,
    "error": "parameters debe ser un arreglo"
  }
  ```

  ```json 400 Error al enviar theme={null}
  {
    "success": false,
    "error": "Error al enviar la plantilla"
  }
  ```

  ```json 404 Negocio no encontrado theme={null}
  {
    "success": false,
    "error": "Empresa no encontrada"
  }
  ```

  ```json 404 Plantilla no encontrada theme={null}
  {
    "success": false,
    "error": "Plantilla no encontrada"
  }
  ```

  ```json 500 Error inesperado theme={null}
  {
    "success": false,
    "error": "Error: ..."
  }
  ```
</ResponseExample>
