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

# Disparar Mensagem

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

## 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](/api-reference/integracoes/listar).

***

## Requisição

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

<ParamField header="Token" type="string" required>
  Seu token de autenticação.
</ParamField>

### Body

<ParamField body="accountIntegrationId" type="string" required>
  ID da integração de Instagram na sua conta (consulte [Listar Integrações](/api-reference/integracoes/listar)).
</ParamField>

<ParamField body="recipientId" type="string" required>
  ID do usuário no Instagram (Page-Scoped ID / PSID / IGSID).
</ParamField>

<ParamField body="type" type="string" required>
  Tipo de mensagem a ser enviada. Valores suportados: `text`, `image`, `audio`, `video`, `file`.
</ParamField>

<ParamField body="accountCRMLeadId" type="string">
  ID do Lead a ser associado à conversa caso a conversa ainda não exista no sistema.
</ParamField>

<ParamField body="senderId" type="string">
  Membro da conta que está enviando a mensagem (opcional): `User.id` ou `id` do vínculo, ambos de [Listar Membros da Conta](/api-reference/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.
</ParamField>

***

### Tipos de Mensagem e Payloads

#### 1. Texto (`text`)

```json theme={null}
{
  "accountIntegrationId": "cmint9876543210",
  "recipientId": "123456789012345",
  "type": "text",
  "text": {
    "body": "Olá! Seja bem-vindo ao nosso atendimento."
  }
}
```

#### 2. Imagem (`image`)

```json theme={null}
{
  "accountIntegrationId": "cmint9876543210",
  "recipientId": "123456789012345",
  "type": "image",
  "image": {
    "url": "https://meusite.com/foto.jpg",
    "caption": "Confira nosso catálogo de novidades!"
  }
}
```

#### 3. Áudio (`audio`)

```json theme={null}
{
  "accountIntegrationId": "cmint9876543210",
  "recipientId": "123456789012345",
  "type": "audio",
  "audio": {
    "url": "https://meusite.com/audio.mp3"
  }
}
```

#### 4. Vídeo (`video`)

```json theme={null}
{
  "accountIntegrationId": "cmint9876543210",
  "recipientId": "123456789012345",
  "type": "video",
  "video": {
    "url": "https://meusite.com/video.mp4"
  }
}
```

#### 5. Arquivo / Documento (`file`)

```json theme={null}
{
  "accountIntegrationId": "cmint9876543210",
  "recipientId": "123456789012345",
  "type": "file",
  "file": {
    "url": "https://meusite.com/documento.pdf",
    "name": "Manual.pdf"
  }
}
```

***

## Exemplos de Envio

<RequestExample>
  ```bash Texto Simples theme={null}
  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 theme={null}
  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 theme={null}
  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())
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "message": "Instagram message send task queued successfully."
  }
  ```

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

  ```json 404 theme={null}
  {
    "error": "Instagram integration not found for this account"
  }
  ```
</ResponseExample>


## OpenAPI

````yaml POST /instagram/send-message
openapi: 3.0.3
info:
  title: WavUps CRM API
  description: >-
    API pública da plataforma WavUps CRM — gerencie leads, produtos, categorias,
    atendimentos, agendamentos, conversas e pipelines de CRM.
  version: 1.0.0
servers:
  - url: https://crm.wavups.com/api/v1
    description: Servidor de produção
security:
  - Token: []
paths:
  /instagram/send-message:
    post:
      tags:
        - Instagram
      summary: Disparar Mensagem Instagram
      description: >-
        Envia mensagens através da API Oficial do Instagram (Meta Graph API)
        para um usuário destinatário.
      operationId: sendInstagramMessage
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InstagramSendMessageBody'
      responses:
        '200':
          description: Mensagem enfileirada com sucesso.
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
                    example: Instagram message send task queued successfully.
        '400':
          description: Payload inválido.
        '404':
          description: Integração não encontrada.
        '500':
          $ref: '#/components/responses/Error500'
components:
  schemas:
    InstagramSendMessageBody:
      type: object
      required:
        - accountIntegrationId
        - recipientId
        - type
      properties:
        accountIntegrationId:
          type: string
          description: ID da integração Instagram.
        recipientId:
          type: string
          description: ID do usuário no Instagram (PSID).
        type:
          type: string
          enum:
            - text
            - image
            - audio
            - video
            - file
        accountCRMLeadId:
          type: string
          description: ID do lead opcional caso a conversa ainda não exista.
        senderId:
          type: string
          nullable: true
          description: >-
            Membro da conta enviando a mensagem: User.id ou id do vínculo (GET
            /account-user). Fora da conta: 404 e nada é enviado.
        text:
          type: object
          properties:
            body:
              type: string
        image:
          type: object
          properties:
            url:
              type: string
              format: uri
            caption:
              type: string
        audio:
          type: object
          properties:
            url:
              type: string
              format: uri
        video:
          type: object
          properties:
            url:
              type: string
              format: uri
        file:
          type: object
          properties:
            url:
              type: string
              format: uri
            name:
              type: string
    ErrorMessage:
      type: object
      properties:
        error:
          type: string
          example: Recurso não encontrado.
  responses:
    Error500:
      description: Erro interno no servidor.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorMessage'
  securitySchemes:
    Token:
      type: apiKey
      in: header
      name: Token
      description: Token de autenticacao gerado na plataforma WavUps CRM.

````