# Oratrix API - Interativo Baileys

## Status

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

Este grupo contem endpoints interativos exclusivos para canais do tipo **Baileys**.

Para o Wezapp Shots, estes endpoints sao recursos auxiliares para mensagens com interacao. Nao substituem os endpoints principais de disparo em massa.

## Base URL

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

## Autenticacao

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

## Restricao do provedor

```text
Baileys only
```

Exige canal do tipo `baileys`.

## Endpoints do grupo

Total documentado nesta parte: 6 endpoints.

---

## 1. Quick Reply via Baileys

```http
POST /sendInteractive/baileys/quickReply
```

Nome na documentacao Oratrix:

```text
BaileysQuickReply
```

Descricao:

Enviar botoes de resposta rapida via Baileys.

URL completa:

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

Body JSON:

```json
{
  "ticketId": 1262,
  "body": {
    "text": "Escolha uma opcao:"
  },
  "footer": {
    "text": "Rodape opcional"
  },
  "buttons": [
    {
      "display_text": "Opcao 1",
      "id": "op1"
    },
    {
      "display_text": "Opcao 2",
      "id": "op2"
    }
  ]
}
```

---

## 2. Single Select via Baileys

```http
POST /sendInteractive/baileys/singleSelect
```

Nome na documentacao Oratrix:

```text
BaileysSingleSelect
```

Descricao:

Enviar lista de selecao unica com secoes e itens via Baileys.

URL completa:

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

Body JSON:

```json
{
  "ticketId": 1262,
  "body": {
    "text": "Escolha uma opcao:"
  },
  "footer": {
    "text": "Rodape opcional"
  },
  "list": {
    "title": "Ver opcoes",
    "sections": [
      {
        "title": "Secao 1",
        "rows": [
          {
            "id": "1",
            "title": "Item 1",
            "description": "Descricao"
          },
          {
            "id": "2",
            "title": "Item 2"
          }
        ]
      }
    ]
  }
}
```

---

## 3. Botao PIX via Baileys

```http
POST /sendInteractive/baileys/pixButton
```

Nome na documentacao Oratrix:

```text
BaileysPixButton
```

Descricao:

Enviar botao PIX com chave copia-e-cola via Baileys.

URL completa:

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

Body JSON:

```json
{
  "ticketId": 1262,
  "pixType": "EVP",
  "pixKey": "chave-aleatoria-uuid",
  "pixName": "Nome Beneficiario",
  "bodyText": "Pague com PIX:"
}
```

---

## 4. CTA copiar codigo via Baileys

```http
POST /sendInteractive/baileys/ctaCopy
```

Nome na documentacao Oratrix:

```text
BaileysCtaCopy
```

Descricao:

Enviar botao CTA de copiar codigo, como cupom ou codigo de rastreio, via Baileys.

URL completa:

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

Body JSON:

```json
{
  "ticketId": 1262,
  "body": {
    "text": "Copie seu codigo de rastreio:"
  },
  "footer": {
    "text": "Valido por 24h"
  },
  "displayText": "Copiar codigo",
  "copyCode": "BR123456789"
}
```

---

## 5. CTA URL via Baileys

```http
POST /sendInteractive/baileys/ctaUrl
```

Nome na documentacao Oratrix:

```text
BaileysCtaUrl
```

Descricao:

Enviar botao CTA de abrir URL via Baileys.

URL completa:

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

Body JSON:

```json
{
  "ticketId": 1262,
  "body": {
    "text": "Acesse nosso site:"
  },
  "footer": {
    "text": "Clique para visitar"
  },
  "displayText": "Visitar site",
  "url": "https://exemplo.com"
}
```

---

## 6. CTA ligacao via Baileys

```http
POST /sendInteractive/baileys/ctaCall
```

Nome na documentacao Oratrix:

```text
BaileysCtaCall
```

Descricao:

Enviar botao CTA de ligar via Baileys.

URL completa:

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

Body JSON:

```json
{
  "ticketId": 1262,
  "body": {
    "text": "Precisa de ajuda?"
  },
  "footer": {
    "text": "Ligue para nos"
  },
  "displayText": "Ligar agora",
  "phoneNumber": "+5511999999999"
}
```

## Mapeamento sugerido com Wezapp Shots

| Wezapp Shots | Oratrix |
|---|---|
| Canal com provider Baileys | Endpoints `/sendInteractive/baileys/*` |
| Ticket externo | `ticketId` |
| Campanha com interacao | Mensagem interativa enviada pelo Oratrix |
| CTA de campanha | `ctaUrl`, `ctaCall`, `ctaCopy` |

## Observacoes para arquitetura

Estes endpoints usam `ticketId`, nao apenas numero ou contato. Isso indica que dependem de ticket/conversa existente no Oratrix.

Para o Shots, o uso direto em disparo em massa precisa validar antes:

- Como criar ou obter `ticketId`.
- Se campanha bulk cria ticket antes de permitir interativo.
- Se pode ser usado em fluxo de resposta/follow-up, e nao no primeiro disparo.

## Pendencias tecnicas para validar

- Confirmar se todos exigem canal Baileys.
- Confirmar limites de botoes em `quickReply`.
- Confirmar limites de secoes e linhas em `singleSelect`.
- Confirmar se `ticketId` e obrigatorio em todos.
- Confirmar se pode ser enviado para ticket encerrado.
- Confirmar formato dos eventos de resposta dos botoes.
- Confirmar se `pixButton` exige validacao de chave PIX.

## Regras recomendadas para o Wezapp Shots

1. Nao usar endpoints interativos Baileys como motor principal de disparo em massa.
2. Usar apenas em fluxos que tenham ticket externo valido.
3. Registrar payload enviado e retorno recebido.
4. Validar canal antes de chamar endpoint Baileys.
5. Tratar respostas de botoes como eventos de campanha quando houver suporte.
