# Enviar conteúdo

> Envia várias mensagens e roda ações no contato, numa chamada só.

Endereço: https://docs.nextags.com.br/referencia/mensagens/enviar-conteudo/
Tipo: Endpoint

```http
POST https://app.nextagsai.com.br/api/contacts/{contact_id}/send_content
X-ACCESS-TOKEN: <sua chave de API>
```

Envia várias mensagens e roda ações no contato, numa chamada só. As mensagens (texto, botões, respostas rápidas, mídia e cartões) e as ações (`add_tag`, `set_field_value`, `send_flow` e as outras) seguem o formato de [Mensagens e ações em JSON](https://docs.nextags.com.br/comecar/mensagens-e-acoes/), e a NexTags converte cada mensagem para o canal do contato. No WhatsApp, `messages` aceita também mensagens no formato da API do WhatsApp (lista, localização, contatos), com `"to": null`: a NexTags preenche o número.

> No WhatsApp, a mensagem livre só sai até 24 horas depois da última mensagem do contato. Fora dessa janela, use [Enviar fluxo](https://docs.nextags.com.br/referencia/mensagens/enviar-fluxo/) com um fluxo que comece com um Modelo de Mensagem aprovado. Veja [A janela de 24 horas](https://help.nextags.com.br/tutoriais/canais/janela-de-24-horas/) e, para o Instagram e o Messenger, [Mensagens fora da janela](https://help.nextags.com.br/tutoriais/instagram-e-facebook/mensagens-fora-da-janela/).

Autenticação: Mande a chave de API da conta no cabeçalho `X-ACCESS-TOKEN` de cada chamada. Veja [Autenticação com a chave de API](https://docs.nextags.com.br/comecar/autenticacao/).

## Parâmetros de caminho

| Nome | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `contact_id` | integer | sim | O ID do contato que recebe. |

## Corpo da requisição (JSON)

| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| `messages` | array de objeto Mensagem | não | As mensagens, na ordem de envio. |
| `actions` | array de objeto Ação | não | As ações para rodar no contato, na ordem da lista. |
| `actions[].action` | string | sim | Valores: `add_tag`, `remove_tag`, `set_field_value`, `unset_field_value`, `send_flow`, `transfer_conversation_to`, `assign_conversation`, `unassign_conversation`. |
| `actions[].tag_name` | string | não | O nome da etiqueta (add_tag, remove_tag). |
| `actions[].field_name` | string | não | O nome do campo (set_field_value, unset_field_value). |
| `actions[].value` | string | não | O valor do campo (set_field_value) ou human/bot (transfer_conversation_to). |
| `actions[].flow_id` | integer ou string | não | O ID do fluxo (send_flow). |
| `actions[].admin_id` | integer ou string | não | O ID do administrador (assign_conversation). |
| `channel` | string | não | Por qual canal as mensagens saem. Valores: `messenger`, `whatsapp`, `telegram`, `instagram`. |

```json
{
  "messages": [
    {
      "message": {
        "text": "Oi, Ana! Seu pedido PED-1001 saiu para entrega."
      }
    },
    {
      "message": {
        "attachment": {
          "type": "template",
          "payload": {
            "template_type": "button",
            "text": "Quer falar com a equipe?",
            "buttons": [
              {
                "type": "postback",
                "title": "Falar com a equipe",
                "payload": "1000001"
              }
            ]
          }
        }
      }
    }
  ],
  "actions": [
    {
      "action": "add_tag",
      "tag_name": "cliente-vip"
    },
    {
      "action": "set_field_value",
      "field_name": "cidade",
      "value": "São Paulo"
    }
  ],
  "channel": "whatsapp"
}
```

## Exemplo

```bash
curl -X POST "https://app.nextagsai.com.br/api/contacts/123456789/send_content" \
  -H "X-ACCESS-TOKEN: $NEXTAGS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "messages": [
      {
        "message": {
          "text": "Oi, Ana! Seu pedido PED-1001 saiu para entrega."
        }
      },
      {
        "message": {
          "attachment": {
            "type": "template",
            "payload": {
              "template_type": "button",
              "text": "Quer falar com a equipe?",
              "buttons": [
                {
                  "type": "postback",
                  "title": "Falar com a equipe",
                  "payload": "1000001"
                }
              ]
            }
          }
        }
      }
    ],
    "actions": [
      {
        "action": "add_tag",
        "tag_name": "cliente-vip"
      },
      {
        "action": "set_field_value",
        "field_name": "cidade",
        "value": "São Paulo"
      }
    ],
    "channel": "whatsapp"
  }'
```

Os exemplos em JavaScript, Python e PHP estão na página e no contrato (`x-codeSamples` em https://docs.nextags.com.br/openapi.json).

## Respostas

### 200 Sucesso

O envio foi aceito.

### 401 Chave inválida

A chave de API não veio no cabeçalho ou não vale (foi excluída ou está incompleta). Veja [Autenticação](https://docs.nextags.com.br/comecar/autenticacao/).

```json
{
  "error": {
    "code": 401,
    "message": "No valid API key provided."
  }
}
```
