# Disparar Mensagem

> Envia mensagens através da API Oficial do Instagram (Meta Graph API) para um usuário destinatário.

`POST https://crm.wavups.com/api/v1/instagram/send-message`

Página: https://crm.wavups.com/docs/api/instagram/enviar-mensagem

## Visão Geral

Este endpoint permite disparar mensagens no Instagram Direct através da Meta Graph API de forma assíncrona.

> [!IMPORTANT]
> O parâmetro `accountIntegrationId` é **obrigatório**. Obtenha o ID correspondente à sua integração de Instagram através do endpoint [Listar Integrações](https://crm.wavups.com/docs/api/integracoes/listar).

---

## Requisição

`POST https://crm.wavups.com/api/v1/instagram/send-message`

- `Token` (string, obrigatório, header):
  Seu token de autenticação.

### Body

- `accountIntegrationId` (string, obrigatório, body):
  ID da integração de Instagram na sua conta (consulte [Listar Integrações](https://crm.wavups.com/docs/api/integracoes/listar)).

- `recipientId` (string, obrigatório, body):
  ID do usuário no Instagram (Page-Scoped ID / PSID / IGSID).

- `type` (string, obrigatório, body):
  Tipo de mensagem a ser enviada. Valores suportados: `text`, `image`, `audio`, `video`, `file`.

- `accountCRMLeadId` (string, body):
  ID do Lead a ser associado à conversa caso a conversa ainda não exista no sistema.

- `senderId` (string, body):
  Membro da conta que está enviando a mensagem (opcional): `User.id` ou `id` do vínculo, ambos de [Listar Membros da Conta](https://crm.wavups.com/docs/api/membros/listar). Se não for um membro desta conta, a API responde `404` e a mensagem não é enviada. Se omitido, a mensagem é registrada como enviada por IA/Automação.

---

### Tipos de Mensagem e Payloads

#### 1. Texto (`text`)
```json
{
  "accountIntegrationId": "cmint9876543210",
  "recipientId": "123456789012345",
  "type": "text",
  "text": {
  "body": "Olá! Seja bem-vindo ao nosso atendimento."
  }
}
```

#### 2. Imagem (`image`)
```json
{
  "accountIntegrationId": "cmint9876543210",
  "recipientId": "123456789012345",
  "type": "image",
  "image": {
  "url": "https://meusite.com/foto.jpg",
  "caption": "Confira nosso catálogo de novidades!"
  }
}
```

#### 3. Áudio (`audio`)
```json
{
  "accountIntegrationId": "cmint9876543210",
  "recipientId": "123456789012345",
  "type": "audio",
  "audio": {
  "url": "https://meusite.com/audio.mp3"
  }
}
```

#### 4. Vídeo (`video`)
```json
{
  "accountIntegrationId": "cmint9876543210",
  "recipientId": "123456789012345",
  "type": "video",
  "video": {
  "url": "https://meusite.com/video.mp4"
  }
}
```

#### 5. Arquivo / Documento (`file`)
```json
{
  "accountIntegrationId": "cmint9876543210",
  "recipientId": "123456789012345",
  "type": "file",
  "file": {
  "url": "https://meusite.com/documento.pdf",
  "name": "Manual.pdf"
  }
}
```

---

## Exemplos de Envio

### Exemplo de requisição

```bash Texto Simples
curl --request POST \
  --url 'https://crm.wavups.com/api/v1/instagram/send-message' \
  --header 'Token: SEU_TOKEN_DE_API' \
  --header 'Content-Type: application/json' \
  --data '{
  "accountIntegrationId": "cmint9876543210",
  "recipientId": "123456789012345",
  "type": "text",
  "text": {
  "body": "Olá! Como posso ajudar?"
  }
  }'
```

```javascript Node.js
const res = await fetch('https://crm.wavups.com/api/v1/instagram/send-message', {
  method: 'POST',
  headers: {
  'Token': 'SEU_TOKEN_DE_API',
  'Content-Type': 'application/json'
  },
  body: JSON.stringify({
  accountIntegrationId: 'cmint9876543210',
  recipientId: '123456789012345',
  type: 'text',
  text: {
  body: 'Olá! Como posso ajudar?'
  }
  })
});
const data = await res.json();
console.log(data);
```

```python Python
import requests

response = requests.post(
  'https://crm.wavups.com/api/v1/instagram/send-message',
  headers={
  'Token': 'SEU_TOKEN_DE_API',
  'Content-Type': 'application/json'
  },
  json={
  'accountIntegrationId': 'cmint9876543210',
  'recipientId': '123456789012345',
  'type': 'text',
  'text': {
  'body': 'Olá! Como posso ajudar?'
  }
  }
)
print(response.json())
```

### Exemplo de resposta

```json 200
{
  "message": "Instagram message send task queued successfully."
}
```

```json 400
{
  "error": "Invalid request payload",
  "details": {
  "accountIntegrationId": ["accountIntegrationId is required"]
  }
}
```

```json 404
{
  "error": "Instagram integration not found for this account"
}
```
