{
  "openapi": "3.1.0",
  "info": {
    "title": "ZapZap API",
    "description": "API REST para conectar números de WhatsApp por QR code e enviar, receber e automatizar mensagens. Autentique com os cabeçalhos `x-api-key` e `x-api-secret` (Configurações e API no painel). O canal usa QR code e não é a API oficial da Meta: o WhatsApp pode restringir números que enviam mensagens indesejadas. Documentação: https://zapzapapi.com/docs",
    "version": "1.0.0",
    "contact": {
      "name": "ZapZap API",
      "url": "https://zapzapapi.com"
    }
  },
  "servers": [
    {
      "url": "https://api.zapzapapi.com/api/v1"
    }
  ],
  "tags": [
    {
      "name": "Conta e Instâncias"
    },
    {
      "name": "Enviar Mensagens"
    },
    {
      "name": "Conversas"
    },
    {
      "name": "Contatos e Perfil"
    },
    {
      "name": "Grupos"
    },
    {
      "name": "Newsletters e Canais"
    },
    {
      "name": "Campanhas"
    },
    {
      "name": "Chamadas"
    },
    {
      "name": "WhatsApp Business"
    },
    {
      "name": "Configurações"
    },
    {
      "name": "Webhooks e Eventos"
    },
    {
      "name": "Fila Async"
    },
    {
      "name": "Chatbot e IA"
    },
    {
      "name": "CRM e Leads"
    },
    {
      "name": "Integração Chatwoot"
    },
    {
      "name": "Fluxos"
    },
    {
      "name": "Traqueamento Meta"
    }
  ],
  "components": {
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-key"
      },
      "ApiSecret": {
        "type": "apiKey",
        "in": "header",
        "name": "x-api-secret"
      }
    }
  },
  "security": [
    {
      "ApiKey": [],
      "ApiSecret": []
    }
  ],
  "paths": {
    "/account": {
      "get": {
        "operationId": "management_account",
        "summary": "Dados da Conta",
        "description": "Retorna os dados da sua conta: nome, email, saldo atual, dia de cobrança e status.",
        "tags": [
          "Conta e Instâncias"
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "id": "uuid",
                  "name": "João",
                  "email": "joao@email.com",
                  "balance": "150.00",
                  "billing_day": 10,
                  "status": "ACTIVE"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/instances": {
      "get": {
        "operationId": "management_list_instances",
        "summary": "Listar Instâncias",
        "description": "Lista todas as instâncias WhatsApp da sua conta com status, nome, telefone e configurações.",
        "tags": [
          "Conta e Instâncias"
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "id": "uuid",
                    "name": "minha-instancia",
                    "status": "CONNECTED",
                    "phone_number": "5511999999999"
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      },
      "post": {
        "operationId": "management_create_instance",
        "summary": "Criar Instância",
        "description": "Cria uma nova instância WhatsApp. Debita automaticamente do saldo (taxa de ativação + proporcional). O nome deve conter apenas letras, números, _ e -.",
        "tags": [
          "Conta e Instâncias"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "description": "Nome da instância",
                    "type": "string",
                    "example": "minha-instancia"
                  },
                  "systemName": {
                    "description": "Nome do sistema (exibido no WhatsApp)",
                    "type": "string",
                    "example": "Meu App"
                  },
                  "metadata": {
                    "description": "Dados livres (JSON): vincule ao seu sistema (ex: clientId, plano)",
                    "type": "string",
                    "example": "{\"clientId\":\"123\",\"plan\":\"pro\"}"
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "instance": {
                    "id": "uuid",
                    "name": "minha-instancia",
                    "status": "PENDING"
                  },
                  "billing": {
                    "charged": 10.5
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/instances/cost": {
      "get": {
        "operationId": "management_creation_cost",
        "summary": "Custo de Criação",
        "description": "Retorna o custo para criar uma nova instância: taxa de ativação, proporcional e saldo necessário.",
        "tags": [
          "Conta e Instâncias"
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "activationFee": 3,
                  "prorate": 7.5,
                  "total": 10.5,
                  "instancePrice": 15,
                  "currentBalance": 150
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/instances/{id}": {
      "delete": {
        "operationId": "management_delete_instance",
        "summary": "Deletar Instância",
        "description": "Deleta (soft delete) uma instância. O WhatsApp é desconectado e um waiver de taxa de ativação é gerado para a próxima criação.",
        "tags": [
          "Conta e Instâncias"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID da instância",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "message": "Instância deletada com sucesso"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      },
      "get": {
        "operationId": "management_get_instance",
        "summary": "Detalhes da Instância",
        "description": "Retorna detalhes de uma instância específica.",
        "tags": [
          "Conta e Instâncias"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID da instância",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "id": "uuid",
                  "name": "MinhaInstancia",
                  "status": "CONNECTED",
                  "phone_number": "5511999999999"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      },
      "put": {
        "operationId": "management_update_instance",
        "summary": "Atualizar Instância",
        "description": "Atualiza webhook_url e/ou metadata de uma instância. O metadata é um JSON livre para vincular a instância ao seu sistema (ex: ID do cliente, plano, etc). O metadata é incluído automaticamente nos webhooks recebidos.",
        "tags": [
          "Conta e Instâncias"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID da instância",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "webhook_url": {
                    "description": "URL do webhook (HTTPS)",
                    "type": "string",
                    "example": "https://meusite.com/webhook"
                  },
                  "metadata": {
                    "description": "Dados livres (JSON)",
                    "type": "string",
                    "example": "{\"clientId\":\"123\"}"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "id": "uuid",
                  "name": "minha-instancia",
                  "webhook_url": "https://meusite.com/webhook",
                  "metadata": {
                    "clientId": "123"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/instances/{id}/qrcode": {
      "get": {
        "operationId": "management_qrcode",
        "summary": "QR Code da Instância",
        "description": "Retorna o QR Code para conectar o WhatsApp à instância. Escaneie com o celular.",
        "tags": [
          "Conta e Instâncias"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID da instância",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "connected": true,
                  "instance": {
                    "status": "connected",
                    "profileName": "Nome"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/instances/{id}/webhook": {
      "get": {
        "operationId": "gestao_webhook_get",
        "summary": "Ver Webhook",
        "description": "Retorna a URL de webhook configurada para a instância. O webhook recebe eventos em tempo real (mensagens, status, etc).\n\n⚠️ ATENÇÃO À URL: o {id} já vai no caminho: NÃO adicione duas vezes.\n\n✅ Certo:  GET /api/v1/instances/SEU-INSTANCE-ID/webhook\n❌ Errado: GET /api/v1/SEU-INSTANCE-ID/instances/SEU-INSTANCE-ID/webhook  (instanceId duplicado)",
        "tags": [
          "Conta e Instâncias"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID da instância",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "webhook_url": "https://meusite.com/webhook",
                  "configured": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      },
      "put": {
        "operationId": "gestao_webhook_put",
        "summary": "Configurar Webhook",
        "description": "Define ou atualiza a URL de webhook da instância. A URL deve ser pública e acessível via HTTPS. Eventos como mensagens recebidas, status de entrega e mudanças de conexão serão enviados via POST para essa URL.\n\n⚠️ ATENÇÃO À URL: o {id} já vai no caminho: NÃO adicione duas vezes.\n\n✅ Certo:  PUT /api/v1/instances/SEU-INSTANCE-ID/webhook\n❌ Errado: PUT /api/v1/SEU-INSTANCE-ID/instances/SEU-INSTANCE-ID/webhook  (instanceId duplicado)",
        "tags": [
          "Conta e Instâncias"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID da instância",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "webhook_url": {
                    "description": "URL do webhook (HTTPS)",
                    "type": "string",
                    "example": "https://meusite.com/webhook"
                  },
                  "events": {
                    "description": "Eventos para receber (vazio = todos)",
                    "type": "string",
                    "example": "messages,status"
                  },
                  "excludeMessages": {
                    "description": "Excluir mensagens próprias",
                    "type": "boolean"
                  }
                },
                "required": [
                  "webhook_url"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true,
                  "webhook_url": "https://meusite.com/webhook"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/instances/{id}/webhook/test": {
      "post": {
        "operationId": "gestao_webhook_test",
        "summary": "Testar Webhook",
        "description": "Envia um evento de teste para a URL de webhook configurada. Retorna o status code e tempo de resposta. Útil para validar que seu servidor está recebendo os eventos corretamente.\n\n⚠️ ATENÇÃO À URL: o {id} já vai no caminho: NÃO adicione duas vezes.\n\n✅ Certo:  POST /api/v1/instances/SEU-INSTANCE-ID/webhook/test\n❌ Errado: POST /api/v1/SEU-INSTANCE-ID/instances/SEU-INSTANCE-ID/webhook/test  (instanceId duplicado)",
        "tags": [
          "Conta e Instâncias"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID da instância",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "url": {
                    "description": "URL alternativa para teste (opcional)",
                    "type": "string",
                    "example": "https://meusite.com/webhook"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true,
                  "statusCode": 200,
                  "responseTime": 150
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/instance/wa_messages_limits": {
      "get": {
        "operationId": "instance_wa_limits",
        "summary": "Limites de Novas Conversas (WhatsApp)",
        "description": "Consulta o limite atual de novas conversas que o WhatsApp permite iniciar a partir deste número (o 'tier' da conta). Útil para acompanhar aquecimento e evitar bloqueio por excesso de disparos.",
        "tags": [
          "Conta e Instâncias"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/send/carousel": {
      "post": {
        "operationId": "send_carousel",
        "summary": "Enviar Carrossel",
        "description": "Envia um carrossel de cartões com imagem e botões de ação. Cada item do array `carousel` representa um cartão com `text`, `image` e `buttons: [{type,text,id}]`.",
        "tags": [
          "Enviar Mensagens"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número (com DDI)",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "text": {
                    "description": "Texto principal da mensagem",
                    "type": "string",
                    "example": "Confira nossas opções:"
                  },
                  "carousel": {
                    "description": "Cartões (JSON array)",
                    "example": [
                      {
                        "text": "Produto 1",
                        "image": "https://exemplo.com/img.jpg",
                        "buttons": [
                          {
                            "type": "REPLY",
                            "text": "Quero!",
                            "id": "quero"
                          }
                        ]
                      }
                    ]
                  },
                  "delay": {
                    "description": "Delay (ms)",
                    "type": "number",
                    "example": 1200
                  },
                  "digitando": {
                    "description": "Exibe \"digitando...\" automatico proporcional ao tamanho da mensagem antes de enviar. Ligado por padrao (humaniza e reduz risco de bloqueio). Envie false para desligar e responder mais rapido. A resposta continua sincrona.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "number",
                  "text",
                  "carousel"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "messageId": "ABCDEF123456",
                  "status": "sent"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/send/contact": {
      "post": {
        "operationId": "send_contact",
        "summary": "Enviar Contato (vCard)",
        "description": "Envia um cartão de contato (vCard) com nome e telefone.",
        "tags": [
          "Enviar Mensagens"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número do destinatário",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "fullName": {
                    "description": "Nome completo do contato",
                    "type": "string",
                    "example": "João Silva"
                  },
                  "phoneNumber": {
                    "description": "Telefones (separados por vírgula)",
                    "type": "string",
                    "example": "5511999999999,5511888888888"
                  },
                  "organization": {
                    "description": "Empresa / Organização",
                    "type": "string",
                    "example": "Empresa XYZ"
                  },
                  "email": {
                    "description": "E-mail do contato",
                    "type": "string",
                    "example": "joao@empresa.com"
                  },
                  "delay": {
                    "description": "Delay (ms)",
                    "type": "number",
                    "example": 1200
                  },
                  "digitando": {
                    "description": "Exibe \"digitando...\" automatico proporcional ao tamanho da mensagem antes de enviar. Ligado por padrao (humaniza e reduz risco de bloqueio). Envie false para desligar e responder mais rapido. A resposta continua sincrona.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "number",
                  "fullName",
                  "phoneNumber"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "messageId": "ABCDEF123456",
                  "status": "sent"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/send/location": {
      "post": {
        "operationId": "send_location",
        "summary": "Enviar Localização",
        "description": "Envia uma localização geográfica com pin no mapa. O destinatário pode abrir no Google Maps ou Apple Maps diretamente.",
        "tags": [
          "Enviar Mensagens"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número (com DDI)",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "latitude": {
                    "description": "Latitude",
                    "type": "number",
                    "example": -23.5505
                  },
                  "longitude": {
                    "description": "Longitude",
                    "type": "number",
                    "example": -46.6333
                  },
                  "name": {
                    "description": "Nome do local",
                    "type": "string",
                    "example": "Sede da empresa"
                  },
                  "address": {
                    "description": "Endereço",
                    "type": "string",
                    "example": "Av. Paulista, 1000 - São Paulo"
                  },
                  "delay": {
                    "description": "Delay (ms)",
                    "type": "number",
                    "example": 1200
                  },
                  "digitando": {
                    "description": "Exibe \"digitando...\" automatico proporcional ao tamanho da mensagem antes de enviar. Ligado por padrao (humaniza e reduz risco de bloqueio). Envie false para desligar e responder mais rapido. A resposta continua sincrona.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "number",
                  "latitude",
                  "longitude"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "messageId": "ABCDEF123456",
                  "status": "sent"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/send/location-button": {
      "post": {
        "operationId": "send_location_button",
        "summary": "Solicitar Localização",
        "description": "Envia uma mensagem com botao que pede a localizacao do usuario. O botao de compartilhar localizacao e adicionado automaticamente.",
        "tags": [
          "Enviar Mensagens"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número (com DDI)",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "text": {
                    "description": "Texto da mensagem",
                    "type": "string",
                    "example": "Compartilhe sua localização para entregarmos seu pedido:"
                  },
                  "digitando": {
                    "description": "Exibe \"digitando...\" automatico proporcional ao tamanho da mensagem antes de enviar. Ligado por padrao (humaniza e reduz risco de bloqueio). Envie false para desligar e responder mais rapido. A resposta continua sincrona.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "number",
                  "text"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "messageId": "ABCDEF123456",
                  "status": "sent"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/send/media": {
      "post": {
        "operationId": "send_media",
        "summary": "Enviar Mídia",
        "description": "Envia um arquivo de mídia para um contato. O arquivo deve estar acessível em uma URL pública.\n\nTipos disponíveis:\n• image: Imagem (JPG, PNG, GIF, WebP). Suporta legenda via text.\n• video: Vídeo (MP4, AVI, MOV). Suporta legenda via text.\n• audio: Áudio como arquivo (MP3, OGG, WAV). Aparece com ícone de arquivo de áudio.\n• ptt: Push-to-Talk: áudio que aparece como mensagem de voz (bolha de microfone). Ideal para humanizar automações.\n• myaudio: Áudio nativo do WhatsApp (OGG/Opus). Semelhante ao ptt, use quando já tiver o arquivo no formato correto.\n• ptv: Recado de vídeo (nota de vídeo redonda). Chega sempre em formato circular; vídeo 16:9 é cortado no centro. Ignora legenda (o campo text não aparece). Use MP4 H.264. Aceita durações longas (testado 15 a 180 s) e tamanho dentro do limite de mídia.\n• document: Documento (PDF, DOCX, XLSX, etc.). Use docName para definir o nome exibido no chat.\n• sticker: Figurinha animada ou estática (WebP).\n\nLimite de tamanho (envio por URL): imagem, vídeo e áudio até ~190 MB; documento até ~500 MB. Acima disso o WhatsApp recusa (HTTP 413 / erro de upload). Observação: ao enviar o arquivo em base64 no corpo da requisição pela API pública (/api/v1), o limite cai para ~2 MB. Por isso, para arquivos maiores, sempre envie por URL.",
        "tags": [
          "Enviar Mensagens"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número (com DDI)",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "type": {
                    "description": "Tipo de Mídia",
                    "type": "string",
                    "enum": [
                      "image",
                      "video",
                      "videoplay",
                      "audio",
                      "ptt",
                      "myaudio",
                      "ptv",
                      "document",
                      "sticker"
                    ],
                    "default": "image"
                  },
                  "file": {
                    "description": "URL do Arquivo",
                    "type": "string",
                    "example": "https://..."
                  },
                  "text": {
                    "description": "Legenda: imagens e vídeos",
                    "type": "string",
                    "example": "Descrição da mídia"
                  },
                  "mentions": {
                    "description": "Marcar membros (somente grupo)",
                    "type": "string",
                    "example": "all"
                  },
                  "docName": {
                    "description": "Nome do arquivo: obrigatório para document",
                    "type": "string",
                    "example": "arquivo.pdf"
                  },
                  "delay": {
                    "description": "Delay (ms)",
                    "type": "number",
                    "example": 1200
                  },
                  "digitando": {
                    "description": "Exibe \"digitando...\" automatico proporcional ao tamanho da mensagem antes de enviar. Ligado por padrao (humaniza e reduz risco de bloqueio). Envie false para desligar e responder mais rapido. A resposta continua sincrona.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "number",
                  "type",
                  "file"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "messageId": "ABCDEF123456",
                  "status": "sent"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/send/buttons": {
      "post": {
        "operationId": "send_buttons",
        "summary": "Enviar Botões de Resposta",
        "description": "Envia botões clicáveis (até 3). Cada objeto do array `buttons` vira um tipo diferente de botão conforme o campo usado:\n\n• `text` + `id` → botão de resposta rápida (contato clica, envia o texto)\n• `text` + `url` → botão que abre link externo\n• `text` + `phone` → botão de ligação\n• `text` + `copy` → botão que copia código pra área de transferência\n\nSem `image`, a mensagem sai só com texto + botões (header limpo). Com `image`, aparece uma imagem no topo. Limitação WhatsApp: misturar reply com url/phone/copy na mesma mensagem pode exibir aviso 'Abra no celular'.",
        "tags": [
          "Enviar Mensagens"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número do destinatário (com DDI)",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "text": {
                    "description": "Texto da mensagem",
                    "type": "string",
                    "example": "Como podemos ajudar?"
                  },
                  "buttons": {
                    "description": "Botões (até 3). Use text+id para reply, text+url para link, text+phone para ligar, text+copy para copiar código",
                    "example": [
                      {
                        "text": "Sim",
                        "id": "yes"
                      },
                      {
                        "text": "Nosso site",
                        "url": "https://exemplo.com"
                      },
                      {
                        "text": "Ligar",
                        "phone": "+5511999999999"
                      }
                    ]
                  },
                  "image": {
                    "description": "URL da imagem no topo (opcional)",
                    "type": "string",
                    "example": "https://exemplo.com/banner.jpg"
                  },
                  "footer": {
                    "description": "Texto do rodapé (opcional)",
                    "type": "string",
                    "example": "Escolha uma opção"
                  },
                  "delay": {
                    "description": "Atraso em ms antes de enviar (opcional)",
                    "type": "number",
                    "example": 1200
                  },
                  "digitando": {
                    "description": "Exibe \"digitando...\" automatico proporcional ao tamanho da mensagem antes de enviar. Ligado por padrao (humaniza e reduz risco de bloqueio). Envie false para desligar e responder mais rapido. A resposta continua sincrona.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "number",
                  "text",
                  "buttons"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "messageType": "InteractiveMessage",
                  "status": "Pending"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/send/list": {
      "post": {
        "operationId": "send_list",
        "summary": "Enviar Lista de Opções",
        "description": "Envia menu em lista com seções e itens selecionáveis. O contato toca no botão e escolhe uma opção.",
        "tags": [
          "Enviar Mensagens"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número do destinatário",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "text": {
                    "description": "Texto principal",
                    "type": "string",
                    "example": "Escolha uma opção:"
                  },
                  "choices": {
                    "description": "Opções: use \"[Seção]\" para cabeçalho e \"Item|id|descrição\" para cada item",
                    "example": [
                      "[Produtos]",
                      "Camiseta|p1|R$ 50",
                      "Calça|p2|R$ 120"
                    ]
                  },
                  "listButton": {
                    "description": "Texto do botão que abre a lista",
                    "type": "string",
                    "example": "Ver opções"
                  },
                  "footerText": {
                    "description": "Rodapé (opcional)",
                    "type": "string"
                  },
                  "digitando": {
                    "description": "Exibe \"digitando...\" automatico proporcional ao tamanho da mensagem antes de enviar. Ligado por padrao (humaniza e reduz risco de bloqueio). Envie false para desligar e responder mais rapido. A resposta continua sincrona.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "number",
                  "text",
                  "choices"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "messageType": "ListMessage",
                  "status": "Pending"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/send/poll": {
      "post": {
        "operationId": "send_poll",
        "summary": "Enviar Enquete",
        "description": "Envia enquete nativa do WhatsApp. Contatos votam e o resultado chega via webhook.\n\nEnquete (type poll): use choices (lista de opções) e selectableCount (quantas o usuário pode marcar; >1 = múltipla escolha). O WhatsApp aceita 12+ opções. Os votos chegam pelo webhook de mensagens como PollUpdateMessage com o campo vote já decifrado (texto da opção); em múltipla escolha vem a lista das opções atuais separada por vírgula, e voto removido vem vazio.",
        "tags": [
          "Enviar Mensagens"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número do destinatário",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "text": {
                    "description": "Pergunta da enquete",
                    "type": "string",
                    "example": "Qual o melhor dia?"
                  },
                  "choices": {
                    "description": "Opções de voto (array de strings)",
                    "example": [
                      "Segunda",
                      "Terça",
                      "Quarta"
                    ]
                  },
                  "selectableCount": {
                    "description": "Votos permitidos por pessoa (0 = ilimitado)",
                    "type": "string",
                    "default": "1"
                  },
                  "digitando": {
                    "description": "Exibe \"digitando...\" automatico proporcional ao tamanho da mensagem antes de enviar. Ligado por padrao (humaniza e reduz risco de bloqueio). Envie false para desligar e responder mais rapido. A resposta continua sincrona.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "number",
                  "text",
                  "choices"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "messageType": "PollCreationMessage",
                  "status": "Pending"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/send/pix-button": {
      "post": {
        "operationId": "send_pix_button",
        "summary": "Enviar Botão PIX",
        "description": "Envia um botão de pagamento PIX nativo do WhatsApp. O contato pode copiar a chave e pagar diretamente.",
        "tags": [
          "Enviar Mensagens"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "ID do chat para o qual a mensagem será enviada. Pode ser um número de telefone em formato internacional, um ID de grupo (`@g.us`), um ID de usuário (com `@s.whatsapp.net` ou `@lid`).",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "pixType": {
                    "description": "Tipo da chave PIX. Valores aceitos: CPF, CNPJ, PHONE, EMAIL ou EVP",
                    "type": "string",
                    "enum": [
                      "EMAIL",
                      "CPF",
                      "CNPJ",
                      "PHONE",
                      "EVP"
                    ],
                    "example": "EVP"
                  },
                  "pixKey": {
                    "description": "Valor da chave PIX (CPF/CNPJ/telefone/email/EVP)",
                    "type": "string",
                    "example": "123e4567-e89b-12d3-a456-426614174000"
                  },
                  "pixName": {
                    "description": "Nome exibido como recebedor do PIX (padrão \"Pix\" se vazio)",
                    "type": "string",
                    "example": "Loja Exemplo"
                  },
                  "async": {
                    "description": "Enfileira o envio para processamento assíncrono",
                    "type": "boolean"
                  },
                  "delay": {
                    "description": "Atraso em milissegundos antes do envio (exibe \"digitando...\" no WhatsApp)",
                    "type": "number",
                    "example": 1200
                  },
                  "readchat": {
                    "description": "Marca o chat como lido após enviar a mensagem",
                    "type": "boolean"
                  },
                  "readmessages": {
                    "description": "Marca mensagens recentes como lidas após o envio",
                    "type": "boolean"
                  },
                  "replyid": {
                    "description": "ID da mensagem que será respondida",
                    "type": "string"
                  },
                  "mentions": {
                    "description": "Lista de números mencionados separados por vírgula",
                    "type": "string"
                  },
                  "track_source": {
                    "description": "Origem de rastreamento (ex.: chatwoot, crm-interno)",
                    "type": "string"
                  },
                  "track_id": {
                    "description": "Identificador de rastreamento (aceita valores duplicados)",
                    "type": "string"
                  },
                  "digitando": {
                    "description": "Exibe \"digitando...\" automatico proporcional ao tamanho da mensagem antes de enviar. Ligado por padrao (humaniza e reduz risco de bloqueio). Envie false para desligar e responder mais rapido. A resposta continua sincrona.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "number",
                  "pixType",
                  "pixKey"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "messageId": "ABCDEF123456",
                  "status": "sent"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/send/request-payment": {
      "post": {
        "operationId": "send_request_payment",
        "summary": "Solicitar Pagamento",
        "description": "Envia uma solicitação de pagamento com o botão nativo \"Revisar e pagar\" do WhatsApp. É obrigatório enviar pelo menos um método de pagamento: `pixKey`, `boletoCode`, `paymentLink` ou `allowCards: true`. Sem isso, a API retorna erro.",
        "tags": [
          "Enviar Mensagens"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número (com DDI)",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "amount": {
                    "description": "Valor (BRL)",
                    "type": "number",
                    "example": 49.9
                  },
                  "pixKey": {
                    "description": "Chave PIX (CPF/CNPJ/telefone/email/EVP)",
                    "type": "string",
                    "example": "123e4567-e89b-12d3-a456-426614174000"
                  },
                  "pixType": {
                    "description": "Tipo da chave PIX",
                    "type": "string",
                    "enum": [
                      "EVP",
                      "CPF",
                      "CNPJ",
                      "PHONE",
                      "EMAIL"
                    ],
                    "default": "EVP"
                  },
                  "itemName": {
                    "description": "Nome do item",
                    "type": "string",
                    "example": "Assinatura Plano Ouro"
                  },
                  "invoiceNumber": {
                    "description": "Número da fatura",
                    "type": "string",
                    "example": "PED-123"
                  },
                  "title": {
                    "description": "Título do fluxo",
                    "type": "string",
                    "example": "Detalhes do pedido"
                  },
                  "footer": {
                    "description": "Rodapé",
                    "type": "string",
                    "example": "Loja Exemplo"
                  },
                  "pixName": {
                    "description": "Nome do recebedor (padrão: nome do perfil)",
                    "type": "string",
                    "example": "Loja Exemplo"
                  },
                  "text": {
                    "description": "Texto da mensagem",
                    "type": "string",
                    "example": "Pagamento referente ao pedido #123"
                  },
                  "paymentLink": {
                    "description": "Link de pagamento externo",
                    "type": "string",
                    "example": "https://pagamento.exemplo.com/123"
                  },
                  "fileUrl": {
                    "description": "URL de arquivo anexo",
                    "type": "string",
                    "example": "https://..."
                  },
                  "fileName": {
                    "description": "Nome do arquivo anexo",
                    "type": "string",
                    "example": "boleto.pdf"
                  },
                  "boletoCode": {
                    "description": "Código do boleto",
                    "type": "string",
                    "example": "34191.79001 01043.510047 91020.150008 8 87350026000"
                  },
                  "allowCards": {
                    "description": "Permitir cartão",
                    "type": "boolean"
                  },
                  "currency": {
                    "description": "Moeda",
                    "type": "string",
                    "example": "BRL"
                  },
                  "note": {
                    "description": "Nota / Observação",
                    "type": "string",
                    "example": "Pagamento referente ao pedido #123"
                  },
                  "digitando": {
                    "description": "Exibe \"digitando...\" automatico proporcional ao tamanho da mensagem antes de enviar. Ligado por padrao (humaniza e reduz risco de bloqueio). Envie false para desligar e responder mais rapido. A resposta continua sincrona.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "number",
                  "amount"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "messageId": "ABCDEF123456",
                  "status": "sent"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/send/status": {
      "post": {
        "operationId": "send_status",
        "summary": "Enviar Status / Story",
        "description": "Publica um status/story no WhatsApp (texto, imagem ou vídeo). Visível para todos os contatos por 24 horas.",
        "tags": [
          "Enviar Mensagens"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "type": {
                    "description": "Tipo",
                    "type": "string",
                    "enum": [
                      "text",
                      "image",
                      "video",
                      "audio",
                      "ptt"
                    ],
                    "default": "text"
                  },
                  "text": {
                    "description": "Texto (para tipo texto)",
                    "type": "string",
                    "example": "Olá mundo!"
                  },
                  "background_color": {
                    "description": "Cor de fundo (apenas tipo texto)",
                    "type": "string",
                    "enum": [
                      "1",
                      "2",
                      "3",
                      "4",
                      "5",
                      "6",
                      "7",
                      "8",
                      "9",
                      "10",
                      "11",
                      "12",
                      "13",
                      "14",
                      "15",
                      "16",
                      "17",
                      "18",
                      "19"
                    ],
                    "default": "19"
                  },
                  "font": {
                    "description": "Fonte (apenas tipo texto)",
                    "type": "string",
                    "enum": [
                      "0",
                      "1",
                      "2",
                      "3",
                      "4",
                      "5",
                      "6",
                      "7",
                      "8"
                    ],
                    "default": "0"
                  },
                  "file": {
                    "description": "URL do arquivo (imagem/vídeo/áudio)",
                    "type": "string",
                    "example": "https://..."
                  }
                },
                "required": [
                  "type"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "messageId": "ABCDEF123456",
                  "status": "sent"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/send/text": {
      "post": {
        "operationId": "send_text",
        "summary": "Enviar Texto",
        "description": "Envia uma mensagem de texto simples para um número de WhatsApp. O número deve incluir o código do país (DDI), por exemplo: 5511999999999.",
        "tags": [
          "Enviar Mensagens"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número (com DDI)",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "text": {
                    "description": "Mensagem",
                    "type": "string",
                    "example": "Olá! Tudo bem?"
                  },
                  "mentions": {
                    "description": "Marcar membros (somente grupo)",
                    "type": "string",
                    "example": "all"
                  },
                  "delay": {
                    "description": "Delay (ms)",
                    "type": "number",
                    "example": 1200
                  },
                  "replyid": {
                    "description": "ID da mensagem a responder",
                    "type": "string",
                    "example": "ABCDEF123456"
                  },
                  "digitando": {
                    "description": "Exibe \"digitando...\" automatico proporcional ao tamanho da mensagem antes de enviar. Ligado por padrao (humaniza e reduz risco de bloqueio). Envie false para desligar e responder mais rapido. A resposta continua sincrona.",
                    "type": "boolean"
                  }
                },
                "required": [
                  "number",
                  "text"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "messageId": "ABCDEF123456",
                  "status": "sent"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/chat/archive": {
      "post": {
        "operationId": "chat_archive",
        "summary": "Arquivar Chat",
        "description": "Arquiva uma conversa, ocultando-a da lista principal do WhatsApp.",
        "tags": [
          "Conversas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número ou JID do chat",
                    "type": "string",
                    "example": "5511999999999@s.whatsapp.net"
                  },
                  "archive": {
                    "description": "Arquivar",
                    "type": "boolean",
                    "default": true
                  }
                },
                "required": [
                  "number",
                  "archive"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/chat/block": {
      "post": {
        "operationId": "chat_block",
        "summary": "Bloquear / Desbloquear Contato",
        "description": "⚠️ ATENÇÃO: Bloqueia um contato. NÃO use block: false . isso pode DESCONECTAR a instância inteira (bug conhecido da WhatsApp). Para desbloquear, use o próprio WhatsApp.",
        "tags": [
          "Conversas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número (com DDI)",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "block": {
                    "description": "Ação",
                    "type": "boolean",
                    "default": true
                  }
                },
                "required": [
                  "number",
                  "block"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "response": "Blocked successfully",
                  "blockList": [
                    "5511999999999@s.whatsapp.net"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/chat/blocklist": {
      "get": {
        "operationId": "chat_blocklist",
        "summary": "Lista de Bloqueados",
        "description": "Retorna todos os contatos bloqueados pela instância.",
        "tags": [
          "Conversas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "blocked": [
                    "5511999999999@s.whatsapp.net"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/chat/delete": {
      "post": {
        "operationId": "chat_delete",
        "summary": "Deletar Chat",
        "description": "Deleta um chat inteiro. Pode limpar apenas no app ou também no banco de dados.",
        "tags": [
          "Conversas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número do chat no formato internacional.\nPara grupos use o ID completo do grupo.\n",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "deleteChatDB": {
                    "description": "Se true, deleta o chat do banco de dados",
                    "type": "boolean",
                    "example": false
                  },
                  "deleteMessagesDB": {
                    "description": "Se true, deleta todas as mensagens do chat do banco de dados",
                    "type": "boolean",
                    "example": false
                  },
                  "deleteChatWhatsApp": {
                    "description": "Se true, deleta o chat do WhatsApp.\nPara grupos, esta operação não é permitida e o chat será apenas limpo.\n",
                    "type": "boolean",
                    "example": false
                  },
                  "clearChatWhatsApp": {
                    "description": "Se true, limpa a conversa do chat no WhatsApp (sem sair do chat).\nFunciona para grupos e conversas individuais.\n",
                    "type": "boolean",
                    "example": false
                  }
                },
                "required": [
                  "number"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "actions": [],
                  "response": "Chat deletion process completed"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/chat/find": {
      "post": {
        "operationId": "chat_find",
        "summary": "Buscar Chats",
        "description": "Busca chats com filtros avançados: por nome, label, status, grupo, e mais.",
        "tags": [
          "Conversas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "operator": {
                    "description": "Operador lógico entre os filtros",
                    "type": "string",
                    "enum": [
                      "AND",
                      "OR"
                    ]
                  },
                  "sort": {
                    "description": "Ordenação (+/- campo, ex: -wa_lastMsgTimestamp)",
                    "type": "string",
                    "example": "-wa_lastMsgTimestamp"
                  },
                  "limit": {
                    "description": "Quantidade máxima de resultados a retornar",
                    "type": "number"
                  },
                  "offset": {
                    "description": "Número de registros a pular (para paginação)",
                    "type": "number"
                  },
                  "wa_fastid": {
                    "description": "ID interno do chat",
                    "type": "string"
                  },
                  "wa_chatid": {
                    "description": "ID do chat no WhatsApp",
                    "type": "string"
                  },
                  "wa_archived": {
                    "description": "Arquivado?",
                    "type": "boolean"
                  },
                  "wa_contactName": {
                    "description": "Nome do contato",
                    "type": "string"
                  },
                  "wa_name": {
                    "description": "Nome no WhatsApp",
                    "type": "string"
                  },
                  "name": {
                    "description": "Nome",
                    "type": "string"
                  },
                  "wa_isBlocked": {
                    "description": "Bloqueado?",
                    "type": "boolean"
                  },
                  "wa_isGroup": {
                    "description": "É grupo?",
                    "type": "boolean"
                  },
                  "wa_isGroup_admin": {
                    "description": "É admin do grupo?",
                    "type": "boolean"
                  },
                  "wa_isGroup_announce": {
                    "description": "Grupo apenas admins?",
                    "type": "boolean"
                  },
                  "wa_isGroup_member": {
                    "description": "É membro do grupo?",
                    "type": "boolean"
                  },
                  "wa_isPinned": {
                    "description": "Fixado?",
                    "type": "boolean"
                  },
                  "wa_label": {
                    "description": "ID da label aplicada ao chat. Use o valor retornado por `/labels`, não o nome da etiqueta.",
                    "type": "string"
                  },
                  "wa_notes": {
                    "description": "Tem notas?",
                    "type": "string"
                  },
                  "lead_tags": {
                    "description": "Tags do lead",
                    "type": "string"
                  },
                  "lead_isTicketOpen": {
                    "description": "Ticket aberto?",
                    "type": "boolean"
                  },
                  "lead_assignedAttendant_id": {
                    "description": "ID do atendente",
                    "type": "string"
                  },
                  "lead_status": {
                    "description": "Status do lead",
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "chats": [
                    {
                      "jid": "5511999999999@s.whatsapp.net",
                      "name": "João",
                      "unreadCount": 3
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/chat/mute": {
      "post": {
        "operationId": "chat_mute",
        "summary": "Silenciar Chat",
        "description": "Silencia notificações de uma conversa por um período em milissegundos. Exemplo: 86400000 = 24h.",
        "tags": [
          "Conversas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número ou JID do chat",
                    "type": "string",
                    "example": "5511999999999@s.whatsapp.net"
                  },
                  "duration": {
                    "description": "Duração (ms): ex: 86400000 = 24h",
                    "type": "number",
                    "example": 86400000
                  }
                },
                "required": [
                  "number"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/chat/notes": {
      "post": {
        "operationId": "chat_notes",
        "summary": "Ver Notas do Chat",
        "description": "Retorna as notas internas (privadas) associadas a um chat.",
        "tags": [
          "Conversas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "JID completo do chat",
                    "type": "string",
                    "example": "5511999999999@s.whatsapp.net"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "notes": "Notas internas do chat"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/chat/notes/edit": {
      "post": {
        "operationId": "chat_notes_edit",
        "summary": "Editar Notas do Chat",
        "description": "Edita as notas internas de um chat. Notas são visíveis apenas para você.",
        "tags": [
          "Conversas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "JID completo do chat",
                    "type": "string",
                    "example": "5511999999999@s.whatsapp.net"
                  },
                  "notes": {
                    "description": "Conteúdo da nota a persistir no chat",
                    "type": "string",
                    "example": "Cliente prefere contato no período da tarde"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/chat/notes/refresh": {
      "post": {
        "operationId": "chat_notes_refresh",
        "summary": "Recarregar Notas",
        "description": "Recarrega as notas internas do WhatsApp para o banco local.",
        "tags": [
          "Conversas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "JID completo do chat",
                    "type": "string",
                    "example": "5511999999999@s.whatsapp.net"
                  },
                  "force": {
                    "description": "Tente primeiro com `false`.\nUse `true` apenas quando a recarga padrão não funcionar bem,\npois esse modo faz uma nova leitura mais completa das notas.\n",
                    "type": "boolean",
                    "example": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/chat/pin": {
      "post": {
        "operationId": "chat_pin",
        "summary": "Fixar / Desfixar Chat",
        "description": "Fixa ou desfixa uma conversa no topo da lista de chats do WhatsApp.",
        "tags": [
          "Conversas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número ou JID do chat",
                    "type": "string",
                    "example": "5511999999999@s.whatsapp.net"
                  },
                  "pin": {
                    "description": "Ação",
                    "type": "boolean",
                    "default": true
                  }
                },
                "required": [
                  "number",
                  "pin"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/chat/read": {
      "post": {
        "operationId": "chat_read",
        "summary": "Marcar Chat como Lido",
        "description": "Marca todas as mensagens não lidas de uma conversa como lidas, zerando o contador de não lidas.",
        "tags": [
          "Conversas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número ou JID do chat",
                    "type": "string",
                    "example": "5511999999999@s.whatsapp.net"
                  }
                },
                "required": [
                  "number"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/message/delete": {
      "post": {
        "operationId": "message_delete",
        "summary": "Deletar Mensagem",
        "description": "Apaga uma mensagem enviada para todos os participantes do chat. So e possivel deletar mensagens enviadas pela propria instancia.",
        "tags": [
          "Conversas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID da mensagem",
                    "type": "string",
                    "example": "ABCDEF123456"
                  },
                  "number": {
                    "description": "Número do destinatário",
                    "type": "string",
                    "example": "5511999999999"
                  }
                },
                "required": [
                  "id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "Timestamp": "2026-04-06T04:50:40Z",
                  "ID": "3EB0C6074918E013090475",
                  "Sender": "..."
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/message/download": {
      "post": {
        "operationId": "message_download",
        "summary": "Download de Mídia",
        "description": "Faz o download de uma mídia recebida (imagem, vídeo, áudio, documento) a partir do ID da mensagem. O campo `id` deve vir do webhook ou do endpoint `/message/find`. Obs: o parâmetro transcribe é best-effort e pode não retornar a transcrição. Para transcrição garantida de áudios, use o módulo de IA.",
        "tags": [
          "Conversas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID da mensagem",
                    "type": "string",
                    "example": "7EB0F01D7244B421048F0706368376E0"
                  },
                  "return_link": {
                    "description": "Retornar URL pública do arquivo",
                    "type": "boolean",
                    "default": true
                  },
                  "return_base64": {
                    "description": "Retornar arquivo em base64",
                    "type": "boolean",
                    "default": false
                  },
                  "generate_mp3": {
                    "description": "Para áudios: retornar como MP3 (false = OGG)",
                    "type": "boolean",
                    "default": true
                  },
                  "transcribe": {
                    "description": "Transcrever áudio (best-effort: pode não retornar texto)",
                    "type": "boolean",
                    "default": false
                  }
                },
                "required": [
                  "id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "fileURL": "https://server.example.com/files/abc123.jpg",
                  "mimetype": "image/jpeg"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/message/edit": {
      "post": {
        "operationId": "message_edit",
        "summary": "Editar Mensagem",
        "description": "Edita o texto de uma mensagem previamente enviada. Aparece com indicador de editada para o destinatario. So funciona com mensagens enviadas pela propria instancia.",
        "tags": [
          "Conversas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID da mensagem",
                    "type": "string",
                    "example": "ABCDEF123456"
                  },
                  "number": {
                    "description": "Número do destinatário",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "text": {
                    "description": "Novo texto",
                    "type": "string",
                    "example": "Texto corrigido..."
                  }
                },
                "required": [
                  "id",
                  "number",
                  "text"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "id": "3EB0BB655F4F2AFA22FDE3",
                  "messageType": "ExtendedTextMessage",
                  "messageTimestamp": 1775450980468,
                  "status": "Pending"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/message/find": {
      "post": {
        "operationId": "message_find",
        "summary": "Histórico de Mensagens",
        "description": "Retorna o histórico de mensagens da instância. Filtre por `chatid` para buscar mensagens de uma conversa específica. Suporta paginação via `limit` e `offset`.",
        "tags": [
          "Conversas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chatid": {
                    "description": "ID do chat (JID)",
                    "type": "string",
                    "example": "5511999999999@s.whatsapp.net"
                  },
                  "id": {
                    "description": "ID de mensagem específica",
                    "type": "string",
                    "example": "ABCDEF123456"
                  },
                  "limit": {
                    "description": "Limite (padrão: 100)",
                    "type": "number",
                    "example": 100
                  },
                  "offset": {
                    "description": "Offset (paginação)",
                    "type": "number",
                    "example": 0
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "messages": [],
                  "total": 0
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/message/history-sync": {
      "post": {
        "operationId": "message_history_sync",
        "summary": "Sincronizar Histórico",
        "description": "Solicita sincronizacao de historico de mensagens antigas de um chat. As mensagens chegam via webhook/SSE.",
        "tags": [
          "Conversas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "messageid": {
                    "description": "ID da mensagem de referência usada para buscar mensagens mais antigas do chat",
                    "type": "string",
                    "example": "3EB01234567890ABCDEF"
                  },
                  "number": {
                    "description": "JID completo do chat",
                    "type": "string",
                    "example": "5511999999999@s.whatsapp.net"
                  },
                  "count": {
                    "description": "Quantidade desejada de mensagens no sync",
                    "type": "number",
                    "example": 20
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true,
                  "count": 50
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/message/markread": {
      "post": {
        "operationId": "message_markread",
        "summary": "Marcar como Lida",
        "description": "Marca uma ou mais mensagens como lidas. Envie um array de IDs.",
        "tags": [
          "Conversas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "IDs das mensagens",
                    "example": [
                      "3EB0538DA65A59F6D8A251"
                    ]
                  }
                },
                "required": [
                  "id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "results": [
                    {
                      "message_id": "5511999990000:3EB0CECA26BF34A157FC71",
                      "status": "success"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/message/presence": {
      "post": {
        "operationId": "message_presence",
        "summary": "Indicador de Digitando...",
        "description": "Mostra \"digitando...\" ou \"gravando áudio...\" para o contato. O indicador some automaticamente após alguns segundos.",
        "tags": [
          "Conversas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número (com DDI)",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "presence": {
                    "description": "Tipo",
                    "type": "string",
                    "enum": [
                      "composing",
                      "recording",
                      "paused"
                    ],
                    "default": "composing"
                  },
                  "delay": {
                    "description": "Duração (ms, máx. 300000)",
                    "type": "number",
                    "example": 3000
                  }
                },
                "required": [
                  "number",
                  "presence"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "response": "ok"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/message/react": {
      "post": {
        "operationId": "message_react",
        "summary": "Reagir com Emoji",
        "description": "Envia uma reação (emoji) a uma mensagem existente. Envie emoji vazio para REMOVER a reação. O id deve ser o messageId achatado no formato OWNER:MSGID (ex: 5511999990000:2A6E2F02CE4125FDBA1B): não use o formato Baileys concatenado com JID, vai dar 404. O webhook de confirmação chega com messageType=ReactionMessage e inclui o atalho 'reaction' no envelope.",
        "tags": [
          "Conversas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número do contato",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "id": {
                    "description": "ID da mensagem (formato OWNER:MSGID)",
                    "type": "string",
                    "example": "5511999990000:2A6E2F02CE4125FDBA1B"
                  },
                  "emoji": {
                    "description": "Emoji da reação (vazio = remover): alias: text",
                    "type": "string",
                    "example": "👍"
                  }
                },
                "required": [
                  "number",
                  "id",
                  "emoji"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "messageType": "ReactionMessage",
                  "status": "Pending"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/chat/ephemeral": {
      "post": {
        "operationId": "chat_ephemeral",
        "summary": "Mensagens Temporárias (conversa privada)",
        "description": "Liga ou desliga as mensagens temporárias (que somem sozinhas) numa conversa privada. Vale para as próximas mensagens da conversa. Duração em segundos, seguindo o padrão do WhatsApp: 0 desliga, 86400 = 24 horas, 604800 = 7 dias, 7776000 = 90 dias.",
        "tags": [
          "Conversas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número do contato (com DDI)",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "duration": {
                    "description": "Duração antes de sumir",
                    "type": "string",
                    "enum": [
                      "0",
                      "86400",
                      "604800",
                      "7776000"
                    ]
                  }
                },
                "required": [
                  "number",
                  "duration"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "status": "success"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/chat/check": {
      "post": {
        "operationId": "check_number",
        "summary": "Verificar Número",
        "description": "Verifica se um ou mais numeros estao registrados no WhatsApp. Retorna JID, nome verificado e status.",
        "tags": [
          "Contatos e Perfil"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "numbers": {
                    "description": "Números para verificar (array)",
                    "type": "string",
                    "example": "[\"5511999999999\", \"5521888888888\"]"
                  }
                },
                "required": [
                  "numbers"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "query": "5511999999999",
                    "isInWhatsapp": true,
                    "jid": "5511999999999@s.whatsapp.net"
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/chat/details": {
      "post": {
        "operationId": "chat_details",
        "summary": "Detalhes do Contato",
        "description": "Retorna detalhes completos de um contato: nome, foto, status, verificação, e-commerce.",
        "tags": [
          "Contatos e Perfil"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número do telefone ou ID do grupo",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "preview": {
                    "description": "Controla o tamanho da imagem de perfil retornada:\n- `true`: Retorna imagem em tamanho preview (menor, otimizada para listagens)\n- `false` (padrão): Retorna imagem em tamanho full (resolução original, maior qualidade)\n",
                    "type": "boolean"
                  }
                },
                "required": [
                  "number"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "jid": "5511999999999@s.whatsapp.net",
                  "name": "João",
                  "pushName": "João Silva",
                  "profilePicUrl": "https://..."
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/contact/add": {
      "post": {
        "operationId": "contact_add",
        "summary": "Adicionar Contato",
        "description": "Adiciona um novo contato à agenda do WhatsApp conectado com nome e número.",
        "tags": [
          "Contatos e Perfil"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "phone": {
                    "description": "Telefone (com DDI)",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "name": {
                    "description": "Nome completo",
                    "type": "string",
                    "example": "João Silva"
                  }
                },
                "required": [
                  "phone",
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/contact/remove": {
      "post": {
        "operationId": "contact_remove",
        "summary": "Remover Contato",
        "description": "Remove um contato da agenda do WhatsApp.",
        "tags": [
          "Contatos e Perfil"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número de telefone no formato internacional com código do país obrigatório. \nPara Brasil, deve começar com 55. Aceita variações com/sem símbolo +, \ncom/sem parênteses, com/sem hífen e com/sem espaços. Também aceita formato \nJID do WhatsApp (@s.whatsapp.net). Não aceita contatos comerciais (@lid) \nnem grupos (@g.us).\n",
                    "type": "string",
                    "example": "5511999999999"
                  }
                },
                "required": [
                  "number"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/contacts": {
      "get": {
        "operationId": "contacts_get",
        "summary": "Listar Contatos (Rápido)",
        "description": "Lista todos os contatos salvos na agenda do WhatsApp.",
        "tags": [
          "Contatos e Perfil"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "jid": "5511999999999@s.whatsapp.net",
                    "name": "João"
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/contacts/list": {
      "post": {
        "operationId": "find_contacts",
        "summary": "Listar Contatos",
        "description": "Busca contatos com paginacao. Use limit e offset para navegar.",
        "tags": [
          "Contatos e Perfil"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "limit": {
                    "description": "Limite",
                    "type": "number",
                    "example": 50
                  },
                  "offset": {
                    "description": "Offset",
                    "type": "number",
                    "example": 0
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "contacts": [
                    {
                      "jid": "5511999999999@s.whatsapp.net",
                      "contact_name": "João Silva"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/profile/image": {
      "post": {
        "operationId": "profile_image",
        "summary": "Alterar Foto",
        "description": "Altera a imagem de perfil da sua instancia. Envie URL, base64 ou \"remove\" para remover.",
        "tags": [
          "Contatos e Perfil"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "image": {
                    "description": "URL, base64 ou \"remove\"",
                    "type": "string",
                    "example": "https://exemplo.com/logo.jpg"
                  }
                },
                "required": [
                  "image"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/profile/name": {
      "post": {
        "operationId": "profile_name",
        "summary": "Alterar Nome",
        "description": "Altera o nome do perfil da sua instancia no WhatsApp.",
        "tags": [
          "Contatos e Perfil"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "description": "Novo nome (máx. 25 caracteres)",
                    "type": "string",
                    "example": "Minha Empresa"
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/community/create": {
      "post": {
        "operationId": "community_create",
        "summary": "Criar Comunidade",
        "description": "Cria uma Comunidade do WhatsApp, estrutura que agrupa multiplos grupos sob um mesmo canal de anuncios central. O numero conectado sera o dono da comunidade.",
        "tags": [
          "Grupos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "description": "Nome da comunidade",
                    "type": "string",
                    "example": "Comunidade da Empresa"
                  },
                  "description": {
                    "description": "Descrição",
                    "type": "string",
                    "example": "Descrição da comunidade"
                  },
                  "participants": {
                    "description": "Participantes (números com DDI)",
                    "example": [
                      "5511999999999"
                    ]
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "JID": "120363000000000001@g.us",
                  "Name": "Comunidade da Empresa",
                  "IsParent": true,
                  "DefaultSubGroupId": "120363000000000002@g.us",
                  "Participants": [
                    {
                      "JID": "...",
                      "IsAdmin": true,
                      "IsSuperAdmin": true
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/community/editgroups": {
      "post": {
        "operationId": "community_editgroups",
        "summary": "Gerenciar Grupos da Comunidade",
        "description": "Adiciona ou remove grupos de uma comunidade existente. Use action: add ou action: remove com o array de JIDs de grupos.",
        "tags": [
          "Grupos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "community": {
                    "description": "JID da comunidade",
                    "type": "string",
                    "example": "120363000000000001@g.us"
                  },
                  "action": {
                    "description": "Ação",
                    "type": "string",
                    "enum": [
                      "add",
                      "remove"
                    ],
                    "default": "add"
                  },
                  "groups": {
                    "description": "JIDs dos grupos (JSON array)",
                    "example": [
                      "120363000000000000@g.us"
                    ]
                  }
                },
                "required": [
                  "community",
                  "action",
                  "groups"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "failed": null,
                  "message": "community updated",
                  "success": null
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/group/create": {
      "post": {
        "operationId": "create_group",
        "summary": "Criar Grupo",
        "description": "Cria um novo grupo do WhatsApp com os participantes indicados. O número conectado é automaticamente adicionado como administrador. Nome: mín. 1, máx. 100 caracteres. Máximo de 50 participantes.",
        "tags": [
          "Grupos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "description": "Nome do Grupo",
                    "type": "string",
                    "example": "Meu Time"
                  },
                  "participants": {
                    "description": "Participantes (JSON array de números com DDI)",
                    "type": "string",
                    "example": "[\"5511999990001\",\"5511999990002\"]"
                  }
                },
                "required": [
                  "name",
                  "participants"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "groupJID": "120363000000000000@g.us",
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/group/info": {
      "post": {
        "operationId": "group_info",
        "summary": "Informações do Grupo",
        "description": "Retorna detalhes completos de um grupo: nome, descrição, participantes, admins, data de criação e configurações. Use `getInviteLink: true` para incluir o link de convite na resposta.",
        "tags": [
          "Grupos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "groupjid": {
                    "description": "ID do Grupo (@g.us)",
                    "type": "string",
                    "example": "120363000000000000@g.us"
                  },
                  "getInviteLink": {
                    "description": "Incluir link de convite",
                    "type": "boolean",
                    "default": false
                  }
                },
                "required": [
                  "groupjid"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "id": "120363000000000000@g.us",
                  "name": "Meu Grupo",
                  "description": "Descrição",
                  "inviteLink": "https://chat.whatsapp.com/...",
                  "participants": [
                    {
                      "id": "5511...@s.whatsapp.net",
                      "isAdmin": true
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/group/inviteInfo": {
      "post": {
        "operationId": "group_inviteInfo",
        "summary": "Info pelo Convite",
        "description": "Obtem informacoes de um grupo pelo codigo ou link de convite.",
        "tags": [
          "Grupos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "invitecode": {
                    "description": "Código de convite ou URL completo do grupo.\nPode ser um código curto ou a URL completa do WhatsApp.\n",
                    "type": "string"
                  }
                },
                "required": [
                  "invitecode"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "jid": "120363000000000000@g.us",
                  "name": "Meu Grupo",
                  "size": 15
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/group/join": {
      "post": {
        "operationId": "group_join",
        "summary": "Entrar em Grupo via Link",
        "description": "Faz a instância entrar em um grupo utilizando um link de convite do WhatsApp. Aceita a URL completa (https://chat.whatsapp.com/...) ou apenas o código.",
        "tags": [
          "Grupos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "invitecode": {
                    "description": "Código ou URL de convite",
                    "type": "string",
                    "example": "https://chat.whatsapp.com/XXXXXXXXXXXXXXXX"
                  }
                },
                "required": [
                  "invitecode"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "success": true,
                  "groupJID": "120363000000000000@g.us"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/group/leave": {
      "post": {
        "operationId": "leave_group",
        "summary": "Sair do Grupo",
        "description": "Remove o número conectado do grupo especificado. Esta ação não pode ser desfeita pelo sistema. Funciona também para sair de comunidades.",
        "tags": [
          "Grupos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "groupjid": {
                    "description": "ID do Grupo (@g.us)",
                    "type": "string",
                    "example": "120363000000000000@g.us"
                  }
                },
                "required": [
                  "groupjid"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "response": "Group leave successful"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/group/list": {
      "get": {
        "operationId": "list_groups",
        "summary": "Listar Grupos",
        "description": "Lista todos os grupos do WhatsApp. Retorna array com JID, nome e dados de cada grupo.",
        "tags": [
          "Grupos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "groups": [
                    {
                      "id": "120363000000000000@g.us",
                      "name": "Meu Grupo"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      },
      "post": {
        "operationId": "group_list",
        "summary": "Buscar Grupos",
        "description": "Lista grupos com opcao de incluir participantes. Retorna objeto com array \"groups\".",
        "tags": [
          "Grupos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "getParticipants": {
                    "description": "Incluir participantes",
                    "type": "boolean",
                    "default": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/group/resetInviteCode": {
      "post": {
        "operationId": "group_reset_invite",
        "summary": "Resetar Código de Convite",
        "description": "Gera um novo codigo de convite para o grupo. O link anterior sera invalidado.",
        "tags": [
          "Grupos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "groupjid": {
                    "description": "ID do Grupo (@g.us)",
                    "type": "string",
                    "example": "120363000000000000@g.us"
                  }
                },
                "required": [
                  "groupjid"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "InviteLink": "https://chat.whatsapp.com/YYYYYYYYYYYYYYYY"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/group/updateAnnounce": {
      "post": {
        "operationId": "group_update_announce",
        "summary": "Modo Somente Admins",
        "description": "Ativa ou desativa o modo em que apenas administradores podem enviar mensagens. Ideal para canais de comunicação unidirecional.",
        "tags": [
          "Grupos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "groupjid": {
                    "description": "ID do Grupo (@g.us)",
                    "type": "string",
                    "example": "120363000000000000@g.us"
                  },
                  "announce": {
                    "description": "Somente admins",
                    "type": "boolean",
                    "default": true
                  }
                },
                "required": [
                  "groupjid",
                  "announce"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/group/updateDescription": {
      "post": {
        "operationId": "group_update_description",
        "summary": "Alterar Descrição do Grupo",
        "description": "Altera a descricao do grupo. Descricao vazia nao e permitida.",
        "tags": [
          "Grupos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "groupjid": {
                    "description": "ID do Grupo (@g.us)",
                    "type": "string",
                    "example": "120363000000000000@g.us"
                  },
                  "description": {
                    "description": "Nova descrição (máx. 512 caracteres)",
                    "type": "string",
                    "example": "Descrição do grupo..."
                  }
                },
                "required": [
                  "groupjid",
                  "description"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/group/updateImage": {
      "post": {
        "operationId": "group_update_image",
        "summary": "Alterar Foto do Grupo",
        "description": "Altera a imagem do grupo. Envie URL da imagem ou \"remove\" para remover.",
        "tags": [
          "Grupos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "groupjid": {
                    "description": "ID do Grupo (@g.us)",
                    "type": "string",
                    "example": "120363000000000000@g.us"
                  },
                  "image": {
                    "description": "URL, base64 ou \"remove\"",
                    "type": "string",
                    "example": "https://exemplo.com/foto.jpg ou \"remove\""
                  }
                },
                "required": [
                  "groupjid",
                  "image"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/group/updateLocked": {
      "post": {
        "operationId": "group_update_locked",
        "summary": "Bloquear Edição do Grupo",
        "description": "Quando ativado, apenas administradores podem alterar nome, foto e descrição do grupo.",
        "tags": [
          "Grupos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "groupjid": {
                    "description": "ID do Grupo (@g.us)",
                    "type": "string",
                    "example": "120363000000000000@g.us"
                  },
                  "locked": {
                    "description": "Bloquear edição",
                    "type": "boolean",
                    "default": true
                  }
                },
                "required": [
                  "groupjid",
                  "locked"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/group/updateName": {
      "post": {
        "operationId": "group_update_name",
        "summary": "Renomear Grupo",
        "description": "Altera o nome de exibição do grupo. Mín. 1 e máx. 25 caracteres. Requer que o número conectado seja administrador.",
        "tags": [
          "Grupos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "groupjid": {
                    "description": "ID do Grupo (@g.us)",
                    "type": "string",
                    "example": "120363000000000000@g.us"
                  },
                  "name": {
                    "description": "Novo nome (máx. 25 caracteres)",
                    "type": "string",
                    "example": "Nome do grupo"
                  }
                },
                "required": [
                  "groupjid",
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/group/updateParticipants": {
      "post": {
        "operationId": "group_participants",
        "summary": "Gerenciar Participantes",
        "description": "Gerencia participantes do grupo. Adicionar, remover, promover ou rebaixar.",
        "tags": [
          "Grupos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "groupjid": {
                    "description": "ID do Grupo (@g.us)",
                    "type": "string",
                    "example": "120363000000000000@g.us"
                  },
                  "action": {
                    "description": "Ação",
                    "type": "string",
                    "enum": [
                      "add",
                      "remove",
                      "promote",
                      "demote",
                      "approve",
                      "reject"
                    ],
                    "default": "add"
                  },
                  "participants": {
                    "description": "Participantes (JSON array de números com DDI)",
                    "type": "string",
                    "example": "[\"5511999990003\"]"
                  }
                },
                "required": [
                  "groupjid",
                  "action",
                  "participants"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/group/ephemeral": {
      "post": {
        "operationId": "group_ephemeral",
        "summary": "Mensagens Temporárias (grupo)",
        "description": "Liga ou desliga as mensagens temporárias no grupo. Duração em segundos, padrão do WhatsApp: 0 desliga, 86400 = 24 horas, 604800 = 7 dias, 7776000 = 90 dias.",
        "tags": [
          "Grupos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "groupjid": {
                    "description": "JID do grupo",
                    "type": "string",
                    "example": "120363123456789012@g.us"
                  },
                  "duration": {
                    "description": "Duração antes de sumir",
                    "type": "string",
                    "enum": [
                      "0",
                      "86400",
                      "604800",
                      "7776000"
                    ]
                  }
                },
                "required": [
                  "groupjid",
                  "duration"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "status": "success"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/group/updateJoinApproval": {
      "post": {
        "operationId": "group_join_approval",
        "summary": "Exigir Aprovação para Entrar",
        "description": "Define se a entrada de novos membros no grupo precisa da aprovação de um administrador.",
        "tags": [
          "Grupos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "groupjid": {
                    "description": "JID do grupo",
                    "type": "string",
                    "example": "120363123456789012@g.us"
                  },
                  "IsJoinApprovalRequired": {
                    "description": "Exigir aprovação para entrar",
                    "type": "boolean"
                  }
                },
                "required": [
                  "groupjid",
                  "IsJoinApprovalRequired"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "status": "success"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/group/updateMemberAddMode": {
      "post": {
        "operationId": "group_member_add_mode",
        "summary": "Quem Pode Adicionar Membros",
        "description": "Define quem pode adicionar novos membros ao grupo: só administradores ou qualquer participante.",
        "tags": [
          "Grupos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "groupjid": {
                    "description": "JID do grupo",
                    "type": "string",
                    "example": "120363123456789012@g.us"
                  },
                  "MemberAddMode": {
                    "description": "Quem pode adicionar",
                    "type": "string",
                    "enum": [
                      "admin_add",
                      "all_member_add"
                    ]
                  }
                },
                "required": [
                  "groupjid",
                  "MemberAddMode"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "status": "success"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/admin/accept": {
      "post": {
        "operationId": "newsletter_admin_accept",
        "summary": "Aceitar Convite de Admin",
        "description": "Aceita um convite para ser admin de um canal.",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID do canal/contato",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/admin/invite": {
      "post": {
        "operationId": "newsletter_admin_invite",
        "summary": "Convidar Admin do Canal",
        "description": "Convida um número para ser admin de um canal. (Nota: pode retornar erro GraphQL dependendo da versão da WhatsApp)",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID do canal/contato",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  },
                  "phone": {
                    "description": "Número (com DDI)",
                    "type": "string",
                    "example": "5511999999999"
                  }
                },
                "required": [
                  "phone"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/admin/remove": {
      "post": {
        "operationId": "newsletter_admin_remove",
        "summary": "Remover Admin do Canal",
        "description": "Remove um admin de um canal. (Nota: pode retornar erro GraphQL dependendo da versão da WhatsApp)",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID do canal/contato",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  },
                  "phone": {
                    "description": "Número (com DDI)",
                    "type": "string",
                    "example": "5511999999999"
                  }
                },
                "required": [
                  "phone"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/admin/revoke": {
      "post": {
        "operationId": "newsletter_admin_revoke",
        "summary": "Revogar Convite de Admin",
        "description": "Revoga um convite de admin pendente. (Nota: pode retornar erro GraphQL dependendo da versão da WhatsApp)",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID do canal/contato",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  },
                  "phone": {
                    "description": "Número (com DDI)",
                    "type": "string",
                    "example": "5511999999999"
                  }
                },
                "required": [
                  "phone"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/create": {
      "post": {
        "operationId": "newsletter_create",
        "summary": "Criar Canal",
        "description": "Cria um novo canal (newsletter) do WhatsApp.",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "description": "Nome",
                    "type": "string",
                    "example": "Canal de Promoções"
                  },
                  "description": {
                    "description": "Descrição",
                    "type": "string",
                    "example": "Ofertas e novidades da loja"
                  },
                  "picture": {
                    "description": "URL, base64 puro ou data URI da imagem do canal.",
                    "type": "string",
                    "example": "https://example.com/newsletter.png"
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "id": "123",
                  "jid": "120363...@newsletter"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/delete": {
      "post": {
        "operationId": "newsletter_delete",
        "summary": "Deletar Canal",
        "description": "Deleta um canal que você administra.",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID do canal/contato",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/description": {
      "post": {
        "operationId": "newsletter_description",
        "summary": "Alterar Descrição do Canal",
        "description": "Atualiza a descrição de um canal. (Nota: pode retornar erro GraphQL dependendo da versão da WhatsApp)",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID do canal/contato",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  },
                  "description": {
                    "description": "Descrição",
                    "type": "string",
                    "example": "Atualizações, ofertas e novidades"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/follow": {
      "post": {
        "operationId": "newsletter_follow",
        "summary": "Seguir Canal",
        "description": "Segue um canal para receber suas publicações.",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID do canal/contato",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/info": {
      "post": {
        "operationId": "newsletter_info",
        "summary": "Info do Canal",
        "description": "Obtém informações detalhadas de um canal.",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID numérico do canal. Se informado sem domínio, será convertido para `@newsletter`.",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID completo do canal.",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "id": "123",
                  "name": "Meu Canal",
                  "description": "...",
                  "subscribers": 150
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/link": {
      "post": {
        "operationId": "newsletter_link",
        "summary": "Buscar Canal por Link",
        "description": "Busca informações de um canal pelo link/chave de convite.",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "key": {
                    "description": "Chave do convite do canal.",
                    "type": "string",
                    "example": "AbCdEfGhIjKlMn"
                  }
                },
                "required": [
                  "key"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "id": "123",
                  "name": "Canal",
                  "jid": "120363...@newsletter"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/list": {
      "get": {
        "operationId": "newsletter_list_get",
        "summary": "Listar Canais",
        "description": "Lista todos os canais em que a instância está inscrita.",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "newsletters": []
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/messages": {
      "post": {
        "operationId": "newsletter_messages",
        "summary": "Mensagens do Canal",
        "description": "Busca mensagens publicadas em um canal.",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID numérico do canal. Se informado sem domínio, será convertido para `@newsletter`.",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID completo do canal.",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  },
                  "count": {
                    "description": "Quantidade de mensagens/posts a buscar.",
                    "type": "number",
                    "example": 20
                  },
                  "beforeid": {
                    "description": "Retorna mensagens anteriores ao `serverid` informado.\nUse para paginação retroativa.\n",
                    "type": "number",
                    "example": 12345
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "messages": []
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/messages/delete": {
      "post": {
        "operationId": "newsletter_messages_delete",
        "summary": "Deletar Mensagem do Canal",
        "description": "Deleta uma mensagem de um canal que você administra.",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID numérico do canal. Se informado sem domínio, será convertido para `@newsletter`.",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID completo do canal.",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  },
                  "messageid": {
                    "description": "ID lógico da mensagem no canal.",
                    "type": "string",
                    "example": "3EB0B4302B3A8A52F7A1"
                  },
                  "serverid": {
                    "description": "Identificador sequencial do post no canal.",
                    "type": "number",
                    "example": 12345
                  },
                  "count": {
                    "description": "Quantidade de mensagens buscadas por página ao localizar o post.",
                    "type": "number",
                    "example": 100
                  },
                  "maxpages": {
                    "description": "Quantidade máxima de páginas buscadas ao localizar o post.",
                    "type": "number",
                    "example": 5
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/messages/edit": {
      "post": {
        "operationId": "newsletter_messages_edit",
        "summary": "Editar Mensagem do Canal",
        "description": "Edita uma mensagem recente de um canal que você administra.",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID numérico do canal. Se informado sem domínio, será convertido para `@newsletter`.",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID completo do canal.",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  },
                  "messageid": {
                    "description": "ID lógico da mensagem no canal.",
                    "type": "string",
                    "example": "3EB0B4302B3A8A52F7A1"
                  },
                  "serverid": {
                    "description": "Identificador sequencial do post no canal.",
                    "type": "number",
                    "example": 12345
                  },
                  "text": {
                    "description": "Novo texto ou nova legenda do post.",
                    "type": "string",
                    "example": "Post atualizado"
                  },
                  "count": {
                    "description": "Quantidade de mensagens buscadas por página ao localizar o post.",
                    "type": "number",
                    "example": 100
                  },
                  "maxpages": {
                    "description": "Quantidade máxima de páginas buscadas ao localizar o post.",
                    "type": "number",
                    "example": 5
                  }
                },
                "required": [
                  "text"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/mute": {
      "post": {
        "operationId": "newsletter_mute",
        "summary": "Silenciar Canal",
        "description": "Silencia notificações de um canal.",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID do canal/contato",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/name": {
      "post": {
        "operationId": "newsletter_name",
        "summary": "Alterar Nome do Canal",
        "description": "Atualiza o nome de um canal. (Nota: pode retornar erro GraphQL dependendo da versão da WhatsApp)",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID do canal/contato",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  },
                  "name": {
                    "description": "Nome",
                    "type": "string",
                    "example": "Canal de Promoções VIP"
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/owner/transfer": {
      "post": {
        "operationId": "newsletter_owner_transfer",
        "summary": "Transferir Dono do Canal",
        "description": "Transfere a propriedade do canal para outro número.",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID do canal/contato",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  },
                  "phone": {
                    "description": "Número (com DDI)",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "quitAdmin": {
                    "description": "Sair como admin após transferir",
                    "type": "boolean",
                    "example": false
                  }
                },
                "required": [
                  "phone"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/picture": {
      "post": {
        "operationId": "newsletter_picture",
        "summary": "Alterar Foto do Canal",
        "description": "Atualiza a foto de um canal. (Nota: pode retornar erro GraphQL dependendo da versão da WhatsApp)",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID do canal/contato",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  },
                  "picture": {
                    "description": "URL da imagem",
                    "type": "string",
                    "example": "https://example.com/newsletter.png"
                  }
                },
                "required": [
                  "picture"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/reaction": {
      "post": {
        "operationId": "newsletter_reaction",
        "summary": "Reagir a Post do Canal",
        "description": "Reage a um post de um canal.",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID do canal/contato",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  },
                  "serverid": {
                    "description": "Server ID (número inteiro)",
                    "type": "number",
                    "example": 12345
                  },
                  "reaction": {
                    "description": "Emoji de reação",
                    "type": "string",
                    "example": "🔥"
                  },
                  "reactionmessageid": {
                    "description": "ID da mensagem de reação",
                    "type": "string",
                    "example": "3EB0AABBCCDD"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/search": {
      "post": {
        "operationId": "newsletter_search",
        "summary": "Pesquisar Canais",
        "description": "Pesquisa canais públicos por texto, país ou categoria.",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "limit": {
                    "description": "Limite de resultados",
                    "type": "number",
                    "example": 20
                  },
                  "view": {
                    "description": "Tipo de visualização",
                    "type": "string",
                    "example": "RECOMMENDED"
                  },
                  "countryCodes": {
                    "description": "Códigos de país",
                    "example": [
                      "BR"
                    ]
                  },
                  "searchText": {
                    "description": "Texto de busca",
                    "type": "string",
                    "example": "promo"
                  },
                  "after": {
                    "description": "Cursor (paginação)",
                    "type": "string",
                    "example": "YXJyYXljb25uZWN0aW9uOjE5"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "results": []
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/settings": {
      "post": {
        "operationId": "newsletter_settings",
        "summary": "Configurações do Canal",
        "description": "Atualiza configurações do canal (ex: códigos de reação permitidos). (Nota: pode retornar erro GraphQL dependendo da versão da WhatsApp)",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID do canal/contato",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  },
                  "reactionCodes": {
                    "description": "Códigos de reação permitidos",
                    "type": "string",
                    "example": "basic"
                  }
                },
                "required": [
                  "reactionCodes"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/subscribe": {
      "post": {
        "operationId": "newsletter_subscribe",
        "summary": "Assinar Updates do Canal",
        "description": "Assina updates temporários de um canal para receber notificações.",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID do canal/contato",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/unfollow": {
      "post": {
        "operationId": "newsletter_unfollow",
        "summary": "Deixar de Seguir",
        "description": "Deixa de seguir um canal.",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID do canal/contato",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/unmute": {
      "post": {
        "operationId": "newsletter_unmute",
        "summary": "Reativar Canal",
        "description": "Reativa notificações de um canal.",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID do canal/contato",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/updates": {
      "post": {
        "operationId": "newsletter_updates",
        "summary": "Updates do Canal",
        "description": "Busca atualizações de mensagens de um canal. (Nota: pode retornar erro GraphQL dependendo da versão da WhatsApp)",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID numérico do canal. Se informado sem domínio, será convertido para `@newsletter`.",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID completo do canal.",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  },
                  "count": {
                    "description": "Quantidade máxima de updates retornados.",
                    "type": "number",
                    "example": 50
                  },
                  "afterid": {
                    "description": "Retorna apenas updates posteriores ao `serverid` informado.",
                    "type": "number",
                    "example": 12345
                  },
                  "since": {
                    "description": "Timestamp de corte.\n- Se maior que `1000000000000`, é interpretado como milissegundos.\n- Caso contrário, é interpretado como segundos.\n",
                    "type": "number",
                    "example": 1710000000
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/newsletter/viewed": {
      "post": {
        "operationId": "newsletter_viewed",
        "summary": "Marcar como Visualizado",
        "description": "Marca posts do canal como visualizados.",
        "tags": [
          "Newsletters e Canais"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID",
                    "type": "string",
                    "example": "120363123456789012"
                  },
                  "jid": {
                    "description": "JID do canal/contato",
                    "type": "string",
                    "example": "120363123456789012@newsletter"
                  },
                  "serverids": {
                    "description": "Server IDs (array de números inteiros, ex: [1, 2, 3])",
                    "example": [
                      1,
                      2,
                      3
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/sender/advanced": {
      "post": {
        "operationId": "sender_advanced",
        "summary": "Disparar Campanha em Lote",
        "description": "Dispara mensagens em lote com conteudo individualizado por destinatario. Cada item do array messages pode ter numero e texto diferentes.",
        "tags": [
          "Campanhas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "messages": {
                    "description": "Mensagens (array de objetos)",
                    "type": "string",
                    "example": "[{\"number\":\"5511999999999\",\"text\":\"Olá!\"}]"
                  },
                  "delayMin": {
                    "description": "Delay mínimo (segundos)",
                    "type": "number",
                    "example": 1
                  },
                  "delayMax": {
                    "description": "Delay máximo (segundos)",
                    "type": "number",
                    "example": 5
                  },
                  "folder_id": {
                    "description": "ID da pasta",
                    "type": "string",
                    "example": "folder_abc123"
                  },
                  "info": {
                    "description": "Informacoes adicionais sobre a campanha",
                    "type": "string",
                    "example": "Campanha lancamento"
                  },
                  "scheduled_for": {
                    "description": "Agendar para (timestamp em milissegundos ou minutos a partir de agora)",
                    "type": "number",
                    "example": 1
                  }
                },
                "required": [
                  "messages"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "count": 1,
                  "folder_id": "r5eb3b483c43f69",
                  "status": "queued"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/sender/clearall": {
      "delete": {
        "operationId": "sender_clearall_delete",
        "summary": "Limpar Toda a Fila",
        "description": "Limpa toda a fila de mensagens, incluindo pendentes e em andamento.",
        "tags": [
          "Campanhas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "folders_deleted": 0,
                  "messages_deleted": 0,
                  "status": "processed"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/sender/cleardone": {
      "post": {
        "operationId": "sender_cleardone",
        "summary": "Limpar Campanhas Concluídas",
        "description": "Remove da lista todas as campanhas com status concluído dentro da pasta informada.",
        "tags": [
          "Campanhas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "folder_id": {
                    "description": "ID da pasta de campanha",
                    "type": "string",
                    "example": "folder_abc123"
                  }
                },
                "required": [
                  "folder_id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "status": "cleanup started"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/sender/edit": {
      "post": {
        "operationId": "sender_edit",
        "summary": "Controlar Campanha",
        "description": "Controla uma campanha de envio em massa: pausar, retomar ou cancelar.",
        "tags": [
          "Campanhas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "folder_id": {
                    "description": "Identificador único da campanha de envio",
                    "type": "string",
                    "example": "folder_123"
                  },
                  "action": {
                    "description": "Ação na campanha",
                    "type": "string",
                    "enum": [
                      "stop",
                      "continue",
                      "delete"
                    ],
                    "example": "stop"
                  }
                },
                "required": [
                  "folder_id",
                  "action"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "message": "Folder deletion has been initiated",
                  "status": "deleting"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/sender/listfolders": {
      "get": {
        "operationId": "sender_listfolders_get",
        "summary": "Listar Campanhas",
        "description": "Lista todas as campanhas/pastas de envio em massa. Retorna array direto.",
        "tags": [
          "Campanhas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "id": "r5819c9fba43b98",
                    "info": "",
                    "status": "scheduled",
                    "scheduled_for": 1775449285668,
                    "delayMax": 3,
                    "delayMin": 1,
                    "log_delivered": 0,
                    "log_failed": 0,
                    "log_played": 0,
                    "log_read": 0,
                    "log_sucess": 0,
                    "log_total": 1,
                    "owner": "5511999999999"
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/sender/listmessages": {
      "post": {
        "operationId": "sender_listmessages",
        "summary": "Listar Mensagens da Campanha",
        "description": "Retorna as mensagens de uma campanha especifica com status de envio e paginacao.",
        "tags": [
          "Campanhas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "folder_id": {
                    "description": "ID da pasta de campanha",
                    "type": "string",
                    "example": "folder_abc123"
                  }
                },
                "required": [
                  "folder_id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "messages": [
                    {
                      "id": "5511999990000:3EB01C21C13D0C4BA33F40",
                      "chatid": "5511999990000@s.whatsapp.net",
                      "status": "Sent",
                      "text": "Teste",
                      "messageType": "Conversation",
                      "send_folder_id": "r5819c9fba43b98"
                    }
                  ],
                  "pagination": {
                    "limit": 1000,
                    "offset": 0,
                    "totalRecords": 1
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/sender/simple": {
      "post": {
        "operationId": "sender_simple",
        "summary": "Disparar Mensagem Simples",
        "description": "Dispara uma mensagem para uma lista de numeros com delay aleatorio entre cada envio. Retorna um folder_id para acompanhamento.",
        "tags": [
          "Campanhas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "numbers": {
                    "description": "Números (JSON array)",
                    "type": "string",
                    "example": "[\"5511999999999\",\"5511888888888\"]"
                  },
                  "type": {
                    "description": "Tipo da mensagem",
                    "type": "string",
                    "enum": [
                      "text",
                      "image",
                      "video",
                      "document",
                      "audio",
                      "contact",
                      "location"
                    ],
                    "default": "text"
                  },
                  "text": {
                    "description": "Texto da mensagem",
                    "type": "string",
                    "example": "Olá! Temos uma promoção..."
                  },
                  "file": {
                    "description": "URL da mídia (se não for texto)",
                    "type": "string",
                    "example": "https://..."
                  },
                  "folder": {
                    "description": "Nome da campanha",
                    "type": "string",
                    "example": "promo-abril"
                  },
                  "delayMin": {
                    "description": "Delay mínimo (segundos)",
                    "type": "number",
                    "example": 1
                  },
                  "delayMax": {
                    "description": "Delay máximo (segundos)",
                    "type": "number",
                    "example": 5
                  },
                  "scheduled_for": {
                    "description": "Agendar para (timestamp em milissegundos)",
                    "type": "number",
                    "example": 1775534400000
                  },
                  "info": {
                    "description": "Informacoes adicionais sobre a campanha",
                    "type": "string",
                    "example": "Campanha Janeiro"
                  }
                },
                "required": [
                  "numbers",
                  "type",
                  "delayMin",
                  "delayMax"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "count": 1,
                  "folder_id": "r37d5cc380a7f31",
                  "status": "queued"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/call/make": {
      "post": {
        "operationId": "call_make",
        "summary": "Fazer Chamada",
        "description": "Inicia uma chamada de voz para um numero do WhatsApp. A chamada toca no destino mas nao estabelece comunicacao de voz real.",
        "tags": [
          "Chamadas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número do contato no formato internacional (ex: 5511999999999)",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "call_duration": {
                    "description": "Duracao da chamada em segundos. Apos esse tempo a chamada e encerrada automaticamente.",
                    "type": "number",
                    "example": 15
                  }
                },
                "required": [
                  "number"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "call": {
                    "callCreator": "5511999@s.whatsapp.net",
                    "wasSentByAPI": true
                  },
                  "response": "Call successful"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/call/reject": {
      "post": {
        "operationId": "call_reject",
        "summary": "Rejeitar Chamada",
        "description": "Rejeita uma chamada recebida.",
        "tags": [
          "Chamadas"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "(Opcional) Número do contato no formato internacional (ex: 5511999999999)",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "id": {
                    "description": "(Opcional) ID único da chamada a ser rejeitada",
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "response": "Call rejected"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/business/catalog/delete": {
      "post": {
        "operationId": "business_catalog_delete",
        "summary": "Deletar Produto do Catálogo",
        "description": "Remove permanentemente produtos do catálogo do WhatsApp Business. Envie um array de IDs no campo `productIds`. Atenção: timeout (504) pode ocorrer se os IDs forem inválidos.",
        "tags": [
          "WhatsApp Business"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "productIds": {
                    "description": "IDs dos Produtos (array)",
                    "type": "string",
                    "example": "[\"prod_abc123\"]"
                  }
                },
                "required": [
                  "productIds"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/business/catalog/hide": {
      "post": {
        "operationId": "business_catalog_hide",
        "summary": "Ocultar Produto do Catálogo",
        "description": "Oculta um produto do catálogo público sem removê-lo. ⚠️ Pode retornar erro 501 em contas que não suportam esta feature . é uma limitação do WhatsApp, não da API.",
        "tags": [
          "WhatsApp Business"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID do Produto",
                    "type": "string",
                    "example": "prod_abc123"
                  }
                },
                "required": [
                  "id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "response": "Product hidden"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/business/catalog/info": {
      "post": {
        "operationId": "business_catalog_info",
        "summary": "Info do Produto",
        "description": "Retorna informações detalhadas de um produto específico do catálogo.",
        "tags": [
          "WhatsApp Business"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "jid": {
                    "description": "JID do catálogo a consultar",
                    "type": "string",
                    "example": "5511999999999@s.whatsapp.net"
                  },
                  "id": {
                    "description": "O ID do produto.",
                    "type": "string"
                  }
                },
                "required": [
                  "jid",
                  "id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "id": "123",
                  "name": "Produto",
                  "price": 9990,
                  "currency": "BRL"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/business/catalog/list": {
      "post": {
        "operationId": "business_catalog_list",
        "summary": "Listar Catálogo de Produtos",
        "description": "Retorna todos os produtos cadastrados no catálogo do WhatsApp Business do JID informado.",
        "tags": [
          "WhatsApp Business"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "jid": {
                    "description": "JID do catálogo",
                    "type": "string",
                    "example": "5511999999999@s.whatsapp.net"
                  }
                },
                "required": [
                  "jid"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "response": [
                    {
                      "id": "prod_abc123",
                      "name": "Produto 1",
                      "price": "49.90",
                      "currency": "BRL"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/business/catalog/show": {
      "post": {
        "operationId": "business_catalog_show",
        "summary": "Exibir Produto no Catálogo",
        "description": "Torna um produto visível no catálogo público do WhatsApp Business. ⚠️ Pode retornar erro 501 em contas que não suportam esta feature . é uma limitação do WhatsApp, não da API.",
        "tags": [
          "WhatsApp Business"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID do Produto",
                    "type": "string",
                    "example": "prod_abc123"
                  }
                },
                "required": [
                  "id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "response": "Product shown"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/business/get/categories": {
      "get": {
        "operationId": "business_categories",
        "summary": "Listar Categorias Comerciais",
        "description": "Retorna a lista de categorias disponíveis para o perfil comercial do WhatsApp Business.",
        "tags": [
          "WhatsApp Business"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "categories": [
                    {
                      "id": "1",
                      "name": "Shopping and Retail"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/business/get/profile": {
      "post": {
        "operationId": "business_profile_get",
        "summary": "Ver Perfil Comercial",
        "description": "Retorna os dados do perfil comercial do WhatsApp Business: descrição, endereço, e-mail, site e categorias. Envie o `jid` com o número (sem @s.whatsapp.net). Obrigatório informar o número.",
        "tags": [
          "WhatsApp Business"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "jid": {
                    "description": "JID do contato (obrigatório, ex: 5511999999999@s.whatsapp.net)",
                    "type": "string",
                    "example": "5511999999999"
                  }
                },
                "required": [
                  "jid"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "response": {
                    "description": "Loja de produtos...",
                    "address": "Av. Paulista, 1000",
                    "email": "contato@empresa.com"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/business/update/profile": {
      "post": {
        "operationId": "business_profile_update",
        "summary": "Atualizar Perfil Comercial",
        "description": "Atualiza os dados do perfil do WhatsApp Business. É obrigatório enviar pelo menos um dos campos: `description`, `address` ou `email`. Atenção: este endpoint pode retornar 403 forbidden se a instância não for do tipo Business.",
        "tags": [
          "WhatsApp Business"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "description": {
                    "description": "Descrição",
                    "type": "string",
                    "example": "Especialistas em automação WhatsApp"
                  },
                  "address": {
                    "description": "Endereço",
                    "type": "string",
                    "example": "Av. Paulista, 1000 - SP"
                  },
                  "email": {
                    "description": "E-mail",
                    "type": "string",
                    "example": "contato@empresa.com"
                  },
                  "websites": {
                    "description": "Sites (array)",
                    "type": "string",
                    "example": "[\"https://empresa.com\"]"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "success": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/chat/labels": {
      "post": {
        "operationId": "chat_labels",
        "summary": "Aplicar Etiqueta ao Chat",
        "description": "Gerencia labels (etiquetas) de um chat. Use `labelids` para definir todas as labels de uma vez, `add_labelid` para adicionar uma label, ou `remove_labelid` para remover. Envie apenas um desses campos por requisição.",
        "tags": [
          "Configurações"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "number": {
                    "description": "Número do contato",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "labelids": {
                    "description": "IDs das Labels (array, substitui todas)",
                    "type": "string",
                    "example": "[\"1\",\"2\"]"
                  },
                  "add_labelid": {
                    "description": "Adicionar Label (ID)",
                    "type": "string",
                    "example": "1"
                  },
                  "remove_labelid": {
                    "description": "Remover Label (ID)",
                    "type": "string",
                    "example": "1"
                  }
                },
                "required": [
                  "number"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "response": "Label added to chat"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/instance/connect": {
      "post": {
        "operationId": "instance_connect",
        "summary": "Conectar Instância",
        "description": "Conecta a instância ao WhatsApp. Necessário escanear QR code após esta chamada.",
        "tags": [
          "Configurações"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "phone": {
                    "description": "Número de telefone no formato internacional (ex: 5511999999999). Se informado, gera código de pareamento. Se omitido, gera QR code.",
                    "type": "string",
                    "example": "5511999999999"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "connected": true,
                  "instance": {
                    "id": "raa287d88df6336",
                    "status": "connected",
                    "name": "minha-instancia"
                  },
                  "response": "Already connected",
                  "status": {
                    "connected": true,
                    "loggedIn": true
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/instance/disconnect": {
      "post": {
        "operationId": "instance_disconnect",
        "summary": "Desconectar Instância",
        "description": "Desconecta a instancia do WhatsApp. Sera necessario escanear o QR code novamente para reconectar.",
        "tags": [
          "Configurações"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "info": "The device has been successfully disconnected from WhatsApp. A new QR code will be required for the next connection.",
                  "instance": {
                    "status": "disconnected",
                    "lastDisconnect": "2026-04-06T04:56:41Z",
                    "lastDisconnectReason": "disconnected by API"
                  },
                  "response": "Disconnected"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/instance/presence": {
      "post": {
        "operationId": "instance_presence",
        "summary": "Status de Presença",
        "description": "Define se a instância aparece como online ou offline para os contatos.",
        "tags": [
          "Configurações"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "presence": {
                    "description": "Status de presença",
                    "type": "string",
                    "enum": [
                      "available",
                      "unavailable"
                    ]
                  }
                },
                "required": [
                  "presence"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "response": "Presence updated successfully"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/instance/privacy": {
      "get": {
        "operationId": "instance_privacy_get",
        "summary": "Ver Privacidade",
        "description": "Retorna as configurações de privacidade da conta: quem pode adicionar em grupos, ver último acesso, foto de perfil e confirmações de leitura.",
        "tags": [
          "Configurações"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "calladd": "all",
                  "groupadd": "all",
                  "last": "contacts",
                  "online": "all",
                  "profile": "all",
                  "readreceipts": "all",
                  "status": "contacts"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      },
      "post": {
        "operationId": "instance_privacy_set",
        "summary": "Alterar Privacidade",
        "description": "Atualiza as configurações de privacidade. Todos os campos são opcionais . envie apenas o que deseja alterar.",
        "tags": [
          "Configurações"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "groupadd": {
                    "description": "Adicionar em grupos",
                    "type": "string",
                    "enum": [
                      "all",
                      "contacts",
                      "contact_blacklist",
                      "none"
                    ]
                  },
                  "last": {
                    "description": "Último acesso",
                    "type": "string",
                    "enum": [
                      "all",
                      "contacts",
                      "contact_blacklist",
                      "none"
                    ]
                  },
                  "profile": {
                    "description": "Foto de perfil",
                    "type": "string",
                    "enum": [
                      "all",
                      "contacts",
                      "contact_blacklist",
                      "none"
                    ]
                  },
                  "readreceipts": {
                    "description": "Confirmação de leitura",
                    "type": "string",
                    "enum": [
                      "all",
                      "none"
                    ]
                  },
                  "online": {
                    "description": "Status online",
                    "type": "string",
                    "enum": [
                      "all",
                      "match_last_seen"
                    ]
                  },
                  "calladd": {
                    "description": "Receber chamadas de",
                    "type": "string",
                    "enum": [
                      "all",
                      "known"
                    ]
                  },
                  "status": {
                    "description": "Recado (status text)",
                    "type": "string",
                    "enum": [
                      "all",
                      "contacts",
                      "contact_blacklist",
                      "none"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "groupadd": "contacts",
                  "last": "contacts",
                  "profile": "contacts",
                  "readreceipts": "all",
                  "online": "all",
                  "calladd": "all"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/instance/proxy": {
      "get": {
        "operationId": "instance_proxy_get",
        "summary": "Ver Proxy",
        "description": "Retorna a configuração de proxy da instância.",
        "tags": [
          "Configurações"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "enabled": true,
                  "managed": true,
                  "proxy_url": "managed_pool://hidden",
                  "proxy_fallback": "internal_proxy",
                  "last_test_at": 1775449088975,
                  "last_test_error": "",
                  "validation_error": false
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      },
      "post": {
        "operationId": "instance_proxy",
        "summary": "Configurar Proxy",
        "description": "Configura, altera ou REMOVE o proxy da instância. O campo canônico é `mode`: `custom` (proxy próprio, exige proxy_url), `internal` (proxy gerenciado pelo serviço) ou `none` (remove o proxy, exige confirm_no_proxy=true). Para remover o proxy, envie mode=none e confirm_no_proxy=true.",
        "tags": [
          "Configurações"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "mode": {
                    "description": "Estratégia de proxy",
                    "type": "string",
                    "enum": [
                      "custom",
                      "internal",
                      "none"
                    ]
                  },
                  "proxy_url": {
                    "description": "URL do proxy (obrigatório quando mode=custom). Protocolos: http://, https://, socks5://",
                    "type": "string",
                    "example": "http://usuario:senha@host:porta"
                  },
                  "proxy_fallback": {
                    "description": "Contingência para mode=custom (ex: internal, never)",
                    "type": "string",
                    "example": "internal"
                  },
                  "confirm_no_proxy": {
                    "description": "Confirma remoção do proxy (obrigatório quando mode=none)",
                    "type": "boolean"
                  },
                  "rotate_now": {
                    "description": "Troca o proxy interno imediatamente (quando mode=internal)",
                    "type": "boolean"
                  }
                },
                "required": [
                  "mode"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "details": "Proxy removido",
                  "proxy": {
                    "enabled": false
                  },
                  "restart_requested": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/instance/reset": {
      "post": {
        "operationId": "instance_reset",
        "summary": "Reiniciar Instância",
        "description": "Reinicia o runtime da instancia. Se a instancia estiver desconectada, sera necessario escanear o QR code novamente.",
        "tags": [
          "Configurações"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "instanceId": "r8ecb82b8e9613c",
                  "resetting": true,
                  "response": "Instance reset started"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/instance/status": {
      "get": {
        "operationId": "instance_status",
        "summary": "Informações & Status da Instância",
        "description": "Retorna dados completos da instância: nome, número de telefone conectado, foto de perfil e status atual da conexão (disconnected, connecting, connected).",
        "tags": [
          "Configurações"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "instance": {
                    "status": "connected",
                    "name": "minha-instancia",
                    "profileName": "Meu Perfil",
                    "owner": "5511999999999",
                    "msg_delay_min": 1,
                    "msg_delay_max": 3
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/instance/updateDelaySettings": {
      "post": {
        "operationId": "instance_updateDelaySettings",
        "summary": "Configurar Delay",
        "description": "Configura o delay minimo e maximo entre mensagens na fila. Retorna o objeto completo da instancia.",
        "tags": [
          "Configurações"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "msg_delay_min": {
                    "description": "Delay mínimo em segundos (0 = sem delay)",
                    "type": "number",
                    "example": 0
                  },
                  "msg_delay_max": {
                    "description": "Delay máximo em segundos",
                    "type": "number",
                    "example": 2
                  }
                },
                "required": [
                  "msg_delay_min",
                  "msg_delay_max"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "id": "raa287d88df6336",
                  "name": "minha-instancia",
                  "status": "connected",
                  "msg_delay_min": 0,
                  "msg_delay_max": 2
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/instance/updateInstanceName": {
      "post": {
        "operationId": "instance_updateInstanceName",
        "summary": "Renomear Instância",
        "description": "Atualiza o nome interno da instancia. Retorna o objeto completo da instancia.",
        "tags": [
          "Configurações"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "name": {
                    "description": "Novo nome para a instância",
                    "type": "string",
                    "example": "Minha Nova Instância 2024!@#"
                  }
                },
                "required": [
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "id": "raa287d88df6336",
                  "name": "Novo Nome",
                  "status": "connected",
                  "profileName": "Meu Perfil",
                  "owner": "5511999999999"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/label/edit": {
      "post": {
        "operationId": "label_edit",
        "summary": "Criar / Editar Etiqueta",
        "description": "Cria uma nova etiqueta ou edita/deleta uma existente. Para criar, use labelid \"0\" com name e color. Para editar, use o labelid real. Cor: numero de 0 a 19.",
        "tags": [
          "Configurações"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "labelid": {
                    "description": "ID da etiqueta. Use \"0\" para criar nova.",
                    "type": "string",
                    "example": "0"
                  },
                  "name": {
                    "description": "Nome da etiqueta",
                    "type": "string",
                    "example": "Cliente VIP"
                  },
                  "color": {
                    "description": "Cor (0 a 19)",
                    "type": "number",
                    "example": 5
                  },
                  "delete": {
                    "description": "Deletar?",
                    "type": "boolean"
                  }
                },
                "required": [
                  "labelid",
                  "name"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "response": "Label edited successfully"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/labels": {
      "get": {
        "operationId": "labels_list",
        "summary": "Listar Etiquetas",
        "description": "Retorna todas as etiquetas criadas na instância.",
        "tags": [
          "Configurações"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "id": "5511999999999:1",
                    "name": "Nao lidas",
                    "color": 0,
                    "colorHex": "#ff9484",
                    "labelid": "1",
                    "owner": "5511999999999"
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/labels/refresh": {
      "post": {
        "operationId": "labels_refresh",
        "summary": "Recarregar Etiquetas",
        "description": "Recarrega as etiquetas do WhatsApp para sincronizar com o banco local.",
        "tags": [
          "Configurações"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "force": {
                    "description": "Tente primeiro com `false`.\nUse `true` apenas quando a recarga padrão não funcionar bem,\npois esse modo faz uma nova leitura mais completa das etiquetas.\n",
                    "type": "boolean",
                    "example": false
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "id": "5511999999999:1",
                    "name": "Nao lidas",
                    "color": 0,
                    "labelid": "1"
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/quickreply/edit": {
      "post": {
        "operationId": "quickreply_edit",
        "summary": "Criar / Editar Resposta Rápida",
        "description": "Cria ou atualiza um atalho de resposta rápida. Ao digitar \"/\" seguido do atalho no WhatsApp, a mensagem completa é sugerida. Para editar, envie o campo `id`.",
        "tags": [
          "Configurações"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "shortCut": {
                    "description": "Atalho (ex: bom-dia)",
                    "type": "string",
                    "example": "bom-dia"
                  },
                  "text": {
                    "description": "Texto da resposta",
                    "type": "string",
                    "example": "Bom dia! Como posso te ajudar hoje?"
                  },
                  "type": {
                    "description": "Tipo",
                    "type": "string",
                    "enum": [
                      "text",
                      "image",
                      "video",
                      "document"
                    ],
                    "default": "text"
                  },
                  "file": {
                    "description": "URL do arquivo (se mídia)",
                    "type": "string",
                    "example": "https://..."
                  },
                  "docName": {
                    "description": "Nome do documento",
                    "type": "string",
                    "example": "catalogo.pdf"
                  },
                  "keywords": {
                    "description": "Palavras-chave (JSON array)",
                    "type": "string",
                    "example": "[\"bom dia\",\"bom-dia\"]"
                  },
                  "id": {
                    "description": "ID (para editar)",
                    "type": "string",
                    "example": "qr_abc123"
                  },
                  "delete": {
                    "description": "Deletar a resposta rapida",
                    "type": "boolean"
                  }
                },
                "required": [
                  "shortCut",
                  "text",
                  "type"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "message": "Operation completed successfully",
                  "quickReplies": [
                    {
                      "id": "r6e84a8016cbd63",
                      "shortCut": "bom-dia",
                      "text": "Bom dia!",
                      "type": "text"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/quickreply/showall": {
      "get": {
        "operationId": "quickreply_list",
        "summary": "Listar Respostas Rápidas",
        "description": "Retorna todas as respostas rápidas configuradas na instância.",
        "tags": [
          "Configurações"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "id": "r6e84a8016cbd63",
                    "onWhatsApp": false,
                    "docName": "",
                    "file": "",
                    "shortCut": "bom-dia",
                    "text": "Bom dia! Como posso te ajudar?",
                    "type": "text",
                    "owner": "5511999999999"
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/sse": {
      "get": {
        "operationId": "sse_get",
        "summary": "Server-Sent Events (SSE)",
        "description": "Abre conexão Server-Sent Events para receber eventos em tempo real.",
        "tags": [
          "Webhooks e Eventos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {}
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/webhook": {
      "get": {
        "operationId": "webhook_get",
        "summary": "Ver Webhook da Instância",
        "description": "Retorna a configuracao de webhooks da instancia. A resposta e sempre um array, mesmo com um unico webhook.",
        "tags": [
          "Webhooks e Eventos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "url": "https://example.com",
                    "enabled": false,
                    "events": [],
                    "id": "r1234"
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      },
      "post": {
        "operationId": "webhook",
        "summary": "Configurar Webhook da Instância",
        "description": "Gerencia webhooks da instancia. Suporta modo simples (sem action) e modo multi-webhook (com action: add/update/delete). Para deletar, envie id + action \"delete\". Os eventos vêm DESATIVADOS por padrão. Ligue só os que for consumir (evita tráfego desnecessário). Eventos de volume alto (presence, history) só ligue se realmente for tratar.",
        "tags": [
          "Webhooks e Eventos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID único do webhook (necessário para update/delete)",
                    "type": "string",
                    "example": "123e4567-e89b-12d3-a456-426614174000"
                  },
                  "enabled": {
                    "description": "Habilita/desabilita o webhook",
                    "type": "boolean",
                    "example": false
                  },
                  "url": {
                    "description": "URL para receber os eventos",
                    "type": "string",
                    "example": "https://example.com/webhook"
                  },
                  "events": {
                    "description": "Lista de eventos que você quer receber no seu webhook. TUDO vem desativado por padrão: envie só os que for usar. Disponíveis: connection (conexão), messages (mensagens recebidas/enviadas), messages_update (status: entregue/lida), history (histórico ao conectar, VOLUME ALTO), newsletter_messages (mensagens de canais), call (chamadas), contacts, groups, chats, labels, chat_labels, presence (online/digitando, VOLUME ALTO), blocks (bloqueios), sender. Exemplo: [\"messages\",\"connection\",\"messages_update\"].",
                    "example": [
                      "messages",
                      "connection",
                      "messages_update"
                    ]
                  },
                  "excludeMessages": {
                    "description": "Filtros para excluir tipos de mensagens"
                  },
                  "addUrlEvents": {
                    "description": "Adiciona o tipo do evento como parâmetro na URL.\n- `false` (padrão): URL normal\n- `true`: Adiciona evento na URL (ex: `/webhook/message`)\n",
                    "type": "boolean"
                  },
                  "addUrlTypesMessages": {
                    "description": "Adiciona o tipo da mensagem como parâmetro na URL.\n- `false` (padrão): URL normal  \n- `true`: Adiciona tipo da mensagem (ex: `/webhook/conversation`)\n",
                    "type": "boolean"
                  },
                  "action": {
                    "description": "Ação a ser executada:\n- add: criar novo webhook\n- update: atualizar webhook existente (requer id)\n- delete: remover webhook (requer apenas id)\nSe não informado, opera no modo simples (único webhook)\n",
                    "type": "string",
                    "enum": [
                      "add",
                      "update",
                      "delete"
                    ]
                  }
                },
                "required": [
                  "url"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "status": "Webhook deleted successfully"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/webhook/errors": {
      "get": {
        "operationId": "webhook_errors_get",
        "summary": "Erros do Webhook",
        "description": "Lista os últimos erros de entrega do webhook.",
        "tags": [
          "Webhooks e Eventos"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "object"
                  }
                },
                "example": [
                  {
                    "created": "2026-04-06T04:00:00Z",
                    "url": "https://...",
                    "event": "messages",
                    "error": "timeout"
                  }
                ]
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/instances/{id}/webhook/deliveries": {
      "get": {
        "operationId": "gestao_webhook_deliveries",
        "summary": "Entregas Recentes do Webhook",
        "description": "Lista as últimas entregas de webhook desta instância (janela recente, para depurar): evento, se foi entregue, status HTTP, latência, número da tentativa e horário. Útil pra conferir se o seu endpoint está recebendo e respondendo 2xx.",
        "tags": [
          "Webhooks e Eventos"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "description": "ID da instância",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "description": "Quantidade (máx 100)",
            "schema": {
              "type": "string",
              "example": "50"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "deliveries": [
                    {
                      "delivery_id": "uuid",
                      "event": "messages",
                      "event_id": "abc",
                      "ts": 1725600000000,
                      "ok": true,
                      "status": 200,
                      "latency_ms": 142,
                      "attempt": 1
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/message/async": {
      "delete": {
        "operationId": "message_async_delete",
        "summary": "Limpar Fila Async",
        "description": "Limpa toda a fila de mensagens async.",
        "tags": [
          "Fila Async"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "response": "Async queue cleared",
                  "stats": {
                    "removed": 0,
                    "pending": 0
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      },
      "get": {
        "operationId": "message_async_get",
        "summary": "Ver Fila Async",
        "description": "Consulta a fila de mensagens async pendentes.",
        "tags": [
          "Fila Async"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "queue": {
                    "status": "idle",
                    "pending": 0,
                    "processingNow": false,
                    "acceptingNewMessages": true
                  },
                  "response": "Async queue status"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/agent/edit": {
      "post": {
        "operationId": "agent_edit",
        "summary": "Criar/Editar Agente IA",
        "description": "Cria, edita ou deleta um agente de IA para atendimento automático. Enviar id vazio para criar; preenchido para editar; delete=true para deletar.",
        "tags": [
          "Chatbot e IA"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID do Agente",
                    "type": "string",
                    "example": "Vazio para criar novo"
                  },
                  "delete": {
                    "description": "Deletar",
                    "type": "boolean",
                    "default": false
                  },
                  "agent": {
                    "description": "Agente (JSON)",
                    "example": {
                      "name": "Assistente",
                      "provider": "openai",
                      "apikey": "sk-...",
                      "model": "gpt-4o-mini",
                      "basePrompt": "Voce é um assistente...",
                      "maxTokens": 2000,
                      "temperature": 70,
                      "diversityLevel": 50,
                      "frequencyPenalty": 30,
                      "presencePenalty": 30,
                      "signMessages": true,
                      "readMessages": true,
                      "maxMessageLength": 500,
                      "typingDelay_seconds": 3,
                      "contextTimeWindow_hours": 24,
                      "contextMaxMessages": 50,
                      "contextMinMessages": 3
                    }
                  }
                },
                "required": [
                  "agent"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "id": "read16c9f35642c",
                  "name": "Assistente",
                  "provider": "openai",
                  "model": "gpt-4o-mini",
                  "apikey": "sk-...",
                  "basePrompt": "Voce e um assistente...",
                  "maxTokens": 500,
                  "temperature": 70,
                  "diversityLevel": 0,
                  "frequencyPenalty": 0,
                  "presencePenalty": 0,
                  "signMessages": false,
                  "readMessages": false,
                  "maxMessageLength": 0,
                  "typingDelay_seconds": 0,
                  "contextTimeWindow_hours": 0,
                  "contextMaxMessages": 0,
                  "contextMinMessages": 0
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/agent/list": {
      "get": {
        "operationId": "agent_list_get",
        "summary": "Listar Agentes IA",
        "description": "Lista todos os agentes de IA configurados na instancia. Retorna array vazio se nenhum agente existir.",
        "tags": [
          "Chatbot e IA"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {}
                },
                "example": []
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/function/edit": {
      "post": {
        "operationId": "function_edit",
        "summary": "Criar/Editar Função API",
        "description": "Cria, edita ou deleta uma funcao de API para integracao com servicos externos. Envie id vazio para criar, preenchido para editar, delete=true para deletar.",
        "tags": [
          "Chatbot e IA"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID da função. Vazio para criar nova, preenchido para editar existente.",
                    "type": "string"
                  },
                  "delete": {
                    "description": "Se true, deleta a função especificada pelo ID.",
                    "type": "boolean"
                  },
                  "function": {
                    "description": "Configuração da função (JSON)",
                    "example": {
                      "name": "minha_funcao",
                      "description": "Descricao da funcao",
                      "active": false,
                      "method": "GET",
                      "endpoint": "https://api.example.com/endpoint",
                      "headers": {},
                      "body": {},
                      "parameters": []
                    }
                  }
                },
                "required": [
                  "id",
                  "delete",
                  "function"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "id": "r72440ced9503e3",
                  "name": "minha_funcao",
                  "description": "Descricao da funcao",
                  "active": false,
                  "method": "GET",
                  "endpoint": "https://api.example.com/endpoint",
                  "headers": "{}",
                  "body": "{}",
                  "parameters": "[]"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/function/list": {
      "get": {
        "operationId": "function_list_get",
        "summary": "Listar Funções API",
        "description": "Lista todas as funcoes de API configuradas. Retorna array vazio se nenhuma funcao existir.",
        "tags": [
          "Chatbot e IA"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {}
                },
                "example": []
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/knowledge/edit": {
      "post": {
        "operationId": "knowledge_edit",
        "summary": "Criar/Editar Conhecimento",
        "description": "Cria ou edita base de conhecimento para os agentes de IA. (Requer OpenAI API key configurada na instância)",
        "tags": [
          "Chatbot e IA"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID do conhecimento (vazio para criar novo)",
                    "type": "string"
                  },
                  "delete": {
                    "description": "Define se é uma operação de exclusão",
                    "type": "boolean"
                  },
                  "knowledge": {
                    "description": "Conteúdo do conhecimento"
                  },
                  "fileType": {
                    "description": "Tipo do arquivo quando não detectado automaticamente",
                    "type": "string",
                    "enum": [
                      "pdf",
                      "txt",
                      "html",
                      "csv"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/knowledge/list": {
      "get": {
        "operationId": "knowledge_list_get",
        "summary": "Listar Conhecimentos",
        "description": "Lista toda a base de conhecimento dos agentes. Retorna array vazio se nenhum conhecimento existir.",
        "tags": [
          "Chatbot e IA"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {}
                },
                "example": []
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/trigger/edit": {
      "post": {
        "operationId": "trigger_edit",
        "summary": "Criar/Editar Trigger",
        "description": "Cria, edita ou deleta um trigger de chatbot. Requer um agente existente (agent_id).",
        "tags": [
          "Chatbot e IA"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID do Trigger",
                    "type": "string",
                    "example": "Vazio para criar novo"
                  },
                  "delete": {
                    "description": "Deletar",
                    "type": "boolean",
                    "default": false
                  },
                  "trigger": {
                    "description": "Trigger (JSON)",
                    "example": {
                      "active": true,
                      "type": "agent",
                      "agent_id": "id_do_agente",
                      "ignoreGroups": true,
                      "priority": 1,
                      "wordsToStart": "ola|oi|iniciar",
                      "responseDelay_seconds": 3,
                      "lead_field": "",
                      "lead_operator": "",
                      "lead_value": ""
                    }
                  }
                },
                "required": [
                  "trigger"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "id": "rbcca9c181c1e5a",
                  "active": false,
                  "type": "agent",
                  "agent_id": "read16c9f35642c",
                  "flow_id": "",
                  "quickReply_id": "",
                  "ignoreGroups": true,
                  "lead_field": "",
                  "lead_operator": "",
                  "lead_value": "",
                  "priority": 1,
                  "wordsToStart": "ola|oi",
                  "responseDelay_seconds": 3
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/trigger/list": {
      "get": {
        "operationId": "trigger_list_get",
        "summary": "Listar Triggers",
        "description": "Lista todos os triggers de chatbot configurados. Retorna array vazio se nenhum trigger existir.",
        "tags": [
          "Chatbot e IA"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {}
                },
                "example": []
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/chat/editLead": {
      "post": {
        "operationId": "chat_editLead",
        "summary": "Editar Lead",
        "description": "Edita dados de lead de um contato. O ID deve incluir @s.whatsapp.net.",
        "tags": [
          "CRM e Leads"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "id": {
                    "description": "ID do chat (formato: numero@s.whatsapp.net)",
                    "type": "string",
                    "example": "5511999999999@s.whatsapp.net"
                  },
                  "lead_name": {
                    "description": "Nome do lead",
                    "type": "string",
                    "example": "Joao Silva"
                  },
                  "lead_email": {
                    "description": "Email do lead",
                    "type": "string",
                    "example": "joao@email.com"
                  },
                  "lead_status": {
                    "description": "Status do lead no funil",
                    "type": "string",
                    "example": "qualificado"
                  },
                  "lead_isTicketOpen": {
                    "description": "Ticket aberto",
                    "type": "boolean"
                  },
                  "lead_tags": {
                    "description": "Tags (JSON array)",
                    "type": "string",
                    "example": "[\"vip\",\"suporte\"]"
                  },
                  "lead_notes": {
                    "description": "Anotacoes sobre o lead",
                    "type": "string",
                    "example": "Cliente interessado..."
                  },
                  "lead_field01": {
                    "description": "Campo personalizado 01",
                    "type": "string"
                  },
                  "lead_field02": {
                    "description": "Campo personalizado 02",
                    "type": "string"
                  },
                  "chatbot_disableUntil": {
                    "description": "Desativar chatbot ate (timestamp UTC, 0 para reativar)",
                    "type": "number",
                    "example": 0
                  },
                  "lead_personalid": {
                    "description": "Lead Personalid",
                    "type": "string"
                  },
                  "lead_field03": {
                    "description": "Lead Field03",
                    "type": "string"
                  },
                  "lead_field04": {
                    "description": "Lead Field04",
                    "type": "string"
                  },
                  "lead_field05": {
                    "description": "Lead Field05",
                    "type": "string"
                  }
                },
                "required": [
                  "id"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "chat": {
                    "lead_name": "Joao",
                    "lead_email": "joao@email.com"
                  },
                  "source": "local"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/instance/updateFieldsMap": {
      "post": {
        "operationId": "instance_updateFieldsMap",
        "summary": "Campos Personalizados de Lead",
        "description": "Define os nomes dos campos de lead. Campos sao flat (lead_field01, lead_field02, etc).",
        "tags": [
          "CRM e Leads"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "lead_field01": {
                    "description": "Campo 01",
                    "type": "string",
                    "example": "nome"
                  },
                  "lead_field02": {
                    "description": "Campo 02",
                    "type": "string",
                    "example": "email"
                  },
                  "lead_field03": {
                    "description": "Campo 03",
                    "type": "string",
                    "example": "telefone"
                  },
                  "lead_field04": {
                    "description": "Campo 04",
                    "type": "string",
                    "example": "cidade"
                  },
                  "lead_field05": {
                    "description": "Campo 05",
                    "type": "string",
                    "example": "estado"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "id": "raa287d88df6336",
                  "name": "minha-instancia",
                  "fieldsMap": {
                    "lead_field01": "nome",
                    "lead_field02": "email",
                    "lead_field03": "telefone"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/chatwoot/config": {
      "get": {
        "operationId": "chatwoot_config_get",
        "summary": "Ver Config Chatwoot",
        "description": "Retorna a configuracao atual da integracao com Chatwoot, incluindo status da conexao.",
        "tags": [
          "Integração Chatwoot"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "chatwoot_enabled": false,
                  "chatwoot_url": "",
                  "chatwoot_account_id": 0,
                  "chatwoot_inbox_id": 0,
                  "chatwoot_inbox_name": "minha-instancia",
                  "chatwoot_access_token": "",
                  "chatwoot_ignore_groups": false,
                  "chatwoot_sign_messages": false,
                  "chatwoot_create_new_conversation": false,
                  "integration_status": {
                    "status": "disabled",
                    "message": "Integracao Chatwoot nao esta habilitada",
                    "connection_ok": false,
                    "credentials_ok": false,
                    "inbox_exists": false
                  }
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      },
      "put": {
        "operationId": "chatwoot_config_put",
        "summary": "Configurar Chatwoot",
        "description": "Atualiza a configuracao da integracao Chatwoot. Os campos usam prefixo chatwoot_. Integracao em beta.",
        "tags": [
          "Integração Chatwoot"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "chatwoot_enabled": {
                    "description": "Habilitar integracao",
                    "type": "boolean"
                  },
                  "chatwoot_url": {
                    "description": "URL do Chatwoot (sem barra final)",
                    "type": "string",
                    "example": "https://app.chatwoot.com"
                  },
                  "chatwoot_access_token": {
                    "description": "Token de acesso do Chatwoot",
                    "type": "string",
                    "example": "pXXGHHHyJPYHYgWHJHYHgJjj"
                  },
                  "chatwoot_account_id": {
                    "description": "ID da conta no Chatwoot",
                    "type": "number",
                    "example": 1
                  },
                  "chatwoot_inbox_id": {
                    "description": "ID da inbox no Chatwoot",
                    "type": "number",
                    "example": 5
                  },
                  "chatwoot_ignore_groups": {
                    "description": "Ignorar grupos",
                    "type": "boolean"
                  },
                  "chatwoot_sign_messages": {
                    "description": "Assinar mensagens",
                    "type": "boolean"
                  },
                  "chatwoot_create_new_conversation": {
                    "description": "Sempre criar nova conversa",
                    "type": "boolean"
                  }
                },
                "required": [
                  "chatwoot_enabled"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "message": "Chatwoot config updated successfully"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/flows": {
      "get": {
        "operationId": "flows_list",
        "summary": "Listar Fluxos",
        "description": "Lista todos os fluxos do usuario, incluindo status (habilitado/desabilitado) e tipo de gatilho.",
        "tags": [
          "Fluxos"
        ],
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "flows": [
                    {
                      "id": "abc-123",
                      "name": "Atendimento Delivery",
                      "description": "Fluxo de atendimento automatico",
                      "enabled": true,
                      "trigger": {
                        "type": "keyword",
                        "value": "menu"
                      },
                      "created_at": "2026-04-10T12:00:00.000Z",
                      "updated_at": "2026-04-15T18:30:00.000Z"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/flows/{flowId}/trigger": {
      "post": {
        "operationId": "flows_trigger",
        "summary": "Disparar Fluxo",
        "description": "Dispara um fluxo para um contato especifico. O fluxo precisa estar habilitado e a instancia conectada. Variaveis opcionais ficam disponiveis dentro do fluxo como {nome_da_variavel}. Ao chegar num bloco de webhook, todas as variaveis coletadas (respostas, cliques, dados do contato) sao enviadas para a URL configurada.",
        "tags": [
          "Fluxos"
        ],
        "parameters": [
          {
            "name": "flowId",
            "in": "path",
            "required": true,
            "description": "ID do fluxo",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "instance_id": {
                    "description": "ID da instancia",
                    "type": "string",
                    "example": "inst-456"
                  },
                  "phone": {
                    "description": "Telefone do contato",
                    "type": "string",
                    "example": "5511999999999"
                  },
                  "variables": {
                    "description": "Variaveis iniciais (objeto JSON)",
                    "example": {
                      "nome": "Joao",
                      "plano": "premium"
                    }
                  }
                },
                "required": [
                  "instance_id",
                  "phone"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "execution_id": "exec-789",
                  "status": "waiting_reply",
                  "flow_id": "abc-123",
                  "phone": "5511999999999"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    },
    "/{instanceId}/tracking/conversion": {
      "post": {
        "operationId": "tracking_conversion",
        "summary": "Registrar venda de um lead de anúncio",
        "description": "Avisa que um lead que veio de anúncio virou venda. É o que permite a Meta aprender quem realmente compra, em vez de otimizar só por quem responde mensagem. Use quando o pagamento for confirmado no seu sistema. Chamar duas vezes para a mesma venda não duplica.",
        "tags": [
          "Traqueamento Meta"
        ],
        "parameters": [
          {
            "name": "instanceId",
            "in": "path",
            "required": true,
            "description": "ID da instância WhatsApp (visível no painel).",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "phone": {
                    "type": "string"
                  },
                  "value": {
                    "type": "number"
                  },
                  "event": {
                    "type": "string"
                  },
                  "occurred_at": {
                    "type": "string"
                  }
                },
                "required": [
                  "phone"
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Resposta de sucesso",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                },
                "example": {
                  "ok": true,
                  "message": "Venda registrada e enviada para a Meta.",
                  "event": "Purchase",
                  "value": 700,
                  "ad_id": "120243748541570695",
                  "lead_status": "won",
                  "status": "queued"
                }
              }
            }
          },
          "400": {
            "description": "Requisição inválida (campos ausentes ou mal formatados)."
          },
          "401": {
            "description": "Credenciais inválidas (x-api-key / x-api-secret)."
          },
          "429": {
            "description": "Limite de requisições excedido."
          }
        }
      }
    }
  }
}
