Pular para o conteúdo

Documentação da API 160 rotas

Sua primeira mensagem no WhatsApp em 2 minutos

Um token, uma chamada HTTP e a mensagem chega. Comece pelo passo a passo; a referência completa, com exemplos prontos em cURL, JavaScript, PHP e Python, vem logo depois.

  1. 1Pegue o tokenno painel, no cartão do número
  2. 2Copie o códigopronto, na sua linguagem
  3. 3Veja chegarno WhatsApp do destino
URL base https://dropestore.com/wp-json/wdm/v1
POST/send/text
curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/send/text' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999",  "text": "Olá {{first_name}}! Seu pedido #1234 foi confirmado e sai para entrega amanhã.",  "delay": 1200,  "readchat": true,  "track_source": "crm",  "track_id": "pedido-1234"}'
200 "success": true Mensagem enviada

Comece aqui

Envie a primeira mensagem

Três passos, nenhuma instalação. Se você nunca usou uma API, tudo bem: cada passo diz exatamente o que fazer.

  1. Pegue o token do seu número

    O token é a senha do seu número para a API: é ele que prova que a chamada é sua. Cada número conectado (aqui chamamos de dispositivo) tem o próprio token.

    1. Entre no painel e conecte o número lendo o QR Code, como no WhatsApp Web.
    2. No cartão do número, clique em Token.
    3. Copie o valor. Ele começa com dwa_.
    Abrir o painel Ainda não tem conta? Faça o teste grátis de 1 dia, com todas as rotas liberadas.
  2. Faça a primeira chamada

    Preencha os campos e o código se ajusta sozinho. Depois é só copiar e rodar: o cURL roda direto no terminal; as outras linguagens, no seu projeto.

    Com DDI e DDD, só números: 55 + 11 + o número.

    O que você digita aqui fica só nesta aba: não é salvo nem enviado a lugar nenhum. Todos os exemplos da página passam a usar o seu token e o seu número.

    curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/send/text' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999",  "text": "Olá {{first_name}}! Seu pedido #1234 foi confirmado e sai para entrega amanhã.",  "delay": 1200,  "readchat": true,  "track_source": "crm",  "track_id": "pedido-1234"}'
  3. Confira a resposta

    Deu certo quando a API responde 200 com success: true. A mensagem chega no WhatsApp do número que você escolheu em poucos segundos.

    success
    true quando deu certo, false quando não.
    data.messageid
    O identificador da mensagem. Guarde: é com ele que você edita, apaga ou reage depois.
    data.chatid
    Para quem foi, no formato do WhatsApp (o JID, explicado logo abaixo).
    data.messageType
    O tipo da mensagem enviada, como text.
    200 Resposta
    {
      "success": true,
      "data": {
        "id": "3EB0538DA65A59F6D8A251",
        "messageid": "3EB0538DA65A59F6D8A251",
        "chatid": "5511999999999@s.whatsapp.net",
        "fromMe": false,
        "messageType": "text",
        "messageTimestamp": 1792500000000,
        "status": "success",
        "wasSentByApi": true
      }
    }

Se der erro

A resposta traz success: false e um code que diz o motivo. Os quatro mais comuns no começo:

  • Token errado ou trocado

    O token não existe ou foi substituído por um novo. Copie o token atual do dispositivo no painel.

  • Número desconectado

    O número não está conectado. Leia o QR Code no painel ou use o código de pareamento.

  • Parâmetro inválido

    Parâmetro faltando, com tipo errado, fora da lista de valores ou do tamanho permitido. Veja a lista errors com cada campo.

  • Muitas chamadas seguidas

    Você passou do limite de requisições do plano. Espere os segundos indicados em Retry-After.

Ver todos os erros e o que fazer em cada um

Comece aqui

Conceitos em 1 minuto

Seis palavras que aparecem em toda a documentação. Leia uma vez e o resto fica fácil.

Dispositivo

Um número de WhatsApp conectado à DROPE. Você conecta lendo um QR Code, como no WhatsApp Web, e pode ter vários.

Token

A senha de um dispositivo para a API. Vai no header token de toda chamada e começa com dwa_.

Chave da conta

Uma senha da conta inteira, só para criar e gerenciar dispositivos pela API. Vai em Authorization: Bearer e começa com dwk_.

Número e JID

Para quem a mensagem vai, no campo number. JID é o endereço completo de uma conversa no WhatsApp.

Contato
5511999999999
Grupo
120363000000000000@g.us
Canal
120363000000000000@newsletter

Webhook

Um endereço do seu sistema que a DROPE chama quando algo acontece: mensagem recebida, entregue ou lida. É assim que você recebe mensagens, sem ficar perguntando.

Resposta

Sempre JSON com success. Deu certo: os dados vêm em data. Deu errado: code diz o motivo e error explica em português.

Guias

Guias por tarefa

Escolha o que você quer fazer. Cada guia é curto, tem o código pronto e aponta a rota certa na referência.

Guia

Enviar texto e mídia

Texto você já enviou no Comece aqui. Para imagem, vídeo, áudio ou documento, use POST/send/media: o mesmo number, mais o type da mídia e o file, que pode ser uma URL pública ou o arquivo em base64.

curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/send/media' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999",  "type": "image",  "file": "https://seusite.com.br/img/promo-outubro.jpg",  "text": "Promoção válida até domingo. Responda QUERO para garantir a sua."}'

Valores de type

image
Imagem (JPG de preferência)
video
Vídeo em MP4
videoplay
Vídeo que toca sozinho, em repetição
document
Documento: PDF, DOCX, XLSX e outros
audio
Áudio comum (MP3 ou OGG)
myaudio
Mensagem de voz (alternativa)
ptt
Mensagem de voz, como gravada no app
ptv
Vídeo redondo, como gravado no app
sticker
Figurinha

Prefira URL a base64. A chamada fica menor e mais rápida, e não esbarra no tamanho máximo do corpo. A URL precisa ser pública: o servidor da API baixa o arquivo dela.

Outros formatos

Botões, listas, enquetes, contato, localização e PIX têm rota própria, com o mesmo number:

Guia

Receber mensagens

A API não fica de conversa aberta com o seu sistema: quando algo acontece no número, ela chama o seu webhook com um POST em JSON.

  1. Tenha um endereço público

    Uma rota do seu sistema que aceite POST, em https:// e acessível pela internet, como https://seu-sistema.com/webhook. Endereços de rede interna são recusados.

  2. Cadastre o endereço

    Com POST/webhook, escolha a url e os events que quer receber. Inclua wasSentByApi em excludeMessages para não receber de volta o que o seu sistema enviou.

    curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/webhook' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "enabled": true,  "url": "https://seusite.com.br/webhooks/whatsapp",  "events": [    "messages",    "messages_update",    "connection"  ],  "excludeMessages": [    "wasSentByApi"  ],  "addUrlEvents": false,  "addUrlTypesMessages": false}'

    A resposta traz o segredo de assinatura do webhook. Ele aparece só nessa hora: guarde no servidor.

  3. Confira a assinatura e responda 200

    Toda entrega vem com o header X-DROPE-Signature. Calcule o HMAC-SHA256 do corpo cru com o segredo e compare: se não bater, recuse. Responda 200 primeiro e processe depois.

    const crypto = require('node:crypto');const http = require('node:http');const SECRET = process.env.DROPE_WEBHOOK_SECRET;function assinaturaValida(raw, recebida) {  const esperada = 'sha256=' + crypto.createHmac('sha256', SECRET).update(raw).digest('hex');  const a = Buffer.from(esperada);  const b = Buffer.from(recebida || '');  return a.length === b.length && crypto.timingSafeEqual(a, b);}http.createServer((req, res) => {  const partes = [];  req.on('data', (c) => partes.push(c));  req.on('end', () => {    const raw = Buffer.concat(partes); // corpo cru, antes de qualquer JSON.parse    if (!assinaturaValida(raw, req.headers['x-drope-signature'])) {      res.writeHead(401);      return res.end();    }    res.writeHead(200);    res.end('ok'); // responda primeiro    const evento = JSON.parse(raw.toString('utf8'));    setImmediate(() => processar(evento)); // processe depois  });}).listen(3000);
Eventos, filtros, headers e novas tentativas

Guia

Enviar para muitos contatos

Para mandar a mesma mensagem a uma lista, não faça um laço chamando o envio contato por contato. Crie uma campanha: ela entra numa fila, espera um intervalo sorteado entre cada envio (delayMin e delayMax, em segundos) e pode ser pausada e acompanhada. Isso protege o seu número.

curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/sender/simple' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "numbers": [    "5511999999999",    "5521988887777",    "5531977776666"  ],  "type": "text",  "folder": "Black Friday 2026",  "info": "Aviso de abertura da Black Friday",  "delayMin": 10,  "delayMax": 30,  "scheduled_for": 1795780800000,  "text": "Oi! A Black Friday da loja começou. Veja as ofertas: https://seusite.com.br/black-friday",  "linkPreview": true}'

Depois de criar

GET/sender/stats
Acompanhar o andamento e as métricas.
GET/sender/listfolders
Listar as campanhas e os identificadores delas.
POST/sender/edit
Pausar, continuar ou cancelar uma campanha.
POST/sender/advanced
Mensagens diferentes para cada contato, numa campanha só.

Variações de texto. Escreva {Olá|Oi} e cada pessoa recebe uma das opções. Mensagens menos repetidas ajudam a manter o número saudável. Cada destinatário conta 1 mensagem.

Guia

Trabalhar com grupos

Todo grupo tem um JID terminado em @g.us. É com ele que você envia mensagens para o grupo (no mesmo campo number) e administra participantes.

  1. Crie ou encontre o grupo

    Crie com POST/group/create ou encontre um existente com POST/group/list. As duas respostas trazem o JID.

    curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/group/create' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "name": "Equipe de Vendas",  "participants": [    "5511999999999",    "5521987654321"  ]}'
  2. Envie para o grupo

    Use qualquer rota de envio, como POST/send/text, com o JID do grupo em number.

    Corpo da requisição
    {
      "number": "120363000000000000@g.us",
      "text": "Bom dia, pessoal!"
    }
  3. Gerencie participantes

    Com POST/group/updateParticipants você adiciona, remove, promove a administrador e aprova pedidos de entrada. O número conectado precisa ser administrador do grupo.

    Valores de actionaddremovepromotedemoteapprovereject

Fundamentos

Autenticação

Há duas credenciais. Cada rota diz qual usa, no selo de autenticação.

Token do dispositivo

Começa com dwa_

Como enviar
token: SEU_TOKEN
Serve para
Todas as rotas do WhatsApp: envio, conversas, grupos, webhooks, campanhas.
Onde encontrar
No painel, no cartão do dispositivo, botão Token.

Chave da conta

Começa com dwk_

Como enviar
Authorization: Bearer SUA_CHAVE
Serve para
Gerenciar dispositivos: criar, listar, apagar, QR Code, token e webhooks, pelas rotas /devices.
Onde encontrar
No painel, no cartão Chave da API.

Guarde as credenciais no servidor. Nunca coloque token ou chave em código que roda no navegador ou no aplicativo do cliente: quem tem o token envia mensagens pelo seu número. Se vazar, gere um novo no painel; o anterior para de funcionar na hora.

Fundamentos

Formato das respostas

Toda resposta tem o mesmo envelope, então o seu código trata sucesso e erro de um jeito só.

Em caso de sucesso, success é true e o conteúdo vem em data. Em caso de erro, success é false, error traz uma mensagem em português para mostrar ou registrar e code traz um código estável para o seu programa decidir o que fazer.

200 Sucesso
{
  "success": true,
  "data": {
    "id": "3EB0538DA65A59F6D8A251",
    "messageid": "3EB0538DA65A59F6D8A251",
    "chatid": "5511999999999@s.whatsapp.net",
    "fromMe": false,
    "messageType": "text",
    "messageTimestamp": 1792500000000,
    "status": "success",
    "wasSentByApi": true
  }
}
422 Erro de validação
{
  "success": false,
  "error": "O campo number é obrigatório.",
  "code": "VALIDATION",
  "request_id": "9f2c4e1a7b3d5f60",
  "errors": [
    {
      "field": "number",
      "message": "Obrigatório."
    }
  ]
}

O request_id identifica a chamada. Ele vem no corpo dos erros e no header X-Request-Id de toda resposta: registre esse valor e informe ao suporte quando precisar de ajuda com uma chamada específica.

Quando o erro vem do WhatsApp: reason

Se quem recusou o pedido foi o WhatsApp, a resposta pode trazer também reason: a chave estável do motivo informada por ele (só letras minúsculas, números e _), como instance_not_paired. Decida primeiro pelo code do nosso catálogo; use o reason quando precisar do detalhe. Ele só aparece quando existe.

409 Erro com reason
{
  "success": false,
  "error": "O dispositivo não está conectado ao WhatsApp. Conecte pelo QR Code e tente de novo.",
  "code": "DEVICE_DISCONNECTED",
  "reason": "instance_not_paired",
  "request_id": "5d1e8a0f3c27b946"
}

Algumas rotas antigas de gerenciamento mantêm o formato que já tinham, para não quebrar integrações existentes. O exemplo de resposta de cada rota mostra o formato exato.

Headers de resposta

X-Request-IdSempre
Identificador da chamada, o mesmo do campo request_id.
X-RateLimit-LimitRotas com limite
Quantas chamadas cabem de uma vez (a rajada do plano).
X-RateLimit-RemainingRotas com limite
Quantas ainda cabem agora.
X-RateLimit-ResetRotas com limite
Segundos até a capacidade encher de novo.
Retry-AfterRespostas 429
Segundos para esperar antes de tentar de novo. O mesmo valor vem em retry_after no corpo.
Cache-Control: no-storeSempre
Respostas da API não devem ser guardadas em cache.

Fundamentos

Limites por plano

O limite vale por dispositivo e funciona como um balde: cabem algumas chamadas seguidas (a rajada) e o balde volta a encher no ritmo de chamadas por segundo do plano.

  • Teste grátis

    1chamadas por segundo

    Rajada
    3
    Dispositivos
    1

    1 dia, todas as rotas, até 100 mensagens.

  • Beginner

    3chamadas por segundo

    Rajada
    6
    Dispositivos
    1

    Sem limite de mensagens.

  • Growth

    6chamadas por segundo

    Rajada
    12
    Dispositivos
    3

    Sem limite de mensagens.

  • Business

    10chamadas por segundo

    Rajada
    20
    Dispositivos
    10

    Sem limite de mensagens.

Teste grátis de 1 dia com todas as rotas liberadas e até 100 mensagens. Se você não assinar um plano até o fim do teste, os dispositivos são desconectados e excluídos automaticamente.

As rotas de gerenciamento da conta (/devices, com a chave da conta) têm um limite à parte: 60 chamadas por minuto por conta.

Passou do limite, a API responde 429 com o código RATE_LIMITED e o header Retry-After. Espere esse tempo antes de repetir. Para enviar para muitos contatos, use campanhas: elas entram numa fila e respeitam os intervalos sozinhas.

429 Limite atingido
{
  "success": false,
  "error": "Muitas chamadas em pouco tempo. Tente de novo em 1 segundo.",
  "code": "RATE_LIMITED",
  "request_id": "0b7e91c2d4a85f13",
  "retry_after": 1
}

Fundamentos

O que conta como mensagem

Cada rota mostra no selo de mensagens se conta ou não.

Fundamentos

Tamanho máximo do corpo

Cada rota aceita um corpo de até um certo tamanho. Acima dele, a resposta é 413 com PAYLOAD_TOO_LARGE, antes de qualquer processamento.

1 MB
As demais rotas (137)

Para mídia, prefira enviar a URL pública do arquivo em vez do conteúdo em base64: a chamada fica menor e mais rápida.

Fundamentos

Códigos HTTP

200Sucesso
O pedido foi aceito. Os dados vêm em data.
400Pedido recusado
O corpo não é JSON válido ou o WhatsApp recusou o pedido.
401Não autenticado
Token ou chave ausente ou inválido.
403Sem permissão
Plano inativo, teste encerrado, dispositivo suspenso ou ação não permitida.
404Não encontrado
Rota, dispositivo ou recurso do WhatsApp inexistente.
405Método não aceito
A rota existe, mas não com este método.
409Conflito
O estado atual impede a ação, como número desconectado.
413Corpo grande demais
O corpo passou do tamanho máximo da rota.
422Parâmetros inválidos
Faltou campo obrigatório ou algum valor está fora do permitido.
429Muitas chamadas
Limite por segundo do plano, limite do teste ou pausa pedida pelo WhatsApp.
500Erro interno
Falha inesperada do nosso lado.
502Falha do serviço
O serviço do WhatsApp falhou. Tente de novo.
504Tempo esgotado
O WhatsApp demorou demais para responder.

Decida pelo code do corpo, não só pelo status: o mesmo status pode ter causas diferentes (um 429 pode ser o limite do plano ou o limite do teste).

Fundamentos

Catálogo de erros

Todos os códigos que a API devolve no campo code, com o que significam e o que fazer. Os códigos são estáveis; o texto em error pode mudar. Quando o erro vem do WhatsApp, a resposta pode trazer também reason, a chave do motivo informada por ele (veja como usar).

  • TOKEN_MISSING 401

    Faltou o token

    O header token (ou a chave da conta, nas rotas de conta) não foi enviado. Envie o token do dispositivo no header token.

    Mensagem padrãoInforme o token do dispositivo no header token.

  • TOKEN_INVALID 401

    Token errado ou trocado

    O token não existe ou foi substituído por um novo. Copie o token atual do dispositivo no painel.

    Mensagem padrãoToken inválido.

  • API_KEY_INVALID 401

    Chave da conta errada

    A chave enviada em Authorization: Bearer não existe ou foi trocada. Gere ou copie a chave atual no painel.

    Mensagem padrãoChave da conta inválida.

  • SESSION_REQUIRED 401

    Só pelo painel

    Rota exclusiva do painel: exige estar logado e o nonce da sessão.

    Mensagem padrãoEntre na sua conta para continuar.

  • PLAN_INACTIVE 403

    Plano inativo

    A conta não tem plano ativo com WhatsApp. Assine ou renove um plano para voltar a usar a API.

    Mensagem padrãoSeu plano não inclui a API de WhatsApp ou está vencido.

  • TRIAL_EXPIRED 403

    Teste grátis encerrado

    O período de 24 horas do teste grátis acabou. Assine um plano para continuar usando a API.

    Mensagem padrãoO teste grátis de 24 horas terminou. Assine um plano para continuar.

  • DEVICE_SUSPENDED 403

    Dispositivo suspenso

    A conta tem mais dispositivos do que o plano permite; os mais recentes ficam suspensos. Apague um dispositivo ou aumente o limite com dispositivos extras.

    Mensagem padrãoEste dispositivo está suspenso porque a conta passou do limite do plano.

  • DEVICE_LIMIT 403

    Limite de dispositivos

    Não é possível criar outro dispositivo no plano atual. Apague um dispositivo ou adicione dispositivos extras.

    Mensagem padrãoLimite de dispositivos do plano atingido.

  • FORBIDDEN 403

    Sem permissão

    O recurso pertence a outra conta ou a ação não é permitida para este acesso.

    Mensagem padrãoVocê não tem permissão para esta ação.

  • NOT_FOUND 404

    Não encontrado

    A rota ou o recurso pedido não existe.

    Mensagem padrãoRecurso não encontrado.

  • DEVICE_NOT_FOUND 404

    Dispositivo não encontrado

    Nenhum dispositivo da conta tem esse identificador ou nome.

    Mensagem padrãoDispositivo não encontrado.

  • METHOD_NOT_ALLOWED 405

    Método errado

    A rota existe, mas não aceita esse método HTTP.

    Mensagem padrãoMétodo não permitido nesta rota.

  • CONFLICT 409

    Conflito

    Nome repetido ou outra operação igual em andamento. Confira os dados ou tente de novo em instantes.

    Mensagem padrãoConflito com o estado atual.

  • PAYLOAD_TOO_LARGE 413

    Corpo grande demais

    Reduza o tamanho do corpo ou envie a mídia por URL.

    Mensagem padrãoO corpo da requisição passou do tamanho máximo desta rota.

  • VALIDATION 422

    Parâmetro inválido

    Parâmetro faltando, com tipo errado, fora da lista de valores ou do tamanho permitido. Veja a lista errors com cada campo.

    Mensagem padrãoAlguns parâmetros não estão corretos.

  • INVALID_JSON 400

    JSON inválido

    Envie um objeto JSON válido com Content-Type: application/json.

    Mensagem padrãoO corpo enviado não é um JSON válido.

  • RATE_LIMITED 429

    Muitas chamadas seguidas

    Você passou do limite de requisições do plano. Espere os segundos indicados em Retry-After.

    Mensagem padrãoMuitas requisições. Aguarde um instante e tente de novo.

  • TRIAL_LIMIT 429

    Mensagens do teste esgotadas

    O teste grátis tem teto de 100 mensagens por conta. Assine um plano para continuar enviando.

    Mensagem padrãoO teste grátis permite 100 mensagens e o limite foi atingido. Assine um plano para continuar enviando.

  • WHATSAPP_REJECTED 400

    Recusado pelo WhatsApp

    O WhatsApp não aceitou o pedido. A mensagem explica o motivo; corrija os dados e tente de novo.

    Mensagem padrãoO WhatsApp recusou o pedido.

  • WHATSAPP_NOT_FOUND 404

    Não existe no WhatsApp

    O contato, grupo, mensagem ou recurso pedido não existe no WhatsApp.

    Mensagem padrãoNão encontrado no WhatsApp.

  • WHATSAPP_CONFLICT 409

    Conflito no WhatsApp

    O pedido conflita com o estado atual no WhatsApp (ex.: já existe, já foi feito).

    Mensagem padrãoO WhatsApp informou um conflito com o estado atual.

  • WHATSAPP_FORBIDDEN 403

    WhatsApp não permitiu

    Falta permissão no WhatsApp (ex.: o número não é administrador do grupo).

    Mensagem padrãoO WhatsApp não permitiu esta ação.

  • DEVICE_DISCONNECTED 409

    Número desconectado

    O número não está conectado. Leia o QR Code no painel ou use o código de pareamento.

    Mensagem padrãoO dispositivo não está conectado ao WhatsApp. Conecte pelo QR Code e tente de novo.

  • PROVIDER_BUSY 429

    WhatsApp ocupado

    Limite temporário do serviço de WhatsApp. Espere os segundos indicados em Retry-After.

    Mensagem padrãoO serviço do WhatsApp está ocupado. Tente de novo em instantes.

  • PROVIDER_ERROR 502

    Falha temporária

    Falha temporária do serviço de WhatsApp. Tente de novo em instantes; se persistir, fale com o suporte informando o request_id.

    Mensagem padrãoO serviço do WhatsApp não respondeu como esperado. Tente de novo em instantes.

  • PROVIDER_TIMEOUT 504

    Tempo esgotado

    Tempo de resposta esgotado. Tente de novo; para envios grandes, prefira campanhas.

    Mensagem padrãoO serviço do WhatsApp demorou demais para responder. Tente de novo em instantes.

  • INTERNAL 500

    Erro interno

    Erro inesperado do nosso lado. Se persistir, fale com o suporte informando o request_id.

    Mensagem padrãoErro interno. Tente de novo em instantes.

Fundamentos

Webhooks em detalhe

Tudo o que acontece no número chega pelo webhook. O passo a passo está no guia Receber mensagens; aqui ficam os detalhes.

Como a entrega funciona

  1. 1

    O WhatsApp avisa a DROPE do evento.

  2. 2

    A DROPE organiza o evento, coloca numa fila e entrega à sua URL com um POST em JSON.

  3. 3

    Seu sistema responde 2xx. Qualquer outra resposta, ou nenhuma em 8 segundos, conta como falha e a entrega é repetida.

Você pode ter mais de um webhook por dispositivo, cada um com seus eventos e filtros.

Eventos

Escolha os eventos em events. Só os escolhidos são entregues.

connection
O número conectou, desconectou ou mudou de estado.
history
Mensagens antigas recebidas na sincronização do histórico.
messages
Mensagem nova, recebida ou enviada.
messages_update
Mudança em mensagem: entregue, lida, editada ou apagada.
newsletter_messages
Mensagens dos canais que o número acompanha.
status_posts
Publicações de status dos contatos.
call
Ligações recebidas.
contacts
Contatos criados ou atualizados.
presence
Contato digitando, gravando áudio ou online.
groups
Grupos criados, alterados ou com mudança de participantes.
labels
Etiquetas criadas, editadas ou apagadas.
chats
Conversas criadas ou atualizadas.
chat_labels
Etiquetas aplicadas ou removidas de uma conversa.
sender
Andamento das campanhas de envio em massa.

Filtros

Use excludeMessages para não receber certos tipos de mensagem. O mais comum é wasSentByApi, que evita receber de volta o que o seu próprio sistema enviou (e cair num laço de respostas automáticas).

wasSentByApi
Ignora mensagens enviadas pela API.
wasNotSentByApi
Ignora mensagens que não foram enviadas pela API.
fromMeYes
Ignora mensagens enviadas pelo próprio número.
fromMeNo
Ignora mensagens recebidas de outras pessoas.
isGroupYes
Ignora mensagens de grupos.
isGroupNo
Ignora mensagens de conversas individuais.

Sufixos na URL

Com addUrlEvents ligado, o nome do evento é acrescentado ao fim da sua URL. Com addUrlTypesMessages, o tipo da mensagem também. Isso ajuda a separar rotas no seu sistema sem ler o corpo.

Nenhum sufixo
https://seu-sistema.com/webhook
addUrlEvents
https://seu-sistema.com/webhook/messages
addUrlEvents e addUrlTypesMessages
https://seu-sistema.com/webhook/messages/conversation

Headers da entrega

User-Agent
DROPE-Webhook/2.0
X-DROPE-Event
Nome do evento, como messages.
X-DROPE-Delivery
Identificador único da entrega. Repetições da mesma entrega trazem o mesmo valor: use-o para não processar duas vezes.
X-DROPE-Signature
sha256= seguido do HMAC-SHA256 do corpo, em hexadecimal, calculado com o segredo de assinatura do webhook. Veja como conferir a assinatura.

Novas tentativas

Se a entrega falhar, ela é repetida nestes intervalos. Depois da última, a entrega é descartada e registrada; consulte as falhas recentes com GET/webhook/errors.

  1. 1ª nova tentativa10 s
  2. 2ª nova tentativa30 s
  3. 3ª nova tentativa2 min
  4. 4ª nova tentativa10 min
  5. 5ª nova tentativa30 min

Responda 200 rápido. Confirme o recebimento primeiro e processe depois, numa fila ou em segundo plano. Um webhook que demora a responder acumula repetições e atrasa os próximos eventos.

Fundamentos

Boas práticas

  • Muitos destinatários: use campanhas. Em vez de um laço chamando o envio contato por contato, crie uma campanha (POST/sender/simplePOST/sender/advanced). Ela entra numa fila, respeita intervalos e pode ser pausada ou acompanhada.
  • Envios pesados: prefira o modo assíncrono. As rotas do grupo Envio assíncrono respondem na hora com um identificador e o resultado chega pelo webhook.
  • Respeite o Retry-After. Num 429, espere o tempo indicado. Em 502 e 504, tente de novo com espera crescente (1 s, 2 s, 4 s), no máximo algumas vezes.
  • Evite envio duplicado. Se uma chamada de envio estourar o tempo do seu lado, ela pode ter sido feita mesmo assim. Antes de repetir, confira pelo webhook messages ou pela busca de mensagens, usando o track_id que você mandou no envio.
  • No webhook, use o X-DROPE-Delivery para ignorar entregas repetidas.
  • Registre o request_id das respostas com erro. Com ele o suporte encontra a chamada em segundos.
  • Use tempo limite de 30 segundos no seu cliente HTTP e reaproveite a conexão quando fizer várias chamadas seguidas.
  • Mantenha o número saudável. Envie para quem pediu para receber, varie o texto e evite rajadas para contatos novos: o WhatsApp restringe números com muitas denúncias.

Fundamentos

Migração do token antigo

Os dispositivos criados antes da versão 2.0 da API tinham outro formato de token. Esse token antigo continua funcionando em todas as rotas, sem nenhuma mudança na sua integração, até você gerar um token novo.

  1. 1

    No painel, abra o cartão do dispositivo e clique em Gerar novo token. Pela API, use POST/devices/{id}/token/rotate.

  2. 2

    Troque o token na sua integração. O novo começa com dwa_.

  3. 3

    A partir desse momento o token antigo para de funcionar e passa a receber TOKEN_INVALID.

Os caminhos das rotas, o header token e o envelope success/data não mudaram. A chave da conta pode ser trocada pelo painel ou por POST/token/refresh; a anterior deixa de valer na hora.

Referência

Todas as rotas

160 rotas em 20 grupos, na ordem em que uma integração costuma precisar delas. Cada rota tem parâmetros, exemplo pronto em quatro linguagens e a resposta esperada.

Referência 13

Enviar mensagem

Texto, mídia, botões, listas, enquetes, localização, PIX e mais.

Rotas para enviar mensagens de vários tipos (texto, mídia, contato, localização, menus interativos, carrossel, status, cobranças e eventos), mostrar "Digitando..." no chat e atualizar pedidos cobrados. O destino vai em number: telefone no formato internacional (5511999999999), contato (@s.whatsapp.net ou @lid), grupo (@g.us) ou, onde a rota indica, canal (@newsletter).

Ler a introdução completa

Campos opcionais comuns

As rotas de envio aceitam os campos opcionais comuns listados neste grupo. Cada rota mostra, na própria lista de parâmetros, quais ela aceita: forward, por exemplo, não existe nos menus, no botão de localização, no botão PIX, na cobrança nem no evento. O status, a presença e a atualização de pedido não usam esses campos (na presença, delay é a duração).

Envio para grupos

Use em number o ID do grupo, que termina em @g.us (ex.: 120363012345678901@g.us). Para descobrir o ID, use o chatid recebido no webhook quando alguém escreve no grupo ou liste os grupos com GET /group/list.

Menções

mentions recebe números separados por vírgula e só vale em grupos. Para mencionar todos, inclua @all ou @todos no próprio texto (@todos vira @all antes do envio); "all" em mentions também menciona todos, por compatibilidade.

Variáveis

Os campos de texto que indicam esse recurso aceitam variáveis, trocados pelos dados do chat no envio:

  • {{name}}: nome do chat, na primeira opção disponível entre nome do lead (lead_name), nome completo do lead (lead_fullName), nome do contato no WhatsApp (wa_contactName) e nome do perfil (wa_name);
  • {{first_name}}: primeira palavra válida desse nome (com pelo menos 2 caracteres);
  • {{wa_name}} e {{wa_contactName}}: nome do perfil e nome do contato salvo no WhatsApp;
  • {{lead_name}}, {{lead_fullName}}, {{lead_personalid}} (CPF, CNPJ etc.), {{lead_email}}, {{lead_status}}, {{lead_notes}} e {{lead_assignedAttendant_id}} (ID do atendente designado): dados do lead;
  • {{lead_field01}} a {{lead_field20}}: os 20 campos personalizados.

O rótulo de um campo personalizado, definido em POST /instance/updateFieldsMap, não cria outro variável: mesmo que lead_field01 se chame "empresa", use {{lead_field01}}, não {{empresa}}. Exemplo: Olá {{first_name}}! Empresa: {{lead_field01}}. Para ver os dados de um chat antes de enviar, use POST /chat/find.

Limite de novas conversas

O WhatsApp pode recusar novas conversas por regras próprias de volume, qualidade ou limitação temporária. Nesse caso, o envio é recusado e a mensagem de erro explica o motivo. Para ver o estado atual desses limites na conta conectada, use GET /instance/wa_messages_limits.

Campos opcionais comuns

Valem nas rotas deste grupo que os listam nos próprios parâmetros.

  • delayinteiroopcional

    Atraso em milissegundos antes do envio. Durante o atraso, o contato vê "Digitando..." (ou "Gravando áudio...", conforme o tipo). Exemplo: 5000 (5 segundos).

  • readchatbooleanoopcional

    Marca o chat como lido após o envio (zera o contador de não lidas).

  • readmessagesbooleanoopcional

    Marca como lidas as últimas 10 mensagens recebidas do chat (não as enviadas por você). Útil para confirmar a leitura antes de responder; o readchat só zera o contador.

  • replyidtextoopcional

    ID da mensagem a responder: cria uma resposta vinculada à original, que precisa estar no histórico do dispositivo. O suporte varia por tipo de mensagem.

  • mentionstextoopcional

    Números a mencionar, separados por vírgula (ex.: "5511999999999,5511888888888"). Para mencionar todos, use @all ou @todos no próprio texto; "all" neste campo também menciona todos, por compatibilidade. Só em grupos (number terminando em @g.us).

  • forwardbooleanoopcional

    Marca a mensagem como encaminhada (indicador "Encaminhada" no WhatsApp).

  • track_sourcetextoopcional

    Origem do rastreamento: o sistema que envia a mensagem (ex.: "crm", "chatbot"). Dá para filtrar por ela em POST /message/find.

  • track_idtextoopcional

    ID livre para acompanhar a mensagem no seu sistema. Aceita valores repetidos (não há validação de unicidade), então não serve como chave de idempotência.

  • asyncbooleanoopcional

    Se true, envia pela fila interna sem segurar a requisição. A resposta 200 indica só que a mensagem entrou na fila; o envio pode falhar depois. Acompanhe pelo id em POST /message/find ou pelo evento messages_update.

Enviar mensagem de texto

POST /send/text
  • Token do dispositivo
  • Conta 1 mensagem
  • Corpo até 1 MB

No teste grátis, entra no limite de mensagens e recebe a assinatura DROPE.

Envia uma mensagem de texto para um contato, grupo ou canal/newsletter.

Ver mais detalhes

Recursos Específicos

  • Prévia de links, automática ou personalizada
  • Formatação básica do texto
  • Substituição automática de variáveis dinâmicos

Envio para Newsletter

Para enviar texto para um canal, use o mesmo campo number, mas informe o JID completo do canal:

  • Exemplo: 120363123456789012@newsletter
JSON
{
  "number": "120363123456789012@newsletter",
  "text": "Post publicado no canal"
}

Responder enquete, lista ou botão

Use este mesma rota para responder uma mensagem interativa que esteja salva no histórico local do dispositivo. Envie:

  • number: chat onde a mensagem original foi recebida ou enviada;
  • replyid: ID da mensagem interativa original;
  • text: seleção iniciada por >.

O marcador > é obrigatório para gerar uma resposta interativa. Sem ele, a API envia apenas uma mensagem de texto citando a original.

Responder uma enquete

Use a posição da opção, começando em 1. Nesta documentação pública, responda somente uma opção por requisição.

JSON
{
  "number": "5511999999999",
  "replyid": "3EB0ID_DA_ENQUETE",
  "text": ">1"
}
Responder uma lista

Prefira o rowId configurado ao criar a lista. Também são aceitos o texto exato do item ou sua posição (>1).

JSON
{
  "number": "5511999999999",
  "replyid": "3EB0ID_DA_LISTA",
  "text": ">plano_pro"
}
Responder um botão

Prefira o ID do botão de resposta rápida. Também são aceitos o texto exato exibido ou sua posição (>1). Isso vale para botões rápidos legados, templates, native flow e carrossel. Botões de URL, ligação ou cópia executam a própria ação e não são respondidos por este fluxo.

JSON
{
  "number": "5511999999999",
  "replyid": "3EB0ID_DOS_BOTOES",
  "text": ">confirmar"
}

A API devolve erro quando a mensagem original não está disponível ou a opção informada não existe.

Campos comuns

Aceita os campos opcionais comuns de envio, explicados na introdução do grupo Enviar mensagem: delay, readchat, readmessages, replyid, mentions, forward, track_source, track_id e async. Os textos aceitam variáveis (como {{first_name}}). Para enviar a um grupo, use em number o ID terminado em @g.us.

Prévia de links

Prévia automática
JSON
{
  "number": "5511999999999",
  "text": "Confira: https://exemplo.com",
  "linkPreview": true
}
Prévia personalizada
JSON
{
  "number": "5511999999999",
  "text": "Confira nosso site! https://exemplo.com",
  "linkPreview": true,
  "linkPreviewTitle": "Título Personalizado",
  "linkPreviewDescription": "Uma descrição personalizada do link",
  "linkPreviewImage": "https://exemplo.com/imagem.jpg",
  "linkPreviewLarge": true
}

Corpo da requisição (JSON)

Um objeto JSON com Content-Type: application/json.

  • numbertextoobrigatório

    Telefone no formato internacional, @s.whatsapp.net, @lid, grupo @g.us ou canal @newsletter.

    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) ou um ID de canal/newsletter (@newsletter).

    Exemplo
    5511999999999
  • texttextoobrigatório

    Para responder enquete, lista ou botão: comece com ">" (">1", ">plano_pro") e informe replyid. Sem ">", sai só uma mensagem citando a original.

    Texto da mensagem. Para responder enquete, lista ou botão, use uma seleção iniciada por > junto com replyid. Aceita variáveis em mensagens de texto comuns.

    Exemplo
    Olá {{name}}! Como posso ajudar?
  • linkPreviewbooleanoopcional

    Ativa a prévia de links. Com true, gera a prévia do primeiro link do texto. Com linkPreviewTitle, linkPreviewDescription ou linkPreviewImage, usa esses valores, e os que faltarem vêm do próprio link. Título ou descrição só com espaço saem da prévia, sem buscar no link.

    Exemplo
    true
  • linkPreviewTitletextoopcional

    Só tem efeito com linkPreview=true. Vazio usa o título do link; " " (um espaço) tira o título.

    Define um título personalizado para o prévia do link. Vazio usa o título do link; só com espaço (" "), o prévia sai sem título.

    Exemplo
    Título Personalizado
  • linkPreviewDescriptiontextoopcional

    Só tem efeito com linkPreview=true. Vazia usa a descrição do link; " " (um espaço) tira a descrição.

    Define uma descrição personalizada para o prévia do link. Vazia usa a descrição do link; só com espaço (" "), o prévia sai sem descrição.

    Exemplo
    Descrição personalizada do link
  • linkPreviewImagetextoopcional

    Só tem efeito com linkPreview=true.

    URL ou Base64 da imagem para usar no prévia do link

    Exemplo
    https://exemplo.com/imagem.jpg
  • linkPreviewLargebooleanoopcional

    Só tem efeito com linkPreview=true.

    Se true, gera um prévia grande com upload da imagem. Se false, gera um prévia pequeno sem upload

    Exemplo
    true
  • replyidtextocondicional

    Obrigatório para responder enquete, lista ou botão (text começando com ">").

    ID da mensagem a responder, que precisa estar no histórico do dispositivo. Com text iniciado por ">", gera a resposta nativa de enquete, lista ou botão quando o tipo original é suportado.

    Exemplo
    3EB0538DA65A59F6D8A251
  • mentionstextoopcional

    Só em grupos (number terminando em @g.us).

    Números a mencionar, separados por vírgula (ex.: "5511999999999,5511888888888"). Para mencionar todos, use @all ou @todos no próprio texto; "all" neste campo também menciona todos, por compatibilidade.

    Exemplo
    5511999999999,5511888888888
  • readchatbooleanoopcional

    Marca o chat como lido após o envio (zera o contador de não lidas).

    Exemplo
    true
  • readmessagesbooleanoopcional

    Marca como lidas as últimas 10 mensagens recebidas do chat (não as enviadas por você). Útil para confirmar a leitura antes de responder; o readchat só zera o contador.

    Exemplo
    true
  • delayinteiroopcional

    Atraso em milissegundos antes do envio. Durante o atraso, o contato vê "Digitando..." (ou "Gravando áudio...", conforme o tipo). Exemplo: 5000 (5 segundos).

    Exemplo
    1000
  • forwardbooleanoopcional

    Marca a mensagem como encaminhada (indicador "Encaminhada" no WhatsApp).

    Exemplo
    true
  • track_sourcetextoopcional

    Origem do rastreamento: o sistema que envia a mensagem (ex.: "crm", "chatbot"). Dá para filtrar por ela em POST /message/find.

    Exemplo
    chatwoot
  • track_idtextoopcional

    ID livre para acompanhar a mensagem no seu sistema. Aceita valores repetidos (não há validação de unicidade), então não serve como chave de idempotência.

    Exemplo
    msg_123456789
  • asyncbooleanoopcional

    Se true, envia pela fila interna sem segurar a requisição. A resposta 200 indica só que a mensagem entrou na fila; o envio pode falhar depois. Acompanhe pelo id em POST /message/find ou pelo evento messages_update.

    Exemplo
    false

Respostas

  • 200Mensagem enviada com sucesso
  • 400Requisição inválida
  • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
  • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
  • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
  • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
  • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After. Caso do WhatsApp (429): Limite de requisições excedido.
  • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
  • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
Erros possíveis 16

    Requisição

    curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/send/text' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999",  "text": "Olá {{first_name}}! Seu pedido #1234 foi confirmado e sai para entrega amanhã.",  "delay": 1200,  "readchat": true,  "track_source": "crm",  "track_id": "pedido-1234"}'

    Resposta

    200 JSON
    {
      "success": true,
      "data": {
        "id": "3EB0538DA65A59F6D8A251",
        "messageid": "3EB0538DA65A59F6D8A251",
        "chatid": "5511999999999@s.whatsapp.net",
        "sender": "5511999999999@s.whatsapp.net",
        "senderName": "Exemplo",
        "isGroup": false,
        "fromMe": false,
        "messageType": "text",
        "source": "",
        "messageTimestamp": 1792500000000,
        "status": "success",
        "text": "Olá! Tudo certo por aqui.",
        "quoted": "",
        "edited": "",
        "reaction": "",
        "vote": "",
        "convertOptions": "",
        "buttonOrListid": "",
        "owner": "5511999999999",
        "error": "",
        "content": [],
        "wasSentByApi": true,
        "pinned": true,
        "sendFunction": "",
        "sendPayload": [],
        "fileURL": "https://exemplo.com/arquivo.jpg",
        "callPeer": {
          "jid": "5511999999999@s.whatsapp.net",
          "name": "Exemplo",
          "imagePreviewUrl": "https://exemplo.com/arquivo.jpg"
        },
        "send_folder_id": "f3a9c2b1",
        "track_source": "",
        "track_id": "",
        "ai_metadata": {
          "agent_id": "",
          "turn": "",
          "flow_id": "",
          "request": {
            "messages": [],
            "tools": [],
            "options": {
              "model": "",
              "temperature": 1.5,
              "maxTokens": 10,
              "topP": 1.5,
              "frequencyPenalty": 1.5,
              "presencePenalty": 1.5
            }
          },
          "response": {
            "choices": [],
            "toolResults": [],
            "error": ""
          },
          "outcome": {
            "status": "sent",
            "texts": 1,
            "audio": true,
            "menus": 1,
            "files": 1,
            "handoff": "",
            "lead": [
              ""
            ],
            "detail": ""
          }
        },
        "sender_pn": "5511999999999@s.whatsapp.net",
        "sender_lid": "123456789012345@lid",
        "sender_image_preview_url": "https://exemplo.com/arquivo.jpg",
        "response": {
          "status": "success",
          "message": "Message sent successfully"
        }
      }
    }

    Enviar mídia (imagem, vídeo, áudio ou documento)

    POST /send/media
    • Token do dispositivo
    • Conta 1 mensagem
    • Corpo até 20 MB

    No teste grátis, entra no limite de mensagens e recebe a assinatura DROPE.

    Envia imagem, vídeo, áudio, documento ou figurinha para um contato, grupo ou canal. O arquivo vai em file, por URL ou base64.

    Ver mais detalhes

    Tipos de mídia (type)

    • image: imagem (de preferência JPG)
    • video: vídeo (só MP4)
    • videoplay: vídeo com reprodução automática em loop no WhatsApp
    • document: documento (PDF, DOCX, XLSX etc.)
    • audio: áudio comum (MP3 ou OGG)
    • myaudio: mensagem de voz (alternativa ao ptt)
    • ptt: mensagem de voz
    • ptv: mensagem de vídeo
    • sticker: figurinha

    A compressão é ajustada conforme o tipo.

    Regras por tipo

    • text é a legenda e aceita variáveis.
    • docName dá nome ao arquivo e só vale em document.
    • thumbnail vale em image, video, videoplay, ptv e document: URL HTTP/HTTPS, Data URL ou base64 de imagem com até 1 MiB e 4096 px por lado. A API converte para JPEG e usa essa imagem no lugar da miniatura automática.
    • Imagens e vídeos sem thumbnail recebem miniatura automática; documentos sem thumbnail ficam sem miniatura. Para documentos, use uma imagem de pelo menos 480 px, para uma prévia nítida no WhatsApp Web. Ao reenviar o mesmo documento, reutilize a mesma miniatura: o WhatsApp pode associar a prévia ao conteúdo do arquivo também em mensagens antigas.
    • viewOnce (visualização única) tem efeito em image, video, videoplay, ptv, audio, myaudio e ptt; em document e sticker é ignorado sem erro.
    • mimetype é opcional: o tipo do arquivo é detectado automaticamente.

    Tamanho

    Nesta rota, o corpo da requisição aceita até 20 MB, com o base64 incluído; acima disso, a resposta é 413. Com URL, só o endereço conta nesse limite.

    Envio para canal

    Para publicar num canal, informe em number o ID completo do canal, como 120363123456789012@newsletter.

    Campos comuns

    Aceita os campos opcionais comuns de envio, explicados na introdução do grupo Enviar mensagem: delay, readchat, readmessages, replyid, mentions, forward, track_source, track_id e async. Os textos aceitam variáveis (como {{first_name}}). Para enviar a um grupo, use em number o ID terminado em @g.us.

    Corpo da requisição (JSON)

    Um objeto JSON com Content-Type: application/json.

    • numbertextoobrigatório

      Telefone no formato internacional, @s.whatsapp.net, @lid, grupo @g.us ou canal @newsletter.

      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) ou um ID de canal/newsletter (@newsletter).

      Exemplo
      5511999999999
    • typetextoobrigatório

      Image (de preferência JPG), video (só MP4), videoplay (vídeo em loop), document (PDF, DOCX, XLSX...), audio (MP3 ou OGG), myaudio e ptt (mensagem de voz), ptv (mensagem de vídeo) ou sticker (figurinha).

      Tipo de mídia (image, video, videoplay, document, audio, myaudio, ptt, ptv, sticker)

      Valores
      imagevideovideoplaydocumentaudiomyaudiopttptvsticker
    • filetextoobrigatório

      Obrigatório em qualquer type. URL pública (a API precisa conseguir baixar o arquivo) ou base64; o corpo inteiro aceita até 20 MB.

      URL ou base64 do arquivo

      Exemplo
      https://exemplo.com/imagem.jpg
    • texttextoopcional

      Legenda da mídia; aceita variáveis.

      Texto descritivo (caption) - aceita variáveis

      Exemplo
      Veja esta foto!
    • docNametextoopcional

      Só em type=document.

      Nome do arquivo (apenas para documents)

      Exemplo
      relatorio.pdf
    • thumbnailtextoopcional

      Só em image, video, videoplay, ptv e document. URL HTTP/HTTPS, Data URL ou base64 de até 1 MiB e 4096 px por lado, convertida para JPEG. Em document, sem thumbnail não há miniatura; use pelo menos 480 px.

      URL HTTP/HTTPS, Data URL ou base64 de imagem para image, video, videoplay, ptv e document. Até 1 MiB e 4096 px por dimensão. Tem prioridade sobre a miniatura automática; documentos sem este campo não recebem miniatura automática.

      Exemplo
      https://exemplo.com/thumb.jpg
    • mimetypetextoopcional

      Opcional; detectado automaticamente.

      MIME type do arquivo (opcional, detectado automaticamente)

      Exemplo
      application/pdf
    • replyidtextoopcional

      ID da mensagem a responder: cria uma resposta vinculada à original, que precisa estar no histórico do dispositivo. O suporte varia por tipo de mensagem.

      Exemplo
      3EB0538DA65A59F6D8A251
    • mentionstextoopcional

      Só em grupos (number terminando em @g.us).

      Números a mencionar, separados por vírgula (ex.: "5511999999999,5511888888888"). Para mencionar todos, use @all ou @todos no próprio texto; "all" neste campo também menciona todos, por compatibilidade.

      Exemplo
      5511999999999,5511888888888
    • readchatbooleanoopcional

      Marca o chat como lido após o envio (zera o contador de não lidas).

      Exemplo
      true
    • readmessagesbooleanoopcional

      Marca como lidas as últimas 10 mensagens recebidas do chat (não as enviadas por você). Útil para confirmar a leitura antes de responder; o readchat só zera o contador.

      Exemplo
      true
    • delayinteiroopcional

      Atraso em milissegundos antes do envio. Durante o atraso, o contato vê "Digitando..." (ou "Gravando áudio...", conforme o tipo). Exemplo: 5000 (5 segundos).

      Exemplo
      1000
    • forwardbooleanoopcional

      Marca a mensagem como encaminhada (indicador "Encaminhada" no WhatsApp).

      Exemplo
      true
    • track_sourcetextoopcional

      Origem do rastreamento: o sistema que envia a mensagem (ex.: "crm", "chatbot"). Dá para filtrar por ela em POST /message/find.

      Exemplo
      chatwoot
    • track_idtextoopcional

      ID livre para acompanhar a mensagem no seu sistema. Aceita valores repetidos (não há validação de unicidade), então não serve como chave de idempotência.

      Exemplo
      msg_123456789
    • asyncbooleanoopcional

      Se true, envia pela fila interna sem segurar a requisição. A resposta 200 indica só que a mensagem entrou na fila; o envio pode falhar depois. Acompanhe pelo id em POST /message/find ou pelo evento messages_update.

      Exemplo
      false
    • viewOncebooleanoopcional

      Só tem efeito em image, video, videoplay, ptv, audio, myaudio e ptt; em document e sticker é ignorado.

      Recomendado para mídia com visualização única em tipos compatíveis (image, video, videoplay, ptv, audio, myaudio, ptt). Em tipos não compatíveis, o campo é ignorado silenciosamente.

      Exemplo
      false

    Respostas

    • 200Mídia enviada com sucesso
    • 400Requisição inválida. Caso do WhatsApp (415): formato de mídia não suportado.
    • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
    • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
    • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE). Caso do WhatsApp (413): Arquivo muito grande.
    • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
    • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
    • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
    • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
    Erros possíveis 16

      Requisição

      curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/send/media' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999",  "type": "image",  "file": "https://seusite.com.br/img/promo-outubro.jpg",  "text": "Promoção válida até domingo. Responda QUERO para garantir a sua."}'

      Resposta

      200 JSON
      {
        "success": true,
        "data": {
          "id": "3EB0538DA65A59F6D8A251",
          "messageid": "3EB0538DA65A59F6D8A251",
          "chatid": "5511999999999@s.whatsapp.net",
          "sender": "5511999999999@s.whatsapp.net",
          "senderName": "Exemplo",
          "isGroup": false,
          "fromMe": false,
          "messageType": "text",
          "source": "",
          "messageTimestamp": 1792500000000,
          "status": "success",
          "text": "Olá! Tudo certo por aqui.",
          "quoted": "",
          "edited": "",
          "reaction": "",
          "vote": "",
          "convertOptions": "",
          "buttonOrListid": "",
          "owner": "5511999999999",
          "error": "",
          "content": [],
          "wasSentByApi": true,
          "pinned": true,
          "sendFunction": "",
          "sendPayload": [],
          "fileURL": "https://exemplo.com/arquivo.jpg",
          "callPeer": {
            "jid": "5511999999999@s.whatsapp.net",
            "name": "Exemplo",
            "imagePreviewUrl": "https://exemplo.com/arquivo.jpg"
          },
          "send_folder_id": "f3a9c2b1",
          "track_source": "",
          "track_id": "",
          "ai_metadata": {
            "agent_id": "",
            "turn": "",
            "flow_id": "",
            "request": {
              "messages": [],
              "tools": [],
              "options": {
                "model": "",
                "temperature": 1.5,
                "maxTokens": 10,
                "topP": 1.5,
                "frequencyPenalty": 1.5,
                "presencePenalty": 1.5
              }
            },
            "response": {
              "choices": [],
              "toolResults": [],
              "error": ""
            },
            "outcome": {
              "status": "sent",
              "texts": 1,
              "audio": true,
              "menus": 1,
              "files": 1,
              "handoff": "",
              "lead": [
                ""
              ],
              "detail": ""
            }
          },
          "sender_pn": "5511999999999@s.whatsapp.net",
          "sender_lid": "123456789012345@lid",
          "sender_image_preview_url": "https://exemplo.com/arquivo.jpg",
          "response": {
            "status": "success",
            "message": "Media sent successfully",
            "fileUrl": "https://mmg.whatsapp.net/..."
          }
        }
      }

      Enviar cartão de contato (vCard)

      POST /send/contact
      • Token do dispositivo
      • Conta 1 mensagem
      • Corpo até 1 MB

      No teste grátis, entra no limite de mensagens.

      Envia um cartão de contato (vCard) para um contato ou grupo.

      Ver mais detalhes

      Recursos Específicos

      • vCard completo com nome, telefones, organização, email e URL
      • Múltiplos números de telefone (separados por vírgula)
      • Cartão clicável no WhatsApp para salvar na agenda
      • Informações profissionais (organização/empresa)

      Campos comuns

      Aceita os campos opcionais comuns de envio, explicados na introdução do grupo Enviar mensagem: delay, readchat, readmessages, replyid, mentions, forward, track_source, track_id e async. Os textos aceitam variáveis (como {{first_name}}). Para enviar a um grupo, use em number o ID terminado em @g.us.

      Exemplo Básico

      JSON
      {
        "number": "5511999999999",
        "fullName": "João Silva",
        "phoneNumber": "5511999999999,5511888888888",
        "organization": "Empresa XYZ",
        "email": "joao.silva@empresa.com",
        "url": "https://empresa.com/joao"
      }

      Corpo da requisição (JSON)

      Um objeto JSON com Content-Type: application/json.

      • numbertextoobrigatório

        Telefone no formato internacional, @s.whatsapp.net, @lid ou grupo @g.us.

        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).

        Exemplo
        5511999999999
      • fullNametextoobrigatório

        Nome completo do contato

        Exemplo
        João Silva
      • phoneNumbertextoobrigatório

        Um ou mais números, separados por vírgula.

        Números de telefone (separados por vírgula)

        Exemplo
        5511999999999,5511888888888
      • organizationtextoopcional

        Nome da organização/empresa

        Exemplo
        Empresa XYZ
      • emailtextoopcional

        Endereço de email

        Exemplo
        joao@empresa.com
      • urltextoopcional

        URL pessoal ou da empresa

        Exemplo
        https://empresa.com/joao
      • replyidtextoopcional

        ID da mensagem a responder: cria uma resposta vinculada à original, que precisa estar no histórico do dispositivo. O suporte varia por tipo de mensagem.

        Exemplo
        3EB0538DA65A59F6D8A251
      • mentionstextoopcional

        Só em grupos (number terminando em @g.us).

        Números a mencionar, separados por vírgula (ex.: "5511999999999,5511888888888"). Para mencionar todos, use @all ou @todos no próprio texto; "all" neste campo também menciona todos, por compatibilidade.

        Exemplo
        5511999999999,5511888888888
      • readchatbooleanoopcional

        Marca o chat como lido após o envio (zera o contador de não lidas).

        Exemplo
        true
      • readmessagesbooleanoopcional

        Marca como lidas as últimas 10 mensagens recebidas do chat (não as enviadas por você). Útil para confirmar a leitura antes de responder; o readchat só zera o contador.

        Exemplo
        true
      • delayinteiroopcional

        Atraso em milissegundos antes do envio. Durante o atraso, o contato vê "Digitando..." (ou "Gravando áudio...", conforme o tipo). Exemplo: 5000 (5 segundos).

        Exemplo
        1000
      • forwardbooleanoopcional

        Marca a mensagem como encaminhada (indicador "Encaminhada" no WhatsApp).

        Exemplo
        true
      • track_sourcetextoopcional

        Origem do rastreamento: o sistema que envia a mensagem (ex.: "crm", "chatbot"). Dá para filtrar por ela em POST /message/find.

        Exemplo
        chatwoot
      • track_idtextoopcional

        ID livre para acompanhar a mensagem no seu sistema. Aceita valores repetidos (não há validação de unicidade), então não serve como chave de idempotência.

        Exemplo
        msg_123456789
      • asyncbooleanoopcional

        Se true, envia pela fila interna sem segurar a requisição. A resposta 200 indica só que a mensagem entrou na fila; o envio pode falhar depois. Acompanhe pelo id em POST /message/find ou pelo evento messages_update.

        Exemplo
        false

      Respostas

      • 200Cartão de contato enviado com sucesso
      • 400Requisição inválida
      • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
      • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
      • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
      • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
      • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After. Caso do WhatsApp (429): Limite de requisições excedido.
      • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
      • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
      Erros possíveis 16

        Requisição

        curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/send/contact' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999",  "fullName": "Mariana Souza",  "phoneNumber": "5511987654321,551133334444",  "organization": "Souza Contabilidade",  "email": "mariana@souzacontabil.com.br",  "url": "https://seusite.com.br/contato"}'

        Resposta

        200 JSON
        {
          "success": true,
          "data": {
            "id": "3EB0538DA65A59F6D8A251",
            "messageid": "3EB0538DA65A59F6D8A251",
            "chatid": "5511999999999@s.whatsapp.net",
            "sender": "5511999999999@s.whatsapp.net",
            "senderName": "Exemplo",
            "isGroup": false,
            "fromMe": false,
            "messageType": "text",
            "source": "",
            "messageTimestamp": 1792500000000,
            "status": "success",
            "text": "Olá! Tudo certo por aqui.",
            "quoted": "",
            "edited": "",
            "reaction": "",
            "vote": "",
            "convertOptions": "",
            "buttonOrListid": "",
            "owner": "5511999999999",
            "error": "",
            "content": [],
            "wasSentByApi": true,
            "pinned": true,
            "sendFunction": "",
            "sendPayload": [],
            "fileURL": "https://exemplo.com/arquivo.jpg",
            "callPeer": {
              "jid": "5511999999999@s.whatsapp.net",
              "name": "Exemplo",
              "imagePreviewUrl": "https://exemplo.com/arquivo.jpg"
            },
            "send_folder_id": "f3a9c2b1",
            "track_source": "",
            "track_id": "",
            "ai_metadata": {
              "agent_id": "",
              "turn": "",
              "flow_id": "",
              "request": {
                "messages": [],
                "tools": [],
                "options": {
                  "model": "",
                  "temperature": 1.5,
                  "maxTokens": 10,
                  "topP": 1.5,
                  "frequencyPenalty": 1.5,
                  "presencePenalty": 1.5
                }
              },
              "response": {
                "choices": [],
                "toolResults": [],
                "error": ""
              },
              "outcome": {
                "status": "sent",
                "texts": 1,
                "audio": true,
                "menus": 1,
                "files": 1,
                "handoff": "",
                "lead": [
                  ""
                ],
                "detail": ""
              }
            },
            "sender_pn": "5511999999999@s.whatsapp.net",
            "sender_lid": "123456789012345@lid",
            "sender_image_preview_url": "https://exemplo.com/arquivo.jpg",
            "response": {
              "status": "success",
              "message": "Contact card sent successfully"
            }
          }
        }

        Enviar localização geográfica

        POST /send/location
        • Token do dispositivo
        • Conta 1 mensagem
        • Corpo até 1 MB

        No teste grátis, entra no limite de mensagens.

        Envia uma localização geográfica para um contato ou grupo.

        Ver mais detalhes

        Recursos Específicos

        • Coordenadas precisas (latitude e longitude obrigatórias)
        • Nome do local para identificação
        • Endereço completo para exibição detalhada
        • Mapa interativo no WhatsApp para navegação
        • Pin personalizado com nome do local

        Campos comuns

        Aceita os campos opcionais comuns de envio, explicados na introdução do grupo Enviar mensagem: delay, readchat, readmessages, replyid, mentions, forward, track_source, track_id e async. Os textos aceitam variáveis (como {{first_name}}). Para enviar a um grupo, use em number o ID terminado em @g.us.

        Exemplo Básico

        JSON
        {
          "number": "5511999999999",
          "name": "Maracanã",
          "address": "Av. Pres. Castelo Branco - Maracanã, Rio de Janeiro - RJ",
          "latitude": -22.912982815767986,
          "longitude": -43.23028153499254
        }

        Corpo da requisição (JSON)

        Um objeto JSON com Content-Type: application/json.

        • numbertextoobrigatório

          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).

          Exemplo
          5511999999999
        • latitudenúmeroobrigatório

          De -90 a 90.

          Latitude (-90 a 90)

          Exemplo
          -23.5616
        • longitudenúmeroobrigatório

          De -180 a 180.

          Longitude (-180 a 180)

          Exemplo
          -46.6562
        • nametextoopcional

          Nome do local

          Exemplo
          MASP
        • addresstextoopcional

          Endereço do local

          Exemplo
          Av. Paulista, 1578 - Bela Vista, São Paulo - SP
        • replyidtextoopcional

          ID da mensagem a responder: cria uma resposta vinculada à original, que precisa estar no histórico do dispositivo. O suporte varia por tipo de mensagem.

          Exemplo
          3EB0538DA65A59F6D8A251
        • mentionstextoopcional

          Só em grupos (number terminando em @g.us).

          Números a mencionar, separados por vírgula (ex.: "5511999999999,5511888888888"). Para mencionar todos, use @all ou @todos no próprio texto; "all" neste campo também menciona todos, por compatibilidade.

          Exemplo
          5511999999999,5511888888888
        • readchatbooleanoopcional

          Marca o chat como lido após o envio (zera o contador de não lidas).

          Exemplo
          true
        • readmessagesbooleanoopcional

          Marca como lidas as últimas 10 mensagens recebidas do chat (não as enviadas por você). Útil para confirmar a leitura antes de responder; o readchat só zera o contador.

          Exemplo
          true
        • delayinteiroopcional

          Atraso em milissegundos antes do envio. Durante o atraso, o contato vê "Digitando..." (ou "Gravando áudio...", conforme o tipo). Exemplo: 5000 (5 segundos).

          Exemplo
          1000
        • forwardbooleanoopcional

          Marca a mensagem como encaminhada (indicador "Encaminhada" no WhatsApp).

          Exemplo
          true
        • track_sourcetextoopcional

          Origem do rastreamento: o sistema que envia a mensagem (ex.: "crm", "chatbot"). Dá para filtrar por ela em POST /message/find.

          Exemplo
          chatwoot
        • track_idtextoopcional

          ID livre para acompanhar a mensagem no seu sistema. Aceita valores repetidos (não há validação de unicidade), então não serve como chave de idempotência.

          Exemplo
          msg_123456789
        • asyncbooleanoopcional

          Se true, envia pela fila interna sem segurar a requisição. A resposta 200 indica só que a mensagem entrou na fila; o envio pode falhar depois. Acompanhe pelo id em POST /message/find ou pelo evento messages_update.

          Exemplo
          false

        Respostas

        • 200Localização enviada com sucesso
        • 400Requisição inválida
        • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
        • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
        • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
        • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
        • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After. Caso do WhatsApp (429): Limite de requisições excedido.
        • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
        • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
        Erros possíveis 16

          Requisição

          curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/send/location' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999",  "name": "Loja Paulista",  "address": "Av. Paulista, 1578, Bela Vista, São Paulo, SP",  "latitude": -23.5616,  "longitude": -46.6562}'

          Resposta

          200 JSON
          {
            "success": true,
            "data": {
              "id": "3EB0538DA65A59F6D8A251",
              "messageid": "3EB0538DA65A59F6D8A251",
              "chatid": "5511999999999@s.whatsapp.net",
              "sender": "5511999999999@s.whatsapp.net",
              "senderName": "Exemplo",
              "isGroup": false,
              "fromMe": false,
              "messageType": "text",
              "source": "",
              "messageTimestamp": 1792500000000,
              "status": "success",
              "text": "Olá! Tudo certo por aqui.",
              "quoted": "",
              "edited": "",
              "reaction": "",
              "vote": "",
              "convertOptions": "",
              "buttonOrListid": "",
              "owner": "5511999999999",
              "error": "",
              "content": [],
              "wasSentByApi": true,
              "pinned": true,
              "sendFunction": "",
              "sendPayload": [],
              "fileURL": "https://exemplo.com/arquivo.jpg",
              "callPeer": {
                "jid": "5511999999999@s.whatsapp.net",
                "name": "Exemplo",
                "imagePreviewUrl": "https://exemplo.com/arquivo.jpg"
              },
              "send_folder_id": "f3a9c2b1",
              "track_source": "",
              "track_id": "",
              "ai_metadata": {
                "agent_id": "",
                "turn": "",
                "flow_id": "",
                "request": {
                  "messages": [],
                  "tools": [],
                  "options": {
                    "model": "",
                    "temperature": 1.5,
                    "maxTokens": 10,
                    "topP": 1.5,
                    "frequencyPenalty": 1.5,
                    "presencePenalty": 1.5
                  }
                },
                "response": {
                  "choices": [],
                  "toolResults": [],
                  "error": ""
                },
                "outcome": {
                  "status": "sent",
                  "texts": 1,
                  "audio": true,
                  "menus": 1,
                  "files": 1,
                  "handoff": "",
                  "lead": [
                    ""
                  ],
                  "detail": ""
                }
              },
              "sender_pn": "5511999999999@s.whatsapp.net",
              "sender_lid": "123456789012345@lid",
              "sender_image_preview_url": "https://exemplo.com/arquivo.jpg",
              "response": {
                "status": "success",
                "message": "Location sent successfully"
              }
            }
          }

          Enviar atualização de presença

          POST /message/presence
          • Token do dispositivo
          • Não conta mensagem
          • Corpo até 1 MB

          Envia uma atualização de presença para um contato ou grupo de forma assíncrona.

          Ver mais detalhes

          Comportamento Assíncrono:

          • Execução independente: A presença é mantida em segundo plano, sem segurar a resposta da API
          • Limite máximo: 5 minutos de duração (300 segundos)
          • Reenvio: a presença é reenviada a cada 10 segundos
          • Cancelamento automático: Presença é cancelada automaticamente ao enviar uma mensagem para o mesmo chat

          Tipos de presença suportados:

          • composing: Indica que você está digitando uma mensagem
          • recording: Indica que você está gravando um áudio
          • paused: Remove/cancela a indicação de presença atual

          Controle de duração:

          • Sem intervalo: Usa limite padrão de 5 minutos
          • Com intervalo: Usa o valor especificado (máximo 5 minutos)
          • Cancelamento: Envio de mensagem cancela presença automaticamente

          Exemplos de uso:

          Digitar por 30 segundos:
          JSON
          {
            "number": "5511999999999",
            "presence": "composing",
            "delay": 30000
          }
          Gravar áudio por 1 minuto:
          JSON
          {
            "number": "5511999999999",
            "presence": "recording",
            "delay": 60000
          }
          Cancelar presença atual:
          JSON
          {
            "number": "5511999999999",
            "presence": "paused"
          }
          Usar limite máximo (5 minutos):
          JSON
          {
            "number": "5511999999999",
            "presence": "composing"
          }

          Corpo da requisição (JSON)

          Um objeto JSON com Content-Type: application/json.

          • numbertextoobrigatório

            Número do destinatário no formato internacional (ex: 5511999999999)

            Exemplo
            5511999999999
          • presencetextoobrigatório

            Composing (digitando), recording (gravando áudio) ou paused (cancela a presença atual). Enviar uma mensagem ao mesmo chat também cancela.

            Tipo de presença a ser enviada

            Valores
            composingrecordingpaused
          • delayinteiroopcional

            Máximo 300000 (5 minutos).

            Duração da presença em milissegundos (aqui não é atraso de envio). Até 300000 (5 minutos); sem o campo, a presença dura 5 minutos. Durante o período, ela é reenviada a cada 10 segundos.

            Limites
            máximo 300000
            Exemplo
            30000

          Respostas

          • 200Presença atualizada com sucesso
          • 400Requisição inválida
          • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
          • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
          • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
          • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
          • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
          • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
          • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
          Erros possíveis 15

            Requisição

            curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/message/presence' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999",  "presence": "composing",  "delay": 30000}'

            Resposta

            200 JSON
            {
              "success": true,
              "data": {
                "response": "Chat presence sent successfully"
              }
            }

            Publicar status (stories)

            POST /send/status
            • Token do dispositivo
            • Conta 1 mensagem
            • Corpo até 20 MB

            No teste grátis, entra no limite de mensagens e recebe a assinatura DROPE.

            Publica um status (stories) do WhatsApp com texto, imagem, vídeo ou áudio.

            Ver mais detalhes

            Modos de envio

            • Normal: sem recipients, max_recipients nem group.
            • Para destinatários escolhidos: informe recipients. A API aproveita os válidos e descarta os inválidos, com o motivo em debug.
            • Audiência limitada: informe max_recipients para limitar a audiência ou para pôr um teto sobre recipients.
            • Status de grupo: informe group com o ID do grupo (@g.us).

            Destinatários (recipients)

            • Aceita números, IDs @s.whatsapp.net e IDs @lid.
            • Um @lid é convertido para o número (@s.whatsapp.net) pelos vínculos que o dispositivo conhece; se não der, o item é descartado com o motivo lid_unresolved.
            • Cada destinatário é verificado no WhatsApp, como no envio normal, em lote.
            • A lista é cruzada com a audiência permitida pela privacidade do status; o número e o @lid de um mesmo contato contam como o mesmo destinatário quando o vínculo é conhecido.
            • Os descartados aparecem em debug.discarded_recipients, com motivos como invalid_format, lid_unresolved, not_on_whatsapp, outside_status_audience e duplicate.
            • A requisição só retorna 400 quando não sobra nenhum destinatário válido.

            Audiência limitada (max_recipients)

            Há casos em que o WhatsApp bloqueia na hora o envio de status para audiências muito grandes (agendas com milhares de contatos, como cerca de 3.000). A causa exata ainda não é conhecida: comece com limites menores e aumente aos poucos. Com recipients, o valor vira um teto sobre a lista já validada. Não pode ser negativo.

            Status de grupo

            Com group, o status é publicado no grupo e aparece para os membros na aba Status, no lugar do status da conta. A conta precisa participar do grupo.

            • Vale para texto, imagem e vídeo; áudio (audio, ptt e myaudio) retorna 400.
            • Não combina com recipients nem com max_recipients (retorna 400).
            • A resposta traz Id, content, messageTimestamp e status, sem debug.

            Tipos

            • text: texto com cor de fundo (background_color) e fonte (font), com até 656 caracteres.
            • image e video: legenda opcional em text.
            • audio: áudio comum; myaudio e ptt: áudio enviado como voz.
            • Nos tipos de mídia (image, video, audio, myaudio e ptt), file é obrigatório.

            Cores de fundo (background_color)

            Informe um valor de 1 a 19; a API converte o índice para a cor usada pelo WhatsApp.

            • 1: amarelo esverdeado suave
            • 2: amarelo pálido
            • 3: amarelo alaranjado vibrante
            • 4: verde vibrante
            • 5: verde musgo
            • 6: verde claro
            • 7: azul piscina
            • 8: azul intenso
            • 9: azul claro acinzentado
            • 10: lilás claro
            • 11: lilás quente
            • 12: roxo azulado
            • 13: magenta profundo
            • 14: rosa suave
            • 15: salmão rosado
            • 16: marrom claro
            • 17: cinza claro azulado
            • 18: cinza médio
            • 19: cinza profundo (padrão)

            Fontes (font)

            Só em type=text. Valores aceitos: 0, 1, 2, 6, 7, 8, 9 e 10.

            Corpo da requisição (JSON)

            Um objeto JSON com Content-Type: application/json.

            • typetextoobrigatório

              Text, image, video, audio, myaudio ou ptt. Em status de grupo (group), áudio (audio, myaudio e ptt) retorna 400.

              Tipo do status.

              Valores
              textimagevideoaudiomyaudioptt
            • texttextoopcional

              Em type=text é o texto do status (até 656 caracteres); em image e video é a legenda.

              Texto principal ou legenda.

              Exemplo
              Novidades chegando!
            • background_colorinteiroopcional

              Só em type=text. De 1 a 19 (19, cinza profundo, é o padrão).

              Índice da cor de fundo para status em texto.

              Limites
              de 1 a 19
              Exemplo
              7
            • fontinteiroopcional

              Só em type=text. Valores 0, 1, 2, 6, 7, 8, 9 ou 10.

              Fonte aceita para type=text.

              Valores
              012678910
            • filetextocondicional

              Obrigatório quando type é image, video, audio, myaudio ou ptt.

              URL ou base64 do arquivo de mídia.

              Exemplo
              https://example.com/video.mp4
            • thumbnailtextoopcional

              Aceito, mas a miniatura é gerada automaticamente quando necessário.

              Campo aceito no corpo; a API gera a miniatura automaticamente quando necessário.

              Exemplo
              https://example.com/thumb.jpg
            • mimetypetextoopcional

              MIME type do arquivo, quando necessário.

              Exemplo
              video/mp4
            • recipientslista de textosopcional

              Não combina com group (400). Itens inválidos são descartados com o motivo em debug.discarded_recipients; 400 só se não sobrar nenhum.

              Lista explícita de destinatários. Aceita números em formato WhatsApp, JIDs @s.whatsapp.net e JIDs @lid. A API valida item a item, descarta os inválidos com motivo no debug e envia para o subconjunto válido restante. Entradas @lid dependem de resolução conhecida para PN.

            • max_recipientsinteiroopcional

              Não pode ser negativo. Não combina com group (400). Com recipients, vira um teto sobre a lista válida.

              Limita o envio a um subconjunto determinístico da audiência. Quando recipients for informado, funciona como cap de segurança sobre a lista explícita já validada.

              Limites
              mínimo 0
              Exemplo
              100
            • grouptextoopcional

              ID @g.us de um grupo do qual a conta participa. Não combina com recipients nem max_recipients; só text, image e video.

              JID do grupo (@g.us). Publica o status no grupo, para os membros, em vez do status da conta. Não combina com recipients nem max_recipients. Só texto, imagem e vídeo: áudio retorna 400.

              Exemplo
              120363123456789012@g.us

            Regras

            • file é obrigatório quando type é image, video, audio, myaudio ou ptt.

            Respostas

            • 200Status enviado com sucesso
            • 400Requisição inválida
            • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
            • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
            • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
            • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
            • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
            • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
            • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
            Erros possíveis 16

              Requisição

              curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/send/status' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "type": "text",  "text": "Hoje tem frete grátis em todo o site. Aproveite!",  "background_color": 7,  "font": 1}'

              Resposta

              200 JSON
              {
                "success": true,
                "data": {
                  "Id": "ABCD1234",
                  "content": [],
                  "messageTimestamp": 1672531200000,
                  "status": "Pending",
                  "debug": {
                    "status_privacy_type": "contacts",
                    "audience_recipient_count": 245,
                    "total_contacts_in_store": 300,
                    "contacts_with_full_name": 245,
                    "contacts_with_push_name_only": 32,
                    "contacts_with_business_name_only": 23,
                    "used_default_privacy_fallback": false,
                    "privacy_lookup_error": "privacy unavailable",
                    "explicit_recipients": true,
                    "requested_recipient_count": 25,
                    "resolved_recipient_count": 20,
                    "discarded_recipient_count": 5,
                    "discarded_recipients": [
                      {
                        "input": "144637553594388@lid",
                        "reason": "lid_unresolved"
                      }
                    ],
                    "max_recipients": 100,
                    "selected_recipient_count": 100,
                    "partial_send": true
                  }
                }
              }

              Enviar menu interativo (botões, carrossel, lista ou enquete)

              POST /send/menu
              • Token do dispositivo
              • Conta 1 mensagem
              • Corpo até 20 MB

              No teste grátis, entra no limite de mensagens e recebe a assinatura DROPE.

              Envia uma mensagem interativa. Uma só rota cobre os tipos em type:

              • button: botões de ação rápida (resposta, link, ligação e cópia), com mídia opcional no topo;
              • button_legacy: botões de resposta no formato anterior;
              • list: menu organizado em seções;
              • poll: enquete;
              • carousel: carrossel de cartões com imagem e botões.
              Ver mais detalhes

              O conteúdo das opções vai em choices, e o formato de cada item depende do type.

              Botões (type: "button")

              Cada item de choices vira um botão. Separe o texto da ação com | (barra vertical) ou \n (quebra de linha):

              • Resposta: "texto|id", "texto\nid" ou só "texto" (o ID fica igual ao texto);
              • Cópia: "texto|copy:código" ou "texto\ncopy:código";
              • Ligação: "texto|call:+5511999999999" ou "texto\ncall:+5511999999999";
              • Link: "texto|https://exemplo.com" ou "texto|url:https://exemplo.com".

              footerText é o rodapé opcional, exibido abaixo do texto.

              Não misture botão de resposta com link, ligação ou cópia na mesma mensagem: o WhatsApp não exibe a mensagem.

              Mídia no topo

              O topo dos botões pode levar uma imagem, um vídeo ou um documento em file, por URL ou base64, como no POST /send/media. O tipo sai do próprio arquivo; para forçar, mande mimetype: image, video, document ou o MIME type do arquivo (por exemplo, video/mp4). O documento usa o nome de docName; sem ele, o nome do arquivo.

              Áudio não vai no botão: o WhatsApp não tem áudio no topo, e a API responde 400. Envie o áudio antes, pelo POST /send/media. Sem mimetype, a API reconhece o áudio pela extensão da URL ou pelo início do base64; numa URL sem extensão, informe o mimetype.

              Se a mídia não baixar ou não subir para o WhatsApp, o botão sai sem ela.

              Botões no formato anterior (type: "button_legacy")

              Use só quando precisar dos botões de resposta do formato anterior. Formatos de choices: "texto|id", "texto\nid", "texto|reply:id" ou "texto" (o próprio texto vira o ID). Este modo cria apenas botões de resposta: ações de link, ligação e cópia e a mídia em file ficam no type: "button".

              Lista (type: "list")

              • listButton: texto do botão que abre a lista;
              • footerText: rodapé opcional;
              • choices: "[Título da seção]" abre uma seção, e "texto|id|descrição" é um item (o ID e a descrição são opcionais).

              Enquete (type: "poll")

              • choices: uma opção de voto por item;
              • selectableCount: quantas opções cada pessoa pode marcar (padrão 1).

              Carrossel (type: "carousel")

              Em choices, cada cartão segue esta ordem: "[Texto do cartão]", depois "{URL ou base64 da imagem}" e depois os botões do cartão, um por item: "texto|copy:código" (copiar), "texto|https://url" (link) ou "texto|call:+número" (ligação). Repita a sequência para cada cartão.

              O POST /send/carousel monta o mesmo carrossel com outro formato de corpo, em JSON estruturado; use o que for mais prático.

              Responder a uma opção

              Guarde o ID devolvido no envio. Para responder a uma opção pela API, use esse ID em replyid no POST /send/text, com a seleção iniciada por >.

              Disponibilidade

              Os botões interativos e as listas podem ser descontinuados a qualquer momento, sem aviso prévio. Monte os fluxos de forma flexível: para trocar entre botões, listas e enquetes, basta mudar o type e manter a estrutura de choices.

              Campos comuns

              Aceita os campos opcionais comuns de envio, explicados na introdução do grupo Enviar mensagem: delay, readchat, readmessages, replyid, mentions, track_source, track_id e async. Esta rota não aceita forward. Para enviar a um grupo, use em number o ID terminado em @g.us.

              Corpo da requisição (JSON)

              Um objeto JSON com Content-Type: application/json.

              • numbertextoobrigatório

                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).

                Exemplo
                5511999999999
              • typetextoobrigatório

                Button (formato atual: resposta, link, ligação, cópia e mídia no topo), button_legacy (só botões de resposta, formato anterior, sem mídia), list (seções e itens), poll (enquete) ou carousel (cartões em choices).

                Tipo do menu. Use button para o formato atual e button_legacy apenas para botões de resposta no formato anterior.

                Valores
                buttonbutton_legacylistpollcarousel
              • texttextoobrigatório

                Aceita variáveis.

                Texto principal (aceita variáveis)

                Exemplo
                Escolha uma opção:
              • choiceslista de textosobrigatório

                O formato depende de type. button: "texto|id", "texto\nid", "texto" (ID igual ao texto), "texto|copy:código", "texto|call:+5511999999999", "texto|https://..." ou "texto|url:https://...". button_legacy: "texto|id", "texto\nid", "texto|reply:id" ou "texto". list: "[Título da seção]" abre uma seção e "texto|id|descrição" é um item (ID e descrição opcionais). poll: uma opção por item. carousel: "[Texto do cartão]", depois "{URL ou base64 da imagem}" e depois os botões do cartão ("texto|copy:código", "texto|https://url" ou "texto|call:+número"), repetindo por cartão.

                Lista de opções. Use [Título] para seções em listas

              • footerTexttextoopcional

                Usado em button, button_legacy e list.

                Texto do rodapé (opcional)

                Exemplo
                Menu de serviços
              • listButtontextoopcional

                Usado em type=list (texto do botão que abre a lista).

                Texto do botão principal

                Exemplo
                Ver opções
              • selectableCountinteiroopcional

                Só em type=poll. Padrão 1.

                Número máximo de opções selecionáveis (para enquetes)

                Exemplo
                1
              • filetextoopcional

                Só em type=button. Imagem, vídeo ou documento, por URL ou base64; áudio retorna 400. Se a mídia não baixar, o botão sai sem ela.

                Mídia do cabeçalho (type: button): imagem, vídeo ou documento, por URL ou base64, como no /send/media. Áudio retorna 400.

                Exemplo
                https://exemplo.com/produto1.jpg
              • mimetypetextoopcional

                Só com file. image, video, document ou um MIME type (ex.: video/mp4); outro valor retorna 400. Informe quando a URL não tiver extensão.

                Força o tipo do file (opcional): image, video, document ou o MIME type do arquivo, como video/mp4. Sem ele, o tipo sai do arquivo; outro valor responde 400.

                Exemplo
                video/mp4
              • docNametextoopcional

                Só quando file é um documento. Sem ele, vale o nome do arquivo.

                Nome do arquivo quando o file é documento. Sem ele, o nome do arquivo.

                Exemplo
                Tabela de preços.pdf
              • replyidtextoopcional

                ID da mensagem a responder: cria uma resposta vinculada à original, que precisa estar no histórico do dispositivo. O suporte varia por tipo de mensagem.

                Exemplo
                3EB0538DA65A59F6D8A251
              • mentionstextoopcional

                Só em grupos (number terminando em @g.us).

                Números a mencionar, separados por vírgula (ex.: "5511999999999,5511888888888"). Para mencionar todos, use @all ou @todos no próprio texto; "all" neste campo também menciona todos, por compatibilidade.

                Exemplo
                5511999999999,5511888888888
              • readchatbooleanoopcional

                Marca o chat como lido após o envio (zera o contador de não lidas).

                Exemplo
                true
              • readmessagesbooleanoopcional

                Marca como lidas as últimas 10 mensagens recebidas do chat (não as enviadas por você). Útil para confirmar a leitura antes de responder; o readchat só zera o contador.

                Exemplo
                true
              • delayinteiroopcional

                Atraso em milissegundos antes do envio. Durante o atraso, o contato vê "Digitando..." (ou "Gravando áudio...", conforme o tipo). Exemplo: 5000 (5 segundos).

                Exemplo
                1000
              • track_sourcetextoopcional

                Origem do rastreamento: o sistema que envia a mensagem (ex.: "crm", "chatbot"). Dá para filtrar por ela em POST /message/find.

                Exemplo
                chatwoot
              • track_idtextoopcional

                ID livre para acompanhar a mensagem no seu sistema. Aceita valores repetidos (não há validação de unicidade), então não serve como chave de idempotência.

                Exemplo
                msg_123456789
              • asyncbooleanoopcional

                Se true, envia pela fila interna sem segurar a requisição. A resposta 200 indica só que a mensagem entrou na fila; o envio pode falhar depois. Acompanhe pelo id em POST /message/find ou pelo evento messages_update.

                Exemplo
                false

              Respostas

              • 200Menu enviado com sucesso
              • 400Requisição inválida
              • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
              • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
              • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
              • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
              • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After. Caso do WhatsApp (429): Limite de requisições excedido.
              • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
              • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
              Erros possíveis 16

                Requisição

                curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/send/menu' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999",  "type": "button",  "text": "Olá {{first_name}}! Como podemos ajudar?",  "file": "https://seusite.com.br/img/banner-atendimento.jpg",  "choices": [    "Fazer pedido|pedido",    "Falar com atendente|atendente",    "Ver horários|horarios"  ],  "footerText": "Atendimento de seg a sáb, 9h às 18h"}'

                Resposta

                200 JSON
                {
                  "success": true,
                  "data": {
                    "id": "3EB0538DA65A59F6D8A251",
                    "messageid": "3EB0538DA65A59F6D8A251",
                    "chatid": "5511999999999@s.whatsapp.net",
                    "sender": "5511999999999@s.whatsapp.net",
                    "senderName": "Exemplo",
                    "isGroup": false,
                    "fromMe": false,
                    "messageType": "text",
                    "source": "",
                    "messageTimestamp": 1792500000000,
                    "status": "success",
                    "text": "Olá! Tudo certo por aqui.",
                    "quoted": "",
                    "edited": "",
                    "reaction": "",
                    "vote": "",
                    "convertOptions": "",
                    "buttonOrListid": "",
                    "owner": "5511999999999",
                    "error": "",
                    "content": [],
                    "wasSentByApi": true,
                    "pinned": true,
                    "sendFunction": "",
                    "sendPayload": [],
                    "fileURL": "https://exemplo.com/arquivo.jpg",
                    "callPeer": {
                      "jid": "5511999999999@s.whatsapp.net",
                      "name": "Exemplo",
                      "imagePreviewUrl": "https://exemplo.com/arquivo.jpg"
                    },
                    "send_folder_id": "f3a9c2b1",
                    "track_source": "",
                    "track_id": "",
                    "ai_metadata": {
                      "agent_id": "",
                      "turn": "",
                      "flow_id": "",
                      "request": {
                        "messages": [],
                        "tools": [],
                        "options": {
                          "model": "",
                          "temperature": 1.5,
                          "maxTokens": 10,
                          "topP": 1.5,
                          "frequencyPenalty": 1.5,
                          "presencePenalty": 1.5
                        }
                      },
                      "response": {
                        "choices": [],
                        "toolResults": [],
                        "error": ""
                      },
                      "outcome": {
                        "status": "sent",
                        "texts": 1,
                        "audio": true,
                        "menus": 1,
                        "files": 1,
                        "handoff": "",
                        "lead": [
                          ""
                        ],
                        "detail": ""
                      }
                    },
                    "sender_pn": "5511999999999@s.whatsapp.net",
                    "sender_lid": "123456789012345@lid",
                    "sender_image_preview_url": "https://exemplo.com/arquivo.jpg",
                    "response": {
                      "status": "success",
                      "message": "Menu sent successfully"
                    }
                  }
                }

                Solicitar localização do usuário

                POST /send/location-button
                • Token do dispositivo
                • Conta 1 mensagem
                • Corpo até 1 MB

                No teste grátis, entra no limite de mensagens e recebe a assinatura DROPE.

                Esta rota envia uma mensagem com um botão que solicita a localização do usuário. Quando o usuário clica no botão, o WhatsApp abre a interface para compartilhar a localização atual.

                Ver mais detalhes

                Campos comuns

                Aceita os campos opcionais comuns de envio, explicados na introdução do grupo Enviar mensagem: delay, readchat, readmessages, replyid, mentions, track_source, track_id e async. Esta rota não aceita forward. Os textos aceitam variáveis (como {{first_name}}). Para enviar a um grupo, use em number o ID terminado em @g.us.

                Estrutura do Corpo

                JSON
                {
                  "number": "5511999999999",
                  "text": "Por favor, compartilhe sua localização",
                  "delay": 0,
                  "readchat": true
                }

                Exemplo de Uso

                JSON
                {
                  "number": "5511999999999",
                  "text": "Para continuar o atendimento, clique no botão abaixo e compartilhe sua localização"
                }
                Nota: O botão de localização é adicionado automaticamente à mensagem

                Corpo da requisição (JSON)

                Um objeto JSON com Content-Type: application/json.

                • numbertextoobrigatório

                  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).

                  Exemplo
                  5511999999999
                • texttextoobrigatório

                  O botão de enviar localização é adicionado automaticamente.

                  Texto da mensagem que será exibida

                  Exemplo
                  Por favor, compartilhe sua localização
                • delayinteiroopcional

                  Atraso em milissegundos antes do envio. Durante o atraso, o contato vê "Digitando..." (ou "Gravando áudio...", conforme o tipo). Exemplo: 5000 (5 segundos).

                  Exemplo
                  0
                • readchatbooleanoopcional

                  Marca o chat como lido após o envio (zera o contador de não lidas).

                  Exemplo
                  true
                • readmessagesbooleanoopcional

                  Marca como lidas as últimas 10 mensagens recebidas do chat (não as enviadas por você). Útil para confirmar a leitura antes de responder; o readchat só zera o contador.

                  Exemplo
                  true
                • replyidtextoopcional

                  ID da mensagem a responder: cria uma resposta vinculada à original, que precisa estar no histórico do dispositivo. O suporte varia por tipo de mensagem.

                  Exemplo
                  3EB0538DA65A59F6D8A251
                • mentionstextoopcional

                  Só em grupos (number terminando em @g.us).

                  Números a mencionar, separados por vírgula (ex.: "5511999999999,5511888888888"). Para mencionar todos, use @all ou @todos no próprio texto; "all" neste campo também menciona todos, por compatibilidade.

                  Exemplo
                  5511999999999,5511888888888
                • asyncbooleanoopcional

                  Se true, envia pela fila interna sem segurar a requisição. A resposta 200 indica só que a mensagem entrou na fila; o envio pode falhar depois. Acompanhe pelo id em POST /message/find ou pelo evento messages_update.

                  Exemplo
                  false
                • track_sourcetextoopcional

                  Origem do rastreamento: o sistema que envia a mensagem (ex.: "crm", "chatbot"). Dá para filtrar por ela em POST /message/find.

                  Exemplo
                  chatwoot
                • track_idtextoopcional

                  ID livre para acompanhar a mensagem no seu sistema. Aceita valores repetidos (não há validação de unicidade), então não serve como chave de idempotência.

                  Exemplo
                  msg_123456789

                Respostas

                • 200Localização enviada com sucesso
                • 400Requisição inválida
                • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                Erros possíveis 16

                  Requisição

                  curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/send/location-button' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999",  "text": "Para calcular a taxa de entrega, toque no botão abaixo e envie sua localização.",  "delay": 1000,  "readchat": true}'

                  Resposta

                  200 JSON
                  {
                    "success": true,
                    "data": {
                      "id": "3EB0538DA65A59F6D8A251",
                      "messageid": "3EB0538DA65A59F6D8A251",
                      "chatid": "5511999999999@s.whatsapp.net",
                      "sender": "5511999999999@s.whatsapp.net",
                      "senderName": "Exemplo",
                      "isGroup": false,
                      "fromMe": false,
                      "messageType": "text",
                      "source": "",
                      "messageTimestamp": 1792500000000,
                      "status": "success",
                      "text": "Olá! Tudo certo por aqui.",
                      "quoted": "",
                      "edited": "",
                      "reaction": "",
                      "vote": "",
                      "convertOptions": "",
                      "buttonOrListid": "",
                      "owner": "5511999999999",
                      "error": "",
                      "content": [],
                      "wasSentByApi": true,
                      "pinned": true,
                      "sendFunction": "",
                      "sendPayload": [],
                      "fileURL": "https://exemplo.com/arquivo.jpg",
                      "callPeer": {
                        "jid": "5511999999999@s.whatsapp.net",
                        "name": "Exemplo",
                        "imagePreviewUrl": "https://exemplo.com/arquivo.jpg"
                      },
                      "send_folder_id": "f3a9c2b1",
                      "track_source": "",
                      "track_id": "",
                      "ai_metadata": {
                        "agent_id": "",
                        "turn": "",
                        "flow_id": "",
                        "request": {
                          "messages": [],
                          "tools": [],
                          "options": {
                            "model": "",
                            "temperature": 1.5,
                            "maxTokens": 10,
                            "topP": 1.5,
                            "frequencyPenalty": 1.5,
                            "presencePenalty": 1.5
                          }
                        },
                        "response": {
                          "choices": [],
                          "toolResults": [],
                          "error": ""
                        },
                        "outcome": {
                          "status": "sent",
                          "texts": 1,
                          "audio": true,
                          "menus": 1,
                          "files": 1,
                          "handoff": "",
                          "lead": [
                            ""
                          ],
                          "detail": ""
                        }
                      },
                      "sender_pn": "5511999999999@s.whatsapp.net",
                      "sender_lid": "123456789012345@lid",
                      "sender_image_preview_url": "https://exemplo.com/arquivo.jpg",
                      "response": {
                        "status": "success",
                        "message": "Location sent successfully"
                      }
                    }
                  }

                  Solicitar pagamento

                  POST /send/request-payment
                  • Token do dispositivo
                  • Conta 1 mensagem
                  • Corpo até 1 MB

                  No teste grátis, entra no limite de mensagens e recebe a assinatura DROPE.

                  Envia uma solicitação de pagamento com o botão nativo "Revisar e pagar" do WhatsApp. Numa única mensagem interativa, o contato vê o valor e os meios de pagamento informados: PIX (chave em pixKey), boleto (boletoCode, com o PDF em fileUrl) e link de pagamento externo (paymentLink).

                  Ver mais detalhes

                  Como funciona

                  • Informe amount (valor decimal, em reais por padrão, ex.: 199.9) ou orderMessageId. Sem nenhum dos dois, a API responde 422.
                  • Por padrão, a chave PIX (pixKey) é exigida. pixType indica o tipo da chave (CPF, CNPJ, PHONE, EMAIL ou EVP; padrão EVP), e pixName, o nome do recebedor (padrão: o nome do perfil do dispositivo).
                  • boletoCode (linha digitável) habilita o boleto automaticamente.
                  • fileUrl anexa um documento, como o boleto ou a fatura em PDF; fileName é o nome exibido.
                  • paymentLink habilita o botão de pagamento externo (só domínios homologados).
                  • title, text, footer, itemName, invoiceNumber e additionalNote personalizam a mensagem.

                  Cobrar um pedido recebido

                  Para cobrar um pedido feito pelo WhatsApp, informe orderMessageId com o ID da mensagem OrderMessage desse mesmo contato. A API obtém itens, moeda e total do pedido, e amount não é necessário. Ainda é preciso informar um meio de pagamento.

                  Depois do envio

                  Para avisar o contato do andamento (pagamento confirmado, pedido enviado, entregue), use POST /message/payment/status com o id ou o messageid devolvido aqui.

                  Campos comuns

                  Aceita os campos opcionais comuns de envio, explicados na introdução do grupo Enviar mensagem: delay, readchat, readmessages, replyid, mentions, track_source, track_id e async. Esta rota não aceita forward. Para enviar a um grupo, use em number o ID terminado em @g.us.

                  Corpo da requisição (JSON)

                  Um objeto JSON com Content-Type: application/json.

                  • numbertextoobrigatório

                    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).

                    Exemplo
                    5511999999999
                  • orderMessageIdtextocondicional

                    Obrigatório se amount não for informado. ID de uma OrderMessage recebida do mesmo contato; itens, moeda e total vêm do pedido.

                    ID de uma OrderMessage recebida do mesmo contato. Vincula a cobrança ao pedido real.

                  • titletextoopcional

                    Título que aparece no cabeçalho do fluxo

                    Exemplo
                    Detalhes do pedido
                  • texttextoopcional

                    Mensagem exibida no corpo do fluxo

                    Exemplo
                    Pedido #123 pronto para pagamento
                  • footertextoopcional

                    Texto do rodapé da mensagem

                    Exemplo
                    Loja Exemplo
                  • itemNametextoopcional

                    Nome do item principal listado no fluxo

                    Exemplo
                    Assinatura Plano Ouro
                  • invoiceNumbertextoopcional

                    Identificador ou número da fatura

                    Exemplo
                    PED-123
                  • amountnúmerodecimalcondicional

                    Obrigatório se orderMessageId não for informado.

                    Valor da cobrança, decimal (ex.: 199.9), em reais por padrão.

                    Exemplo
                    199.9
                  • pixKeytextoopcional

                    Exigida por padrão. Mesmo com orderMessageId, é preciso informar um meio de pagamento.

                    Chave PIX estático (CPF/CNPJ/telefone/email/EVP)

                    Exemplo
                    123e4567-e89b-12d3-a456-426614174000
                  • pixTypetextoopcional

                    CPF, CNPJ, PHONE, EMAIL ou EVP. Padrão EVP.

                    Tipo da chave PIX (CPF, CNPJ, PHONE, EMAIL, EVP). Padrão EVP

                    Exemplo
                    EVP
                  • pixNametextoopcional

                    Padrão: o nome do perfil do dispositivo.

                    Nome do recebedor exibido no fluxo (padrão usa o nome do perfil do dispositivo)

                    Exemplo
                    Loja Exemplo
                  • paymentLinktextoopcional

                    URL externa de pagamento. Habilita o botão de pagamento externo; só domínios homologados são aceitos.

                    Exemplo
                    https://pagamentos.exemplo.com/checkout/abc
                  • fileUrltextoopcional

                    Anexa um documento (boleto ou fatura em PDF), por URL ou base64.

                    URL ou caminho (base64) do documento a ser anexado (ex.: boleto PDF)

                    Exemplo
                    https://cdn.exemplo.com/boleto-123.pdf
                  • fileNametextoopcional

                    Só com fileUrl.

                    Nome do arquivo exibido no WhatsApp ao anexar fileUrl

                    Exemplo
                    boleto-123.pdf
                  • boletoCodetextoopcional

                    Habilita o boleto automaticamente.

                    Linha digitável do boleto (habilita o método boleto automaticamente)

                    Exemplo
                    34191.79001 01043.510047 91020.150008 5 91070026000
                  • replyidtextoopcional

                    ID da mensagem a responder: cria uma resposta vinculada à original, que precisa estar no histórico do dispositivo. O suporte varia por tipo de mensagem.

                  • mentionstextoopcional

                    Só em grupos (number terminando em @g.us).

                    Números a mencionar, separados por vírgula (ex.: "5511999999999,5511888888888"). Para mencionar todos, use @all ou @todos no próprio texto; "all" neste campo também menciona todos, por compatibilidade.

                  • delayinteiroopcional

                    Atraso em milissegundos antes do envio. Durante o atraso, o contato vê "Digitando..." (ou "Gravando áudio...", conforme o tipo). Exemplo: 5000 (5 segundos).

                  • readchatbooleanoopcional

                    Marca o chat como lido após o envio (zera o contador de não lidas).

                  • readmessagesbooleanoopcional

                    Marca como lidas as últimas 10 mensagens recebidas do chat (não as enviadas por você). Útil para confirmar a leitura antes de responder; o readchat só zera o contador.

                  • asyncbooleanoopcional

                    Se true, envia pela fila interna sem segurar a requisição. A resposta 200 indica só que a mensagem entrou na fila; o envio pode falhar depois. Acompanhe pelo id em POST /message/find ou pelo evento messages_update.

                  • track_sourcetextoopcional

                    Origem do rastreamento: o sistema que envia a mensagem (ex.: "crm", "chatbot"). Dá para filtrar por ela em POST /message/find.

                  • track_idtextoopcional

                    ID livre para acompanhar a mensagem no seu sistema. Aceita valores repetidos (não há validação de unicidade), então não serve como chave de idempotência.

                  • additionalNotetextoopcional

                    Nota adicional exibida na cobrança.

                    Exemplo
                    Pague via PIX ou utilize o boleto em anexo

                  Regras

                  • Informe pelo menos um entre amount e orderMessageId.

                  Respostas

                  • 200Solicitação de pagamento enviada com sucesso
                  • 400O WhatsApp recusou a cobrança (por exemplo, sem a chave PIX); a mensagem de erro explica o motivo.
                  • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                  • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                  • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                  • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                  • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                  • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                  • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                  Erros possíveis 16

                    Requisição

                    curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/send/request-payment' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999",  "amount": 199.9,  "title": "Pedido #1234",  "text": "Seu pedido está pronto para pagamento",  "itemName": "Kit Skincare Completo",  "invoiceNumber": "PED-1234",  "pixKey": "12345678000190",  "pixType": "CNPJ",  "pixName": "Loja Bella Pele LTDA",  "footer": "Loja Bella Pele"}'

                    Resposta

                    200 JSON
                    {
                      "success": true,
                      "data": {
                        "id": "3EB0538DA65A59F6D8A251",
                        "messageid": "3EB0538DA65A59F6D8A251",
                        "chatid": "5511999999999@s.whatsapp.net",
                        "sender": "5511999999999@s.whatsapp.net",
                        "senderName": "Exemplo",
                        "isGroup": false,
                        "fromMe": false,
                        "messageType": "text",
                        "source": "",
                        "messageTimestamp": 1792500000000,
                        "status": "success",
                        "text": "Olá! Tudo certo por aqui.",
                        "quoted": "",
                        "edited": "",
                        "reaction": "",
                        "vote": "",
                        "convertOptions": "",
                        "buttonOrListid": "",
                        "owner": "5511999999999",
                        "error": "",
                        "content": [],
                        "wasSentByApi": true,
                        "pinned": true,
                        "sendFunction": "",
                        "sendPayload": [],
                        "fileURL": "https://exemplo.com/arquivo.jpg",
                        "callPeer": {
                          "jid": "5511999999999@s.whatsapp.net",
                          "name": "Exemplo",
                          "imagePreviewUrl": "https://exemplo.com/arquivo.jpg"
                        },
                        "send_folder_id": "f3a9c2b1",
                        "track_source": "",
                        "track_id": "",
                        "ai_metadata": {
                          "agent_id": "",
                          "turn": "",
                          "flow_id": "",
                          "request": {
                            "messages": [],
                            "tools": [],
                            "options": {
                              "model": "",
                              "temperature": 1.5,
                              "maxTokens": 10,
                              "topP": 1.5,
                              "frequencyPenalty": 1.5,
                              "presencePenalty": 1.5
                            }
                          },
                          "response": {
                            "choices": [],
                            "toolResults": [],
                            "error": ""
                          },
                          "outcome": {
                            "status": "sent",
                            "texts": 1,
                            "audio": true,
                            "menus": 1,
                            "files": 1,
                            "handoff": "",
                            "lead": [
                              ""
                            ],
                            "detail": ""
                          }
                        },
                        "sender_pn": "5511999999999@s.whatsapp.net",
                        "sender_lid": "123456789012345@lid",
                        "sender_image_preview_url": "https://exemplo.com/arquivo.jpg",
                        "response": {
                          "status": "success",
                          "message": "Payment request sent successfully"
                        }
                      }
                    }

                    Atualizar pagamento e pedido

                    POST /message/payment/status
                    • Token do dispositivo
                    • Não conta mensagem
                    • Corpo até 1 MB

                    Envia ao contato uma atualização de um pedido criado por POST /send/request-payment. No campo id, envie o id ou o messageid devolvido pela solicitação.

                    • status é o novo estado do pedido: payment_requested (pagamento solicitado), preparing_to_ship (preparando o envio), shipped (enviado), delivered (entregue), completed (concluído) ou canceled (cancelado).
                    • paid é opcional: true confirma o pagamento e false marca como pendente. Sem ele, só o estado do pedido é enviado.
                    • note aparece na atualização do pedido (até 500 caracteres).
                    Ver mais detalhes

                    Na resposta, orderStatus é o estado do pedido aplicado e status é o estado da mensagem de atualização (por exemplo, Pending); paymentStatusMessageID e paid vêm quando paid foi informado.

                    Uma falha no envio pode ser parcial: o pagamento pode ter sido atualizado sem que a mensagem do pedido saísse. Confira o chat antes de tentar de novo.

                    Corpo da requisição (JSON)

                    Um objeto JSON com Content-Type: application/json.

                    • idtextoobrigatório

                      ID ou messageid devolvido por POST /send/request-payment.

                      Aceita o id ou o messageid da solicitação de pagamento enviada.

                    • statustextoobrigatório

                      Novo estado do pedido: payment_requested (pagamento solicitado), preparing_to_ship (preparando o envio), shipped (enviado), delivered (entregue), completed (concluído) ou canceled (cancelado).

                      Valores
                      payment_requestedpreparing_to_shipshippeddeliveredcompletedcanceled
                    • paidbooleanoopcional

                      Sem ele, só o estado do pedido é enviado.

                      true confirma o pagamento; false marca como pendente. Omitir para não alterar.

                    • notetextoopcional

                      Até 500 caracteres.

                      Texto que aparece na atualização do pedido.

                      Limites
                      até 500 caracteres

                    Respostas

                    • 200Atualização enviada
                    • 400Campos inválidos ou mensagem original incompatível
                    • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                    • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                    • 404Solicitação original não encontrada
                    • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                    • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                    • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                    • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Nesta rota a falha pode ser parcial: o pagamento pode ter sido atualizado sem que a mensagem do pedido fosse enviada. Confira o chat antes de tentar de novo, para não repetir a atualização. Caso do WhatsApp (503): WhatsApp desconectado.
                    • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                    Erros possíveis 16

                      Requisição

                      curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/message/payment/status' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "id": "3EB0A1B2C3D4E5F6A7B8C9",  "status": "shipped",  "paid": true,  "note": "Seu pedido saiu para entrega. Código de rastreio: BR123456789BR."}'

                      Resposta

                      200 JSON
                      {
                        "success": true,
                        "data": {
                          "status": "success",
                          "referenceId": "",
                          "orderStatus": "success",
                          "paymentChanged": true,
                          "paymentStatusMessageID": "3EB0538DA65A59F6D8A251",
                          "paid": true,
                          "manual": true
                        }
                      }

                      Enviar botão PIX

                      POST /send/pix-button
                      • Token do dispositivo
                      • Conta 1 mensagem
                      • Corpo até 1 MB

                      No teste grátis, entra no limite de mensagens.

                      Envia um botão nativo do WhatsApp que abre para pagamento PIX com a chave informada. O usuário visualiza o detalhe do recebedor, nome e chave.

                      Ver mais detalhes

                      Regras principais

                      • pixType aceita: CPF, CNPJ, PHONE, EMAIL, EVP (sem diferenciar maiúsculas de minúsculas)
                      • pixName padrão: "Pix" quando não informado; é o nome de quem recebe o pagamento

                      Campos comuns

                      Aceita os campos opcionais comuns de envio, explicados na introdução do grupo Enviar mensagem (esta rota não aceita forward): delay, readchat, readmessages, replyid, mentions, track_source, track_id e async.

                      Exemplo de corpo

                      JSON
                      {
                        "number": "5511999999999",
                        "pixType": "EVP",
                        "pixKey": "123e4567-e89b-12d3-a456-426614174000",
                        "pixName": "Loja Exemplo"
                      }

                      Corpo da requisição (JSON)

                      Um objeto JSON com Content-Type: application/json.

                      • numbertextoobrigatório

                        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).

                        Exemplo
                        5511999999999
                      • pixTypetextoobrigatório

                        CPF, CNPJ, PHONE, EMAIL ou EVP, sem diferenciar maiúsculas de minúsculas.

                        Tipo da chave PIX. Valores aceitos: CPF, CNPJ, PHONE, EMAIL ou EVP

                        Exemplo
                        EVP
                      • pixKeytextoobrigatório

                        No formato do pixType.

                        Valor da chave PIX (CPF/CNPJ/telefone/email/EVP)

                        Exemplo
                        123e4567-e89b-12d3-a456-426614174000
                      • pixNametextoopcional

                        Padrão "Pix" quando vazio.

                        Nome exibido como recebedor do PIX (padrão "Pix" se vazio)

                        Exemplo
                        Loja Exemplo
                      • asyncbooleanoopcional

                        Se true, envia pela fila interna sem segurar a requisição. A resposta 200 indica só que a mensagem entrou na fila; o envio pode falhar depois. Acompanhe pelo id em POST /message/find ou pelo evento messages_update.

                      • delayinteiroopcional

                        Atraso em milissegundos antes do envio. Durante o atraso, o contato vê "Digitando..." (ou "Gravando áudio...", conforme o tipo). Exemplo: 5000 (5 segundos).

                      • readchatbooleanoopcional

                        Marca o chat como lido após o envio (zera o contador de não lidas).

                      • readmessagesbooleanoopcional

                        Marca como lidas as últimas 10 mensagens recebidas do chat (não as enviadas por você). Útil para confirmar a leitura antes de responder; o readchat só zera o contador.

                      • replyidtextoopcional

                        ID da mensagem a responder: cria uma resposta vinculada à original, que precisa estar no histórico do dispositivo. O suporte varia por tipo de mensagem.

                      • mentionstextoopcional

                        Só em grupos (number terminando em @g.us).

                        Números a mencionar, separados por vírgula (ex.: "5511999999999,5511888888888"). Para mencionar todos, use @all ou @todos no próprio texto; "all" neste campo também menciona todos, por compatibilidade.

                      • track_sourcetextoopcional

                        Origem do rastreamento: o sistema que envia a mensagem (ex.: "crm", "chatbot"). Dá para filtrar por ela em POST /message/find.

                      • track_idtextoopcional

                        ID livre para acompanhar a mensagem no seu sistema. Aceita valores repetidos (não há validação de unicidade), então não serve como chave de idempotência.

                      Respostas

                      • 200Botão PIX enviado com sucesso
                      • 400Requisição inválida
                      • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                      • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                      • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                      • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                      • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                      • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                      • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                      Erros possíveis 16

                        Requisição

                        curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/send/pix-button' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999",  "pixType": "EVP",  "pixKey": "123e4567-e89b-12d3-a456-426614174000",  "pixName": "Loja Bella Pele"}'

                        Resposta

                        200 JSON
                        {
                          "success": true,
                          "data": {
                            "id": "3EB0538DA65A59F6D8A251",
                            "messageid": "3EB0538DA65A59F6D8A251",
                            "chatid": "5511999999999@s.whatsapp.net",
                            "sender": "5511999999999@s.whatsapp.net",
                            "senderName": "Exemplo",
                            "isGroup": false,
                            "fromMe": false,
                            "messageType": "text",
                            "source": "",
                            "messageTimestamp": 1792500000000,
                            "status": "success",
                            "text": "Olá! Tudo certo por aqui.",
                            "quoted": "",
                            "edited": "",
                            "reaction": "",
                            "vote": "",
                            "convertOptions": "",
                            "buttonOrListid": "",
                            "owner": "5511999999999",
                            "error": "",
                            "content": [],
                            "wasSentByApi": true,
                            "pinned": true,
                            "sendFunction": "",
                            "sendPayload": [],
                            "fileURL": "https://exemplo.com/arquivo.jpg",
                            "callPeer": {
                              "jid": "5511999999999@s.whatsapp.net",
                              "name": "Exemplo",
                              "imagePreviewUrl": "https://exemplo.com/arquivo.jpg"
                            },
                            "send_folder_id": "f3a9c2b1",
                            "track_source": "",
                            "track_id": "",
                            "ai_metadata": {
                              "agent_id": "",
                              "turn": "",
                              "flow_id": "",
                              "request": {
                                "messages": [],
                                "tools": [],
                                "options": {
                                  "model": "",
                                  "temperature": 1.5,
                                  "maxTokens": 10,
                                  "topP": 1.5,
                                  "frequencyPenalty": 1.5,
                                  "presencePenalty": 1.5
                                }
                              },
                              "response": {
                                "choices": [],
                                "toolResults": [],
                                "error": ""
                              },
                              "outcome": {
                                "status": "sent",
                                "texts": 1,
                                "audio": true,
                                "menus": 1,
                                "files": 1,
                                "handoff": "",
                                "lead": [
                                  ""
                                ],
                                "detail": ""
                              }
                            },
                            "sender_pn": "5511999999999@s.whatsapp.net",
                            "sender_lid": "123456789012345@lid",
                            "sender_image_preview_url": "https://exemplo.com/arquivo.jpg",
                            "response": {
                              "status": "success",
                              "message": "PIX button sent successfully"
                            }
                          }
                        }

                        Enviar evento

                        POST /send/event
                        • Token do dispositivo
                        • Conta 1 mensagem
                        • Corpo até 1 MB

                        No teste grátis, entra no limite de mensagens e recebe a assinatura DROPE.

                        Envia um convite de evento para um contato ou grupo. Informe name e startTime (início, em segundos ou milissegundos Unix); endTime é opcional e não pode ser anterior ao início.

                        • description traz os detalhes do evento.
                        • location traz o local presencial: nome, endereço, latitude e longitude.
                        • Para uma chamada agendada, envie isScheduleCall: true com joinLink, um link HTTPS; sem o link, a API responde 422.
                        • hasReminder ativa o lembrete, com a antecedência em segundos em reminderOffsetSec.
                        • extraGuestsAllowed permite acompanhantes, e isCanceled marca o evento como cancelado.
                        Ver mais detalhes

                        A resposta do convidado chega como mensagem do tipo EventResponseMessage, com a escolha em vote.

                        Campos comuns

                        Aceita os campos opcionais comuns de envio, explicados na introdução do grupo Enviar mensagem: delay, readchat, readmessages, replyid, mentions, track_source, track_id e async. Esta rota não aceita forward. Para enviar a um grupo, use em number o ID terminado em @g.us.

                        Corpo da requisição (JSON)

                        Um objeto JSON com Content-Type: application/json.

                        • numbertextoobrigatório

                          Telefone no formato internacional, @s.whatsapp.net, @lid ou grupo @g.us.

                          Contato ou grupo que recebe o convite.

                        • nametextoobrigatório

                          Nome do evento.

                        • startTimeinteirointeiro de 64 bitsobrigatório

                          Unix em segundos ou milissegundos.

                          Início em segundos ou milissegundos Unix.

                        • descriptiontextoopcional

                          Descrição do evento.

                        • endTimeinteirointeiro de 64 bitsopcional

                          Unix em segundos ou milissegundos; não pode ser anterior a startTime.

                          Fim em segundos ou milissegundos Unix; não pode preceder o início.

                        • locationobjetoopcional

                          Local presencial do evento (opcional).

                          Mostrar 4 campos de location
                          • nametextoopcional

                            Nome do local.

                          • addresstextoopcional

                            Endereço do local.

                          • latitudenúmeroopcional

                            De -90 a 90.

                            Latitude do local.

                            Limites
                            de -90 a 90
                          • longitudenúmeroopcional

                            De -180 a 180.

                            Longitude do local.

                            Limites
                            de -180 a 180
                        • joinLinktextoURLopcional

                          Link HTTPS. Obrigatório quando isScheduleCall=true.

                          Link HTTPS obrigatório se isScheduleCall=true.

                        • extraGuestsAllowedbooleanoopcional

                          Permite que o convidado leve acompanhantes.

                        • isScheduleCallbooleanoopcional

                          Com true, exige joinLink.

                          Indica que o evento é uma chamada agendada.

                        • isCanceledbooleanoopcional

                          Marca o evento como cancelado.

                        • hasReminderbooleanoopcional

                          Ativa o lembrete do evento.

                        • reminderOffsetSecinteirointeiro de 64 bitsopcional

                          Mínimo 0. Use com hasReminder=true.

                          Antecedência do lembrete, em segundos.

                          Limites
                          mínimo 0
                        • replyidtextoopcional

                          ID da mensagem a responder: cria uma resposta vinculada à original, que precisa estar no histórico do dispositivo. O suporte varia por tipo de mensagem.

                        • mentionstextoopcional

                          Só em grupos (number terminando em @g.us).

                          Números a mencionar, separados por vírgula (ex.: "5511999999999,5511888888888"). Para mencionar todos, use @all ou @todos no próprio texto; "all" neste campo também menciona todos, por compatibilidade.

                        • delayinteiroopcional

                          Atraso em milissegundos antes do envio. Durante o atraso, o contato vê "Digitando..." (ou "Gravando áudio...", conforme o tipo). Exemplo: 5000 (5 segundos).

                        • readchatbooleanoopcional

                          Marca o chat como lido após o envio (zera o contador de não lidas).

                        • readmessagesbooleanoopcional

                          Marca como lidas as últimas 10 mensagens recebidas do chat (não as enviadas por você). Útil para confirmar a leitura antes de responder; o readchat só zera o contador.

                        • asyncbooleanoopcional

                          Se true, envia pela fila interna sem segurar a requisição. A resposta 200 indica só que a mensagem entrou na fila; o envio pode falhar depois. Acompanhe pelo id em POST /message/find ou pelo evento messages_update.

                        • track_sourcetextoopcional

                          Origem do rastreamento: o sistema que envia a mensagem (ex.: "crm", "chatbot"). Dá para filtrar por ela em POST /message/find.

                        • track_idtextoopcional

                          ID livre para acompanhar a mensagem no seu sistema. Aceita valores repetidos (não há validação de unicidade), então não serve como chave de idempotência.

                        Regras

                        • joinLink é obrigatório quando isScheduleCall é true.

                        Respostas

                        • 200Convite enviado
                        • 400Evento inválido
                        • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                        • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                        • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                        • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                        • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                        • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                        • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                        Erros possíveis 16

                          Requisição

                          curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/send/event' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "120363012345678901@g.us",  "name": "Workshop de vendas no WhatsApp",  "description": "Encontro presencial com café. Traga seu notebook.",  "startTime": 1792836000,  "endTime": 1792846800,  "location": {    "name": "Espaço Paulista",    "address": "Av. Paulista, 1578, Bela Vista, São Paulo, SP",    "latitude": -23.5616,    "longitude": -46.6562  },  "extraGuestsAllowed": true,  "hasReminder": true,  "reminderOffsetSec": 3600}'

                          Resposta

                          200 JSON
                          {
                            "success": true,
                            "data": {
                              "id": "3EB0538DA65A59F6D8A251",
                              "messageid": "3EB0538DA65A59F6D8A251",
                              "chatid": "5511999999999@s.whatsapp.net",
                              "sender": "5511999999999@s.whatsapp.net",
                              "senderName": "Exemplo",
                              "isGroup": false,
                              "fromMe": false,
                              "messageType": "text",
                              "source": "",
                              "messageTimestamp": 1792500000000,
                              "status": "success",
                              "text": "Olá! Tudo certo por aqui.",
                              "quoted": "",
                              "edited": "",
                              "reaction": "",
                              "vote": "",
                              "convertOptions": "",
                              "buttonOrListid": "",
                              "owner": "5511999999999",
                              "error": "",
                              "content": [],
                              "wasSentByApi": true,
                              "pinned": true,
                              "sendFunction": "",
                              "sendPayload": [],
                              "fileURL": "https://exemplo.com/arquivo.jpg",
                              "callPeer": {
                                "jid": "5511999999999@s.whatsapp.net",
                                "name": "Exemplo",
                                "imagePreviewUrl": "https://exemplo.com/arquivo.jpg"
                              },
                              "send_folder_id": "f3a9c2b1",
                              "track_source": "",
                              "track_id": "",
                              "ai_metadata": {
                                "agent_id": "",
                                "turn": "",
                                "flow_id": "",
                                "request": {
                                  "messages": [],
                                  "tools": [],
                                  "options": {
                                    "model": "",
                                    "temperature": 1.5,
                                    "maxTokens": 10,
                                    "topP": 1.5,
                                    "frequencyPenalty": 1.5,
                                    "presencePenalty": 1.5
                                  }
                                },
                                "response": {
                                  "choices": [],
                                  "toolResults": [],
                                  "error": ""
                                },
                                "outcome": {
                                  "status": "sent",
                                  "texts": 1,
                                  "audio": true,
                                  "menus": 1,
                                  "files": 1,
                                  "handoff": "",
                                  "lead": [
                                    ""
                                  ],
                                  "detail": ""
                                }
                              },
                              "sender_pn": "5511999999999@s.whatsapp.net",
                              "sender_lid": "123456789012345@lid",
                              "sender_image_preview_url": "https://exemplo.com/arquivo.jpg"
                            }
                          }

                          Referência 3

                          Webhooks

                          Receba mensagens e outros eventos no seu sistema assim que acontecem.

                          Listar webhooks do dispositivo

                          GET /webhook
                          • Token do dispositivo
                          • Não conta mensagem

                          Lista os webhooks configurados no dispositivo. A resposta é sempre uma lista, mesmo com um só webhook.

                          Cada item traz id, enabled, url (o seu endereço de destino), events, excludeMessages, addUrlEvents, addUrlTypesMessages e signing_secret, o segredo usado para assinar as entregas no cabeçalho X-DROPE-Signature (veja a seção Webhooks da documentação).

                          Parâmetros

                          Esta rota não recebe parâmetros.

                          Respostas

                          • 200Configuração do webhook retornada com sucesso
                          • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                          • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                          • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                          • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                          • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                          • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                          • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                          • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                          Erros possíveis 15

                            Requisição

                            curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/webhook' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                            Resposta

                            200 JSON
                            [
                              {
                                "id": "123e4567-e89b-12d3-a456-426614174000",
                                "enabled": true,
                                "url": "https://example.com/webhook",
                                "events": [
                                  "messages",
                                  "messages_update"
                                ],
                                "excludeMessages": [
                                  "wasSentByApi",
                                  "isGroupNo"
                                ],
                                "addUrlEvents": true,
                                "addUrlTypesMessages": true
                              },
                              {
                                "id": "987fcdeb-51k3-09j8-x543-864297539100",
                                "enabled": true,
                                "url": "https://outro-endpoint.com/webhook",
                                "events": [
                                  "connection",
                                  "presence"
                                ],
                                "excludeMessages": [],
                                "addUrlEvents": false,
                                "addUrlTypesMessages": false
                              }
                            ]

                            Configurar webhooks do dispositivo

                            POST /webhook
                            • Token do dispositivo
                            • Não conta mensagem
                            • Corpo até 1 MB

                            Configura os webhooks do dispositivo para receber eventos em tempo real.

                            Os eventos saem do WhatsApp, passam pela DROPE e são entregues ao seu endereço com novas tentativas automáticas quando o seu sistema falha (10 s, 30 s, 2 min, 10 min e 30 min). Cada entrega leva os cabeçalhos X-DROPE-Event (evento), X-DROPE-Delivery (identificador da entrega) e X-DROPE-Signature (sha256= seguido do HMAC SHA-256 do corpo com o signing_secret do webhook). Responda 200 rápido e processe depois. As falhas de entrega ficam em GET /webhook/errors.

                            Ver mais detalhes

                            Regra da DROPE: a URL precisa usar https:// e apontar para um endereço público (nada de rede interna ou endereço local).

                            Modo simples (recomendado)

                            Não envie action nem id. O dispositivo passa a ter um único webhook, criado ou atualizado automaticamente. Se a sua automação responde mensagens, use sempre "excludeMessages": ["wasSentByApi"] para não criar laços.

                            Modo avançado (vários webhooks)
                            1. Criar: action: "add", sem id. O identificador é gerado e devolvido.
                            2. Atualizar: action: "update" com o id. Todos os campos são substituídos: envie a configuração completa, com a url.
                            3. Remover: action: "delete" com o id. Em delete, basta o id; os outros campos são ignorados.

                            Muitas vezes um webhook só resolve: com addUrlEvents, cada tipo de evento chega num caminho diferente da mesma URL.

                            Eventos disponíveis
                            • connection: mudanças no estado da conexão
                            • history: recebimento do histórico de mensagens
                            • messages: novas mensagens
                            • messages_update: atualizações de mensagens (entregue, lida, editada, apagada)
                            • newsletter_messages: novas publicações de canais (só chega se for pedido pelo nome em events)
                            • status_posts: publicações de Status de contatos e de grupos (só chega se for pedido pelo nome em events)
                            • call: chamadas de voz e vídeo
                            • contacts: mudanças na agenda de contatos
                            • presence: mudanças de presença (digitando, online)
                            • groups: mudanças em grupos
                            • labels: etiquetas
                            • chats: eventos de conversas
                            • chat_labels: etiquetas aplicadas a conversas
                            • sender: campanhas (início e fim)

                            Com events vazio (ou ["All"]), o webhook recebe todos os eventos, menos newsletter_messages e status_posts, que só chegam se pedidos pelo nome.

                            Filtros de mensagens (excludeMessages)
                            • wasSentByApi: mensagens enviadas pela API. Use sempre se a sua automação responde mensagens, para não criar laços infinitos.
                            • wasNotSentByApi: mensagens que não saíram pela API
                            • fromMeYes: mensagens enviadas pelo próprio número
                            • fromMeNo: mensagens recebidas de terceiros
                            • isGroupYes: mensagens em grupos
                            • isGroupNo: mensagens em conversas individuais

                            Os filtros valem para messages, messages_update, status_posts e newsletter_messages. isGroupYes e isGroupNo não valem para status_posts e newsletter_messages: separe pelo campo isGroup do evento.

                            Caminho na URL

                            addUrlEvents e addUrlTypesMessages acrescentam segmentos ao caminho da URL (não à query string), sempre na ordem evento e depois tipo da mensagem. O seu receptor precisa aceitar esses caminhos.

                            • Só addUrlEvents: https://seusite.com.br/webhook/messages
                            • Só addUrlTypesMessages: https://seusite.com.br/webhook/conversation
                            • Os dois: https://seusite.com.br/webhook/messages/conversation

                            Corpo da requisição (JSON)

                            Um objeto JSON com Content-Type: application/json.

                            • urltextoobrigatório

                              Inclusive em update (que substitui todos os campos). Em delete, basta o id. Regra da DROPE: https:// e endereço público.

                              Endereço que recebe os eventos.

                              Exemplo
                              https://seusite.com.br/webhooks/whatsapp
                            • idtextocondicional

                              Obrigatório com action: "update" e action: "delete". Não envie com action: "add" nem no modo simples.

                              ID do webhook (devolvido em GET /webhook).

                              Exemplo
                              w7h2k9m4p1x8q3z6
                            • enabledbooleanoopcional

                              Liga ou desliga o webhook.

                              Exemplo
                              true
                            • eventslista de textosopcional

                              Lista vazia ou ["All"] = todos os eventos, menos newsletter_messages e status_posts, que só chegam se pedidos pelo nome.

                              Eventos assinados.

                              Valores
                              connectionhistorymessagesmessages_updatenewsletter_messagesstatus_postscallcontactspresencegroupslabelschatschat_labelssender
                            • excludeMessageslista de textosopcional

                              Valem para messages, messages_update, status_posts e newsletter_messages; isGroupYes e isGroupNo não valem para status_posts e newsletter_messages.

                              Filtros que tiram mensagens da entrega. Use wasSentByApi em automações para evitar laço.

                              Valores
                              wasSentByApiwasNotSentByApifromMeYesfromMeNoisGroupYesisGroupNo
                            • addUrlEventsbooleanoopcional

                              Acrescenta o evento como segmento do caminho da URL (ex.: /webhook/messages), não como query string.

                              Padrão
                              false
                            • addUrlTypesMessagesbooleanoopcional

                              Acrescenta o tipo da mensagem como segmento do caminho da URL (ex.: /webhook/conversation), depois do evento quando os dois estão ligados.

                              Padrão
                              false
                            • actiontextoopcional

                              Sem action, vale o modo simples (um único webhook, criado ou atualizado). update e delete exigem id.

                              Operação no modo avançado: add cria, update substitui todos os campos de um webhook, delete remove.

                              Valores
                              addupdatedelete

                            Regras

                            • url é obrigatório, exceto quando action é delete.

                            Respostas

                            • 200Webhook configurado ou atualizado com sucesso
                            • 400Requisição inválida
                            • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                            • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                            • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                            • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                            • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                            • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                            • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                            Erros possíveis 15

                              Requisição

                              curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/webhook' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "enabled": true,  "url": "https://seusite.com.br/webhooks/whatsapp",  "events": [    "messages",    "messages_update",    "connection"  ],  "excludeMessages": [    "wasSentByApi"  ],  "addUrlEvents": false,  "addUrlTypesMessages": false}'

                              Resposta

                              200 JSON
                              [
                                {
                                  "id": "wh_9a8b7c6d5e",
                                  "enabled": true,
                                  "url": "https://seusite.com.br/webhook",
                                  "events": [
                                    "messages",
                                    "newsletter_messages",
                                    "connection"
                                  ],
                                  "addUrlTypesMessages": false,
                                  "addUrlEvents": false,
                                  "excludeMessages": []
                                }
                              ]

                              Ver falhas recentes de entrega dos webhooks

                              GET /webhook/errors
                              • Token do dispositivo
                              • Não conta mensagem

                              Lista as últimas falhas de entrega dos webhooks do dispositivo (até 50), da mais recente para a mais antiga. São as falhas da entrega da DROPE ao seu endereço.

                              Cada item traz:

                              Ver mais detalhes
                              • created: data e hora da falha (UTC, ISO 8601)
                              • webhook_id: o id do webhook (o mesmo de GET /webhook)
                              • url: o endereço de destino da entrega
                              • event: o evento que estava sendo entregue
                              • status_code: o status HTTP que o seu sistema devolveu; null quando não houve resposta
                              • attempts: quantas tentativas foram feitas (0 em queue_full)
                              • error: a mensagem de erro
                              • stage: onde a entrega parou (veja abaixo)
                              • dropped: quantos eventos foram descartados nessa ocorrência (só em queue_full; nos outros casos, 0)

                              Valores de stage:

                              • http: o seu sistema respondeu com erro ou não respondeu, e as novas tentativas automáticas (10 s, 30 s, 2 min, 10 min e 30 min) se esgotaram;
                              • config: a URL de destino é inválida; a entrega desiste sem novas tentativas;
                              • blocked: a URL aponta para uma rede interna, para onde a DROPE não entrega; sem novas tentativas;
                              • queue_full: a fila de entregas pendentes do dispositivo encheu e os eventos novos foram descartados até ela baixar. Fica no máximo um registro por minuto, com a contagem em dropped. Muitos queue_full indicam receptor lento: responda 200 antes de processar.

                              Parâmetros

                              Esta rota não recebe parâmetros.

                              Respostas

                              • 200Histórico retornado com sucesso
                              • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                              • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                              • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                              • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                              • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                              • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                              • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                              • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                              Erros possíveis 15

                                Requisição

                                curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/webhook/errors' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                Resposta

                                200 JSON
                                [
                                  {
                                    "created": "2026-10-20T12:00:00Z",
                                    "webhook_id": "w8k2m4p6q1r3s5t7",
                                    "url": "https://seusite.com.br/webhook/messages",
                                    "event": "messages",
                                    "status_code": 500,
                                    "attempts": 6,
                                    "error": "O destino respondeu HTTP 500.",
                                    "stage": "http",
                                    "dropped": 0
                                  }
                                ]

                                Referência 8

                                Campanhas (envio em massa)

                                Envie para muitos contatos com fila, intervalos, agendamento e acompanhamento.

                                Criar campanha simples

                                POST /sender/simple
                                • Token do dispositivo
                                • Conta 1 mensagem por destinatário
                                • Corpo até 20 MB

                                No teste grátis, entra no limite de mensagens e recebe a assinatura DROPE.

                                Cria uma campanha para enviar a mesma mensagem a vários destinatários, com intervalo controlado entre os envios. Acompanhe a execução em GET /sender/stats.

                                type é obrigatório e define quais outros campos a mensagem usa (veja "Campos por tipo").

                                Ver mais detalhes

                                Início: scheduled_for aceita um timestamp em milissegundos (por exemplo 1795780800000) ou minutos a partir de agora (1 começa em 1 minuto). delayMin e delayMax são o intervalo, em segundos, entre uma mensagem e outra.

                                Resposta: traz folder_id, count (mensagens agendadas) e status. Guarde o folder_id: ele identifica a campanha em POST /sender/edit e POST /sender/listmessages. Se a resposta demorar, confira em GET /sender/listfolders se a campanha já existe antes de criar outra.

                                Status de grupo: com groupStatus: true, a campanha publica a mensagem no status de cada grupo da lista, como o POST /send/status com group, em vez de mandar no chat. Todos os numbers precisam ser grupos (@g.us): se houver algum que não é, a campanha não é criada e o 400 lista quais são. Só text, image e video; em texto, background_color e font escolhem a cor e a fonte. Áudio e outros tipos retornam 400. Agendamento, pausa, cancelamento, POST /sender/listmessages e GET /sender/stats funcionam como numa campanha comum. Cada status fica registrado na conversa do grupo com messageType: "GroupStatusMessage" (no celular ele não aparece na conversa, só no status): não dá para reagir, editar, fixar nem responder a ele.

                                Campos por tipo
                                • text: text obrigatório. Com linkPreview: true, a prévia sai da URL contida no texto.
                                • image, video, videoplay, audio e document: file obrigatório (URL do arquivo). Em imagem, vídeo e documento, text é a legenda; no documento, docName é o nome exibido.
                                • contact: fullName e phoneNumber obrigatórios; organization, email e url opcionais.
                                • location: latitude e longitude obrigatórios; name e address opcionais.
                                • list, button, poll e carousel: text e choices obrigatórios. footerText é o rodapé, listButton o botão que abre a lista, selectableCount quantas opções cada pessoa marca na enquete, e file a mídia opcional do cabeçalho do botão.

                                Formatos de choices:

                                • button: "Texto|id" (resposta), "Texto|https://seusite.com.br" (link), "Texto|copy:CODIGO" (copiar) ou "Texto|call:+5511999999999" (ligar). Não misture botão de resposta com link, ligação ou cópia na mesma mensagem: o WhatsApp não exibe a mensagem.
                                • list: "[Nome da seção]" abre uma seção e "Item|id|descrição" cria um item dela.
                                • poll: uma opção por item.
                                • carousel: para cada cartão, "[Texto do cartão]", "{URL da imagem}" e os botões do cartão, no formato do button.
                                Variações de texto (spintax)

                                O texto aceita variações no formato {Olá|Oi|Bom dia}: cada destinatário recebe uma combinação sorteada (também aninhada, como {Oi|Olá {amigo|cliente}}). Quando o texto tem variações, a campanha é criada no formato avançado, com uma mensagem por número; a resposta é a mesma.

                                No teste grátis, a campanha conta uma mensagem por número, o texto leva a assinatura do teste e a campanha é recusada com 429 TRIAL_LIMIT se passar da cota restante.

                                Compatibilidade

                                Versões antigas aceitavam a campanha sem type (valia text) e o formato antigo do painel, com media: {type, file, docName} no lugar de type, file e docName. Os dois continuam aceitos para integrações antigas não pararem; nas novas, envie sempre type, com file e docName na raiz.

                                Corpo da requisição (JSON)

                                Um objeto JSON com Content-Type: application/json.

                                • numberslista de textosobrigatório

                                  Pelo menos 1 número. Com groupStatus=true, todos precisam ser grupos (@g.us).

                                  Destinatários: número com DDI, JID de usuário (@s.whatsapp.net) ou ID de grupo (@g.us).

                                  Limites
                                  pelo menos 1 item
                                • typetextoobrigatório

                                  Com groupStatus=true, só text, image ou video.

                                  Tipo da mensagem. Define quais outros campos a mensagem usa.

                                  Valores
                                  textimagevideovideoplayaudiodocumentcontactlocationlistbuttonpollcarousel
                                • delayMininteiroobrigatório

                                  Intervalo mínimo entre mensagens, em segundos.

                                  Limites
                                  mínimo 1
                                  Exemplo
                                  10
                                • delayMaxinteiroobrigatório

                                  Intervalo máximo entre mensagens, em segundos.

                                  Limites
                                  mínimo 1
                                  Exemplo
                                  30
                                • scheduled_forinteiroobrigatório

                                  Início da campanha: timestamp em milissegundos, ou minutos a partir de agora (1 começa em 1 minuto).

                                  Exemplo
                                  1795780800000
                                • foldertextoopcional

                                  Nome da campanha.

                                  Exemplo
                                  Campanha Janeiro
                                • infotextoopcional

                                  Informações adicionais sobre a campanha.

                                • delayinteiroopcional

                                  Intervalo fixo entre mensagens (opcional).

                                • mentionstextoopcional

                                  Menções na mensagem, em formato JSON.

                                • texttextocondicional

                                  Obrigatório quando type=text e nos tipos list, button, poll e carousel (texto principal da mensagem interativa). Opcional como legenda em image, video, videoplay e document. Com groupStatus e type=text, é o texto do status.

                                  Texto da mensagem, ou legenda quando o tipo é mídia.

                                • linkPreviewbooleanoopcional

                                  Só vale para type=text.

                                  Gera a prévia do link a partir da URL contida no texto.

                                • linkPreviewTitletextoopcional

                                  Só com linkPreview=true.

                                  Título próprio da prévia. Vazio usa o título do link; só com um espaço (" "), a prévia sai sem título.

                                • linkPreviewDescriptiontextoopcional

                                  Só com linkPreview=true.

                                  Descrição própria da prévia. Vazia usa a descrição do link; só com um espaço (" "), a prévia sai sem descrição.

                                • linkPreviewImagetextoopcional

                                  Só com linkPreview=true.

                                  URL ou base64 da imagem da prévia.

                                • linkPreviewLargebooleanoopcional

                                  Só com linkPreview=true.

                                  true usa a prévia grande; false (padrão), a pequena.

                                • filetextocondicional

                                  Obrigatório quando type é image, video, videoplay, audio, document. Opcional em button: mídia do cabeçalho (imagem, vídeo ou documento; áudio não é aceito no botão).

                                  URL da mídia ou do arquivo. Com type button, a mídia do cabeçalho.

                                • docNametextoopcional

                                  Usado quando type=document, ou quando o cabeçalho de um button é um documento. Sem ele, vale o nome do arquivo.

                                  Nome do arquivo exibido para quem recebe.

                                • fullNametextocondicional

                                  Obrigatório quando type=contact.

                                  Nome completo do contato compartilhado.

                                • phoneNumbertextocondicional

                                  Obrigatório quando type=contact.

                                  Telefone do contato compartilhado; vários números separados por vírgula.

                                • organizationtextoopcional

                                  Só com type=contact.

                                  Empresa do contato.

                                • emailtextoopcional

                                  Só com type=contact.

                                  E-mail do contato.

                                • urltextoopcional

                                  Só com type=contact.

                                  Site do contato.

                                • latitudenúmerocondicional

                                  Obrigatório quando type=location.

                                  Latitude do local.

                                • longitudenúmerocondicional

                                  Obrigatório quando type=location.

                                  Longitude do local.

                                • nametextoopcional

                                  Só com type=location.

                                  Nome do local.

                                • addresstextoopcional

                                  Só com type=location.

                                  Endereço do local.

                                • footerTexttextoopcional

                                  Só com type list, button, poll ou carousel.

                                  Texto do rodapé.

                                • buttonTexttextoopcional

                                  Só com type list, button, poll ou carousel.

                                  Texto do botão.

                                • listButtontextoopcional

                                  Usado com type=list.

                                  Texto do botão que abre a lista.

                                • selectableCountinteiroopcional

                                  Só com type=poll.

                                  Quantas opções cada pessoa pode marcar na enquete.

                                • choiceslista de textoscondicional

                                  Obrigatório quando type é list, button, poll ou carousel. Formatos: button "Texto|id", "Texto|https://site", "Texto|copy:CODIGO" ou "Texto|call:+5511999999999" (não misture botão de resposta com link, ligação ou cópia na mesma mensagem: o WhatsApp não exibe a mensagem); list "[Seção]" abre uma seção e "Item|id|descrição" cria um item; poll uma opção por item; carousel "[Texto do cartão]", "{URL da imagem}" e os botões do cartão, repetindo o bloco a cada cartão.

                                  Opções da mensagem interativa.

                                • groupStatusbooleanoopcional

                                  Todos os numbers precisam ser grupos (@g.us) e type só text, image ou video; caso contrário a campanha não é criada (o 400 lista os números inválidos).

                                  Publica no status do grupo em vez de mandar no chat.

                                  Exemplo
                                  false
                                • background_colorinteiroopcional

                                  Só com groupStatus=true e type=text.

                                  Índice da cor de fundo do status em texto.

                                  Limites
                                  de 1 a 19
                                  Exemplo
                                  7
                                • fontinteiroopcional

                                  Só com groupStatus=true e type=text.

                                  Fonte do status em texto.

                                  Valores
                                  012678910

                                Respostas

                                • 200Campanha criada. A resposta traz folder_id, count (mensagens agendadas) e status.
                                • 400Erro nos parâmetros da requisição
                                • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                • 409A campanha já existe. Confira em GET /sender/listfolders antes de criar outra.
                                • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                Erros possíveis 17

                                  Requisição

                                  curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/sender/simple' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "numbers": [    "5511999999999",    "5521988887777",    "5531977776666"  ],  "type": "text",  "folder": "Black Friday 2026",  "info": "Aviso de abertura da Black Friday",  "delayMin": 10,  "delayMax": 30,  "scheduled_for": 1795780800000,  "text": "Oi! A Black Friday da loja começou. Veja as ofertas: https://seusite.com.br/black-friday",  "linkPreview": true}'

                                  Resposta

                                  200 JSON
                                  {
                                    "success": true,
                                    "data": {
                                      "folder_id": "f3a9c2b1",
                                      "count": 10,
                                      "status": "queued"
                                    }
                                  }

                                  Criar campanha avançada

                                  POST /sender/advanced
                                  • Token do dispositivo
                                  • Conta 1 mensagem por destinatário
                                  • Corpo até 20 MB

                                  No teste grátis, entra no limite de mensagens e recebe a assinatura DROPE.

                                  Cria um envio em massa em que cada item de messages tem o seu destinatário (number), o seu tipo (type) e o seu conteúdo. Use quando o conteúdo muda de um destinatário para outro; para a mesma mensagem a todos, prefira POST /sender/simple.

                                  Início e intervalo: scheduled_for aceita um timestamp em milissegundos ou minutos a partir de agora (1 começa em 1 minuto). delayMin e delayMax são o intervalo, em segundos, entre uma mensagem e outra.

                                  Ver mais detalhes

                                  Resposta: traz folder_id, count e status. Guarde o folder_id: ele identifica o envio em POST /sender/edit e POST /sender/listmessages.

                                  Status de grupo: com groupStatus: true numa mensagem, ela é publicada no status do grupo (number com @g.us), como o POST /send/status com group, em vez de ir para o chat. As outras mensagens do envio seguem normais. Só text, image e video; em texto, background_color e font escolhem a cor e a fonte. Se alguma mensagem com groupStatus não for para um grupo ou tiver outro tipo, o envio não é criado e o 400 diz qual (messages[índice]). Cada status fica registrado na conversa do grupo com messageType: "GroupStatusMessage" (no celular ele não aparece na conversa, só no status): não dá para reagir, editar, fixar nem responder a ele.

                                  Campos por tipo (em cada item de messages)
                                  • text: text obrigatório. Com linkPreview: true, a prévia sai da URL contida no texto.
                                  • image, video, videoplay, audio, ptt (mensagem de voz), myaudio, sticker (figurinha) e document: file obrigatório (URL do arquivo). Em imagem, vídeo e documento, text é a legenda; no documento, docName é o nome exibido.
                                  • contact: fullName e phoneNumber obrigatórios; organization, email e url opcionais.
                                  • location: latitude e longitude obrigatórios; name e address opcionais.
                                  • list, button, poll e carousel: text e choices obrigatórios. footerText é o rodapé, listButton o botão que abre a lista, selectableCount quantas opções cada pessoa marca na enquete, e file a mídia opcional do cabeçalho do botão.

                                  Formatos de choices:

                                  • button: "Texto|id" (resposta), "Texto|https://seusite.com.br" (link), "Texto|copy:CODIGO" (copiar) ou "Texto|call:+5511999999999" (ligar). Não misture botão de resposta com link, ligação ou cópia na mesma mensagem: o WhatsApp não exibe a mensagem.
                                  • list: "[Nome da seção]" abre uma seção e "Item|id|descrição" cria um item dela.
                                  • poll: uma opção por item.
                                  • carousel: para cada cartão, "[Texto do cartão]", "{URL da imagem}" e os botões do cartão, no formato do button.
                                  Variações de texto (spintax)

                                  Os campos de texto de cada mensagem (text, que também é a legenda das mídias, footerText, docName e os rótulos de choices, inclusive os textos dos cartões do carrossel) aceitam variações no formato {Olá|Oi|Bom dia}. Aspas retas são trocadas por aspas tipográficas e a barra invertida por /, para o texto chegar íntegro ao WhatsApp.

                                  No teste grátis, a campanha conta uma mensagem por item de messages, o texto leva a assinatura do teste e a campanha é recusada com 429 TRIAL_LIMIT se passar da cota restante.

                                  Corpo da requisição (JSON)

                                  Um objeto JSON com Content-Type: application/json.

                                  • messageslista de objetosobrigatório

                                    Pelo menos 1 mensagem.

                                    Mensagens do envio, uma por item, cada uma com o seu destinatário e tipo.

                                    Limites
                                    pelo menos 1 item
                                    Mostrar 27 campos de cada item de messages
                                    • numbertextoobrigatório

                                      Destinatário: número com DDI, JID de usuário (@s.whatsapp.net) ou ID de grupo (@g.us).

                                      Exemplo
                                      5511999999999
                                    • typetextoobrigatório

                                      Com groupStatus=true nesta mensagem, só text, image ou video.

                                      Tipo da mensagem: text, image, document, audio, ptt (mensagem de voz), myaudio (áudio, opção alternativa), sticker (figurinha), video, videoplay (vídeo com reprodução automática), contact, location, poll, list, button ou carousel.

                                      Valores
                                      textimagedocumentaudiopttmyaudiostickervideovideoplaycontactlocationpolllistbuttoncarousel
                                    • texttextocondicional

                                      Obrigatório quando type=text e nos tipos list, button, poll e carousel (texto principal da mensagem interativa). Opcional como legenda em image, video, videoplay e document. Com groupStatus e type=text, é o texto do status.

                                      Texto da mensagem, ou legenda quando o tipo é mídia.

                                    • filetextocondicional

                                      Obrigatório quando type é image, video, videoplay, audio, ptt, myaudio, sticker, document. Opcional em button: mídia do cabeçalho (imagem, vídeo ou documento; áudio não é aceito no botão).

                                      URL da mídia ou do arquivo. Com type button, a mídia do cabeçalho.

                                    • docNametextoopcional

                                      Usado quando type=document, ou quando o cabeçalho de um button é um documento. Sem ele, vale o nome do arquivo.

                                      Nome do arquivo exibido para quem recebe.

                                    • linkPreviewbooleanoopcional

                                      Só vale para type=text.

                                      Gera a prévia do link a partir da URL contida no texto.

                                    • linkPreviewTitletextoopcional

                                      Só com linkPreview=true.

                                      Título próprio da prévia. Vazio usa o título do link; só com um espaço (" "), a prévia sai sem título.

                                    • linkPreviewDescriptiontextoopcional

                                      Só com linkPreview=true.

                                      Descrição própria da prévia. Vazia usa a descrição do link; só com um espaço (" "), a prévia sai sem descrição.

                                    • linkPreviewImagetextoopcional

                                      Só com linkPreview=true.

                                      URL ou base64 da imagem da prévia.

                                    • linkPreviewLargebooleanoopcional

                                      Só com linkPreview=true.

                                      true usa a prévia grande; false (padrão), a pequena.

                                    • fullNametextocondicional

                                      Obrigatório quando type=contact.

                                      Nome completo do contato compartilhado.

                                    • phoneNumbertextocondicional

                                      Obrigatório quando type=contact.

                                      Telefone do contato compartilhado; vários números separados por vírgula.

                                    • organizationtextoopcional

                                      Só com type=contact.

                                      Empresa do contato.

                                    • emailtextoopcional

                                      Só com type=contact.

                                      E-mail do contato.

                                    • urltextoopcional

                                      Só com type=contact.

                                      Site do contato.

                                    • latitudenúmerocondicional

                                      Obrigatório quando type=location.

                                      Latitude do local.

                                    • longitudenúmerocondicional

                                      Obrigatório quando type=location.

                                      Longitude do local.

                                    • nametextoopcional

                                      Só com type=location.

                                      Nome do local.

                                    • addresstextoopcional

                                      Só com type=location.

                                      Endereço do local.

                                    • footerTexttextoopcional

                                      Só com type list, button, poll ou carousel.

                                      Texto do rodapé.

                                    • buttonTexttextoopcional

                                      Só com type list, button, poll ou carousel.

                                      Texto do botão.

                                    • listButtontextoopcional

                                      Usado com type=list.

                                      Texto do botão que abre a lista.

                                    • selectableCountinteiroopcional

                                      Só com type=poll.

                                      Quantas opções cada pessoa pode marcar na enquete.

                                    • choiceslista de textoscondicional

                                      Obrigatório quando type é list, button, poll ou carousel. Formatos: button "Texto|id", "Texto|https://site", "Texto|copy:CODIGO" ou "Texto|call:+5511999999999" (não misture botão de resposta com link, ligação ou cópia na mesma mensagem: o WhatsApp não exibe a mensagem); list "[Seção]" abre uma seção e "Item|id|descrição" cria um item; poll uma opção por item; carousel "[Texto do cartão]", "{URL da imagem}" e os botões do cartão, repetindo o bloco a cada cartão.

                                      Opções da mensagem interativa.

                                    • groupStatusbooleanoopcional

                                      number precisa ser grupo (@g.us) e type text, image ou video; caso contrário o envio inteiro é recusado com 400 indicando messages[índice].

                                      Publica esta mensagem no status do grupo em vez de mandar no chat.

                                      Exemplo
                                      false
                                    • background_colorinteiroopcional

                                      Só com groupStatus=true e type=text.

                                      Índice da cor de fundo do status em texto.

                                      Limites
                                      de 1 a 19
                                      Exemplo
                                      7
                                    • fontinteiroopcional

                                      Só com groupStatus=true e type=text.

                                      Fonte do status em texto.

                                      Valores
                                      012678910
                                  • delayMininteiroopcional

                                    Intervalo mínimo entre mensagens, em segundos.

                                    Limites
                                    mínimo 0
                                    Exemplo
                                    3
                                  • delayMaxinteiroopcional

                                    Intervalo máximo entre mensagens, em segundos.

                                    Limites
                                    mínimo 0
                                    Exemplo
                                    6
                                  • infotextoopcional

                                    Descrição do envio em massa (aparece em GET /sender/listfolders).

                                    Exemplo
                                    Campanha de lançamento
                                  • scheduled_forinteiroopcional

                                    Início do envio: timestamp em milissegundos, ou minutos a partir de agora (1 começa em 1 minuto).

                                    Exemplo
                                    1

                                  Respostas

                                  • 200Mensagens adicionadas à fila com sucesso
                                  • 400Erro nos parâmetros da requisição
                                  • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                  • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                  • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                  • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                  • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                  • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                  • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                  Erros possíveis 16

                                    Requisição

                                    curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/sender/advanced' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "delayMin": 3,  "delayMax": 6,  "info": "Promoção de novembro",  "scheduled_for": 1,  "messages": [    {      "number": "5511999999999",      "type": "text",      "text": "{Olá|Oi}, Ana! Seu cupom de aniversário é NIVER10."    },    {      "number": "5521988887777",      "type": "image",      "file": "https://seusite.com.br/campanhas/banner-novembro.jpg",      "text": "Bruno, separamos estas ofertas para você."    }  ]}'

                                    Resposta

                                    200 JSON
                                    {
                                      "success": true,
                                      "data": {
                                        "folder_id": "f3a9c2b1",
                                        "count": 10,
                                        "status": "queued"
                                      }
                                    }

                                    Controlar campanha

                                    POST /sender/edit
                                    • Token do dispositivo
                                    • Não conta mensagem
                                    • Corpo até 1 MB

                                    No teste grátis, entra no limite de mensagens.

                                    Controla uma campanha pelo folder_id (devolvido na criação e em GET /sender/listfolders).

                                    Ver mais detalhes

                                    Ações

                                    stop: pausa a campanha

                                    • Pausa uma campanha ativa ou agendada e muda o status para paused
                                    • Use para interromper o envio temporariamente
                                    • Mensagens já enviadas não são afetadas

                                    continue: retoma a campanha

                                    • Retoma uma campanha pausada e muda o status para scheduled
                                    • Não funciona em campanhas concluídas (done)

                                    delete: apaga a campanha

                                    • Remove a campanha e só as mensagens ainda não enviadas (status scheduled)
                                    • Mensagens já enviadas continuam no histórico
                                    • A exclusão é feita em segundo plano: a resposta traz o status deleting

                                    reschedule: muda o horário

                                    • Só para campanha com status scheduled
                                    • Exige scheduled_for, no mesmo formato da criação: timestamp em milissegundos ou em segundos, ou minutos a partir de agora (até 10.080)
                                    • Muda o horário da campanha e das mensagens que ainda não saíram, na mesma ordem: a primeira fica em scheduled_for + 1 ms, como na criação

                                    send_now: envia agora

                                    • Só para campanha com status scheduled
                                    • Antecipa a campanha para agora; os intervalos entre as mensagens continuam valendo

                                    reschedule e send_now respondem com status, scheduled_for e messages_updated. Numa campanha que não está scheduled, respondem 409. Campanha que não existe no dispositivo responde 404.

                                    Status da campanha

                                    • scheduled: agendada para envio
                                    • sending: enviando mensagens
                                    • paused: pausada
                                    • done: concluída (não pode ser alterada)
                                    • deleting: sendo apagada

                                    Corpo da requisição (JSON)

                                    Um objeto JSON com Content-Type: application/json.

                                    • folder_idtextoobrigatório

                                      ID da campanha (o folder_id devolvido na criação, ou o id de GET /sender/listfolders).

                                      Exemplo
                                      f3a9c2b1
                                    • actiontextoobrigatório

                                      Reschedule e send_now só valem para campanha com status scheduled (senão 409). continue não vale para campanha concluída (done).

                                      stop pausa (status paused); continue retoma (status scheduled); delete apaga a campanha e as mensagens ainda não enviadas, em segundo plano; reschedule muda o horário; send_now antecipa para agora.

                                      Valores
                                      stopcontinuedeletereschedulesend_now
                                    • scheduled_forinteirointeiro de 64 bitscondicional

                                      Obrigatório quando action=reschedule. Ignorado nas outras ações.

                                      Novo horário: timestamp em milissegundos ou em segundos, ou minutos a partir de agora (até 10.080).

                                      Exemplo
                                      1793885400000

                                    Regras

                                    • scheduled_for é obrigatório quando action é reschedule.

                                    Respostas

                                    • 200Ação realizada com sucesso
                                    • 400Requisição inválida
                                    • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                    • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                    • 404Campanha não encontrada para este dispositivo
                                    • 409A ação reschedule ou send_now foi pedida para uma campanha que não está agendada (status diferente de "scheduled")
                                    • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                    • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                    • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                    • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                    • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                    Erros possíveis 18

                                      Requisição

                                      curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/sender/edit' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "folder_id": "f3a9c2b1",  "action": "stop"}'

                                      Resposta

                                      200 JSON
                                      {
                                        "success": true,
                                        "data": []
                                      }

                                      Limpar mensagens já enviadas

                                      POST /sender/cleardone
                                      • Token do dispositivo
                                      • Não conta mensagem
                                      • Corpo até 1 MB

                                      Inicia, em segundo plano, a limpeza das mensagens de campanha já enviadas com sucesso. Mantém as enviadas nas últimas hours horas e remove as mais antigas; sem hours, mantém os últimos 7 dias (168 horas). A resposta não espera a limpeza terminar.

                                      Para apagar tudo, inclusive o que ainda não foi enviado, use DELETE /sender/clearall.

                                      Corpo da requisição (JSON)

                                      Um objeto JSON com Content-Type: application/json.

                                      • hoursinteiroopcional

                                        Mantém as mensagens enviadas nas últimas N horas e remove as mais antigas. Padrão: 168 (7 dias).

                                        Padrão
                                        168
                                        Exemplo
                                        168

                                      Respostas

                                      • 200Limpeza iniciada com sucesso
                                      • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                      • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                      • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                      • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                      • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                      • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                      • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                      • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                      Erros possíveis 15

                                        Requisição

                                        curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/sender/cleardone' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "hours": 24}'

                                        Resposta

                                        200 JSON
                                        {
                                          "success": true,
                                          "data": {
                                            "status": "cleanup started"
                                          }
                                        }

                                        Limpar toda a fila de campanhas

                                        DEL /sender/clearall
                                        • Token do dispositivo
                                        • Não conta mensagem
                                        • Corpo até 1 MB

                                        Apaga todas as mensagens de campanha do dispositivo, pendentes e já enviadas, junto com as campanhas. É uma operação irreversível. A resposta traz messages_deleted e folders_deleted.

                                        Para apagar só as mensagens já enviadas, use POST /sender/cleardone; para apagar uma campanha só, POST /sender/edit com action: "delete".

                                        Parâmetros

                                        Esta rota não recebe parâmetros.

                                        Respostas

                                        • 200Fila de mensagens limpa com sucesso
                                        • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                        • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                        • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                        • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                        • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                        • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                        • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                        • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                        Erros possíveis 15

                                          Requisição

                                          curl --request DELETE \  --url 'https://dropestore.com/wp-json/wdm/v1/sender/clearall' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                          Resposta

                                          200 JSON
                                          {
                                            "success": true,
                                            "data": {
                                              "status": "processed",
                                              "messages_deleted": 150,
                                              "folders_deleted": 3
                                            }
                                          }

                                          Listar campanhas de envio

                                          GET /sender/listfolders
                                          • Token do dispositivo
                                          • Não conta mensagem

                                          Retorna as campanhas de envio em massa do dispositivo atual, ordenadas das mais recentes para as mais antigas.

                                          Use esta operação para montar o histórico de campanhas e escolher qual abrir em POST /sender/listmessages. Uma lista vazia indica que ainda não existem campanhas disponíveis para o dispositivo.

                                          Ver mais detalhes

                                          Cada item traz id (o folder_id usado em POST /sender/edit e POST /sender/listmessages), info, status, scheduled_for, delayMin e delayMax (em milissegundos), os contadores log_total, log_sucess, log_delivered, log_read, log_played e log_failed, e as datas created e updated.

                                          Parâmetros na URL

                                          Vão depois do ? no endereço, como nome=valor.

                                          • statustextoopcional

                                            Filtro reservado para compatibilidade: a resposta pode trazer todas as campanhas mesmo com ele.

                                            Valores
                                            ActiveArchived

                                          Respostas

                                          • 200Lista de campanhas retornada com sucesso
                                          • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                          • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                          • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                          • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                          • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                          • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                          • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                          • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                          Erros possíveis 15

                                            Requisição

                                            curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/sender/listfolders' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                            Resposta

                                            200 JSON
                                            {
                                              "success": true,
                                              "data": [
                                                {
                                                  "id": "3EB0538DA65A59F6D8A251",
                                                  "info": "Olá! Tudo certo por aqui.",
                                                  "status": "ativo",
                                                  "scheduled_for": 1,
                                                  "delayMax": 10,
                                                  "delayMin": 30,
                                                  "log_delivered": 1,
                                                  "log_failed": 1,
                                                  "log_played": 1,
                                                  "log_read": 1,
                                                  "log_sucess": 1,
                                                  "log_total": 10,
                                                  "owner": "5511999999999",
                                                  "created": "2026-10-20T12:00:00Z",
                                                  "updated": "2026-10-20T12:00:00Z"
                                                }
                                              ]
                                            }

                                            Listar mensagens de uma campanha

                                            POST /sender/listmessages
                                            • Token do dispositivo
                                            • Não conta mensagem
                                            • Corpo até 1 MB

                                            Lista as mensagens de uma campanha, com filtro por status e paginação, para acompanhar o andamento e encontrar falhas.

                                            A resposta traz messages e pagination com totalRecords, limit, offset, hasMore e nextOffset. Enquanto hasMore for true, peça a próxima página com offset igual a nextOffset.

                                            Corpo da requisição (JSON)

                                            Um objeto JSON com Content-Type: application/json.

                                            • folder_idtextoobrigatório

                                              ID da campanha (o folder_id devolvido na criação, ou o id de GET /sender/listfolders).

                                              Exemplo
                                              f3a9c2b1
                                            • messageStatustextoopcional

                                              Filtra pelo status da mensagem.

                                              Valores
                                              ScheduledSentFailed
                                            • limitinteiroopcional

                                              Quantidade máxima de itens por página (padrão 1000, máximo 1000).

                                              Padrão
                                              1000
                                              Limites
                                              de 1 a 1000
                                            • offsetinteiroopcional

                                              Deslocamento base zero para a paginação.

                                              Padrão
                                              0
                                              Limites
                                              mínimo 0

                                            Respostas

                                            • 200Lista de mensagens retornada com sucesso
                                            • 400Requisição inválida
                                            • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                            • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                            • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                            • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                            • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                            • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                            • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                            Erros possíveis 15

                                              Requisição

                                              curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/sender/listmessages' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "folder_id": "f3a9c2b1",  "limit": 100,  "offset": 0}'

                                              Resposta

                                              200 JSON
                                              {
                                                "success": true,
                                                "data": {
                                                  "messages": [
                                                    {
                                                      "id": "3EB0538DA65A59F6D8A251",
                                                      "messageid": "3EB0538DA65A59F6D8A251",
                                                      "chatid": "5511999999999@s.whatsapp.net",
                                                      "sender": "5511999999999@s.whatsapp.net",
                                                      "senderName": "Exemplo",
                                                      "isGroup": false,
                                                      "fromMe": false,
                                                      "messageType": "text",
                                                      "source": "",
                                                      "messageTimestamp": 1792500000000,
                                                      "status": "success",
                                                      "text": "Olá! Tudo certo por aqui.",
                                                      "quoted": "",
                                                      "edited": "",
                                                      "reaction": "",
                                                      "vote": "",
                                                      "convertOptions": "",
                                                      "buttonOrListid": "",
                                                      "owner": "5511999999999",
                                                      "error": "",
                                                      "content": [],
                                                      "wasSentByApi": true,
                                                      "pinned": true,
                                                      "sendFunction": "",
                                                      "sendPayload": [],
                                                      "fileURL": "https://exemplo.com/arquivo.jpg",
                                                      "callPeer": {
                                                        "jid": "5511999999999@s.whatsapp.net",
                                                        "name": "Exemplo",
                                                        "imagePreviewUrl": "https://exemplo.com/arquivo.jpg"
                                                      },
                                                      "send_folder_id": "f3a9c2b1",
                                                      "track_source": "",
                                                      "track_id": "",
                                                      "ai_metadata": {
                                                        "agent_id": "",
                                                        "turn": "",
                                                        "flow_id": "",
                                                        "request": {
                                                          "messages": [],
                                                          "tools": [],
                                                          "options": {
                                                            "model": "",
                                                            "temperature": 1.5,
                                                            "maxTokens": 10,
                                                            "topP": 1.5,
                                                            "frequencyPenalty": 1.5,
                                                            "presencePenalty": 1.5
                                                          }
                                                        },
                                                        "response": {
                                                          "choices": [],
                                                          "toolResults": [],
                                                          "error": ""
                                                        },
                                                        "outcome": {
                                                          "status": "sent",
                                                          "texts": 1,
                                                          "audio": true,
                                                          "menus": 1,
                                                          "files": 1,
                                                          "handoff": "",
                                                          "lead": [
                                                            ""
                                                          ],
                                                          "detail": ""
                                                        }
                                                      },
                                                      "sender_pn": "5511999999999@s.whatsapp.net",
                                                      "sender_lid": "123456789012345@lid",
                                                      "sender_image_preview_url": "https://exemplo.com/arquivo.jpg"
                                                    }
                                                  ],
                                                  "pagination": {
                                                    "totalRecords": 30,
                                                    "limit": 10,
                                                    "offset": 0,
                                                    "hasMore": true,
                                                    "nextOffset": 10
                                                  }
                                                }
                                              }

                                              Consultar estado e métricas das campanhas

                                              GET /sender/stats
                                              • Token do dispositivo
                                              • Não conta mensagem

                                              Retorna uma fotografia do processador de campanhas do dispositivo: estado atual, campanha em execução, ritmo observado e próximo envio agendado.

                                              As métricas representam a execução desde a última inicialização do serviço e não substituem a consulta das campanhas e mensagens. messages_processed indica processamento pela fila, não entrega ou leitura pelo destinatário.

                                              Ver mais detalhes

                                              A resposta traz em data.status.current o estado do processador de campanhas (por exemplo idle ou sending), em data.statistics o ritmo observado e em data.scheduling o próximo envio agendado.

                                              Parâmetros

                                              Esta rota não recebe parâmetros.

                                              Respostas

                                              • 200Estado atual do processador de campanhas.
                                              • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                              • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                              • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                              • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                              • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                              • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                              • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                              • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                              Erros possíveis 15

                                                Requisição

                                                curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/sender/stats' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                Resposta

                                                200 JSON
                                                {
                                                  "success": true,
                                                  "data": {
                                                    "status": "success",
                                                    "data": {
                                                      "status": {
                                                        "current": "idle",
                                                        "direct_message_active": false
                                                      },
                                                      "statistics": {
                                                        "messages_processed": 120,
                                                        "avg_processing_ms": 850,
                                                        "messages_per_minute": 12.5
                                                      },
                                                      "instance": {
                                                        "groups_count": 8,
                                                        "is_business": true,
                                                        "platform": "android",
                                                        "system_name": "Android",
                                                        "profile_name": "Atendimento"
                                                      },
                                                      "scheduling": {
                                                        "next_send_at": null,
                                                        "next_send_in_seconds": null
                                                      }
                                                    }
                                                  }
                                                }

                                                Referência 20

                                                Grupos e comunidades

                                                Crie grupos e comunidades, gerencie participantes, convites e permissões.

                                                Criar um novo grupo

                                                POST /group/create
                                                • Token do dispositivo
                                                • Não conta mensagem
                                                • Corpo até 1 MB

                                                Cria um grupo com convidados iniciais opcionais. O WhatsApp inclui quem cria o grupo automaticamente.

                                                Para criar o grupo só com o seu número, envie participants: [], omita o campo ou envie null. Informar só o próprio número do dispositivo tem o mesmo efeito; não é preciso incluir o criador.

                                                Ver mais detalhes

                                                Para convidar outras pessoas, informe números com DDI (só dígitos) ou JIDs completos, como 5511999999999@s.whatsapp.net. JIDs LID que o dispositivo já conhece também são aceitos. Os participantes são verificados; números repetidos e o próprio número do dispositivo são ignorados. Uma lista em que nenhum convidado é válido volta erro e não vira um grupo vazio.

                                                O nome aceita de 1 a 100 caracteres nesta rota; para renomear depois, POST /group/updateName aceita de 1 a 25.

                                                A resposta traz group e failed. Quem a privacidade impediu de entrar fica em failed e não recebe convite automático. Para chamar essa pessoa, pegue o link do grupo em GET /group/invitelink/{groupJID} e envie como texto por POST /send/text (use o group.JID da resposta).

                                                Corpo da requisição (JSON)

                                                Um objeto JSON com Content-Type: application/json.

                                                • nametextoobrigatório

                                                  Nome do grupo, de 1 a 100 caracteres.

                                                  Limites
                                                  1 a 100 caracteres
                                                  Exemplo
                                                  Equipe de Vendas
                                                • participantslista de textosaceita nullopcional

                                                  Opcional. Vazio ([]), omitido ou null cria o grupo só com o criador. Cada item: número com DDI só com dígitos, JID completo (5511999999999@s.whatsapp.net) ou LID que o dispositivo já conhece. Repetidos e o próprio número do dispositivo são ignorados. Se nenhum convidado for válido, a API volta erro em vez de criar o grupo vazio.

                                                  Convidados iniciais: lista ou null.

                                                Respostas

                                                • 200Grupo criado com sucesso
                                                • 400Corpo inválido ou lista de convidados sem nenhum participante válido. Lista vazia ou só com o criador é aceita.
                                                • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                Erros possíveis 15

                                                  Requisição

                                                  curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/group/create' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "name": "Equipe de Vendas",  "participants": [    "5511999999999",    "5521987654321"  ]}'

                                                  Resposta

                                                  200 JSON
                                                  {
                                                    "success": true,
                                                    "data": {
                                                      "group": {
                                                        "JID": "jid8@g.us",
                                                        "OwnerJID": "1232@s.whatsapp.net",
                                                        "OwnerPN": "5511999999999",
                                                        "Name": "Grupo de Suporte",
                                                        "NameSetAt": "2026-10-20T12:00:00Z",
                                                        "NameSetBy": "Exemplo",
                                                        "NameSetByPN": "Exemplo",
                                                        "Topic": "https://exemplo.com/arquivo.jpg",
                                                        "TopicID": "https://exemplo.com/arquivo.jpg",
                                                        "TopicSetAt": "2026-10-20T12:00:00Z",
                                                        "TopicSetBy": "https://exemplo.com/arquivo.jpg",
                                                        "TopicSetByPN": "https://exemplo.com/arquivo.jpg",
                                                        "TopicDeleted": true,
                                                        "IsLocked": true,
                                                        "IsAnnounce": true,
                                                        "AnnounceVersionID": "",
                                                        "IsEphemeral": true,
                                                        "DisappearingTimer": 1,
                                                        "IsIncognito": true,
                                                        "IsParent": true,
                                                        "IsJoinApprovalRequired": true,
                                                        "LinkedParentJID": "https://exemplo.com/arquivo.jpg",
                                                        "IsDefaultSubGroup": true,
                                                        "DefaultMembershipApprovalMode": "text",
                                                        "GroupCreated": "2026-10-20T12:00:00Z",
                                                        "CreatorCountryCode": "AbCdEf123",
                                                        "ParticipantVersionID": "",
                                                        "Participants": [],
                                                        "MemberAddMode": "",
                                                        "AddressingMode": "",
                                                        "OwnerCanSendMessage": true,
                                                        "OwnerIsAdmin": true,
                                                        "DefaultSubGroupId": "120363153742561022@g.us",
                                                        "invite_link": "https://exemplo.com/arquivo.jpg",
                                                        "request_participants": "",
                                                        "image_url": "https://exemplo.com/arquivo.jpg",
                                                        "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                        "picture_id": "https://exemplo.com/arquivo.jpg",
                                                        "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                        "picture_empty_at": "2026-10-20T12:00:00Z",
                                                        "image_checked_at": "2026-10-20T12:00:00Z",
                                                        "image_preview_checked_at": "2026-10-20T12:00:00Z",
                                                        "parent_community": {
                                                          "jid": "5511999999999@s.whatsapp.net",
                                                          "name": "Exemplo",
                                                          "image_url": "https://exemplo.com/arquivo.jpg",
                                                          "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                          "default_subgroup_jid": "120363153742561022@g.us"
                                                        },
                                                        "participant_profiles": [
                                                          {
                                                            "jid": "5511999999999@s.whatsapp.net",
                                                            "pn": "",
                                                            "lid": "123456789012345@lid",
                                                            "username": "Exemplo",
                                                            "display_name": "Exemplo",
                                                            "name": "Exemplo",
                                                            "image_url": "https://exemplo.com/arquivo.jpg",
                                                            "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                            "picture_id": "https://exemplo.com/arquivo.jpg",
                                                            "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                            "is_admin": true,
                                                            "is_super_admin": true
                                                          }
                                                        ],
                                                        "ParticipantCount": 10,
                                                        "request_participants_lid": "123456789012345@lid"
                                                      },
                                                      "failed": [
                                                        ""
                                                      ]
                                                    }
                                                  }

                                                  Consultar detalhes e membros de um grupo

                                                  POST /group/info
                                                  • Token do dispositivo
                                                  • Não conta mensagem
                                                  • Corpo até 1 MB

                                                  Consulta os dados de um grupo: participantes conhecidos, permissões e, quando disponíveis, a foto e a comunidade a que ele pertence. O uso normal precisa só de groupjid, por exemplo depois de escolher o grupo em POST /group/list.

                                                  Ver mais detalhes
                                                  Opções avançadas
                                                  • getInviteLink: true traz também o link de convite, e getRequestsParticipants: true traz os pedidos de entrada pendentes. Os dois só funcionam para administrador com permissão confirmada; sem essa permissão, os campos podem vir ausentes.
                                                  • Os pedidos pendentes são aprovados ou recusados em POST /group/updateParticipants com action: approve ou reject.
                                                  • force: true pede atualização ao WhatsApp; deixe false no uso normal.

                                                  Corpo da requisição (JSON)

                                                  Um objeto JSON com Content-Type: application/json.

                                                  • groupjidtextoobrigatório

                                                    JID do grupo, terminado em @g.us.

                                                    Exemplo
                                                    120363153742561022@g.us
                                                  • getInviteLinkbooleanoopcional

                                                    Só traz o link se o número for administrador com permissão confirmada; sem permissão, o campo vem ausente.

                                                    Pede também o link de convite.

                                                    Padrão
                                                    false
                                                    Exemplo
                                                    true
                                                  • getRequestsParticipantsbooleanoopcional

                                                    Só para administrador. É daqui que saem os números usados em POST /group/updateParticipants com action approve ou reject.

                                                    Pede também os pedidos de entrada pendentes.

                                                    Padrão
                                                    false
                                                    Exemplo
                                                    false
                                                  • forcebooleanoopcional

                                                    Deixe false no uso normal.

                                                    Força atualização ao WhatsApp.

                                                    Padrão
                                                    false
                                                    Exemplo
                                                    false

                                                  Respostas

                                                  • 200Informações do grupo obtidas com sucesso
                                                  • 400Corpo ou groupjid inválido.
                                                  • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                  • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                  • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                  • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                  • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                  • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                  • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                  Erros possíveis 15

                                                    Requisição

                                                    curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/group/info' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "groupjid": "120363153742561022@g.us"}'

                                                    Resposta

                                                    200 JSON
                                                    {
                                                      "success": true,
                                                      "data": {
                                                        "JID": "120363153742561022@g.us",
                                                        "Name": "Comunidade de exemplo",
                                                        "Participants": [
                                                          {
                                                            "JID": "5521987654321@s.whatsapp.net",
                                                            "IsAdmin": true
                                                          }
                                                        ],
                                                        "IsLocked": false,
                                                        "IsAnnounce": false
                                                      }
                                                    }

                                                    Obter informações de um grupo pelo código de convite

                                                    POST /group/inviteInfo
                                                    • Token do dispositivo
                                                    • Não conta mensagem
                                                    • Corpo até 1 MB

                                                    Mostra os dados de um grupo a partir do link de convite ou do código, sem entrar nele.

                                                    Use para conferir nome, participantes e restrições antes de chamar POST /group/join.

                                                    Corpo da requisição (JSON)

                                                    Um objeto JSON com Content-Type: application/json.

                                                    • invitecodetextoobrigatório

                                                      Aceita o código curto (IYnl5Zg9bUcJD32rJrDzO7) ou o link completo https://chat.whatsapp.com/<código>.

                                                      Código de convite ou link completo do grupo.

                                                      Exemplo
                                                      https://chat.whatsapp.com/IYnl5Zg9bUcJD32rJrDzO7

                                                    Respostas

                                                    • 200Informações do grupo obtidas com sucesso
                                                    • 400Corpo inválido (invalid payload) ou código vazio (invalid invite code).
                                                    • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                    • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                    • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                    • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                    • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                    • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                    • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                    Erros possíveis 15

                                                      Requisição

                                                      curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/group/inviteInfo' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "invitecode": "https://chat.whatsapp.com/IYnl5Zg9bUcJD32rJrDzO7"}'

                                                      Resposta

                                                      200 JSON
                                                      {
                                                        "success": true,
                                                        "data": {
                                                          "response": "Group info retrieved successfully",
                                                          "group": {
                                                            "JID": "120363153742561022@g.us",
                                                            "Name": "Comunidade de exemplo",
                                                            "Participants": [
                                                              {
                                                                "JID": "5521987654321@s.whatsapp.net",
                                                                "IsAdmin": true
                                                              }
                                                            ],
                                                            "IsLocked": false,
                                                            "IsAnnounce": false
                                                          }
                                                        }
                                                      }

                                                      Entrar em um grupo usando código de convite

                                                      POST /group/join
                                                      • Token do dispositivo
                                                      • Não conta mensagem
                                                      • Corpo até 1 MB

                                                      Entra num grupo pelo link de convite (https://chat.whatsapp.com/<código>) ou só pelo código do link. Para conferir nome, participantes e restrições antes de entrar, use POST /group/inviteInfo.

                                                      Só vale o convite do grupo por link. O código de um convite individual (o cartão "Entrar no grupo" recebido numa conversa) não funciona aqui, e a API ainda não tem rota para aceitar esse convite.

                                                      A resposta traz o JID do grupo em group; consulte os detalhes depois em POST /group/info.

                                                      Corpo da requisição (JSON)

                                                      Um objeto JSON com Content-Type: application/json.

                                                      • invitecodetextoobrigatório

                                                        Formatos: código (IYnl5Zg9bUcJD32rJrDzO7) ou link (https://chat.whatsapp.com/IYnl5Zg9bUcJD32rJrDzO7). Código de convite individual não funciona.

                                                        Código ou link completo de convite do grupo, de 10 a 50 caracteres.

                                                        Limites
                                                        10 a 50 caracteres
                                                        Exemplo
                                                        https://chat.whatsapp.com/IYnl5Zg9bUcJD32rJrDzO7

                                                      Respostas

                                                      • 200Entrada no grupo realizada com sucesso
                                                      • 400Corpo inválido (invalid payload) ou código vazio (invalid invite code).
                                                      • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                      • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                      • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                      • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                      • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                      • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                      • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                      Erros possíveis 15

                                                        Requisição

                                                        curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/group/join' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "invitecode": "https://chat.whatsapp.com/IYnl5Zg9bUcJD32rJrDzO7"}'

                                                        Resposta

                                                        200 JSON
                                                        {
                                                          "success": true,
                                                          "data": {
                                                            "response": "Group join successful",
                                                            "group": {
                                                              "JID": "jid8@g.us",
                                                              "OwnerJID": "1232@s.whatsapp.net",
                                                              "OwnerPN": "5511999999999",
                                                              "Name": "Grupo de Suporte",
                                                              "NameSetAt": "2026-10-20T12:00:00Z",
                                                              "NameSetBy": "Exemplo",
                                                              "NameSetByPN": "Exemplo",
                                                              "Topic": "https://exemplo.com/arquivo.jpg",
                                                              "TopicID": "https://exemplo.com/arquivo.jpg",
                                                              "TopicSetAt": "2026-10-20T12:00:00Z",
                                                              "TopicSetBy": "https://exemplo.com/arquivo.jpg",
                                                              "TopicSetByPN": "https://exemplo.com/arquivo.jpg",
                                                              "TopicDeleted": true,
                                                              "IsLocked": true,
                                                              "IsAnnounce": true,
                                                              "AnnounceVersionID": "",
                                                              "IsEphemeral": true,
                                                              "DisappearingTimer": 1,
                                                              "IsIncognito": true,
                                                              "IsParent": true,
                                                              "IsJoinApprovalRequired": true,
                                                              "LinkedParentJID": "https://exemplo.com/arquivo.jpg",
                                                              "IsDefaultSubGroup": true,
                                                              "DefaultMembershipApprovalMode": "text",
                                                              "GroupCreated": "2026-10-20T12:00:00Z",
                                                              "CreatorCountryCode": "AbCdEf123",
                                                              "ParticipantVersionID": "",
                                                              "Participants": [],
                                                              "MemberAddMode": "",
                                                              "AddressingMode": "",
                                                              "OwnerCanSendMessage": true,
                                                              "OwnerIsAdmin": true,
                                                              "DefaultSubGroupId": "120363153742561022@g.us",
                                                              "invite_link": "https://exemplo.com/arquivo.jpg",
                                                              "request_participants": "",
                                                              "image_url": "https://exemplo.com/arquivo.jpg",
                                                              "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                              "picture_id": "https://exemplo.com/arquivo.jpg",
                                                              "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                              "picture_empty_at": "2026-10-20T12:00:00Z",
                                                              "image_checked_at": "2026-10-20T12:00:00Z",
                                                              "image_preview_checked_at": "2026-10-20T12:00:00Z",
                                                              "parent_community": {
                                                                "jid": "5511999999999@s.whatsapp.net",
                                                                "name": "Exemplo",
                                                                "image_url": "https://exemplo.com/arquivo.jpg",
                                                                "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                "default_subgroup_jid": "120363153742561022@g.us"
                                                              },
                                                              "participant_profiles": [
                                                                {
                                                                  "jid": "5511999999999@s.whatsapp.net",
                                                                  "pn": "",
                                                                  "lid": "123456789012345@lid",
                                                                  "username": "Exemplo",
                                                                  "display_name": "Exemplo",
                                                                  "name": "Exemplo",
                                                                  "image_url": "https://exemplo.com/arquivo.jpg",
                                                                  "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                  "picture_id": "https://exemplo.com/arquivo.jpg",
                                                                  "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                                  "is_admin": true,
                                                                  "is_super_admin": true
                                                                }
                                                              ],
                                                              "ParticipantCount": 10,
                                                              "request_participants_lid": "123456789012345@lid"
                                                            },
                                                            "needs_refresh": false
                                                          }
                                                        }

                                                        Sair de um grupo

                                                        POST /group/leave
                                                        • Token do dispositivo
                                                        • Não conta mensagem
                                                        • Corpo até 1 MB

                                                        Tira o número do dispositivo de um grupo.

                                                        Requisitos:

                                                        • o dispositivo precisa estar conectado;
                                                        • o número precisa ser membro do grupo.

                                                        Comportamento:

                                                        • se o número for o último administrador, o grupo é dissolvido;
                                                        • se for um membro comum, ele sai do grupo.

                                                        Corpo da requisição (JSON)

                                                        Um objeto JSON com Content-Type: application/json.

                                                        • groupjidtextoobrigatório

                                                          JID do grupo: só dígitos seguidos de @g.us (ex.: 120363324255083289@g.us).

                                                          Limites
                                                          formato ^\d+@g\.us$
                                                          Exemplo
                                                          120363324255083289@g.us

                                                        Respostas

                                                        • 200Saída do grupo realizada com sucesso
                                                        • 400Corpo inválido.
                                                        • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                        • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                        • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                        • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                        • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                        • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                        • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                        Erros possíveis 15

                                                          Requisição

                                                          curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/group/leave' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "groupjid": "120363324255083289@g.us"}'

                                                          Resposta

                                                          200 JSON
                                                          {
                                                            "success": true,
                                                            "data": {
                                                              "response": "Group leave successful"
                                                            }
                                                          }

                                                          Listar todos os grupos (legado)

                                                          GET /group/list
                                                          • Token do dispositivo
                                                          • Não conta mensagem

                                                          Forma antiga, sem paginação: devolve todos os grupos de uma vez, e a resposta pode ficar grande. Mantida para integrações existentes; para integrações novas, prefira POST /group/list, que pagina.

                                                          Ver mais detalhes
                                                          Opções
                                                          • noParticipants=true devolve a lista sem os membros, como no POST.
                                                          • force=true pede atualização da lista e pode reaproveitar uma atualização recente.

                                                          Para ver os membros de um grupo, use POST /group/info no grupo escolhido.

                                                          Parâmetros na URL

                                                          Vão depois do ? no endereço, como nome=valor.

                                                          • forcebooleanoopcional

                                                            Pode reaproveitar a última atualização bem-sucedida feita nos últimos 20 segundos.

                                                            Pede atualização da lista.

                                                            Padrão
                                                            false
                                                          • noParticipantsbooleanoopcional

                                                            Por compatibilidade, aceita também o nome antigo noparticipants.

                                                            true devolve a lista sem os membros.

                                                            Padrão
                                                            false

                                                          Respostas

                                                          • 200Lista de grupos recuperada com sucesso
                                                          • 400Parâmetro inválido. Caso do WhatsApp (408): A busca dos grupos no WhatsApp passou do tempo ou o pedido foi cancelado; tente de novo.
                                                          • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                          • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                          • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                          • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                          • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                          • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                          • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                          Erros possíveis 15

                                                            Requisição

                                                            curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/group/list?noParticipants=true' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                            Resposta

                                                            200 JSON
                                                            {
                                                              "success": true,
                                                              "data": {
                                                                "groups": [
                                                                  {
                                                                    "JID": "jid8@g.us",
                                                                    "OwnerJID": "1232@s.whatsapp.net",
                                                                    "OwnerPN": "5511999999999",
                                                                    "Name": "Grupo de Suporte",
                                                                    "NameSetAt": "2026-10-20T12:00:00Z",
                                                                    "NameSetBy": "Exemplo",
                                                                    "NameSetByPN": "Exemplo",
                                                                    "Topic": "https://exemplo.com/arquivo.jpg",
                                                                    "TopicID": "https://exemplo.com/arquivo.jpg",
                                                                    "TopicSetAt": "2026-10-20T12:00:00Z",
                                                                    "TopicSetBy": "https://exemplo.com/arquivo.jpg",
                                                                    "TopicSetByPN": "https://exemplo.com/arquivo.jpg",
                                                                    "TopicDeleted": true,
                                                                    "IsLocked": true,
                                                                    "IsAnnounce": true,
                                                                    "AnnounceVersionID": "",
                                                                    "IsEphemeral": true,
                                                                    "DisappearingTimer": 1,
                                                                    "IsIncognito": true,
                                                                    "IsParent": true,
                                                                    "IsJoinApprovalRequired": true,
                                                                    "LinkedParentJID": "https://exemplo.com/arquivo.jpg",
                                                                    "IsDefaultSubGroup": true,
                                                                    "DefaultMembershipApprovalMode": "text",
                                                                    "GroupCreated": "2026-10-20T12:00:00Z",
                                                                    "CreatorCountryCode": "AbCdEf123",
                                                                    "ParticipantVersionID": "",
                                                                    "Participants": [],
                                                                    "MemberAddMode": "",
                                                                    "AddressingMode": "",
                                                                    "OwnerCanSendMessage": true,
                                                                    "OwnerIsAdmin": true,
                                                                    "DefaultSubGroupId": "120363153742561022@g.us",
                                                                    "invite_link": "https://exemplo.com/arquivo.jpg",
                                                                    "request_participants": "",
                                                                    "image_url": "https://exemplo.com/arquivo.jpg",
                                                                    "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                    "picture_id": "https://exemplo.com/arquivo.jpg",
                                                                    "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                                    "picture_empty_at": "2026-10-20T12:00:00Z",
                                                                    "image_checked_at": "2026-10-20T12:00:00Z",
                                                                    "image_preview_checked_at": "2026-10-20T12:00:00Z",
                                                                    "parent_community": {
                                                                      "jid": "5511999999999@s.whatsapp.net",
                                                                      "name": "Exemplo",
                                                                      "image_url": "https://exemplo.com/arquivo.jpg",
                                                                      "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                      "default_subgroup_jid": "120363153742561022@g.us"
                                                                    },
                                                                    "participant_profiles": [
                                                                      {
                                                                        "jid": "5511999999999@s.whatsapp.net",
                                                                        "pn": "",
                                                                        "lid": "123456789012345@lid",
                                                                        "username": "Exemplo",
                                                                        "display_name": "Exemplo",
                                                                        "name": "Exemplo",
                                                                        "image_url": "https://exemplo.com/arquivo.jpg",
                                                                        "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                        "picture_id": "https://exemplo.com/arquivo.jpg",
                                                                        "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                                        "is_admin": true,
                                                                        "is_super_admin": true
                                                                      }
                                                                    ],
                                                                    "ParticipantCount": 10,
                                                                    "request_participants_lid": "123456789012345@lid"
                                                                  }
                                                                ]
                                                              }
                                                            }

                                                            Listar grupos em páginas (recomendado)

                                                            POST /group/list
                                                            • Token do dispositivo
                                                            • Não conta mensagem
                                                            • Corpo até 1 MB

                                                            Busca grupos em páginas, para escolher qual abrir. Prefira páginas de resumos sem a lista de membros e consulte POST /group/info só no grupo escolhido.

                                                            Ver mais detalhes
                                                            Uso recomendado

                                                            Envie search, limit e offset, com noParticipants: true. A página tem 50 grupos por padrão e no máximo 1000. A busca considera nome, JID, descrição do grupo e nome da comunidade a que ele pertence. A resposta traz groups e pagination.

                                                            Como paginar

                                                            Comece com offset: 0 e repita a chamada com offset igual ao pagination.nextOffset enquanto pagination.hasMore for true. O total de grupos encontrados vem em pagination.totalRecords.

                                                            Opções avançadas e compatibilidade
                                                            • O padrão de noParticipants continua false para preservar integrações existentes; o exemplo recomendado usa true.
                                                            • Uma atualização da lista ainda pode receber participantes do WhatsApp; noParticipants: true evita carregá-los na página e enviá-los na resposta.
                                                            • force: true pede atualização ao WhatsApp. Normalmente basta deixar a API atualizar quando necessário; não use force em consultas repetidas em sequência.

                                                            Corpo da requisição (JSON)

                                                            Um objeto JSON com Content-Type: application/json.

                                                            • limitinteiroopcional

                                                              Quantidade máxima de grupos por página (padrão 50, máximo 1000).

                                                              Padrão
                                                              50
                                                              Limites
                                                              de 1 a 1000
                                                              Exemplo
                                                              50
                                                            • offsetinteiroopcional

                                                              Para a próxima página, use o pagination.nextOffset da resposta enquanto pagination.hasMore for true.

                                                              Deslocamento da página, a partir de zero (padrão 0).

                                                              Padrão
                                                              0
                                                              Exemplo
                                                              0
                                                            • searchtextoopcional

                                                              Busca por nome, descrição, JID ou nome da comunidade a que o grupo pertence.

                                                              Exemplo
                                                              Suporte
                                                            • forcebooleanoopcional

                                                              Não é necessário no uso normal; não use em consultas repetidas em sequência.

                                                              Força atualização ao WhatsApp.

                                                              Padrão
                                                              false
                                                            • noParticipantsbooleanoopcional

                                                              O padrão é false por compatibilidade; o uso recomendado é true.

                                                              true devolve resumos sem os membros.

                                                              Padrão
                                                              false
                                                              Exemplo
                                                              true

                                                            Respostas

                                                            • 200Lista de grupos recuperada com sucesso
                                                            • 400Corpo inválido. Caso do WhatsApp (408): A busca dos grupos no WhatsApp passou do tempo ou o pedido foi cancelado; tente de novo.
                                                            • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                            • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                            • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                            • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                            • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                            • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                            • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                            Erros possíveis 15

                                                              Requisição

                                                              curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/group/list' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "search": "Suporte",  "limit": 50,  "offset": 0,  "noParticipants": true}'

                                                              Resposta

                                                              200 JSON
                                                              {
                                                                "success": true,
                                                                "data": {
                                                                  "groups": [
                                                                    {
                                                                      "JID": "jid8@g.us",
                                                                      "OwnerJID": "1232@s.whatsapp.net",
                                                                      "OwnerPN": "5511999999999",
                                                                      "Name": "Grupo de Suporte",
                                                                      "NameSetAt": "2026-10-20T12:00:00Z",
                                                                      "NameSetBy": "Exemplo",
                                                                      "NameSetByPN": "Exemplo",
                                                                      "Topic": "https://exemplo.com/arquivo.jpg",
                                                                      "TopicID": "https://exemplo.com/arquivo.jpg",
                                                                      "TopicSetAt": "2026-10-20T12:00:00Z",
                                                                      "TopicSetBy": "https://exemplo.com/arquivo.jpg",
                                                                      "TopicSetByPN": "https://exemplo.com/arquivo.jpg",
                                                                      "TopicDeleted": true,
                                                                      "IsLocked": true,
                                                                      "IsAnnounce": true,
                                                                      "AnnounceVersionID": "",
                                                                      "IsEphemeral": true,
                                                                      "DisappearingTimer": 1,
                                                                      "IsIncognito": true,
                                                                      "IsParent": true,
                                                                      "IsJoinApprovalRequired": true,
                                                                      "LinkedParentJID": "https://exemplo.com/arquivo.jpg",
                                                                      "IsDefaultSubGroup": true,
                                                                      "DefaultMembershipApprovalMode": "text",
                                                                      "GroupCreated": "2026-10-20T12:00:00Z",
                                                                      "CreatorCountryCode": "AbCdEf123",
                                                                      "ParticipantVersionID": "",
                                                                      "Participants": [],
                                                                      "MemberAddMode": "",
                                                                      "AddressingMode": "",
                                                                      "OwnerCanSendMessage": true,
                                                                      "OwnerIsAdmin": true,
                                                                      "DefaultSubGroupId": "120363153742561022@g.us",
                                                                      "invite_link": "https://exemplo.com/arquivo.jpg",
                                                                      "request_participants": "",
                                                                      "image_url": "https://exemplo.com/arquivo.jpg",
                                                                      "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                      "picture_id": "https://exemplo.com/arquivo.jpg",
                                                                      "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                                      "picture_empty_at": "2026-10-20T12:00:00Z",
                                                                      "image_checked_at": "2026-10-20T12:00:00Z",
                                                                      "image_preview_checked_at": "2026-10-20T12:00:00Z",
                                                                      "parent_community": {
                                                                        "jid": "5511999999999@s.whatsapp.net",
                                                                        "name": "Exemplo",
                                                                        "image_url": "https://exemplo.com/arquivo.jpg",
                                                                        "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                        "default_subgroup_jid": "120363153742561022@g.us"
                                                                      },
                                                                      "participant_profiles": [
                                                                        {
                                                                          "jid": "5511999999999@s.whatsapp.net",
                                                                          "pn": "",
                                                                          "lid": "123456789012345@lid",
                                                                          "username": "Exemplo",
                                                                          "display_name": "Exemplo",
                                                                          "name": "Exemplo",
                                                                          "image_url": "https://exemplo.com/arquivo.jpg",
                                                                          "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                          "picture_id": "https://exemplo.com/arquivo.jpg",
                                                                          "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                                          "is_admin": true,
                                                                          "is_super_admin": true
                                                                        }
                                                                      ],
                                                                      "ParticipantCount": 10,
                                                                      "request_participants_lid": "123456789012345@lid"
                                                                    }
                                                                  ],
                                                                  "pagination": {
                                                                    "totalRecords": 30,
                                                                    "limit": 10,
                                                                    "offset": 0,
                                                                    "hasMore": true,
                                                                    "nextOffset": 10
                                                                  }
                                                                }
                                                              }

                                                              Gerar novo link de convite do grupo

                                                              POST /group/resetInviteCode
                                                              • Token do dispositivo
                                                              • Não conta mensagem
                                                              • Corpo até 1 MB

                                                              Gera um novo link de convite para o grupo e invalida o anterior. Só administradores do grupo podem fazer isso.

                                                              A resposta traz o novo link em InviteLink e os dados atualizados do grupo em group. Para só consultar o link atual, sem trocar, use GET /group/invitelink/{groupJID}.

                                                              Corpo da requisição (JSON)

                                                              Um objeto JSON com Content-Type: application/json.

                                                              • groupjidtextoobrigatório

                                                                O número do dispositivo precisa ser administrador do grupo.

                                                                JID do grupo, terminado em @g.us.

                                                                Exemplo
                                                                120363308883996631@g.us

                                                              Respostas

                                                              • 200Novo link de convite gerado com sucesso.
                                                              • 400Erro de validação
                                                              • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                              • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED). Caso do WhatsApp (403): Usuário sem permissão.
                                                              • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                              • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                              • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                              • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                              • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                              Erros possíveis 15

                                                                Requisição

                                                                curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/group/resetInviteCode' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "groupjid": "120363308883996631@g.us"}'

                                                                Resposta

                                                                200 JSON
                                                                {
                                                                  "success": true,
                                                                  "data": {
                                                                    "InviteLink": "https://chat.whatsapp.com/AbCdEfGhIjKlMnOpQrStUv",
                                                                    "group": {
                                                                      "JID": "jid8@g.us",
                                                                      "OwnerJID": "1232@s.whatsapp.net",
                                                                      "OwnerPN": "5511999999999",
                                                                      "Name": "Grupo de Suporte",
                                                                      "NameSetAt": "2026-10-20T12:00:00Z",
                                                                      "NameSetBy": "Exemplo",
                                                                      "NameSetByPN": "Exemplo",
                                                                      "Topic": "https://exemplo.com/arquivo.jpg",
                                                                      "TopicID": "https://exemplo.com/arquivo.jpg",
                                                                      "TopicSetAt": "2026-10-20T12:00:00Z",
                                                                      "TopicSetBy": "https://exemplo.com/arquivo.jpg",
                                                                      "TopicSetByPN": "https://exemplo.com/arquivo.jpg",
                                                                      "TopicDeleted": true,
                                                                      "IsLocked": true,
                                                                      "IsAnnounce": true,
                                                                      "AnnounceVersionID": "",
                                                                      "IsEphemeral": true,
                                                                      "DisappearingTimer": 1,
                                                                      "IsIncognito": true,
                                                                      "IsParent": true,
                                                                      "IsJoinApprovalRequired": true,
                                                                      "LinkedParentJID": "https://exemplo.com/arquivo.jpg",
                                                                      "IsDefaultSubGroup": true,
                                                                      "DefaultMembershipApprovalMode": "text",
                                                                      "GroupCreated": "2026-10-20T12:00:00Z",
                                                                      "CreatorCountryCode": "AbCdEf123",
                                                                      "ParticipantVersionID": "",
                                                                      "Participants": [],
                                                                      "MemberAddMode": "",
                                                                      "AddressingMode": "",
                                                                      "OwnerCanSendMessage": true,
                                                                      "OwnerIsAdmin": true,
                                                                      "DefaultSubGroupId": "120363153742561022@g.us",
                                                                      "invite_link": "https://exemplo.com/arquivo.jpg",
                                                                      "request_participants": "",
                                                                      "image_url": "https://exemplo.com/arquivo.jpg",
                                                                      "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                      "picture_id": "https://exemplo.com/arquivo.jpg",
                                                                      "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                                      "picture_empty_at": "2026-10-20T12:00:00Z",
                                                                      "image_checked_at": "2026-10-20T12:00:00Z",
                                                                      "image_preview_checked_at": "2026-10-20T12:00:00Z",
                                                                      "parent_community": {
                                                                        "jid": "5511999999999@s.whatsapp.net",
                                                                        "name": "Exemplo",
                                                                        "image_url": "https://exemplo.com/arquivo.jpg",
                                                                        "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                        "default_subgroup_jid": "120363153742561022@g.us"
                                                                      },
                                                                      "participant_profiles": [
                                                                        {
                                                                          "jid": "5511999999999@s.whatsapp.net",
                                                                          "pn": "",
                                                                          "lid": "123456789012345@lid",
                                                                          "username": "Exemplo",
                                                                          "display_name": "Exemplo",
                                                                          "name": "Exemplo",
                                                                          "image_url": "https://exemplo.com/arquivo.jpg",
                                                                          "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                          "picture_id": "https://exemplo.com/arquivo.jpg",
                                                                          "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                                          "is_admin": true,
                                                                          "is_super_admin": true
                                                                        }
                                                                      ],
                                                                      "ParticipantCount": 10,
                                                                      "request_participants_lid": "123456789012345@lid"
                                                                    },
                                                                    "needs_refresh": false
                                                                  }
                                                                }

                                                                Configurar permissões de envio de mensagens no grupo

                                                                POST /group/updateAnnounce
                                                                • Token do dispositivo
                                                                • Não conta mensagem
                                                                • Corpo até 1 MB

                                                                Define quem pode enviar mensagens no grupo.

                                                                Com announce: true:

                                                                • só administradores enviam mensagens;
                                                                • os demais participantes apenas leem;
                                                                • útil para avisos importantes ou para conter mensagens indesejadas.

                                                                Com announce: false:

                                                                • todos os participantes enviam mensagens;
                                                                • é a configuração padrão dos grupos.

                                                                O número do dispositivo precisa ser administrador do grupo.

                                                                Corpo da requisição (JSON)

                                                                Um objeto JSON com Content-Type: application/json.

                                                                • groupjidtextoobrigatório

                                                                  JID do grupo, terminado em @g.us.

                                                                  Exemplo
                                                                  120363339858396166@g.us
                                                                • announcebooleanoobrigatório

                                                                  True: só administradores enviam. false: todos enviam.

                                                                  Quem pode enviar mensagens no grupo.

                                                                  Exemplo
                                                                  true

                                                                Respostas

                                                                • 200Configuração atualizada com sucesso
                                                                • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED). Caso do WhatsApp (403): Usuário não é administrador do grupo.
                                                                • 404Grupo não encontrado
                                                                • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                Erros possíveis 16

                                                                  Requisição

                                                                  curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/group/updateAnnounce' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "groupjid": "120363153742561022@g.us",  "announce": true}'

                                                                  Resposta

                                                                  200 JSON
                                                                  {
                                                                    "success": true,
                                                                    "data": {
                                                                      "response": "Group announce enabled successfully",
                                                                      "group": {
                                                                        "JID": "jid8@g.us",
                                                                        "OwnerJID": "1232@s.whatsapp.net",
                                                                        "OwnerPN": "5511999999999",
                                                                        "Name": "Grupo de Suporte",
                                                                        "NameSetAt": "2026-10-20T12:00:00Z",
                                                                        "NameSetBy": "Exemplo",
                                                                        "NameSetByPN": "Exemplo",
                                                                        "Topic": "https://exemplo.com/arquivo.jpg",
                                                                        "TopicID": "https://exemplo.com/arquivo.jpg",
                                                                        "TopicSetAt": "2026-10-20T12:00:00Z",
                                                                        "TopicSetBy": "https://exemplo.com/arquivo.jpg",
                                                                        "TopicSetByPN": "https://exemplo.com/arquivo.jpg",
                                                                        "TopicDeleted": true,
                                                                        "IsLocked": true,
                                                                        "IsAnnounce": true,
                                                                        "AnnounceVersionID": "",
                                                                        "IsEphemeral": true,
                                                                        "DisappearingTimer": 1,
                                                                        "IsIncognito": true,
                                                                        "IsParent": true,
                                                                        "IsJoinApprovalRequired": true,
                                                                        "LinkedParentJID": "https://exemplo.com/arquivo.jpg",
                                                                        "IsDefaultSubGroup": true,
                                                                        "DefaultMembershipApprovalMode": "text",
                                                                        "GroupCreated": "2026-10-20T12:00:00Z",
                                                                        "CreatorCountryCode": "AbCdEf123",
                                                                        "ParticipantVersionID": "",
                                                                        "Participants": [],
                                                                        "MemberAddMode": "",
                                                                        "AddressingMode": "",
                                                                        "OwnerCanSendMessage": true,
                                                                        "OwnerIsAdmin": true,
                                                                        "DefaultSubGroupId": "120363153742561022@g.us",
                                                                        "invite_link": "https://exemplo.com/arquivo.jpg",
                                                                        "request_participants": "",
                                                                        "image_url": "https://exemplo.com/arquivo.jpg",
                                                                        "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                        "picture_id": "https://exemplo.com/arquivo.jpg",
                                                                        "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                                        "picture_empty_at": "2026-10-20T12:00:00Z",
                                                                        "image_checked_at": "2026-10-20T12:00:00Z",
                                                                        "image_preview_checked_at": "2026-10-20T12:00:00Z",
                                                                        "parent_community": {
                                                                          "jid": "5511999999999@s.whatsapp.net",
                                                                          "name": "Exemplo",
                                                                          "image_url": "https://exemplo.com/arquivo.jpg",
                                                                          "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                          "default_subgroup_jid": "120363153742561022@g.us"
                                                                        },
                                                                        "participant_profiles": [
                                                                          {
                                                                            "jid": "5511999999999@s.whatsapp.net",
                                                                            "pn": "",
                                                                            "lid": "123456789012345@lid",
                                                                            "username": "Exemplo",
                                                                            "display_name": "Exemplo",
                                                                            "name": "Exemplo",
                                                                            "image_url": "https://exemplo.com/arquivo.jpg",
                                                                            "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                            "picture_id": "https://exemplo.com/arquivo.jpg",
                                                                            "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                                            "is_admin": true,
                                                                            "is_super_admin": true
                                                                          }
                                                                        ],
                                                                        "ParticipantCount": 10,
                                                                        "request_participants_lid": "123456789012345@lid"
                                                                      },
                                                                      "needs_refresh": false
                                                                    }
                                                                  }

                                                                  Configurar aprovação para entrada no grupo

                                                                  POST /group/updateJoinApproval
                                                                  • Token do dispositivo
                                                                  • Não conta mensagem
                                                                  • Corpo até 1 MB

                                                                  Define se novos participantes precisam ser aprovados antes de entrar no grupo. O estado aparece no campo IsJoinApprovalRequired do objeto group da resposta e de POST /group/info.

                                                                  Com IsJoinApprovalRequired: true:

                                                                  • novas entradas passam pela aprovação de um administrador;
                                                                  • os pedidos pendentes aparecem em POST /group/info com getRequestsParticipants: true;
                                                                  • cada pedido é aprovado ou recusado em POST /group/updateParticipants com action: approve ou reject.
                                                                  Ver mais detalhes

                                                                  Com IsJoinApprovalRequired: false, entradas por link ou convite não exigem aprovação.

                                                                  O número do dispositivo precisa ser administrador do grupo.

                                                                  Corpo da requisição (JSON)

                                                                  Um objeto JSON com Content-Type: application/json.

                                                                  • groupjidtextoobrigatório

                                                                    JID do grupo, terminado em @g.us.

                                                                    Exemplo
                                                                    120363339858396166@g.us
                                                                  • IsJoinApprovalRequiredbooleanoobrigatório

                                                                    Nome com maiúsculas exatamente assim. true: as entradas passam por aprovação; os pedidos aparecem em POST /group/info (getRequestsParticipants) e são tratados em POST /group/updateParticipants com approve ou reject.

                                                                    Se a entrada no grupo exige aprovação.

                                                                    Exemplo
                                                                    true

                                                                  Respostas

                                                                  • 200Configuração atualizada com sucesso
                                                                  • 400Corpo inválido ou campo IsJoinApprovalRequired ausente ou inválido.
                                                                  • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                  • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED). Caso do WhatsApp (403): Usuário não é administrador do grupo.
                                                                  • 404Grupo não encontrado
                                                                  • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                  • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                  • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                  • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                  • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                  Erros possíveis 16

                                                                    Requisição

                                                                    curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/group/updateJoinApproval' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "groupjid": "120363153742561022@g.us",  "IsJoinApprovalRequired": true}'

                                                                    Resposta

                                                                    200 JSON
                                                                    {
                                                                      "success": true,
                                                                      "data": {
                                                                        "response": "Group join approval enabled successfully",
                                                                        "group": {
                                                                          "JID": "120363339858396166@g.us",
                                                                          "IsJoinApprovalRequired": true
                                                                        },
                                                                        "needs_refresh": false
                                                                      }
                                                                    }

                                                                    Configurar quem pode adicionar novos membros ao grupo

                                                                    POST /group/updateMemberAddMode
                                                                    • Token do dispositivo
                                                                    • Não conta mensagem
                                                                    • Corpo até 1 MB

                                                                    Define quem pode adicionar novos participantes diretamente ao grupo. O estado aparece no campo MemberAddMode do objeto group da resposta e de POST /group/info.

                                                                    Valores aceitos em MemberAddMode:

                                                                    • admin_add: só administradores adicionam membros;
                                                                    • all_member_add: qualquer participante adiciona membros.

                                                                    O número do dispositivo precisa ser administrador do grupo.

                                                                    Corpo da requisição (JSON)

                                                                    Um objeto JSON com Content-Type: application/json.

                                                                    • groupjidtextoobrigatório

                                                                      JID do grupo, terminado em @g.us.

                                                                      Exemplo
                                                                      120363339858396166@g.us
                                                                    • MemberAddModetextoobrigatório

                                                                      admin_add: só administradores adicionam. all_member_add: qualquer participante adiciona.

                                                                      Quem pode adicionar membros.

                                                                      Valores
                                                                      admin_addall_member_add

                                                                    Respostas

                                                                    • 200Configuração atualizada com sucesso
                                                                    • 400Valor inválido para MemberAddMode
                                                                    • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                    • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED). Caso do WhatsApp (403): Usuário não é administrador do grupo.
                                                                    • 404Grupo não encontrado
                                                                    • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                    • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                    • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                    • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                    • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                    Erros possíveis 16

                                                                      Requisição

                                                                      curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/group/updateMemberAddMode' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "groupjid": "120363153742561022@g.us",  "MemberAddMode": "admin_add"}'

                                                                      Resposta

                                                                      200 JSON
                                                                      {
                                                                        "success": true,
                                                                        "data": {
                                                                          "response": "Group member add mode set to admin_add successfully",
                                                                          "group": {
                                                                            "JID": "120363339858396166@g.us",
                                                                            "MemberAddMode": "admin_add"
                                                                          },
                                                                          "needs_refresh": false
                                                                        }
                                                                      }

                                                                      Atualizar descrição do grupo

                                                                      POST /group/updateDescription
                                                                      • Token do dispositivo
                                                                      • Não conta mensagem
                                                                      • Corpo até 1 MB

                                                                      Altera a descrição do grupo, que aparece na tela de informações e pode ser vista por todos os participantes. Aceita até 512 caracteres.

                                                                      O número do dispositivo precisa ser administrador do grupo.

                                                                      Corpo da requisição (JSON)

                                                                      Um objeto JSON com Content-Type: application/json.

                                                                      • groupjidtextoobrigatório

                                                                        JID do grupo: só dígitos seguidos de @g.us.

                                                                        Limites
                                                                        formato ^[0-9]+@g\.us$
                                                                        Exemplo
                                                                        120363339858396166@g.us
                                                                      • descriptiontextoobrigatório

                                                                        Nova descrição do grupo, até 512 caracteres.

                                                                        Limites
                                                                        até 512 caracteres
                                                                        Exemplo
                                                                        Grupo oficial de suporte. Atendimento de segunda a sexta, das 9h às 18h.

                                                                      Respostas

                                                                      • 200Descrição atualizada com sucesso
                                                                      • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                      • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                      • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED). Caso do WhatsApp (403): Usuário não é administrador do grupo.
                                                                      • 404Grupo não encontrado
                                                                      • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE). Caso do WhatsApp (413): Descrição excede o limite máximo permitido.
                                                                      • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                      • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                      • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                      • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                      Erros possíveis 16

                                                                        Requisição

                                                                        curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/group/updateDescription' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "groupjid": "120363153742561022@g.us",  "description": "Grupo oficial de suporte. Atendimento de segunda a sexta, das 9h às 18h."}'

                                                                        Resposta

                                                                        200 JSON
                                                                        {
                                                                          "success": true,
                                                                          "data": {
                                                                            "response": "Group description updated successfully",
                                                                            "group": {
                                                                              "JID": "jid8@g.us",
                                                                              "OwnerJID": "1232@s.whatsapp.net",
                                                                              "OwnerPN": "5511999999999",
                                                                              "Name": "Grupo de Suporte",
                                                                              "NameSetAt": "2026-10-20T12:00:00Z",
                                                                              "NameSetBy": "Exemplo",
                                                                              "NameSetByPN": "Exemplo",
                                                                              "Topic": "https://exemplo.com/arquivo.jpg",
                                                                              "TopicID": "https://exemplo.com/arquivo.jpg",
                                                                              "TopicSetAt": "2026-10-20T12:00:00Z",
                                                                              "TopicSetBy": "https://exemplo.com/arquivo.jpg",
                                                                              "TopicSetByPN": "https://exemplo.com/arquivo.jpg",
                                                                              "TopicDeleted": true,
                                                                              "IsLocked": true,
                                                                              "IsAnnounce": true,
                                                                              "AnnounceVersionID": "",
                                                                              "IsEphemeral": true,
                                                                              "DisappearingTimer": 1,
                                                                              "IsIncognito": true,
                                                                              "IsParent": true,
                                                                              "IsJoinApprovalRequired": true,
                                                                              "LinkedParentJID": "https://exemplo.com/arquivo.jpg",
                                                                              "IsDefaultSubGroup": true,
                                                                              "DefaultMembershipApprovalMode": "text",
                                                                              "GroupCreated": "2026-10-20T12:00:00Z",
                                                                              "CreatorCountryCode": "AbCdEf123",
                                                                              "ParticipantVersionID": "",
                                                                              "Participants": [],
                                                                              "MemberAddMode": "",
                                                                              "AddressingMode": "",
                                                                              "OwnerCanSendMessage": true,
                                                                              "OwnerIsAdmin": true,
                                                                              "DefaultSubGroupId": "120363153742561022@g.us",
                                                                              "invite_link": "https://exemplo.com/arquivo.jpg",
                                                                              "request_participants": "",
                                                                              "image_url": "https://exemplo.com/arquivo.jpg",
                                                                              "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                              "picture_id": "https://exemplo.com/arquivo.jpg",
                                                                              "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                                              "picture_empty_at": "2026-10-20T12:00:00Z",
                                                                              "image_checked_at": "2026-10-20T12:00:00Z",
                                                                              "image_preview_checked_at": "2026-10-20T12:00:00Z",
                                                                              "parent_community": {
                                                                                "jid": "5511999999999@s.whatsapp.net",
                                                                                "name": "Exemplo",
                                                                                "image_url": "https://exemplo.com/arquivo.jpg",
                                                                                "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                                "default_subgroup_jid": "120363153742561022@g.us"
                                                                              },
                                                                              "participant_profiles": [
                                                                                {
                                                                                  "jid": "5511999999999@s.whatsapp.net",
                                                                                  "pn": "",
                                                                                  "lid": "123456789012345@lid",
                                                                                  "username": "Exemplo",
                                                                                  "display_name": "Exemplo",
                                                                                  "name": "Exemplo",
                                                                                  "image_url": "https://exemplo.com/arquivo.jpg",
                                                                                  "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                                  "picture_id": "https://exemplo.com/arquivo.jpg",
                                                                                  "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                                                  "is_admin": true,
                                                                                  "is_super_admin": true
                                                                                }
                                                                              ],
                                                                              "ParticipantCount": 10,
                                                                              "request_participants_lid": "123456789012345@lid"
                                                                            },
                                                                            "needs_refresh": false
                                                                          }
                                                                        }

                                                                        Configurar mensagens temporárias em grupo

                                                                        POST /group/ephemeral
                                                                        • Token do dispositivo
                                                                        • Não conta mensagem
                                                                        • Corpo até 1 MB

                                                                        Define o tempo das mensagens temporárias de um grupo.

                                                                        Valores aceitos em duration:

                                                                        • 0 ou "off" para desativar;
                                                                        • "1d" (1 dia);
                                                                        • "7d" (7 dias);
                                                                        • "90d" (90 dias).
                                                                        Ver mais detalhes

                                                                        Observações:

                                                                        • vale só para grupos; para conversa individual, use POST /chat/ephemeral;
                                                                        • o número do dispositivo precisa ser administrador do grupo;
                                                                        • se o identificador não for de grupo, a API volta erro;
                                                                        • a resposta traz a conversa e os dados atualizados do grupo.

                                                                        Corpo da requisição (JSON)

                                                                        Um objeto JSON com Content-Type: application/json.

                                                                        • groupjidtextoobrigatório

                                                                          Só grupo; para conversa individual, use POST /chat/ephemeral.

                                                                          JID do grupo, terminado em @g.us.

                                                                          Exemplo
                                                                          120363339858396166@g.us
                                                                        • durationstring|integerobrigatório

                                                                          Valores aceitos: 0 ou "off" (desativa), "1d", "7d" e "90d".

                                                                          Duração das mensagens temporárias, como texto ou número.

                                                                          Exemplo
                                                                          7d

                                                                        Respostas

                                                                        • 200Temporizador atualizado com sucesso
                                                                        • 400Corpo inválido, grupo inválido ou duração não suportada.
                                                                        • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                        • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED). Caso do WhatsApp (403): Usuário não é administrador do grupo.
                                                                        • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                        • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                        • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                        • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                        • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                        Erros possíveis 15

                                                                          Requisição

                                                                          curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/group/ephemeral' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "groupjid": "120363153742561022@g.us",  "duration": "7d"}'

                                                                          Resposta

                                                                          200 JSON
                                                                          {
                                                                            "success": true,
                                                                            "data": {
                                                                              "response": "Ephemeral timer updated successfully",
                                                                              "chat": {
                                                                                "wa_chatid": "120363339858396166@g.us",
                                                                                "wa_ephemeralExpiration": 86400,
                                                                                "wa_isGroup": true
                                                                              },
                                                                              "ephemeral": {
                                                                                "enabled": true,
                                                                                "seconds": 86400,
                                                                                "label": "1d"
                                                                              },
                                                                              "group": {
                                                                                "JID": "120363339858396166@g.us",
                                                                                "IsEphemeral": true,
                                                                                "DisappearingTimer": 86400
                                                                              },
                                                                              "needs_refresh": false
                                                                            }
                                                                          }

                                                                          Atualizar imagem do grupo

                                                                          POST /group/updateImage
                                                                          • Token do dispositivo
                                                                          • Não conta mensagem
                                                                          • Corpo até 20 MB

                                                                          Altera a imagem do grupo. A imagem pode ir por URL ou em base64.

                                                                          Requisitos da imagem:

                                                                          • formato JPEG;
                                                                          • resolução máxima de 640x640 pixels;
                                                                          • imagens maiores ou em formato diferente de JPEG não são aceitas pelo WhatsApp.

                                                                          Para remover a imagem atual, envie "remove" ou "delete" em image.

                                                                          O número do dispositivo precisa ser administrador do grupo.

                                                                          Corpo da requisição (JSON)

                                                                          Um objeto JSON com Content-Type: application/json.

                                                                          • groupjidtextoobrigatório

                                                                            JID do grupo, terminado em @g.us.

                                                                            Exemplo
                                                                            120363308883996631@g.us
                                                                          • imagetextoobrigatório

                                                                            Três modos: URL da imagem; imagem em base64; ou "remove"/"delete" para tirar a foto atual. A imagem precisa ser JPEG de até 640x640.

                                                                            Nova imagem do grupo: URL, base64 ou "remove"/"delete".

                                                                            Exemplo
                                                                            https://exemplo.com/logo-grupo.jpg

                                                                          Respostas

                                                                          • 200Imagem atualizada com sucesso
                                                                          • 400Erro nos parâmetros da requisição Caso do WhatsApp (415): Formato de imagem inválido.
                                                                          • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                          • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED). Caso do WhatsApp (403): Usuário não é administrador do grupo.
                                                                          • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE). Caso do WhatsApp (413): Imagem muito grande.
                                                                          • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                          • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                          • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                          • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                          Erros possíveis 15

                                                                            Requisição

                                                                            curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/group/updateImage' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "groupjid": "120363308883996631@g.us",  "image": "https://exemplo.com/logo-grupo.jpg"}'

                                                                            Resposta

                                                                            200 JSON
                                                                            {
                                                                              "success": true,
                                                                              "data": {
                                                                                "response": "Group image updated successfully",
                                                                                "group": {
                                                                                  "JID": "jid8@g.us",
                                                                                  "OwnerJID": "1232@s.whatsapp.net",
                                                                                  "OwnerPN": "5511999999999",
                                                                                  "Name": "Grupo de Suporte",
                                                                                  "NameSetAt": "2026-10-20T12:00:00Z",
                                                                                  "NameSetBy": "Exemplo",
                                                                                  "NameSetByPN": "Exemplo",
                                                                                  "Topic": "https://exemplo.com/arquivo.jpg",
                                                                                  "TopicID": "https://exemplo.com/arquivo.jpg",
                                                                                  "TopicSetAt": "2026-10-20T12:00:00Z",
                                                                                  "TopicSetBy": "https://exemplo.com/arquivo.jpg",
                                                                                  "TopicSetByPN": "https://exemplo.com/arquivo.jpg",
                                                                                  "TopicDeleted": true,
                                                                                  "IsLocked": true,
                                                                                  "IsAnnounce": true,
                                                                                  "AnnounceVersionID": "",
                                                                                  "IsEphemeral": true,
                                                                                  "DisappearingTimer": 1,
                                                                                  "IsIncognito": true,
                                                                                  "IsParent": true,
                                                                                  "IsJoinApprovalRequired": true,
                                                                                  "LinkedParentJID": "https://exemplo.com/arquivo.jpg",
                                                                                  "IsDefaultSubGroup": true,
                                                                                  "DefaultMembershipApprovalMode": "text",
                                                                                  "GroupCreated": "2026-10-20T12:00:00Z",
                                                                                  "CreatorCountryCode": "AbCdEf123",
                                                                                  "ParticipantVersionID": "",
                                                                                  "Participants": [],
                                                                                  "MemberAddMode": "",
                                                                                  "AddressingMode": "",
                                                                                  "OwnerCanSendMessage": true,
                                                                                  "OwnerIsAdmin": true,
                                                                                  "DefaultSubGroupId": "120363153742561022@g.us",
                                                                                  "invite_link": "https://exemplo.com/arquivo.jpg",
                                                                                  "request_participants": "",
                                                                                  "image_url": "https://exemplo.com/arquivo.jpg",
                                                                                  "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                                  "picture_id": "https://exemplo.com/arquivo.jpg",
                                                                                  "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                                                  "picture_empty_at": "2026-10-20T12:00:00Z",
                                                                                  "image_checked_at": "2026-10-20T12:00:00Z",
                                                                                  "image_preview_checked_at": "2026-10-20T12:00:00Z",
                                                                                  "parent_community": {
                                                                                    "jid": "5511999999999@s.whatsapp.net",
                                                                                    "name": "Exemplo",
                                                                                    "image_url": "https://exemplo.com/arquivo.jpg",
                                                                                    "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                                    "default_subgroup_jid": "120363153742561022@g.us"
                                                                                  },
                                                                                  "participant_profiles": [
                                                                                    {
                                                                                      "jid": "5511999999999@s.whatsapp.net",
                                                                                      "pn": "",
                                                                                      "lid": "123456789012345@lid",
                                                                                      "username": "Exemplo",
                                                                                      "display_name": "Exemplo",
                                                                                      "name": "Exemplo",
                                                                                      "image_url": "https://exemplo.com/arquivo.jpg",
                                                                                      "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                                      "picture_id": "https://exemplo.com/arquivo.jpg",
                                                                                      "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                                                      "is_admin": true,
                                                                                      "is_super_admin": true
                                                                                    }
                                                                                  ],
                                                                                  "ParticipantCount": 10,
                                                                                  "request_participants_lid": "123456789012345@lid"
                                                                                },
                                                                                "needs_refresh": false
                                                                              }
                                                                            }

                                                                            Configurar permissão de edição do grupo

                                                                            POST /group/updateLocked
                                                                            • Token do dispositivo
                                                                            • Não conta mensagem
                                                                            • Corpo até 1 MB

                                                                            Define se só administradores podem editar os dados do grupo.

                                                                            Com locked: true, só administradores alteram nome, descrição, imagem e outras configurações do grupo. Com locked: false, qualquer participante pode editar esses dados.

                                                                            Observações:

                                                                            • o número do dispositivo precisa ser administrador do grupo;
                                                                            • não controla quem adiciona membros; para isso, use POST /group/updateMemberAddMode.

                                                                            Corpo da requisição (JSON)

                                                                            Um objeto JSON com Content-Type: application/json.

                                                                            • groupjidtextoobrigatório

                                                                              JID do grupo, terminado em @g.us.

                                                                              Exemplo
                                                                              120363308883996631@g.us
                                                                            • lockedbooleanoobrigatório

                                                                              True: só administradores editam nome, descrição e imagem. false: qualquer participante edita.

                                                                              Quem pode editar os dados do grupo.

                                                                              Exemplo
                                                                              true

                                                                            Respostas

                                                                            • 200Operação realizada com sucesso
                                                                            • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                            • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                            • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED). Caso do WhatsApp (403): Usuário não é administrador do grupo.
                                                                            • 404Grupo não encontrado
                                                                            • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                            • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                            • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                            • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                            • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                            Erros possíveis 16

                                                                              Requisição

                                                                              curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/group/updateLocked' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "groupjid": "120363308883996631@g.us",  "locked": true}'

                                                                              Resposta

                                                                              200 JSON
                                                                              {
                                                                                "success": true,
                                                                                "data": {
                                                                                  "response": "Group lock status changed successfully",
                                                                                  "group": {
                                                                                    "JID": "jid8@g.us",
                                                                                    "OwnerJID": "1232@s.whatsapp.net",
                                                                                    "OwnerPN": "5511999999999",
                                                                                    "Name": "Grupo de Suporte",
                                                                                    "NameSetAt": "2026-10-20T12:00:00Z",
                                                                                    "NameSetBy": "Exemplo",
                                                                                    "NameSetByPN": "Exemplo",
                                                                                    "Topic": "https://exemplo.com/arquivo.jpg",
                                                                                    "TopicID": "https://exemplo.com/arquivo.jpg",
                                                                                    "TopicSetAt": "2026-10-20T12:00:00Z",
                                                                                    "TopicSetBy": "https://exemplo.com/arquivo.jpg",
                                                                                    "TopicSetByPN": "https://exemplo.com/arquivo.jpg",
                                                                                    "TopicDeleted": true,
                                                                                    "IsLocked": true,
                                                                                    "IsAnnounce": true,
                                                                                    "AnnounceVersionID": "",
                                                                                    "IsEphemeral": true,
                                                                                    "DisappearingTimer": 1,
                                                                                    "IsIncognito": true,
                                                                                    "IsParent": true,
                                                                                    "IsJoinApprovalRequired": true,
                                                                                    "LinkedParentJID": "https://exemplo.com/arquivo.jpg",
                                                                                    "IsDefaultSubGroup": true,
                                                                                    "DefaultMembershipApprovalMode": "text",
                                                                                    "GroupCreated": "2026-10-20T12:00:00Z",
                                                                                    "CreatorCountryCode": "AbCdEf123",
                                                                                    "ParticipantVersionID": "",
                                                                                    "Participants": [],
                                                                                    "MemberAddMode": "",
                                                                                    "AddressingMode": "",
                                                                                    "OwnerCanSendMessage": true,
                                                                                    "OwnerIsAdmin": true,
                                                                                    "DefaultSubGroupId": "120363153742561022@g.us",
                                                                                    "invite_link": "https://exemplo.com/arquivo.jpg",
                                                                                    "request_participants": "",
                                                                                    "image_url": "https://exemplo.com/arquivo.jpg",
                                                                                    "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                                    "picture_id": "https://exemplo.com/arquivo.jpg",
                                                                                    "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                                                    "picture_empty_at": "2026-10-20T12:00:00Z",
                                                                                    "image_checked_at": "2026-10-20T12:00:00Z",
                                                                                    "image_preview_checked_at": "2026-10-20T12:00:00Z",
                                                                                    "parent_community": {
                                                                                      "jid": "5511999999999@s.whatsapp.net",
                                                                                      "name": "Exemplo",
                                                                                      "image_url": "https://exemplo.com/arquivo.jpg",
                                                                                      "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                                      "default_subgroup_jid": "120363153742561022@g.us"
                                                                                    },
                                                                                    "participant_profiles": [
                                                                                      {
                                                                                        "jid": "5511999999999@s.whatsapp.net",
                                                                                        "pn": "",
                                                                                        "lid": "123456789012345@lid",
                                                                                        "username": "Exemplo",
                                                                                        "display_name": "Exemplo",
                                                                                        "name": "Exemplo",
                                                                                        "image_url": "https://exemplo.com/arquivo.jpg",
                                                                                        "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                                        "picture_id": "https://exemplo.com/arquivo.jpg",
                                                                                        "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                                                        "is_admin": true,
                                                                                        "is_super_admin": true
                                                                                      }
                                                                                    ],
                                                                                    "ParticipantCount": 10,
                                                                                    "request_participants_lid": "123456789012345@lid"
                                                                                  },
                                                                                  "needs_refresh": false
                                                                                }
                                                                              }

                                                                              Atualizar nome do grupo

                                                                              POST /group/updateName
                                                                              • Token do dispositivo
                                                                              • Não conta mensagem
                                                                              • Corpo até 1 MB

                                                                              Altera o nome do grupo. Só administradores do grupo podem fazer isso.

                                                                              O nome precisa ter de 1 a 25 caracteres e seguir as regras do WhatsApp.

                                                                              Corpo da requisição (JSON)

                                                                              Um objeto JSON com Content-Type: application/json.

                                                                              • groupjidtextoobrigatório

                                                                                JID do grupo, terminado em @g.us.

                                                                                Exemplo
                                                                                120363339858396166@g.us
                                                                              • nametextoobrigatório

                                                                                Novo nome do grupo, de 1 a 25 caracteres.

                                                                                Limites
                                                                                1 a 25 caracteres
                                                                                Exemplo
                                                                                Suporte Clientes

                                                                              Respostas

                                                                              • 200Nome do grupo atualizado com sucesso
                                                                              • 400Erro de validação na requisição
                                                                              • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                              • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED). Caso do WhatsApp (403): Usuário não é administrador do grupo.
                                                                              • 404Grupo não encontrado
                                                                              • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                              • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                              • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                              • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                              • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                              Erros possíveis 16

                                                                                Requisição

                                                                                curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/group/updateName' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "groupjid": "120363153742561022@g.us",  "name": "Suporte Clientes"}'

                                                                                Resposta

                                                                                200 JSON
                                                                                {
                                                                                  "success": true,
                                                                                  "data": {
                                                                                    "response": "Group name updated successfully",
                                                                                    "group": {
                                                                                      "JID": "jid8@g.us",
                                                                                      "OwnerJID": "1232@s.whatsapp.net",
                                                                                      "OwnerPN": "5511999999999",
                                                                                      "Name": "Grupo de Suporte",
                                                                                      "NameSetAt": "2026-10-20T12:00:00Z",
                                                                                      "NameSetBy": "Exemplo",
                                                                                      "NameSetByPN": "Exemplo",
                                                                                      "Topic": "https://exemplo.com/arquivo.jpg",
                                                                                      "TopicID": "https://exemplo.com/arquivo.jpg",
                                                                                      "TopicSetAt": "2026-10-20T12:00:00Z",
                                                                                      "TopicSetBy": "https://exemplo.com/arquivo.jpg",
                                                                                      "TopicSetByPN": "https://exemplo.com/arquivo.jpg",
                                                                                      "TopicDeleted": true,
                                                                                      "IsLocked": true,
                                                                                      "IsAnnounce": true,
                                                                                      "AnnounceVersionID": "",
                                                                                      "IsEphemeral": true,
                                                                                      "DisappearingTimer": 1,
                                                                                      "IsIncognito": true,
                                                                                      "IsParent": true,
                                                                                      "IsJoinApprovalRequired": true,
                                                                                      "LinkedParentJID": "https://exemplo.com/arquivo.jpg",
                                                                                      "IsDefaultSubGroup": true,
                                                                                      "DefaultMembershipApprovalMode": "text",
                                                                                      "GroupCreated": "2026-10-20T12:00:00Z",
                                                                                      "CreatorCountryCode": "AbCdEf123",
                                                                                      "ParticipantVersionID": "",
                                                                                      "Participants": [],
                                                                                      "MemberAddMode": "",
                                                                                      "AddressingMode": "",
                                                                                      "OwnerCanSendMessage": true,
                                                                                      "OwnerIsAdmin": true,
                                                                                      "DefaultSubGroupId": "120363153742561022@g.us",
                                                                                      "invite_link": "https://exemplo.com/arquivo.jpg",
                                                                                      "request_participants": "",
                                                                                      "image_url": "https://exemplo.com/arquivo.jpg",
                                                                                      "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                                      "picture_id": "https://exemplo.com/arquivo.jpg",
                                                                                      "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                                                      "picture_empty_at": "2026-10-20T12:00:00Z",
                                                                                      "image_checked_at": "2026-10-20T12:00:00Z",
                                                                                      "image_preview_checked_at": "2026-10-20T12:00:00Z",
                                                                                      "parent_community": {
                                                                                        "jid": "5511999999999@s.whatsapp.net",
                                                                                        "name": "Exemplo",
                                                                                        "image_url": "https://exemplo.com/arquivo.jpg",
                                                                                        "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                                        "default_subgroup_jid": "120363153742561022@g.us"
                                                                                      },
                                                                                      "participant_profiles": [
                                                                                        {
                                                                                          "jid": "5511999999999@s.whatsapp.net",
                                                                                          "pn": "",
                                                                                          "lid": "123456789012345@lid",
                                                                                          "username": "Exemplo",
                                                                                          "display_name": "Exemplo",
                                                                                          "name": "Exemplo",
                                                                                          "image_url": "https://exemplo.com/arquivo.jpg",
                                                                                          "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                                          "picture_id": "https://exemplo.com/arquivo.jpg",
                                                                                          "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                                                          "is_admin": true,
                                                                                          "is_super_admin": true
                                                                                        }
                                                                                      ],
                                                                                      "ParticipantCount": 10,
                                                                                      "request_participants_lid": "123456789012345@lid"
                                                                                    },
                                                                                    "needs_refresh": false
                                                                                  }
                                                                                }

                                                                                Gerenciar participantes do grupo

                                                                                POST /group/updateParticipants
                                                                                • Token do dispositivo
                                                                                • Não conta mensagem
                                                                                • Corpo até 1 MB

                                                                                Gerencia os participantes do grupo. A ação vai em action:

                                                                                • add: adiciona participantes;
                                                                                • remove: tira participantes do grupo;
                                                                                • promote: torna participantes administradores;
                                                                                • demote: tira o cargo de administrador;
                                                                                • approve: aprova pedidos de entrada pendentes;
                                                                                • reject: recusa pedidos de entrada pendentes.

                                                                                O número do dispositivo precisa ser administrador do grupo.

                                                                                Ver mais detalhes

                                                                                approve e reject valem para os pedidos pendentes, que existem quando a aprovação de entrada está ligada (POST /group/updateJoinApproval) e aparecem em POST /group/info com getRequestsParticipants: true.

                                                                                A resposta traz em groupUpdated o resultado de cada participante: Error 0 é sucesso. Com action: add, quem a privacidade bloqueia volta com Error: 403 e AddRequest (código e prazo do convite individual que o WhatsApp gera). Para chamar essa pessoa, pegue o link do grupo em GET /group/invitelink/{groupJID} e envie como texto por POST /send/text. O campo needs_refresh indica se os detalhes do grupo precisam ser consultados de novo.

                                                                                Corpo da requisição (JSON)

                                                                                Um objeto JSON com Content-Type: application/json.

                                                                                • groupjidtextoobrigatório

                                                                                  JID do grupo, terminado em @g.us.

                                                                                  Exemplo
                                                                                  120363308883996631@g.us
                                                                                • actiontextoobrigatório

                                                                                  Add: adiciona; quem a privacidade bloqueia volta em groupUpdated com Error 403 e AddRequest. remove: tira do grupo. promote: torna administrador. demote: tira o cargo de administrador. approve/reject: aprova ou recusa pedidos de entrada pendentes (lista em POST /group/info com getRequestsParticipants: true). Todas exigem que o número do dispositivo seja administrador.

                                                                                  Ação a executar.

                                                                                  Valores
                                                                                  addremovepromotedemoteapprovereject
                                                                                • participantslista de textosobrigatório

                                                                                  Cada item: número com DDI no formato internacional, sem + nem espaços, ou JID completo.

                                                                                  Participantes afetados pela ação.

                                                                                Respostas

                                                                                • 200Sucesso na operação
                                                                                • 400Erro nos parâmetros da requisição
                                                                                • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED). Caso do WhatsApp (403): Usuário não é administrador do grupo.
                                                                                • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                Erros possíveis 15

                                                                                  Requisição

                                                                                  curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/group/updateParticipants' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "groupjid": "120363308883996631@g.us",  "action": "add",  "participants": [    "5511999999999",    "5521987654321"  ]}'

                                                                                  Resposta

                                                                                  200 JSON
                                                                                  {
                                                                                    "success": true,
                                                                                    "data": {
                                                                                      "groupUpdated": [
                                                                                        {
                                                                                          "JID": "5521987654321@s.whatsapp.net",
                                                                                          "Error": 0,
                                                                                          "AddRequest": null
                                                                                        },
                                                                                        {
                                                                                          "JID": "5511999999999@s.whatsapp.net",
                                                                                          "Error": 403,
                                                                                          "AddRequest": {
                                                                                            "Code": "EMVH7xMeLQRQcZQg",
                                                                                            "Expiration": "2026-10-08T15:38:19Z"
                                                                                          }
                                                                                        }
                                                                                      ],
                                                                                      "needs_refresh": true
                                                                                    }
                                                                                  }

                                                                                  Criar uma comunidade

                                                                                  POST /community/create
                                                                                  • Token do dispositivo
                                                                                  • Não conta mensagem
                                                                                  • Corpo até 1 MB

                                                                                  Cria uma comunidade no WhatsApp. A comunidade reúne vários grupos relacionados sob uma mesma administração.

                                                                                  Ela nasce só com o grupo principal de avisos, criado automaticamente. Outros grupos podem ser vinculados depois em POST /community/editgroups, usando como community o JID que volta em group.JID.

                                                                                  O número que cria a comunidade vira administrador dela automaticamente.

                                                                                  Corpo da requisição (JSON)

                                                                                  Um objeto JSON com Content-Type: application/json.

                                                                                  • nametextoobrigatório

                                                                                    Nome da comunidade.

                                                                                    Exemplo
                                                                                    Comunidade do Bairro

                                                                                  Respostas

                                                                                  • 200Comunidade criada com sucesso
                                                                                  • 400Erro na requisição
                                                                                  • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                  • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED). Caso do WhatsApp (403): Sem permissão para criar comunidades.
                                                                                  • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                  • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                  • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After. Caso do WhatsApp (429): Limite de criação de comunidades atingido.
                                                                                  • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                  • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                  Erros possíveis 15

                                                                                    Requisição

                                                                                    curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/community/create' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "name": "Comunidade do Bairro"}'

                                                                                    Resposta

                                                                                    200 JSON
                                                                                    {
                                                                                      "success": true,
                                                                                      "data": {
                                                                                        "group": {
                                                                                          "JID": "jid8@g.us",
                                                                                          "OwnerJID": "1232@s.whatsapp.net",
                                                                                          "OwnerPN": "5511999999999",
                                                                                          "Name": "Grupo de Suporte",
                                                                                          "NameSetAt": "2026-10-20T12:00:00Z",
                                                                                          "NameSetBy": "Exemplo",
                                                                                          "NameSetByPN": "Exemplo",
                                                                                          "Topic": "https://exemplo.com/arquivo.jpg",
                                                                                          "TopicID": "https://exemplo.com/arquivo.jpg",
                                                                                          "TopicSetAt": "2026-10-20T12:00:00Z",
                                                                                          "TopicSetBy": "https://exemplo.com/arquivo.jpg",
                                                                                          "TopicSetByPN": "https://exemplo.com/arquivo.jpg",
                                                                                          "TopicDeleted": true,
                                                                                          "IsLocked": true,
                                                                                          "IsAnnounce": true,
                                                                                          "AnnounceVersionID": "",
                                                                                          "IsEphemeral": true,
                                                                                          "DisappearingTimer": 1,
                                                                                          "IsIncognito": true,
                                                                                          "IsParent": true,
                                                                                          "IsJoinApprovalRequired": true,
                                                                                          "LinkedParentJID": "https://exemplo.com/arquivo.jpg",
                                                                                          "IsDefaultSubGroup": true,
                                                                                          "DefaultMembershipApprovalMode": "text",
                                                                                          "GroupCreated": "2026-10-20T12:00:00Z",
                                                                                          "CreatorCountryCode": "AbCdEf123",
                                                                                          "ParticipantVersionID": "",
                                                                                          "Participants": [],
                                                                                          "MemberAddMode": "",
                                                                                          "AddressingMode": "",
                                                                                          "OwnerCanSendMessage": true,
                                                                                          "OwnerIsAdmin": true,
                                                                                          "DefaultSubGroupId": "120363153742561022@g.us",
                                                                                          "invite_link": "https://exemplo.com/arquivo.jpg",
                                                                                          "request_participants": "",
                                                                                          "image_url": "https://exemplo.com/arquivo.jpg",
                                                                                          "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                                          "picture_id": "https://exemplo.com/arquivo.jpg",
                                                                                          "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                                                          "picture_empty_at": "2026-10-20T12:00:00Z",
                                                                                          "image_checked_at": "2026-10-20T12:00:00Z",
                                                                                          "image_preview_checked_at": "2026-10-20T12:00:00Z",
                                                                                          "parent_community": {
                                                                                            "jid": "5511999999999@s.whatsapp.net",
                                                                                            "name": "Exemplo",
                                                                                            "image_url": "https://exemplo.com/arquivo.jpg",
                                                                                            "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                                            "default_subgroup_jid": "120363153742561022@g.us"
                                                                                          },
                                                                                          "participant_profiles": [
                                                                                            {
                                                                                              "jid": "5511999999999@s.whatsapp.net",
                                                                                              "pn": "",
                                                                                              "lid": "123456789012345@lid",
                                                                                              "username": "Exemplo",
                                                                                              "display_name": "Exemplo",
                                                                                              "name": "Exemplo",
                                                                                              "image_url": "https://exemplo.com/arquivo.jpg",
                                                                                              "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                                              "picture_id": "https://exemplo.com/arquivo.jpg",
                                                                                              "picture_preview_id": "https://exemplo.com/arquivo.jpg",
                                                                                              "is_admin": true,
                                                                                              "is_super_admin": true
                                                                                            }
                                                                                          ],
                                                                                          "ParticipantCount": 10,
                                                                                          "request_participants_lid": "123456789012345@lid"
                                                                                        },
                                                                                        "failed": [
                                                                                          ""
                                                                                        ]
                                                                                      }
                                                                                    }

                                                                                    Gerenciar grupos em uma comunidade

                                                                                    POST /community/editgroups
                                                                                    • Token do dispositivo
                                                                                    • Não conta mensagem
                                                                                    • Corpo até 1 MB

                                                                                    Vincula ou desvincula grupos de uma comunidade do WhatsApp. Só administradores da comunidade podem fazer isso.

                                                                                    Ações em action:

                                                                                    • add: vincula os grupos indicados à comunidade;
                                                                                    • remove: desvincula os grupos indicados.
                                                                                    Ver mais detalhes

                                                                                    Vários grupos podem ir na mesma requisição.

                                                                                    Regras:

                                                                                    • os grupos precisam existir;
                                                                                    • a comunidade precisa existir e o número do dispositivo precisa ser administrador dela;
                                                                                    • grupo já vinculado não pode ser vinculado de novo;
                                                                                    • grupo não vinculado não pode ser desvinculado.

                                                                                    A resposta lista em success os grupos processados e em failed os que falharam.

                                                                                    Corpo da requisição (JSON)

                                                                                    Um objeto JSON com Content-Type: application/json.

                                                                                    • communitytextoobrigatório

                                                                                      JID da comunidade (o group.JID devolvido em POST /community/create).

                                                                                      Exemplo
                                                                                      120363153742561022@g.us
                                                                                    • actiontextoobrigatório

                                                                                      add: vincula grupos ainda não vinculados. remove: desvincula grupos já vinculados.

                                                                                      Operação.

                                                                                      Valores
                                                                                      addremove
                                                                                    • groupjidslista de textosobrigatório

                                                                                      Os grupos precisam existir.

                                                                                      JIDs dos grupos (pelo menos 1).

                                                                                      Limites
                                                                                      pelo menos 1 item

                                                                                    Respostas

                                                                                    • 200Operação realizada com sucesso
                                                                                    • 400Requisição inválida
                                                                                    • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                    • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED). Caso do WhatsApp (403): Usuário não é administrador da comunidade.
                                                                                    • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                    • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                    • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                    • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                    • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                    Erros possíveis 15

                                                                                      Requisição

                                                                                      curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/community/editgroups' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "community": "120363153742561022@g.us",  "action": "add",  "groupjids": [    "120363324255083289@g.us",    "120363308883996631@g.us"  ]}'

                                                                                      Resposta

                                                                                      200 JSON
                                                                                      {
                                                                                        "message": "community updated",
                                                                                        "success": [
                                                                                          ""
                                                                                        ],
                                                                                        "failed": [
                                                                                          ""
                                                                                        ]
                                                                                      }

                                                                                      Referência 12

                                                                                      Conversas

                                                                                      Busque, arquive, fixe, silencie e marque conversas como lidas.

                                                                                      Apagar conversa

                                                                                      POST /chat/delete
                                                                                      • Token do dispositivo
                                                                                      • Não conta mensagem
                                                                                      • Corpo até 1 MB

                                                                                      Apaga uma conversa, as mensagens guardadas dela ou as duas coisas, conforme as opções enviadas como true:

                                                                                      • deleteChatWhatsApp: apaga a conversa no WhatsApp (em grupo isso não é permitido, e a conversa é só limpa)
                                                                                      • clearChatWhatsApp: limpa as mensagens da conversa no WhatsApp, sem sair dela
                                                                                      • deleteChatDB: tira a conversa do histórico do dispositivo
                                                                                      • deleteMessagesDB: apaga as mensagens guardadas da conversa
                                                                                      Ver mais detalhes

                                                                                      As opções podem ser combinadas e todas começam em false: envie como true as que quiser aplicar. Com clearChatWhatsApp e deleteChatWhatsApp juntos, a limpeza tem prioridade. Conversa não encontrada responde 404.

                                                                                      Corpo da requisição (JSON)

                                                                                      Um objeto JSON com Content-Type: application/json.

                                                                                      • numbertextoobrigatório

                                                                                        Número com DDI ou JID da conversa; para grupo, o ID completo (@g.us).

                                                                                        Exemplo
                                                                                        5511999999999
                                                                                      • deleteChatDBbooleanoopcional

                                                                                        true tira a conversa do histórico do dispositivo.

                                                                                        Padrão
                                                                                        false
                                                                                        Exemplo
                                                                                        true
                                                                                      • deleteMessagesDBbooleanoopcional

                                                                                        true apaga todas as mensagens guardadas da conversa.

                                                                                        Padrão
                                                                                        false
                                                                                        Exemplo
                                                                                        true
                                                                                      • deleteChatWhatsAppbooleanoopcional

                                                                                        Em grupo não é permitido: a conversa é só limpa.

                                                                                        true apaga a conversa no WhatsApp.

                                                                                        Padrão
                                                                                        false
                                                                                        Exemplo
                                                                                        true
                                                                                      • clearChatWhatsAppbooleanoopcional

                                                                                        Se vier junto com deleteChatWhatsApp=true, a limpeza tem prioridade.

                                                                                        true limpa as mensagens da conversa no WhatsApp sem sair dela. Vale para grupo e conversa individual.

                                                                                        Padrão
                                                                                        false
                                                                                        Exemplo
                                                                                        true

                                                                                      Respostas

                                                                                      • 200Operação realizada com sucesso
                                                                                      • 400Erro nos parâmetros da requisição
                                                                                      • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                      • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                      • 404Chat não encontrado
                                                                                      • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                      • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                      • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                      • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                      • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                      Erros possíveis 16

                                                                                        Requisição

                                                                                        curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/chat/delete' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999",  "deleteChatWhatsApp": true,  "deleteChatDB": true,  "deleteMessagesDB": true}'

                                                                                        Resposta

                                                                                        200 JSON
                                                                                        {
                                                                                          "success": true,
                                                                                          "data": {
                                                                                            "response": "Chat deletion process completed",
                                                                                            "actions": [
                                                                                              "Chat deleted from WhatsApp",
                                                                                              "Chat deleted from database",
                                                                                              "Messages associated with chat deleted from database: 42"
                                                                                            ],
                                                                                            "errors": [
                                                                                              "Error deleting chat from WhatsApp: connection timeout"
                                                                                            ]
                                                                                          }
                                                                                        }

                                                                                        Arquivar ou desarquivar conversa

                                                                                        POST /chat/archive
                                                                                        • Token do dispositivo
                                                                                        • Não conta mensagem
                                                                                        • Corpo até 1 MB

                                                                                        Altera o estado de arquivamento de um chat do WhatsApp.

                                                                                        • Quando arquivado, o chat é movido para a seção de arquivados no WhatsApp
                                                                                        • A ação é sincronizada entre todos os dispositivos conectados
                                                                                        • Não afeta as mensagens ou o conteúdo do chat

                                                                                        Corpo da requisição (JSON)

                                                                                        Um objeto JSON com Content-Type: application/json.

                                                                                        • numbertextoobrigatório

                                                                                          Número com DDI ou ID do grupo.

                                                                                          Exemplo
                                                                                          5511999999999
                                                                                        • archivebooleanoobrigatório

                                                                                          true arquiva; false desarquiva.

                                                                                          Exemplo
                                                                                          true

                                                                                        Respostas

                                                                                        • 200Chat arquivado/desarquivado com sucesso
                                                                                        • 400Dados da requisição inválidos
                                                                                        • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                        • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                        • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                        • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                        • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                        • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                        • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                        Erros possíveis 15

                                                                                          Requisição

                                                                                          curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/chat/archive' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999",  "archive": true}'

                                                                                          Resposta

                                                                                          200 JSON
                                                                                          {
                                                                                            "success": true,
                                                                                            "data": {
                                                                                              "response": "Chat updated successfully"
                                                                                            }
                                                                                          }

                                                                                          Configurar mensagens temporárias em conversa individual

                                                                                          POST /chat/ephemeral
                                                                                          • Token do dispositivo
                                                                                          • Não conta mensagem
                                                                                          • Corpo até 1 MB

                                                                                          Define o temporizador de mensagens temporárias de uma conversa individual.

                                                                                          Valores aceitos em duration:

                                                                                          • 0 ou off: desativa
                                                                                          • 1d: 1 dia
                                                                                          • 7d: 7 dias
                                                                                          • 90d: 90 dias
                                                                                          Ver mais detalhes

                                                                                          Outro valor responde 400. Só vale para conversas individuais: com o ID de um grupo, a resposta é um erro que orienta usar POST /group/ephemeral. A resposta traz o chat com wa_ephemeralExpiration atualizado e ephemeral (enabled, seconds e label).

                                                                                          Corpo da requisição (JSON)

                                                                                          Um objeto JSON com Content-Type: application/json.

                                                                                          • numbertextoobrigatório

                                                                                            Só conversa individual; para grupo, use POST /group/ephemeral.

                                                                                            Identificador da conversa individual.

                                                                                            Exemplo
                                                                                            5511999999999@s.whatsapp.net
                                                                                          • durationstring|integerobrigatório

                                                                                            Valores aceitos: 0 ou "off" desativa; "1d", "7d" ou "90d" ativa por 1, 7 ou 90 dias. Outro valor responde 400.

                                                                                            Duração das mensagens temporárias.

                                                                                            Exemplo
                                                                                            7d

                                                                                          Respostas

                                                                                          • 200Temporizador atualizado com sucesso
                                                                                          • 400Corpo inválido, chat inválido ou duração não suportada
                                                                                          • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                          • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                          • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                          • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                          • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                          • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                          • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                          Erros possíveis 15

                                                                                            Requisição

                                                                                            curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/chat/ephemeral' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999@s.whatsapp.net",  "duration": "7d"}'

                                                                                            Resposta

                                                                                            200 JSON
                                                                                            {
                                                                                              "success": true,
                                                                                              "data": {
                                                                                                "response": "Ephemeral timer updated successfully",
                                                                                                "chat": {
                                                                                                  "wa_chatid": "5511999999999@s.whatsapp.net",
                                                                                                  "wa_ephemeralExpiration": 604800,
                                                                                                  "wa_isGroup": false
                                                                                                },
                                                                                                "ephemeral": {
                                                                                                  "enabled": true,
                                                                                                  "seconds": 604800,
                                                                                                  "label": "7d"
                                                                                                }
                                                                                              }
                                                                                            }

                                                                                            Marcar conversa como lida ou não lida

                                                                                            POST /chat/read
                                                                                            • Token do dispositivo
                                                                                            • Não conta mensagem
                                                                                            • Corpo até 1 MB

                                                                                            Atualiza o status de leitura de um chat no WhatsApp.

                                                                                            Quando um chat é marcado como lido:

                                                                                            • O contador de mensagens não lidas é zerado
                                                                                            • O indicador visual de mensagens não lidas é removido
                                                                                            • O remetente recebe confirmação de leitura (se ativado)

                                                                                            Quando marcado como não lido:

                                                                                            • O chat aparece como pendente de leitura
                                                                                            • Não afeta as confirmações de leitura já enviadas

                                                                                            Corpo da requisição (JSON)

                                                                                            Um objeto JSON com Content-Type: application/json.

                                                                                            • numbertextoobrigatório

                                                                                              JID da conversa: 5511999999999@s.whatsapp.net para pessoa ou 120363025678901234@g.us para grupo.

                                                                                              Exemplo
                                                                                              5511999999999@s.whatsapp.net
                                                                                            • readbooleanoobrigatório

                                                                                              true marca como lida; false marca como não lida.

                                                                                            Respostas

                                                                                            • 200Status de leitura atualizado com sucesso
                                                                                            • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                            • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                            • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                            • 404Chat não encontrado
                                                                                            • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                            • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                            • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                            • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                            • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                            Erros possíveis 16

                                                                                              Requisição

                                                                                              curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/chat/read' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999@s.whatsapp.net",  "read": true}'

                                                                                              Resposta

                                                                                              200 JSON
                                                                                              {
                                                                                                "success": true,
                                                                                                "data": {
                                                                                                  "response": "Chat read status updated successfully"
                                                                                                }
                                                                                              }

                                                                                              Silenciar conversa

                                                                                              POST /chat/mute
                                                                                              • Token do dispositivo
                                                                                              • Não conta mensagem
                                                                                              • Corpo até 1 MB

                                                                                              Silencia notificações de um chat por um período específico. As opções de silenciamento são:

                                                                                              • 0 - Remove o silenciamento
                                                                                              • 8 - Silencia por 8 horas
                                                                                              • 168 - Silencia por 1 semana (168 horas)
                                                                                              • -1 - Silencia permanentemente

                                                                                              Corpo da requisição (JSON)

                                                                                              Um objeto JSON com Content-Type: application/json.

                                                                                              • numbertextoobrigatório

                                                                                                JID da conversa (pessoa ou grupo).

                                                                                                Exemplo
                                                                                                5511999999999@s.whatsapp.net
                                                                                              • muteEndTimeinteiroobrigatório

                                                                                                0 tira o silêncio; 8 silencia por 8 horas; 168 por 1 semana; -1 para sempre.

                                                                                                Valores
                                                                                                08168-1

                                                                                              Respostas

                                                                                              • 200Chat silenciado com sucesso
                                                                                              • 400Duração inválida ou formato de número incorreto
                                                                                              • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                              • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                              • 404Chat não encontrado
                                                                                              • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                              • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                              • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                              • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                              • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                              Erros possíveis 16

                                                                                                Requisição

                                                                                                curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/chat/mute' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999@s.whatsapp.net",  "muteEndTime": 8}'

                                                                                                Resposta

                                                                                                200 JSON
                                                                                                {
                                                                                                  "success": true,
                                                                                                  "data": {
                                                                                                    "response": "Chat mute settings updated successfully"
                                                                                                  }
                                                                                                }

                                                                                                Fixar ou desafixar conversa

                                                                                                POST /chat/pin
                                                                                                • Token do dispositivo
                                                                                                • Não conta mensagem
                                                                                                • Corpo até 1 MB

                                                                                                Fixa ou desafixa um chat no topo da lista de conversas. Chats fixados permanecem no topo mesmo quando novas mensagens são recebidas em outros chats.

                                                                                                Corpo da requisição (JSON)

                                                                                                Um objeto JSON com Content-Type: application/json.

                                                                                                • numbertextoobrigatório

                                                                                                  Número com DDI ou ID do grupo.

                                                                                                  Exemplo
                                                                                                  5511999999999
                                                                                                • pinbooleanoobrigatório

                                                                                                  true fixa; false desafixa.

                                                                                                  Exemplo
                                                                                                  true

                                                                                                Respostas

                                                                                                • 200Chat fixado/desafixado com sucesso
                                                                                                • 400Erro na requisição
                                                                                                • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                Erros possíveis 15

                                                                                                  Requisição

                                                                                                  curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/chat/pin' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999",  "pin": true}'

                                                                                                  Resposta

                                                                                                  200 JSON
                                                                                                  {
                                                                                                    "success": true,
                                                                                                    "data": {
                                                                                                      "response": "Chat pinned"
                                                                                                    }
                                                                                                  }

                                                                                                  Buscar conversas com filtros

                                                                                                  POST /chat/find
                                                                                                  • Token do dispositivo
                                                                                                  • Não conta mensagem
                                                                                                  • Corpo até 1 MB

                                                                                                  Busca conversas com filtros, ordenação e paginação. Qualquer campo da conversa serve de filtro: além dos listados abaixo, valem por exemplo wa_lastMsgTimestamp, wa_lastMessageType, wa_isGroup_community, phone, lead_name, lead_fullName, lead_email, lead_kanbanOrder e lead_field01 a lead_field20, com o nome exato do campo.

                                                                                                  Ver mais detalhes
                                                                                                  Operadores

                                                                                                  Nos filtros de texto, o valor pode começar com um operador:

                                                                                                  • =: igual
                                                                                                  • ~: contém
                                                                                                  • !~: não contém
                                                                                                  • !=: diferente
                                                                                                  • >=: maior ou igual
                                                                                                  • >: maior que
                                                                                                  • <=: menor ou igual
                                                                                                  • <: menor que
                                                                                                  • sem operador: contém

                                                                                                  operator diz como combinar os filtros: AND (todos, o padrão) ou OR (qualquer um). sort ordena por um campo, com - na frente para decrescente ou + para crescente (ex.: -wa_lastMsgTimestamp).

                                                                                                  Paginação e formato

                                                                                                  No formato completo, o padrão é 2000 registros e um limit positivo é respeitado sem teto. Com compact: true, o padrão é 100 e o máximo 200; valores maiores são reduzidos para 200. limit omitido, 0 ou negativo usa o padrão do modo. Em listas e telas, prefira compact: true e páginas explícitas com limit e offset.

                                                                                                  O formato compacto usa os mesmos nomes de campo, sem detalhes, notas completas, campos personalizados e estado do chatbot; inclui lead_awaitingReply. Os filtros podem usar campos que não aparecem no formato compacto.

                                                                                                  A resposta traz chats, totalChatsStats (contadores) e pagination (totalRecords, limit, offset). Na busca direta por identificador (por exemplo, wa_chatid com o JID exato), a paginação volta como {totalRecords: 1, limit: 1, offset: 0}.

                                                                                                  Corpo da requisição (JSON)

                                                                                                  Um objeto JSON com Content-Type: application/json.

                                                                                                  • operatortextoopcional

                                                                                                    Como combinar os filtros: AND (todos) ou OR (qualquer um).

                                                                                                    Valores
                                                                                                    ANDOR
                                                                                                    Padrão
                                                                                                    AND
                                                                                                  • sorttextoopcional

                                                                                                    Campo de ordenação, com - na frente para decrescente ou + para crescente. Ex.: -wa_lastMsgTimestamp.

                                                                                                  • limitinteiroopcional

                                                                                                    Formato completo: padrão 2000, sem teto para valor positivo. Com compact=true: padrão 100, máximo 200 (valores maiores viram 200). Omitido, 0 ou negativo usa o padrão do modo.

                                                                                                    Itens por página.

                                                                                                  • offsetinteiroopcional

                                                                                                    Quantidade de registros a pular (paginação).

                                                                                                    Padrão
                                                                                                    0
                                                                                                  • compactbooleanoopcional

                                                                                                    Devolve só os campos de lista: identidade, nomes, prévia, indicadores, não lidas, última mensagem, etiquetas e campos essenciais do lead (inclui lead_awaitingReply). Sem campos personalizados, notas completas nem estado do chatbot.

                                                                                                    Padrão
                                                                                                    false
                                                                                                  • wa_fastidtextoopcional

                                                                                                    Filtro pelo identificador rápido da conversa. Aceita os operadores de texto no início do valor (veja a descrição); sem operador, vale "contém".

                                                                                                  • wa_chatidtextoopcional

                                                                                                    Filtro pelo JID da conversa. Com o valor exato, funciona como busca direta e devolve a paginação {totalRecords: 1, limit: 1, offset: 0}. Aceita os operadores de texto no início do valor (veja a descrição); sem operador, vale "contém".

                                                                                                  • wa_archivedbooleanoopcional

                                                                                                    Conversas arquivadas (true) ou não (false).

                                                                                                  • wa_contactNametextoopcional

                                                                                                    Nome salvo na agenda. Aceita os operadores de texto no início do valor (veja a descrição); sem operador, vale "contém".

                                                                                                  • wa_nametextoopcional

                                                                                                    Nome do perfil no WhatsApp. Aceita os operadores de texto no início do valor (veja a descrição); sem operador, vale "contém".

                                                                                                  • nametextoopcional

                                                                                                    Nome exibido da conversa. Aceita os operadores de texto no início do valor (veja a descrição); sem operador, vale "contém".

                                                                                                  • wa_isBlockedbooleanoopcional

                                                                                                    Contato bloqueado (true) ou não (false).

                                                                                                  • wa_isGroupbooleanoopcional

                                                                                                    true traz só grupos; false, só conversas individuais.

                                                                                                  • wa_isGroup_adminbooleanoopcional

                                                                                                    Grupos em que o número é administrador.

                                                                                                  • wa_isGroup_announcebooleanoopcional

                                                                                                    Grupos em que só administradores enviam mensagens.

                                                                                                  • wa_isGroup_memberbooleanoopcional

                                                                                                    Grupos dos quais o número ainda participa.

                                                                                                  • wa_isPinnedbooleanoopcional

                                                                                                    Conversas fixadas (true) ou não (false).

                                                                                                  • wa_unreadCounttextoopcional

                                                                                                    Mensagens não lidas, com operador: ">0" traz as conversas com mensagens não lidas.

                                                                                                  • lead_awaitingReplybooleanoopcional

                                                                                                    true: conversas em que o contato espera resposta; false: as que não esperam. Conversa sem última mensagem não entra em nenhum dos dois.

                                                                                                  • wa_labeltextoopcional

                                                                                                    ID da etiqueta aplicada à conversa (o id devolvido em GET /labels, não o nome).

                                                                                                  • wa_notestextoopcional

                                                                                                    Texto das notas internas. Aceita os operadores de texto no início do valor (veja a descrição); sem operador, vale "contém".

                                                                                                  • lead_tagstextoopcional

                                                                                                    Tags do lead, como texto. Aceita os operadores de texto no início do valor (veja a descrição); sem operador, vale "contém".

                                                                                                  • lead_isTicketOpenbooleanoopcional

                                                                                                    Atendimento aberto (true) ou fechado (false).

                                                                                                  • lead_assignedAttendant_idtextoopcional

                                                                                                    ID do atendente responsável. Aceita os operadores de texto no início do valor (veja a descrição); sem operador, vale "contém".

                                                                                                  • lead_statustextoopcional

                                                                                                    Status do lead. Use =valor para igualdade exata. Aceita os operadores de texto no início do valor (veja a descrição); sem operador, vale "contém".

                                                                                                  • lead_tagtextoopcional

                                                                                                    Traz as conversas que têm exatamente esta tag em lead_tags, sem confundir nomes parecidos.

                                                                                                  Respostas

                                                                                                  • 200Lista de chats encontrados
                                                                                                  • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                  • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                  • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                  • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                  • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                  • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                  • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                  • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                  Erros possíveis 15

                                                                                                    Requisição

                                                                                                    curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/chat/find' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "compact": true,  "sort": "-wa_lastMsgTimestamp",  "limit": 50,  "offset": 0}'

                                                                                                    Resposta

                                                                                                    200 JSON
                                                                                                    {
                                                                                                      "success": true,
                                                                                                      "data": {
                                                                                                        "chats": [
                                                                                                          {
                                                                                                            "id": "3EB0538DA65A59F6D8A251",
                                                                                                            "wa_fastid": "",
                                                                                                            "wa_chatid": "5511999999999@s.whatsapp.net",
                                                                                                            "wa_chatlid": "123456789012345@lid",
                                                                                                            "wa_archived": false,
                                                                                                            "wa_contactName": "Exemplo",
                                                                                                            "wa_name": "Exemplo",
                                                                                                            "name": "Exemplo",
                                                                                                            "image": "https://exemplo.com/arquivo.jpg",
                                                                                                            "imagePreview": "https://exemplo.com/arquivo.jpg",
                                                                                                            "parent_community": {
                                                                                                              "jid": "5511999999999@s.whatsapp.net",
                                                                                                              "name": "Exemplo",
                                                                                                              "image_url": "https://exemplo.com/arquivo.jpg",
                                                                                                              "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                                                              "default_subgroup_jid": "120363153742561022@g.us"
                                                                                                            },
                                                                                                            "wa_ephemeralExpiration": 0,
                                                                                                            "wa_isBlocked": false,
                                                                                                            "wa_isGroup": false,
                                                                                                            "wa_isGroup_admin": false,
                                                                                                            "wa_isGroup_announce": false,
                                                                                                            "wa_isGroup_community": false,
                                                                                                            "wa_isGroup_member": false,
                                                                                                            "wa_isPinned": false,
                                                                                                            "wa_label": [
                                                                                                              "Exemplo"
                                                                                                            ],
                                                                                                            "wa_notes": "Olá! Tudo certo por aqui.",
                                                                                                            "wa_lastMessageTextVote": "Olá! Tudo certo por aqui.",
                                                                                                            "wa_lastMessageType": "text",
                                                                                                            "wa_lastMsgTimestamp": 1792500000000,
                                                                                                            "wa_lastMessageSender": "Olá! Tudo certo por aqui.",
                                                                                                            "lead_awaitingReply": true,
                                                                                                            "wa_muteEndTime": 1792500000000,
                                                                                                            "owner": "5511999999999",
                                                                                                            "wa_unreadCount": 0,
                                                                                                            "phone": "5511999999999",
                                                                                                            "common_groups": "Grupo Família(120363123456789012@g.us),Trabalho(987654321098765432@g.us)",
                                                                                                            "lead_name": "Exemplo",
                                                                                                            "lead_fullName": "Exemplo",
                                                                                                            "lead_email": "contato@exemplo.com",
                                                                                                            "lead_personalid": "123456789012345@lid",
                                                                                                            "lead_status": "success",
                                                                                                            "lead_tags": [
                                                                                                              ""
                                                                                                            ],
                                                                                                            "lead_notes": "Olá! Tudo certo por aqui.",
                                                                                                            "lead_isTicketOpen": false,
                                                                                                            "lead_assignedAttendant_id": "",
                                                                                                            "lead_kanbanOrder": 0,
                                                                                                            "lead_field01": "",
                                                                                                            "lead_field02": "",
                                                                                                            "lead_field03": "",
                                                                                                            "lead_field04": "",
                                                                                                            "lead_field05": "",
                                                                                                            "lead_field06": "",
                                                                                                            "lead_field07": "",
                                                                                                            "lead_field08": "",
                                                                                                            "lead_field09": "",
                                                                                                            "lead_field10": "",
                                                                                                            "lead_field11": "",
                                                                                                            "lead_field12": "",
                                                                                                            "lead_field13": "",
                                                                                                            "lead_field14": "",
                                                                                                            "lead_field15": "",
                                                                                                            "lead_field16": "",
                                                                                                            "lead_field17": "",
                                                                                                            "lead_field18": "",
                                                                                                            "lead_field19": "",
                                                                                                            "lead_field20": "",
                                                                                                            "chatbot_agentResetMemoryAt": 0,
                                                                                                            "chatbot_lastTrigger_id": "",
                                                                                                            "chatbot_lastTriggerAt": 0,
                                                                                                            "chatbot_disableUntil": 1792500000,
                                                                                                            "chatbot_summary": "Olá! Tudo certo por aqui."
                                                                                                          }
                                                                                                        ],
                                                                                                        "totalChatsStats": [],
                                                                                                        "pagination": {
                                                                                                          "totalRecords": 30,
                                                                                                          "limit": 10,
                                                                                                          "offset": 0,
                                                                                                          "hasMore": true,
                                                                                                          "nextOffset": 10
                                                                                                        }
                                                                                                      }
                                                                                                    }

                                                                                                    Consultar notas internas da conversa

                                                                                                    POST /chat/notes
                                                                                                    • Token do dispositivo
                                                                                                    • Não conta mensagem
                                                                                                    • Corpo até 1 MB

                                                                                                    Retorna a nota interna (wa_notes) de uma conversa usando só os dados já guardados, sem consultar o WhatsApp. Funciona inclusive durante uma reconexão.

                                                                                                    • Envie number com o JID completo da conversa.
                                                                                                    • Para ler a nota de novo no WhatsApp, use POST /chat/notes/refresh.

                                                                                                    A resposta traz chat, wa_notes e source (local). Conversa não encontrada responde 404.

                                                                                                    Corpo da requisição (JSON)

                                                                                                    Um objeto JSON com Content-Type: application/json.

                                                                                                    • numbertextoobrigatório

                                                                                                      JID completo da conversa.

                                                                                                      Exemplo
                                                                                                      5511999999999@s.whatsapp.net

                                                                                                    Respostas

                                                                                                    • 200Nota do chat retornada com sucesso
                                                                                                    • 400Corpo inválido
                                                                                                    • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                    • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                    • 404Chat não encontrado
                                                                                                    • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                    • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                    • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                    • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                    • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                    Erros possíveis 16

                                                                                                      Requisição

                                                                                                      curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/chat/notes' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999@s.whatsapp.net"}'

                                                                                                      Resposta

                                                                                                      200 JSON
                                                                                                      {
                                                                                                        "success": true,
                                                                                                        "data": {
                                                                                                          "chat": {
                                                                                                            "wa_fastid": "admin:5511999999999",
                                                                                                            "wa_chatid": "5511999999999@s.whatsapp.net",
                                                                                                            "wa_notes": "Cliente prefere contato no período da tarde"
                                                                                                          },
                                                                                                          "wa_notes": "Cliente prefere contato no período da tarde",
                                                                                                          "source": "local"
                                                                                                        }
                                                                                                      }

                                                                                                      Recarregar notas internas da conversa

                                                                                                      POST /chat/notes/refresh
                                                                                                      • Token do dispositivo
                                                                                                      • Não conta mensagem
                                                                                                      • Corpo até 1 MB

                                                                                                      Lê de novo a nota interna da conversa no WhatsApp antes de devolver o valor atualizado.

                                                                                                      • Tente primeiro com force: false.
                                                                                                      • Se a nota não atualizar, tente force: true, que faz uma leitura mais completa e mais pesada; use só como correção.
                                                                                                      Ver mais detalhes

                                                                                                      Enquanto a sincronização inicial do histórico estiver em andamento, a resposta é 409: tente de novo em instantes. Conversa não encontrada depois da leitura responde 404.

                                                                                                      Corpo da requisição (JSON)

                                                                                                      Um objeto JSON com Content-Type: application/json.

                                                                                                      • numbertextoobrigatório

                                                                                                        JID completo da conversa.

                                                                                                        Exemplo
                                                                                                        5511999999999@s.whatsapp.net
                                                                                                      • forcebooleanoopcional

                                                                                                        Tente primeiro com false. true faz uma leitura completa e mais pesada; use só se a leitura padrão não atualizar a nota.

                                                                                                        Padrão
                                                                                                        false
                                                                                                        Exemplo
                                                                                                        false

                                                                                                      Respostas

                                                                                                      • 200Nota do chat recarregada com sucesso
                                                                                                      • 400Corpo inválido
                                                                                                      • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                      • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                      • 404Chat não encontrado após o reload
                                                                                                      • 409O reload não pode ser executado porque o history sync inicial ainda está em andamento
                                                                                                      • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                      • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                      • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                      • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                      • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                      Erros possíveis 17

                                                                                                        Requisição

                                                                                                        curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/chat/notes/refresh' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999@s.whatsapp.net"}'

                                                                                                        Resposta

                                                                                                        200 JSON
                                                                                                        {
                                                                                                          "success": true,
                                                                                                          "data": {
                                                                                                            "chat": {
                                                                                                              "id": "3EB0538DA65A59F6D8A251",
                                                                                                              "wa_fastid": "",
                                                                                                              "wa_chatid": "5511999999999@s.whatsapp.net",
                                                                                                              "wa_chatlid": "123456789012345@lid",
                                                                                                              "wa_archived": false,
                                                                                                              "wa_contactName": "Exemplo",
                                                                                                              "wa_name": "Exemplo",
                                                                                                              "name": "Exemplo",
                                                                                                              "image": "https://exemplo.com/arquivo.jpg",
                                                                                                              "imagePreview": "https://exemplo.com/arquivo.jpg",
                                                                                                              "parent_community": {
                                                                                                                "jid": "5511999999999@s.whatsapp.net",
                                                                                                                "name": "Exemplo",
                                                                                                                "image_url": "https://exemplo.com/arquivo.jpg",
                                                                                                                "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                                                                "default_subgroup_jid": "120363153742561022@g.us"
                                                                                                              },
                                                                                                              "wa_ephemeralExpiration": 0,
                                                                                                              "wa_isBlocked": false,
                                                                                                              "wa_isGroup": false,
                                                                                                              "wa_isGroup_admin": false,
                                                                                                              "wa_isGroup_announce": false,
                                                                                                              "wa_isGroup_community": false,
                                                                                                              "wa_isGroup_member": false,
                                                                                                              "wa_isPinned": false,
                                                                                                              "wa_label": [
                                                                                                                "Exemplo"
                                                                                                              ],
                                                                                                              "wa_notes": "Olá! Tudo certo por aqui.",
                                                                                                              "wa_lastMessageTextVote": "Olá! Tudo certo por aqui.",
                                                                                                              "wa_lastMessageType": "text",
                                                                                                              "wa_lastMsgTimestamp": 1792500000000,
                                                                                                              "wa_lastMessageSender": "Olá! Tudo certo por aqui.",
                                                                                                              "lead_awaitingReply": true,
                                                                                                              "wa_muteEndTime": 1792500000000,
                                                                                                              "owner": "5511999999999",
                                                                                                              "wa_unreadCount": 0,
                                                                                                              "phone": "5511999999999",
                                                                                                              "common_groups": "Grupo Família(120363123456789012@g.us),Trabalho(987654321098765432@g.us)",
                                                                                                              "lead_name": "Exemplo",
                                                                                                              "lead_fullName": "Exemplo",
                                                                                                              "lead_email": "contato@exemplo.com",
                                                                                                              "lead_personalid": "123456789012345@lid",
                                                                                                              "lead_status": "success",
                                                                                                              "lead_tags": [
                                                                                                                ""
                                                                                                              ],
                                                                                                              "lead_notes": "Olá! Tudo certo por aqui.",
                                                                                                              "lead_isTicketOpen": false,
                                                                                                              "lead_assignedAttendant_id": "",
                                                                                                              "lead_kanbanOrder": 0,
                                                                                                              "lead_field01": "",
                                                                                                              "lead_field02": "",
                                                                                                              "lead_field03": "",
                                                                                                              "lead_field04": "",
                                                                                                              "lead_field05": "",
                                                                                                              "lead_field06": "",
                                                                                                              "lead_field07": "",
                                                                                                              "lead_field08": "",
                                                                                                              "lead_field09": "",
                                                                                                              "lead_field10": "",
                                                                                                              "lead_field11": "",
                                                                                                              "lead_field12": "",
                                                                                                              "lead_field13": "",
                                                                                                              "lead_field14": "",
                                                                                                              "lead_field15": "",
                                                                                                              "lead_field16": "",
                                                                                                              "lead_field17": "",
                                                                                                              "lead_field18": "",
                                                                                                              "lead_field19": "",
                                                                                                              "lead_field20": "",
                                                                                                              "chatbot_agentResetMemoryAt": 0,
                                                                                                              "chatbot_lastTrigger_id": "",
                                                                                                              "chatbot_lastTriggerAt": 0,
                                                                                                              "chatbot_disableUntil": 1792500000,
                                                                                                              "chatbot_summary": "Olá! Tudo certo por aqui."
                                                                                                            },
                                                                                                            "wa_notes": "Cliente prefere contato no período da tarde",
                                                                                                            "source": "appstate_reload"
                                                                                                          }
                                                                                                        }

                                                                                                        Editar notas internas da conversa

                                                                                                        POST /chat/notes/edit
                                                                                                        • Token do dispositivo
                                                                                                        • Não conta mensagem
                                                                                                        • Corpo até 1 MB

                                                                                                        Atualiza a nota interna (wa_notes) da conversa no WhatsApp e guarda o resultado.

                                                                                                        • Envie number e notes.
                                                                                                        • Envie notes: "" para limpar a nota.

                                                                                                        Enquanto a sincronização inicial do histórico estiver em andamento, a resposta é 409: tente de novo em instantes. Conversa não encontrada responde 404.

                                                                                                        Corpo da requisição (JSON)

                                                                                                        Um objeto JSON com Content-Type: application/json.

                                                                                                        • numbertextoobrigatório

                                                                                                          JID completo da conversa.

                                                                                                          Exemplo
                                                                                                          5511999999999@s.whatsapp.net
                                                                                                        • notestextoobrigatório

                                                                                                          Envie "" (vazio) para limpar a nota.

                                                                                                          Conteúdo da nota.

                                                                                                          Exemplo
                                                                                                          Cliente prefere contato no período da tarde

                                                                                                        Respostas

                                                                                                        • 200Nota atualizada com sucesso
                                                                                                        • 400Corpo inválido
                                                                                                        • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                        • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                        • 404Chat não encontrado
                                                                                                        • 409A edição não pode ser executada porque o history sync inicial ainda está em andamento
                                                                                                        • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                        • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                        • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                        • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                        • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                        Erros possíveis 17

                                                                                                          Requisição

                                                                                                          curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/chat/notes/edit' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999@s.whatsapp.net",  "notes": "Cliente prefere contato no período da tarde"}'

                                                                                                          Resposta

                                                                                                          200 JSON
                                                                                                          {
                                                                                                            "success": true,
                                                                                                            "data": {
                                                                                                              "response": "Chat notes updated",
                                                                                                              "chat": {
                                                                                                                "id": "3EB0538DA65A59F6D8A251",
                                                                                                                "wa_fastid": "",
                                                                                                                "wa_chatid": "5511999999999@s.whatsapp.net",
                                                                                                                "wa_chatlid": "123456789012345@lid",
                                                                                                                "wa_archived": false,
                                                                                                                "wa_contactName": "Exemplo",
                                                                                                                "wa_name": "Exemplo",
                                                                                                                "name": "Exemplo",
                                                                                                                "image": "https://exemplo.com/arquivo.jpg",
                                                                                                                "imagePreview": "https://exemplo.com/arquivo.jpg",
                                                                                                                "parent_community": {
                                                                                                                  "jid": "5511999999999@s.whatsapp.net",
                                                                                                                  "name": "Exemplo",
                                                                                                                  "image_url": "https://exemplo.com/arquivo.jpg",
                                                                                                                  "image_preview_url": "https://exemplo.com/arquivo.jpg",
                                                                                                                  "default_subgroup_jid": "120363153742561022@g.us"
                                                                                                                },
                                                                                                                "wa_ephemeralExpiration": 0,
                                                                                                                "wa_isBlocked": false,
                                                                                                                "wa_isGroup": false,
                                                                                                                "wa_isGroup_admin": false,
                                                                                                                "wa_isGroup_announce": false,
                                                                                                                "wa_isGroup_community": false,
                                                                                                                "wa_isGroup_member": false,
                                                                                                                "wa_isPinned": false,
                                                                                                                "wa_label": [
                                                                                                                  "Exemplo"
                                                                                                                ],
                                                                                                                "wa_notes": "Olá! Tudo certo por aqui.",
                                                                                                                "wa_lastMessageTextVote": "Olá! Tudo certo por aqui.",
                                                                                                                "wa_lastMessageType": "text",
                                                                                                                "wa_lastMsgTimestamp": 1792500000000,
                                                                                                                "wa_lastMessageSender": "Olá! Tudo certo por aqui.",
                                                                                                                "lead_awaitingReply": true,
                                                                                                                "wa_muteEndTime": 1792500000000,
                                                                                                                "owner": "5511999999999",
                                                                                                                "wa_unreadCount": 0,
                                                                                                                "phone": "5511999999999",
                                                                                                                "common_groups": "Grupo Família(120363123456789012@g.us),Trabalho(987654321098765432@g.us)",
                                                                                                                "lead_name": "Exemplo",
                                                                                                                "lead_fullName": "Exemplo",
                                                                                                                "lead_email": "contato@exemplo.com",
                                                                                                                "lead_personalid": "123456789012345@lid",
                                                                                                                "lead_status": "success",
                                                                                                                "lead_tags": [
                                                                                                                  ""
                                                                                                                ],
                                                                                                                "lead_notes": "Olá! Tudo certo por aqui.",
                                                                                                                "lead_isTicketOpen": false,
                                                                                                                "lead_assignedAttendant_id": "",
                                                                                                                "lead_kanbanOrder": 0,
                                                                                                                "lead_field01": "",
                                                                                                                "lead_field02": "",
                                                                                                                "lead_field03": "",
                                                                                                                "lead_field04": "",
                                                                                                                "lead_field05": "",
                                                                                                                "lead_field06": "",
                                                                                                                "lead_field07": "",
                                                                                                                "lead_field08": "",
                                                                                                                "lead_field09": "",
                                                                                                                "lead_field10": "",
                                                                                                                "lead_field11": "",
                                                                                                                "lead_field12": "",
                                                                                                                "lead_field13": "",
                                                                                                                "lead_field14": "",
                                                                                                                "lead_field15": "",
                                                                                                                "lead_field16": "",
                                                                                                                "lead_field17": "",
                                                                                                                "lead_field18": "",
                                                                                                                "lead_field19": "",
                                                                                                                "lead_field20": "",
                                                                                                                "chatbot_agentResetMemoryAt": 0,
                                                                                                                "chatbot_lastTrigger_id": "",
                                                                                                                "chatbot_lastTriggerAt": 0,
                                                                                                                "chatbot_disableUntil": 1792500000,
                                                                                                                "chatbot_summary": "Olá! Tudo certo por aqui."
                                                                                                              },
                                                                                                              "wa_notes": "Cliente prefere contato no período da tarde",
                                                                                                              "source": "api"
                                                                                                            }
                                                                                                          }

                                                                                                          Consultar contadores de conversas

                                                                                                          GET /chat/totalcount
                                                                                                          • Token do dispositivo
                                                                                                          • Não conta mensagem

                                                                                                          Retorna contadores totais e não lidos por estado, etiqueta e atendente. Os arrays são retornados vazios quando ainda não há etiquetas ou atendentes.

                                                                                                          Parâmetros

                                                                                                          Esta rota não recebe parâmetros.

                                                                                                          Respostas

                                                                                                          • 200Contadores atuais dos chats
                                                                                                          • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                          • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                          • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                          • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                          • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                          • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                          • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                          • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                          Erros possíveis 15

                                                                                                            Requisição

                                                                                                            curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/chat/totalcount' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                                                                            Resposta

                                                                                                            200 JSON
                                                                                                            {
                                                                                                              "success": true,
                                                                                                              "data": {
                                                                                                                "total_chats": {
                                                                                                                  "total": 10,
                                                                                                                  "unread": 1
                                                                                                                },
                                                                                                                "open_chats": {
                                                                                                                  "total": 10,
                                                                                                                  "unread": 1
                                                                                                                },
                                                                                                                "archived_chats": {
                                                                                                                  "total": 10,
                                                                                                                  "unread": 1
                                                                                                                },
                                                                                                                "group_chats": {
                                                                                                                  "total": 10,
                                                                                                                  "unread": 1
                                                                                                                },
                                                                                                                "blocked_chats": {
                                                                                                                  "total": 10,
                                                                                                                  "unread": 1
                                                                                                                },
                                                                                                                "label_counts": [
                                                                                                                  {
                                                                                                                    "id": "3EB0538DA65A59F6D8A251",
                                                                                                                    "labelid": "Exemplo",
                                                                                                                    "name": "Exemplo",
                                                                                                                    "total": 10,
                                                                                                                    "unread": 1
                                                                                                                  }
                                                                                                                ],
                                                                                                                "attendant_counts": [
                                                                                                                  {
                                                                                                                    "id": "3EB0538DA65A59F6D8A251",
                                                                                                                    "name": "Exemplo",
                                                                                                                    "total": 10,
                                                                                                                    "unread": 1
                                                                                                                  }
                                                                                                                ]
                                                                                                              }
                                                                                                            }

                                                                                                            Consultar foto de uma conversa

                                                                                                            POST /chat/avatar
                                                                                                            • Token do dispositivo
                                                                                                            • Não conta mensagem
                                                                                                            • Corpo até 1 MB

                                                                                                            Retorna a URL temporária da imagem de uma conversa individual ou grupo. Use preview=true para solicitar a imagem reduzida ou preview=false para solicitar a imagem completa.

                                                                                                            Quando não houver imagem disponível, a resposta continua válida e retorna url vazio. force=true solicita uma atualização antecipada, respeitando um intervalo mínimo de 20 segundos por imagem e dispositivo; não use essa opção em consultas repetidas.

                                                                                                            Corpo da requisição (JSON)

                                                                                                            Um objeto JSON com Content-Type: application/json.

                                                                                                            • numbertextoobrigatório

                                                                                                              Número com DDI, JID de usuário, LID conhecido pelo dispositivo ou JID de grupo.

                                                                                                              Limites
                                                                                                              pelo menos 1 caractere
                                                                                                              Exemplo
                                                                                                              5511999999999
                                                                                                            • previewbooleanoopcional

                                                                                                              true pede a imagem reduzida; false, a completa.

                                                                                                              Padrão
                                                                                                              false
                                                                                                            • forcebooleanoopcional

                                                                                                              Respeita o intervalo mínimo de 20 segundos por imagem e dispositivo; não use em consultas repetidas.

                                                                                                              Pede uma atualização antecipada da imagem.

                                                                                                              Padrão
                                                                                                              false

                                                                                                            Respostas

                                                                                                            • 200URL da foto ou string vazia quando não houver imagem disponível.
                                                                                                            • 400Corpo inválido, number ausente ou identificador inválido.
                                                                                                            • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                            • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                            • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                            • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                            • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                            • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                            • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                            Erros possíveis 15

                                                                                                              Requisição

                                                                                                              curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/chat/avatar' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999",  "preview": true}'

                                                                                                              Resposta

                                                                                                              200 JSON
                                                                                                              {
                                                                                                                "success": true,
                                                                                                                "data": {
                                                                                                                  "url": "https://pps.whatsapp.net/example.jpg"
                                                                                                                }
                                                                                                              }

                                                                                                              Referência 6

                                                                                                              Contatos

                                                                                                              Agenda do número, detalhes de contato e verificação de números no WhatsApp.

                                                                                                              Listar contatos do WhatsApp

                                                                                                              GET /contacts
                                                                                                              • Token do dispositivo
                                                                                                              • Não conta mensagem

                                                                                                              Retorna a lista de contatos do WhatsApp conforme o filtro de contactScope:

                                                                                                              • address_book (padrão): só os contatos salvos na agenda
                                                                                                              • outside_address_book: só os contatos fora da agenda
                                                                                                              • all: todos os contatos conhecidos

                                                                                                              Cada contato vem com o JID e os nomes conhecidos. A lista vem inteira, sem paginação; em contas com muitos contatos, prefira POST /contacts/list.

                                                                                                              Parâmetros na URL

                                                                                                              Vão depois do ? no endereço, como nome=valor.

                                                                                                              • contactScopetextoopcional

                                                                                                                address_book só a agenda (padrão); outside_address_book só os de fora da agenda; all todos os conhecidos.

                                                                                                                Valores
                                                                                                                address_bookoutside_address_bookall
                                                                                                                Padrão
                                                                                                                address_book

                                                                                                              Respostas

                                                                                                              • 200Lista de contatos retornada com sucesso
                                                                                                              • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                              • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                              • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                              • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                              • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                              • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                              • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                              • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                              Erros possíveis 15

                                                                                                                Requisição

                                                                                                                curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/contacts?contactScope=address_book' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                                                                                Resposta

                                                                                                                200 JSON
                                                                                                                {
                                                                                                                  "success": true,
                                                                                                                  "data": [
                                                                                                                    {
                                                                                                                      "jid": "5511999999999@s.whatsapp.net",
                                                                                                                      "contact_name": "Contato Exemplo",
                                                                                                                      "contact_FirstName": "Contato"
                                                                                                                    }
                                                                                                                  ]
                                                                                                                }

                                                                                                                Listar contatos com paginação

                                                                                                                POST /contacts/list
                                                                                                                • Token do dispositivo
                                                                                                                • Não conta mensagem
                                                                                                                • Corpo até 1 MB

                                                                                                                Retorna uma lista paginada dos contatos da conta do WhatsApp conectada ao dispositivo. Controle a página com limit (padrão 100, máximo 1000) e offset no corpo da requisição, e escolha em contactScope entre os contatos da agenda, os de fora da agenda ou todos os conhecidos.

                                                                                                                A resposta traz pagination com o total em totalRecords. A rota GET /contacts continua disponível para quem prefere a lista completa, sem paginação.

                                                                                                                Corpo da requisição (JSON)

                                                                                                                Um objeto JSON com Content-Type: application/json.

                                                                                                                • limitinteiroopcional

                                                                                                                  Quantidade máxima de resultados por página (padrão 100, máximo 1000).

                                                                                                                  Padrão
                                                                                                                  100
                                                                                                                  Limites
                                                                                                                  de 1 a 1000
                                                                                                                • offsetinteiroopcional

                                                                                                                  Deslocamento base zero para a paginação.

                                                                                                                  Padrão
                                                                                                                  0
                                                                                                                • contactScopetextoopcional

                                                                                                                  address_book só a agenda (padrão); outside_address_book só os de fora da agenda; all todos os conhecidos.

                                                                                                                  Valores
                                                                                                                  address_bookoutside_address_bookall
                                                                                                                  Padrão
                                                                                                                  address_book

                                                                                                                Respostas

                                                                                                                • 200Lista de contatos recuperada com sucesso
                                                                                                                • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                                • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                Erros possíveis 15

                                                                                                                  Requisição

                                                                                                                  curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/contacts/list' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "limit": 100,  "offset": 0,  "contactScope": "address_book"}'

                                                                                                                  Resposta

                                                                                                                  200 JSON
                                                                                                                  {
                                                                                                                    "success": true,
                                                                                                                    "data": {
                                                                                                                      "contacts": [
                                                                                                                        {
                                                                                                                          "jid": "5511999999999@s.whatsapp.net",
                                                                                                                          "contact_name": "Joao Silva",
                                                                                                                          "contact_FirstName": "Joao"
                                                                                                                        }
                                                                                                                      ],
                                                                                                                      "totalDeviceContacts": 10,
                                                                                                                      "pagination": {
                                                                                                                        "totalRecords": 30,
                                                                                                                        "limit": 10,
                                                                                                                        "offset": 0,
                                                                                                                        "hasMore": true,
                                                                                                                        "nextOffset": 10
                                                                                                                      }
                                                                                                                    }
                                                                                                                  }

                                                                                                                  Adicionar contato à agenda

                                                                                                                  POST /contact/add
                                                                                                                  • Token do dispositivo
                                                                                                                  • Não conta mensagem
                                                                                                                  • Corpo até 1 MB

                                                                                                                  Adiciona um novo contato à agenda do celular.

                                                                                                                  A rota realiza:

                                                                                                                  • Adiciona o contato à agenda usando o WhatsApp
                                                                                                                  • Usa o campo 'name' tanto para o nome completo quanto para o primeiro nome
                                                                                                                  • Salva as informações do contato na agenda do WhatsApp
                                                                                                                  • Retorna informações do contato adicionado

                                                                                                                  Corpo da requisição (JSON)

                                                                                                                  Um objeto JSON com Content-Type: application/json.

                                                                                                                  • numbertextoobrigatório

                                                                                                                    Não aceita contato comercial (@lid) nem grupo (@g.us).

                                                                                                                    Telefone com DDI (no Brasil começa com 55). Aceita +, parênteses, hífen e espaços, ou o JID @s.whatsapp.net.

                                                                                                                    Exemplo
                                                                                                                    +55 (21) 99999-9999
                                                                                                                  • nametextoobrigatório

                                                                                                                    Nome do contato; vale como nome completo e como primeiro nome.

                                                                                                                    Exemplo
                                                                                                                    João Silva

                                                                                                                  Respostas

                                                                                                                  • 200Contato adicionado com sucesso
                                                                                                                  • 400Dados inválidos na requisição
                                                                                                                  • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                  • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                  • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                  • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                  • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                  • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                  • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                  Erros possíveis 15

                                                                                                                    Requisição

                                                                                                                    curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/contact/add' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "+55 (21) 99999-9999",  "name": "João Silva"}'

                                                                                                                    Resposta

                                                                                                                    200 JSON
                                                                                                                    {
                                                                                                                      "success": true,
                                                                                                                      "message": "Contato adicionado com sucesso",
                                                                                                                      "contact": {
                                                                                                                        "jid": "5511999999999@s.whatsapp.net",
                                                                                                                        "name": "João Silva",
                                                                                                                        "phone": "5511999999999"
                                                                                                                      }
                                                                                                                    }

                                                                                                                    Remover contato da agenda

                                                                                                                    POST /contact/remove
                                                                                                                    • Token do dispositivo
                                                                                                                    • Não conta mensagem
                                                                                                                    • Corpo até 1 MB

                                                                                                                    Remove um contato da agenda do celular conectado ao dispositivo e atualiza a lista de contatos sincronizada. Responde 404 quando o contato não está na agenda.

                                                                                                                    Corpo da requisição (JSON)

                                                                                                                    Um objeto JSON com Content-Type: application/json.

                                                                                                                    • numbertextoobrigatório

                                                                                                                      Não aceita contato comercial (@lid) nem grupo (@g.us).

                                                                                                                      Telefone com DDI (no Brasil começa com 55). Aceita +, parênteses, hífen e espaços, ou o JID @s.whatsapp.net.

                                                                                                                      Exemplo
                                                                                                                      +55 (21) 99999-9999

                                                                                                                    Respostas

                                                                                                                    • 200Contato removido com sucesso
                                                                                                                    • 400Dados inválidos na requisição
                                                                                                                    • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                    • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                    • 404Contato não encontrado
                                                                                                                    • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                    • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                    • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                    • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                    • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                    Erros possíveis 16

                                                                                                                      Requisição

                                                                                                                      curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/contact/remove' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5521999999999"}'

                                                                                                                      Resposta

                                                                                                                      200 JSON
                                                                                                                      {
                                                                                                                        "success": true,
                                                                                                                        "message": "Contato removido com sucesso",
                                                                                                                        "removed_contact": {
                                                                                                                          "jid": "5511999999999@s.whatsapp.net",
                                                                                                                          "phone": "5511999999999"
                                                                                                                        }
                                                                                                                      }

                                                                                                                      Consultar detalhes de uma conversa

                                                                                                                      POST /chat/details
                                                                                                                      • Token do dispositivo
                                                                                                                      • Não conta mensagem
                                                                                                                      • Corpo até 1 MB

                                                                                                                      Retorna os dados disponíveis para apresentar ou editar uma conversa: identificação, nomes conhecidos, telefone, foto, estado do chat, dados de lead e informações de grupo quando aplicáveis.

                                                                                                                      Use depois de escolher um chat em POST /chat/find. Para obter somente a imagem, prefira POST /chat/avatar, mais leve, principalmente em listas com muitos chats. O campo preview permite escolher uma imagem menor para interfaces de listagem ou a imagem completa.

                                                                                                                      Ver mais detalhes

                                                                                                                      Cada dispositivo processa até 4 consultas desta rota ao mesmo tempo. A seguinte espera até 2 segundos por uma vaga; se não houver, recebe 429 com o header Retry-After. A rota também conta no limite de requisições do dispositivo.

                                                                                                                      Para contatos individuais, is_business indica se há um nome comercial conhecido. business_name traz esse nome quando disponível.

                                                                                                                      Corpo da requisição (JSON)

                                                                                                                      Um objeto JSON com Content-Type: application/json.

                                                                                                                      • numbertextoobrigatório

                                                                                                                        Número com DDI ou ID do grupo.

                                                                                                                        Exemplo
                                                                                                                        5511999999999
                                                                                                                      • previewbooleanoopcional

                                                                                                                        true devolve a foto em tamanho reduzido (para listas); false (padrão), em tamanho original.

                                                                                                                        Padrão
                                                                                                                        false

                                                                                                                      Respostas

                                                                                                                      • 200Informações completas do chat retornadas com sucesso
                                                                                                                      • 400Corpo inválido ou número inválido
                                                                                                                      • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                      • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                      • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                      • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                      • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After. Caso do WhatsApp (429): Limite de chamadas do dispositivo ou de consultas simultâneas desta rota.
                                                                                                                      • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                      • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                      Erros possíveis 15

                                                                                                                        Requisição

                                                                                                                        curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/chat/details' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999"}'

                                                                                                                        Resposta

                                                                                                                        200 JSON
                                                                                                                        {
                                                                                                                          "success": true,
                                                                                                                          "data": {
                                                                                                                            "id": "k3m9x2p7q4w8z1t6",
                                                                                                                            "wa_fastid": "admin:5511999999999",
                                                                                                                            "wa_chatid": "5511999999999@s.whatsapp.net",
                                                                                                                            "wa_name": "João Silva",
                                                                                                                            "name": "João Silva",
                                                                                                                            "phone": "+55 11 99999-9999",
                                                                                                                            "owner": "admin",
                                                                                                                            "wa_archived": false,
                                                                                                                            "wa_isBlocked": false,
                                                                                                                            "wa_isGroup": false,
                                                                                                                            "lead_name": "João",
                                                                                                                            "lead_fullName": "João Silva",
                                                                                                                            "lead_email": "joao@exemplo.com",
                                                                                                                            "lead_status": "ativo",
                                                                                                                            "wa_contactName": "João Silva",
                                                                                                                            "is_business": false,
                                                                                                                            "business_name": "",
                                                                                                                            "wa_common_groups": "Grupo Família(120363123456789012@g.us),Trabalho(987654321098765432@g.us)",
                                                                                                                            "image": "https://pps.whatsapp.net/v/t61.24694-24/12345_image.jpg"
                                                                                                                          }
                                                                                                                        }

                                                                                                                        Verificar números no WhatsApp

                                                                                                                        POST /chat/check
                                                                                                                        • Token do dispositivo
                                                                                                                        • Não conta mensagem
                                                                                                                        • Corpo até 1 MB

                                                                                                                        Verifica se os números informados estão no WhatsApp e devolve os detalhes de cada um. Aceita vários de uma vez, inclusive IDs de grupo e de comunidade.

                                                                                                                        Números individuais: confirma se o número está no WhatsApp, devolve o nome verificado quando houver e o número no formato normalizado.

                                                                                                                        Ver mais detalhes

                                                                                                                        Grupos e comunidades: confirma se o grupo existe e devolve o nome. Também identifica comunidades e verifica subgrupos; buscando pelo ID de uma comunidade, devolve o ID do grupo de avisos dela.

                                                                                                                        Corpo da requisição (JSON)

                                                                                                                        Um objeto JSON com Content-Type: application/json.

                                                                                                                        • numberslista de textosobrigatório

                                                                                                                          Com pelo menos 1 item.

                                                                                                                          Números com DDI ou IDs de grupo ou comunidade.

                                                                                                                          Limites
                                                                                                                          pelo menos 1 item

                                                                                                                        Respostas

                                                                                                                        • 200Resultado da verificação
                                                                                                                        • 400Corpo inválido ou sem números
                                                                                                                        • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                        • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                        • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                        • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                        • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                        • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                        • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                        Erros possíveis 15

                                                                                                                          Requisição

                                                                                                                          curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/chat/check' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "numbers": [    "5511999999999",    "5521988887777"  ]}'

                                                                                                                          Resposta

                                                                                                                          200 JSON
                                                                                                                          {
                                                                                                                            "success": true,
                                                                                                                            "data": [
                                                                                                                              {
                                                                                                                                "query": "",
                                                                                                                                "jid": "5511999999999@s.whatsapp.net",
                                                                                                                                "lid": "123456789012345@lid",
                                                                                                                                "isInWhatsapp": true,
                                                                                                                                "verifiedName": "Exemplo",
                                                                                                                                "groupName": "Exemplo",
                                                                                                                                "error": ""
                                                                                                                              }
                                                                                                                            ]
                                                                                                                          }

                                                                                                                          Referência 10

                                                                                                                          Ações na mensagem e busca

                                                                                                                          Reaja, edite, apague, fixe, baixe arquivos e busque mensagens.

                                                                                                                          Rotas para agir sobre mensagens já enviadas ou recebidas (baixar mídia, reagir, editar, apagar, fixar e marcar como lida), para ver quem recebeu e leu uma mensagem em grupo e para consultar o histórico do dispositivo.

                                                                                                                          Ler a introdução completa

                                                                                                                          Histórico do dispositivo

                                                                                                                          As mensagens ficam guardadas no dispositivo por até 7 dias; com volume muito alto, a manutenção diária pode manter menos. Reagir, editar, apagar, fixar e baixar a mídia de novo dependem da mensagem original nesse histórico: fora dele, a rota responde que a mensagem não foi encontrada, e repetir a chamada não a recupera. O histórico não é um arquivo permanente: para guardar conversas por mais tempo, salve no seu sistema os eventos do webhook.

                                                                                                                          Para pedir ao celular mensagens anteriores que ainda não estão salvas, use POST /message/history-sync; para pedir de novo uma mensagem que chegou sem abrir, use POST /message/reload.

                                                                                                                          Baixar arquivo de uma mensagem

                                                                                                                          POST /message/download
                                                                                                                          • Token do dispositivo
                                                                                                                          • Não conta mensagem
                                                                                                                          • Corpo até 1 MB

                                                                                                                          Baixa o arquivo de uma mensagem de mídia (imagem, vídeo, áudio, documento ou figurinha). Na mensagem de botão com imagem, vídeo ou documento no topo, use o id da mensagem do botão: o download traz essa mídia.

                                                                                                                          Ver mais detalhes

                                                                                                                          Opções

                                                                                                                          • generate_mp3 (padrão true): em áudios, true devolve MP3 e false devolve OGG.
                                                                                                                          • transcribe (padrão false): transcreve áudios para texto. Precisa de uma chave OpenAI: a já salva no dispositivo ou a enviada em openai_apikey. A chave enviada fica salva no dispositivo e é reutilizada nas próximas chamadas.
                                                                                                                          • download_quoted (padrão false): baixa a mídia da mensagem citada em vez da principal. Útil quando o contato responde a um Status ou a uma promoção: com a mídia original, você sabe de qual produto ou oferta ele está falando.
                                                                                                                          • return_base64 (padrão false): inclui o arquivo em base64. Evite: aumenta o uso de memória e processamento e o tamanho da resposta. Versões futuras poderão limitar o base64 em arquivos maiores que 5 MB, então não dependa dele para arquivos grandes.
                                                                                                                          • return_link: mantido por compatibilidade; a resposta sempre traz fileURL.

                                                                                                                          Resposta

                                                                                                                          A resposta traz fileURL (link para baixar o arquivo) e mimetype e, quando pedidos, base64Data e transcription. Por padrão, áudios vêm em MP3.

                                                                                                                          Validade do link

                                                                                                                          O link em fileURL é um endereço da DROPE (/wp-json/wdm/v1/media/...) e vale por 2 dias. Depois disso, chame esta rota de novo para gerar outro, enquanto a mensagem e a mídia original ainda estiverem disponíveis no histórico do dispositivo. Para guardar o arquivo por mais tempo, baixe pelo fileURL e salve num armazenamento próprio: guardar só o link não aumenta o prazo.

                                                                                                                          Corpo da requisição (JSON)

                                                                                                                          Um objeto JSON com Content-Type: application/json.

                                                                                                                          • idtextoobrigatório

                                                                                                                            ID da mensagem contendo o arquivo

                                                                                                                            Exemplo
                                                                                                                            7EB0F01D7244B421048F0706368376E0
                                                                                                                          • return_base64booleanoopcional

                                                                                                                            Evite: aumenta memória e resposta, e pode ser limitado acima de 5 MB no futuro. O fileURL vem sempre.

                                                                                                                            Inclui o conteúdo em base64. Evite em arquivos grandes; versões futuras poderão limitar arquivos maiores que 5 MB

                                                                                                                            Padrão
                                                                                                                            false
                                                                                                                          • generate_mp3booleanoopcional

                                                                                                                            Só para áudio: true devolve MP3, false devolve OGG.

                                                                                                                            Para áudios, define formato de retorno (true=MP3, false=OGG)

                                                                                                                            Padrão
                                                                                                                            true
                                                                                                                          • return_linkbooleanoopcional

                                                                                                                            Mantido por compatibilidade; o fileURL vem sempre.

                                                                                                                            Mantido para compatibilidade. A URL pública é sempre retornada em fileURL

                                                                                                                            Padrão
                                                                                                                            true
                                                                                                                          • transcribebooleanoopcional

                                                                                                                            Só para áudio. Precisa de chave OpenAI salva no dispositivo ou enviada em openai_apikey.

                                                                                                                            Se verdadeiro, transcreve áudios para texto

                                                                                                                            Padrão
                                                                                                                            false
                                                                                                                          • openai_apikeytextoopcional

                                                                                                                            Se informada, fica salva no dispositivo para as próximas chamadas.

                                                                                                                            Chave da API OpenAI para transcrição (opcional)

                                                                                                                            Exemplo
                                                                                                                            sk-...
                                                                                                                          • download_quotedbooleanoopcional

                                                                                                                            Baixa a mídia da mensagem citada (ex.: o Status que o contato respondeu).

                                                                                                                            Se verdadeiro, baixa mídia da mensagem citada ao invés da mensagem principal

                                                                                                                            Padrão
                                                                                                                            false

                                                                                                                          Respostas

                                                                                                                          • 200Arquivo pronto para download.
                                                                                                                          • 400Pedido inválido para esta mensagem; a mensagem de erro explica o motivo.
                                                                                                                          • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                          • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                          • 404Mensagem ou arquivo não encontrado.
                                                                                                                          • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                          • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                          • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                          • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                          • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                          Erros possíveis 16

                                                                                                                            Requisição

                                                                                                                            curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/message/download' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "id": "3EB0C431C26A1916713E"}'

                                                                                                                            Resposta

                                                                                                                            200 JSON
                                                                                                                            {
                                                                                                                              "success": true,
                                                                                                                              "data": {
                                                                                                                                "fileURL": "https://dropestore.com/wp-json/wdm/v1/media/ASSINATURA_DO_ARQUIVO",
                                                                                                                                "mimetype": "audio/mpeg",
                                                                                                                                "base64Data": "UklGRkj...",
                                                                                                                                "transcription": "Texto transcrito"
                                                                                                                              }
                                                                                                                            }

                                                                                                                            Buscar mensagens

                                                                                                                            POST /message/find
                                                                                                                            • Token do dispositivo
                                                                                                                            • Não conta mensagem
                                                                                                                            • Corpo até 1 MB

                                                                                                                            Busca mensagens com múltiplos filtros disponíveis. Esta rota permite:

                                                                                                                            Ver mais detalhes
                                                                                                                            1. Busca por ID específico: Use id para encontrar uma mensagem exata
                                                                                                                            2. Filtrar por chat: Use chatid para mensagens de uma conversa específica
                                                                                                                            3. Filtrar por rastreamento: Use track_source e track_id para mensagens com dados de tracking
                                                                                                                            4. Histórico de ligações: Use apenas messageType: call, limit e offset para listar as chamadas mais recentes. A resposta pode trazer callPeer (identidade conhecida do contato) e content.isVideo.
                                                                                                                            5. Status dos contatos: Use chatid: status@broadcast para os Status recebidos, mesmo sem webhook status_posts. Sem esse chatid, a busca não traz Status. Eles ficam guardados por 24 horas, como no WhatsApp (a limpeza roda uma vez por dia, então filtre messageTimestamp se precisar do corte exato), e o Status que o autor apaga sai da lista. Cada um vem com o autor em sender_pn, sender_lid e sender_image_preview_url (foto, quando conhecida) e, nos de imagem, vídeo ou link, com a miniatura em content.JPEGThumbnail. Baixe a mídia pelo /message/download. Um Status que não abriu vem com messageType: error e só o ID, o autor e o horário. Status de grupo (enviados e recebidos) ficam na conversa de cada grupo com messageType: GroupStatusMessage e o texto em text: liste todos com messageType: GroupStatusMessage, sem chatid. Saem em 24 horas, como os outros Status (os de campanha do /sender ficam com a campanha).
                                                                                                                            6. Limitar resultados: Use limit para controlar quantas mensagens retornar
                                                                                                                            7. Ordenação: Resultados ordenados por data (mais recentes primeiro)

                                                                                                                            Fora dos Status, as mensagens guardadas só trazem no content as miniaturas em base64 que não têm cópia salva (prévia de link sem cópia, localização, anúncio, convites); as de mídia que pode ser baixada de novo (JPEGThumbnail e afins) chegam só no webhook, na hora da mensagem. Nas mensagens enviadas pela API nos últimos 7 dias, sendPayload traz o pedido de envio, sem os arquivos em base64 (links vêm). Depois do envio (em conversa individual, 1 hora depois), o arquivo em base64 guardado vira o texto [arquivo removido após o envio: tipo, N bytes].

                                                                                                                            Resposta e paginação

                                                                                                                            A resposta traz messages (das mais recentes para as mais antigas) e pagination, com limit, offset, hasMore e nextOffset, sem o total. Para a próxima página, envie o nextOffset em offset enquanto hasMore for true. Para muitas mensagens, prefira páginas de até 1000.

                                                                                                                            Até onde vai o histórico

                                                                                                                            O dispositivo guarda as mensagens por até 7 dias; com volume muito alto, a manutenção diária pode manter menos. Para pedir mensagens anteriores ao celular, use POST /message/history-sync. Para guardar conversas por mais tempo, salve no seu sistema os eventos do webhook.

                                                                                                                            Corpo da requisição (JSON)

                                                                                                                            Um objeto JSON com Content-Type: application/json.

                                                                                                                            • idtextoopcional

                                                                                                                              Busca exata. Aceita o id completo, como 5511999999999:3EB0538DA65A59F6D8A251.

                                                                                                                              ID específico da mensagem para busca exata

                                                                                                                              Exemplo
                                                                                                                              user123:r3EB0538
                                                                                                                            • chatidtextoopcional

                                                                                                                              Filtra por conversa. "status@broadcast" lista os Status recebidos (24 horas); sem ele, os Status não vêm.

                                                                                                                              ID do chat (ex.: 5511999999999@s.whatsapp.net ou um grupo @g.us).

                                                                                                                              Exemplo
                                                                                                                              5511999999999@s.whatsapp.net
                                                                                                                            • messageTypetextoopcional

                                                                                                                              Sem lista fechada. "call" (com limit e offset) lista as ligações; "GroupStatusMessage", sem chatid, lista os Status de grupo; "error" marca mensagens que não abriram (recupere com POST /message/reload).

                                                                                                                              Tipo da mensagem. Use call com limit e offset para o histórico de ligações.

                                                                                                                              Exemplo
                                                                                                                              call
                                                                                                                            • track_sourcetextoopcional

                                                                                                                              Filtra pelo track_source usado no envio.

                                                                                                                              Origem do rastreamento para filtrar mensagens

                                                                                                                              Exemplo
                                                                                                                              chatwoot
                                                                                                                            • track_idtextoopcional

                                                                                                                              Filtra pelo track_id usado no envio.

                                                                                                                              ID de rastreamento para filtrar mensagens

                                                                                                                              Exemplo
                                                                                                                              msg_123456789
                                                                                                                            • limitinteiroopcional

                                                                                                                              Mínimo 1, padrão 100, sem máximo; prefira páginas de até 1000.

                                                                                                                              Número máximo de mensagens a retornar (padrão 100, sem máximo). Para muitas mensagens, prefira páginas de até 1000 e avance com pagination.nextOffset.

                                                                                                                              Padrão
                                                                                                                              100
                                                                                                                              Limites
                                                                                                                              mínimo 1
                                                                                                                              Exemplo
                                                                                                                              20
                                                                                                                            • offsetinteiroopcional

                                                                                                                              Padrão 0. Avance com pagination.nextOffset enquanto pagination.hasMore for true.

                                                                                                                              Deslocamento para a paginação (0 traz as mensagens mais recentes).

                                                                                                                              Padrão
                                                                                                                              0

                                                                                                                            Respostas

                                                                                                                            • 200Lista de mensagens encontradas, com os dados de paginação.
                                                                                                                            • 400Parâmetros inválidos.
                                                                                                                            • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                            • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                            • 404Chat não encontrado.
                                                                                                                            • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                            • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                            • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                            • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                            • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                            Erros possíveis 16

                                                                                                                              Requisição

                                                                                                                              curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/message/find' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "chatid": "5511999999999@s.whatsapp.net",  "limit": 50,  "offset": 0}'

                                                                                                                              Resposta

                                                                                                                              200 JSON
                                                                                                                              {
                                                                                                                                "success": true,
                                                                                                                                "data": {
                                                                                                                                  "messages": [
                                                                                                                                    {
                                                                                                                                      "id": "3EB0538DA65A59F6D8A251",
                                                                                                                                      "messageid": "3EB0538DA65A59F6D8A251",
                                                                                                                                      "chatid": "5511999999999@s.whatsapp.net",
                                                                                                                                      "sender": "5511999999999@s.whatsapp.net",
                                                                                                                                      "senderName": "Exemplo",
                                                                                                                                      "isGroup": false,
                                                                                                                                      "fromMe": false,
                                                                                                                                      "messageType": "text",
                                                                                                                                      "source": "",
                                                                                                                                      "messageTimestamp": 1792500000000,
                                                                                                                                      "status": "success",
                                                                                                                                      "text": "Olá! Tudo certo por aqui.",
                                                                                                                                      "quoted": "",
                                                                                                                                      "edited": "",
                                                                                                                                      "reaction": "",
                                                                                                                                      "vote": "",
                                                                                                                                      "convertOptions": "",
                                                                                                                                      "buttonOrListid": "",
                                                                                                                                      "owner": "5511999999999",
                                                                                                                                      "error": "",
                                                                                                                                      "content": [],
                                                                                                                                      "wasSentByApi": true,
                                                                                                                                      "pinned": true,
                                                                                                                                      "sendFunction": "",
                                                                                                                                      "sendPayload": [],
                                                                                                                                      "fileURL": "https://exemplo.com/arquivo.jpg",
                                                                                                                                      "callPeer": {
                                                                                                                                        "jid": "5511999999999@s.whatsapp.net",
                                                                                                                                        "name": "Exemplo",
                                                                                                                                        "imagePreviewUrl": "https://exemplo.com/arquivo.jpg"
                                                                                                                                      },
                                                                                                                                      "send_folder_id": "f3a9c2b1",
                                                                                                                                      "track_source": "",
                                                                                                                                      "track_id": "",
                                                                                                                                      "ai_metadata": {
                                                                                                                                        "agent_id": "",
                                                                                                                                        "turn": "",
                                                                                                                                        "flow_id": "",
                                                                                                                                        "request": {
                                                                                                                                          "messages": [],
                                                                                                                                          "tools": [],
                                                                                                                                          "options": {
                                                                                                                                            "model": "",
                                                                                                                                            "temperature": 1.5,
                                                                                                                                            "maxTokens": 10,
                                                                                                                                            "topP": 1.5,
                                                                                                                                            "frequencyPenalty": 1.5,
                                                                                                                                            "presencePenalty": 1.5
                                                                                                                                          }
                                                                                                                                        },
                                                                                                                                        "response": {
                                                                                                                                          "choices": [],
                                                                                                                                          "toolResults": [],
                                                                                                                                          "error": ""
                                                                                                                                        },
                                                                                                                                        "outcome": {
                                                                                                                                          "status": "sent",
                                                                                                                                          "texts": 1,
                                                                                                                                          "audio": true,
                                                                                                                                          "menus": 1,
                                                                                                                                          "files": 1,
                                                                                                                                          "handoff": "",
                                                                                                                                          "lead": [
                                                                                                                                            ""
                                                                                                                                          ],
                                                                                                                                          "detail": ""
                                                                                                                                        }
                                                                                                                                      },
                                                                                                                                      "sender_pn": "5511999999999@s.whatsapp.net",
                                                                                                                                      "sender_lid": "123456789012345@lid",
                                                                                                                                      "sender_image_preview_url": "https://exemplo.com/arquivo.jpg"
                                                                                                                                    }
                                                                                                                                  ],
                                                                                                                                  "pagination": {
                                                                                                                                    "limit": 10,
                                                                                                                                    "offset": 0,
                                                                                                                                    "hasMore": true,
                                                                                                                                    "nextOffset": 10
                                                                                                                                  }
                                                                                                                                }
                                                                                                                              }

                                                                                                                              Consultar o status de uma mensagem em grupo

                                                                                                                              POST /message/status
                                                                                                                              • Token do dispositivo
                                                                                                                              • Não conta mensagem
                                                                                                                              • Corpo até 1 MB

                                                                                                                              Mostra quem recebeu e quem leu uma mensagem que você enviou num grupo: primeiro um resumo com os totais, depois a lista de cada participante. source diz de onde veio a resposta.

                                                                                                                              Ver mais detalhes
                                                                                                                              • source: "memory": depois que esta rota é usada para um grupo, a API passa a acompanhar em memória as confirmações dos grupos do dispositivo, até 24 horas depois da última consulta. Respondem daí, na hora e sem depender do celular, as mensagens enviadas a partir de então e as que o celular já respondeu, com as confirmações que chegaram depois somadas. Cada mensagem fica até 24 horas na memória; em dispositivos com muito envio para grupos, as mais antigas saem antes.
                                                                                                                              • source: "phone": a primeira consulta de uma mensagem enviada antes disso, ou de qualquer mensagem depois de um reinício do serviço, pergunta ao celular da conta. O celular precisa estar ligado e com internet. Com o WhatsApp aberto, a resposta vem em cerca de 1 segundo; com o celular parado (um iPhone em segundo plano, por exemplo), ela pode não vir. Sem resposta em 40 segundos, a rota retorna 504. A lista é a que o celular guarda: logo depois de ficar sem internet, ele pode responder antes de receber as confirmações que chegaram nesse meio-tempo.
                                                                                                                              • summary: quantos participantes receberam (delivered) e leram (read). Quem leu também conta como recebido, e quem ouviu um áudio ou vídeo conta como lido.
                                                                                                                              • receipts: um item por participante e estado, em ordem de horário e em páginas, como nas outras listas da API: para a próxima, envie o pagination.nextOffset em offset enquanto pagination.hasMore for true. O resumo vem em todas.
                                                                                                                              • Quem leu pode vir sem o item Delivered, quando o celular não guardou a hora da entrega.
                                                                                                                              • state filtra a lista por estado: Delivered, Read ou Played. O resumo continua com os totais da mensagem.
                                                                                                                              • id aceita o ID completo ou o curto da mensagem, que precisa estar no histórico do dispositivo.
                                                                                                                              • A API não grava as confirmações em banco. Para acompanhá-las ao vivo, use o webhook messages_update com type: "GroupReceipts".

                                                                                                                              Corpo da requisição (JSON)

                                                                                                                              Um objeto JSON com Content-Type: application/json.

                                                                                                                              • idtextoobrigatório

                                                                                                                                Mensagem enviada por você num grupo, com o ID completo ou curto; precisa estar no histórico do dispositivo.

                                                                                                                                ID da mensagem (completo ou curto).

                                                                                                                                Exemplo
                                                                                                                                3EB0538DA65A59F6D8A251
                                                                                                                              • statetextoopcional

                                                                                                                                Filtra a lista receipts; o summary continua com os totais.

                                                                                                                                Só as confirmações deste estado. Sem ele, todas.

                                                                                                                                Valores
                                                                                                                                DeliveredReadPlayed
                                                                                                                              • limitinteiroopcional

                                                                                                                                Acima de 500, usa 500.

                                                                                                                                Itens por página. Acima de 500 usa 500.

                                                                                                                                Padrão
                                                                                                                                100
                                                                                                                                Limites
                                                                                                                                de 1 a 500
                                                                                                                              • offsetinteiroopcional

                                                                                                                                Use o pagination.nextOffset enquanto pagination.hasMore for true.

                                                                                                                                Deslocamento base zero; use o pagination.nextOffset da página anterior.

                                                                                                                                Padrão
                                                                                                                                0
                                                                                                                                Limites
                                                                                                                                mínimo 0

                                                                                                                              Respostas

                                                                                                                              • 200Resumo e página de confirmações, em ordem de horário.
                                                                                                                              • 400Corpo inválido ou id ausente
                                                                                                                              • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                              • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                              • 404Mensagem fora do histórico do dispositivo ou de outro número
                                                                                                                              • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                              • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                              • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                              • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After. Caso do WhatsApp (503): Dispositivo sem conexão, sem como perguntar ao celular.
                                                                                                                              • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT). Caso do WhatsApp (504): O celular não respondeu em 40 segundos; ele precisa estar ligado e com internet.
                                                                                                                              Erros possíveis 16

                                                                                                                                Requisição

                                                                                                                                curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/message/status' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "id": "3EB0538DA65A59F6D8A251"}'

                                                                                                                                Resposta

                                                                                                                                200 JSON
                                                                                                                                {
                                                                                                                                  "success": true,
                                                                                                                                  "data": {
                                                                                                                                    "source": "memory",
                                                                                                                                    "summary": {
                                                                                                                                      "delivered": 1,
                                                                                                                                      "read": 1
                                                                                                                                    },
                                                                                                                                    "receipts": [
                                                                                                                                      {
                                                                                                                                        "participant": "5511999999999@s.whatsapp.net",
                                                                                                                                        "participant_pn": "",
                                                                                                                                        "participant_lid": "123456789012345@lid",
                                                                                                                                        "state": "Delivered",
                                                                                                                                        "timestamp": 1792500000000
                                                                                                                                      }
                                                                                                                                    ],
                                                                                                                                    "pagination": {
                                                                                                                                      "totalRecords": 30,
                                                                                                                                      "limit": 10,
                                                                                                                                      "offset": 0,
                                                                                                                                      "hasMore": true,
                                                                                                                                      "nextOffset": 10
                                                                                                                                    }
                                                                                                                                  }
                                                                                                                                }

                                                                                                                                Solicitar histórico sob demanda de um chat

                                                                                                                                POST /message/history-sync
                                                                                                                                • Token do dispositivo
                                                                                                                                • Não conta mensagem
                                                                                                                                • Corpo até 1 MB

                                                                                                                                Solicita ao WhatsApp uma sincronização sob demanda de mensagens antigas de um chat, para trás a partir de uma mensagem de referência (âncora).

                                                                                                                                Para recuperar uma mensagem salva que não abriu (messageType: "error" no /message/find), use POST /message/reload.

                                                                                                                                Ver mais detalhes

                                                                                                                                Regras:

                                                                                                                                • envie number
                                                                                                                                • count é opcional e limitado a 100
                                                                                                                                • messageid é opcional; quando informado, a API usa essa mensagem como referência para buscar mensagens mais antigas do chat

                                                                                                                                Observação:

                                                                                                                                • Importante: a recuperação pode só acontecer depois de abrir o WhatsApp no celular ou deixá-lo ativo em segundo plano
                                                                                                                                • messageid define a mensagem de referência para carregar histórico anterior; esse campo não serve para buscar essa mensagem específica
                                                                                                                                • se você quiser recuperar apenas uma mensagem específica X via histórico, informe como messageid a mensagem logo depois de X e use count=1
                                                                                                                                • se messageid não for informado, a API usa a mensagem mais antiga conhecida localmente desse chat como referência para buscar histórico anterior
                                                                                                                                • as mensagens retornam depois via webhook em eventos do tipo history e também ficam disponíveis em /message/find

                                                                                                                                Resultado

                                                                                                                                A resposta traz o request_id do pedido. As mensagens chegam no webhook history com event: "messages" e o request_id em cada mensagem. Ele também vem no topo dos lotes messages e chats quando todo o lote pertence ao mesmo pedido; lotes mistos podem omiti-lo no topo. O pedido termina com um único lote event: "status" com o mesmo request_id:

                                                                                                                                • status: completed quando o WhatsApp confirma a conclusão do pedido, timeout quando não houve resposta conclusiva em 2 minutos, blocked quando o celular indica mais mensagens, mas não entregou uma página que avance
                                                                                                                                • success e error: só quando não há próxima página possível; success: false e o motivo em error (pagination_no_progress, anchor_unavailable, history_access_unavailable ou cursor_lookup_failed). Sempre vêm com blocked
                                                                                                                                • has_more: o que o celular declarou. true há mais mensagens no celular, false chegou ao início da conversa, null não foi confirmado. Alguns aparelhos declaram true em toda resposta sob demanda, inclusive na vazia: com eles, a paginação termina em blocked com pagination_no_progress, nunca em has_more: false
                                                                                                                                • history_access: unavailable quando há mais mensagens, mas o WhatsApp não dá acesso a elas
                                                                                                                                • next_request: corpo pronto para pedir as mensagens anteriores; reenvie como veio. null quando não há uma próxima requisição utilizável

                                                                                                                                Para paginar, reenvie next_request do resultado final até ele vir null, aguardando o resultado de cada pedido. completed encerra o pedido, não toda a conversa. next_request: null sem has_more: false não comprova o início da conversa. Silêncio ou um lote com menos mensagens que count não indicam o fim do histórico: só has_more: false indica.

                                                                                                                                Com blocked e error: "pagination_no_progress", encerre a paginação desse chat sem repetir o pedido automaticamente: é o fim do que o celular entrega a partir daquela âncora, e repetir dá o mesmo resultado.

                                                                                                                                Cada chat tem um pedido ativo por vez. Repetir o pedido com a mesma mensagem de referência antes do status devolve o mesmo request_id (details.reused: true), sem novo envio ao celular. Um pedido com outra referência encerra o anterior, que recebe o próprio status final (em geral timeout), e segue normalmente. 409 só ocorre quando o requestId informado já está em uso.

                                                                                                                                O resultado final chega por webhook em até 2 minutos após enviar o pedido ao WhatsApp (details.result_timeout_ms). Mensagens atrasadas podem continuar chegando com o mesmo request_id por cerca de 5 minutos após o pedido, sem um segundo status final.

                                                                                                                                Modo síncrono (sync: true)

                                                                                                                                sync: true segura a resposta até o resultado, por até timeoutMs (padrão e máximo 25000). As mensagens vêm em messages, e o topo da resposta traz os mesmos campos do status final (status, has_more, history_access, received_messages, next_request), além de received, timed_out e partial:

                                                                                                                                • resultado final dentro do prazo: 200 com esse resultado;
                                                                                                                                • chegaram mensagens, mas não o resultado: 200 com status: "pending", cerca de 2 segundos depois da última mensagem;
                                                                                                                                • nada chegou no prazo: 202 com status: "pending", timed_out: true e messages vazio.

                                                                                                                                Com status: "pending", o resultado final chega depois pelo webhook history, com o mesmo request_id. O webhook também é enviado no modo síncrono, e as mensagens são salvas do mesmo jeito.

                                                                                                                                Mensagem de referência apagada

                                                                                                                                Se a âncora foi apagada, a API tenta usar a próxima mensagem válida desse chat. details.requested_anchor_messageid informa a referência solicitada, details.anchor_messageid a usada e details.anchor_replaced indica a substituição. Sem alternativa, retorna HTTP 400 com status: "anchor_unavailable"; tente sem messageid para usar a mensagem mais antiga salva.

                                                                                                                                Corpo da requisição (JSON)

                                                                                                                                Um objeto JSON com Content-Type: application/json.

                                                                                                                                • numbertextoobrigatório

                                                                                                                                  JID completo do chat (ex.: 5511999999999@s.whatsapp.net ou 120363012345678901@g.us).

                                                                                                                                  JID completo do chat.

                                                                                                                                  Exemplo
                                                                                                                                  5511999999999@s.whatsapp.net
                                                                                                                                • messageidtextoopcional

                                                                                                                                  Âncora: busca as mensagens ANTERIORES a ela (não a própria). Sem ela, usa a mais antiga salva do chat. Para pegar só a mensagem X, informe a mensagem logo depois de X com count=1.

                                                                                                                                  ID da mensagem de referência usada para buscar mensagens mais antigas do chat.

                                                                                                                                  Exemplo
                                                                                                                                  3EB01234567890ABCDEF
                                                                                                                                • countinteiroopcional

                                                                                                                                  De 1 a 100, padrão 50.

                                                                                                                                  Quantidade desejada de mensagens no sync.

                                                                                                                                  Padrão
                                                                                                                                  50
                                                                                                                                  Limites
                                                                                                                                  de 1 a 100
                                                                                                                                  Exemplo
                                                                                                                                  20
                                                                                                                                • timestampinteiroopcional

                                                                                                                                  Vem no next_request; permite usar uma âncora que ainda não está salva.

                                                                                                                                  Timestamp da mensagem de referência, em milissegundos ou segundos. Opcional; vem no next_request para a referência funcionar mesmo antes de a mensagem estar salva.

                                                                                                                                  Exemplo
                                                                                                                                  1706350400000
                                                                                                                                • fromMebooleanoopcional

                                                                                                                                  Vem no next_request.

                                                                                                                                  Indica se a mensagem de referência foi enviada pela conta conectada. Opcional; vem no next_request.

                                                                                                                                  Exemplo
                                                                                                                                  false
                                                                                                                                • requestIdtextoopcional

                                                                                                                                  Opcional; um id já em uso retorna 409. Para repetir o mesmo pedido, reenvie sem requestId.

                                                                                                                                  Identificador opcional escolhido pelo cliente; quando omitido, a API gera um UUID. Retorna como request_id. Use um id novo por pedido: um id já em uso recebe 409.

                                                                                                                                  Exemplo
                                                                                                                                  5f0c2a8e-6d1b-4c3a-9e7f-1a2b3c4d5e6f
                                                                                                                                • fallbackModetextoopcional

                                                                                                                                  Em grupos é ignorado (o pedido vai sempre para o grupo).

                                                                                                                                  Para onde o pedido é enviado. try_alternates (padrão): em conversa individual, envia pelo número e pelo LID do chat, porque o celular guarda cada conversa por um dos dois endereços e ignora o pedido enviado pelo outro; a resposta chega uma vez só. exact: envia só pelo endereço preferido do chat (o LID, quando conhecido). Em grupos, o pedido vai sempre só para o grupo.

                                                                                                                                  Valores
                                                                                                                                  try_alternatesexact
                                                                                                                                  Padrão
                                                                                                                                  try_alternates
                                                                                                                                • syncbooleanoopcional

                                                                                                                                  Com true, segura a resposta até o resultado, por até timeoutMs.

                                                                                                                                  Segura a resposta até o resultado do pedido, por até timeoutMs. Veja "Modo síncrono".

                                                                                                                                  Padrão
                                                                                                                                  false
                                                                                                                                • timeoutMsinteiroopcional

                                                                                                                                  Só com sync=true. Padrão e máximo 25000; acima disso, vira 25000.

                                                                                                                                  Só com sync: true: espera máxima em milissegundos. Valores maiores viram 25000.

                                                                                                                                  Padrão
                                                                                                                                  25000
                                                                                                                                  Limites
                                                                                                                                  máximo 25000

                                                                                                                                Respostas

                                                                                                                                • 200Solicitação enviada com sucesso. As mensagens e o resultado chegam depois por webhook. Com sync: true, traz também as mensagens e o resultado do pedido.
                                                                                                                                • 202Só com sync: true: nada chegou dentro de timeoutMs. O pedido segue e o resultado chega pelo webhook history com o mesmo request_id.
                                                                                                                                • 400Corpo inválido, modo inválido ou âncora insuficiente. anchor_unavailable: a mensagem de referência foi apagada e não há outra utilizável depois dela; envie sem messageid para usar a mensagem mais antiga salva.
                                                                                                                                • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                • 409O requestId informado já está em uso por outro pedido. Use um id novo; para repetir o mesmo pedido, reenvie sem requestId.
                                                                                                                                • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After. Caso do WhatsApp (429): Limite de pedidos de histórico pendentes no dispositivo.
                                                                                                                                • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After. Caso do WhatsApp (503): O dispositivo está parando; o pedido não foi registrado.
                                                                                                                                • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                Erros possíveis 16

                                                                                                                                  Requisição

                                                                                                                                  curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/message/history-sync' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999@s.whatsapp.net",  "messageid": "3EB0538DA65A59F6D8A251",  "count": 50}'

                                                                                                                                  Resposta

                                                                                                                                  200 JSON
                                                                                                                                  {
                                                                                                                                    "success": true,
                                                                                                                                    "request_id": "5f0c2a8e-6d1b-4c3a-9e7f-1a2b3c4d5e6f",
                                                                                                                                    "message": "History sync request sent. Messages will be received as history sync events.",
                                                                                                                                    "details": {
                                                                                                                                      "result_timeout_ms": 120000,
                                                                                                                                      "requested_anchor_messageid": "3EB01234567890ABCDEF",
                                                                                                                                      "anchor_messageid": "3EB01234567890ABCDEF",
                                                                                                                                      "anchor_replaced": false
                                                                                                                                    }
                                                                                                                                  }

                                                                                                                                  Recuperar mensagem que não abriu

                                                                                                                                  POST /message/reload
                                                                                                                                  • Token do dispositivo
                                                                                                                                  • Não conta mensagem
                                                                                                                                  • Corpo até 1 MB

                                                                                                                                  Pede ao celular conectado uma nova cópia de uma mensagem que chegou sem abrir.

                                                                                                                                  Quando uma mensagem chega e não pode ser aberta, a API já pede uma cópia ao celular automaticamente. Se a cópia não vier, a mensagem fica salva com messageType: "error" no /message/find, sem o conteúdo original. Vale também para Status de contatos (chatid: status@broadcast). Use esta rota para tentar de novo, por exemplo depois de abrir o WhatsApp no celular.

                                                                                                                                  Ver mais detalhes

                                                                                                                                  Regras:

                                                                                                                                  • envie o id que o /message/find devolve ou o messageid
                                                                                                                                  • a mensagem precisa estar salva no dispositivo; se não estiver, a resposta é 404
                                                                                                                                  • ligações (messageType: call) não podem ser pedidas

                                                                                                                                  Resultado:

                                                                                                                                  • a resposta só confirma que o pedido foi enviado ao celular
                                                                                                                                  • se o celular tiver a mensagem, ela chega depois como uma mensagem nova: webhook messages (status_posts para Status), e a linha do /message/find passa a ter o conteúdo, com o mesmo messageid
                                                                                                                                  • se a cópia não chegar, nada muda e não há aviso de falha
                                                                                                                                  • Importante: a recuperação pode só acontecer depois de abrir o WhatsApp no celular ou deixá-lo ativo em segundo plano

                                                                                                                                  Só mensagens que não abriram são recuperadas. Para uma mensagem já salva normalmente, a cópia que o celular reenvia é descartada como repetida, sem webhook nem alteração. Logo depois de conectar, enquanto o histórico inicial ainda está sendo processado, essa cópia pode chegar de novo como mensagem nova. Para buscar mensagens antigas que ainda não estão salvas, use POST /message/history-sync.

                                                                                                                                  Corpo da requisição (JSON)

                                                                                                                                  Um objeto JSON com Content-Type: application/json.

                                                                                                                                  • idtextoopcional

                                                                                                                                    Informe id ou messageid (ao menos um).

                                                                                                                                    ID da mensagem como o /message/find devolve (campo id).

                                                                                                                                    Exemplo
                                                                                                                                    5511988887777:3EB01234567890ABCDEF
                                                                                                                                  • messageidtextoopcional

                                                                                                                                    Alternativa a id.

                                                                                                                                    ID da mensagem no WhatsApp (campo messageid). Alternativa ao id.

                                                                                                                                    Exemplo
                                                                                                                                    3EB01234567890ABCDEF

                                                                                                                                  Regras

                                                                                                                                  • Informe pelo menos um entre id e messageid.

                                                                                                                                  Respostas

                                                                                                                                  • 200Pedido enviado ao celular. A mensagem, se o celular a tiver, chega depois por webhook.
                                                                                                                                  • 400Sem id e sem messageid, ou a mensagem não pode ser pedida (ligação, ou mensagem de grupo sem autor salvo).
                                                                                                                                  • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                  • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                  • 404A mensagem não está salva no dispositivo. Para mensagens antigas, use antes POST /message/history-sync.
                                                                                                                                  • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                  • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                  • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                  • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                  • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                  Erros possíveis 16

                                                                                                                                    Requisição

                                                                                                                                    curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/message/reload' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "id": "5511999999999:3EB0538DA65A59F6D8A251"}'

                                                                                                                                    Resposta

                                                                                                                                    200 JSON
                                                                                                                                    {
                                                                                                                                      "success": true,
                                                                                                                                      "message": "Message reload request sent. The message will be received if available.",
                                                                                                                                      "details": {
                                                                                                                                        "id": "5511988887777:3EB01234567890ABCDEF",
                                                                                                                                        "messageid": "3EB01234567890ABCDEF",
                                                                                                                                        "chat_jid": "5511999999999@s.whatsapp.net",
                                                                                                                                        "sender_jid": "5511999999999@s.whatsapp.net",
                                                                                                                                        "fromMe": false,
                                                                                                                                        "candidate_count": 2,
                                                                                                                                        "candidates": [
                                                                                                                                          {
                                                                                                                                            "chat_jid": "5511999999999@s.whatsapp.net",
                                                                                                                                            "sender_jid": "5511999999999@s.whatsapp.net",
                                                                                                                                            "strategy": "raw"
                                                                                                                                          },
                                                                                                                                          {
                                                                                                                                            "chat_jid": "123456789012345@lid",
                                                                                                                                            "sender_jid": "123456789012345@lid",
                                                                                                                                            "strategy": "alt_lid"
                                                                                                                                          }
                                                                                                                                        ]
                                                                                                                                      }
                                                                                                                                    }

                                                                                                                                    Marcar mensagens como lidas

                                                                                                                                    POST /message/markread
                                                                                                                                    • Token do dispositivo
                                                                                                                                    • Não conta mensagem
                                                                                                                                    • Corpo até 1 MB

                                                                                                                                    Marca uma ou mais mensagens como lidas no WhatsApp, de uma vez, com a leitura sincronizada entre os aparelhos da conta.

                                                                                                                                    Envie em id a lista de IDs das mensagens. A resposta traz results, com um item por mensagem: message_id, status (success ou error) e, quando der erro, o motivo em error (por exemplo, mensagem não encontrada).

                                                                                                                                    Corpo da requisição (JSON)

                                                                                                                                    Um objeto JSON com Content-Type: application/json.

                                                                                                                                    • idlista de textosobrigatório

                                                                                                                                      Lista não vazia de IDs.

                                                                                                                                      Lista de IDs das mensagens a serem marcadas como lidas

                                                                                                                                    Respostas

                                                                                                                                    • 200Mensagens marcadas como lidas.
                                                                                                                                    • 400Lista de IDs vazia ou inválida.
                                                                                                                                    • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                    • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                    • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                    • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                    • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                    • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                    • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                    Erros possíveis 15

                                                                                                                                      Requisição

                                                                                                                                      curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/message/markread' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "id": [    "3EB0538DA65A59F6D8A251",    "3EB0A1B2C3D4E5F6A7B8C9"  ]}'

                                                                                                                                      Resposta

                                                                                                                                      200 JSON
                                                                                                                                      {
                                                                                                                                        "success": true,
                                                                                                                                        "data": {
                                                                                                                                          "results": [
                                                                                                                                            {
                                                                                                                                              "message_id": "62AD1AD844E518180227BF68DA7ED710",
                                                                                                                                              "status": "success"
                                                                                                                                            },
                                                                                                                                            {
                                                                                                                                              "message_id": "ECB9DE48EB41F77BFA8491BFA8D6EF9B",
                                                                                                                                              "status": "error",
                                                                                                                                              "error": "Message not found"
                                                                                                                                            }
                                                                                                                                          ]
                                                                                                                                        }
                                                                                                                                      }

                                                                                                                                      Enviar reação a uma mensagem

                                                                                                                                      POST /message/react
                                                                                                                                      • Token do dispositivo
                                                                                                                                      • Não conta mensagem
                                                                                                                                      • Corpo até 1 MB

                                                                                                                                      Envia uma reação (emoji) a uma mensagem.

                                                                                                                                      Informe o id da mensagem e, em text, o emoji da reação (qualquer emoji Unicode válido). Para remover a reação, envie text vazio (""). O chat e o autor da mensagem são obtidos da mensagem salva no dispositivo; o campo antigo number é opcional e ignorado.

                                                                                                                                      Ver mais detalhes

                                                                                                                                      Funciona em conversas individuais e em grupos.

                                                                                                                                      Limitações

                                                                                                                                      • Só é possível reagir a mensagens enviadas por outros usuários.
                                                                                                                                      • Não é possível reagir a mensagens com mais de 7 dias.
                                                                                                                                      • Cada usuário só pode ter uma reação ativa por mensagem.

                                                                                                                                      Quando não dá certo

                                                                                                                                      • Mensagem que não está no histórico do dispositivo: 404.
                                                                                                                                      • Dados recusados pelo WhatsApp: 400, com o motivo na mensagem de erro.

                                                                                                                                      Corpo da requisição (JSON)

                                                                                                                                      Um objeto JSON com Content-Type: application/json.

                                                                                                                                      • texttextoobrigatório

                                                                                                                                        Um emoji Unicode; string vazia ("") remove a reação.

                                                                                                                                        Emoji Unicode da reação (ou string vazia para remover reação)

                                                                                                                                        Exemplo
                                                                                                                                      • idtextoobrigatório

                                                                                                                                        ID da mensagem que receberá a reação

                                                                                                                                        Exemplo
                                                                                                                                        3EB0538DA65A59F6D8A251
                                                                                                                                      • numbertextoopcional

                                                                                                                                        Obsoleto e ignorado.

                                                                                                                                        (obsoleto) Campo antigo, opcional e ignorado: o chat vem da mensagem identificada por id.

                                                                                                                                      Respostas

                                                                                                                                      • 200Reação enviada com sucesso
                                                                                                                                      • 400Erro nos dados da requisição
                                                                                                                                      • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                      • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                      • 404Mensagem não encontrada
                                                                                                                                      • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                      • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                      • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                      • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                      • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                      Erros possíveis 16

                                                                                                                                        Requisição

                                                                                                                                        curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/message/react' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "id": "3EB0538DA65A59F6D8A251",  "text": "\ud83d\udc4d"}'

                                                                                                                                        Resposta

                                                                                                                                        200 JSON
                                                                                                                                        {
                                                                                                                                          "success": true,
                                                                                                                                          "data": {
                                                                                                                                            "id": "owner:generated_message_id",
                                                                                                                                            "messageid": "generated_message_id",
                                                                                                                                            "content": [],
                                                                                                                                            "messageTimestamp": 1672531200000,
                                                                                                                                            "messageType": "reaction",
                                                                                                                                            "status": "Pending",
                                                                                                                                            "owner": "instance_owner"
                                                                                                                                          }
                                                                                                                                        }

                                                                                                                                        Apagar mensagem para todos

                                                                                                                                        POST /message/delete
                                                                                                                                        • Token do dispositivo
                                                                                                                                        • Não conta mensagem
                                                                                                                                        • Corpo até 1 MB

                                                                                                                                        Apaga uma mensagem para todos os participantes da conversa.

                                                                                                                                        Ver mais detalhes
                                                                                                                                        Funcionalidades:
                                                                                                                                        • Apaga mensagens em conversas individuais ou grupos
                                                                                                                                        • Funciona com mensagens enviadas pelo usuário ou recebidas
                                                                                                                                        • Atualiza o status no histórico do dispositivo
                                                                                                                                        • Envia webhook de atualização

                                                                                                                                        Notas Técnicas:

                                                                                                                                        1. O ID da mensagem pode ser fornecido em dois formatos:
                                                                                                                                          • ID completo (contém ":"): usado diretamente
                                                                                                                                          • ID curto: associado automaticamente ao dispositivo autenticado
                                                                                                                                        2. Gera evento webhook do tipo "messages_update"
                                                                                                                                        3. Atualiza o status da mensagem para "Deleted"
                                                                                                                                        4. Para newsletters/canais, use POST /newsletter/messages/delete

                                                                                                                                        Corpo da requisição (JSON)

                                                                                                                                        Um objeto JSON com Content-Type: application/json.

                                                                                                                                        • idtextoobrigatório

                                                                                                                                          ID completo (com ":") ou curto. Para canais, use POST /newsletter/messages/delete.

                                                                                                                                          ID da mensagem a ser apagada

                                                                                                                                        Respostas

                                                                                                                                        • 200Mensagem apagada com sucesso
                                                                                                                                        • 400Corpo inválido ou ID de chat/sender inválido
                                                                                                                                        • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                        • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                        • 404Mensagem não encontrada
                                                                                                                                        • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                        • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                        • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                        • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                        • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                        Erros possíveis 16

                                                                                                                                          Requisição

                                                                                                                                          curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/message/delete' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "id": "5511999999999:3EB0538DA65A59F6D8A251"}'

                                                                                                                                          Resposta

                                                                                                                                          200 JSON
                                                                                                                                          {
                                                                                                                                            "success": true,
                                                                                                                                            "data": {
                                                                                                                                              "timestamp": "2026-10-20T12:00:00Z",
                                                                                                                                              "id": "3EB0538DA65A59F6D8A251"
                                                                                                                                            }
                                                                                                                                          }

                                                                                                                                          Editar uma mensagem enviada

                                                                                                                                          POST /message/edit
                                                                                                                                          • Token do dispositivo
                                                                                                                                          • Não conta mensagem
                                                                                                                                          • Corpo até 1 MB

                                                                                                                                          Edita o conteúdo de uma mensagem já enviada usando a funcionalidade nativa do WhatsApp.

                                                                                                                                          Use esta operação para corrigir o texto de uma mensagem enviada pelo próprio dispositivo. A resposta retorna a mensagem atualizada e a alteração também aparece nos eventos configurados.

                                                                                                                                          Ver mais detalhes

                                                                                                                                          Importante:

                                                                                                                                          • Só é possível editar mensagens enviadas pelo próprio dispositivo
                                                                                                                                          • A mensagem precisa estar disponível no histórico do dispositivo
                                                                                                                                          • O ID pode ser fornecido no formato completo retornado pela API ou apenas como messageid
                                                                                                                                          • A mensagem deve estar dentro do prazo permitido pelo WhatsApp para edição
                                                                                                                                          • Para newsletters/canais, use POST /newsletter/messages/edit

                                                                                                                                          Corpo da requisição (JSON)

                                                                                                                                          Um objeto JSON com Content-Type: application/json.

                                                                                                                                          • idtextoobrigatório

                                                                                                                                            Só mensagens enviadas pelo próprio dispositivo, dentro do prazo do WhatsApp. Para canais, use POST /newsletter/messages/edit.

                                                                                                                                            ID completo retornado pela API ou apenas o messageid

                                                                                                                                            Exemplo
                                                                                                                                            3A12345678901234567890123456789012
                                                                                                                                          • texttextoobrigatório

                                                                                                                                            Novo conteúdo de texto da mensagem

                                                                                                                                            Exemplo
                                                                                                                                            Texto editado da mensagem

                                                                                                                                          Respostas

                                                                                                                                          • 200Mensagem editada com sucesso
                                                                                                                                          • 400Dados inválidos na requisição
                                                                                                                                          • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                          • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                          • 404Mensagem não encontrada
                                                                                                                                          • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                          • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                          • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                          • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                          • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                          Erros possíveis 16

                                                                                                                                            Requisição

                                                                                                                                            curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/message/edit' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "id": "5511999999999:3EB0538DA65A59F6D8A251",  "text": "Correção: a entrega é amanhã entre 9h e 12h."}'

                                                                                                                                            Resposta

                                                                                                                                            200 JSON
                                                                                                                                            {
                                                                                                                                              "success": true,
                                                                                                                                              "data": {
                                                                                                                                                "id": "5511999999999:3A12345678901234567890123456789012",
                                                                                                                                                "messageid": "3A12345678901234567890123456789012",
                                                                                                                                                "content": "Texto editado da mensagem",
                                                                                                                                                "messageTimestamp": 1704067200000,
                                                                                                                                                "messageType": "text",
                                                                                                                                                "status": "Pending",
                                                                                                                                                "owner": "5511999999999"
                                                                                                                                              }
                                                                                                                                            }

                                                                                                                                            Fixar ou desafixar uma mensagem

                                                                                                                                            POST /message/pin
                                                                                                                                            • Token do dispositivo
                                                                                                                                            • Não conta mensagem
                                                                                                                                            • Corpo até 1 MB

                                                                                                                                            Fixa ou desafixa uma mensagem específica usando a funcionalidade nativa do WhatsApp.

                                                                                                                                            Use esta operação para destacar uma mensagem importante em uma conversa individual ou grupo. A resposta registra a ação e ela também aparece nos eventos configurados.

                                                                                                                                            Ver mais detalhes

                                                                                                                                            Importante:

                                                                                                                                            • O ID pode ser fornecido no formato completo retornado pela API ou apenas como messageid
                                                                                                                                            • Em conversas 1:1, a ação é suportada normalmente
                                                                                                                                            • Em grupos, a permissão depende da configuração do WhatsApp do grupo (apenas admins ou qualquer membro)
                                                                                                                                            • Newsletters/canais não são suportados nesta rota
                                                                                                                                            • Se pin não for enviado, o valor padrão é true
                                                                                                                                            • Ao fixar mensagem, duration aceita dias (1, 7 ou 30)
                                                                                                                                            • Se duration não for enviado ou vier com qualquer outro valor, a API usa 30 dias
                                                                                                                                            • Ao desafixar (pin: false), duration é ignorado

                                                                                                                                            Corpo da requisição (JSON)

                                                                                                                                            Um objeto JSON com Content-Type: application/json.

                                                                                                                                            • idtextoobrigatório

                                                                                                                                              ID completo retornado pela API ou apenas o messageid

                                                                                                                                              Exemplo
                                                                                                                                              3A12345678901234567890123456789012
                                                                                                                                            • pinbooleanoopcional

                                                                                                                                              Padrão true; false desafixa.

                                                                                                                                              Define se a mensagem deve ser fixada (true) ou desafixada (false)

                                                                                                                                              Padrão
                                                                                                                                              true
                                                                                                                                              Exemplo
                                                                                                                                              true
                                                                                                                                            • durationinteiroopcional

                                                                                                                                              Dias: 1, 7 ou 30; qualquer outro valor vira 30. Ignorado com pin=false.

                                                                                                                                              Duração do pin em dias. Valores aceitos: 1, 7 ou 30. Qualquer outro valor cai para 30.

                                                                                                                                              Padrão
                                                                                                                                              30
                                                                                                                                              Exemplo
                                                                                                                                              7

                                                                                                                                            Respostas

                                                                                                                                            • 200Ação de fixar/desafixar mensagem enviada com sucesso
                                                                                                                                            • 400Dados inválidos na requisição ou operação não suportada
                                                                                                                                            • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                            • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                            • 404Mensagem não encontrada
                                                                                                                                            • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                            • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                            • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                            • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                            • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                            Erros possíveis 16

                                                                                                                                              Requisição

                                                                                                                                              curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/message/pin' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "id": "5511999999999:3EB0538DA65A59F6D8A251",  "pin": true,  "duration": 7}'

                                                                                                                                              Resposta

                                                                                                                                              200 JSON
                                                                                                                                              {
                                                                                                                                                "success": true,
                                                                                                                                                "data": {
                                                                                                                                                  "id": "5511999999999:3A12345678901234567890123456789012",
                                                                                                                                                  "messageid": "3A12345678901234567890123456789012",
                                                                                                                                                  "chatid": "120363123456789012@g.us",
                                                                                                                                                  "sender": "5511999999999@s.whatsapp.net",
                                                                                                                                                  "senderName": "Minha Instância",
                                                                                                                                                  "isGroup": true,
                                                                                                                                                  "fromMe": true,
                                                                                                                                                  "content": [],
                                                                                                                                                  "messageType": "PinInChatMessage",
                                                                                                                                                  "source": "web",
                                                                                                                                                  "messageTimestamp": 1704067200000,
                                                                                                                                                  "status": "Pending",
                                                                                                                                                  "text": "Mensagem fixada",
                                                                                                                                                  "quoted": "",
                                                                                                                                                  "edited": "",
                                                                                                                                                  "reaction": "",
                                                                                                                                                  "convertOptions": "",
                                                                                                                                                  "owner": "5511999999999",
                                                                                                                                                  "targetMessageID": "3EB0538DA65A59F6D8A251",
                                                                                                                                                  "pinned": true
                                                                                                                                                }
                                                                                                                                              }

                                                                                                                                              Referência 3

                                                                                                                                              Envio assíncrono

                                                                                                                                              Fila de envio que responde na hora e entrega o resultado pelo webhook.

                                                                                                                                              Controles operacionais da fila interna de envio assíncrono usada quando uma rota de envio recebe async=true.

                                                                                                                                              Esta seção serve para:

                                                                                                                                              • consultar o estado atual da fila async
                                                                                                                                              • configurar o intervalo entre mensagens enviadas com async=true
                                                                                                                                              • limpar backlog pendente e cancelar mensagens ainda não concluídas

                                                                                                                                              Escopo:

                                                                                                                                              • cobre apenas a fila interna de mensagens diretas async
                                                                                                                                              • não cobre campanhas do sender (/sender/*)
                                                                                                                                              • não altera mensagens já enviadas com sucesso

                                                                                                                                              Consultar a fila de envio assíncrono

                                                                                                                                              GET /message/async
                                                                                                                                              • Token do dispositivo
                                                                                                                                              • Não conta mensagem

                                                                                                                                              Devolve um resumo da fila de envio async=true do dispositivo.

                                                                                                                                              Cobre só as mensagens diretas enviadas com async=true; não representa as campanhas de envio em massa (/sender/*).

                                                                                                                                              Ver mais detalhes

                                                                                                                                              Campos da resposta:

                                                                                                                                              • status: situação da fila (veja abaixo)
                                                                                                                                              • pending: quantidade estimada de mensagens pendentes
                                                                                                                                              • processingNow: se uma mensagem está sendo processada neste momento
                                                                                                                                              • acceptingNewMessages: se a fila aceita novos envios async; confira antes de adicionar envios
                                                                                                                                              • sessionReady: se a sessão do WhatsApp está pronta para enviar; false explica por que uma fila pode continuar pendente
                                                                                                                                              • resetting: se a fila está pausada por reset ou limpeza

                                                                                                                                              Valores de status:

                                                                                                                                              • idle: não há mensagens pendentes
                                                                                                                                              • queued: há mensagens aguardando processamento
                                                                                                                                              • processing: uma mensagem está sendo processada agora
                                                                                                                                              • waiting_connection: a fila aguarda a sessão ficar pronta
                                                                                                                                              • waiting_warmup: a fila aguarda a preparação da sessão
                                                                                                                                              • waiting_history: a fila aguarda a preparação do histórico
                                                                                                                                              • resetting: a fila está temporariamente indisponível durante uma limpeza ou reinicialização

                                                                                                                                              O resumo da fila não substitui o acompanhamento de cada mensagem: busque pelo id em POST /message/find ou acompanhe o evento messages_update.

                                                                                                                                              Parâmetros

                                                                                                                                              Esta rota não recebe parâmetros.

                                                                                                                                              Respostas

                                                                                                                                              • 200Resumo da fila async
                                                                                                                                              • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                                                              • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                              • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                              • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                              • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                              • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                              • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                              • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                              Erros possíveis 15

                                                                                                                                                Requisição

                                                                                                                                                curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/message/async' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                                                                                                                Resposta

                                                                                                                                                200 JSON
                                                                                                                                                {
                                                                                                                                                  "success": true,
                                                                                                                                                  "data": {
                                                                                                                                                    "response": "Async queue status",
                                                                                                                                                    "instanceId": "",
                                                                                                                                                    "queue": {
                                                                                                                                                      "status": "waiting_connection",
                                                                                                                                                      "pending": 3,
                                                                                                                                                      "processingNow": true,
                                                                                                                                                      "acceptingNewMessages": true,
                                                                                                                                                      "sessionReady": false,
                                                                                                                                                      "historyReady": true,
                                                                                                                                                      "warmupRemainingMs": 1500,
                                                                                                                                                      "resetting": false
                                                                                                                                                    }
                                                                                                                                                  }
                                                                                                                                                }

                                                                                                                                                Limpar a fila de envio assíncrono

                                                                                                                                                DEL /message/async
                                                                                                                                                • Token do dispositivo
                                                                                                                                                • Não conta mensagem
                                                                                                                                                • Corpo até 1 MB

                                                                                                                                                Cancela toda a fila de envio async=true do dispositivo e marca as mensagens pendentes como Canceled.

                                                                                                                                                Atua só nos envios diretos com async=true. Não afeta:

                                                                                                                                                Ver mais detalhes
                                                                                                                                                • as campanhas (/sender/*);
                                                                                                                                                • mensagens já enviadas com sucesso;
                                                                                                                                                • mensagens em massa agendadas.

                                                                                                                                                Use quando houver uma fila acumulada ou quando for preciso cancelar todos os envios assíncronos ainda não concluídos. Depois da limpeza, o dispositivo volta a aceitar novos envios com async=true.

                                                                                                                                                Se o dispositivo estiver em reset, ou se um envio em andamento não terminar a tempo, a fila não é limpa e a resposta é 409.

                                                                                                                                                Parâmetros

                                                                                                                                                Esta rota não recebe parâmetros.

                                                                                                                                                Respostas

                                                                                                                                                • 200Fila async limpa com sucesso
                                                                                                                                                • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                                                                • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                • 409A fila não pôde ser limpa porque o dispositivo está em reset ou havia envio em progresso que não drenou a tempo
                                                                                                                                                • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                Erros possíveis 16

                                                                                                                                                  Requisição

                                                                                                                                                  curl --request DELETE \  --url 'https://dropestore.com/wp-json/wdm/v1/message/async' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                                                                                                                  Resposta

                                                                                                                                                  200 JSON
                                                                                                                                                  {
                                                                                                                                                    "success": true,
                                                                                                                                                    "data": {
                                                                                                                                                      "response": "Async queue cleared",
                                                                                                                                                      "instanceId": "",
                                                                                                                                                      "stats": {
                                                                                                                                                        "trackedJobsCleared": 3,
                                                                                                                                                        "bufferedJobsMarkedCanceled": 2,
                                                                                                                                                        "drainedChannelJobs": 1,
                                                                                                                                                        "clearedOverflowJobs": 1,
                                                                                                                                                        "persistedQueuedCanceled": 5
                                                                                                                                                      }
                                                                                                                                                    }
                                                                                                                                                  }

                                                                                                                                                  Configurar o intervalo entre mensagens assíncronas

                                                                                                                                                  POST /instance/updateDelaySettings
                                                                                                                                                  • Token do dispositivo
                                                                                                                                                  • Não conta mensagem
                                                                                                                                                  • Corpo até 1 MB

                                                                                                                                                  Configura o intervalo, em segundos, entre as mensagens diretas enviadas com async=true.

                                                                                                                                                  • Vale só para a fila de mensagens async, enviadas pelas rotas de envio com async=true.
                                                                                                                                                  • Não afeta as campanhas (/sender/*).
                                                                                                                                                  • msg_delay_min: intervalo mínimo, 0 ou mais segundos (0 = sem intervalo).
                                                                                                                                                  • msg_delay_max: intervalo máximo; se for menor que msg_delay_min, passa a valer o mesmo valor de msg_delay_min.
                                                                                                                                                  • Valores negativos viram 0.

                                                                                                                                                  Corpo da requisição (JSON)

                                                                                                                                                  Um objeto JSON com Content-Type: application/json.

                                                                                                                                                  • msg_delay_mininteirointeiro de 64 bitsobrigatório

                                                                                                                                                    Valor negativo vira 0.

                                                                                                                                                    Intervalo mínimo, em segundos, entre mensagens async (0 = sem intervalo).

                                                                                                                                                    Limites
                                                                                                                                                    mínimo 0
                                                                                                                                                    Exemplo
                                                                                                                                                    3
                                                                                                                                                  • msg_delay_maxinteirointeiro de 64 bitsobrigatório

                                                                                                                                                    Se for menor que msg_delay_min, passa a valer msg_delay_min. Valor negativo vira 0.

                                                                                                                                                    Intervalo máximo, em segundos, entre mensagens async.

                                                                                                                                                    Limites
                                                                                                                                                    mínimo 0
                                                                                                                                                    Exemplo
                                                                                                                                                    8

                                                                                                                                                  Respostas

                                                                                                                                                  • 200Sucesso
                                                                                                                                                  • 400Requisição inválida
                                                                                                                                                  • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                  • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                  • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                  • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                  • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                  • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                  • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                  Erros possíveis 15

                                                                                                                                                    Requisição

                                                                                                                                                    curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/instance/updateDelaySettings' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "msg_delay_min": 3,  "msg_delay_max": 8}'

                                                                                                                                                    Resposta

                                                                                                                                                    200 JSON
                                                                                                                                                    {
                                                                                                                                                      "success": true,
                                                                                                                                                      "data": {
                                                                                                                                                        "instance": {
                                                                                                                                                          "id": "i91011ijkl",
                                                                                                                                                          "status": "connected",
                                                                                                                                                          "paircode": "1234-5678",
                                                                                                                                                          "qrcode": "data:image/png;base64,iVBORw0KGg...",
                                                                                                                                                          "name": "Instância Principal",
                                                                                                                                                          "profileName": "Loja ABC",
                                                                                                                                                          "profilePicUrl": "https://example.com/profile.jpg",
                                                                                                                                                          "isBusiness": true,
                                                                                                                                                          "plataform": "Android",
                                                                                                                                                          "owner": "user@example.com",
                                                                                                                                                          "lastDisconnect": "2025-01-24T14:00:00Z",
                                                                                                                                                          "lastDisconnectReason": "Network error",
                                                                                                                                                          "chatbot_enabled": true,
                                                                                                                                                          "chatbot_ignoreGroups": true,
                                                                                                                                                          "chatbot_stopConversation": "parar",
                                                                                                                                                          "chatbot_stopMinutes": 60,
                                                                                                                                                          "created": "2025-01-24T14:00:00Z",
                                                                                                                                                          "updated": "2025-01-24T14:30:00Z",
                                                                                                                                                          "currentPresence": "available"
                                                                                                                                                        }
                                                                                                                                                      }
                                                                                                                                                    }

                                                                                                                                                    Referência 11

                                                                                                                                                    Dispositivo

                                                                                                                                                    Conexão, status, privacidade e presença do número conectado.

                                                                                                                                                    Operações relacionadas ao ciclo de vida de um dispositivo, como conectar, desconectar e verificar o status.

                                                                                                                                                    Conectar o dispositivo ao WhatsApp

                                                                                                                                                    POST /instance/connect
                                                                                                                                                    • Token do dispositivo
                                                                                                                                                    • Não conta mensagem
                                                                                                                                                    • Corpo até 1 MB

                                                                                                                                                    Inicia a conexão do dispositivo com o WhatsApp.

                                                                                                                                                    • Sem phone, devolve um QR Code para ler no celular.
                                                                                                                                                    • Com phone, devolve um código de pareamento para digitar no celular desse número.
                                                                                                                                                    Ver mais detalhes

                                                                                                                                                    O dispositivo fica em connecting até o pareamento ser confirmado ou o prazo expirar. Acompanhe por GET /instance/status e não repita a chamada enquanto o processo estiver em andamento: um novo pedido nesse período volta 409.

                                                                                                                                                    Histórico

                                                                                                                                                    Depois de conectado, o histórico disponível começa a chegar pelo evento history do webhook e pode ser consultado em POST /message/find e POST /chat/find.

                                                                                                                                                    A resposta pode trazer request_id no topo, antes mesmo da leitura do QR Code ou do código de pareamento. Guarde esse valor para relacionar a tentativa com os lotes history do pareamento (inclusive o status de conclusão) e com GET /instance/history-sync/status. Ele fica igual durante a mesma tentativa, muda a cada novo pareamento e pode faltar quando não há pareamento nem rastreamento disponível.

                                                                                                                                                    Em um pareamento novo, history_days escolhe quantos dias de histórico o celular envia: sem o campo, ou de 1 a 90, vale o histórico normal (90 dias quando o campo falta); de 91 a 365, ou 0 (o máximo, 365 dias), o pedido é o histórico completo, maior e mais demorado. Um dispositivo já pareado reconecta sem pedir histórico, e um QR Code ou código já gerado segue com o que foi pedido.

                                                                                                                                                    Navegador e nome no celular

                                                                                                                                                    browser escolhe o navegador usado na autenticação: o padrão auto mantém um perfil válido já salvo ou escolhe Safari, Firefox ou Edge em conexões novas. systemName é o nome que aparece no celular, em aparelhos conectados; para maior estabilidade, o recomendado é deixar em branco e usar o padrão do navegador escolhido.

                                                                                                                                                    Região de conexão

                                                                                                                                                    Para escolher uma região, consulte antes GET /proxy-managed/countries e GET /proxy-managed/cities e use os valores devolvidos nos campos proxy_managed_*.

                                                                                                                                                    Corpo da requisição (JSON)

                                                                                                                                                    Um objeto JSON com Content-Type: application/json.

                                                                                                                                                    • phonetextoopcional

                                                                                                                                                      Com phone, a resposta traz um código de pareamento para digitar no celular desse número; sem phone, traz um QR Code.

                                                                                                                                                      Número no formato internacional, só dígitos (ex.: 5511999999999).

                                                                                                                                                      Limites
                                                                                                                                                      formato ^\d{10,15}$
                                                                                                                                                      Exemplo
                                                                                                                                                      5511999999999
                                                                                                                                                    • browsertextoopcional

                                                                                                                                                      Navegador usado na autenticação. auto (padrão) mantém um perfil válido já salvo ou escolhe Safari, Firefox ou Edge em conexões novas.

                                                                                                                                                      Valores
                                                                                                                                                      autosafarifirefoxedgechrome
                                                                                                                                                      Padrão
                                                                                                                                                      auto
                                                                                                                                                    • systemNametextoopcional

                                                                                                                                                      Nome exibido no celular, em aparelhos conectados. Recomendado deixar em branco e usar o padrão do navegador escolhido.

                                                                                                                                                      Exemplo
                                                                                                                                                      Minha Empresa
                                                                                                                                                    • proxy_managed_countrytextoopcional

                                                                                                                                                      País da região de conexão, ISO alpha-2 minúsculo: o countries[].value de GET /proxy-managed/countries.

                                                                                                                                                      Limites
                                                                                                                                                      formato ^[a-z]{2}$
                                                                                                                                                      Exemplo
                                                                                                                                                      br
                                                                                                                                                    • proxy_managed_statetextoopcional

                                                                                                                                                      Envie quando a cidade escolhida em GET /proxy-managed/cities trouxer state; se não trouxer, omita.

                                                                                                                                                      UF ou subdivisão da cidade escolhida (ex.: sp).

                                                                                                                                                      Exemplo
                                                                                                                                                      sp
                                                                                                                                                    • proxy_managed_citytextoopcional

                                                                                                                                                      Use junto de proxy_managed_country. A API valida a combinação e devolve erro se faltar algum dado necessário.

                                                                                                                                                      Cidade da região de conexão: sempre o cities[].value de GET /proxy-managed/cities.

                                                                                                                                                      Exemplo
                                                                                                                                                      campinas
                                                                                                                                                    • history_daysinteiroopcional

                                                                                                                                                      Só vale em pareamento novo. Sem o campo: 90 dias, pelo histórico normal. De 1 a 90: os últimos N dias, pelo histórico normal. De 91 a 365: os últimos N dias, pelo histórico completo. 0: o máximo, 365 dias, pelo histórico completo. Um QR Code ou código já gerado segue com o que foi pedido.

                                                                                                                                                      Dias de histórico pedidos ao celular no pareamento (0 a 365). É um limite pedido, não uma garantia: o celular decide o que envia.

                                                                                                                                                      Padrão
                                                                                                                                                      90
                                                                                                                                                      Limites
                                                                                                                                                      de 0 a 365
                                                                                                                                                      Exemplo
                                                                                                                                                      90

                                                                                                                                                    Respostas

                                                                                                                                                    • 200Sucesso
                                                                                                                                                    • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                                                                    • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                    • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                    • 404Dispositivo não encontrado
                                                                                                                                                    • 409Já existe um fluxo de conexão em andamento para o dispositivo
                                                                                                                                                    • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                    • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                    • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After. Caso do WhatsApp (429): Limite de conexões simultâneas atingido.
                                                                                                                                                    • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After. Caso do WhatsApp (503): Capacidade de conexão temporariamente indisponível.
                                                                                                                                                    • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                    Erros possíveis 17

                                                                                                                                                      Requisição

                                                                                                                                                      curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/instance/connect' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "browser": "auto",  "proxy_managed_country": "br",  "proxy_managed_state": "sp",  "proxy_managed_city": "campinas",  "history_days": 90}'

                                                                                                                                                      Resposta

                                                                                                                                                      200 JSON
                                                                                                                                                      {
                                                                                                                                                        "success": true,
                                                                                                                                                        "data": {
                                                                                                                                                          "response": "Connecting",
                                                                                                                                                          "request_id": "5f0c2a8e-6d1b-4c3a-9e7f-1a2b3c4d5e6f",
                                                                                                                                                          "status": {
                                                                                                                                                            "connected": false,
                                                                                                                                                            "loggedIn": false,
                                                                                                                                                            "jid": null
                                                                                                                                                          }
                                                                                                                                                        }
                                                                                                                                                      }

                                                                                                                                                      Desconectar o dispositivo

                                                                                                                                                      POST /instance/disconnect
                                                                                                                                                      • Token do dispositivo
                                                                                                                                                      • Não conta mensagem
                                                                                                                                                      • Corpo até 1 MB

                                                                                                                                                      Desconecta a conta do WhatsApp do dispositivo e encerra a sessão atual.

                                                                                                                                                      O pareamento é encerrado: para voltar, conecte de novo por POST /instance/connect, com QR Code ou código de pareamento. O dispositivo continua na sua conta, com o mesmo token.

                                                                                                                                                      Ver mais detalhes

                                                                                                                                                      Use para:

                                                                                                                                                      1. encerrar a sessão por completo;
                                                                                                                                                      2. forçar uma nova autenticação;
                                                                                                                                                      3. limpar as credenciais da sessão atual;
                                                                                                                                                      4. reiniciar o processo de conexão.

                                                                                                                                                      Estados possíveis depois de desconectar:

                                                                                                                                                      • disconnected: desconectado do WhatsApp
                                                                                                                                                      • connecting: em processo de reconexão (depois de chamar POST /instance/connect)

                                                                                                                                                      Parâmetros

                                                                                                                                                      Esta rota não recebe parâmetros.

                                                                                                                                                      Respostas

                                                                                                                                                      • 200Sucesso
                                                                                                                                                      • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                                                                      • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                      • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                      • 404Dispositivo não encontrado
                                                                                                                                                      • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                      • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                      • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                      • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                      • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                      Erros possíveis 16

                                                                                                                                                        Requisição

                                                                                                                                                        curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/instance/disconnect' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json'

                                                                                                                                                        Resposta

                                                                                                                                                        200 JSON
                                                                                                                                                        {
                                                                                                                                                          "success": true,
                                                                                                                                                          "data": {
                                                                                                                                                            "instance": {
                                                                                                                                                              "id": "i91011ijkl",
                                                                                                                                                              "status": "connected",
                                                                                                                                                              "paircode": "1234-5678",
                                                                                                                                                              "qrcode": "data:image/png;base64,iVBORw0KGg...",
                                                                                                                                                              "name": "Instância Principal",
                                                                                                                                                              "profileName": "Loja ABC",
                                                                                                                                                              "profilePicUrl": "https://example.com/profile.jpg",
                                                                                                                                                              "isBusiness": true,
                                                                                                                                                              "plataform": "Android",
                                                                                                                                                              "owner": "user@example.com",
                                                                                                                                                              "lastDisconnect": "2025-01-24T14:00:00Z",
                                                                                                                                                              "lastDisconnectReason": "Network error",
                                                                                                                                                              "chatbot_enabled": true,
                                                                                                                                                              "chatbot_ignoreGroups": true,
                                                                                                                                                              "chatbot_stopConversation": "parar",
                                                                                                                                                              "chatbot_stopMinutes": 60,
                                                                                                                                                              "created": "2025-01-24T14:00:00Z",
                                                                                                                                                              "updated": "2025-01-24T14:30:00Z",
                                                                                                                                                              "currentPresence": "available"
                                                                                                                                                            },
                                                                                                                                                            "response": "Disconnected",
                                                                                                                                                            "info": "The device has been successfully disconnected from WhatsApp. A new QR code will be required for the next connection."
                                                                                                                                                          }
                                                                                                                                                        }

                                                                                                                                                        Reiniciar a conexão do dispositivo

                                                                                                                                                        POST /instance/reset
                                                                                                                                                        • Token do dispositivo
                                                                                                                                                        • Não conta mensagem
                                                                                                                                                        • Corpo até 1 MB

                                                                                                                                                        Pede uma retomada controlada da conexão sem apagar o dispositivo nem o pareamento existente. Use quando a sessão estiver presa ou os envios não estiverem andando.

                                                                                                                                                        Comportamentos possíveis:

                                                                                                                                                        Ver mais detalhes
                                                                                                                                                        • inicia um novo reset quando o dispositivo está apto;
                                                                                                                                                        • informa que um reset já está em andamento;
                                                                                                                                                        • informa que ainda não passou o intervalo mínimo entre resets;
                                                                                                                                                        • devolve erro quando a sessão atual não é recuperável por reset (409) ou quando a política de reconexão bloqueia a operação (403).

                                                                                                                                                        A resposta informa:

                                                                                                                                                        • instanceId: identificador do dispositivo autenticado
                                                                                                                                                        • resetting: se há reset em andamento no momento
                                                                                                                                                        • queuedRecoveryAttempted: se as mensagens pendentes também entraram na tentativa de recuperação

                                                                                                                                                        Parâmetros

                                                                                                                                                        Esta rota não recebe parâmetros.

                                                                                                                                                        Respostas

                                                                                                                                                        • 200Reset aceito, já em andamento ou ainda dentro do intervalo mínimo entre resets.
                                                                                                                                                        • 400Corpo JSON inválido
                                                                                                                                                        • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                        • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED). Caso do WhatsApp (403): Reset bloqueado pela política de reconexão.
                                                                                                                                                        • 409Sessão atual não é reconectável por reset
                                                                                                                                                        • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                        • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                        • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                        • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                        • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                        Erros possíveis 16

                                                                                                                                                          Requisição

                                                                                                                                                          curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/instance/reset' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json'

                                                                                                                                                          Resposta

                                                                                                                                                          200 JSON
                                                                                                                                                          {
                                                                                                                                                            "success": true,
                                                                                                                                                            "data": {
                                                                                                                                                              "response": "Instance reset started",
                                                                                                                                                              "resetting": true,
                                                                                                                                                              "instanceId": "k3m9x2p7q4w8z1t6",
                                                                                                                                                              "queuedRecoveryAttempted": true
                                                                                                                                                            }
                                                                                                                                                          }

                                                                                                                                                          Verificar status do dispositivo

                                                                                                                                                          GET /instance/status
                                                                                                                                                          • Token do dispositivo
                                                                                                                                                          • Não conta mensagem

                                                                                                                                                          Retorna o status atual de um dispositivo, incluindo:

                                                                                                                                                          • Estado da conexão
                                                                                                                                                          • QR code atualizado (se em processo de conexão)
                                                                                                                                                          • Código de pareamento (se disponível)
                                                                                                                                                          • Informações da última desconexão
                                                                                                                                                          • Detalhes completos do dispositivo

                                                                                                                                                          Esta rota é particularmente útil para:

                                                                                                                                                          1. Monitorar o progresso da conexão
                                                                                                                                                          2. Obter QR codes atualizados durante o processo de conexão
                                                                                                                                                          3. Verificar o estado atual do dispositivo
                                                                                                                                                          4. Identificar problemas de conexão
                                                                                                                                                          Ver mais detalhes

                                                                                                                                                          Estados possíveis:

                                                                                                                                                          • disconnected: Desconectado do WhatsApp
                                                                                                                                                          • connecting: Em processo de conexão (aguardando QR code ou código de pareamento)
                                                                                                                                                          • connected: Conectado e autenticado com sucesso
                                                                                                                                                          • hibernated: Sessão pausada, com credenciais preservadas para reconexão

                                                                                                                                                          Também atende pelo caminho antigo GET /instance/info.

                                                                                                                                                          Parâmetros

                                                                                                                                                          Esta rota não recebe parâmetros.

                                                                                                                                                          Respostas

                                                                                                                                                          • 200Sucesso
                                                                                                                                                          • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                                                                          • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                          • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                          • 404Dispositivo não encontrado
                                                                                                                                                          • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                          • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                          • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                          • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                          • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                          Erros possíveis 16

                                                                                                                                                            Requisição

                                                                                                                                                            curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/instance/status' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                                                                                                                            Resposta

                                                                                                                                                            200 JSON
                                                                                                                                                            {
                                                                                                                                                              "success": true,
                                                                                                                                                              "data": {
                                                                                                                                                                "instance": {
                                                                                                                                                                  "id": "k3m9x2p7q4w8z1t6",
                                                                                                                                                                  "name": "meu-dispositivo",
                                                                                                                                                                  "status": "connected",
                                                                                                                                                                  "profileName": "Meu WhatsApp",
                                                                                                                                                                  "currentTime": "2024-01-25T12:00:00.000Z"
                                                                                                                                                                },
                                                                                                                                                                "status": {
                                                                                                                                                                  "connected": true,
                                                                                                                                                                  "loggedIn": true,
                                                                                                                                                                  "jid": {
                                                                                                                                                                    "user": "5511999999999",
                                                                                                                                                                    "agent": 0,
                                                                                                                                                                    "device": 0
                                                                                                                                                                  }
                                                                                                                                                                }
                                                                                                                                                              }
                                                                                                                                                            }

                                                                                                                                                            Consultar limites atuais de novas conversas no WhatsApp

                                                                                                                                                            GET /instance/wa_messages_limits
                                                                                                                                                            • Token do dispositivo
                                                                                                                                                            • Não conta mensagem

                                                                                                                                                            Consulta o estado atual de limitação do WhatsApp para a conta atualmente conectada.

                                                                                                                                                            Esta rota é útil para:

                                                                                                                                                            • diagnosticar erros de envio com provider_code: 463
                                                                                                                                                            • verificar se o WhatsApp indica que a conta atualmente conectada pode iniciar novas conversas
                                                                                                                                                            • exibir informações de suporte antes de campanhas ou envios de alto volume
                                                                                                                                                            Ver mais detalhes

                                                                                                                                                            A resposta consolida duas fontes internas do WhatsApp:

                                                                                                                                                            • new_chat_message_capping: limite de mensagens para iniciar novas conversas
                                                                                                                                                            • reachout_timelock: restrição temporária para iniciar novas conversas

                                                                                                                                                            Observações:

                                                                                                                                                            • esta rota depende de sessão ativa e conectada
                                                                                                                                                            • se o WhatsApp não retornar os dados esperados, a resposta pode marcar os blocos como indisponíveis via available: false e lookup_error
                                                                                                                                                            • message descreve o estado atual da conta atualmente conectada
                                                                                                                                                            • provider_message detalha o motivo reportado pelo WhatsApp quando houver restrição ativa

                                                                                                                                                            Parâmetros

                                                                                                                                                            Esta rota não recebe parâmetros.

                                                                                                                                                            Respostas

                                                                                                                                                            • 200Diagnóstico atual dos limites de novas conversas da conta atualmente conectada
                                                                                                                                                            • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                                                                            • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                            • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                            • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                            • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                            • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                            • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                            • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                            Erros possíveis 15

                                                                                                                                                              Requisição

                                                                                                                                                              curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/instance/wa_messages_limits' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                                                                                                                              Resposta

                                                                                                                                                              200 JSON
                                                                                                                                                              {
                                                                                                                                                                "success": true,
                                                                                                                                                                "data": {
                                                                                                                                                                  "provider": "whatsapp",
                                                                                                                                                                  "reachable": true,
                                                                                                                                                                  "can_send_new_messages": false,
                                                                                                                                                                  "error_key": "WHATSAPP_REACHOUT_TIMELOCK",
                                                                                                                                                                  "message": "WhatsApp indicates that the currently connected account is under a temporary restriction for starting new conversations. This is not an internal API error.",
                                                                                                                                                                  "message_ptbr": "O WhatsApp indica que a conta atualmente conectada está sob uma restrição temporária para iniciar novas conversas. Isso não é um erro interno da API.",
                                                                                                                                                                  "provider_message": "WhatsApp reported that the currently connected account is under a temporary restriction for starting new conversations, usually related to sending volume or quality.",
                                                                                                                                                                  "provider_message_ptbr": "O WhatsApp informou que a conta atualmente conectada está sob uma restrição temporária para iniciar novas conversas, normalmente relacionada a volume ou qualidade de envios.",
                                                                                                                                                                  "diagnostics_endpoint": "/instance/wa_messages_limits",
                                                                                                                                                                  "new_chat_message_capping": {
                                                                                                                                                                    "available": true,
                                                                                                                                                                    "status": "CAPPED",
                                                                                                                                                                    "used_quota": 10,
                                                                                                                                                                    "total_quota": 10,
                                                                                                                                                                    "cycle_end": "2026-04-30T23:59:59Z",
                                                                                                                                                                    "ote_status": "EXHAUSTED",
                                                                                                                                                                    "mv_status": "ACTIVE"
                                                                                                                                                                  },
                                                                                                                                                                  "reachout_timelock": {
                                                                                                                                                                    "available": true,
                                                                                                                                                                    "active": true,
                                                                                                                                                                    "until": "2026-04-07T12:00:00Z",
                                                                                                                                                                    "enforcement_type": "BIZ_QUALITY"
                                                                                                                                                                  }
                                                                                                                                                                }
                                                                                                                                                              }

                                                                                                                                                              Renomear dispositivo

                                                                                                                                                              POST /instance/updateInstanceName
                                                                                                                                                              • Token do dispositivo
                                                                                                                                                              • Não conta mensagem
                                                                                                                                                              • Corpo até 1 MB

                                                                                                                                                              Troca o nome do dispositivo na sua conta: é o nome que aparece no painel, nas listagens e nas respostas da API. O nome é texto livre e não precisa ser único.

                                                                                                                                                              Não muda o nome do perfil no WhatsApp; para isso, use POST /profile/name.

                                                                                                                                                              Corpo da requisição (JSON)

                                                                                                                                                              Um objeto JSON com Content-Type: application/json.

                                                                                                                                                              • nametextoobrigatório

                                                                                                                                                                Novo nome do dispositivo, em texto livre (não precisa ser único). Não altera o nome do perfil no WhatsApp.

                                                                                                                                                                Exemplo
                                                                                                                                                                Atendimento Loja Centro

                                                                                                                                                              Respostas

                                                                                                                                                              • 200Sucesso
                                                                                                                                                              • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                                                                              • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                              • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                              • 404Dispositivo não encontrado
                                                                                                                                                              • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                              • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                              • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                              • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                              • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                              Erros possíveis 16

                                                                                                                                                                Requisição

                                                                                                                                                                curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/instance/updateInstanceName' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "name": "Atendimento Loja Centro"}'

                                                                                                                                                                Resposta

                                                                                                                                                                200 JSON
                                                                                                                                                                {
                                                                                                                                                                  "success": true,
                                                                                                                                                                  "data": {
                                                                                                                                                                    "id": "i91011ijkl",
                                                                                                                                                                    "status": "connected",
                                                                                                                                                                    "paircode": "1234-5678",
                                                                                                                                                                    "qrcode": "data:image/png;base64,iVBORw0KGg...",
                                                                                                                                                                    "name": "Instância Principal",
                                                                                                                                                                    "profileName": "Loja ABC",
                                                                                                                                                                    "profilePicUrl": "https://example.com/profile.jpg",
                                                                                                                                                                    "isBusiness": true,
                                                                                                                                                                    "plataform": "Android",
                                                                                                                                                                    "owner": "user@example.com",
                                                                                                                                                                    "lastDisconnect": "2025-01-24T14:00:00Z",
                                                                                                                                                                    "lastDisconnectReason": "Network error",
                                                                                                                                                                    "chatbot_enabled": true,
                                                                                                                                                                    "chatbot_ignoreGroups": true,
                                                                                                                                                                    "chatbot_stopConversation": "parar",
                                                                                                                                                                    "chatbot_stopMinutes": 60,
                                                                                                                                                                    "created": "2025-01-24T14:00:00Z",
                                                                                                                                                                    "updated": "2025-01-24T14:30:00Z",
                                                                                                                                                                    "currentPresence": "available"
                                                                                                                                                                  }
                                                                                                                                                                }

                                                                                                                                                                Apagar dispositivo

                                                                                                                                                                DEL /instance
                                                                                                                                                                • Token do dispositivo
                                                                                                                                                                • Não conta mensagem
                                                                                                                                                                • Corpo até 1 MB

                                                                                                                                                                Desconecta o número e apaga o dispositivo da sua conta na hora, junto com os grupos sincronizados e os webhooks dele. O token deixa de valer imediatamente. As estatísticas de mensagens continuam contando para a conta.

                                                                                                                                                                Mesmo quando a remoção do número no WhatsApp ainda termina em segundo plano, a resposta já é de sucesso e o dispositivo já saiu da conta.

                                                                                                                                                                Ver mais detalhes

                                                                                                                                                                A operação não pode ser desfeita: para usar o número de novo, crie outro dispositivo pelo painel ou por POST /devices e conecte.

                                                                                                                                                                Parâmetros

                                                                                                                                                                Esta rota não recebe parâmetros.

                                                                                                                                                                Respostas

                                                                                                                                                                • 200Dispositivo apagado da conta; o token deixa de valer na hora.
                                                                                                                                                                • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                                                                                • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                • 404Dispositivo não encontrado
                                                                                                                                                                • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                Erros possíveis 16

                                                                                                                                                                  Requisição

                                                                                                                                                                  curl --request DELETE \  --url 'https://dropestore.com/wp-json/wdm/v1/instance' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                                                                                                                                  Resposta

                                                                                                                                                                  200 JSON
                                                                                                                                                                  {
                                                                                                                                                                    "success": true,
                                                                                                                                                                    "data": {
                                                                                                                                                                      "response": "Instance Deleted",
                                                                                                                                                                      "info": "O dispositivo foi desconectado com sucesso e a instância foi removida do banco de dados."
                                                                                                                                                                    }
                                                                                                                                                                  }

                                                                                                                                                                  Buscar configurações de privacidade

                                                                                                                                                                  GET /instance/privacy
                                                                                                                                                                  • Token do dispositivo
                                                                                                                                                                  • Não conta mensagem

                                                                                                                                                                  Busca as configurações de privacidade atuais da conta do WhatsApp atualmente conectada.

                                                                                                                                                                  Importante - Diferença entre Status e Broadcast:

                                                                                                                                                                  Ver mais detalhes
                                                                                                                                                                  • Status: Refere-se ao recado personalizado que aparece embaixo do nome do usuário (ex: "Disponível", "Ocupado", texto personalizado)
                                                                                                                                                                  • Broadcast: Refere-se ao envio de "stories/reels" (fotos/vídeos temporários)

                                                                                                                                                                  Limitação: As configurações de privacidade do broadcast (stories/reels) não estão disponíveis para alteração via API.

                                                                                                                                                                  Retorna todas as configurações de privacidade como quem pode:

                                                                                                                                                                  • Adicionar aos grupos
                                                                                                                                                                  • Ver visto por último
                                                                                                                                                                  • Ver status (recado embaixo do nome)
                                                                                                                                                                  • Ver foto de perfil
                                                                                                                                                                  • Receber confirmação de leitura
                                                                                                                                                                  • Ver status online
                                                                                                                                                                  • Fazer chamadas

                                                                                                                                                                  Parâmetros

                                                                                                                                                                  Esta rota não recebe parâmetros.

                                                                                                                                                                  Respostas

                                                                                                                                                                  • 200Configurações de privacidade obtidas com sucesso
                                                                                                                                                                  • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                                                                                  • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                  • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                  • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                  • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                  • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                  • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                  • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                  Erros possíveis 15

                                                                                                                                                                    Requisição

                                                                                                                                                                    curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/instance/privacy' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                                                                                                                                    Resposta

                                                                                                                                                                    200 JSON
                                                                                                                                                                    {
                                                                                                                                                                      "success": true,
                                                                                                                                                                      "data": {
                                                                                                                                                                        "groupadd": "contacts",
                                                                                                                                                                        "last": "contacts",
                                                                                                                                                                        "status": "contacts",
                                                                                                                                                                        "profile": "contacts",
                                                                                                                                                                        "readreceipts": "all",
                                                                                                                                                                        "online": "all",
                                                                                                                                                                        "calladd": "all"
                                                                                                                                                                      }
                                                                                                                                                                    }

                                                                                                                                                                    Alterar configurações de privacidade

                                                                                                                                                                    POST /instance/privacy
                                                                                                                                                                    • Token do dispositivo
                                                                                                                                                                    • Não conta mensagem
                                                                                                                                                                    • Corpo até 1 MB

                                                                                                                                                                    Altera uma ou várias configurações de privacidade da conta do WhatsApp conectada ao dispositivo. Envie pelo menos uma das 7 configurações abaixo. Só as configurações que realmente mudaram são alteradas, e a resposta traz todas as configurações atualizadas.

                                                                                                                                                                    Status e transmissão (broadcast) são coisas diferentes:

                                                                                                                                                                    Ver mais detalhes
                                                                                                                                                                    • Status (status): o recado que aparece embaixo do nome (ex.: "Disponível", "Ocupado" ou um texto personalizado).
                                                                                                                                                                    • Broadcast: as publicações temporárias de fotos e vídeos (stories). A privacidade delas não pode ser alterada pela API.

                                                                                                                                                                    Configurações:

                                                                                                                                                                    • groupadd: quem pode adicionar a conta a grupos
                                                                                                                                                                    • last: quem vê o visto por último
                                                                                                                                                                    • status: quem vê o recado embaixo do nome
                                                                                                                                                                    • profile: quem vê a foto do perfil
                                                                                                                                                                    • readreceipts: confirmação de leitura
                                                                                                                                                                    • online: quem vê quando a conta está online
                                                                                                                                                                    • calladd: quem pode ligar

                                                                                                                                                                    Valores:

                                                                                                                                                                    • all: todos
                                                                                                                                                                    • contacts: só contatos
                                                                                                                                                                    • contact_blacklist: contatos, menos os bloqueados
                                                                                                                                                                    • none: ninguém
                                                                                                                                                                    • match_last_seen: igual ao visto por último (só em online)
                                                                                                                                                                    • known: números conhecidos (só em calladd)

                                                                                                                                                                    Corpo da requisição (JSON)

                                                                                                                                                                    Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                    • groupaddtextoopcional

                                                                                                                                                                      Envie pelo menos uma das 7 configurações (groupadd, last, status, profile, readreceipts, online, calladd).

                                                                                                                                                                      Quem pode adicionar a conta a grupos.

                                                                                                                                                                      Valores
                                                                                                                                                                      allcontactscontact_blacklistnone
                                                                                                                                                                    • lasttextoopcional

                                                                                                                                                                      Envie pelo menos uma das 7 configurações (groupadd, last, status, profile, readreceipts, online, calladd).

                                                                                                                                                                      Quem vê o visto por último.

                                                                                                                                                                      Valores
                                                                                                                                                                      allcontactscontact_blacklistnone
                                                                                                                                                                    • statustextoopcional

                                                                                                                                                                      Envie pelo menos uma das 7 configurações (groupadd, last, status, profile, readreceipts, online, calladd).

                                                                                                                                                                      Quem vê o recado embaixo do nome.

                                                                                                                                                                      Valores
                                                                                                                                                                      allcontactscontact_blacklistnone
                                                                                                                                                                    • profiletextoopcional

                                                                                                                                                                      Envie pelo menos uma das 7 configurações (groupadd, last, status, profile, readreceipts, online, calladd).

                                                                                                                                                                      Quem vê a foto do perfil.

                                                                                                                                                                      Valores
                                                                                                                                                                      allcontactscontact_blacklistnone
                                                                                                                                                                    • readreceiptstextoopcional

                                                                                                                                                                      Envie pelo menos uma das 7 configurações (groupadd, last, status, profile, readreceipts, online, calladd).

                                                                                                                                                                      Confirmação de leitura.

                                                                                                                                                                      Valores
                                                                                                                                                                      allnone
                                                                                                                                                                    • onlinetextoopcional

                                                                                                                                                                      Envie pelo menos uma das 7 configurações (groupadd, last, status, profile, readreceipts, online, calladd).

                                                                                                                                                                      Quem vê quando a conta está online (match_last_seen = igual ao visto por último).

                                                                                                                                                                      Valores
                                                                                                                                                                      allmatch_last_seen
                                                                                                                                                                    • calladdtextoopcional

                                                                                                                                                                      Envie pelo menos uma das 7 configurações (groupadd, last, status, profile, readreceipts, online, calladd).

                                                                                                                                                                      Quem pode ligar (known = números conhecidos).

                                                                                                                                                                      Valores
                                                                                                                                                                      allknown

                                                                                                                                                                    Regras

                                                                                                                                                                    • Envie pelo menos um campo.

                                                                                                                                                                    Respostas

                                                                                                                                                                    • 200Configuração de privacidade alterada com sucesso
                                                                                                                                                                    • 400Dados de entrada inválidos
                                                                                                                                                                    • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                    • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                    • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                    • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                    • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                    • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                    • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                    Erros possíveis 15

                                                                                                                                                                      Requisição

                                                                                                                                                                      curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/instance/privacy' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "groupadd": "contacts",  "last": "none",  "status": "contacts",  "profile": "contacts"}'

                                                                                                                                                                      Resposta

                                                                                                                                                                      200 JSON
                                                                                                                                                                      {
                                                                                                                                                                        "success": true,
                                                                                                                                                                        "data": {
                                                                                                                                                                          "groupadd": "contacts",
                                                                                                                                                                          "last": "contacts",
                                                                                                                                                                          "status": "contacts",
                                                                                                                                                                          "profile": "contacts",
                                                                                                                                                                          "readreceipts": "all",
                                                                                                                                                                          "online": "all",
                                                                                                                                                                          "calladd": "all"
                                                                                                                                                                        }
                                                                                                                                                                      }

                                                                                                                                                                      Atualizar a presença do dispositivo

                                                                                                                                                                      POST /instance/presence
                                                                                                                                                                      • Token do dispositivo
                                                                                                                                                                      • Não conta mensagem
                                                                                                                                                                      • Corpo até 1 MB

                                                                                                                                                                      Atualiza a presença global da conta do WhatsApp conectada ao dispositivo, para todos os contatos.

                                                                                                                                                                      • available: a conta aparece como disponível (online)
                                                                                                                                                                      • unavailable: a conta aparece como indisponível (offline)
                                                                                                                                                                      Ver mais detalhes

                                                                                                                                                                      Atenção:

                                                                                                                                                                      • A presença pode voltar temporariamente para available em algumas situações internas da API, e com isso o visto por último também pode ser atualizado.
                                                                                                                                                                      • Se isso for um problema, ajuste a privacidade da conta para não mostrar o visto por último e/ou quem vê quando você está online (POST /instance/privacy).

                                                                                                                                                                      Importante: limitação da presença unavailable

                                                                                                                                                                      • Quando a API é o único aparelho ativo: as confirmações de entrega e leitura (tiques cinzas e azuis) não são enviadas nem recebidas.
                                                                                                                                                                      • Impacto: eventos messages_update com status de entrega podem não chegar.
                                                                                                                                                                      • Solução: se precisar das confirmações, mantenha o WhatsApp Web ou o aplicativo do celular ativo, ou use available.

                                                                                                                                                                      Corpo da requisição (JSON)

                                                                                                                                                                      Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                      • presencetextoobrigatório

                                                                                                                                                                        Presença global da conta: available (disponível, online) ou unavailable (indisponível, offline).

                                                                                                                                                                        Valores
                                                                                                                                                                        availableunavailable

                                                                                                                                                                      Respostas

                                                                                                                                                                      • 200Presença atualizada com sucesso
                                                                                                                                                                      • 400Requisição inválida
                                                                                                                                                                      • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                      • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                      • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                      • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                      • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                      • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                      • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                      Erros possíveis 15

                                                                                                                                                                        Requisição

                                                                                                                                                                        curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/instance/presence' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "presence": "available"}'

                                                                                                                                                                        Resposta

                                                                                                                                                                        200 JSON
                                                                                                                                                                        {
                                                                                                                                                                          "success": true,
                                                                                                                                                                          "data": {
                                                                                                                                                                            "response": "Presence updated successfully"
                                                                                                                                                                          }
                                                                                                                                                                        }

                                                                                                                                                                        Consultar o processamento do histórico inicial

                                                                                                                                                                        GET /instance/history-sync/status
                                                                                                                                                                        • Token do dispositivo
                                                                                                                                                                        • Não conta mensagem

                                                                                                                                                                        Retorna o diagnóstico em memória da sincronização de histórico iniciada no pareamento mais recente deste dispositivo. Não inicia uma nova sincronização.

                                                                                                                                                                        O request_id é o mesmo devolvido por POST /instance/connect para essa tentativa e pelos lotes history do pareamento. O diagnóstico só existe após o pareamento: antes disso, pode retornar diagnosis: [no_trace]. Essa rota não acompanha os pedidos manuais de POST /message/history-sync; use o request_id desses pedidos nos eventos webhook.

                                                                                                                                                                        Ver mais detalhes

                                                                                                                                                                        deliveryStatus pode ser pending, delivered, partial, failed, no_webhook ou no_batches. O progresso informado pelo WhatsApp chegar a 100 não significa, sozinho, que todos os lotes já foram entregues.

                                                                                                                                                                        O rastreamento é isolado por dispositivo, limitado aos eventos recentes e reiniciado junto com o processo. URLs de webhook podem aparecer no diagnóstico; trate a resposta como informação operacional sensível.

                                                                                                                                                                        Parâmetros

                                                                                                                                                                        Esta rota não recebe parâmetros.

                                                                                                                                                                        Respostas

                                                                                                                                                                        • 200Estado observado da sincronização mais recente, ou diagnóstico sem rastreamento.
                                                                                                                                                                        • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                                                                                        • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                        • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                        • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                        • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                        • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                        • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                        • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                        Erros possíveis 15

                                                                                                                                                                          Requisição

                                                                                                                                                                          curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/instance/history-sync/status' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                                                                                                                                          Resposta

                                                                                                                                                                          200 JSON
                                                                                                                                                                          {
                                                                                                                                                                            "success": true,
                                                                                                                                                                            "data": {
                                                                                                                                                                              "pairedAt": null,
                                                                                                                                                                              "diagnosis": [
                                                                                                                                                                                "no_trace"
                                                                                                                                                                              ]
                                                                                                                                                                            }
                                                                                                                                                                          }

                                                                                                                                                                          Referência 9

                                                                                                                                                                          Gerenciar dispositivos

                                                                                                                                                                          Crie, liste, conecte e apague dispositivos com a chave da conta.

                                                                                                                                                                          Listar dispositivos da conta

                                                                                                                                                                          GET /devices
                                                                                                                                                                          • Chave da conta
                                                                                                                                                                          • Não conta mensagem
                                                                                                                                                                          • Limite por conta

                                                                                                                                                                          Lista os dispositivos da sua conta, na ordem de criação.

                                                                                                                                                                          Ver mais detalhes

                                                                                                                                                                          A resposta é uma lista simples (sem o envelope success/data). Cada item traz:

                                                                                                                                                                          • name: nome do dispositivo;
                                                                                                                                                                          • token: o token do dispositivo, para usar no header token das outras rotas. Só vem quando a chamada usa a chave da conta (Authorization: Bearer); pela sessão do painel, a lista vem sem token;
                                                                                                                                                                          • id: id público do dispositivo, aceito no lugar do nome nas rotas /devices/{id};
                                                                                                                                                                          • status: active, ou suspended quando a conta tem mais dispositivos do que o plano permite (os mais recentes ficam suspensos);
                                                                                                                                                                          • created_at: data de criação em UTC (ISO 8601), ou null quando não há data gravada;
                                                                                                                                                                          • has_legacy: true quando o dispositivo ainda aceita também o token antigo, além do atual. Deixa de valer quando você gera um token novo em POST /devices/{id}/token/rotate.

                                                                                                                                                                          Autentique com a chave da conta: Authorization: Bearer SUA_CHAVE_DA_CONTA (a chave fica no painel, no cartão Chave da API).

                                                                                                                                                                          Parâmetros

                                                                                                                                                                          Esta rota não recebe parâmetros.

                                                                                                                                                                          Respostas

                                                                                                                                                                          • 200Lista de dispositivos (lista simples, sem envelope).
                                                                                                                                                                          • 401Chave da conta ausente ou inválida (TOKEN_MISSING, API_KEY_INVALID).
                                                                                                                                                                          • 429Limite de 60 chamadas por minuto da API de gerenciamento, ou muitas tentativas com chave inválida vindas do mesmo IP (RATE_LIMITED). Aguarde o tempo de Retry-After.
                                                                                                                                                                          Erros possíveis 3

                                                                                                                                                                            Requisição

                                                                                                                                                                            curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/devices' \  --header 'Authorization: Bearer SUA_CHAVE_DA_CONTA' \  --header 'Accept: application/json'

                                                                                                                                                                            Resposta

                                                                                                                                                                            200 JSON
                                                                                                                                                                            [
                                                                                                                                                                              {
                                                                                                                                                                                "name": "loja-centro",
                                                                                                                                                                                "token": "dwa_8fK2mQ9xLp3vT7rN1cZ5wB4yH6jD0sA2eG8uI3oP5kR",
                                                                                                                                                                                "id": "k3m9x2p7q4w8z1t6",
                                                                                                                                                                                "status": "active",
                                                                                                                                                                                "created_at": "2026-10-20T12:00:00Z",
                                                                                                                                                                                "has_legacy": false
                                                                                                                                                                              },
                                                                                                                                                                              {
                                                                                                                                                                                "name": "loja-sul",
                                                                                                                                                                                "token": "dwa_Pq7Rs2Tu9Vw4Xy6Za1Bc3De5Fg8Hi0Jk2Lm4No6Pq8",
                                                                                                                                                                                "id": "p2n8v5c1x7z3b9m4",
                                                                                                                                                                                "status": "suspended",
                                                                                                                                                                                "created_at": "2026-10-21T09:30:00Z",
                                                                                                                                                                                "has_legacy": false
                                                                                                                                                                              }
                                                                                                                                                                            ]

                                                                                                                                                                            Criar dispositivo

                                                                                                                                                                            POST /devices
                                                                                                                                                                            • Chave da conta
                                                                                                                                                                            • Não conta mensagem
                                                                                                                                                                            • Corpo até 64 KB
                                                                                                                                                                            • Limite por conta

                                                                                                                                                                            Cria um dispositivo na sua conta e devolve o token dele em device.token (guarde: é ele que vai no header token das outras rotas).

                                                                                                                                                                            Informe o nome em id ou em name: um dos dois é obrigatório e, se vierem os dois preenchidos, vale id. O nome tem até 64 caracteres e é normalizado: vira minúsculas e perde tudo que não for letra, número, - ou _ ("Loja Centro" vira "lojacentro"). Ele precisa ser único na conta.

                                                                                                                                                                            Ver mais detalhes

                                                                                                                                                                            O número de dispositivos é limitado pelo plano, mais os dispositivos extras comprados; os dispositivos suspensos também contam. Na resposta, devices traz os nomes de todos os dispositivos da conta, na ordem de criação.

                                                                                                                                                                            Depois de criar, conecte o número com GET /devices/{id}/qr (ou POST /instance/connect, com o token do dispositivo), ou pelo QR Code do painel.

                                                                                                                                                                            Corpo da requisição (JSON)

                                                                                                                                                                            Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                            • idtextoopcional

                                                                                                                                                                              Informe id ou name. Se vierem os dois preenchidos, vale id. Se o nome ficar vazio depois da normalização, a resposta é 422.

                                                                                                                                                                              Nome do dispositivo, até 64 caracteres. É normalizado: minúsculas, só letras, números, - e _.

                                                                                                                                                                              Limites
                                                                                                                                                                              até 64 caracteres
                                                                                                                                                                              Exemplo
                                                                                                                                                                              loja-centro
                                                                                                                                                                            • nametextoopcional

                                                                                                                                                                              Usado quando id não vem ou vem vazio.

                                                                                                                                                                              Mesmo que id (formato antigo).

                                                                                                                                                                              Limites
                                                                                                                                                                              até 64 caracteres

                                                                                                                                                                            Respostas

                                                                                                                                                                            • 200Dispositivo criado.
                                                                                                                                                                            • 400O corpo não é um JSON válido (INVALID_JSON).
                                                                                                                                                                            • 401Chave da conta ausente ou inválida (TOKEN_MISSING, API_KEY_INVALID).
                                                                                                                                                                            • 403Plano sem WhatsApp ou vencido, teste grátis encerrado ou limite de dispositivos atingido (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_LIMIT).
                                                                                                                                                                            • 409Conflito (CONFLICT): já existe um dispositivo com esse nome na conta, outra criação de dispositivo da conta está em andamento ou não foi possível gravar o dispositivo. Confira o nome ou tente de novo em instantes.
                                                                                                                                                                            • 413Corpo acima de 64 KB (PAYLOAD_TOO_LARGE).
                                                                                                                                                                            • 422Nome ausente, acima de 64 caracteres ou vazio depois da normalização (VALIDATION).
                                                                                                                                                                            • 429Limite de 60 chamadas por minuto da API de gerenciamento, ou muitas tentativas com chave inválida vindas do mesmo IP (RATE_LIMITED). Aguarde o tempo de Retry-After.
                                                                                                                                                                            • 502Não foi possível criar o dispositivo no serviço de WhatsApp agora (PROVIDER_ERROR). Tente de novo em instantes.
                                                                                                                                                                            Erros possíveis 11

                                                                                                                                                                              Requisição

                                                                                                                                                                              curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/devices' \  --header 'Authorization: Bearer SUA_CHAVE_DA_CONTA' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "id": "loja-centro"}'

                                                                                                                                                                              Resposta

                                                                                                                                                                              200 JSON
                                                                                                                                                                              {
                                                                                                                                                                                "success": true,
                                                                                                                                                                                "devices": [
                                                                                                                                                                                  "loja-centro"
                                                                                                                                                                                ],
                                                                                                                                                                                "device": {
                                                                                                                                                                                  "id": "k3m9x2p7q4w8z1t6",
                                                                                                                                                                                  "name": "loja-centro",
                                                                                                                                                                                  "token": "dwa_8fK2mQ9xLp3vT7rN1cZ5wB4yH6jD0sA2eG8uI3oP5kR"
                                                                                                                                                                                }
                                                                                                                                                                              }

                                                                                                                                                                              Apagar dispositivo

                                                                                                                                                                              DEL /devices/{id}
                                                                                                                                                                              • Chave da conta
                                                                                                                                                                              • Não conta mensagem
                                                                                                                                                                              • Corpo até 64 KB
                                                                                                                                                                              • Limite por conta

                                                                                                                                                                              Apaga o dispositivo da conta: desconecta o número do WhatsApp e remove junto os grupos sincronizados, os webhooks, a fila de entregas de webhook e os erros de webhook. As mensagens já contadas continuam na estatística da conta. Não pode ser desfeito, e o token do dispositivo deixa de valer na hora.

                                                                                                                                                                              Funciona mesmo sem plano ativo. Se o serviço de WhatsApp não confirmar a exclusão, o dispositivo não é apagado (para não deixar o número conectado por lá): tente de novo. Se o número já não existia no serviço de WhatsApp, a exclusão na conta segue normalmente.

                                                                                                                                                                              Parâmetros no caminho

                                                                                                                                                                              Troque o trecho entre chaves no caminho pelo valor.

                                                                                                                                                                              • idtextoobrigatório

                                                                                                                                                                                Nome ou id público (id de GET /devices) do dispositivo.

                                                                                                                                                                                Exemplo
                                                                                                                                                                                loja-centro

                                                                                                                                                                              Respostas

                                                                                                                                                                              • 200Dispositivo apagado.
                                                                                                                                                                              • 400O serviço de WhatsApp recusou a exclusão (WHATSAPP_REJECTED); a mensagem em error explica o motivo.
                                                                                                                                                                              • 401Chave da conta ausente ou inválida (TOKEN_MISSING, API_KEY_INVALID).
                                                                                                                                                                              • 403O serviço de WhatsApp não permitiu a exclusão (WHATSAPP_FORBIDDEN).
                                                                                                                                                                              • 404Dispositivo não encontrado na sua conta (DEVICE_NOT_FOUND).
                                                                                                                                                                              • 409O serviço de WhatsApp informou um conflito com o estado atual (WHATSAPP_CONFLICT). Tente de novo em instantes.
                                                                                                                                                                              • 429Limite de 60 chamadas por minuto da API de gerenciamento ou muitas tentativas com chave inválida (RATE_LIMITED), ou serviço de WhatsApp ocupado (PROVIDER_BUSY). Aguarde o tempo de Retry-After.
                                                                                                                                                                              • 502Falha temporária do serviço de WhatsApp (PROVIDER_ERROR); o dispositivo não foi apagado. Tente de novo em instantes.
                                                                                                                                                                              • 504O serviço de WhatsApp demorou para responder (PROVIDER_TIMEOUT); o dispositivo não foi apagado. Tente de novo.
                                                                                                                                                                              Erros possíveis 10

                                                                                                                                                                                Requisição

                                                                                                                                                                                curl --request DELETE \  --url 'https://dropestore.com/wp-json/wdm/v1/devices/loja-centro' \  --header 'Authorization: Bearer SUA_CHAVE_DA_CONTA' \  --header 'Accept: application/json'

                                                                                                                                                                                Resposta

                                                                                                                                                                                200 JSON
                                                                                                                                                                                {
                                                                                                                                                                                  "success": true
                                                                                                                                                                                }

                                                                                                                                                                                Iniciar conexão e gerar QR Code

                                                                                                                                                                                GET /devices/{id}/qr
                                                                                                                                                                                • Chave da conta
                                                                                                                                                                                • Não conta mensagem
                                                                                                                                                                                • Limite por conta

                                                                                                                                                                                Inicia a conexão do dispositivo com o WhatsApp e devolve o QR Code em data.instance.qrcode (imagem em base64), para ler no celular. Com phone, devolve também um código de pareamento em data.instance.paircode, para digitar no celular desse número.

                                                                                                                                                                                Apesar de ser GET, esta rota começa o pareamento: chame uma vez. Durante o pareamento, chamar de novo responde 409 WHATSAPP_CONFLICT. Para acompanhar, consulte GET /devices/{id}/status: enquanto status for connecting, o QR Code atualizado vem em raw.instance.qrcode; quando status virar connected, o número está conectado.

                                                                                                                                                                                Exige plano ativo e dispositivo não suspenso, ao contrário das outras rotas de gerenciamento.

                                                                                                                                                                                Parâmetros no caminho

                                                                                                                                                                                Troque o trecho entre chaves no caminho pelo valor.

                                                                                                                                                                                • idtextoobrigatório

                                                                                                                                                                                  Nome ou id público (id de GET /devices) do dispositivo.

                                                                                                                                                                                  Exemplo
                                                                                                                                                                                  loja-centro

                                                                                                                                                                                Parâmetros na URL

                                                                                                                                                                                Vão depois do ? no endereço, como nome=valor.

                                                                                                                                                                                • phonetextoopcional

                                                                                                                                                                                  Opcional. De 10 a 15 dígitos; o que não for dígito é ignorado. Fora disso, a resposta é 422.

                                                                                                                                                                                  Número com DDI, só dígitos (ex.: 5511999999999). Com ele, a resposta traz também o código de pareamento.

                                                                                                                                                                                  Exemplo
                                                                                                                                                                                  5511999999999

                                                                                                                                                                                Respostas

                                                                                                                                                                                • 200Conexão iniciada; QR Code em data.instance.qrcode.
                                                                                                                                                                                • 400O serviço de WhatsApp recusou o pedido (WHATSAPP_REJECTED); a mensagem em error explica o motivo.
                                                                                                                                                                                • 401Chave da conta ausente ou inválida (TOKEN_MISSING, API_KEY_INVALID).
                                                                                                                                                                                • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                • 404Dispositivo não encontrado na sua conta (DEVICE_NOT_FOUND).
                                                                                                                                                                                • 409Já existe um pareamento em andamento (WHATSAPP_CONFLICT). Acompanhe por GET /devices/{id}/status em vez de chamar de novo.
                                                                                                                                                                                • 422phone fora do formato: precisa ter de 10 a 15 dígitos (VALIDATION).
                                                                                                                                                                                • 429Limite de 60 chamadas por minuto da API de gerenciamento (RATE_LIMITED), ou limite de conexões simultâneas do serviço de WhatsApp (PROVIDER_BUSY). Aguarde o tempo de Retry-After.
                                                                                                                                                                                • 502Falha temporária ou capacidade de conexão indisponível no serviço de WhatsApp (PROVIDER_ERROR). Tente de novo em instantes.
                                                                                                                                                                                • 504O serviço de WhatsApp demorou para responder (PROVIDER_TIMEOUT). Tente de novo.
                                                                                                                                                                                Erros possíveis 13

                                                                                                                                                                                  Requisição

                                                                                                                                                                                  curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/devices/loja-centro/qr' \  --header 'Authorization: Bearer SUA_CHAVE_DA_CONTA' \  --header 'Accept: application/json'

                                                                                                                                                                                  Resposta

                                                                                                                                                                                  200 JSON
                                                                                                                                                                                  {
                                                                                                                                                                                    "success": true,
                                                                                                                                                                                    "data": {
                                                                                                                                                                                      "connected": false,
                                                                                                                                                                                      "loggedIn": false,
                                                                                                                                                                                      "jid": null,
                                                                                                                                                                                      "instance": {
                                                                                                                                                                                        "id": "k3m9x2p7q4w8z1t6",
                                                                                                                                                                                        "name": "loja-centro",
                                                                                                                                                                                        "status": "connecting",
                                                                                                                                                                                        "qrcode": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAIAAADTED8xAAAA...",
                                                                                                                                                                                        "paircode": "",
                                                                                                                                                                                        "profileName": "",
                                                                                                                                                                                        "profilePicUrl": "",
                                                                                                                                                                                        "isBusiness": false,
                                                                                                                                                                                        "plataform": "",
                                                                                                                                                                                        "owner": "",
                                                                                                                                                                                        "lastDisconnect": "",
                                                                                                                                                                                        "lastDisconnectReason": "",
                                                                                                                                                                                        "created": "2026-10-20T12:00:00Z",
                                                                                                                                                                                        "updated": "2026-10-20T12:05:00Z"
                                                                                                                                                                                      }
                                                                                                                                                                                    }
                                                                                                                                                                                  }

                                                                                                                                                                                  Desconectar dispositivo

                                                                                                                                                                                  POST /devices/{id}/logout
                                                                                                                                                                                  • Chave da conta
                                                                                                                                                                                  • Não conta mensagem
                                                                                                                                                                                  • Corpo até 64 KB
                                                                                                                                                                                  • Limite por conta

                                                                                                                                                                                  Desconecta o número do WhatsApp e encerra a sessão. O dispositivo continua na conta, com o mesmo token; para conectar de novo, é preciso ler um QR Code novo (GET /devices/{id}/qr). Funciona mesmo sem plano ativo.

                                                                                                                                                                                  Parâmetros no caminho

                                                                                                                                                                                  Troque o trecho entre chaves no caminho pelo valor.

                                                                                                                                                                                  • idtextoobrigatório

                                                                                                                                                                                    Nome ou id público (id de GET /devices) do dispositivo.

                                                                                                                                                                                    Exemplo
                                                                                                                                                                                    loja-centro

                                                                                                                                                                                  Respostas

                                                                                                                                                                                  • 200Desconectado.
                                                                                                                                                                                  • 400O serviço de WhatsApp recusou o pedido (WHATSAPP_REJECTED); a mensagem em error explica o motivo.
                                                                                                                                                                                  • 401Chave da conta ausente ou inválida (TOKEN_MISSING, API_KEY_INVALID).
                                                                                                                                                                                  • 404Dispositivo não encontrado na sua conta (DEVICE_NOT_FOUND).
                                                                                                                                                                                  • 409O número já não está conectado ao WhatsApp (DEVICE_DISCONNECTED).
                                                                                                                                                                                  • 429Limite de 60 chamadas por minuto da API de gerenciamento (RATE_LIMITED), ou serviço de WhatsApp ocupado (PROVIDER_BUSY). Aguarde o tempo de Retry-After.
                                                                                                                                                                                  • 502Falha temporária do serviço de WhatsApp (PROVIDER_ERROR). Tente de novo em instantes.
                                                                                                                                                                                  • 504O serviço de WhatsApp demorou para responder (PROVIDER_TIMEOUT). Tente de novo.
                                                                                                                                                                                  Erros possíveis 9

                                                                                                                                                                                    Requisição

                                                                                                                                                                                    curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/devices/loja-centro/logout' \  --header 'Authorization: Bearer SUA_CHAVE_DA_CONTA' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json'

                                                                                                                                                                                    Resposta

                                                                                                                                                                                    200 JSON
                                                                                                                                                                                    {
                                                                                                                                                                                      "success": true
                                                                                                                                                                                    }

                                                                                                                                                                                    Status da conexão do dispositivo

                                                                                                                                                                                    GET /devices/{id}/status
                                                                                                                                                                                    • Chave da conta
                                                                                                                                                                                    • Não conta mensagem
                                                                                                                                                                                    • Limite por conta

                                                                                                                                                                                    Estado da conexão do dispositivo com o WhatsApp, em status:

                                                                                                                                                                                    • connected: conectado e autenticado;
                                                                                                                                                                                    • connecting: pareamento em andamento, aguardando a leitura do QR Code ou o código de pareamento;
                                                                                                                                                                                    • disconnected: desconectado;
                                                                                                                                                                                    • hibernated: sessão pausada, com as credenciais guardadas para reconectar;
                                                                                                                                                                                    • unknown: o estado não veio na resposta.
                                                                                                                                                                                    Ver mais detalhes

                                                                                                                                                                                    Os detalhes vêm em raw: raw.instance (nome, perfil, se é conta Business, última desconexão e o motivo) e raw.status (connected, loggedIn e jid). Durante o pareamento, o QR Code atualizado vem em raw.instance.qrcode (e o código de pareamento em raw.instance.paircode, quando pedido): é assim que se acompanha a conexão, sem chamar GET /devices/{id}/qr de novo. Tokens e campos internos são removidos de raw.

                                                                                                                                                                                    Funciona mesmo sem plano ativo.

                                                                                                                                                                                    Parâmetros no caminho

                                                                                                                                                                                    Troque o trecho entre chaves no caminho pelo valor.

                                                                                                                                                                                    • idtextoobrigatório

                                                                                                                                                                                      Nome ou id público (id de GET /devices) do dispositivo.

                                                                                                                                                                                      Exemplo
                                                                                                                                                                                      loja-centro

                                                                                                                                                                                    Respostas

                                                                                                                                                                                    • 200Status do dispositivo.
                                                                                                                                                                                    • 401Chave da conta ausente ou inválida (TOKEN_MISSING, API_KEY_INVALID).
                                                                                                                                                                                    • 404Dispositivo não encontrado na sua conta (DEVICE_NOT_FOUND).
                                                                                                                                                                                    • 429Limite de 60 chamadas por minuto da API de gerenciamento (RATE_LIMITED), ou serviço de WhatsApp ocupado (PROVIDER_BUSY). Aguarde o tempo de Retry-After.
                                                                                                                                                                                    • 502Falha temporária do serviço de WhatsApp (PROVIDER_ERROR). Tente de novo em instantes.
                                                                                                                                                                                    • 504O serviço de WhatsApp demorou para responder (PROVIDER_TIMEOUT). Tente de novo.
                                                                                                                                                                                    Erros possíveis 7

                                                                                                                                                                                      Requisição

                                                                                                                                                                                      curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/devices/loja-centro/status' \  --header 'Authorization: Bearer SUA_CHAVE_DA_CONTA' \  --header 'Accept: application/json'

                                                                                                                                                                                      Resposta

                                                                                                                                                                                      200 JSON
                                                                                                                                                                                      {
                                                                                                                                                                                        "success": true,
                                                                                                                                                                                        "status": "connected",
                                                                                                                                                                                        "raw": {
                                                                                                                                                                                          "instance": {
                                                                                                                                                                                            "id": "k3m9x2p7q4w8z1t6",
                                                                                                                                                                                            "name": "loja-centro",
                                                                                                                                                                                            "status": "connected",
                                                                                                                                                                                            "qrcode": "",
                                                                                                                                                                                            "paircode": "",
                                                                                                                                                                                            "profileName": "Loja Centro",
                                                                                                                                                                                            "profilePicUrl": "",
                                                                                                                                                                                            "isBusiness": true,
                                                                                                                                                                                            "plataform": "android",
                                                                                                                                                                                            "owner": "5511999999999",
                                                                                                                                                                                            "lastDisconnect": "",
                                                                                                                                                                                            "lastDisconnectReason": "",
                                                                                                                                                                                            "created": "2026-10-20T12:00:00Z",
                                                                                                                                                                                            "updated": "2026-10-20T12:05:00Z"
                                                                                                                                                                                          },
                                                                                                                                                                                          "status": {
                                                                                                                                                                                            "connected": true,
                                                                                                                                                                                            "loggedIn": true,
                                                                                                                                                                                            "jid": {
                                                                                                                                                                                              "user": "5511999999999",
                                                                                                                                                                                              "agent": 0,
                                                                                                                                                                                              "device": 12,
                                                                                                                                                                                              "server": "s.whatsapp.net"
                                                                                                                                                                                            }
                                                                                                                                                                                          }
                                                                                                                                                                                        }
                                                                                                                                                                                      }

                                                                                                                                                                                      Mensagens do dispositivo no mês

                                                                                                                                                                                      GET /devices/{id}/stats
                                                                                                                                                                                      • Chave da conta
                                                                                                                                                                                      • Não conta mensagem
                                                                                                                                                                                      • Limite por conta

                                                                                                                                                                                      Total de mensagens enviadas pelo dispositivo no mês atual e a data e hora do último envio.

                                                                                                                                                                                      O mês e last_message_at seguem o fuso do site, America/Sao_Paulo (horário de Brasília); a resposta informa o mês em stats.month (AAAA-MM) e o fuso em stats.timezone. last_message_at vem no formato AAAA-MM-DD HH:MM:SS, ou null quando não houve envio no mês. Contam as chamadas bem-sucedidas das rotas de envio (/send/*, 1 cada) e as mensagens enfileiradas pelas campanhas (1 por destinatário). device traz o nome do dispositivo.

                                                                                                                                                                                      Funciona mesmo sem plano ativo.

                                                                                                                                                                                      Parâmetros no caminho

                                                                                                                                                                                      Troque o trecho entre chaves no caminho pelo valor.

                                                                                                                                                                                      • idtextoobrigatório

                                                                                                                                                                                        Nome ou id público (id de GET /devices) do dispositivo.

                                                                                                                                                                                        Exemplo
                                                                                                                                                                                        loja-centro

                                                                                                                                                                                      Respostas

                                                                                                                                                                                      • 200Estatística do mês.
                                                                                                                                                                                      • 401Chave da conta ausente ou inválida (TOKEN_MISSING, API_KEY_INVALID).
                                                                                                                                                                                      • 404Dispositivo não encontrado na sua conta (DEVICE_NOT_FOUND).
                                                                                                                                                                                      • 429Limite de 60 chamadas por minuto da API de gerenciamento, ou muitas tentativas com chave inválida vindas do mesmo IP (RATE_LIMITED). Aguarde o tempo de Retry-After.
                                                                                                                                                                                      Erros possíveis 4

                                                                                                                                                                                        Requisição

                                                                                                                                                                                        curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/devices/loja-centro/stats' \  --header 'Authorization: Bearer SUA_CHAVE_DA_CONTA' \  --header 'Accept: application/json'

                                                                                                                                                                                        Resposta

                                                                                                                                                                                        200 JSON
                                                                                                                                                                                        {
                                                                                                                                                                                          "success": true,
                                                                                                                                                                                          "device": "loja-centro",
                                                                                                                                                                                          "stats": {
                                                                                                                                                                                            "total_messages": 128,
                                                                                                                                                                                            "last_message_at": "2026-10-20 15:00:00",
                                                                                                                                                                                            "month": "2026-10",
                                                                                                                                                                                            "timezone": "America/Sao_Paulo"
                                                                                                                                                                                          }
                                                                                                                                                                                        }

                                                                                                                                                                                        Gerar novo token do dispositivo

                                                                                                                                                                                        POST /devices/{id}/token/rotate
                                                                                                                                                                                        • Chave da conta
                                                                                                                                                                                        • Não conta mensagem
                                                                                                                                                                                        • Corpo até 64 KB
                                                                                                                                                                                        • Limite por conta

                                                                                                                                                                                        Gera um token novo para o dispositivo e devolve em token. O token anterior para de funcionar na hora, e o token antigo também (o que has_legacy indica em GET /devices): atualize suas integrações logo em seguida.

                                                                                                                                                                                        A conexão com o WhatsApp não cai; só muda o token de acesso à API. Não recebe corpo e funciona mesmo sem plano ativo.

                                                                                                                                                                                        Parâmetros no caminho

                                                                                                                                                                                        Troque o trecho entre chaves no caminho pelo valor.

                                                                                                                                                                                        • idtextoobrigatório

                                                                                                                                                                                          Nome ou id público (id de GET /devices) do dispositivo.

                                                                                                                                                                                          Exemplo
                                                                                                                                                                                          loja-centro

                                                                                                                                                                                        Respostas

                                                                                                                                                                                        • 200Novo token gerado.
                                                                                                                                                                                        • 401Chave da conta ausente ou inválida (TOKEN_MISSING, API_KEY_INVALID).
                                                                                                                                                                                        • 404Dispositivo não encontrado na sua conta (DEVICE_NOT_FOUND).
                                                                                                                                                                                        • 429Limite de 60 chamadas por minuto da API de gerenciamento, ou muitas tentativas com chave inválida vindas do mesmo IP (RATE_LIMITED). Aguarde o tempo de Retry-After.
                                                                                                                                                                                        Erros possíveis 4

                                                                                                                                                                                          Requisição

                                                                                                                                                                                          curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/devices/loja-centro/token/rotate' \  --header 'Authorization: Bearer SUA_CHAVE_DA_CONTA' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json'

                                                                                                                                                                                          Resposta

                                                                                                                                                                                          200 JSON
                                                                                                                                                                                          {
                                                                                                                                                                                            "success": true,
                                                                                                                                                                                            "token": "dwa_Q1w2E3r4T5y6U7i8O9p0A1s2D3f4G5h6J7k8L9z0X1c"
                                                                                                                                                                                          }

                                                                                                                                                                                          Gerar nova chave da conta (painel)

                                                                                                                                                                                          POST /token/refresh
                                                                                                                                                                                          • Sessão do painel
                                                                                                                                                                                          • Não conta mensagem
                                                                                                                                                                                          • Corpo até 64 KB
                                                                                                                                                                                          • Limite por conta

                                                                                                                                                                                          Gera uma chave da conta nova e devolve em token. A chave anterior para de funcionar na hora: atualize as integrações que usam as rotas de gerenciamento (/devices). Os tokens dos dispositivos não mudam.

                                                                                                                                                                                          Só funciona pelo painel, com a sessão de quem está logado (cookie e o cabeçalho X-WP-Nonce); a chave da conta em Authorization: Bearer não é aceita aqui. No painel, é o botão de gerar nova chave no cartão Chave da API.

                                                                                                                                                                                          Parâmetros

                                                                                                                                                                                          Esta rota não recebe parâmetros.

                                                                                                                                                                                          Respostas

                                                                                                                                                                                          • 200Nova chave gerada, em token.
                                                                                                                                                                                          • 401Sem sessão do painel (SESSION_REQUIRED): entre na sua conta e envie o nonce da sessão.
                                                                                                                                                                                          • 429Limite de 60 chamadas por minuto da API de gerenciamento (RATE_LIMITED). Aguarde o tempo de Retry-After.
                                                                                                                                                                                          Erros possíveis 2

                                                                                                                                                                                            Requisição

                                                                                                                                                                                            Feita pelo painel. Esta ação usa a sessão de quem está logado na conta, não um token: use o painel de instâncias, no cartão Chave da API.

                                                                                                                                                                                            Resposta

                                                                                                                                                                                            200 JSON
                                                                                                                                                                                            {
                                                                                                                                                                                              "success": true,
                                                                                                                                                                                              "token": "dwk_Z9y8X7w6V5u4T3s2R1q0P9o8N7m6L5k4J3i2H1g0F9e"
                                                                                                                                                                                            }

                                                                                                                                                                                            Referência 4

                                                                                                                                                                                            Etiquetas

                                                                                                                                                                                            Crie etiquetas e aplique nas conversas.

                                                                                                                                                                                            Aplicar etiquetas a uma conversa

                                                                                                                                                                                            POST /chat/labels
                                                                                                                                                                                            • Token do dispositivo
                                                                                                                                                                                            • Não conta mensagem
                                                                                                                                                                                            • Corpo até 1 MB

                                                                                                                                                                                            Atualiza as etiquetas de uma conversa. Há três modos, e cada requisição usa exatamente um:

                                                                                                                                                                                            1. Definir todas (labelids): define o conjunto completo de etiquetas da conversa, substituindo as que já existem.
                                                                                                                                                                                            2. Adicionar uma (add_labelid): adiciona uma etiqueta sem mexer nas outras.
                                                                                                                                                                                            3. Remover uma (remove_labelid): remove uma etiqueta sem mexer nas outras.
                                                                                                                                                                                            Ver mais detalhes

                                                                                                                                                                                            Enviar nenhum desses campos, ou mais de um, volta 422 (VALIDATION). Etiquetas inexistentes são recusadas.

                                                                                                                                                                                            Use os IDs devolvidos em GET /labels. Se a conversa não existir, a API volta 404 (WHATSAPP_NOT_FOUND). No modo labelids, a resposta lista em editions cada mudança feita.

                                                                                                                                                                                            Corpo da requisição (JSON)

                                                                                                                                                                                            Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                            • numbertextoobrigatório

                                                                                                                                                                                              Número do contato ou JID do grupo da conversa.

                                                                                                                                                                                              Exemplo
                                                                                                                                                                                              5511999999999
                                                                                                                                                                                            • labelidslista de textosopcional

                                                                                                                                                                                              Exatamente um entre labelids, add_labelid e remove_labelid.

                                                                                                                                                                                              IDs que passam a ser todas as etiquetas da conversa (substitui as atuais).

                                                                                                                                                                                            • add_labelidtextoopcional

                                                                                                                                                                                              Exatamente um entre labelids, add_labelid e remove_labelid.

                                                                                                                                                                                              ID da etiqueta a adicionar.

                                                                                                                                                                                              Exemplo
                                                                                                                                                                                              10
                                                                                                                                                                                            • remove_labelidtextoopcional

                                                                                                                                                                                              Exatamente um entre labelids, add_labelid e remove_labelid.

                                                                                                                                                                                              ID da etiqueta a remover.

                                                                                                                                                                                              Exemplo
                                                                                                                                                                                              20

                                                                                                                                                                                            Regras

                                                                                                                                                                                            • Informe exatamente um entre labelids, add_labelid e remove_labelid.

                                                                                                                                                                                            Respostas

                                                                                                                                                                                            • 200Etiquetas da conversa atualizadas com sucesso.
                                                                                                                                                                                            • 400Erro na requisição
                                                                                                                                                                                            • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                            • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                            • 404Conversa não encontrada (WHATSAPP_NOT_FOUND).
                                                                                                                                                                                            • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                            • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                            • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                            • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                            • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                            Erros possíveis 16

                                                                                                                                                                                              Requisição

                                                                                                                                                                                              curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/chat/labels' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999",  "add_labelid": "10"}'

                                                                                                                                                                                              Resposta

                                                                                                                                                                                              200 JSON
                                                                                                                                                                                              {
                                                                                                                                                                                                "success": true,
                                                                                                                                                                                                "data": {
                                                                                                                                                                                                  "response": "Labels updated successfully",
                                                                                                                                                                                                  "editions": [
                                                                                                                                                                                                    "Added label 10 to chat",
                                                                                                                                                                                                    "Added label 20 to chat",
                                                                                                                                                                                                    "Removed label 5 from chat"
                                                                                                                                                                                                  ]
                                                                                                                                                                                                }
                                                                                                                                                                                              }

                                                                                                                                                                                              Criar, editar ou apagar etiqueta

                                                                                                                                                                                              POST /label/edit
                                                                                                                                                                                              • Token do dispositivo
                                                                                                                                                                                              • Não conta mensagem
                                                                                                                                                                                              • Corpo até 1 MB

                                                                                                                                                                                              Cria, edita ou apaga uma etiqueta do dispositivo.

                                                                                                                                                                                              Como usar:

                                                                                                                                                                                              • Criar: envie labelid: "new" com delete: false. A API gera o próximo labelid numérico disponível no dispositivo.
                                                                                                                                                                                              • Editar: envie o labelid real da etiqueta, com o novo name e a nova color.
                                                                                                                                                                                              • Apagar: envie o labelid real com delete: true.
                                                                                                                                                                                              Ver mais detalhes

                                                                                                                                                                                              Observações:

                                                                                                                                                                                              • A resposta de sucesso traz "Label created" ao criar e "Label edited" ao editar.
                                                                                                                                                                                              • Para descobrir o labelid da etiqueta criada, consulte GET /labels depois da operação ou acompanhe o evento labels do webhook.

                                                                                                                                                                                              Corpo da requisição (JSON)

                                                                                                                                                                                              Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                              • labelidtextoobrigatório

                                                                                                                                                                                                Criar: new com delete: false. Editar: ID real. Apagar: ID real com delete: true.

                                                                                                                                                                                                ID da etiqueta, ou "new" para criar.

                                                                                                                                                                                                Exemplo
                                                                                                                                                                                                25
                                                                                                                                                                                              • nametextoopcional

                                                                                                                                                                                                Usado ao criar e ao editar.

                                                                                                                                                                                                Nome da etiqueta.

                                                                                                                                                                                                Exemplo
                                                                                                                                                                                                Responder hoje
                                                                                                                                                                                              • colorinteiroopcional

                                                                                                                                                                                                Código da cor, de 0 a 19.

                                                                                                                                                                                                Limites
                                                                                                                                                                                                de 0 a 19
                                                                                                                                                                                                Exemplo
                                                                                                                                                                                                2
                                                                                                                                                                                              • deletebooleanoopcional

                                                                                                                                                                                                true apaga a etiqueta indicada em labelid; não combine com labelid: "new".

                                                                                                                                                                                                Apagar a etiqueta.

                                                                                                                                                                                                Exemplo
                                                                                                                                                                                                false

                                                                                                                                                                                              Respostas

                                                                                                                                                                                              • 200Operação concluída com sucesso
                                                                                                                                                                                              • 400Corpo inválido.
                                                                                                                                                                                              • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                              • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                              • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                              • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                              • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                              • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                              • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                              Erros possíveis 15

                                                                                                                                                                                                Requisição

                                                                                                                                                                                                curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/label/edit' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "labelid": "new",  "name": "Responder hoje",  "color": 2,  "delete": false}'

                                                                                                                                                                                                Resposta

                                                                                                                                                                                                200 JSON
                                                                                                                                                                                                {
                                                                                                                                                                                                  "success": true,
                                                                                                                                                                                                  "data": {
                                                                                                                                                                                                    "response": "Label created"
                                                                                                                                                                                                  }
                                                                                                                                                                                                }

                                                                                                                                                                                                Listar etiquetas

                                                                                                                                                                                                GET /labels
                                                                                                                                                                                                • Token do dispositivo
                                                                                                                                                                                                • Não conta mensagem

                                                                                                                                                                                                Lista as etiquetas do dispositivo, usadas para organizar conversas e filtros. Use os IDs devolvidos em POST /chat/labels e POST /label/edit.

                                                                                                                                                                                                Parâmetros

                                                                                                                                                                                                Esta rota não recebe parâmetros.

                                                                                                                                                                                                Respostas

                                                                                                                                                                                                • 200Lista de etiquetas retornada com sucesso
                                                                                                                                                                                                • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                                                                                                                • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                Erros possíveis 15

                                                                                                                                                                                                  Requisição

                                                                                                                                                                                                  curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/labels' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                                                                                                                                                                  Resposta

                                                                                                                                                                                                  200 JSON
                                                                                                                                                                                                  {
                                                                                                                                                                                                    "success": true,
                                                                                                                                                                                                    "data": [
                                                                                                                                                                                                      {
                                                                                                                                                                                                        "id": "l121314mnop",
                                                                                                                                                                                                        "name": "Cliente VIP",
                                                                                                                                                                                                        "color": 2,
                                                                                                                                                                                                        "colorHex": "#fed428",
                                                                                                                                                                                                        "created": "2025-01-24T14:35:00.000Z",
                                                                                                                                                                                                        "updated": "2025-01-24T15:00:00.000Z"
                                                                                                                                                                                                      }
                                                                                                                                                                                                    ]
                                                                                                                                                                                                  }

                                                                                                                                                                                                  Recarregar etiquetas do WhatsApp

                                                                                                                                                                                                  POST /labels/refresh
                                                                                                                                                                                                  • Token do dispositivo
                                                                                                                                                                                                  • Não conta mensagem
                                                                                                                                                                                                  • Corpo até 1 MB

                                                                                                                                                                                                  Inicia uma nova leitura das etiquetas no WhatsApp, sem prender a requisição. A resposta volta 202 e só confirma que a recarga começou (status: "started") ou que já existe uma em andamento (status: "in_progress"). Para obter a lista atualizada, consulte GET /labels depois.

                                                                                                                                                                                                  A recarga também atualiza as ligações entre etiquetas e conversas. Quando houver mudança, o evento chat_labels do webhook pode trazer os dados atualizados.

                                                                                                                                                                                                  Ver mais detalhes

                                                                                                                                                                                                  A resposta traz um request_id, repetido nos eventos labels e chat_labels do webhook dessa recarga. Se já houver uma recarga em andamento, o request_id é o dela.

                                                                                                                                                                                                  Se a sincronização do histórico ainda estiver em andamento, a API volta 409 (WHATSAPP_CONFLICT); tente de novo em instantes.

                                                                                                                                                                                                  Uso recomendado:

                                                                                                                                                                                                  • tente primeiro com force: false;
                                                                                                                                                                                                  • se as etiquetas não vierem corretas, tente force: true;
                                                                                                                                                                                                  • use force: true só como tentativa de correção, porque ele faz uma recarga mais pesada.

                                                                                                                                                                                                  Corpo da requisição (JSON)

                                                                                                                                                                                                  Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                  • forcebooleanoopcional

                                                                                                                                                                                                    Tente primeiro com false; use true só como correção, porque a recarga é mais pesada. O corpo inteiro é opcional; sem ele, vale false.

                                                                                                                                                                                                    Recarga completa.

                                                                                                                                                                                                    Padrão
                                                                                                                                                                                                    false
                                                                                                                                                                                                    Exemplo
                                                                                                                                                                                                    false

                                                                                                                                                                                                  Respostas

                                                                                                                                                                                                  • 202Recarga de etiquetas aceita e iniciada em segundo plano.
                                                                                                                                                                                                  • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                                                                                                                  • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                  • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                  • 409A recarga não pôde ser executada porque a sincronização do histórico ainda está em andamento
                                                                                                                                                                                                  • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                  • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                  • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                  • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                  • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                  Erros possíveis 16

                                                                                                                                                                                                    Requisição

                                                                                                                                                                                                    curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/labels/refresh' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "force": false}'

                                                                                                                                                                                                    Resposta

                                                                                                                                                                                                    200 JSON
                                                                                                                                                                                                    {
                                                                                                                                                                                                      "success": true,
                                                                                                                                                                                                      "request_id": "3f1c9b52-8d4e-4a7b-9c61-2f0e5d7a1b84",
                                                                                                                                                                                                      "status": "started",
                                                                                                                                                                                                      "message": "Label refresh started. Use GET /labels to fetch the refreshed list.",
                                                                                                                                                                                                      "force": false,
                                                                                                                                                                                                      "fullSync": false
                                                                                                                                                                                                    }

                                                                                                                                                                                                    Referência 2

                                                                                                                                                                                                    Bloqueios

                                                                                                                                                                                                    Bloqueie e desbloqueie contatos.

                                                                                                                                                                                                    Bloquear ou desbloquear contato

                                                                                                                                                                                                    POST /chat/block
                                                                                                                                                                                                    • Token do dispositivo
                                                                                                                                                                                                    • Não conta mensagem
                                                                                                                                                                                                    • Corpo até 1 MB

                                                                                                                                                                                                    Bloqueia ou desbloqueia um contato do WhatsApp. Contatos bloqueados não enviam mensagens para o dispositivo, e o dispositivo não envia mensagens para eles.

                                                                                                                                                                                                    A resposta traz a lista atualizada de bloqueados em blockList; para consultá-la depois, use GET /chat/blocklist.

                                                                                                                                                                                                    Corpo da requisição (JSON)

                                                                                                                                                                                                    Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                    • numbertextoobrigatório

                                                                                                                                                                                                      Número do contato com DDI (ex.: 5511999999999).

                                                                                                                                                                                                      Exemplo
                                                                                                                                                                                                      5511999999999
                                                                                                                                                                                                    • blockbooleanoobrigatório

                                                                                                                                                                                                      True bloqueia, false desbloqueia.

                                                                                                                                                                                                      Bloquear ou desbloquear.

                                                                                                                                                                                                      Exemplo
                                                                                                                                                                                                      true

                                                                                                                                                                                                    Respostas

                                                                                                                                                                                                    • 200Operação realizada com sucesso
                                                                                                                                                                                                    • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                                                                                                                    • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                    • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                    • 404Contato não encontrado
                                                                                                                                                                                                    • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                    • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                    • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                    • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                    • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                    Erros possíveis 16

                                                                                                                                                                                                      Requisição

                                                                                                                                                                                                      curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/chat/block' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999",  "block": true}'

                                                                                                                                                                                                      Resposta

                                                                                                                                                                                                      200 JSON
                                                                                                                                                                                                      {
                                                                                                                                                                                                        "success": true,
                                                                                                                                                                                                        "data": {
                                                                                                                                                                                                          "response": "Blocked successfully",
                                                                                                                                                                                                          "blockList": [
                                                                                                                                                                                                            "5511999999999@s.whatsapp.net",
                                                                                                                                                                                                            "5511888888888@s.whatsapp.net"
                                                                                                                                                                                                          ]
                                                                                                                                                                                                        }
                                                                                                                                                                                                      }

                                                                                                                                                                                                      Listar contatos bloqueados

                                                                                                                                                                                                      GET /chat/blocklist
                                                                                                                                                                                                      • Token do dispositivo
                                                                                                                                                                                                      • Não conta mensagem

                                                                                                                                                                                                      Devolve a lista completa de contatos bloqueados pelo dispositivo, em blockList (JIDs no formato número@s.whatsapp.net). A lista acompanha na hora os bloqueios e desbloqueios.

                                                                                                                                                                                                      Parâmetros

                                                                                                                                                                                                      Esta rota não recebe parâmetros.

                                                                                                                                                                                                      Respostas

                                                                                                                                                                                                      • 200Lista de contatos bloqueados recuperada com sucesso
                                                                                                                                                                                                      • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                                                                                                                      • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                      • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                      • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                      • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                      • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                      • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                      • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                      Erros possíveis 15

                                                                                                                                                                                                        Requisição

                                                                                                                                                                                                        curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/chat/blocklist' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                                                                                                                                                                        Resposta

                                                                                                                                                                                                        200 JSON
                                                                                                                                                                                                        {
                                                                                                                                                                                                          "success": true,
                                                                                                                                                                                                          "data": {
                                                                                                                                                                                                            "blockList": [
                                                                                                                                                                                                              "5511999999999@s.whatsapp.net",
                                                                                                                                                                                                              "5511888888888@s.whatsapp.net"
                                                                                                                                                                                                            ]
                                                                                                                                                                                                          }
                                                                                                                                                                                                        }

                                                                                                                                                                                                        Referência 5

                                                                                                                                                                                                        CRM

                                                                                                                                                                                                        Dados de lead, campos personalizados e tags de atendimento.

                                                                                                                                                                                                        Sistema completo de gestão de relacionamento com clientes integrado à API.

                                                                                                                                                                                                        Armazenamento interno: Todos os dados dos leads ficam salvos diretamente na API, eliminando a necessidade de bancos de dados externos. Sua aplicação pode focar apenas na interface e lógica de negócio.

                                                                                                                                                                                                        Ler a introdução completa

                                                                                                                                                                                                        Recursos disponíveis:

                                                                                                                                                                                                        • 20+ campos personalizáveis: Nome, telefone, email, empresa, observações, etc.
                                                                                                                                                                                                        • Sistema de etiquetas: Organize e categorize seus contatos
                                                                                                                                                                                                        • Busca avançada: Filtre por qualquer campo ou etiqueta
                                                                                                                                                                                                        • Histórico completo: Todas as interações ficam registradas automaticamente

                                                                                                                                                                                                        Variáveis em mensagens:

                                                                                                                                                                                                        Use variáveis dinâmicas nas mensagens para personalização automática:

                                                                                                                                                                                                        Texto
                                                                                                                                                                                                        Olá {{first_name}}! Empresa: {{lead_field01}}.
                                                                                                                                                                                                        Seu email {{lead_email}} está correto?
                                                                                                                                                                                                        Observações: {{lead_notes}}

                                                                                                                                                                                                        Fluxo típico:

                                                                                                                                                                                                        1. Captura: Leads chegam via WhatsApp ou formulários
                                                                                                                                                                                                        2. Enriquecimento: Adicione dados usando /chat/editLead
                                                                                                                                                                                                        3. Segmentação: Organize com etiquetas
                                                                                                                                                                                                        4. Comunicação: Envie mensagens personalizadas com variáveis
                                                                                                                                                                                                        5. Acompanhamento: Histórico fica salvo automaticamente

                                                                                                                                                                                                        Ideal para: Vendas, marketing, atendimento, qualificação de leads

                                                                                                                                                                                                        Nomear campos personalizados de leads

                                                                                                                                                                                                        POST /instance/updateFieldsMap
                                                                                                                                                                                                        • Token do dispositivo
                                                                                                                                                                                                        • Não conta mensagem
                                                                                                                                                                                                        • Corpo até 1 MB

                                                                                                                                                                                                        Configura os rótulos dos 20 campos personalizados de leads do dispositivo (lead_field01 a lead_field20). A operação não altera os valores guardados nas conversas e não cria apelidos para variáveis.

                                                                                                                                                                                                        Envie o mapa completo. Campos omitidos são recebidos como vazios e podem substituir rótulos configurados antes. Os campos que você não usa podem ir como "".

                                                                                                                                                                                                        Ver mais detalhes

                                                                                                                                                                                                        Mesmo depois de definir um rótulo, as mensagens usam o nome original do campo: se lead_field01 for rotulado como empresa, o variável continua sendo {{lead_field01}}; {{empresa}} não é substituído.

                                                                                                                                                                                                        Use os rótulos para mostrar na sua interface o significado de cada campo. Os valores de cada lead são gravados pelas operações de CRM (POST /chat/editLead) no respectivo lead_fieldXX.

                                                                                                                                                                                                        Também atende pelo caminho antigo POST /crm/fields.

                                                                                                                                                                                                        Corpo da requisição (JSON)

                                                                                                                                                                                                        Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                        • lead_field01textoopcional

                                                                                                                                                                                                          Envie o mapa completo: campo omitido é recebido como vazio e pode apagar o rótulo configurado antes.

                                                                                                                                                                                                          Rótulo do campo personalizado 01 (até 255 caracteres).

                                                                                                                                                                                                          Limites
                                                                                                                                                                                                          até 255 caracteres
                                                                                                                                                                                                        • lead_field02textoopcional

                                                                                                                                                                                                          Envie o mapa completo: campo omitido é recebido como vazio e pode apagar o rótulo configurado antes.

                                                                                                                                                                                                          Rótulo do campo personalizado 02 (até 255 caracteres).

                                                                                                                                                                                                          Limites
                                                                                                                                                                                                          até 255 caracteres
                                                                                                                                                                                                        • lead_field03textoopcional

                                                                                                                                                                                                          Envie o mapa completo: campo omitido é recebido como vazio e pode apagar o rótulo configurado antes.

                                                                                                                                                                                                          Rótulo do campo personalizado 03 (até 255 caracteres).

                                                                                                                                                                                                          Limites
                                                                                                                                                                                                          até 255 caracteres
                                                                                                                                                                                                        • lead_field04textoopcional

                                                                                                                                                                                                          Envie o mapa completo: campo omitido é recebido como vazio e pode apagar o rótulo configurado antes.

                                                                                                                                                                                                          Rótulo do campo personalizado 04 (até 255 caracteres).

                                                                                                                                                                                                          Limites
                                                                                                                                                                                                          até 255 caracteres
                                                                                                                                                                                                        • lead_field05textoopcional

                                                                                                                                                                                                          Envie o mapa completo: campo omitido é recebido como vazio e pode apagar o rótulo configurado antes.

                                                                                                                                                                                                          Rótulo do campo personalizado 05 (até 255 caracteres).

                                                                                                                                                                                                          Limites
                                                                                                                                                                                                          até 255 caracteres
                                                                                                                                                                                                        • lead_field06textoopcional

                                                                                                                                                                                                          Envie o mapa completo: campo omitido é recebido como vazio e pode apagar o rótulo configurado antes.

                                                                                                                                                                                                          Rótulo do campo personalizado 06 (até 255 caracteres).

                                                                                                                                                                                                          Limites
                                                                                                                                                                                                          até 255 caracteres
                                                                                                                                                                                                        • lead_field07textoopcional

                                                                                                                                                                                                          Envie o mapa completo: campo omitido é recebido como vazio e pode apagar o rótulo configurado antes.

                                                                                                                                                                                                          Rótulo do campo personalizado 07 (até 255 caracteres).

                                                                                                                                                                                                          Limites
                                                                                                                                                                                                          até 255 caracteres
                                                                                                                                                                                                        • lead_field08textoopcional

                                                                                                                                                                                                          Envie o mapa completo: campo omitido é recebido como vazio e pode apagar o rótulo configurado antes.

                                                                                                                                                                                                          Rótulo do campo personalizado 08 (até 255 caracteres).

                                                                                                                                                                                                          Limites
                                                                                                                                                                                                          até 255 caracteres
                                                                                                                                                                                                        • lead_field09textoopcional

                                                                                                                                                                                                          Envie o mapa completo: campo omitido é recebido como vazio e pode apagar o rótulo configurado antes.

                                                                                                                                                                                                          Rótulo do campo personalizado 09 (até 255 caracteres).

                                                                                                                                                                                                          Limites
                                                                                                                                                                                                          até 255 caracteres
                                                                                                                                                                                                        • lead_field10textoopcional

                                                                                                                                                                                                          Envie o mapa completo: campo omitido é recebido como vazio e pode apagar o rótulo configurado antes.

                                                                                                                                                                                                          Rótulo do campo personalizado 10 (até 255 caracteres).

                                                                                                                                                                                                          Limites
                                                                                                                                                                                                          até 255 caracteres
                                                                                                                                                                                                        • lead_field11textoopcional

                                                                                                                                                                                                          Envie o mapa completo: campo omitido é recebido como vazio e pode apagar o rótulo configurado antes.

                                                                                                                                                                                                          Rótulo do campo personalizado 11 (até 255 caracteres).

                                                                                                                                                                                                          Limites
                                                                                                                                                                                                          até 255 caracteres
                                                                                                                                                                                                        • lead_field12textoopcional

                                                                                                                                                                                                          Envie o mapa completo: campo omitido é recebido como vazio e pode apagar o rótulo configurado antes.

                                                                                                                                                                                                          Rótulo do campo personalizado 12 (até 255 caracteres).

                                                                                                                                                                                                          Limites
                                                                                                                                                                                                          até 255 caracteres
                                                                                                                                                                                                        • lead_field13textoopcional

                                                                                                                                                                                                          Envie o mapa completo: campo omitido é recebido como vazio e pode apagar o rótulo configurado antes.

                                                                                                                                                                                                          Rótulo do campo personalizado 13 (até 255 caracteres).

                                                                                                                                                                                                          Limites
                                                                                                                                                                                                          até 255 caracteres
                                                                                                                                                                                                        • lead_field14textoopcional

                                                                                                                                                                                                          Envie o mapa completo: campo omitido é recebido como vazio e pode apagar o rótulo configurado antes.

                                                                                                                                                                                                          Rótulo do campo personalizado 14 (até 255 caracteres).

                                                                                                                                                                                                          Limites
                                                                                                                                                                                                          até 255 caracteres
                                                                                                                                                                                                        • lead_field15textoopcional

                                                                                                                                                                                                          Envie o mapa completo: campo omitido é recebido como vazio e pode apagar o rótulo configurado antes.

                                                                                                                                                                                                          Rótulo do campo personalizado 15 (até 255 caracteres).

                                                                                                                                                                                                          Limites
                                                                                                                                                                                                          até 255 caracteres
                                                                                                                                                                                                        • lead_field16textoopcional

                                                                                                                                                                                                          Envie o mapa completo: campo omitido é recebido como vazio e pode apagar o rótulo configurado antes.

                                                                                                                                                                                                          Rótulo do campo personalizado 16 (até 255 caracteres).

                                                                                                                                                                                                          Limites
                                                                                                                                                                                                          até 255 caracteres
                                                                                                                                                                                                        • lead_field17textoopcional

                                                                                                                                                                                                          Envie o mapa completo: campo omitido é recebido como vazio e pode apagar o rótulo configurado antes.

                                                                                                                                                                                                          Rótulo do campo personalizado 17 (até 255 caracteres).

                                                                                                                                                                                                          Limites
                                                                                                                                                                                                          até 255 caracteres
                                                                                                                                                                                                        • lead_field18textoopcional

                                                                                                                                                                                                          Envie o mapa completo: campo omitido é recebido como vazio e pode apagar o rótulo configurado antes.

                                                                                                                                                                                                          Rótulo do campo personalizado 18 (até 255 caracteres).

                                                                                                                                                                                                          Limites
                                                                                                                                                                                                          até 255 caracteres
                                                                                                                                                                                                        • lead_field19textoopcional

                                                                                                                                                                                                          Envie o mapa completo: campo omitido é recebido como vazio e pode apagar o rótulo configurado antes.

                                                                                                                                                                                                          Rótulo do campo personalizado 19 (até 255 caracteres).

                                                                                                                                                                                                          Limites
                                                                                                                                                                                                          até 255 caracteres
                                                                                                                                                                                                        • lead_field20textoopcional

                                                                                                                                                                                                          Envie o mapa completo: campo omitido é recebido como vazio e pode apagar o rótulo configurado antes.

                                                                                                                                                                                                          Rótulo do campo personalizado 20 (até 255 caracteres).

                                                                                                                                                                                                          Limites
                                                                                                                                                                                                          até 255 caracteres

                                                                                                                                                                                                        Respostas

                                                                                                                                                                                                        • 200Sucesso
                                                                                                                                                                                                        • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                                                                                                                        • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                        • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                        • 404Dispositivo não encontrado
                                                                                                                                                                                                        • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                        • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                        • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                        • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                        • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                        Erros possíveis 16

                                                                                                                                                                                                          Requisição

                                                                                                                                                                                                          curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/instance/updateFieldsMap' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "lead_field01": "empresa",  "lead_field02": "cargo",  "lead_field03": "cidade",  "lead_field04": "estado",  "lead_field05": "origem",  "lead_field06": "produto_interesse",  "lead_field07": "valor_proposta",  "lead_field08": "proximo_contato",  "lead_field09": "vendedor",  "lead_field10": "segmento",  "lead_field11": "",  "lead_field12": "",  "lead_field13": "",  "lead_field14": "",  "lead_field15": "",  "lead_field16": "",  "lead_field17": "",  "lead_field18": "",  "lead_field19": "",  "lead_field20": ""}'

                                                                                                                                                                                                          Resposta

                                                                                                                                                                                                          200 JSON
                                                                                                                                                                                                          {
                                                                                                                                                                                                            "success": true,
                                                                                                                                                                                                            "data": {
                                                                                                                                                                                                              "id": "i91011ijkl",
                                                                                                                                                                                                              "status": "connected",
                                                                                                                                                                                                              "paircode": "1234-5678",
                                                                                                                                                                                                              "qrcode": "data:image/png;base64,iVBORw0KGg...",
                                                                                                                                                                                                              "name": "Instância Principal",
                                                                                                                                                                                                              "profileName": "Loja ABC",
                                                                                                                                                                                                              "profilePicUrl": "https://example.com/profile.jpg",
                                                                                                                                                                                                              "isBusiness": true,
                                                                                                                                                                                                              "plataform": "Android",
                                                                                                                                                                                                              "owner": "user@example.com",
                                                                                                                                                                                                              "lastDisconnect": "2025-01-24T14:00:00Z",
                                                                                                                                                                                                              "lastDisconnectReason": "Network error",
                                                                                                                                                                                                              "chatbot_enabled": true,
                                                                                                                                                                                                              "chatbot_ignoreGroups": true,
                                                                                                                                                                                                              "chatbot_stopConversation": "parar",
                                                                                                                                                                                                              "chatbot_stopMinutes": 60,
                                                                                                                                                                                                              "created": "2025-01-24T14:00:00Z",
                                                                                                                                                                                                              "updated": "2025-01-24T14:30:00Z",
                                                                                                                                                                                                              "currentPresence": "available"
                                                                                                                                                                                                            }
                                                                                                                                                                                                          }

                                                                                                                                                                                                          Editar informações do lead

                                                                                                                                                                                                          POST /chat/editLead
                                                                                                                                                                                                          • Token do dispositivo
                                                                                                                                                                                                          • Não conta mensagem
                                                                                                                                                                                                          • Corpo até 1 MB

                                                                                                                                                                                                          Atualiza as informações de lead de uma conversa: situação do atendimento, atendente responsável, posição no Kanban, tags, dados do lead e campos personalizados. Também controla a automação da conversa: pausar a IA (chatbot_disableUntil) e zerar a memória do agente (chatbot_agentResetMemoryAt).

                                                                                                                                                                                                          Em lead_tags, a lista enviada passa a ser a lista de tags do lead ([] remove todas); tags que não existem são criadas, e a tag com kanban=true define a coluna do cartão no Kanban. Os rótulos de lead_field01 a lead_field20 são definidos em POST /instance/updateFieldsMap.

                                                                                                                                                                                                          As alterações aparecem na hora nas consultas e nos eventos de webhook, para manter a sua aplicação sincronizada.

                                                                                                                                                                                                          Também atende pelo caminho antigo POST /crm/lead.

                                                                                                                                                                                                          Corpo da requisição (JSON)

                                                                                                                                                                                                          Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                          • idtextoobrigatório

                                                                                                                                                                                                            Conversa: wa_chatid (ex.: 5511999999999@s.whatsapp.net) ou wa_fastid (ex.: 5511888888888:5511999999999).

                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                            5511999999999@s.whatsapp.net
                                                                                                                                                                                                          • chatbot_disableUntilinteirointeiro de 64 bitsopcional

                                                                                                                                                                                                            -1 pausa até alguém religar; 0 religa a automação.

                                                                                                                                                                                                            Pausa a automação (IA, gatilhos e fluxos) nesta conversa até este horário, em milissegundos.

                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                            -1
                                                                                                                                                                                                          • chatbot_agentResetMemoryAtinteirointeiro de 64 bitsopcional

                                                                                                                                                                                                            -1 = agora; 0 desfaz; horário no futuro vale como agora.

                                                                                                                                                                                                            Zera a memória da IA na conversa: o agente passa a ler só as mensagens a partir deste horário, em milissegundos.

                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                            -1
                                                                                                                                                                                                          • lead_isTicketOpenbooleanoopcional

                                                                                                                                                                                                            Situação do atendimento: true = aberto (em atendimento); false = fechado (resolvido).

                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                            true
                                                                                                                                                                                                          • lead_assignedAttendant_idtextoopcional

                                                                                                                                                                                                            String vazia ("") remove a atribuição.

                                                                                                                                                                                                            ID do atendente responsável pelo lead.

                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                            att_123456
                                                                                                                                                                                                          • lead_kanbanOrderinteirointeiro de 64 bitsopcional

                                                                                                                                                                                                            Posição do cartão no Kanban; valores maiores aparecem primeiro.

                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                            1000
                                                                                                                                                                                                          • lead_tagslista de textosopcional

                                                                                                                                                                                                            A lista enviada passa a ser a lista de tags do lead; [] remove todas. Tag que não existe é criada; a tag com kanban=true define a coluna do cartão no Kanban.

                                                                                                                                                                                                            Tags do lead.

                                                                                                                                                                                                          • lead_nametextoopcional

                                                                                                                                                                                                            Nome principal do lead.

                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                            João Silva
                                                                                                                                                                                                          • lead_fullNametextoopcional

                                                                                                                                                                                                            Nome completo do lead.

                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                            João Silva Pereira
                                                                                                                                                                                                          • lead_emailtextoe-mailopcional

                                                                                                                                                                                                            E-mail do lead.

                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                            joao@exemplo.com
                                                                                                                                                                                                          • lead_personalidtextoopcional

                                                                                                                                                                                                            CPF ou CNPJ, só números ou formatado.

                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                            123.456.789-00
                                                                                                                                                                                                          • lead_statustextoopcional

                                                                                                                                                                                                            Status livre do lead no funil de vendas.

                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                            qualificado
                                                                                                                                                                                                          • lead_notestextoopcional

                                                                                                                                                                                                            Anotações sobre o lead.

                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                            Cliente interessado em plano premium
                                                                                                                                                                                                          • lead_field01textoopcional

                                                                                                                                                                                                            Campo personalizado 1 (o rótulo é definido em POST /instance/updateFieldsMap).

                                                                                                                                                                                                          • lead_field02textoopcional

                                                                                                                                                                                                            Campo personalizado 2 (o rótulo é definido em POST /instance/updateFieldsMap).

                                                                                                                                                                                                          • lead_field03textoopcional

                                                                                                                                                                                                            Campo personalizado 3 (o rótulo é definido em POST /instance/updateFieldsMap).

                                                                                                                                                                                                          • lead_field04textoopcional

                                                                                                                                                                                                            Campo personalizado 4 (o rótulo é definido em POST /instance/updateFieldsMap).

                                                                                                                                                                                                          • lead_field05textoopcional

                                                                                                                                                                                                            Campo personalizado 5 (o rótulo é definido em POST /instance/updateFieldsMap).

                                                                                                                                                                                                          • lead_field06textoopcional

                                                                                                                                                                                                            Campo personalizado 6 (o rótulo é definido em POST /instance/updateFieldsMap).

                                                                                                                                                                                                          • lead_field07textoopcional

                                                                                                                                                                                                            Campo personalizado 7 (o rótulo é definido em POST /instance/updateFieldsMap).

                                                                                                                                                                                                          • lead_field08textoopcional

                                                                                                                                                                                                            Campo personalizado 8 (o rótulo é definido em POST /instance/updateFieldsMap).

                                                                                                                                                                                                          • lead_field09textoopcional

                                                                                                                                                                                                            Campo personalizado 9 (o rótulo é definido em POST /instance/updateFieldsMap).

                                                                                                                                                                                                          • lead_field10textoopcional

                                                                                                                                                                                                            Campo personalizado 10 (o rótulo é definido em POST /instance/updateFieldsMap).

                                                                                                                                                                                                          • lead_field11textoopcional

                                                                                                                                                                                                            Campo personalizado 11 (o rótulo é definido em POST /instance/updateFieldsMap).

                                                                                                                                                                                                          • lead_field12textoopcional

                                                                                                                                                                                                            Campo personalizado 12 (o rótulo é definido em POST /instance/updateFieldsMap).

                                                                                                                                                                                                          • lead_field13textoopcional

                                                                                                                                                                                                            Campo personalizado 13 (o rótulo é definido em POST /instance/updateFieldsMap).

                                                                                                                                                                                                          • lead_field14textoopcional

                                                                                                                                                                                                            Campo personalizado 14 (o rótulo é definido em POST /instance/updateFieldsMap).

                                                                                                                                                                                                          • lead_field15textoopcional

                                                                                                                                                                                                            Campo personalizado 15 (o rótulo é definido em POST /instance/updateFieldsMap).

                                                                                                                                                                                                          • lead_field16textoopcional

                                                                                                                                                                                                            Campo personalizado 16 (o rótulo é definido em POST /instance/updateFieldsMap).

                                                                                                                                                                                                          • lead_field17textoopcional

                                                                                                                                                                                                            Campo personalizado 17 (o rótulo é definido em POST /instance/updateFieldsMap).

                                                                                                                                                                                                          • lead_field18textoopcional

                                                                                                                                                                                                            Campo personalizado 18 (o rótulo é definido em POST /instance/updateFieldsMap).

                                                                                                                                                                                                          • lead_field19textoopcional

                                                                                                                                                                                                            Campo personalizado 19 (o rótulo é definido em POST /instance/updateFieldsMap).

                                                                                                                                                                                                          • lead_field20textoopcional

                                                                                                                                                                                                            Campo personalizado 20 (o rótulo é definido em POST /instance/updateFieldsMap).

                                                                                                                                                                                                          Respostas

                                                                                                                                                                                                          • 200Lead atualizado. Traz os campos do lead e do chatbot da conversa, não o Chat inteiro (sem lead_awaitingReply, por exemplo).
                                                                                                                                                                                                          • 400Corpo inválido
                                                                                                                                                                                                          • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                          • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                          • 404Chat não encontrado
                                                                                                                                                                                                          • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                          • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                          • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                          • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                          • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                          Erros possíveis 16

                                                                                                                                                                                                            Requisição

                                                                                                                                                                                                            curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/chat/editLead' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "id": "5511999999999@s.whatsapp.net",  "lead_name": "João Silva",  "lead_fullName": "João Silva Pereira",  "lead_email": "joao.silva@seusite.com.br",  "lead_personalid": "123.456.789-09",  "lead_status": "proposta enviada",  "lead_notes": "Pediu desconto à vista; retornar na sexta.",  "lead_tags": [    "Em atendimento",    "vip"  ],  "lead_isTicketOpen": true,  "lead_assignedAttendant_id": "att_123456",  "lead_field01": "Loja Centro Ltda",  "lead_field03": "Campinas"}'

                                                                                                                                                                                                            Resposta

                                                                                                                                                                                                            200 JSON
                                                                                                                                                                                                            {
                                                                                                                                                                                                              "success": true,
                                                                                                                                                                                                              "data": {
                                                                                                                                                                                                                "wa_fastid": "5511888888888:5511999999999",
                                                                                                                                                                                                                "wa_chatid": "5511999999999@s.whatsapp.net",
                                                                                                                                                                                                                "lead_name": "João Silva",
                                                                                                                                                                                                                "lead_status": "qualificado",
                                                                                                                                                                                                                "lead_tags": [
                                                                                                                                                                                                                  "vip",
                                                                                                                                                                                                                  "suporte"
                                                                                                                                                                                                                ],
                                                                                                                                                                                                                "lead_isTicketOpen": true,
                                                                                                                                                                                                                "lead_assignedAttendant_id": "att_123456"
                                                                                                                                                                                                              }
                                                                                                                                                                                                            }

                                                                                                                                                                                                            Concluir conversas aguardando resposta

                                                                                                                                                                                                            POST /lead/resolve
                                                                                                                                                                                                            • Token do dispositivo
                                                                                                                                                                                                            • Não conta mensagem
                                                                                                                                                                                                            • Corpo até 1 MB

                                                                                                                                                                                                            Tira conversas de "aguardando você" sem responder (o contato mandou "obrigado", por exemplo): lead_awaitingReply vira false e o pedido de humano (chatbot_summary) sai, sem religar a IA. A próxima mensagem do contato volta a ligar a espera.

                                                                                                                                                                                                            Mande em lastMessageTimestamp o horário da última mensagem que a tela mostrava: o que chegou depois continua esperando. Para concluir todas, envie as conversas da lista "aguardando você" (/chat/find com lead_awaitingReply: true). Conversa que não existe é ignorada.

                                                                                                                                                                                                            Corpo da requisição (JSON)

                                                                                                                                                                                                            Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                            • chatslista de objetosobrigatório

                                                                                                                                                                                                              Conversas a concluir: lista de 1 a 500 itens.

                                                                                                                                                                                                              Limites
                                                                                                                                                                                                              1 a 500 itens
                                                                                                                                                                                                              Mostrar 2 campos de cada item de chats
                                                                                                                                                                                                              • numbertextoobrigatório

                                                                                                                                                                                                                Conversa (chatid, como 5511999999999@s.whatsapp.net).

                                                                                                                                                                                                              • lastMessageTimestampinteirointeiro de 64 bitsopcional

                                                                                                                                                                                                                Sem ele, conclui até a última mensagem conhecida; o que chegou depois deste horário continua aguardando.

                                                                                                                                                                                                                Horário (ms) da última mensagem que a tela mostrava.

                                                                                                                                                                                                            Respostas

                                                                                                                                                                                                            • 200Conversas concluídas
                                                                                                                                                                                                            • 400chats vazio ou com mais de 500
                                                                                                                                                                                                            • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                            • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                            • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                            • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                            • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                            • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                            • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                            Erros possíveis 15

                                                                                                                                                                                                              Requisição

                                                                                                                                                                                                              curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/lead/resolve' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "chats": [    {      "number": "5511999999999@s.whatsapp.net",      "lastMessageTimestamp": 1791400000000    },    {      "number": "5521988888888@s.whatsapp.net"    }  ]}'

                                                                                                                                                                                                              Resposta

                                                                                                                                                                                                              200 JSON
                                                                                                                                                                                                              {
                                                                                                                                                                                                                "success": true,
                                                                                                                                                                                                                "data": {
                                                                                                                                                                                                                  "resolved": 1
                                                                                                                                                                                                                }
                                                                                                                                                                                                              }

                                                                                                                                                                                                              Listar tags de lead

                                                                                                                                                                                                              GET /lead/tags
                                                                                                                                                                                                              • Token do dispositivo
                                                                                                                                                                                                              • Não conta mensagem

                                                                                                                                                                                                              Retorna as tags pertencentes ao dispositivo autenticado. Registros com kanban=true representam as colunas ativas do Kanban.

                                                                                                                                                                                                              A resposta é ordenada com as colunas ativas primeiro, seguidas por kanbanOrder e nome. A rota usa somente dados locais e funciona mesmo quando a sessão do WhatsApp está desconectada.

                                                                                                                                                                                                              Parâmetros

                                                                                                                                                                                                              Esta rota não recebe parâmetros.

                                                                                                                                                                                                              Respostas

                                                                                                                                                                                                              • 200Tags retornadas com sucesso
                                                                                                                                                                                                              • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                                                                                                                              • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                              • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                              • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                              • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                              • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                              • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                              • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                              Erros possíveis 15

                                                                                                                                                                                                                Requisição

                                                                                                                                                                                                                curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/lead/tags' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                                                                                                                                                                                Resposta

                                                                                                                                                                                                                200 JSON
                                                                                                                                                                                                                {
                                                                                                                                                                                                                  "success": true,
                                                                                                                                                                                                                  "data": [
                                                                                                                                                                                                                    {
                                                                                                                                                                                                                      "id": "k3m9x2p7q4w8z1t6",
                                                                                                                                                                                                                      "name": "Novo",
                                                                                                                                                                                                                      "kanban": true,
                                                                                                                                                                                                                      "kanbanOrder": 1000,
                                                                                                                                                                                                                      "owner": "5511999999999",
                                                                                                                                                                                                                      "created": "2026-09-03 12:00:00.000Z",
                                                                                                                                                                                                                      "updated": "2026-09-03 12:00:00.000Z"
                                                                                                                                                                                                                    }
                                                                                                                                                                                                                  ]
                                                                                                                                                                                                                }

                                                                                                                                                                                                                Criar, editar ou apagar tag de lead

                                                                                                                                                                                                                POST /lead/tags/edit
                                                                                                                                                                                                                • Token do dispositivo
                                                                                                                                                                                                                • Não conta mensagem
                                                                                                                                                                                                                • Corpo até 1 MB

                                                                                                                                                                                                                Cria uma tag quando id não é informado ou edita uma tag do dispositivo autenticado quando id está presente.

                                                                                                                                                                                                                Use kanban=true para transformar a tag em uma coluna do quadro e kanban=false para retirá-la do Kanban sem apagar a tag. A alteração vale somente para o dispositivo autenticado.

                                                                                                                                                                                                                Ver mais detalhes

                                                                                                                                                                                                                Use delete=true junto de id para apagar definitivamente a tag. Ao apagar, a tag também é removida dos chats que a utilizam.

                                                                                                                                                                                                                Corpo da requisição (JSON)

                                                                                                                                                                                                                Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                • idtextoopcional

                                                                                                                                                                                                                  Omita para criar; obrigatório para editar e para apagar (delete: true).

                                                                                                                                                                                                                  ID da tag.

                                                                                                                                                                                                                • nametextocondicional

                                                                                                                                                                                                                  Obrigatório ao criar (sem id); opcional ao editar. Nome repetido no mesmo dispositivo volta 409.

                                                                                                                                                                                                                  Nome da tag (até 100 caracteres).

                                                                                                                                                                                                                  Limites
                                                                                                                                                                                                                  até 100 caracteres
                                                                                                                                                                                                                • kanbanbooleanoopcional

                                                                                                                                                                                                                  true transforma a tag em coluna do Kanban; false tira do Kanban sem apagar a tag.

                                                                                                                                                                                                                • kanbanOrderinteirointeiro de 64 bitsopcional

                                                                                                                                                                                                                  Ordem da coluna no Kanban, em ordem crescente.

                                                                                                                                                                                                                  Limites
                                                                                                                                                                                                                  mínimo 0
                                                                                                                                                                                                                • deletebooleanoopcional

                                                                                                                                                                                                                  Só junto de id.

                                                                                                                                                                                                                  Apaga a tag definitivamente e a tira das conversas que a usam.

                                                                                                                                                                                                                Regras

                                                                                                                                                                                                                • id é obrigatório quando delete é true.

                                                                                                                                                                                                                Respostas

                                                                                                                                                                                                                • 200Tag atualizada ou apagada com sucesso
                                                                                                                                                                                                                • 201Tag criada com sucesso
                                                                                                                                                                                                                • 400Corpo inválido
                                                                                                                                                                                                                • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                • 404Tag não encontrada para o dispositivo autenticado
                                                                                                                                                                                                                • 409Já existe uma tag com o mesmo nome no dispositivo
                                                                                                                                                                                                                • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After. Caso do WhatsApp (503): Recuperação de uma alteração anterior ainda em andamento.
                                                                                                                                                                                                                • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                Erros possíveis 17

                                                                                                                                                                                                                  Requisição

                                                                                                                                                                                                                  curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/lead/tags/edit' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "name": "Em atendimento",  "kanban": true,  "kanbanOrder": 2000}'

                                                                                                                                                                                                                  Resposta

                                                                                                                                                                                                                  200 JSON
                                                                                                                                                                                                                  {
                                                                                                                                                                                                                    "success": true,
                                                                                                                                                                                                                    "data": {
                                                                                                                                                                                                                      "id": "3EB0538DA65A59F6D8A251",
                                                                                                                                                                                                                      "name": "Exemplo",
                                                                                                                                                                                                                      "kanban": false,
                                                                                                                                                                                                                      "kanbanOrder": 0,
                                                                                                                                                                                                                      "owner": "5511999999999",
                                                                                                                                                                                                                      "created": "2026-10-20T12:00:00Z",
                                                                                                                                                                                                                      "updated": "2026-10-20T12:00:00Z"
                                                                                                                                                                                                                    }
                                                                                                                                                                                                                  }

                                                                                                                                                                                                                  Referência 5

                                                                                                                                                                                                                  Respostas rápidas

                                                                                                                                                                                                                  Mensagens prontas para usar no atendimento.

                                                                                                                                                                                                                  Gerenciamento de respostas rápidas para agilizar o atendimento.

                                                                                                                                                                                                                  Importante: Este recurso tem serventia apenas se você utilizar um sistema frontend/interface personalizada para registrar e utilizar as respostas. A API apenas armazena as respostas, mas não as aplica automaticamente.

                                                                                                                                                                                                                  Ler a introdução completa

                                                                                                                                                                                                                  Como funciona:

                                                                                                                                                                                                                  • Criar: Cadastre respostas pré-definidas com títulos e conteúdo
                                                                                                                                                                                                                  • Listar: Recupere todas as respostas cadastradas para exibir na sua interface
                                                                                                                                                                                                                  • Usar: Seu sistema frontend pode usar essas respostas para agilizar digitação

                                                                                                                                                                                                                  Casos de uso:

                                                                                                                                                                                                                  • Interfaces web personalizadas de atendimento
                                                                                                                                                                                                                  • Apps mobile com sugestões de resposta
                                                                                                                                                                                                                  • Sistemas CRM com templates de mensagem
                                                                                                                                                                                                                  • Ferramentas de produtividade para atendentes

                                                                                                                                                                                                                  Não é um chatbot: Para respostas automáticas, use os recursos de Chatbot.

                                                                                                                                                                                                                  Listar respostas rápidas

                                                                                                                                                                                                                  GET /quick-replies
                                                                                                                                                                                                                  • Token do dispositivo
                                                                                                                                                                                                                  • Não conta mensagem

                                                                                                                                                                                                                  Lista as respostas rápidas do dispositivo, de qualquer tipo, em ordem de atalho (shortCut).

                                                                                                                                                                                                                  Paginação: comece com offset 0 e repita a chamada com offset igual a pagination.nextOffset enquanto pagination.hasMore for true. limit vai de 1 a 500 (padrão 100).

                                                                                                                                                                                                                  As respostas rápidas pertencem ao número conectado: se o dispositivo ainda não foi conectado ao WhatsApp, a resposta é 409.

                                                                                                                                                                                                                  Parâmetros na URL

                                                                                                                                                                                                                  Vão depois do ? no endereço, como nome=valor.

                                                                                                                                                                                                                  • limitinteiroopcional

                                                                                                                                                                                                                    Máximo de itens na página, de 1 a 500.

                                                                                                                                                                                                                    Padrão
                                                                                                                                                                                                                    100
                                                                                                                                                                                                                    Limites
                                                                                                                                                                                                                    de 1 a 500
                                                                                                                                                                                                                    Exemplo
                                                                                                                                                                                                                    50
                                                                                                                                                                                                                  • offsetinteiroopcional

                                                                                                                                                                                                                    Quantos itens pular. Para a próxima página, use pagination.nextOffset da resposta anterior.

                                                                                                                                                                                                                    Padrão
                                                                                                                                                                                                                    0
                                                                                                                                                                                                                    Limites
                                                                                                                                                                                                                    mínimo 0
                                                                                                                                                                                                                    Exemplo
                                                                                                                                                                                                                    0

                                                                                                                                                                                                                  Respostas

                                                                                                                                                                                                                  • 200Página de respostas rápidas
                                                                                                                                                                                                                  • 400O WhatsApp recusou o pedido (WHATSAPP_REJECTED). O motivo vem em reason: invalid_body (corpo malformado ou campo desconhecido) ou validation_failed (valor fora do permitido); a mensagem em error explica.
                                                                                                                                                                                                                  • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                  • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                  • 409O dispositivo ainda não foi conectado ao WhatsApp (WHATSAPP_CONFLICT, com reason instance_not_paired). As respostas rápidas pertencem ao número conectado: conecte o dispositivo antes.
                                                                                                                                                                                                                  • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                  • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                  • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                  • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                  • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                  Erros possíveis 16

                                                                                                                                                                                                                    Requisição

                                                                                                                                                                                                                    curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/quick-replies?limit=50&offset=0' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                                                                                                                                                                                    Resposta

                                                                                                                                                                                                                    200 JSON
                                                                                                                                                                                                                    {
                                                                                                                                                                                                                      "success": true,
                                                                                                                                                                                                                      "data": {
                                                                                                                                                                                                                        "items": [
                                                                                                                                                                                                                          {
                                                                                                                                                                                                                            "id": "qr_8f2k1m9x",
                                                                                                                                                                                                                            "shortCut": "endereco",
                                                                                                                                                                                                                            "aiDescription": "",
                                                                                                                                                                                                                            "onWhatsApp": false,
                                                                                                                                                                                                                            "message": {
                                                                                                                                                                                                                              "kind": "location",
                                                                                                                                                                                                                              "name": "Loja Centro",
                                                                                                                                                                                                                              "address": "Av. Paulista, 1000",
                                                                                                                                                                                                                              "latitude": -23.5614,
                                                                                                                                                                                                                              "longitude": -46.6559
                                                                                                                                                                                                                            },
                                                                                                                                                                                                                            "createdAt": "2026-10-20T12:00:00Z",
                                                                                                                                                                                                                            "updatedAt": "2026-10-20T12:00:00Z"
                                                                                                                                                                                                                          },
                                                                                                                                                                                                                          {
                                                                                                                                                                                                                            "id": "qr_3c4d5e6f",
                                                                                                                                                                                                                            "shortCut": "horario",
                                                                                                                                                                                                                            "aiDescription": "",
                                                                                                                                                                                                                            "onWhatsApp": true,
                                                                                                                                                                                                                            "message": {
                                                                                                                                                                                                                              "kind": "text",
                                                                                                                                                                                                                              "text": "Atendemos de segunda a sexta, das 9h às 18h."
                                                                                                                                                                                                                            },
                                                                                                                                                                                                                            "createdAt": "2026-10-19T09:30:00Z",
                                                                                                                                                                                                                            "updatedAt": "2026-10-19T09:30:00Z"
                                                                                                                                                                                                                          }
                                                                                                                                                                                                                        ],
                                                                                                                                                                                                                        "pagination": {
                                                                                                                                                                                                                          "totalRecords": 2,
                                                                                                                                                                                                                          "limit": 50,
                                                                                                                                                                                                                          "offset": 0,
                                                                                                                                                                                                                          "hasMore": false,
                                                                                                                                                                                                                          "nextOffset": 2
                                                                                                                                                                                                                        }
                                                                                                                                                                                                                      }
                                                                                                                                                                                                                    }

                                                                                                                                                                                                                    Criar resposta rápida

                                                                                                                                                                                                                    POST /quick-replies
                                                                                                                                                                                                                    • Token do dispositivo
                                                                                                                                                                                                                    • Não conta mensagem
                                                                                                                                                                                                                    • Corpo até 28 MB

                                                                                                                                                                                                                    Guarda uma mensagem pronta de qualquer tipo (texto, arquivo, contato, localização, menu ou PIX) para usar no atendimento.

                                                                                                                                                                                                                    shortCut e message são obrigatórios. message.kind diz o tipo; os outros campos de message são os do envio correspondente (veja a tabela em message), sem number e sem os campos de envio.

                                                                                                                                                                                                                    Ver mais detalhes

                                                                                                                                                                                                                    Arquivo de media: por URL fica guardado como foi enviado; em base64 é guardado pela API, com até 5 MB para imagem, 16 MB para áudio e vídeo e 20 MB para documento, e 50 MB no total por dispositivo. O corpo aceita até 28 MB (um documento de 20 MB em base64).

                                                                                                                                                                                                                    Menu: type button, button_legacy, list ou poll (carrossel ainda não). A mídia do botão (file) só vai por URL. As opções precisam dar para enviar, senão a resposta é 400: enquete com pelo menos 2, lista com pelo menos um item (a linha de seção [...] não conta) e botões com pelo menos 1.

                                                                                                                                                                                                                    onWhatsApp: true (só na criação e só com kind=text) cria a resposta também no WhatsApp Business; nesse caso o dispositivo precisa estar conectado.

                                                                                                                                                                                                                    Campos fora desta lista são descartados antes do envio. O sucesso responde 200 com a resposta criada; guarde o id para editar ou apagar.

                                                                                                                                                                                                                    Corpo da requisição (JSON)

                                                                                                                                                                                                                    Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                    • shortCuttextoobrigatório

                                                                                                                                                                                                                      Obrigatório na criação.

                                                                                                                                                                                                                      Atalho para encontrar a resposta (também é o que o atendimento automático usa para escolher).

                                                                                                                                                                                                                      Exemplo
                                                                                                                                                                                                                      endereco
                                                                                                                                                                                                                    • messageobjetoobrigatório

                                                                                                                                                                                                                      Obrigatório na criação.

                                                                                                                                                                                                                      Mensagem guardada: kind mais o mesmo corpo do envio correspondente, sem number e sem os campos de envio (replyid, mentions, delay, readchat, readmessages, async, forward, track_source, track_id).

                                                                                                                                                                                                                      Ver mais
                                                                                                                                                                                                                      kindCamposCorpo igual ao de
                                                                                                                                                                                                                      texttext (obrigatório; aceita variáveis como {{name}})POST /send/text
                                                                                                                                                                                                                      mediatype e file (obrigatórios), text (legenda), docNamePOST /send/media
                                                                                                                                                                                                                      contactfullName e phoneNumber (obrigatórios), organization, email, urlPOST /send/contact
                                                                                                                                                                                                                      locationlatitude e longitude (obrigatórias), name, addressPOST /send/location
                                                                                                                                                                                                                      menutype, text e choices (obrigatórios), footerText, listButton, selectableCount, file, mimetype, docNamePOST /send/menu
                                                                                                                                                                                                                      pixpixType e pixKey (obrigatórios), pixNamePOST /send/pix-button
                                                                                                                                                                                                                      Mostrar 22 campos de message
                                                                                                                                                                                                                      • kindtextoobrigatório

                                                                                                                                                                                                                        Obrigatório sempre que message for enviado.

                                                                                                                                                                                                                        Tipo da mensagem guardada. Define quais outros campos de message valem.

                                                                                                                                                                                                                        Valores
                                                                                                                                                                                                                        textmediacontactlocationmenupix
                                                                                                                                                                                                                      • texttextocondicional

                                                                                                                                                                                                                        Obrigatório com kind=text e com kind=menu. Opcional com kind=media (legenda).

                                                                                                                                                                                                                        Texto da mensagem. Com kind=text é o corpo (aceita variáveis como {{name}}); com kind=media é a legenda; com kind=menu é o texto principal.

                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                        Olá {{name}}! Como posso ajudar?
                                                                                                                                                                                                                      • typetextocondicional

                                                                                                                                                                                                                        Obrigatório com kind=media e com kind=menu; os valores aceitos dependem do kind.

                                                                                                                                                                                                                        Com kind=media: image, video, document, audio, ptt ou myaudio. Com kind=menu: button, button_legacy, list ou poll (carrossel ainda não).

                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                        image
                                                                                                                                                                                                                      • filetextocondicional

                                                                                                                                                                                                                        Obrigatório com kind=media. Opcional com kind=menu e type=button, e só por URL.

                                                                                                                                                                                                                        Com kind=media: URL ou base64 do arquivo. Por URL fica guardado como foi enviado; em base64 o arquivo é guardado pela API (imagem até 5 MB, áudio e vídeo até 16 MB, documento até 20 MB; 50 MB no total por dispositivo). Com kind=menu (type=button): mídia do cabeçalho, só por URL.

                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                        https://exemplo.com/promo.jpg
                                                                                                                                                                                                                      • docNametextoopcional

                                                                                                                                                                                                                        Só com kind=media e type=document, ou com kind=menu quando file é documento.

                                                                                                                                                                                                                        Nome do arquivo exibido quando o arquivo é documento.

                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                        Catalogo de outubro.pdf
                                                                                                                                                                                                                      • fullNametextocondicional

                                                                                                                                                                                                                        Obrigatório com kind=contact.

                                                                                                                                                                                                                        Nome completo do contato.

                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                        Suporte Loja Centro
                                                                                                                                                                                                                      • phoneNumbertextocondicional

                                                                                                                                                                                                                        Obrigatório com kind=contact.

                                                                                                                                                                                                                        Telefones do contato, separados por vírgula.

                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                        5511999999999
                                                                                                                                                                                                                      • organizationtextoopcional

                                                                                                                                                                                                                        Só com kind=contact.

                                                                                                                                                                                                                        Empresa do contato.

                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                        Loja Centro
                                                                                                                                                                                                                      • emailtextoopcional

                                                                                                                                                                                                                        Só com kind=contact.

                                                                                                                                                                                                                        E-mail do contato.

                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                        suporte@seusite.com.br
                                                                                                                                                                                                                      • urltextoopcional

                                                                                                                                                                                                                        Só com kind=contact.

                                                                                                                                                                                                                        Site do contato.

                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                        https://seusite.com.br
                                                                                                                                                                                                                      • nametextoopcional

                                                                                                                                                                                                                        Só com kind=location.

                                                                                                                                                                                                                        Nome do local.

                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                        Loja Centro
                                                                                                                                                                                                                      • addresstextoopcional

                                                                                                                                                                                                                        Só com kind=location.

                                                                                                                                                                                                                        Endereço do local.

                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                        Av. Paulista, 1000
                                                                                                                                                                                                                      • latitudenúmerocondicional

                                                                                                                                                                                                                        Obrigatória com kind=location.

                                                                                                                                                                                                                        Latitude do local (-90 a 90).

                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                        -23.5614
                                                                                                                                                                                                                      • longitudenúmerocondicional

                                                                                                                                                                                                                        Obrigatória com kind=location.

                                                                                                                                                                                                                        Longitude do local (-180 a 180).

                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                        -46.6559
                                                                                                                                                                                                                      • choiceslista de textoscondicional

                                                                                                                                                                                                                        Obrigatório com kind=menu. Enquete precisa de pelo menos 2 opções, lista de pelo menos 1 item (a linha de seção "[...]" não conta) e botões de pelo menos 1; senão a resposta é 400.

                                                                                                                                                                                                                        Opções do menu, no mesmo formato de POST /send/menu: botão "texto|id", "texto|copy:código", "texto|call:+5511999999999" ou "texto|https://..."; lista com "[Seção]" e "item|id|descrição"; enquete só com o texto de cada opção.

                                                                                                                                                                                                                      • footerTexttextoopcional

                                                                                                                                                                                                                        Só com kind=menu (type button ou list).

                                                                                                                                                                                                                        Texto do rodapé do menu.

                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                        Atendimento Loja Centro
                                                                                                                                                                                                                      • listButtontextoopcional

                                                                                                                                                                                                                        Só com kind=menu e type=list.

                                                                                                                                                                                                                        Texto do botão que abre a lista.

                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                        Ver opções
                                                                                                                                                                                                                      • selectableCountinteiroopcional

                                                                                                                                                                                                                        Só com kind=menu e type=poll.

                                                                                                                                                                                                                        Quantas opções a pessoa pode marcar na enquete.

                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                        1
                                                                                                                                                                                                                      • mimetypetextoopcional

                                                                                                                                                                                                                        Só com kind=menu e file.

                                                                                                                                                                                                                        Força o tipo do file do menu: image, video, document ou o MIME type do arquivo.

                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                        image
                                                                                                                                                                                                                      • pixTypetextocondicional

                                                                                                                                                                                                                        Obrigatório com kind=pix.

                                                                                                                                                                                                                        Tipo da chave PIX: CPF, CNPJ, PHONE, EMAIL ou EVP.

                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                        CNPJ
                                                                                                                                                                                                                      • pixKeytextocondicional

                                                                                                                                                                                                                        Obrigatório com kind=pix.

                                                                                                                                                                                                                        Valor da chave PIX.

                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                        12345678000199
                                                                                                                                                                                                                      • pixNametextoopcional

                                                                                                                                                                                                                        Só com kind=pix.

                                                                                                                                                                                                                        Nome exibido como recebedor (padrão "Pix" quando vazio).

                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                        Loja Centro
                                                                                                                                                                                                                    • aiDescriptiontextoopcional

                                                                                                                                                                                                                      Reservado ao atendimento automático. Vazio por padrão.

                                                                                                                                                                                                                    • onWhatsAppbooleanoopcional

                                                                                                                                                                                                                      Só na criação e só com message.kind=text. Exige o dispositivo conectado (senão 409).

                                                                                                                                                                                                                      Cria a resposta também no WhatsApp Business.

                                                                                                                                                                                                                      Exemplo
                                                                                                                                                                                                                      true

                                                                                                                                                                                                                    Respostas

                                                                                                                                                                                                                    • 200Resposta rápida criada; vem inteira, com o id.
                                                                                                                                                                                                                    • 400O WhatsApp recusou o pedido (WHATSAPP_REJECTED). O motivo vem em reason: invalid_body (corpo malformado ou campo desconhecido) ou validation_failed (valor fora do permitido); a mensagem em error explica.
                                                                                                                                                                                                                    • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                    • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                    • 409Conflito com o estado do dispositivo ou da resposta (WHATSAPP_CONFLICT, ou DEVICE_DISCONNECTED quando o motivo é o dispositivo desconectado). O motivo vem em reason: instance_not_paired (o dispositivo ainda não foi conectado ao WhatsApp; conecte antes) ou instance_not_connected (resposta do WhatsApp Business, onWhatsApp, só é criada, editada ou apagada com o dispositivo conectado).
                                                                                                                                                                                                                    • 413Corpo acima de 28 MB (PAYLOAD_TOO_LARGE). Para arquivos grandes, envie file por URL.
                                                                                                                                                                                                                    • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                    • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                    • 502Falha temporária ao falar com o WhatsApp (PROVIDER_ERROR); tente de novo em instantes. Com respostas onWhatsApp, também quando a mudança não chegou ao WhatsApp Business (reason whatsapp_sync_failed): nada foi gravado nem apagado.
                                                                                                                                                                                                                    • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                    Erros possíveis 16

                                                                                                                                                                                                                      Requisição

                                                                                                                                                                                                                      curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/quick-replies' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "shortCut": "saudacao",  "message": {    "kind": "text",    "text": "Olá {{name}}! Como posso ajudar?"  }}'

                                                                                                                                                                                                                      Resposta

                                                                                                                                                                                                                      200 JSON
                                                                                                                                                                                                                      {
                                                                                                                                                                                                                        "success": true,
                                                                                                                                                                                                                        "data": {
                                                                                                                                                                                                                          "id": "qr_5e6f7g8h",
                                                                                                                                                                                                                          "shortCut": "saudacao",
                                                                                                                                                                                                                          "aiDescription": "",
                                                                                                                                                                                                                          "onWhatsApp": false,
                                                                                                                                                                                                                          "message": {
                                                                                                                                                                                                                            "kind": "text",
                                                                                                                                                                                                                            "text": "Olá {{name}}! Como posso ajudar?"
                                                                                                                                                                                                                          },
                                                                                                                                                                                                                          "createdAt": "2026-10-20T12:00:00Z",
                                                                                                                                                                                                                          "updatedAt": "2026-10-20T12:00:00Z"
                                                                                                                                                                                                                        }
                                                                                                                                                                                                                      }

                                                                                                                                                                                                                      Ver resposta rápida

                                                                                                                                                                                                                      GET /quick-replies/{id}
                                                                                                                                                                                                                      • Token do dispositivo
                                                                                                                                                                                                                      • Não conta mensagem

                                                                                                                                                                                                                      Devolve a resposta rápida pelo id (o que veio na criação ou na listagem).

                                                                                                                                                                                                                      Parâmetros no caminho

                                                                                                                                                                                                                      Troque o trecho entre chaves no caminho pelo valor.

                                                                                                                                                                                                                      • idtextoobrigatório

                                                                                                                                                                                                                        ID da resposta rápida, como vem na criação ou na listagem.

                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                        qr_8f2k1m9x

                                                                                                                                                                                                                      Respostas

                                                                                                                                                                                                                      • 200Resposta rápida
                                                                                                                                                                                                                      • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                      • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                      • 404Nenhuma resposta rápida com esse id neste dispositivo (WHATSAPP_NOT_FOUND).
                                                                                                                                                                                                                      • 409O dispositivo ainda não foi conectado ao WhatsApp (WHATSAPP_CONFLICT, com reason instance_not_paired). As respostas rápidas pertencem ao número conectado: conecte o dispositivo antes.
                                                                                                                                                                                                                      • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                      • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                      • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                      • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                      • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                      Erros possíveis 17

                                                                                                                                                                                                                        Requisição

                                                                                                                                                                                                                        curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/quick-replies/qr_8f2k1m9x' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                                                                                                                                                                                        Resposta

                                                                                                                                                                                                                        200 JSON
                                                                                                                                                                                                                        {
                                                                                                                                                                                                                          "success": true,
                                                                                                                                                                                                                          "data": {
                                                                                                                                                                                                                            "id": "qr_8f2k1m9x",
                                                                                                                                                                                                                            "shortCut": "endereco",
                                                                                                                                                                                                                            "aiDescription": "",
                                                                                                                                                                                                                            "onWhatsApp": false,
                                                                                                                                                                                                                            "message": {
                                                                                                                                                                                                                              "kind": "location",
                                                                                                                                                                                                                              "name": "Loja Centro",
                                                                                                                                                                                                                              "address": "Av. Paulista, 1000",
                                                                                                                                                                                                                              "latitude": -23.5614,
                                                                                                                                                                                                                              "longitude": -46.6559
                                                                                                                                                                                                                            },
                                                                                                                                                                                                                            "createdAt": "2026-10-20T12:00:00Z",
                                                                                                                                                                                                                            "updatedAt": "2026-10-20T12:00:00Z"
                                                                                                                                                                                                                          }
                                                                                                                                                                                                                        }

                                                                                                                                                                                                                        Editar resposta rápida

                                                                                                                                                                                                                        PATCH /quick-replies/{id}
                                                                                                                                                                                                                        • Token do dispositivo
                                                                                                                                                                                                                        • Não conta mensagem
                                                                                                                                                                                                                        • Corpo até 28 MB

                                                                                                                                                                                                                        Altera só os campos enviados. message, quando enviado, substitui a mensagem inteira (não mescla campos), com as mesmas regras por kind da criação (veja a tabela em message); trocar ou remover um arquivo apaga o anterior.

                                                                                                                                                                                                                        Se outra edição trocar a mensagem ao mesmo tempo, esta volta 409 com reason conflict e nada é gravado: leia a resposta de novo e repita. Respostas no WhatsApp Business (onWhatsApp) continuam só de texto e só são editadas com o dispositivo conectado. onWhatsApp vale só na criação.

                                                                                                                                                                                                                        Ver mais detalhes

                                                                                                                                                                                                                        Arquivo de media: por URL fica guardado como foi enviado; em base64 é guardado pela API, com até 5 MB para imagem, 16 MB para áudio e vídeo e 20 MB para documento, e 50 MB no total por dispositivo. O corpo aceita até 28 MB (um documento de 20 MB em base64).

                                                                                                                                                                                                                        Menu: type button, button_legacy, list ou poll (carrossel ainda não). A mídia do botão (file) só vai por URL. As opções precisam dar para enviar, senão a resposta é 400: enquete com pelo menos 2, lista com pelo menos um item (a linha de seção [...] não conta) e botões com pelo menos 1.

                                                                                                                                                                                                                        Parâmetros no caminho

                                                                                                                                                                                                                        Troque o trecho entre chaves no caminho pelo valor.

                                                                                                                                                                                                                        • idtextoobrigatório

                                                                                                                                                                                                                          ID da resposta rápida.

                                                                                                                                                                                                                          Exemplo
                                                                                                                                                                                                                          qr_8f2k1m9x

                                                                                                                                                                                                                        Corpo da requisição (JSON)

                                                                                                                                                                                                                        Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                        • shortCuttextoopcional

                                                                                                                                                                                                                          Opcional na edição.

                                                                                                                                                                                                                          Atalho para encontrar a resposta (também é o que o atendimento automático usa para escolher).

                                                                                                                                                                                                                          Exemplo
                                                                                                                                                                                                                          endereco
                                                                                                                                                                                                                        • aiDescriptiontextoopcional

                                                                                                                                                                                                                          Reservado ao atendimento automático. Vazio por padrão.

                                                                                                                                                                                                                        • onWhatsAppbooleanoopcional

                                                                                                                                                                                                                          Não use na edição: respostas do WhatsApp Business continuam só de texto.

                                                                                                                                                                                                                          Vale só na criação; não envie na edição.

                                                                                                                                                                                                                        • messageobjetoopcional

                                                                                                                                                                                                                          Opcional. Quando enviado, substitui a mensagem inteira (não mescla campos); trocar ou remover o arquivo apaga o anterior.

                                                                                                                                                                                                                          Mensagem guardada: kind mais o mesmo corpo do envio correspondente, sem number e sem os campos de envio (replyid, mentions, delay, readchat, readmessages, async, forward, track_source, track_id).

                                                                                                                                                                                                                          Ver mais
                                                                                                                                                                                                                          kindCamposCorpo igual ao de
                                                                                                                                                                                                                          texttext (obrigatório; aceita variáveis como {{name}})POST /send/text
                                                                                                                                                                                                                          mediatype e file (obrigatórios), text (legenda), docNamePOST /send/media
                                                                                                                                                                                                                          contactfullName e phoneNumber (obrigatórios), organization, email, urlPOST /send/contact
                                                                                                                                                                                                                          locationlatitude e longitude (obrigatórias), name, addressPOST /send/location
                                                                                                                                                                                                                          menutype, text e choices (obrigatórios), footerText, listButton, selectableCount, file, mimetype, docNamePOST /send/menu
                                                                                                                                                                                                                          pixpixType e pixKey (obrigatórios), pixNamePOST /send/pix-button
                                                                                                                                                                                                                          Mostrar 22 campos de message
                                                                                                                                                                                                                          • kindtextoobrigatório

                                                                                                                                                                                                                            Obrigatório sempre que message for enviado.

                                                                                                                                                                                                                            Tipo da mensagem guardada. Define quais outros campos de message valem.

                                                                                                                                                                                                                            Valores
                                                                                                                                                                                                                            textmediacontactlocationmenupix
                                                                                                                                                                                                                          • texttextocondicional

                                                                                                                                                                                                                            Obrigatório com kind=text e com kind=menu. Opcional com kind=media (legenda).

                                                                                                                                                                                                                            Texto da mensagem. Com kind=text é o corpo (aceita variáveis como {{name}}); com kind=media é a legenda; com kind=menu é o texto principal.

                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                            Olá {{name}}! Como posso ajudar?
                                                                                                                                                                                                                          • typetextocondicional

                                                                                                                                                                                                                            Obrigatório com kind=media e com kind=menu; os valores aceitos dependem do kind.

                                                                                                                                                                                                                            Com kind=media: image, video, document, audio, ptt ou myaudio. Com kind=menu: button, button_legacy, list ou poll (carrossel ainda não).

                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                            image
                                                                                                                                                                                                                          • filetextocondicional

                                                                                                                                                                                                                            Obrigatório com kind=media. Opcional com kind=menu e type=button, e só por URL.

                                                                                                                                                                                                                            Com kind=media: URL ou base64 do arquivo. Por URL fica guardado como foi enviado; em base64 o arquivo é guardado pela API (imagem até 5 MB, áudio e vídeo até 16 MB, documento até 20 MB; 50 MB no total por dispositivo). Com kind=menu (type=button): mídia do cabeçalho, só por URL.

                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                            https://exemplo.com/promo.jpg
                                                                                                                                                                                                                          • docNametextoopcional

                                                                                                                                                                                                                            Só com kind=media e type=document, ou com kind=menu quando file é documento.

                                                                                                                                                                                                                            Nome do arquivo exibido quando o arquivo é documento.

                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                            Catalogo de outubro.pdf
                                                                                                                                                                                                                          • fullNametextocondicional

                                                                                                                                                                                                                            Obrigatório com kind=contact.

                                                                                                                                                                                                                            Nome completo do contato.

                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                            Suporte Loja Centro
                                                                                                                                                                                                                          • phoneNumbertextocondicional

                                                                                                                                                                                                                            Obrigatório com kind=contact.

                                                                                                                                                                                                                            Telefones do contato, separados por vírgula.

                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                            5511999999999
                                                                                                                                                                                                                          • organizationtextoopcional

                                                                                                                                                                                                                            Só com kind=contact.

                                                                                                                                                                                                                            Empresa do contato.

                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                            Loja Centro
                                                                                                                                                                                                                          • emailtextoopcional

                                                                                                                                                                                                                            Só com kind=contact.

                                                                                                                                                                                                                            E-mail do contato.

                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                            suporte@seusite.com.br
                                                                                                                                                                                                                          • urltextoopcional

                                                                                                                                                                                                                            Só com kind=contact.

                                                                                                                                                                                                                            Site do contato.

                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                            https://seusite.com.br
                                                                                                                                                                                                                          • nametextoopcional

                                                                                                                                                                                                                            Só com kind=location.

                                                                                                                                                                                                                            Nome do local.

                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                            Loja Centro
                                                                                                                                                                                                                          • addresstextoopcional

                                                                                                                                                                                                                            Só com kind=location.

                                                                                                                                                                                                                            Endereço do local.

                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                            Av. Paulista, 1000
                                                                                                                                                                                                                          • latitudenúmerocondicional

                                                                                                                                                                                                                            Obrigatória com kind=location.

                                                                                                                                                                                                                            Latitude do local (-90 a 90).

                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                            -23.5614
                                                                                                                                                                                                                          • longitudenúmerocondicional

                                                                                                                                                                                                                            Obrigatória com kind=location.

                                                                                                                                                                                                                            Longitude do local (-180 a 180).

                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                            -46.6559
                                                                                                                                                                                                                          • choiceslista de textoscondicional

                                                                                                                                                                                                                            Obrigatório com kind=menu. Enquete precisa de pelo menos 2 opções, lista de pelo menos 1 item (a linha de seção "[...]" não conta) e botões de pelo menos 1; senão a resposta é 400.

                                                                                                                                                                                                                            Opções do menu, no mesmo formato de POST /send/menu: botão "texto|id", "texto|copy:código", "texto|call:+5511999999999" ou "texto|https://..."; lista com "[Seção]" e "item|id|descrição"; enquete só com o texto de cada opção.

                                                                                                                                                                                                                          • footerTexttextoopcional

                                                                                                                                                                                                                            Só com kind=menu (type button ou list).

                                                                                                                                                                                                                            Texto do rodapé do menu.

                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                            Atendimento Loja Centro
                                                                                                                                                                                                                          • listButtontextoopcional

                                                                                                                                                                                                                            Só com kind=menu e type=list.

                                                                                                                                                                                                                            Texto do botão que abre a lista.

                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                            Ver opções
                                                                                                                                                                                                                          • selectableCountinteiroopcional

                                                                                                                                                                                                                            Só com kind=menu e type=poll.

                                                                                                                                                                                                                            Quantas opções a pessoa pode marcar na enquete.

                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                            1
                                                                                                                                                                                                                          • mimetypetextoopcional

                                                                                                                                                                                                                            Só com kind=menu e file.

                                                                                                                                                                                                                            Força o tipo do file do menu: image, video, document ou o MIME type do arquivo.

                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                            image
                                                                                                                                                                                                                          • pixTypetextocondicional

                                                                                                                                                                                                                            Obrigatório com kind=pix.

                                                                                                                                                                                                                            Tipo da chave PIX: CPF, CNPJ, PHONE, EMAIL ou EVP.

                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                            CNPJ
                                                                                                                                                                                                                          • pixKeytextocondicional

                                                                                                                                                                                                                            Obrigatório com kind=pix.

                                                                                                                                                                                                                            Valor da chave PIX.

                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                            12345678000199
                                                                                                                                                                                                                          • pixNametextoopcional

                                                                                                                                                                                                                            Só com kind=pix.

                                                                                                                                                                                                                            Nome exibido como recebedor (padrão "Pix" quando vazio).

                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                            Loja Centro

                                                                                                                                                                                                                        Respostas

                                                                                                                                                                                                                        • 200Resposta rápida atualizada; vem inteira.
                                                                                                                                                                                                                        • 400O WhatsApp recusou o pedido (WHATSAPP_REJECTED). O motivo vem em reason: invalid_body (corpo malformado ou campo desconhecido) ou validation_failed (valor fora do permitido); a mensagem em error explica.
                                                                                                                                                                                                                        • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                        • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                        • 404Nenhuma resposta rápida com esse id neste dispositivo (WHATSAPP_NOT_FOUND).
                                                                                                                                                                                                                        • 409Conflito com o estado do dispositivo ou da resposta (WHATSAPP_CONFLICT, ou DEVICE_DISCONNECTED quando o motivo é o dispositivo desconectado). O motivo vem em reason: instance_not_paired (o dispositivo ainda não foi conectado ao WhatsApp; conecte antes) ou instance_not_connected (resposta do WhatsApp Business, onWhatsApp, só é criada, editada ou apagada com o dispositivo conectado); conflict: outra edição trocou a mensagem ao mesmo tempo, nada foi gravado, leia a resposta de novo e repita.
                                                                                                                                                                                                                        • 413Corpo acima de 28 MB (PAYLOAD_TOO_LARGE). Para arquivos grandes, envie file por URL.
                                                                                                                                                                                                                        • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                        • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                        • 502Falha temporária ao falar com o WhatsApp (PROVIDER_ERROR); tente de novo em instantes. Com respostas onWhatsApp, também quando a mudança não chegou ao WhatsApp Business (reason whatsapp_sync_failed): nada foi gravado nem apagado.
                                                                                                                                                                                                                        • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                        Erros possíveis 17

                                                                                                                                                                                                                          Requisição

                                                                                                                                                                                                                          curl --request PATCH \  --url 'https://dropestore.com/wp-json/wdm/v1/quick-replies/qr_8f2k1m9x' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "shortCut": "endereco-centro"}'

                                                                                                                                                                                                                          Resposta

                                                                                                                                                                                                                          200 JSON
                                                                                                                                                                                                                          {
                                                                                                                                                                                                                            "success": true,
                                                                                                                                                                                                                            "data": {
                                                                                                                                                                                                                              "id": "qr_8f2k1m9x",
                                                                                                                                                                                                                              "shortCut": "endereco-centro",
                                                                                                                                                                                                                              "aiDescription": "",
                                                                                                                                                                                                                              "onWhatsApp": false,
                                                                                                                                                                                                                              "message": {
                                                                                                                                                                                                                                "kind": "location",
                                                                                                                                                                                                                                "name": "Loja Centro",
                                                                                                                                                                                                                                "address": "Av. Paulista, 1000",
                                                                                                                                                                                                                                "latitude": -23.5614,
                                                                                                                                                                                                                                "longitude": -46.6559
                                                                                                                                                                                                                              },
                                                                                                                                                                                                                              "createdAt": "2026-10-20T12:00:00Z",
                                                                                                                                                                                                                              "updatedAt": "2026-10-20T12:30:00Z"
                                                                                                                                                                                                                            }
                                                                                                                                                                                                                          }

                                                                                                                                                                                                                          Apagar resposta rápida

                                                                                                                                                                                                                          DEL /quick-replies/{id}
                                                                                                                                                                                                                          • Token do dispositivo
                                                                                                                                                                                                                          • Não conta mensagem
                                                                                                                                                                                                                          • Corpo até 1 MB

                                                                                                                                                                                                                          Apaga a resposta rápida e o arquivo guardado, se houver. Respostas no WhatsApp Business (onWhatsApp) são apagadas lá também: para isso o dispositivo precisa estar conectado, e, se o WhatsApp Business não confirmar, nada é apagado (502).

                                                                                                                                                                                                                          O sucesso responde 200 com {"success":true,"data":null}.

                                                                                                                                                                                                                          Parâmetros no caminho

                                                                                                                                                                                                                          Troque o trecho entre chaves no caminho pelo valor.

                                                                                                                                                                                                                          • idtextoobrigatório

                                                                                                                                                                                                                            ID da resposta rápida.

                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                            qr_8f2k1m9x

                                                                                                                                                                                                                          Respostas

                                                                                                                                                                                                                          • 200Resposta rápida apagada (data vem null).
                                                                                                                                                                                                                          • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                          • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                          • 404Nenhuma resposta rápida com esse id neste dispositivo (WHATSAPP_NOT_FOUND).
                                                                                                                                                                                                                          • 409Conflito com o estado do dispositivo ou da resposta (WHATSAPP_CONFLICT, ou DEVICE_DISCONNECTED quando o motivo é o dispositivo desconectado). O motivo vem em reason: instance_not_paired (o dispositivo ainda não foi conectado ao WhatsApp; conecte antes) ou instance_not_connected (resposta do WhatsApp Business, onWhatsApp, só é criada, editada ou apagada com o dispositivo conectado).
                                                                                                                                                                                                                          • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                          • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                          • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                          • 502Falha temporária ao falar com o WhatsApp (PROVIDER_ERROR); tente de novo em instantes. Com respostas onWhatsApp, também quando a mudança não chegou ao WhatsApp Business (reason whatsapp_sync_failed): nada foi gravado nem apagado.
                                                                                                                                                                                                                          • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                          Erros possíveis 17

                                                                                                                                                                                                                            Requisição

                                                                                                                                                                                                                            curl --request DELETE \  --url 'https://dropestore.com/wp-json/wdm/v1/quick-replies/qr_8f2k1m9x' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                                                                                                                                                                                            Resposta

                                                                                                                                                                                                                            200 JSON
                                                                                                                                                                                                                            {
                                                                                                                                                                                                                              "success": true,
                                                                                                                                                                                                                              "data": null
                                                                                                                                                                                                                            }

                                                                                                                                                                                                                            Referência 26

                                                                                                                                                                                                                            Canais

                                                                                                                                                                                                                            Crie e administre canais, publique e acompanhe mensagens.

                                                                                                                                                                                                                            Rotas para canais do WhatsApp: criar, seguir e administrar canais, ler os posts publicados, editar e apagar posts recentes e consultar visualizações e reações.

                                                                                                                                                                                                                            Ler a introdução completa
                                                                                                                                                                                                                            • Os canais usam identificadores terminados em @newsletter. Preserve o JID completo: ele não equivale ao número de um contato nem ao JID de um grupo.
                                                                                                                                                                                                                            • POST /newsletter/messages traz o conteúdo dos posts; as visualizações (viewsCount) e as reações (reactionCounts) vêm em cada post dessa rota, não por evento de webhook.
                                                                                                                                                                                                                            • Para editar ou apagar posts de canal, use POST /newsletter/messages/edit e POST /newsletter/messages/delete, não as rotas de mensagem comum (POST /message/edit e POST /message/delete).
                                                                                                                                                                                                                            • Para publicar no canal, use as rotas de envio (como POST /send/text) com number igual ao JID do canal. Publicações em canal não entram na fila de envio assíncrono.
                                                                                                                                                                                                                            • POST /newsletter/updates está obsoleta.

                                                                                                                                                                                                                            Campos opcionais comuns

                                                                                                                                                                                                                            Valem nas rotas deste grupo que os listam nos próprios parâmetros.

                                                                                                                                                                                                                            • jidtextoopcional

                                                                                                                                                                                                                              JID do canal: o formato completo 120363123456789012@newsletter ou só o identificador numérico.

                                                                                                                                                                                                                            Criar canal

                                                                                                                                                                                                                            POST /newsletter/create
                                                                                                                                                                                                                            • Token do dispositivo
                                                                                                                                                                                                                            • Não conta mensagem
                                                                                                                                                                                                                            • Corpo até 20 MB

                                                                                                                                                                                                                            Cria um canal no WhatsApp com a conta conectada ao dispositivo.

                                                                                                                                                                                                                            • name é obrigatório; description e picture são opcionais.
                                                                                                                                                                                                                            • picture aceita URL HTTP/HTTPS, base64 puro ou data URI; imagem acima de 1 MB é recusada.
                                                                                                                                                                                                                            Ver mais detalhes

                                                                                                                                                                                                                            Para publicar no canal, use as rotas de envio (como POST /send/text e POST /send/media) com number igual ao JID completo do canal, terminado em @newsletter. Publicações em canal não entram na fila de envio assíncrono, mesmo com async: true.

                                                                                                                                                                                                                            Corpo da requisição (JSON)

                                                                                                                                                                                                                            Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                            • nametextoobrigatório

                                                                                                                                                                                                                              Nome público do canal.

                                                                                                                                                                                                                              Exemplo
                                                                                                                                                                                                                              Ofertas da Loja Exemplo
                                                                                                                                                                                                                            • descriptiontextoopcional

                                                                                                                                                                                                                              Descrição pública do canal.

                                                                                                                                                                                                                              Exemplo
                                                                                                                                                                                                                              Promoções e novidades da Loja Exemplo, todo dia às 9h.
                                                                                                                                                                                                                            • picturetextoopcional

                                                                                                                                                                                                                              URL HTTP/HTTPS, base64 puro ou data URI. Imagem acima de 1 MB é recusada.

                                                                                                                                                                                                                              Imagem do canal.

                                                                                                                                                                                                                              Exemplo
                                                                                                                                                                                                                              https://seusite.com.br/imagens/canal.png

                                                                                                                                                                                                                            Respostas

                                                                                                                                                                                                                            • 200Canal criado com sucesso
                                                                                                                                                                                                                            • 400Corpo inválido
                                                                                                                                                                                                                            • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                            • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                            • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                            • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                            • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                            • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After. Caso do WhatsApp (502): O WhatsApp não devolveu o canal criado (resposta vazia).
                                                                                                                                                                                                                            • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                            Erros possíveis 15

                                                                                                                                                                                                                              Requisição

                                                                                                                                                                                                                              curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/create' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "name": "Ofertas da Loja Exemplo",  "description": "Promoções e novidades da Loja Exemplo, todo dia às 9h.",  "picture": "https://seusite.com.br/imagens/canal.png"}'

                                                                                                                                                                                                                              Resposta

                                                                                                                                                                                                                              200 JSON
                                                                                                                                                                                                                              {
                                                                                                                                                                                                                                "success": true,
                                                                                                                                                                                                                                "data": {
                                                                                                                                                                                                                                  "response": []
                                                                                                                                                                                                                                }
                                                                                                                                                                                                                              }

                                                                                                                                                                                                                              Listar canais inscritos

                                                                                                                                                                                                                              GET /newsletter/list
                                                                                                                                                                                                                              • Token do dispositivo
                                                                                                                                                                                                                              • Não conta mensagem

                                                                                                                                                                                                                              Lista os canais seguidos pela conta conectada. Use para montar uma tela de canais antes de consultar posts, silenciar notificações ou deixar de seguir.

                                                                                                                                                                                                                              Parâmetros

                                                                                                                                                                                                                              Esta rota não recebe parâmetros.

                                                                                                                                                                                                                              Respostas

                                                                                                                                                                                                                              • 200Lista de canais recuperada com sucesso
                                                                                                                                                                                                                              • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                                                                                                                                              • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                              • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                              • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                              • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                              • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                              • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                              • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                              Erros possíveis 15

                                                                                                                                                                                                                                Requisição

                                                                                                                                                                                                                                curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/list' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                                                                                                                                                                                                Resposta

                                                                                                                                                                                                                                200 JSON
                                                                                                                                                                                                                                {
                                                                                                                                                                                                                                  "success": true,
                                                                                                                                                                                                                                  "data": {
                                                                                                                                                                                                                                    "response": [
                                                                                                                                                                                                                                      []
                                                                                                                                                                                                                                    ]
                                                                                                                                                                                                                                  }
                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                Buscar informações de um canal

                                                                                                                                                                                                                                POST /newsletter/info
                                                                                                                                                                                                                                • Token do dispositivo
                                                                                                                                                                                                                                • Não conta mensagem
                                                                                                                                                                                                                                • Corpo até 1 MB

                                                                                                                                                                                                                                Retorna nome, descrição, imagem e demais informações disponíveis de um canal pelo jid. Use antes de exibir o canal ou executar ações administrativas.

                                                                                                                                                                                                                                Corpo da requisição (JSON)

                                                                                                                                                                                                                                Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                • jidtextoobrigatório

                                                                                                                                                                                                                                  JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                  Exemplo
                                                                                                                                                                                                                                  120363123456789012@newsletter

                                                                                                                                                                                                                                Respostas

                                                                                                                                                                                                                                • 200Informações do canal recuperadas com sucesso
                                                                                                                                                                                                                                • 400JID inválido
                                                                                                                                                                                                                                • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                Erros possíveis 15

                                                                                                                                                                                                                                  Requisição

                                                                                                                                                                                                                                  curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/info' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter"}'

                                                                                                                                                                                                                                  Resposta

                                                                                                                                                                                                                                  200 JSON
                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                    "success": true,
                                                                                                                                                                                                                                    "data": {
                                                                                                                                                                                                                                      "response": []
                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                  Assinar atualizações temporárias de um canal

                                                                                                                                                                                                                                  POST /newsletter/subscribe
                                                                                                                                                                                                                                  • Token do dispositivo
                                                                                                                                                                                                                                  • Não conta mensagem
                                                                                                                                                                                                                                  • Corpo até 1 MB

                                                                                                                                                                                                                                  Assina, por tempo limitado, as atualizações internas do WhatsApp para um canal.

                                                                                                                                                                                                                                  • A resposta traz só a duração da assinatura (por exemplo, 5m0s).
                                                                                                                                                                                                                                  • Esta rota não cria nenhum evento de webhook.

                                                                                                                                                                                                                                  Corpo da requisição (JSON)

                                                                                                                                                                                                                                  Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                  • jidtextoobrigatório

                                                                                                                                                                                                                                    JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                    Exemplo
                                                                                                                                                                                                                                    120363123456789012@newsletter

                                                                                                                                                                                                                                  Respostas

                                                                                                                                                                                                                                  • 200Assinatura criada com sucesso
                                                                                                                                                                                                                                  • 400JID inválido
                                                                                                                                                                                                                                  • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                  • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                  • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                  • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                  • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                  • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                  • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                  Erros possíveis 15

                                                                                                                                                                                                                                    Requisição

                                                                                                                                                                                                                                    curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/subscribe' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter"}'

                                                                                                                                                                                                                                    Resposta

                                                                                                                                                                                                                                    200 JSON
                                                                                                                                                                                                                                    {
                                                                                                                                                                                                                                      "success": true,
                                                                                                                                                                                                                                      "data": {
                                                                                                                                                                                                                                        "response": "5m0s"
                                                                                                                                                                                                                                      }
                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                    Buscar mensagens de um canal

                                                                                                                                                                                                                                    POST /newsletter/messages
                                                                                                                                                                                                                                    • Token do dispositivo
                                                                                                                                                                                                                                    • Não conta mensagem
                                                                                                                                                                                                                                    • Corpo até 1 MB

                                                                                                                                                                                                                                    Busca os posts de um canal direto no WhatsApp, sem depender de mensagens salvas. Use para carregar os posts recentes de um canal e paginar para trás.

                                                                                                                                                                                                                                    Identificação do canal:

                                                                                                                                                                                                                                    • envie jid com o JID completo (120363123456789012@newsletter) ou só o identificador numérico
                                                                                                                                                                                                                                    • por compatibilidade, a API também aceita o identificador numérico no campo id, no lugar de jid
                                                                                                                                                                                                                                    Ver mais detalhes

                                                                                                                                                                                                                                    Observações:

                                                                                                                                                                                                                                    • count define quantos posts voltam
                                                                                                                                                                                                                                    • para a página anterior, envie em beforeid o serverid do post mais antigo que você já tem
                                                                                                                                                                                                                                    • os posts vêm no campo response; cada post traz serverid, messageid, type, timestamp, as visualizações em viewsCount e as reações em reactionCounts (emoji e quantidade)

                                                                                                                                                                                                                                    Corpo da requisição (JSON)

                                                                                                                                                                                                                                    Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                    • jidtextoobrigatório

                                                                                                                                                                                                                                      Também aceito no campo id (apelido mantido por compatibilidade).

                                                                                                                                                                                                                                      JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                      Exemplo
                                                                                                                                                                                                                                      120363123456789012@newsletter
                                                                                                                                                                                                                                    • countinteiroopcional

                                                                                                                                                                                                                                      Quantidade de posts a buscar.

                                                                                                                                                                                                                                      Limites
                                                                                                                                                                                                                                      mínimo 1
                                                                                                                                                                                                                                      Exemplo
                                                                                                                                                                                                                                      20
                                                                                                                                                                                                                                    • beforeidinteiroopcional

                                                                                                                                                                                                                                      Envie o serverid do post mais antigo da página anterior.

                                                                                                                                                                                                                                      Retorna os posts anteriores ao serverid informado (paginação para trás).

                                                                                                                                                                                                                                      Limites
                                                                                                                                                                                                                                      mínimo 1
                                                                                                                                                                                                                                      Exemplo
                                                                                                                                                                                                                                      12345

                                                                                                                                                                                                                                    Respostas

                                                                                                                                                                                                                                    • 200Mensagens do canal recuperadas com sucesso
                                                                                                                                                                                                                                    • 400Corpo inválido ou JID do canal inválido
                                                                                                                                                                                                                                    • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                    • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                    • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                    • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                    • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                    • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                    • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                    Erros possíveis 15

                                                                                                                                                                                                                                      Requisição

                                                                                                                                                                                                                                      curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/messages' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter",  "count": 20}'

                                                                                                                                                                                                                                      Resposta

                                                                                                                                                                                                                                      200 JSON
                                                                                                                                                                                                                                      {
                                                                                                                                                                                                                                        "success": true,
                                                                                                                                                                                                                                        "data": {
                                                                                                                                                                                                                                          "response": [
                                                                                                                                                                                                                                            {
                                                                                                                                                                                                                                              "messageid": "3EB0B4302B3A8A52F7A1",
                                                                                                                                                                                                                                              "serverid": 12345,
                                                                                                                                                                                                                                              "type": "text",
                                                                                                                                                                                                                                              "timestamp": "2026-03-24T18:20:00Z",
                                                                                                                                                                                                                                              "viewsCount": 1200,
                                                                                                                                                                                                                                              "reactionCounts": {
                                                                                                                                                                                                                                                "\ud83d\udc4d": 22,
                                                                                                                                                                                                                                                "\ud83d\udd25": 7
                                                                                                                                                                                                                                              },
                                                                                                                                                                                                                                              "message": {
                                                                                                                                                                                                                                                "conversation": "Post do canal"
                                                                                                                                                                                                                                              }
                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                          ]
                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                      Editar mensagem recente de um canal

                                                                                                                                                                                                                                      POST /newsletter/messages/edit
                                                                                                                                                                                                                                      • Token do dispositivo
                                                                                                                                                                                                                                      • Não conta mensagem
                                                                                                                                                                                                                                      • Corpo até 1 MB

                                                                                                                                                                                                                                      Edita um post recente de um canal direto no WhatsApp, sem depender de mensagens salvas.

                                                                                                                                                                                                                                      • Identifique o canal por jid e o post por messageid ou serverid (envie ao menos um dos dois).
                                                                                                                                                                                                                                      • Envie o novo conteúdo em text ou caption (ao menos um dos dois).
                                                                                                                                                                                                                                      • Só posts dos tipos text, image, video e document podem ser editados.
                                                                                                                                                                                                                                      • Em posts de mídia, mediahandle pode informar o handle de mídia já conhecido.
                                                                                                                                                                                                                                      • A API procura o post nas páginas recentes do canal; count e maxpages controlam o tamanho dessa busca. Se o post não estiver nessa janela, a resposta é 404.

                                                                                                                                                                                                                                      Para posts de canal, use esta rota, não POST /message/edit.

                                                                                                                                                                                                                                      Corpo da requisição (JSON)

                                                                                                                                                                                                                                      Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                      • jidtextoobrigatório

                                                                                                                                                                                                                                        JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                                        120363123456789012@newsletter
                                                                                                                                                                                                                                      • messageidtextoopcional

                                                                                                                                                                                                                                        Envie messageid ou serverid (ao menos um dos dois).

                                                                                                                                                                                                                                        ID lógico do post no canal, como vem em messageid nos posts de POST /newsletter/messages.

                                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                                        3EB0B4302B3A8A52F7A1
                                                                                                                                                                                                                                      • serveridinteiroopcional

                                                                                                                                                                                                                                        Envie messageid ou serverid (ao menos um dos dois).

                                                                                                                                                                                                                                        Identificador sequencial do post no canal, como vem em serverid nos posts de POST /newsletter/messages.

                                                                                                                                                                                                                                        Limites
                                                                                                                                                                                                                                        mínimo 1
                                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                                        12345
                                                                                                                                                                                                                                      • texttextoopcional

                                                                                                                                                                                                                                        Envie text ou caption (ao menos um dos dois).

                                                                                                                                                                                                                                        Novo texto do post, ou nova legenda de um post de mídia.

                                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                                        Post atualizado
                                                                                                                                                                                                                                      • captiontextoopcional

                                                                                                                                                                                                                                        Envie text ou caption (ao menos um dos dois).

                                                                                                                                                                                                                                        Mesmo papel de text, para atualizar a legenda de posts de mídia.

                                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                                        Nova legenda
                                                                                                                                                                                                                                      • mediahandletextoopcional

                                                                                                                                                                                                                                        Só para posts de mídia (image, video, document).

                                                                                                                                                                                                                                        Handle de mídia já conhecido, usado quando a edição precisa preservar a mídia do post.

                                                                                                                                                                                                                                      • countinteiroopcional

                                                                                                                                                                                                                                        Quantidade de posts buscados por página ao localizar o post.

                                                                                                                                                                                                                                        Limites
                                                                                                                                                                                                                                        mínimo 1
                                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                                        100
                                                                                                                                                                                                                                      • maxpagesinteiroopcional

                                                                                                                                                                                                                                        Quantidade máxima de páginas buscadas ao localizar o post.

                                                                                                                                                                                                                                        Limites
                                                                                                                                                                                                                                        mínimo 1
                                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                                        5

                                                                                                                                                                                                                                      Regras

                                                                                                                                                                                                                                      • Informe pelo menos um entre messageid e serverid.
                                                                                                                                                                                                                                      • Informe pelo menos um entre text e caption.

                                                                                                                                                                                                                                      Respostas

                                                                                                                                                                                                                                      • 200Mensagem do canal editada com sucesso
                                                                                                                                                                                                                                      • 400Corpo inválido, mensagem não editável, mensagem alvo não identificada ou canal inválido
                                                                                                                                                                                                                                      • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                      • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                      • 404Mensagem do canal não encontrada na janela recente consultada
                                                                                                                                                                                                                                      • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                      • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                      • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                      • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                      • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                      Erros possíveis 16

                                                                                                                                                                                                                                        Requisição

                                                                                                                                                                                                                                        curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/messages/edit' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter",  "messageid": "3EB0B4302B3A8A52F7A1",  "text": "Oferta atualizada: frete grátis até domingo."}'

                                                                                                                                                                                                                                        Resposta

                                                                                                                                                                                                                                        200 JSON
                                                                                                                                                                                                                                        {
                                                                                                                                                                                                                                          "success": true,
                                                                                                                                                                                                                                          "data": {
                                                                                                                                                                                                                                            "response": {
                                                                                                                                                                                                                                              "jid": "120363123456789012@newsletter",
                                                                                                                                                                                                                                              "targetmessageid": "3EB0B4302B3A8A52F7A1",
                                                                                                                                                                                                                                              "targetserverid": 12345,
                                                                                                                                                                                                                                              "messageid": "3EB01234567890ABCDEF",
                                                                                                                                                                                                                                              "serverid": 12346
                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                          }
                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                        Apagar mensagem recente de um canal

                                                                                                                                                                                                                                        POST /newsletter/messages/delete
                                                                                                                                                                                                                                        • Token do dispositivo
                                                                                                                                                                                                                                        • Não conta mensagem
                                                                                                                                                                                                                                        • Corpo até 1 MB

                                                                                                                                                                                                                                        Apaga um post recente de um canal direto no WhatsApp, sem depender de mensagens salvas. O post é apagado para todos no canal.

                                                                                                                                                                                                                                        • Identifique o canal por jid e o post por messageid ou serverid (envie ao menos um dos dois).
                                                                                                                                                                                                                                        • A API procura o post nas páginas recentes do canal; count e maxpages controlam o tamanho dessa busca. Se o post não estiver nessa janela, a resposta é 404.

                                                                                                                                                                                                                                        Para posts de canal, use esta rota, não POST /message/delete.

                                                                                                                                                                                                                                        Corpo da requisição (JSON)

                                                                                                                                                                                                                                        Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                        • jidtextoobrigatório

                                                                                                                                                                                                                                          JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                          Exemplo
                                                                                                                                                                                                                                          120363123456789012@newsletter
                                                                                                                                                                                                                                        • messageidtextoopcional

                                                                                                                                                                                                                                          Envie messageid ou serverid (ao menos um dos dois).

                                                                                                                                                                                                                                          ID lógico do post no canal, como vem em messageid nos posts de POST /newsletter/messages.

                                                                                                                                                                                                                                          Exemplo
                                                                                                                                                                                                                                          3EB0B4302B3A8A52F7A1
                                                                                                                                                                                                                                        • serveridinteiroopcional

                                                                                                                                                                                                                                          Envie messageid ou serverid (ao menos um dos dois).

                                                                                                                                                                                                                                          Identificador sequencial do post no canal, como vem em serverid nos posts de POST /newsletter/messages.

                                                                                                                                                                                                                                          Limites
                                                                                                                                                                                                                                          mínimo 1
                                                                                                                                                                                                                                          Exemplo
                                                                                                                                                                                                                                          12345
                                                                                                                                                                                                                                        • countinteiroopcional

                                                                                                                                                                                                                                          Quantidade de posts buscados por página ao localizar o post.

                                                                                                                                                                                                                                          Limites
                                                                                                                                                                                                                                          mínimo 1
                                                                                                                                                                                                                                          Exemplo
                                                                                                                                                                                                                                          100
                                                                                                                                                                                                                                        • maxpagesinteiroopcional

                                                                                                                                                                                                                                          Quantidade máxima de páginas buscadas ao localizar o post.

                                                                                                                                                                                                                                          Limites
                                                                                                                                                                                                                                          mínimo 1
                                                                                                                                                                                                                                          Exemplo
                                                                                                                                                                                                                                          5

                                                                                                                                                                                                                                        Regras

                                                                                                                                                                                                                                        • Informe pelo menos um entre messageid e serverid.

                                                                                                                                                                                                                                        Respostas

                                                                                                                                                                                                                                        • 200Mensagem do canal deletada com sucesso
                                                                                                                                                                                                                                        • 400Corpo inválido ou canal inválido
                                                                                                                                                                                                                                        • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                        • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                        • 404Mensagem do canal não encontrada na janela recente consultada
                                                                                                                                                                                                                                        • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                        • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                        • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                        • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                        • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                        Erros possíveis 16

                                                                                                                                                                                                                                          Requisição

                                                                                                                                                                                                                                          curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/messages/delete' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter",  "messageid": "3EB0B4302B3A8A52F7A1"}'

                                                                                                                                                                                                                                          Resposta

                                                                                                                                                                                                                                          200 JSON
                                                                                                                                                                                                                                          {
                                                                                                                                                                                                                                            "success": true,
                                                                                                                                                                                                                                            "data": {
                                                                                                                                                                                                                                              "response": {
                                                                                                                                                                                                                                                "jid": "120363123456789012@newsletter",
                                                                                                                                                                                                                                                "targetmessageid": "3EB0B4302B3A8A52F7A1",
                                                                                                                                                                                                                                                "targetserverid": 12345,
                                                                                                                                                                                                                                                "messageid": "3EB01234567890ABCDEF",
                                                                                                                                                                                                                                                "serverid": 12346
                                                                                                                                                                                                                                              }
                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                          Buscar atualizações de mensagens de um canal

                                                                                                                                                                                                                                          POST /newsletter/updates
                                                                                                                                                                                                                                          • Token do dispositivo
                                                                                                                                                                                                                                          • Não conta mensagem
                                                                                                                                                                                                                                          • Corpo até 1 MB
                                                                                                                                                                                                                                          • Obsoleta, mantida por compatibilidade

                                                                                                                                                                                                                                          Obsoleta. Não use. Para visualizações e reações dos posts, use POST /newsletter/messages, que traz viewsCount e reactionCounts em cada post.

                                                                                                                                                                                                                                          O WhatsApp não responde à consulta de atualizações desta rota: depois de 10 segundos de espera, a chamada termina em erro (504 PROVIDER_TIMEOUT).

                                                                                                                                                                                                                                          Ver mais detalhes

                                                                                                                                                                                                                                          Parâmetros mantidos por compatibilidade:

                                                                                                                                                                                                                                          • afterid filtra atualizações depois de um serverid
                                                                                                                                                                                                                                          • since filtra pelo momento da atualização, em segundos ou milissegundos

                                                                                                                                                                                                                                          Corpo da requisição (JSON)

                                                                                                                                                                                                                                          Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                          • jidtextoobrigatório

                                                                                                                                                                                                                                            JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                                            120363123456789012@newsletter
                                                                                                                                                                                                                                          • countinteiroopcional

                                                                                                                                                                                                                                            Quantidade máxima de atualizações retornadas.

                                                                                                                                                                                                                                            Limites
                                                                                                                                                                                                                                            mínimo 1
                                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                                            50
                                                                                                                                                                                                                                          • afteridinteiroopcional

                                                                                                                                                                                                                                            Retorna só atualizações posteriores ao serverid informado.

                                                                                                                                                                                                                                            Limites
                                                                                                                                                                                                                                            mínimo 1
                                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                                            12345
                                                                                                                                                                                                                                          • sinceinteiroopcional

                                                                                                                                                                                                                                            Acima de 1000000000000, o valor é lido como milissegundos; caso contrário, como segundos.

                                                                                                                                                                                                                                            Momento de corte (timestamp Unix).

                                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                                            1710000000

                                                                                                                                                                                                                                          Respostas

                                                                                                                                                                                                                                          • 200Updates de mensagens do canal recuperados com sucesso
                                                                                                                                                                                                                                          • 400Corpo inválido ou JID do canal inválido
                                                                                                                                                                                                                                          • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                          • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                          • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                          • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                          • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                          • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR).
                                                                                                                                                                                                                                          • 504Tempo esgotado (PROVIDER_TIMEOUT). Nesta rota obsoleta é o resultado esperado: o WhatsApp não responde à consulta de atualizações em 10 segundos. Use POST /newsletter/messages.
                                                                                                                                                                                                                                          Erros possíveis 15

                                                                                                                                                                                                                                            Requisição

                                                                                                                                                                                                                                            curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/updates' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter",  "count": 50,  "afterid": 12345}'

                                                                                                                                                                                                                                            Resposta

                                                                                                                                                                                                                                            200 JSON
                                                                                                                                                                                                                                            {
                                                                                                                                                                                                                                              "success": true,
                                                                                                                                                                                                                                              "data": {
                                                                                                                                                                                                                                                "response": [
                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                    "messageid": "3EB0B4302B3A8A52F7A1",
                                                                                                                                                                                                                                                    "serverid": 12345,
                                                                                                                                                                                                                                                    "type": "text",
                                                                                                                                                                                                                                                    "timestamp": "2026-03-24T19:00:00Z",
                                                                                                                                                                                                                                                    "viewsCount": 1540,
                                                                                                                                                                                                                                                    "reactionCounts": {
                                                                                                                                                                                                                                                      "\ud83d\udc4d": 35,
                                                                                                                                                                                                                                                      "\ud83d\udd25": 11
                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                  }
                                                                                                                                                                                                                                                ]
                                                                                                                                                                                                                                              }
                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                            Marcar posts do canal como visualizados

                                                                                                                                                                                                                                            POST /newsletter/viewed
                                                                                                                                                                                                                                            • Token do dispositivo
                                                                                                                                                                                                                                            • Não conta mensagem
                                                                                                                                                                                                                                            • Corpo até 1 MB

                                                                                                                                                                                                                                            Marca um ou mais posts do canal como visualizados.

                                                                                                                                                                                                                                            • Envie em serverids a lista de serverid dos posts; o serverid vem em cada post de POST /newsletter/messages.

                                                                                                                                                                                                                                            Corpo da requisição (JSON)

                                                                                                                                                                                                                                            Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                            • jidtextoobrigatório

                                                                                                                                                                                                                                              JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                              Exemplo
                                                                                                                                                                                                                                              120363123456789012@newsletter
                                                                                                                                                                                                                                            • serveridslista de inteirosobrigatório

                                                                                                                                                                                                                                              Lista de serverid dos posts a marcar como visualizados.

                                                                                                                                                                                                                                            Respostas

                                                                                                                                                                                                                                            • 200Posts marcados como visualizados
                                                                                                                                                                                                                                            • 400Corpo inválido ou faltando serverids
                                                                                                                                                                                                                                            • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                            • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                            • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                            • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                            • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                            • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                            • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                            Erros possíveis 15

                                                                                                                                                                                                                                              Requisição

                                                                                                                                                                                                                                              curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/viewed' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter",  "serverids": [    12345,    12346  ]}'

                                                                                                                                                                                                                                              Resposta

                                                                                                                                                                                                                                              200 JSON
                                                                                                                                                                                                                                              {
                                                                                                                                                                                                                                                "success": true,
                                                                                                                                                                                                                                                "data": {
                                                                                                                                                                                                                                                  "response": true
                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                              Reagir a um post do canal

                                                                                                                                                                                                                                              POST /newsletter/reaction
                                                                                                                                                                                                                                              • Token do dispositivo
                                                                                                                                                                                                                                              • Não conta mensagem
                                                                                                                                                                                                                                              • Corpo até 1 MB

                                                                                                                                                                                                                                              Envia, altera ou remove uma reação em um post do canal.

                                                                                                                                                                                                                                              • serverid identifica o post.
                                                                                                                                                                                                                                              • reaction traz o emoji; envie reaction vazio ("") para remover a reação.
                                                                                                                                                                                                                                              • reactionmessageid é opcional; sem ele, o WhatsApp gera o ID da reação.

                                                                                                                                                                                                                                              Corpo da requisição (JSON)

                                                                                                                                                                                                                                              Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                              • jidtextoobrigatório

                                                                                                                                                                                                                                                JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                                Exemplo
                                                                                                                                                                                                                                                120363123456789012@newsletter
                                                                                                                                                                                                                                              • serveridinteiroobrigatório

                                                                                                                                                                                                                                                serverid do post que recebe a reação.

                                                                                                                                                                                                                                                Exemplo
                                                                                                                                                                                                                                                12345
                                                                                                                                                                                                                                              • reactiontextoopcional

                                                                                                                                                                                                                                                Texto vazio ("") remove a reação.

                                                                                                                                                                                                                                                Emoji da reação.

                                                                                                                                                                                                                                                Exemplo
                                                                                                                                                                                                                                              • reactionmessageidtextoopcional

                                                                                                                                                                                                                                                Opcional; se omitido, o WhatsApp gera o ID.

                                                                                                                                                                                                                                                ID da reação.

                                                                                                                                                                                                                                                Exemplo
                                                                                                                                                                                                                                                3EB0AABBCCDD

                                                                                                                                                                                                                                              Respostas

                                                                                                                                                                                                                                              • 200Reação aplicada com sucesso
                                                                                                                                                                                                                                              • 400Corpo inválido ou faltando serverid
                                                                                                                                                                                                                                              • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                              • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                              • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                              • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                              • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                              • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                              • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                              Erros possíveis 15

                                                                                                                                                                                                                                                Requisição

                                                                                                                                                                                                                                                curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/reaction' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter",  "serverid": 12345,  "reaction": "\ud83d\udd25"}'

                                                                                                                                                                                                                                                Resposta

                                                                                                                                                                                                                                                200 JSON
                                                                                                                                                                                                                                                {
                                                                                                                                                                                                                                                  "success": true,
                                                                                                                                                                                                                                                  "data": {
                                                                                                                                                                                                                                                    "response": true
                                                                                                                                                                                                                                                  }
                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                Seguir canal

                                                                                                                                                                                                                                                POST /newsletter/follow
                                                                                                                                                                                                                                                • Token do dispositivo
                                                                                                                                                                                                                                                • Não conta mensagem
                                                                                                                                                                                                                                                • Corpo até 1 MB

                                                                                                                                                                                                                                                Faz a conta conectada seguir um canal, que então passa a aparecer na listagem e fica disponível para consulta de posts.

                                                                                                                                                                                                                                                Corpo da requisição (JSON)

                                                                                                                                                                                                                                                Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                                • jidtextoobrigatório

                                                                                                                                                                                                                                                  JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                                  Exemplo
                                                                                                                                                                                                                                                  120363123456789012@newsletter

                                                                                                                                                                                                                                                Respostas

                                                                                                                                                                                                                                                • 200Canal seguido com sucesso
                                                                                                                                                                                                                                                • 400JID inválido
                                                                                                                                                                                                                                                • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                Erros possíveis 15

                                                                                                                                                                                                                                                  Requisição

                                                                                                                                                                                                                                                  curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/follow' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter"}'

                                                                                                                                                                                                                                                  Resposta

                                                                                                                                                                                                                                                  200 JSON
                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                    "success": true,
                                                                                                                                                                                                                                                    "data": {
                                                                                                                                                                                                                                                      "response": true
                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                  Deixar de seguir canal

                                                                                                                                                                                                                                                  POST /newsletter/unfollow
                                                                                                                                                                                                                                                  • Token do dispositivo
                                                                                                                                                                                                                                                  • Não conta mensagem
                                                                                                                                                                                                                                                  • Corpo até 1 MB

                                                                                                                                                                                                                                                  Remove o canal da lista seguida pela conta conectada sem apagar o canal nem seus posts.

                                                                                                                                                                                                                                                  Corpo da requisição (JSON)

                                                                                                                                                                                                                                                  Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                                  • jidtextoobrigatório

                                                                                                                                                                                                                                                    JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                                    Exemplo
                                                                                                                                                                                                                                                    120363123456789012@newsletter

                                                                                                                                                                                                                                                  Respostas

                                                                                                                                                                                                                                                  • 200Canal removido dos seguidos com sucesso
                                                                                                                                                                                                                                                  • 400JID inválido
                                                                                                                                                                                                                                                  • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                  • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                  • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                  • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                  • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                  • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                  • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                  Erros possíveis 15

                                                                                                                                                                                                                                                    Requisição

                                                                                                                                                                                                                                                    curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/unfollow' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter"}'

                                                                                                                                                                                                                                                    Resposta

                                                                                                                                                                                                                                                    200 JSON
                                                                                                                                                                                                                                                    {
                                                                                                                                                                                                                                                      "success": true,
                                                                                                                                                                                                                                                      "data": {
                                                                                                                                                                                                                                                        "response": true
                                                                                                                                                                                                                                                      }
                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                    Silenciar canal

                                                                                                                                                                                                                                                    POST /newsletter/mute
                                                                                                                                                                                                                                                    • Token do dispositivo
                                                                                                                                                                                                                                                    • Não conta mensagem
                                                                                                                                                                                                                                                    • Corpo até 1 MB

                                                                                                                                                                                                                                                    Silencia as notificações de um canal sem deixar de segui-lo; os posts continuam disponíveis para consulta.

                                                                                                                                                                                                                                                    Corpo da requisição (JSON)

                                                                                                                                                                                                                                                    Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                                    • jidtextoobrigatório

                                                                                                                                                                                                                                                      JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                                      Exemplo
                                                                                                                                                                                                                                                      120363123456789012@newsletter

                                                                                                                                                                                                                                                    Respostas

                                                                                                                                                                                                                                                    • 200Canal silenciado com sucesso
                                                                                                                                                                                                                                                    • 400JID inválido
                                                                                                                                                                                                                                                    • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                    • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                    • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                    • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                    • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                    • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                    • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                    Erros possíveis 15

                                                                                                                                                                                                                                                      Requisição

                                                                                                                                                                                                                                                      curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/mute' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter"}'

                                                                                                                                                                                                                                                      Resposta

                                                                                                                                                                                                                                                      200 JSON
                                                                                                                                                                                                                                                      {
                                                                                                                                                                                                                                                        "success": true,
                                                                                                                                                                                                                                                        "data": {
                                                                                                                                                                                                                                                          "response": true
                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                      Reativar notificações do canal

                                                                                                                                                                                                                                                      POST /newsletter/unmute
                                                                                                                                                                                                                                                      • Token do dispositivo
                                                                                                                                                                                                                                                      • Não conta mensagem
                                                                                                                                                                                                                                                      • Corpo até 1 MB

                                                                                                                                                                                                                                                      Reativa as notificações de um canal anteriormente silenciado, mantendo a inscrição e o histórico disponíveis.

                                                                                                                                                                                                                                                      Corpo da requisição (JSON)

                                                                                                                                                                                                                                                      Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                                      • jidtextoobrigatório

                                                                                                                                                                                                                                                        JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                                                        120363123456789012@newsletter

                                                                                                                                                                                                                                                      Respostas

                                                                                                                                                                                                                                                      • 200Mute removido com sucesso
                                                                                                                                                                                                                                                      • 400JID inválido
                                                                                                                                                                                                                                                      • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                      • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                      • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                      • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                      • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                      • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                      • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                      Erros possíveis 15

                                                                                                                                                                                                                                                        Requisição

                                                                                                                                                                                                                                                        curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/unmute' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter"}'

                                                                                                                                                                                                                                                        Resposta

                                                                                                                                                                                                                                                        200 JSON
                                                                                                                                                                                                                                                        {
                                                                                                                                                                                                                                                          "success": true,
                                                                                                                                                                                                                                                          "data": {
                                                                                                                                                                                                                                                            "response": true
                                                                                                                                                                                                                                                          }
                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                        Apagar canal

                                                                                                                                                                                                                                                        POST /newsletter/delete
                                                                                                                                                                                                                                                        • Token do dispositivo
                                                                                                                                                                                                                                                        • Não conta mensagem
                                                                                                                                                                                                                                                        • Corpo até 1 MB

                                                                                                                                                                                                                                                        Exclui um canal administrado pela conta conectada. Para só deixar de acompanhar um canal, use POST /newsletter/unfollow.

                                                                                                                                                                                                                                                        Corpo da requisição (JSON)

                                                                                                                                                                                                                                                        Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                                        • jidtextoobrigatório

                                                                                                                                                                                                                                                          O canal precisa ser administrado pela conta conectada.

                                                                                                                                                                                                                                                          JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                                          Exemplo
                                                                                                                                                                                                                                                          120363123456789012@newsletter

                                                                                                                                                                                                                                                        Respostas

                                                                                                                                                                                                                                                        • 200Canal deletado com sucesso
                                                                                                                                                                                                                                                        • 400JID inválido
                                                                                                                                                                                                                                                        • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                        • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                        • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                        • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                        • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                        • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                        • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                        Erros possíveis 15

                                                                                                                                                                                                                                                          Requisição

                                                                                                                                                                                                                                                          curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/delete' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter"}'

                                                                                                                                                                                                                                                          Resposta

                                                                                                                                                                                                                                                          200 JSON
                                                                                                                                                                                                                                                          {
                                                                                                                                                                                                                                                            "success": true,
                                                                                                                                                                                                                                                            "data": {
                                                                                                                                                                                                                                                              "response": true
                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                          Atualizar foto do canal

                                                                                                                                                                                                                                                          POST /newsletter/picture
                                                                                                                                                                                                                                                          • Token do dispositivo
                                                                                                                                                                                                                                                          • Não conta mensagem
                                                                                                                                                                                                                                                          • Corpo até 20 MB

                                                                                                                                                                                                                                                          Atualiza a imagem de um canal.

                                                                                                                                                                                                                                                          • picture aceita URL HTTP/HTTPS, base64 puro ou data URI.
                                                                                                                                                                                                                                                          • Imagem acima de 1 MB é recusada.

                                                                                                                                                                                                                                                          Corpo da requisição (JSON)

                                                                                                                                                                                                                                                          Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                                          • jidtextoobrigatório

                                                                                                                                                                                                                                                            JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                                                            120363123456789012@newsletter
                                                                                                                                                                                                                                                          • picturetextoobrigatório

                                                                                                                                                                                                                                                            URL HTTP/HTTPS, base64 puro ou data URI. Imagem acima de 1 MB é recusada.

                                                                                                                                                                                                                                                            Nova imagem do canal.

                                                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                                                            https://seusite.com.br/imagens/canal.png

                                                                                                                                                                                                                                                          Respostas

                                                                                                                                                                                                                                                          • 200Foto do canal atualizada com sucesso
                                                                                                                                                                                                                                                          • 400Corpo inválido
                                                                                                                                                                                                                                                          • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                          • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                          • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                          • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                          • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                          • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                          • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                          Erros possíveis 15

                                                                                                                                                                                                                                                            Requisição

                                                                                                                                                                                                                                                            curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/picture' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter",  "picture": "https://seusite.com.br/imagens/canal.png"}'

                                                                                                                                                                                                                                                            Resposta

                                                                                                                                                                                                                                                            200 JSON
                                                                                                                                                                                                                                                            {
                                                                                                                                                                                                                                                              "success": true,
                                                                                                                                                                                                                                                              "data": {
                                                                                                                                                                                                                                                                "response": true
                                                                                                                                                                                                                                                              }
                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                            Atualizar nome do canal

                                                                                                                                                                                                                                                            POST /newsletter/name
                                                                                                                                                                                                                                                            • Token do dispositivo
                                                                                                                                                                                                                                                            • Não conta mensagem
                                                                                                                                                                                                                                                            • Corpo até 1 MB

                                                                                                                                                                                                                                                            Altera o nome público de um canal administrado pela conta conectada.

                                                                                                                                                                                                                                                            Corpo da requisição (JSON)

                                                                                                                                                                                                                                                            Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                                            • jidtextoobrigatório

                                                                                                                                                                                                                                                              JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                                              Exemplo
                                                                                                                                                                                                                                                              120363123456789012@newsletter
                                                                                                                                                                                                                                                            • nametextoobrigatório

                                                                                                                                                                                                                                                              Novo nome público do canal.

                                                                                                                                                                                                                                                              Exemplo
                                                                                                                                                                                                                                                              Ofertas VIP da Loja Exemplo

                                                                                                                                                                                                                                                            Respostas

                                                                                                                                                                                                                                                            • 200Nome atualizado com sucesso
                                                                                                                                                                                                                                                            • 400Corpo inválido
                                                                                                                                                                                                                                                            • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                            • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                            • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                            • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                            • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                            • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                            • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                            Erros possíveis 15

                                                                                                                                                                                                                                                              Requisição

                                                                                                                                                                                                                                                              curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/name' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter",  "name": "Ofertas VIP da Loja Exemplo"}'

                                                                                                                                                                                                                                                              Resposta

                                                                                                                                                                                                                                                              200 JSON
                                                                                                                                                                                                                                                              {
                                                                                                                                                                                                                                                                "success": true,
                                                                                                                                                                                                                                                                "data": {
                                                                                                                                                                                                                                                                  "response": true
                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                              Atualizar descrição do canal

                                                                                                                                                                                                                                                              POST /newsletter/description
                                                                                                                                                                                                                                                              • Token do dispositivo
                                                                                                                                                                                                                                                              • Não conta mensagem
                                                                                                                                                                                                                                                              • Corpo até 1 MB

                                                                                                                                                                                                                                                              Atualiza a descrição pública do canal, que explica o tema, a frequência e o conteúdo publicado.

                                                                                                                                                                                                                                                              Corpo da requisição (JSON)

                                                                                                                                                                                                                                                              Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                                              • jidtextoobrigatório

                                                                                                                                                                                                                                                                JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                                                Exemplo
                                                                                                                                                                                                                                                                120363123456789012@newsletter
                                                                                                                                                                                                                                                              • descriptiontextoopcional

                                                                                                                                                                                                                                                                Nova descrição pública do canal.

                                                                                                                                                                                                                                                                Exemplo
                                                                                                                                                                                                                                                                Promoções e novidades da Loja Exemplo, todo dia às 9h.

                                                                                                                                                                                                                                                              Respostas

                                                                                                                                                                                                                                                              • 200Descrição atualizada com sucesso
                                                                                                                                                                                                                                                              • 400Corpo inválido ou JID inválido
                                                                                                                                                                                                                                                              • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                              • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                              • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                              • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                              • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                              • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                              • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                              Erros possíveis 15

                                                                                                                                                                                                                                                                Requisição

                                                                                                                                                                                                                                                                curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/description' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter",  "description": "Promoções e novidades da Loja Exemplo, todo dia às 9h."}'

                                                                                                                                                                                                                                                                Resposta

                                                                                                                                                                                                                                                                200 JSON
                                                                                                                                                                                                                                                                {
                                                                                                                                                                                                                                                                  "success": true,
                                                                                                                                                                                                                                                                  "data": {
                                                                                                                                                                                                                                                                    "response": true
                                                                                                                                                                                                                                                                  }
                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                Atualizar configurações do canal

                                                                                                                                                                                                                                                                POST /newsletter/settings
                                                                                                                                                                                                                                                                • Token do dispositivo
                                                                                                                                                                                                                                                                • Não conta mensagem
                                                                                                                                                                                                                                                                • Corpo até 1 MB

                                                                                                                                                                                                                                                                Atualiza as configurações de um canal. Hoje, esta rota controla só reactionCodes, a configuração de reações do canal.

                                                                                                                                                                                                                                                                Valores aceitos em reactionCodes: all, basic, none ou blocklist.

                                                                                                                                                                                                                                                                Corpo da requisição (JSON)

                                                                                                                                                                                                                                                                Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                                                • jidtextoobrigatório

                                                                                                                                                                                                                                                                  JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                                                  Exemplo
                                                                                                                                                                                                                                                                  120363123456789012@newsletter
                                                                                                                                                                                                                                                                • reactionCodestextoobrigatório

                                                                                                                                                                                                                                                                  Valores aceitos: all, basic, none ou blocklist.

                                                                                                                                                                                                                                                                  Configuração de reações do canal.

                                                                                                                                                                                                                                                                  Valores
                                                                                                                                                                                                                                                                  allbasicnoneblocklist

                                                                                                                                                                                                                                                                Respostas

                                                                                                                                                                                                                                                                • 200Configurações atualizadas com sucesso
                                                                                                                                                                                                                                                                • 400Corpo inválido
                                                                                                                                                                                                                                                                • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                                • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                                • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                                • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                                • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                                • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                                • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                                Erros possíveis 15

                                                                                                                                                                                                                                                                  Requisição

                                                                                                                                                                                                                                                                  curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/settings' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter",  "reactionCodes": "basic"}'

                                                                                                                                                                                                                                                                  Resposta

                                                                                                                                                                                                                                                                  200 JSON
                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                    "success": true,
                                                                                                                                                                                                                                                                    "data": {
                                                                                                                                                                                                                                                                      "response": true
                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                  Convidar admin do canal

                                                                                                                                                                                                                                                                  POST /newsletter/admin/invite
                                                                                                                                                                                                                                                                  • Token do dispositivo
                                                                                                                                                                                                                                                                  • Não conta mensagem
                                                                                                                                                                                                                                                                  • Corpo até 1 MB

                                                                                                                                                                                                                                                                  Envia a um telefone um convite para administrar o canal. O acesso só muda depois que o convidado aceitar, com POST /newsletter/admin/accept na conta dele. Para cancelar um convite ainda não aceito, use POST /newsletter/admin/revoke.

                                                                                                                                                                                                                                                                  Corpo da requisição (JSON)

                                                                                                                                                                                                                                                                  Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                                                  • jidtextoobrigatório

                                                                                                                                                                                                                                                                    JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                                                    Exemplo
                                                                                                                                                                                                                                                                    120363123456789012@newsletter
                                                                                                                                                                                                                                                                  • phonetextoobrigatório

                                                                                                                                                                                                                                                                    Telefone convidado, no formato internacional (código do país, DDD e número), como 5511999999999.

                                                                                                                                                                                                                                                                    Exemplo
                                                                                                                                                                                                                                                                    5511987654321

                                                                                                                                                                                                                                                                  Respostas

                                                                                                                                                                                                                                                                  • 200Convite enviado com sucesso
                                                                                                                                                                                                                                                                  • 400Corpo inválido
                                                                                                                                                                                                                                                                  • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                                  • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                                  • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                                  • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                                  • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                                  • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                                  • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                                  Erros possíveis 15

                                                                                                                                                                                                                                                                    Requisição

                                                                                                                                                                                                                                                                    curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/admin/invite' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter",  "phone": "5511987654321"}'

                                                                                                                                                                                                                                                                    Resposta

                                                                                                                                                                                                                                                                    200 JSON
                                                                                                                                                                                                                                                                    {
                                                                                                                                                                                                                                                                      "success": true,
                                                                                                                                                                                                                                                                      "data": {
                                                                                                                                                                                                                                                                        "response": true
                                                                                                                                                                                                                                                                      }
                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                    Aceitar convite de admin do canal

                                                                                                                                                                                                                                                                    POST /newsletter/admin/accept
                                                                                                                                                                                                                                                                    • Token do dispositivo
                                                                                                                                                                                                                                                                    • Não conta mensagem
                                                                                                                                                                                                                                                                    • Corpo até 1 MB

                                                                                                                                                                                                                                                                    Aceita um convite pendente e torna a conta conectada administradora do canal informado.

                                                                                                                                                                                                                                                                    Corpo da requisição (JSON)

                                                                                                                                                                                                                                                                    Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                                                    • jidtextoobrigatório

                                                                                                                                                                                                                                                                      Precisa existir um convite pendente para a conta conectada.

                                                                                                                                                                                                                                                                      JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                                                      Exemplo
                                                                                                                                                                                                                                                                      120363123456789012@newsletter

                                                                                                                                                                                                                                                                    Respostas

                                                                                                                                                                                                                                                                    • 200Convite aceito com sucesso
                                                                                                                                                                                                                                                                    • 400JID inválido
                                                                                                                                                                                                                                                                    • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                                    • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                                    • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                                    • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                                    • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                                    • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                                    • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                                    Erros possíveis 15

                                                                                                                                                                                                                                                                      Requisição

                                                                                                                                                                                                                                                                      curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/admin/accept' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter"}'

                                                                                                                                                                                                                                                                      Resposta

                                                                                                                                                                                                                                                                      200 JSON
                                                                                                                                                                                                                                                                      {
                                                                                                                                                                                                                                                                        "success": true,
                                                                                                                                                                                                                                                                        "data": {
                                                                                                                                                                                                                                                                          "response": true
                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                      Remover admin do canal

                                                                                                                                                                                                                                                                      POST /newsletter/admin/remove
                                                                                                                                                                                                                                                                      • Token do dispositivo
                                                                                                                                                                                                                                                                      • Não conta mensagem
                                                                                                                                                                                                                                                                      • Corpo até 1 MB

                                                                                                                                                                                                                                                                      Tira o papel de administrador do telefone informado. A pessoa não deixa de seguir o canal por causa disso. Para cancelar um convite ainda não aceito, use POST /newsletter/admin/revoke.

                                                                                                                                                                                                                                                                      Corpo da requisição (JSON)

                                                                                                                                                                                                                                                                      Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                                                      • jidtextoobrigatório

                                                                                                                                                                                                                                                                        JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                                                                        120363123456789012@newsletter
                                                                                                                                                                                                                                                                      • phonetextoobrigatório

                                                                                                                                                                                                                                                                        Telefone do administrador a remover, no formato internacional (código do país, DDD e número), como 5511999999999.

                                                                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                                                                        5511987654321

                                                                                                                                                                                                                                                                      Respostas

                                                                                                                                                                                                                                                                      • 200Admin removido com sucesso
                                                                                                                                                                                                                                                                      • 400Corpo inválido
                                                                                                                                                                                                                                                                      • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                                      • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                                      • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                                      • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                                      • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                                      • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                                      • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                                      Erros possíveis 15

                                                                                                                                                                                                                                                                        Requisição

                                                                                                                                                                                                                                                                        curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/admin/remove' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter",  "phone": "5511987654321"}'

                                                                                                                                                                                                                                                                        Resposta

                                                                                                                                                                                                                                                                        200 JSON
                                                                                                                                                                                                                                                                        {
                                                                                                                                                                                                                                                                          "success": true,
                                                                                                                                                                                                                                                                          "data": {
                                                                                                                                                                                                                                                                            "response": true
                                                                                                                                                                                                                                                                          }
                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                        Revogar convite de admin do canal

                                                                                                                                                                                                                                                                        POST /newsletter/admin/revoke
                                                                                                                                                                                                                                                                        • Token do dispositivo
                                                                                                                                                                                                                                                                        • Não conta mensagem
                                                                                                                                                                                                                                                                        • Corpo até 1 MB

                                                                                                                                                                                                                                                                        Cancela um convite de administrador que ainda não foi aceito. Administradores ativos não são removidos por esta rota; para isso, use POST /newsletter/admin/remove.

                                                                                                                                                                                                                                                                        Corpo da requisição (JSON)

                                                                                                                                                                                                                                                                        Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                                                        • jidtextoobrigatório

                                                                                                                                                                                                                                                                          JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                                                          Exemplo
                                                                                                                                                                                                                                                                          120363123456789012@newsletter
                                                                                                                                                                                                                                                                        • phonetextoobrigatório

                                                                                                                                                                                                                                                                          Só cancela convite ainda não aceito.

                                                                                                                                                                                                                                                                          Telefone que recebeu o convite, no formato internacional (código do país, DDD e número), como 5511999999999.

                                                                                                                                                                                                                                                                          Exemplo
                                                                                                                                                                                                                                                                          5511987654321

                                                                                                                                                                                                                                                                        Respostas

                                                                                                                                                                                                                                                                        • 200Convite revogado com sucesso
                                                                                                                                                                                                                                                                        • 400Corpo inválido
                                                                                                                                                                                                                                                                        • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                                        • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                                        • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                                        • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                                        • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                                        • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                                        • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                                        Erros possíveis 15

                                                                                                                                                                                                                                                                          Requisição

                                                                                                                                                                                                                                                                          curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/admin/revoke' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter",  "phone": "5511987654321"}'

                                                                                                                                                                                                                                                                          Resposta

                                                                                                                                                                                                                                                                          200 JSON
                                                                                                                                                                                                                                                                          {
                                                                                                                                                                                                                                                                            "success": true,
                                                                                                                                                                                                                                                                            "data": {
                                                                                                                                                                                                                                                                              "response": true
                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                          Transferir dono do canal

                                                                                                                                                                                                                                                                          POST /newsletter/owner/transfer
                                                                                                                                                                                                                                                                          • Token do dispositivo
                                                                                                                                                                                                                                                                          • Não conta mensagem
                                                                                                                                                                                                                                                                          • Corpo até 1 MB

                                                                                                                                                                                                                                                                          Transfere a propriedade do canal para outro telefone.

                                                                                                                                                                                                                                                                          • phone é obrigatório.
                                                                                                                                                                                                                                                                          • Com quitAdmin: true, o dono anterior deixa de ser administrador depois da transferência.

                                                                                                                                                                                                                                                                          Corpo da requisição (JSON)

                                                                                                                                                                                                                                                                          Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                                                          • jidtextoobrigatório

                                                                                                                                                                                                                                                                            JID do canal. Aceita o formato completo 120363123456789012@newsletter ou apenas o identificador numérico.

                                                                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                                                                            120363123456789012@newsletter
                                                                                                                                                                                                                                                                          • phonetextoobrigatório

                                                                                                                                                                                                                                                                            Telefone do novo dono, no formato internacional (código do país, DDD e número), como 5511999999999.

                                                                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                                                                            5511987654321
                                                                                                                                                                                                                                                                          • quitAdminbooleanoopcional

                                                                                                                                                                                                                                                                            Com true, o dono anterior deixa de ser administrador depois da transferência.

                                                                                                                                                                                                                                                                            Tira o dono anterior da administração depois da transferência.

                                                                                                                                                                                                                                                                            Exemplo
                                                                                                                                                                                                                                                                            false

                                                                                                                                                                                                                                                                          Respostas

                                                                                                                                                                                                                                                                          • 200Transferência solicitada com sucesso
                                                                                                                                                                                                                                                                          • 400Corpo inválido
                                                                                                                                                                                                                                                                          • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                                          • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                                          • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                                          • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                                          • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                                          • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                                          • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                                          Erros possíveis 15

                                                                                                                                                                                                                                                                            Requisição

                                                                                                                                                                                                                                                                            curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/newsletter/owner/transfer' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "jid": "120363123456789012@newsletter",  "phone": "5511987654321",  "quitAdmin": false}'

                                                                                                                                                                                                                                                                            Resposta

                                                                                                                                                                                                                                                                            200 JSON
                                                                                                                                                                                                                                                                            {
                                                                                                                                                                                                                                                                              "success": true,
                                                                                                                                                                                                                                                                              "data": {
                                                                                                                                                                                                                                                                                "response": true
                                                                                                                                                                                                                                                                              }
                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                            Referência 2

                                                                                                                                                                                                                                                                            Perfil

                                                                                                                                                                                                                                                                            Nome e foto do perfil do número.

                                                                                                                                                                                                                                                                            Operações relacionadas ao perfil da conta do WhatsApp atualmente conectada, como alterar nome e imagem de perfil.

                                                                                                                                                                                                                                                                            Alterar o nome do perfil

                                                                                                                                                                                                                                                                            POST /profile/name
                                                                                                                                                                                                                                                                            • Token do dispositivo
                                                                                                                                                                                                                                                                            • Não conta mensagem
                                                                                                                                                                                                                                                                            • Corpo até 1 MB

                                                                                                                                                                                                                                                                            Altera o nome de exibição do perfil da conta do WhatsApp conectada ao dispositivo, com até 25 caracteres. A mudança é sincronizada com o WhatsApp e a resposta confirma a alteração.

                                                                                                                                                                                                                                                                            Importante:

                                                                                                                                                                                                                                                                            Ver mais detalhes
                                                                                                                                                                                                                                                                            • a conta do WhatsApp precisa estar conectada;
                                                                                                                                                                                                                                                                            • o nome fica visível para todos os contatos;
                                                                                                                                                                                                                                                                            • pode haver um limite de alterações por período, definido pelo WhatsApp.

                                                                                                                                                                                                                                                                            Para trocar o nome do dispositivo na sua conta (e não o do perfil), use POST /instance/updateInstanceName.

                                                                                                                                                                                                                                                                            Corpo da requisição (JSON)

                                                                                                                                                                                                                                                                            Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                                                            • nametextoobrigatório

                                                                                                                                                                                                                                                                              Novo nome de exibição do perfil no WhatsApp (até 25 caracteres).

                                                                                                                                                                                                                                                                              Limites
                                                                                                                                                                                                                                                                              até 25 caracteres
                                                                                                                                                                                                                                                                              Exemplo
                                                                                                                                                                                                                                                                              Loja Centro Atendimento

                                                                                                                                                                                                                                                                            Respostas

                                                                                                                                                                                                                                                                            • 200Nome do perfil alterado com sucesso
                                                                                                                                                                                                                                                                            • 400Dados inválidos na requisição
                                                                                                                                                                                                                                                                            • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                                            • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED). Caso do WhatsApp (403): Ação não permitida.
                                                                                                                                                                                                                                                                            • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                                            • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                                            • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                                            • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                                            • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                                            Erros possíveis 15

                                                                                                                                                                                                                                                                              Requisição

                                                                                                                                                                                                                                                                              curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/profile/name' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "name": "Loja Centro Atendimento"}'

                                                                                                                                                                                                                                                                              Resposta

                                                                                                                                                                                                                                                                              200 JSON
                                                                                                                                                                                                                                                                              {
                                                                                                                                                                                                                                                                                "success": true,
                                                                                                                                                                                                                                                                                "message": "Nome do perfil alterado com sucesso",
                                                                                                                                                                                                                                                                                "profile": {
                                                                                                                                                                                                                                                                                  "name": "Minha Empresa - Atendimento",
                                                                                                                                                                                                                                                                                  "updated_at": 1704067200
                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                              Alterar a foto do perfil

                                                                                                                                                                                                                                                                              POST /profile/image
                                                                                                                                                                                                                                                                              • Token do dispositivo
                                                                                                                                                                                                                                                                              • Não conta mensagem
                                                                                                                                                                                                                                                                              • Corpo até 20 MB

                                                                                                                                                                                                                                                                              Altera a foto do perfil da conta do WhatsApp conectada ao dispositivo, ou remove a foto atual. A imagem pode ir por URL, em base64 ou com o comando de remoção; a mudança é sincronizada com o WhatsApp e a resposta confirma a alteração.

                                                                                                                                                                                                                                                                              Importante:

                                                                                                                                                                                                                                                                              Ver mais detalhes
                                                                                                                                                                                                                                                                              • a conta do WhatsApp precisa estar conectada;
                                                                                                                                                                                                                                                                              • a foto fica visível para todos os contatos;
                                                                                                                                                                                                                                                                              • a imagem deve estar em JPEG, com 640x640 pixels;
                                                                                                                                                                                                                                                                              • imagem grande demais é recusada (413).

                                                                                                                                                                                                                                                                              Corpo da requisição (JSON)

                                                                                                                                                                                                                                                                              Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                                                              • imagetextoobrigatório

                                                                                                                                                                                                                                                                                Um de três formatos: URL da imagem (http ou https), a imagem em base64, ou o texto remove (ou delete) para remover a foto atual.

                                                                                                                                                                                                                                                                                Foto do perfil, em JPEG com 640x640 pixels.

                                                                                                                                                                                                                                                                                Exemplo
                                                                                                                                                                                                                                                                                https://seusite.com.br/imagens/logo-640x640.jpg

                                                                                                                                                                                                                                                                              Respostas

                                                                                                                                                                                                                                                                              • 200Imagem do perfil alterada com sucesso
                                                                                                                                                                                                                                                                              • 400Dados inválidos na requisição
                                                                                                                                                                                                                                                                              • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                                              • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED). Caso do WhatsApp (403): Ação não permitida.
                                                                                                                                                                                                                                                                              • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE). Caso do WhatsApp (413): Imagem muito grande.
                                                                                                                                                                                                                                                                              • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                                              • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                                              • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                                              • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                                              Erros possíveis 15

                                                                                                                                                                                                                                                                                Requisição

                                                                                                                                                                                                                                                                                curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/profile/image' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "image": "https://seusite.com.br/imagens/logo-640x640.jpg"}'

                                                                                                                                                                                                                                                                                Resposta

                                                                                                                                                                                                                                                                                200 JSON
                                                                                                                                                                                                                                                                                {
                                                                                                                                                                                                                                                                                  "success": true,
                                                                                                                                                                                                                                                                                  "message": "Imagem do perfil alterada com sucesso",
                                                                                                                                                                                                                                                                                  "profile": {
                                                                                                                                                                                                                                                                                    "image_updated": true,
                                                                                                                                                                                                                                                                                    "image_removed": false,
                                                                                                                                                                                                                                                                                    "updated_at": 1704067200
                                                                                                                                                                                                                                                                                  }
                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                Referência 2

                                                                                                                                                                                                                                                                                Chamadas

                                                                                                                                                                                                                                                                                Inicie e rejeite chamadas de voz.

                                                                                                                                                                                                                                                                                Operações relacionadas a chamadas peloWhatsApp. Permite realizar e rejeitar chamadas programaticamente.

                                                                                                                                                                                                                                                                                Iniciar chamada de voz

                                                                                                                                                                                                                                                                                POST /call/make
                                                                                                                                                                                                                                                                                • Token do dispositivo
                                                                                                                                                                                                                                                                                • Não conta mensagem
                                                                                                                                                                                                                                                                                • Corpo até 36 MB

                                                                                                                                                                                                                                                                                Inicia uma chamada de voz para um contato. Funciona só com números válidos do WhatsApp.

                                                                                                                                                                                                                                                                                Sem fileUrl, a chamada só faz o telefone do contato tocar: não há conversa de voz nos dois sentidos.

                                                                                                                                                                                                                                                                                Ver mais detalhes

                                                                                                                                                                                                                                                                                Com fileUrl, a API toca o áudio quando a chamada é atendida e encerra a ligação no fim do áudio. São aceitos MP3, WAV e OGG/Opus por URL http(s), data URI ou base64, com até 25 MB.

                                                                                                                                                                                                                                                                                call_duration (opcional) é o tempo máximo da chamada, em segundos: ao fim desse tempo ela é encerrada sozinha, sem precisar de POST /call/reject. Use 0 ou omita para não limitar a reprodução do áudio por tempo.

                                                                                                                                                                                                                                                                                A resposta confirma que o pedido foi aceito (confirmed: false enquanto o WhatsApp ainda não confirmou a chamada) e, quando há fileUrl, traz o estado do áudio em audio.

                                                                                                                                                                                                                                                                                Corpo da requisição (JSON)

                                                                                                                                                                                                                                                                                Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                                                                • numbertextoobrigatório

                                                                                                                                                                                                                                                                                  Número do contato com DDI (ex.: 5511999999999).

                                                                                                                                                                                                                                                                                  Exemplo
                                                                                                                                                                                                                                                                                  5511999999999
                                                                                                                                                                                                                                                                                • call_durationinteiroopcional

                                                                                                                                                                                                                                                                                  Ao fim, a chamada é encerrada sozinha. 0 ou omitido não limita o áudio por tempo.

                                                                                                                                                                                                                                                                                  Tempo máximo da chamada, em segundos.

                                                                                                                                                                                                                                                                                  Limites
                                                                                                                                                                                                                                                                                  mínimo 0
                                                                                                                                                                                                                                                                                  Exemplo
                                                                                                                                                                                                                                                                                  30
                                                                                                                                                                                                                                                                                • fileUrltextoopcional

                                                                                                                                                                                                                                                                                  MP3, WAV ou OGG/Opus por URL http(s), data URI ou base64, até 25 MB. A chamada termina no fim do áudio. Sem fileUrl, o telefone só toca.

                                                                                                                                                                                                                                                                                  Áudio para tocar quando a chamada for atendida.

                                                                                                                                                                                                                                                                                  Exemplo
                                                                                                                                                                                                                                                                                  https://exemplo.com/audio.mp3

                                                                                                                                                                                                                                                                                Respostas

                                                                                                                                                                                                                                                                                • 200Chamada iniciada com sucesso
                                                                                                                                                                                                                                                                                • 400Requisição inválida
                                                                                                                                                                                                                                                                                • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                                                • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                                                • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                                                • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                                                • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                                                • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                                                • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                                                Erros possíveis 15

                                                                                                                                                                                                                                                                                  Requisição

                                                                                                                                                                                                                                                                                  curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/call/make' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "number": "5511999999999",  "call_duration": 0,  "fileUrl": "https://exemplo.com/audio.mp3"}'

                                                                                                                                                                                                                                                                                  Resposta

                                                                                                                                                                                                                                                                                  200 JSON
                                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                                    "success": true,
                                                                                                                                                                                                                                                                                    "data": {
                                                                                                                                                                                                                                                                                      "response": "Call request accepted locally, awaiting WhatsApp confirmation",
                                                                                                                                                                                                                                                                                      "confirmed": false,
                                                                                                                                                                                                                                                                                      "call": {
                                                                                                                                                                                                                                                                                        "id": "3EB0538DA65A59F6D8A251",
                                                                                                                                                                                                                                                                                        "from": "5511999999999@s.whatsapp.net",
                                                                                                                                                                                                                                                                                        "callCreator": "",
                                                                                                                                                                                                                                                                                        "callCreatorAlt": "",
                                                                                                                                                                                                                                                                                        "groupJid": "120363153742561022@g.us",
                                                                                                                                                                                                                                                                                        "fromMe": true,
                                                                                                                                                                                                                                                                                        "wasSentByAPI": true,
                                                                                                                                                                                                                                                                                        "source": "",
                                                                                                                                                                                                                                                                                        "primaryJid": "",
                                                                                                                                                                                                                                                                                        "alternateJid": "",
                                                                                                                                                                                                                                                                                        "timestamp": 1792500000000,
                                                                                                                                                                                                                                                                                        "timestampISO": "2026-10-20T12:00:00Z",
                                                                                                                                                                                                                                                                                        "updatedAt": 1792500000,
                                                                                                                                                                                                                                                                                        "updatedAtISO": "2026-10-20T12:00:00Z",
                                                                                                                                                                                                                                                                                        "participants": [
                                                                                                                                                                                                                                                                                          "5511999999999@s.whatsapp.net"
                                                                                                                                                                                                                                                                                        ]
                                                                                                                                                                                                                                                                                      },
                                                                                                                                                                                                                                                                                      "audio": {
                                                                                                                                                                                                                                                                                        "requested": true,
                                                                                                                                                                                                                                                                                        "mode": "call",
                                                                                                                                                                                                                                                                                        "queued": true,
                                                                                                                                                                                                                                                                                        "fileUrl": "https://exemplo.com/arquivo.jpg",
                                                                                                                                                                                                                                                                                        "input": "",
                                                                                                                                                                                                                                                                                        "source": "",
                                                                                                                                                                                                                                                                                        "playback": "starts_when_call_is_ready"
                                                                                                                                                                                                                                                                                      }
                                                                                                                                                                                                                                                                                    }
                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                  Rejeitar chamada recebida

                                                                                                                                                                                                                                                                                  POST /call/reject
                                                                                                                                                                                                                                                                                  • Token do dispositivo
                                                                                                                                                                                                                                                                                  • Não conta mensagem
                                                                                                                                                                                                                                                                                  • Corpo até 1 MB

                                                                                                                                                                                                                                                                                  Rejeita uma chamada recebida no WhatsApp.

                                                                                                                                                                                                                                                                                  O corpo pode ir vazio ({}), que é o uso recomendado. Os campos number e id são opcionais e servem para indicar uma chamada específica. O ID da chamada chega no evento call do webhook, em event.CallID.

                                                                                                                                                                                                                                                                                  A resposta de sucesso traz response: "Call rejected".

                                                                                                                                                                                                                                                                                  Corpo da requisição (JSON)

                                                                                                                                                                                                                                                                                  Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                                                                  • numbertextoopcional

                                                                                                                                                                                                                                                                                    Opcional; use junto com id para indicar uma chamada específica.

                                                                                                                                                                                                                                                                                    Número de quem ligou, com DDI (ex.: 5511999999999).

                                                                                                                                                                                                                                                                                    Exemplo
                                                                                                                                                                                                                                                                                    5511999999999
                                                                                                                                                                                                                                                                                  • idtextoopcional

                                                                                                                                                                                                                                                                                    Opcional. Chega no evento call do webhook, em event.CallID.

                                                                                                                                                                                                                                                                                    ID da chamada a rejeitar.

                                                                                                                                                                                                                                                                                    Exemplo
                                                                                                                                                                                                                                                                                    ABEiGmo8oqkAcAKrBYQAAAAA_1

                                                                                                                                                                                                                                                                                  Respostas

                                                                                                                                                                                                                                                                                  • 200Chamada rejeitada com sucesso
                                                                                                                                                                                                                                                                                  • 400Requisição inválida
                                                                                                                                                                                                                                                                                  • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                                                  • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                                                  • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                                                  • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                                                  • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                                                  • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                                                  • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                                                  Erros possíveis 15

                                                                                                                                                                                                                                                                                    Requisição

                                                                                                                                                                                                                                                                                    curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/call/reject' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json'

                                                                                                                                                                                                                                                                                    Resposta

                                                                                                                                                                                                                                                                                    200 JSON
                                                                                                                                                                                                                                                                                    {
                                                                                                                                                                                                                                                                                      "success": true,
                                                                                                                                                                                                                                                                                      "data": {
                                                                                                                                                                                                                                                                                        "response": "Call rejected"
                                                                                                                                                                                                                                                                                      }
                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                    Referência 4

                                                                                                                                                                                                                                                                                    Proxy

                                                                                                                                                                                                                                                                                    Escolha por onde a conexão do número sai.

                                                                                                                                                                                                                                                                                    Por padrão, o dispositivo se conecta ao WhatsApp por uma conexão gerenciada, com IPs do Brasil. Você pode manter esse padrão, escolher a região da conexão gerenciada (país, estado e cidade do catálogo de GET /proxy-managed/countries e GET /proxy-managed/cities) ou usar um proxy próprio com proxy_url. Para clientes de outros países, considere um proxy da região do cliente.

                                                                                                                                                                                                                                                                                    Obter configuração de proxy do dispositivo

                                                                                                                                                                                                                                                                                    GET /instance/proxy
                                                                                                                                                                                                                                                                                    • Token do dispositivo
                                                                                                                                                                                                                                                                                    • Não conta mensagem

                                                                                                                                                                                                                                                                                    Mostra a configuração desejada e a rota de conexão usada pelo dispositivo no momento. Use para confirmar se o proxy escolhido está ativo ou se uma rota alternativa foi aplicada para preservar a conexão.

                                                                                                                                                                                                                                                                                    • mode informa a configuração escolhida: custom, internal ou none.
                                                                                                                                                                                                                                                                                    • effective_mode informa a conexão em uso: custom, internal ou direct.
                                                                                                                                                                                                                                                                                    • fallback.active indica que a rota principal não está disponível.
                                                                                                                                                                                                                                                                                    • proxy_url retorna a URL configurada com credenciais mascaradas.
                                                                                                                                                                                                                                                                                    • last_test_error ajuda a diagnosticar a última falha conhecida.
                                                                                                                                                                                                                                                                                    Ver mais detalhes

                                                                                                                                                                                                                                                                                    Em condições normais, mode e effective_mode correspondem. Durante uma contingência, eles podem divergir sem alterar a preferência salva. Não use esta rota em consultas repetidas sem intervalo; acompanhe também GET /instance/status.

                                                                                                                                                                                                                                                                                    Também atende pelo caminho antigo GET /proxy.

                                                                                                                                                                                                                                                                                    Parâmetros

                                                                                                                                                                                                                                                                                    Esta rota não recebe parâmetros.

                                                                                                                                                                                                                                                                                    Respostas

                                                                                                                                                                                                                                                                                    • 200Configuração de proxy recuperada com sucesso
                                                                                                                                                                                                                                                                                    • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                                                                                                                                                                                                    • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                                                    • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                                                    • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                                                    • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                                                    • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                                                    • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                                                    • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                                                    Erros possíveis 15

                                                                                                                                                                                                                                                                                      Requisição

                                                                                                                                                                                                                                                                                      curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/instance/proxy' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                                                                                                                                                                                                                                                      Resposta

                                                                                                                                                                                                                                                                                      200 JSON
                                                                                                                                                                                                                                                                                      {
                                                                                                                                                                                                                                                                                        "success": true,
                                                                                                                                                                                                                                                                                        "data": {
                                                                                                                                                                                                                                                                                          "mode": "custom",
                                                                                                                                                                                                                                                                                          "effective_mode": "custom",
                                                                                                                                                                                                                                                                                          "fallback": {
                                                                                                                                                                                                                                                                                            "active": false,
                                                                                                                                                                                                                                                                                            "reason": "",
                                                                                                                                                                                                                                                                                            "since": 0
                                                                                                                                                                                                                                                                                          },
                                                                                                                                                                                                                                                                                          "proxy_url": "http://***:***@cliente-proxy.example:8080",
                                                                                                                                                                                                                                                                                          "proxy_fallback": "internal",
                                                                                                                                                                                                                                                                                          "managed": false,
                                                                                                                                                                                                                                                                                          "last_test_at": 0,
                                                                                                                                                                                                                                                                                          "last_test_error": "",
                                                                                                                                                                                                                                                                                          "validation_error": false
                                                                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                      Configurar ou alterar o proxy

                                                                                                                                                                                                                                                                                      POST /instance/proxy
                                                                                                                                                                                                                                                                                      • Token do dispositivo
                                                                                                                                                                                                                                                                                      • Não conta mensagem
                                                                                                                                                                                                                                                                                      • Corpo até 1 MB

                                                                                                                                                                                                                                                                                      Define explicitamente um dos três estados aceitos:

                                                                                                                                                                                                                                                                                      • mode=custom: usa um proxy próprio, informado em proxy_url;
                                                                                                                                                                                                                                                                                      • mode=internal: usa a infraestrutura interna;
                                                                                                                                                                                                                                                                                      • mode=none: conexão direta, permitida só com confirm_no_proxy=true.
                                                                                                                                                                                                                                                                                      Ver mais detalhes

                                                                                                                                                                                                                                                                                      Importante: POST /instance/proxy confirma que a configuração foi salva, não que o proxy já está comprovadamente em uso. A validação de verdade acontece no próximo ciclo real de conexão do dispositivo.

                                                                                                                                                                                                                                                                                      Na prática:

                                                                                                                                                                                                                                                                                      • 200 aqui = configuração gravada;
                                                                                                                                                                                                                                                                                      • falhas reais de conectividade podem aparecer depois;
                                                                                                                                                                                                                                                                                      • para ver o estado real, consulte GET /instance/proxy e leia effective_mode, effective_detail, fallback.active, last_test_error e validation_error.
                                                                                                                                                                                                                                                                                      Proxy próprio (custom)

                                                                                                                                                                                                                                                                                      Esquemas aceitos em proxy_url: http://, https://, socks5:// e socks5h:// (ex.: http://usuario:senha@host:porta). O esquema socks:// genérico não é aceito; para SOCKS, use socks5:// ou socks5h://.

                                                                                                                                                                                                                                                                                      Em proxy_fallback você define a contingência:

                                                                                                                                                                                                                                                                                      • internal: tenta a infraestrutura interna e, se ainda assim falhar, pode usar a conexão direta como último recurso;
                                                                                                                                                                                                                                                                                      • never: sem contingência;
                                                                                                                                                                                                                                                                                      • uma URL de proxy de contingência sua (mesmos esquemas de proxy_url).
                                                                                                                                                                                                                                                                                      Infraestrutura interna (internal)
                                                                                                                                                                                                                                                                                      • rotate_now: true troca na hora o proxy interno gravado. Havendo mais de uma origem interna disponível, outra origem é escolhida; havendo só uma, troca apenas o proxy/IP dentro dela. Sem alternativa para a troca, a resposta é 409.
                                                                                                                                                                                                                                                                                      • proxy_managed_country, proxy_managed_state e proxy_managed_city escolhem a região de conexão. Use os valores de GET /proxy-managed/countries e GET /proxy-managed/cities.

                                                                                                                                                                                                                                                                                      Corpo da requisição (JSON)

                                                                                                                                                                                                                                                                                      Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                                                                      • modetextoopcional

                                                                                                                                                                                                                                                                                        É o campo que define o estado; os outros campos dependem dele.

                                                                                                                                                                                                                                                                                        custom = proxy próprio; internal = infraestrutura interna; none = conexão direta.

                                                                                                                                                                                                                                                                                        Valores
                                                                                                                                                                                                                                                                                        custominternalnone
                                                                                                                                                                                                                                                                                      • proxy_urltextocondicional

                                                                                                                                                                                                                                                                                        Obrigatório quando mode=custom. Esquemas aceitos: http://, https://, socks5:// e socks5h://; socks:// genérico é recusado.

                                                                                                                                                                                                                                                                                        URL do proxy próprio, ex.: http://usuario:senha@host:porta.

                                                                                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                                                                                        http://usuario:senha@proxy.seusite.com.br:8080
                                                                                                                                                                                                                                                                                      • proxy_fallbacktextoopcional

                                                                                                                                                                                                                                                                                        Só com mode=custom. Valores: internal, never ou uma URL de proxy de contingência (mesmos esquemas de proxy_url).

                                                                                                                                                                                                                                                                                        Contingência quando o proxy próprio falha.

                                                                                                                                                                                                                                                                                      • confirm_no_proxybooleanocondicional

                                                                                                                                                                                                                                                                                        Obrigatório (true) quando mode=none.

                                                                                                                                                                                                                                                                                        Confirma a conexão direta, sem proxy.

                                                                                                                                                                                                                                                                                      • rotate_nowbooleanoopcional

                                                                                                                                                                                                                                                                                        Só com mode=internal. Sem outra origem ou proxy disponível para a troca, volta 409.

                                                                                                                                                                                                                                                                                        Troca na hora o proxy interno gravado.

                                                                                                                                                                                                                                                                                        Padrão
                                                                                                                                                                                                                                                                                        false
                                                                                                                                                                                                                                                                                      • proxy_managed_countrytextoopcional

                                                                                                                                                                                                                                                                                        Só com mode=internal.

                                                                                                                                                                                                                                                                                        País da região de conexão, ISO alpha-2 (o countries[].value de GET /proxy-managed/countries).

                                                                                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                                                                                        br
                                                                                                                                                                                                                                                                                      • proxy_managed_statetextoopcional

                                                                                                                                                                                                                                                                                        Só com mode=internal e quando a cidade do catálogo trouxer state.

                                                                                                                                                                                                                                                                                        UF da cidade escolhida (ex.: sp).

                                                                                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                                                                                        sp
                                                                                                                                                                                                                                                                                      • proxy_managed_citytextoopcional

                                                                                                                                                                                                                                                                                        Só com mode=internal.

                                                                                                                                                                                                                                                                                        Cidade da região de conexão (o cities[].value de GET /proxy-managed/cities).

                                                                                                                                                                                                                                                                                        Exemplo
                                                                                                                                                                                                                                                                                        campinas

                                                                                                                                                                                                                                                                                      Regras

                                                                                                                                                                                                                                                                                      • proxy_url é obrigatório quando mode é custom.
                                                                                                                                                                                                                                                                                      • confirm_no_proxy é obrigatório quando mode é none.

                                                                                                                                                                                                                                                                                      Respostas

                                                                                                                                                                                                                                                                                      • 200Proxy configurado com sucesso
                                                                                                                                                                                                                                                                                      • 400Corpo inválido ou falha na validação do proxy
                                                                                                                                                                                                                                                                                      • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                                                      • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                                                      • 409Não há proxy alternativo disponível para rotação interna
                                                                                                                                                                                                                                                                                      • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                                                      • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                                                      • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                                                      • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                                                      • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                                                      Erros possíveis 16

                                                                                                                                                                                                                                                                                        Requisição

                                                                                                                                                                                                                                                                                        curl --request POST \  --url 'https://dropestore.com/wp-json/wdm/v1/instance/proxy' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "mode": "custom",  "proxy_url": "http://usuario:senha@proxy.seusite.com.br:8080",  "proxy_fallback": "internal"}'

                                                                                                                                                                                                                                                                                        Resposta

                                                                                                                                                                                                                                                                                        200 JSON
                                                                                                                                                                                                                                                                                        {
                                                                                                                                                                                                                                                                                          "success": true,
                                                                                                                                                                                                                                                                                          "data": {
                                                                                                                                                                                                                                                                                            "details": "Proxy configurado",
                                                                                                                                                                                                                                                                                            "proxy": {
                                                                                                                                                                                                                                                                                              "mode": "custom",
                                                                                                                                                                                                                                                                                              "effective_mode": "custom",
                                                                                                                                                                                                                                                                                              "fallback": {
                                                                                                                                                                                                                                                                                                "active": false,
                                                                                                                                                                                                                                                                                                "reason": "",
                                                                                                                                                                                                                                                                                                "since": 0
                                                                                                                                                                                                                                                                                              },
                                                                                                                                                                                                                                                                                              "proxy_url": "http://***:***@proxy-do-cliente.example:8080",
                                                                                                                                                                                                                                                                                              "proxy_fallback": "internal",
                                                                                                                                                                                                                                                                                              "managed": false,
                                                                                                                                                                                                                                                                                              "last_test_at": 0,
                                                                                                                                                                                                                                                                                              "last_test_error": "",
                                                                                                                                                                                                                                                                                              "validation_error": false
                                                                                                                                                                                                                                                                                            },
                                                                                                                                                                                                                                                                                            "restart_requested": true
                                                                                                                                                                                                                                                                                          }
                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                        Listar países da conexão gerenciada

                                                                                                                                                                                                                                                                                        GET /proxy-managed/countries
                                                                                                                                                                                                                                                                                        • Token do dispositivo
                                                                                                                                                                                                                                                                                        • Não conta mensagem

                                                                                                                                                                                                                                                                                        Lista os países disponíveis para a região de conexão: o campo proxy_managed_country de POST /instance/connect e de POST /instance/proxy (com mode=internal).

                                                                                                                                                                                                                                                                                        Os valores em countries[].value são exatamente os aceitos em proxy_managed_country; os de countries[].label servem só para exibição. Envie sempre o value.

                                                                                                                                                                                                                                                                                        Ver mais detalhes

                                                                                                                                                                                                                                                                                        Como toda a API, a rota exige o token do dispositivo no header token e segue o limite de requisições do seu plano. Quando o catálogo estiver temporariamente indisponível, a resposta é um erro temporário: tente de novo em alguns segundos.

                                                                                                                                                                                                                                                                                        Parâmetros

                                                                                                                                                                                                                                                                                        Esta rota não recebe parâmetros.

                                                                                                                                                                                                                                                                                        Respostas

                                                                                                                                                                                                                                                                                        • 200Lista de países disponíveis
                                                                                                                                                                                                                                                                                        • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                                                                                                                                                                                                        • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                                                        • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                                                        • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                                                        • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                                                        • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After. Caso do WhatsApp (429): Rate-limit excedido. Aguarde o tempo indicado no header Retry-After.
                                                                                                                                                                                                                                                                                        • 502Falha temporária ao falar com o WhatsApp ou catálogo de países temporariamente indisponível; tente de novo em instantes (PROVIDER_ERROR).
                                                                                                                                                                                                                                                                                        • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                                                        Erros possíveis 15

                                                                                                                                                                                                                                                                                          Requisição

                                                                                                                                                                                                                                                                                          curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/proxy-managed/countries' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                                                                                                                                                                                                                                                          Resposta

                                                                                                                                                                                                                                                                                          200 JSON
                                                                                                                                                                                                                                                                                          {
                                                                                                                                                                                                                                                                                            "success": true,
                                                                                                                                                                                                                                                                                            "data": {
                                                                                                                                                                                                                                                                                              "countries": [
                                                                                                                                                                                                                                                                                                {
                                                                                                                                                                                                                                                                                                  "value": "br",
                                                                                                                                                                                                                                                                                                  "label": "Brazil"
                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                              ]
                                                                                                                                                                                                                                                                                            }
                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                          Listar cidades da conexão gerenciada

                                                                                                                                                                                                                                                                                          GET /proxy-managed/cities
                                                                                                                                                                                                                                                                                          • Token do dispositivo
                                                                                                                                                                                                                                                                                          • Não conta mensagem

                                                                                                                                                                                                                                                                                          Lista as cidades disponíveis para a região de conexão, para os campos proxy_managed_country, proxy_managed_state e proxy_managed_city de POST /instance/connect e de POST /instance/proxy (com mode=internal).

                                                                                                                                                                                                                                                                                          Como toda a API, a rota exige o token do dispositivo no header token e segue o limite de requisições do seu plano. Se o catálogo de cidades estiver temporariamente indisponível, tente de novo depois do intervalo indicado na resposta.

                                                                                                                                                                                                                                                                                          Ver mais detalhes

                                                                                                                                                                                                                                                                                          Como escolher a cidade:

                                                                                                                                                                                                                                                                                          1. Use br em proxy_managed_country.
                                                                                                                                                                                                                                                                                          2. Chame GET /proxy-managed/cities?country=br para obter as cidades brasileiras (filtre com state e search).
                                                                                                                                                                                                                                                                                          3. Quando o usuário escolher uma cidade, envie:
                                                                                                                                                                                                                                                                                            • proxy_managed_country: o país escolhido, ex.: br
                                                                                                                                                                                                                                                                                            • proxy_managed_state: o state devolvido pela cidade, ex.: sp, quando houver
                                                                                                                                                                                                                                                                                            • proxy_managed_city: sempre o cities[].value

                                                                                                                                                                                                                                                                                          Se a cidade escolhida não trouxer state, envie só proxy_managed_country e proxy_managed_city. A API valida a combinação e devolve erro se faltar algum dado necessário.

                                                                                                                                                                                                                                                                                          Parâmetros na URL

                                                                                                                                                                                                                                                                                          Vão depois do ? no endereço, como nome=valor.

                                                                                                                                                                                                                                                                                          • countrytextoopcional

                                                                                                                                                                                                                                                                                            País, ISO alpha-2 minúsculo (padrão br).

                                                                                                                                                                                                                                                                                            Padrão
                                                                                                                                                                                                                                                                                            br
                                                                                                                                                                                                                                                                                            Limites
                                                                                                                                                                                                                                                                                            formato ^[a-z]{2}$
                                                                                                                                                                                                                                                                                          • statetextoopcional

                                                                                                                                                                                                                                                                                            UF ou subdivisão, minúscula (ex.: sp, rj, mg). Filtra quando o catálogo traz state.

                                                                                                                                                                                                                                                                                            Limites
                                                                                                                                                                                                                                                                                            formato ^[a-z0-9-]{1,16}$
                                                                                                                                                                                                                                                                                          • searchtextoopcional

                                                                                                                                                                                                                                                                                            Filtro parcial por nome ou slug, sem diferenciar acento nem maiúsculas.

                                                                                                                                                                                                                                                                                          Respostas

                                                                                                                                                                                                                                                                                          • 200Lista de cidades disponíveis
                                                                                                                                                                                                                                                                                          • 400country inválido (não é ISO alpha-2)
                                                                                                                                                                                                                                                                                          • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                                                          • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                                                          • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                                                          • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                                                          • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After. Caso do WhatsApp (429): Rate-limit excedido. Aguarde o tempo indicado no header Retry-After.
                                                                                                                                                                                                                                                                                          • 502Falha temporária ao falar com o WhatsApp ou catálogo de cidades temporariamente indisponível; tente de novo em instantes (PROVIDER_ERROR).
                                                                                                                                                                                                                                                                                          • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                                                          Erros possíveis 15

                                                                                                                                                                                                                                                                                            Requisição

                                                                                                                                                                                                                                                                                            curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/proxy-managed/cities?country=br&state=sp&search=camp' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                                                                                                                                                                                                                                                            Resposta

                                                                                                                                                                                                                                                                                            200 JSON
                                                                                                                                                                                                                                                                                            {
                                                                                                                                                                                                                                                                                              "success": true,
                                                                                                                                                                                                                                                                                              "data": {
                                                                                                                                                                                                                                                                                                "country": "br",
                                                                                                                                                                                                                                                                                                "state": "sp",
                                                                                                                                                                                                                                                                                                "cities": [
                                                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                                                    "value": "campinas",
                                                                                                                                                                                                                                                                                                    "label": "Campinas",
                                                                                                                                                                                                                                                                                                    "state": "sp",
                                                                                                                                                                                                                                                                                                    "state_label": "São Paulo",
                                                                                                                                                                                                                                                                                                    "raw_city": "campinas"
                                                                                                                                                                                                                                                                                                  },
                                                                                                                                                                                                                                                                                                  {
                                                                                                                                                                                                                                                                                                    "value": "saopaulo",
                                                                                                                                                                                                                                                                                                    "label": "São Paulo",
                                                                                                                                                                                                                                                                                                    "state": "sp",
                                                                                                                                                                                                                                                                                                    "state_label": "São Paulo",
                                                                                                                                                                                                                                                                                                    "raw_city": "sao_paulo"
                                                                                                                                                                                                                                                                                                  }
                                                                                                                                                                                                                                                                                                ]
                                                                                                                                                                                                                                                                                              }
                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                            Referência 2

                                                                                                                                                                                                                                                                                            Integração Chatwoot

                                                                                                                                                                                                                                                                                            Ligue o número a uma caixa de entrada do Chatwoot.

                                                                                                                                                                                                                                                                                            INTEGRAÇÃO BETA - Sistema de integração com Chatwoot para atendimento unificado

                                                                                                                                                                                                                                                                                            AVISO: Esta integração está em fase BETA. Use por sua conta e risco. Recomendamos testes em ambiente não-produtivo antes do uso em produção.

                                                                                                                                                                                                                                                                                            Ler a introdução completa

                                                                                                                                                                                                                                                                                            Esta categoria contém recursos para configurar e gerenciar a integração com o Chatwoot, uma plataforma de atendimento ao cliente open-source. A integração permite centralizar conversas do WhatsApp no Chatwoot.

                                                                                                                                                                                                                                                                                            Recursos disponíveis:

                                                                                                                                                                                                                                                                                            • Configuração Completa: Configure URL, tokens e credenciais do Chatwoot
                                                                                                                                                                                                                                                                                            • Sincronização Bidirecional: Mensagens novas entre WhatsApp e Chatwoot são sincronizadas automaticamente
                                                                                                                                                                                                                                                                                            • Gerenciamento de Contatos: Sincronização automática de nomes e telefones
                                                                                                                                                                                                                                                                                            • Atualização LID→PN: Migração automática de Local ID para Phone Number
                                                                                                                                                                                                                                                                                            • Nomes Inteligentes: Sistema de nomes com til (~) para atualização automática
                                                                                                                                                                                                                                                                                            • Separação de Grupos: Opção para ignorar grupos na sincronização
                                                                                                                                                                                                                                                                                            • Assinatura de Mensagens: Identificação do agente nas mensagens enviadas
                                                                                                                                                                                                                                                                                            • Webhook Automático: URL gerada automaticamente para configurar no Chatwoot

                                                                                                                                                                                                                                                                                            Sistema de Nomes Inteligentes:

                                                                                                                                                                                                                                                                                            • Nomes com til (~): Atualizados automaticamente quando contato modifica nome no WhatsApp
                                                                                                                                                                                                                                                                                            • Nomes específicos: Para nome fixo, remover til (~) do nome no Chatwoot
                                                                                                                                                                                                                                                                                            • Exemplo: "~João Silva" = automático, "João Silva" = fixo
                                                                                                                                                                                                                                                                                            • Migração LID→PN: Sem duplicação de conversas durante a transição
                                                                                                                                                                                                                                                                                            • Respostas nativas: Aparecem diretamente no Chatwoot sem marcações externas

                                                                                                                                                                                                                                                                                            Limitações conhecidas:

                                                                                                                                                                                                                                                                                            • Sincronização de histórico: Não implementada - apenas mensagens novas são sincronizadas

                                                                                                                                                                                                                                                                                            Casos de uso:

                                                                                                                                                                                                                                                                                            • Atendimento centralizado no Chatwoot
                                                                                                                                                                                                                                                                                            • Equipes de suporte com múltiplos agentes
                                                                                                                                                                                                                                                                                            • Integração com CRM via Chatwoot
                                                                                                                                                                                                                                                                                            • Centralização de canais de comunicação
                                                                                                                                                                                                                                                                                            • Gestão automática de contatos e nomes

                                                                                                                                                                                                                                                                                            Ideal para: Empresas com equipes de atendimento, call centers, suporte técnico (em ambiente de testes)

                                                                                                                                                                                                                                                                                            Requer: Dispositivo do Chatwoot configurada, tokens de API e ambiente de testes

                                                                                                                                                                                                                                                                                            Lembre-se: Integração em BETA - funcionalidades podem mudar sem aviso prévio

                                                                                                                                                                                                                                                                                            Obter configuração do Chatwoot

                                                                                                                                                                                                                                                                                            GET /chatwoot/config
                                                                                                                                                                                                                                                                                            • Token do dispositivo
                                                                                                                                                                                                                                                                                            • Não conta mensagem

                                                                                                                                                                                                                                                                                            Retorna a configuração atual da integração com o Chatwoot no dispositivo: se está ligada, o endereço, a conta, a caixa de entrada e as opções de sincronização. Use para conferir a configuração antes de alterá-la.

                                                                                                                                                                                                                                                                                            Por segurança, o token de acesso do Chatwoot não é devolvido. O campo chatwoot_access_token_set indica se há um token salvo.

                                                                                                                                                                                                                                                                                            Parâmetros

                                                                                                                                                                                                                                                                                            Esta rota não recebe parâmetros.

                                                                                                                                                                                                                                                                                            Respostas

                                                                                                                                                                                                                                                                                            • 200Configuração obtida com sucesso
                                                                                                                                                                                                                                                                                            • 400O WhatsApp recusou o pedido; a mensagem de erro explica o motivo (WHATSAPP_REJECTED).
                                                                                                                                                                                                                                                                                            • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                                                            • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                                                            • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                                                            • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                                                            • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                                                            • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                                                            • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                                                            Erros possíveis 15

                                                                                                                                                                                                                                                                                              Requisição

                                                                                                                                                                                                                                                                                              curl --request GET \  --url 'https://dropestore.com/wp-json/wdm/v1/chatwoot/config' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Accept: application/json'

                                                                                                                                                                                                                                                                                              Resposta

                                                                                                                                                                                                                                                                                              200 JSON
                                                                                                                                                                                                                                                                                              {
                                                                                                                                                                                                                                                                                                "success": true,
                                                                                                                                                                                                                                                                                                "data": {
                                                                                                                                                                                                                                                                                                  "chatwoot_enabled": true,
                                                                                                                                                                                                                                                                                                  "chatwoot_url": "https://app.chatwoot.com",
                                                                                                                                                                                                                                                                                                  "chatwoot_account_id": 1,
                                                                                                                                                                                                                                                                                                  "chatwoot_inbox_id": 5,
                                                                                                                                                                                                                                                                                                  "chatwoot_ignore_groups": false,
                                                                                                                                                                                                                                                                                                  "chatwoot_sign_messages": true,
                                                                                                                                                                                                                                                                                                  "chatwoot_create_new_conversation": false
                                                                                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                              Atualizar configuração do Chatwoot

                                                                                                                                                                                                                                                                                              PUT /chatwoot/config
                                                                                                                                                                                                                                                                                              • Token do dispositivo
                                                                                                                                                                                                                                                                                              • Não conta mensagem
                                                                                                                                                                                                                                                                                              • Corpo até 1 MB

                                                                                                                                                                                                                                                                                              Atualiza a configuração da integração com o Chatwoot no dispositivo.

                                                                                                                                                                                                                                                                                              Ver mais detalhes
                                                                                                                                                                                                                                                                                              O que a integração faz
                                                                                                                                                                                                                                                                                              • Aplica todos os campos enviados e reinicia a conexão com o Chatwoot quando a integração está ligada
                                                                                                                                                                                                                                                                                              • Devolve em chatwoot_inbox_webhook_url o endereço de webhook para configurar na caixa de entrada do Chatwoot
                                                                                                                                                                                                                                                                                              • Sincroniza nos dois sentidos as mensagens novas entre o WhatsApp e o Chatwoot
                                                                                                                                                                                                                                                                                              • Sincroniza os contatos (nome e telefone)
                                                                                                                                                                                                                                                                                              • Contato identificado só pelo ID interno do WhatsApp passa a usar o telefone quando ele fica disponível, sem duplicar conversas
                                                                                                                                                                                                                                                                                              • As respostas dos agentes aparecem normalmente no Chatwoot
                                                                                                                                                                                                                                                                                              Configuração no Chatwoot
                                                                                                                                                                                                                                                                                              1. Envie esta requisição e copie o endereço de chatwoot_inbox_webhook_url da resposta.
                                                                                                                                                                                                                                                                                              2. No Chatwoot, cole esse endereço como URL de webhook nas configurações da caixa de entrada.
                                                                                                                                                                                                                                                                                              3. A partir daí, mensagens e contatos novos são sincronizados automaticamente.
                                                                                                                                                                                                                                                                                              Nomes dos contatos
                                                                                                                                                                                                                                                                                              • Nome com til (~), como "~João Silva", é atualizado sozinho quando o contato muda o nome no WhatsApp.
                                                                                                                                                                                                                                                                                              • Para fixar um nome, tire o til no Chatwoot: "João Silva" (sem til) não muda mais.
                                                                                                                                                                                                                                                                                              Integração em beta

                                                                                                                                                                                                                                                                                              A integração está em fase beta e pode mudar. Teste antes de usar em produção. O histórico antigo não é sincronizado, só as mensagens novas.

                                                                                                                                                                                                                                                                                              Token de acesso

                                                                                                                                                                                                                                                                                              access_token é obrigatório. Como o token nunca é devolvido em GET /chatwoot/config, envie "" (vazio) para manter o token já salvo ao alterar o resto da configuração.

                                                                                                                                                                                                                                                                                              Corpo da requisição (JSON)

                                                                                                                                                                                                                                                                                              Um objeto JSON com Content-Type: application/json.

                                                                                                                                                                                                                                                                                              • enabledbooleanoobrigatório

                                                                                                                                                                                                                                                                                                Liga (true) ou desliga (false) a integração.

                                                                                                                                                                                                                                                                                                Exemplo
                                                                                                                                                                                                                                                                                                true
                                                                                                                                                                                                                                                                                              • urltextoobrigatório

                                                                                                                                                                                                                                                                                                Endereço do seu Chatwoot, sem barra no final.

                                                                                                                                                                                                                                                                                                Exemplo
                                                                                                                                                                                                                                                                                                https://chatwoot.seusite.com.br
                                                                                                                                                                                                                                                                                              • access_tokentextoobrigatório

                                                                                                                                                                                                                                                                                                Envie "" (vazio) para manter o token já salvo.

                                                                                                                                                                                                                                                                                                Token de acesso da API do Chatwoot (em Profile Settings > Access Token).

                                                                                                                                                                                                                                                                                                Exemplo
                                                                                                                                                                                                                                                                                                pXXGHHHyJPYHYgWHJHYHgJjj
                                                                                                                                                                                                                                                                                              • account_idinteirointeiro de 64 bitsobrigatório

                                                                                                                                                                                                                                                                                                ID da conta no Chatwoot (aparece na URL da conta).

                                                                                                                                                                                                                                                                                                Exemplo
                                                                                                                                                                                                                                                                                                1
                                                                                                                                                                                                                                                                                              • inbox_idinteirointeiro de 64 bitsobrigatório

                                                                                                                                                                                                                                                                                                ID da caixa de entrada no Chatwoot (nas configurações da caixa de entrada).

                                                                                                                                                                                                                                                                                                Exemplo
                                                                                                                                                                                                                                                                                                5
                                                                                                                                                                                                                                                                                              • ignore_groupsbooleanoopcional

                                                                                                                                                                                                                                                                                                Ignora as mensagens de grupos do WhatsApp na sincronização.

                                                                                                                                                                                                                                                                                                Exemplo
                                                                                                                                                                                                                                                                                                false
                                                                                                                                                                                                                                                                                              • sign_messagesbooleanoopcional

                                                                                                                                                                                                                                                                                                Assina as mensagens enviadas ao WhatsApp com o nome do agente.

                                                                                                                                                                                                                                                                                                Exemplo
                                                                                                                                                                                                                                                                                                true
                                                                                                                                                                                                                                                                                              • create_new_conversationbooleanoopcional

                                                                                                                                                                                                                                                                                                Sempre cria uma conversa nova em vez de reaproveitar a existente.

                                                                                                                                                                                                                                                                                                Exemplo
                                                                                                                                                                                                                                                                                                false

                                                                                                                                                                                                                                                                                              Respostas

                                                                                                                                                                                                                                                                                              • 200Configuração atualizada com sucesso
                                                                                                                                                                                                                                                                                              • 400Dados inválidos no corpo da requisição.
                                                                                                                                                                                                                                                                                              • 401Token ausente ou inválido (TOKEN_MISSING, TOKEN_INVALID).
                                                                                                                                                                                                                                                                                              • 403Plano inativo, teste grátis encerrado ou dispositivo suspenso (PLAN_INACTIVE, TRIAL_EXPIRED, DEVICE_SUSPENDED).
                                                                                                                                                                                                                                                                                              • 413Corpo da requisição acima do tamanho máximo da rota (PAYLOAD_TOO_LARGE).
                                                                                                                                                                                                                                                                                              • 422Parâmetro faltando ou inválido; a resposta lista cada campo em errors (VALIDATION).
                                                                                                                                                                                                                                                                                              • 429Limite de requisições do plano atingido (RATE_LIMITED), ou chamadas simultâneas demais da conta, até 10 ao mesmo tempo, ou o WhatsApp pediu pausa (PROVIDER_BUSY); aguarde o tempo de Retry-After.
                                                                                                                                                                                                                                                                                              • 502Falha temporária ao falar com o WhatsApp; tente de novo em instantes (PROVIDER_ERROR). Quando o serviço do WhatsApp está instável, a API recusa as chamadas por alguns segundos e informa o tempo em Retry-After.
                                                                                                                                                                                                                                                                                              • 504O WhatsApp demorou para responder; tente de novo (PROVIDER_TIMEOUT).
                                                                                                                                                                                                                                                                                              Erros possíveis 15

                                                                                                                                                                                                                                                                                                Requisição

                                                                                                                                                                                                                                                                                                curl --request PUT \  --url 'https://dropestore.com/wp-json/wdm/v1/chatwoot/config' \  --header 'token: SEU_TOKEN_DO_DISPOSITIVO' \  --header 'Content-Type: application/json' \  --header 'Accept: application/json' \  --data '{  "enabled": true,  "url": "https://chatwoot.seusite.com.br",  "access_token": "pXXGHHHyJPYHYgWHJHYHgJjj",  "account_id": 1,  "inbox_id": 5,  "ignore_groups": true,  "sign_messages": true,  "create_new_conversation": false}'

                                                                                                                                                                                                                                                                                                Resposta

                                                                                                                                                                                                                                                                                                200 JSON
                                                                                                                                                                                                                                                                                                {
                                                                                                                                                                                                                                                                                                  "success": true,
                                                                                                                                                                                                                                                                                                  "data": {
                                                                                                                                                                                                                                                                                                    "message": "Configuração do Chatwoot salva. Use esta URL no webhook da caixa de entrada do Chatwoot:",
                                                                                                                                                                                                                                                                                                    "chatwoot_inbox_webhook_url": "https://sua-api.com/chatwoot/webhook/inst_abc123"
                                                                                                                                                                                                                                                                                                  }
                                                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                                                Esta página é gerada a partir do registro de rotas da API: o que está aqui é o que a API aceita hoje.