26 de agosto de 2026 — correções na API e revisão geral da documentação
Auditoria endpoint por endpoint da referência contra o código, seguida da correção dos defeitos encontrados.Correções de comportamento
Todas compatíveis: nenhum campo de resposta foi removido, renomeado ou teve o tipo alterado.PATCH /v1/ai-agents/:idpassa a existir, como alias dePUT. OPUTcontinua funcionando.- Códigos de rate limit por canal deixam de sair acentuados. Agora são
WHATSAPP_INSTANCE_RATE_LIMITeMESSENGER_PAGE_RATE_LIMIT. - Filtro
stage_idem negócios passa a aceitar o ID da etapa, como sempre esteve documentado. O nome continua funcionando. deals_countemessages_countem contatos econtacts_count,deals_countetotal_deals_valueem empresas passam a trazer os valores reais. Antes devolviam0sempre.GET /v1/whatsapp-instancespassa a devolverchannel(officialouqrcode) — é como saber se o número aceita modelo.meta.totalemGET /v1/ai-agents/runspassa a respeitar os filtros da requisição.DELETE /v1/companies/:idpassa a recusar empresa com contatos ou negócios vinculados, com403 COMPANY_HAS_LINKS— mesma regra do painel.PUTentra na lista de métodos aceitos em requisições de navegador.
Webhooks disparados pela API
Escrever pela API v1 passou a emitir 21 eventos, contra 8 antes. Passam a sair:contact.deleted, contact.tag.added, contact.tag.removed, company.created, company.updated, company.deleted, deal.deleted, deal.assigned, deal.pipeline.transferred, task.created, task.completed, conversation.assigned e conversation.closed.
Se a sua integração escreve pela API e assina esses eventos, o volume de entregas aumenta. Confira a deduplicação por
id do evento antes.Documentação
Correções que afetavam integrações
- Agentes de IA · criar — o exemplo publicado era inválido.
scope.channelsnão existe (éscope.sources),behaviorexigestrategy, eaiConfigé obrigatório. O corpo é em camelCase; a resposta, em snake_case. - Agentes de IA · atualizar — o método é
PUT, nãoPATCH. - Disparos · audiência — os filtros ficam em
audience.filters, não na raiz deaudience. A documentação anterior induzia a um payload aceito com201que disparava para toda a base. - Disparos · perfil de envio — os valores são
conservative,moderateeaggressive. Os antes documentados (slow,balanced,fast) nunca existiram. - Disparos · status — não existe
running; um disparo em andamento passa porprocessingesending. Acrescentadoscompleted_with_errorsefailed. - Escopos — o código de escopo insuficiente é
INSUFFICIENT_SCOPES, no plural, e trazrequired_scopes,missing_scopeseyour_scopes. - Rate limit por canal — os códigos reais são
INSTÂNCIA_WHATSAPP_RATE_LIMITePÁGINA_MESSENGER_RATE_LIMIT, com acento. - Contatos — removido
assigned_toda documentação: contato não tem responsável na v1, a atribuição é por conversa. O campo era descrito como filtro, campo de corpo e campo de resposta, e não existe em nenhum dos três. - Paginação —
meta.next_cursoré omitido na última página, não vemnull. - Idempotência — o header vale em quatro rotas, não em todo
POST. - Funis — os campos são
total_dealsetotal_value;deals_countewon_countno nível do funil nunca existiram.
Limitações agora documentadas
- Webhooks — escrever pela API v1 dispara 8 dos 47 eventos. A lista completa do que sai e do que não sai está em Eventos e a API v1.
- Contadores em zero —
deals_countemessages_countem contatos, econtacts_count,deals_countetotal_deals_valueem empresas devolvem0sempre. - Filtro
stage_idem negócios — compara com o nome da etapa, não com o ID. meta.totalem execuções de agente — ignora os filtros aplicados.template_nameem número por QR Code — é ignorado em silêncio.external_idno envio — só existe na resposta de envio de modelo.
Spec OpenAPI completo
O arquivo em/api/docs/openapi.json passou de 42 para 68 caminhos (97 operações), com components.schemas preenchido — antes estava vazio. Agora cobre 100% das rotas da API pública e serve para gerar cliente, importar no Postman e validar payloads.
Um teste novo (openapiCobertura.test.mjs) compara o que o servidor registra com o que o spec declara, nos dois sentidos, e falha na divergência. É a mesma trava que mantém a referência de webhooks em dia.
Páginas novas
Limites e cotas · Versionamento · Changelog · Modelos do WhatsApp Oficial · Enviar pela conversa · Guias de integraçãoCréditos de mensagem
As quatro páginas viraram uma só. A funcionalidade está descontinuada — as mensagens do WhatsApp Oficial são cobradas pela Meta direto na conta do cliente. As rotas continuam publicadas e explicam o motivo em vez de devolver404.

