# Oratrix API - Interativo WABA

## Status

Documentacao parcial baseada na parte enviada para o projeto Wezapp Shots.

Este grupo contem endpoints interativos exclusivos para **WABA**.

Para o Wezapp Shots, estes endpoints podem ser mais relevantes que outros interativos porque aceitam `number` diretamente no payload, alem de `ticketId`.

## Base URL

```text
https://api-pro1.oratrixchat.com.br/v2/api/external/{ApiID}
```

## Autenticacao

```http
Authorization: Bearer {token}
```

## Restricao do provedor

```text
Waba only
```

## Endpoints do grupo

Total documentado nesta parte: 2 endpoints.

---

## 1. Enviar botoes interativos via WABA

```http
POST /sendButtonWABA
```

Nome na documentacao Oratrix:

```text
SendButtonWABA
```

Descricao:

Enviar mensagem com botoes interativos, ate 3, via WABA.

URL completa:

```text
https://api-pro1.oratrixchat.com.br/v2/api/external/{ApiID}/sendButtonWABA
```

Body JSON:

```json
{
  "number": "5511999999999",
  "message": "Escolha uma opcao:",
  "button1": "Opcao 1",
  "button2": "Opcao 2",
  "button3": "Opcao 3",
  "ticketId": 1262
}
```

Observacao para Wezapp Shots:

Este endpoint aceita `number`, entao pode ser avaliado para campanhas interativas WABA. Ainda assim, o uso em massa precisa validar limites, regras do provedor e retorno por envio.

---

## 2. Enviar lista interativa via WABA

```http
POST /sendListWABA
```

Nome na documentacao Oratrix:

```text
SendListWABA
```

Descricao:

Enviar lista interativa com secoes e itens selecionaveis via WABA.

URL completa:

```text
https://api-pro1.oratrixchat.com.br/v2/api/external/{ApiID}/sendListWABA
```

Body JSON:

```json
{
  "number": "5511999999999",
  "header": "Menu Principal",
  "body": "Escolha uma opcao:",
  "footer": "Selecione uma opcao",
  "button_text": "Ver opcoes",
  "sections": [
    {
      "title": "Secao 1",
      "rows": [
        {
          "id": "1",
          "title": "Opcao 1",
          "description": "Desc 1"
        },
        {
          "id": "2",
          "title": "Opcao 2",
          "description": "Desc 2"
        }
      ]
    }
  ],
  "ticketId": 1262
}
```

Observacao para Wezapp Shots:

A lista interativa pode ser util em campanhas que precisam coletar escolha do destinatario, desde que exista regra clara para capturar e processar a resposta.

## Mapeamento sugerido com Wezapp Shots

| Wezapp Shots | Oratrix |
|---|---|
| Canal WABA | Endpoints WABA |
| `wezapp_contacts.phone` | `number` |
| Ticket externo opcional/relacionado | `ticketId` |
| Campanha com interacao | Botoes ou lista WABA |
| Evento de resposta futuro | Botao/lista selecionado pelo destinatario |

## Observacoes para arquitetura

Diferente de outros endpoints interativos, estes payloads possuem `number`, o que pode permitir envio direto ao destinatario. Mesmo assim, a presenca de `ticketId` no exemplo exige validacao:

- Se `ticketId` e obrigatorio ou opcional.
- Se a API cria ticket automaticamente quando recebe apenas `number`.
- Se WABA exige template aprovado para iniciar conversa fora da janela permitida.

## Pendencias tecnicas para validar

- Confirmar se `ticketId` e obrigatorio ou opcional.
- Confirmar se `number` sozinho permite envio.
- Confirmar se exige conversa/ticket aberto.
- Confirmar regras de janela e template para WABA.
- Confirmar limite real de botoes.
- Confirmar limite de secoes e linhas em listas.
- Confirmar formato dos eventos de resposta.
- Confirmar se retorna identificador externo da mensagem.

## Regras recomendadas para o Wezapp Shots

1. Avaliar WABA interativo como recurso de campanha, mas nao assumir uso sem teste.
2. Validar se o envio por `number` funciona sem `ticketId`.
3. Registrar payload e resposta em `wezapp_dispatch_logs`.
4. Controlar consumo de shots no Wezapp, nao pelo status externo apenas.
5. Tratar respostas de botoes/listas como eventos de campanha, se a API/webhook disponibilizar esse retorno.
