DROPE WhatsApp API Docs (v1)

DROPE API

Documentação completa de todas as rotas e funcionalidades disponíveis

Online

Nota importante

É altamente recomendado utilizar contas do WhatsApp Business para integração. O WhatsApp normal pode apresentar inconsistências, desconexões, limitações e instabilidades durante o uso.

Autenticação e validações

Base URL

Todas as requisições devem ser feitas utilizando a seguinte URL base:

https://dropestore.com/wp-json/wdm/v1

As rotas documentadas devem ser concatenadas a essa URL base.

Header obrigatório

Envie o token da instância no header token:

token: SUA_INSTANCIA_TOKEN

Caso o header não seja informado ou seja inválido, a API retornará 401 ou 403.

Autenticação — Dispositivos

Header obrigatório

As rotas de dispositivos usam autenticação por usuário via Bearer Token.

Authorization: Bearer SUA_API_KEY_DO_USUARIO

Esse token é único por usuário. Não compartilhe o mesmo.

Base URL

https://dropestore.com/wp-json/wdm/v1

Dispositivos

Base: /wp-json/wdm/v1 · Header: Authorization: Bearer

Método Rota Descrição
GET /devices Listar dispositivos do usuário
POST /devices Criar novo dispositivo
DELETE /devices/{name} Remover dispositivo
GET /devices/{name}/qr Gerar QR Code da instância
GET /devices/{name}/status Status da conexão
POST /devices/{name}/logout Desconectar WhatsApp
GET/POST /devices/{name}/webhook Gerenciar webhook

Mensagens

Base: /wp-json/wdm/v1 · Método: POST · Header: token

Como enviar

Faça uma requisição POST para a rota desejada, enviando um JSON no body e o header token.

POST /wp-json/wdm/v1/send/text
      Header: token: SEU_TOKEN
      Body: { ... }

Destinatário (number)

O campo number é o ID do chat:

  • • Telefone em formato internacional: 5511999999999
  • • Grupo: 1203630...@g.us
  • • Usuário: ...@s.whatsapp.net ou ...@lid
Método Rota Descrição
POST /send/text Enviar mensagem de texto (com preview de link opcional)
POST /send/media Enviar mídia (imagem, vídeo, documento, áudio, ptt, sticker)
POST /send/contact Enviar cartão de contato (vCard)
POST /send/location Enviar localização (latitude/longitude)
POST /message/presence Enviar presença (digitando/gravando) de forma assíncrona
POST /send/status Publicar status (texto, imagem, vídeo ou áudio)
POST /send/location-button Solicitar localização do usuário (botão nativo)
POST /send/request-payment Solicitar pagamento (Pix, boleto, link, cartão) em uma mensagem
POST /send/pix-button Enviar botão Pix nativo
POST /send/menu Enviar menu interativo (button, list, poll, carousel)
POST /send/carousel Enviar carrossel (cards + botões) no formato JSON

POST /send/text

Enviar mensagem de texto (placeholders + preview de link)

Body (obrigatório)

  • number — Destinatário (telefone, grupo ou ID)
  • text — Texto (aceita placeholders)

Body (opcional)

  • linkPreview, linkPreviewTitle, linkPreviewDescription
  • linkPreviewImage, linkPreviewLarge
  • replyid, mentions, delay, readchat, readmessages
  • forward, track_source, track_id, async
  • placeholders

Exemplo (texto simples)

{
    "number": "5511999999999",
    "text": "Olá! Como posso ajudar?"
}

Exemplo (preview automático)

{
    "number": "5511999999999",
    "text": "Confira: https://exemplo.com",
    "linkPreview": true
}

Exemplo (preview personalizado)

{
    "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
}

POST /send/media

Enviar imagem, vídeo, documento, áudio, ptt, sticker

Body (obrigatório)

  • number — Destinatário
  • type — Tipo (image, video, document, audio, myaudio, ptt, ptv, sticker)
  • file — URL ou Base64

Body (opcional)

  • text — Caption (aceita placeholders)
  • docName — Nome do arquivo (document)
  • thumbnail — Thumb (video/document)
  • mimetype — MIME (opcional)
  • replyid, mentions, delay, readchat, readmessages
  • forward, track_source, track_id, async, placeholders

Dica: em delay, o WhatsApp pode exibir “Digitando...” ou “Gravando áudio...”.

Exemplo (imagem)

{
    "number": "5511999999999",
    "type": "image",
    "file": "https://site.com/imagem.jpg",
    "text": "Legenda opcional"
}

Exemplo (documento com nome)

{
    "number": "5511999999999",
    "type": "document",
    "file": "https://exemplo.com/contrato.pdf",
    "docName": "Contrato.pdf",
    "text": "Segue o documento solicitado"
}

POST /send/contact

Enviar cartão de contato (vCard)

Body (obrigatório)

  • number — Destinatário
  • fullName — Nome completo
  • phoneNumber — Telefones (separados por vírgula)

Body (opcional)

  • organization, email, url
  • replyid, mentions, delay, readchat, readmessages
  • forward, track_source, track_id, async

Exemplo

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

POST /send/location

Enviar localização (latitude/longitude)

Body (obrigatório)

  • number — Destinatário
  • latitude — Latitude (-90 a 90)
  • longitude — Longitude (-180 a 180)

Body (opcional)

  • name — Nome do local
  • address — Endereço
  • replyid, mentions, delay, readchat, readmessages
  • forward, track_source, track_id, async

Exemplo

{
    "number": "5511999999999",
    "name": "MASP",
    "address": "Av. Paulista, 1578 - Bela Vista, São Paulo - SP",
    "latitude": -23.5616,
    "longitude": -46.6562
}

POST /message/presence

Presença assíncrona (composing / recording / paused)

Body (obrigatório)

  • number — Destinatário
  • presence — composing, recording, paused

Body (opcional)

  • delay — Duração em ms (máximo 300000ms)

Como funciona

  • • Presença roda em background e não bloqueia a API.
  • • Reenvia a presença a cada ~10s durante a duração.
  • • É cancelada automaticamente ao enviar uma mensagem para o mesmo chat.
  • • Sem delay, usa limite padrão de até 5 minutos.

Exemplo (digitando 30s)

{
    "number": "5511999999999",
    "presence": "composing",
    "delay": 30000
}

Exemplo (gravando 1 min)

{
    "number": "5511999999999",
    "presence": "recording",
    "delay": 60000
}

Exemplo (cancelar presença)

{
    "number": "5511999999999",
    "presence": "paused"
}

POST /send/status

Stories/Status (text, image, video, audio)

Body (obrigatório)

  • type — text, image, video, audio, myaudio, ptt

Body (opcional)

  • text — Texto/legenda (máx. 656 no texto)
  • background_color — Cor de fundo (apenas type=text)
  • font — Fonte (apenas type=text)
  • file — URL/Base64 (image/video/audio)
  • thumbnail, mimetype
  • delay, async, track_source, track_id

Cores de fundo (ex.): 7-9 azul, 10-12 lilás, 17-19 cinza (19 padrão).

Exemplo (texto)

{
    "type": "text",
    "text": "Novidades chegando!",
    "background_color": 7,
    "font": 1
}

Exemplo (imagem)

{
    "type": "image",
    "text": "Promoção de hoje!",
    "file": "https://example.com/banner.jpg"
}

POST /send/location-button

Envia mensagem com botão nativo para solicitar localização

Body (obrigatório)

  • number — Destinatário
  • text — Texto exibido

Body (opcional)

  • delay, readchat, readmessages, replyid, mentions
  • forward, track_source, track_id, async

Nota: o botão de localização é adicionado automaticamente à mensagem.

Exemplo

{
    "number": "5511999999999",
    "text": "Para continuar o atendimento, clique no botão abaixo e compartilhe sua localização"
}

POST /send/request-payment

Solicitar pagamento (Pix, boleto, link) com botão nativo

Body (obrigatório)

  • number — Destinatário
  • amount — Valor (BRL por padrão)

Body (opcional)

  • title, text, footer
  • itemName, invoiceNumber
  • pixKey, pixType, pixName
  • paymentLink — URL externa para checkout (se habilitado)
  • fileUrl, fileName — Anexo (ex.: boleto PDF)
  • boletoCode — Linha digitável (habilita boleto)
  • delay, readchat, readmessages, replyid, mentions
  • track_source, track_id, async

Dica: se você informar boletoCode, o método boleto é habilitado automaticamente.

Exemplo (Pix + valor)

{
    "number": "5511999999999",
    "title": "Detalhes do pedido",
    "text": "Pedido #123 pronto para pagamento",
    "footer": "Loja Exemplo",
    "itemName": "Assinatura Plano Ouro",
    "invoiceNumber": "PED-123",
    "amount": 59.90,
    "pixType": "EVP",
    "pixKey": "123e4567-e89b-12d3-a456-426614174000",
    "pixName": "Loja Exemplo"
}

Exemplo (boleto + PDF)

{
    "number": "5511999999999",
    "title": "Fatura",
    "text": "Segue seu boleto para pagamento",
    "amount": 199.90,
    "boletoCode": "34191.79001 01043.510047 91020.150008 5 91070026000",
    "fileUrl": "https://cdn.exemplo.com/boleto-123.pdf",
    "fileName": "boleto-123.pdf"
}

POST /send/pix-button

Botão Pix nativo do WhatsApp

Body (obrigatório)

  • number — Destinatário
  • pixType — CPF, CNPJ, PHONE, EMAIL, EVP
  • pixKey — Chave Pix

Body (opcional)

  • pixName — Nome do recebedor (padrão “Pix”)
  • delay, readchat, readmessages, replyid, mentions
  • track_source, track_id, async

Exemplo

{
    "number": "5511999999999",
    "pixType": "EMAIL",
    "pixKey": "financeiro@empresa.com",
    "pixName": "Loja Exemplo"
}

Parâmetros disponíveis

Parâmetros aceitos nos endpoints de mensagens. Os campos em vermelho são obrigatórios conforme o tipo de envio.

Comuns (envios em geral)

  • number — Destinatário (telefone, grupo ou ID)
  • replyid — Responder mensagem específica
  • mentions — Números mencionados (separados por vírgula)
  • delay — Atraso em ms antes do envio
  • readchat — Marcar conversa como lida
  • readmessages — Marcar últimas mensagens como lidas
  • forward — Marca como encaminhada
  • track_source — Origem do rastreio
  • track_id — ID de rastreio (aceita duplicado)
  • async — Envio assíncrono via fila
  • placeholders — Substituição dinâmica

Texto

  • text — Conteúdo da mensagem
  • linkPreview
  • linkPreviewTitle
  • linkPreviewDescription
  • linkPreviewImage
  • linkPreviewLarge

Mídia

  • type — image, video, document, audio, myaudio, ptt, ptv, sticker
  • file — URL/Base64 do arquivo
  • text — Caption (opcional)
  • docName
  • thumbnail
  • mimetype

Contato

  • fullName
  • phoneNumber
  • organization
  • email
  • url

Localização

  • latitude
  • longitude
  • name
  • address

Pagamento

  • amount
  • title, text, footer
  • itemName, invoiceNumber
  • pixKey, pixType, pixName
  • paymentLink
  • boletoCode
  • fileUrl, fileName

Menus e Interativos

  • choices
  • footerText
  • listButton
  • selectableCount
  • imageButton
  • carousel — (apenas /send/carousel)

Status / Presença

  • presence — composing, recording, paused
  • background_color (status texto)
  • font (status texto)
  • file, thumbnail, mimetype (status mídia)

Exemplos (cURL) — Mensagens

Padrão: /wp-json/wdm/v1 + rota

POST /send/text

curl -X POST "https://dropestore.com/wp-json/wdm/v1/send/text" \
      -H "token: SUA_INSTANCIA_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
    "number": "5511999999999",
    "text": "Olá {{name}}, seu pedido é {{order_id}}"
}'

POST /send/media

curl -X POST "https://dropestore.com/wp-json/wdm/v1/send/media" \
      -H "token: SUA_INSTANCIA_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
    "number": "5511999999999",
    "type": "image",
    "file": "https://site.com/imagem.jpg",
    "text": "Legenda da imagem"
}'

POST /send/contact

curl -X POST "https://dropestore.com/wp-json/wdm/v1/send/contact" \
      -H "token: SUA_INSTANCIA_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
    "number": "5511999999999",
    "fullName": "João Silva",
    "phoneNumber": "5511888888888"
}'

POST /send/location

curl -X POST "https://dropestore.com/wp-json/wdm/v1/send/location" \
      -H "token: SUA_INSTANCIA_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
    "number": "5511999999999",
    "name": "MASP",
    "address": "Av. Paulista, 1578 - SP",
    "latitude": -23.5616,
    "longitude": -46.6562
}'

POST /message/presence

curl -X POST "https://dropestore.com/wp-json/wdm/v1/message/presence" \
      -H "token: SUA_INSTANCIA_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
    "number": "5511999999999",
    "presence": "composing",
    "delay": 30000
}'

POST /send/status

curl -X POST "https://dropestore.com/wp-json/wdm/v1/send/status" \
      -H "token: SUA_INSTANCIA_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
    "type": "text",
    "text": "Promoção do dia!",
    "background_color": 7,
    "font": 1
}'

POST /send/location-button

curl -X POST "https://dropestore.com/wp-json/wdm/v1/send/location-button" \
      -H "token: SUA_INSTANCIA_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
    "number": "5511999999999",
    "text": "Clique no botão abaixo para enviar sua localização"
}'

POST /send/request-payment

curl -X POST "https://dropestore.com/wp-json/wdm/v1/send/request-payment" \
      -H "token: SUA_INSTANCIA_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
    "number": "5511999999999",
    "title": "Pedido #123",
    "text": "Segue cobrança",
    "amount": 99.90,
    "pixType": "EVP",
    "pixKey": "123e4567-e89b-12d3-a456-426614174000"
}'

POST /send/pix-button

curl -X POST "https://dropestore.com/wp-json/wdm/v1/send/pix-button" \
      -H "token: SUA_INSTANCIA_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
    "number": "5511999999999",
    "pixType": "EMAIL",
    "pixKey": "financeiro@empresa.com",
    "pixName": "Loja Exemplo"
}'

POST /send/menu

curl -X POST "https://dropestore.com/wp-json/wdm/v1/send/menu" \
      -H "token: SUA_INSTANCIA_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
    "number": "5511999999999",
    "type": "button",
    "text": "Como podemos ajudar?",
    "choices": [
      "Vendas|vendas",
      "Suporte|suporte",
      "Nosso Site|https://dropestore.com",
      "Falar com Atendente|call:+5511999999999"
        ]
}'

Ações na mensagem

Base: /wp-json/wdm/v1 · Header: token

Método Rota Descrição
POST /message/download Baixar mídia de uma mensagem (imagem, áudio, vídeo, documento, sticker, status citado, transcrição)
POST /message/find Buscar mensagens por ID, chat, tracking e paginação
POST /message/markread Marcar uma ou mais mensagens como lidas
POST /message/react Enviar ou remover reação (emoji) em mensagem
POST /message/delete Apagar mensagem para todos
POST /message/edit Editar mensagem enviada pela instância
{
    "id": "7EB0F01D7244B421048F0706368376E0",
    "generate_mp3": true,
    "transcribe": true,
    "return_base64": false,
    "return_link": true,
    "download_quoted": false
}
{
    "chatid": "5511999999999@s.whatsapp.net",
    "limit": 20,
    "offset": 0
}
{
    "id": [
      "62AD1AD844E518180227BF68DA7ED710",
      "ECB9DE48EB41F77BFA8491BFA8D6EF9B"
        ]
}
{
    "number": "5511999999999@s.whatsapp.net",
    "text": "👍",
    "id": "3EB0538DA65A59F6D8A251"
}
{
    "id": "3EB0538DA65A59F6D8A251"
}
{
    "id": "3EB0538DA65A59F6D8A251",
    "text": "Mensagem editada com sucesso"
}

Parâmetros disponíveis — Mensagens

Campos em vermelho são obrigatórios conforme o endpoint.

Download

  • id - ID da mensagem
  • return_base64 - Retornar base64
  • generate_mp3 - Converter áudio para MP3
  • return_link - Gerar URL pública
  • transcribe - Transcrever áudio
  • openai_apikey - Chave OpenAI
  • download_quoted - Baixar mídia citada (status)

Busca

  • id
  • chatid
  • track_source
  • track_id
  • limit
  • offset

Reações

  • number
  • text
  • id

Edição / Exclusão

  • id
  • text (edição)

Etiquetas (Labels)

Base: /wp-json/wdm/v1 · Header: token

Método Rota Descrição
GET /labels Listar todas as etiquetas da instância
POST /chat/labels Adicionar, remover ou definir etiquetas em um chat
POST /label/edit Editar nome, cor ou deletar uma etiqueta

GET /labels

curl -X GET "https://dropestore.com/wp-json/wdm/v1/labels" \
        -H "token: SUA_INSTANCIA_TOKEN"

POST /chat/labels

{
        "number": "5511999999999",
        "add_labelid": "10"
      }

Use apenas UM dos campos: labelids, add_labelid ou remove_labelid

POST /label/edit

{
        "labelid": "25",
        "name": "VIP",
        "color": 2
      }

Parâmetros disponíveis — Etiquetas

Campos em vermelho são obrigatórios conforme o endpoint.

Aplicar etiquetas no chat

  • number - Número do chat
  • labelids - Define TODAS as labels (array)
  • add_labelid - Adiciona 1 label
  • remove_labelid - Remove 1 label

Editar etiqueta

  • labelid - ID da etiqueta
  • name - Novo nome
  • color - Cor (0 a 19)
  • delete - true para deletar

Consulta

  • GET /labels - Lista todas
  • Retorna ID, nome, cor e hex

Regras importantes

  • Use apenas 1 modo por requisição
  • IDs inválidos são rejeitados
  • Labels inexistentes não são criadas automaticamente

Proxy da Instância

Base: /wp-json/wdm/v1 · Header: token

Método Rota Descrição
GET /proxy Obter configuração atual do proxy da instância
POST /proxy Configurar ou alterar o proxy (habilitar/desabilitar e definir URL)
DELETE /proxy Remover o proxy configurado e voltar ao proxy padrão

GET /proxy

curl -X GET "https://dropestore.com/wp-json/wdm/v1/proxy" \
      -H "token: SUA_INSTANCIA_TOKEN"

POST /proxy

{
    "enable": true,
    "proxy_url": "http://usuario:senha@meuproxy.com:3128"
}

DELETE /proxy

curl -X DELETE "https://dropestore.com/wp-json/wdm/v1/proxy" \
      -H "token: SUA_INSTANCIA_TOKEN"

Parâmetros disponíveis — Proxy

Campos em vermelho são obrigatórios conforme o endpoint.

Configuração do Proxy

  • enable - Habilita ou desabilita o uso de proxy (true / false)
  • proxy_url - URL do proxy (obrigatória se enable=true)

Remoção do Proxy

  • enable = false - Remove o proxy configurado
  • proxy_url - Opcional (ignorado quando desativando)

Consulta

  • GET /proxy - Não possui body
  • Retorna o status do proxy e a URL configurada (se houver)

Tipos de Proxy

  • http://usuario:senha@host:porta
  • http://host:porta
  • socks5://usuario:senha@host:porta
  • socks5://host:porta

Chats

Base: /wp-json/wdm/v1 · Método: POST · Header: token

Método Rota Descrição
POST /chat/delete Deletar chat e/ou mensagens (WhatsApp e/ou banco)
POST /chat/archive Arquivar ou desarquivar chat
POST /chat/read Marcar chat como lido ou não lido
POST /chat/mute Silenciar chat (8h, 1 semana, permanente)
POST /chat/pin Fixar ou desafixar chat
POST /chat/find Buscar chats com filtros e paginação

POST /chat/delete

{
    "number": "5511999999999",
    "deleteChatDB": true,
    "deleteMessagesDB": true,
    "deleteChatWhatsApp": false
}

POST /chat/archive

{
    "number": "5511999999999",
    "archive": true
}

POST /chat/read

{
    "number": "5511999999999@s.whatsapp.net",
    "read": true
}

POST /chat/mute

{
    "number": "5511999999999@s.whatsapp.net",
    "muteEndTime": 8
}

POST /chat/pin

{
    "number": "5511999999999",
    "pin": true
}

POST /chat/find

{
    "operator": "AND",
    "limit": 20,
    "wa_isGroup": false,
    "wa_isPinned": true
}

Parâmetros disponíveis — Chats

Campos em vermelho são obrigatórios conforme o endpoint.

Deletar Chat

  • number - Número ou ID do grupo
  • deleteChatDB - Remove chat do banco
  • deleteMessagesDB - Remove mensagens do banco
  • deleteChatWhatsApp - Remove do WhatsApp

Arquivar / Desarquivar

  • number
  • archive - true / false

Lido / Não lido

  • number - Formato JID
  • read - true / false

Silenciar

  • number
  • muteEndTime - 0, 8, 168, -1

Fixar

  • number
  • pin - true / false

Busca

  • operator - AND / OR
  • sort - Ex: -wa_lastMsgTimestamp
  • limit
  • offset
  • wa_isGroup, wa_isPinned, etc.

Contatos & Verificações

Base: /wp-json/wdm/v1 · Header: token

Método Rota Descrição
GET /contacts Listar contatos salvos no WhatsApp
POST /contacts/list Listar contatos com paginação
POST /contact/add Adicionar contato à agenda
POST /contact/remove Remover contato da agenda
POST /chat/details Obter detalhes completos do chat
POST /chat/check Verificar números e grupos no WhatsApp

GET /contacts

curl -X GET "https://dropestore.com/wp-json/wdm/v1/contacts" \
      -H "token: SUA_INSTANCIA_TOKEN"

POST /contacts/list

{
    "page": 1,
    "pageSize": 100
}

POST /contact/add

{
    "phone": "5511999999999",
    "name": "João Silva"
}

POST /contact/remove

{
    "phone": "5511999999999"
}

POST /chat/details

{
    "number": "5511999999999"
}

POST /chat/check

{
    "numbers": ["5511999999999", "123456789@g.us"]
}

Parâmetros disponíveis — Contatos

Campos em vermelho são obrigatórios conforme o endpoint.

Listar Contatos

  • page
  • pageSize
  • limit
  • offset

Adicionar Contato

  • phone - Número internacional ou JID
  • name - Nome completo

Remover Contato

  • phone

Detalhes do Chat

  • number - Número ou ID do grupo

Verificar Números

  • numbers - Array de números / grupos

Grupos & Comunidades

Base: /wp-json/wdm/v1 · Header: token

Método Rota Descrição
POST /group/create Criar um novo grupo
POST /group/info Obter informações detalhadas do grupo
POST /group/inviteInfo Obter informações pelo código/URL de convite
POST /group/join Entrar em um grupo usando convite
POST /group/leave Sair de um grupo
GET /group/list Listar grupos (sem paginação)
POST /group/list Listar grupos com filtros e paginação
POST /group/resetInviteCode Resetar código de convite do grupo
POST /group/updateAnnounce Somente admins podem enviar mensagens (announce)
POST /group/updateDescription Atualizar descrição do grupo
POST /group/updateImage Atualizar imagem do grupo
POST /group/updateLocked Bloquear edição do grupo (locked)
POST /group/updateName Atualizar nome do grupo
POST /group/updateParticipants Gerenciar participantes (add/remove/promote/demote/approve/reject)
POST /community/create Criar uma comunidade
POST /community/editgroups Adicionar/remover grupos de uma comunidade

POST /group/create

{
    "name": "uazapiGO grupo",
    "participants": ["5521987905995","5511912345678"]
}

POST /group/info

{
    "groupjid": "120363153742561022@g.us",
    "getInviteLink": true,
    "getRequestsParticipants": true,
    "force": true
}

POST /group/inviteInfo

{
    "invitecode": "https://chat.whatsapp.com/IYnl5Zg9bUcJD32rJrDzO7"
}

POST /group/join

{
    "invitecode": "https://chat.whatsapp.com/IYnl5Zg9bUcJD32rJrDzO7"
}

POST /group/leave

{
    "groupjid": "120363324255083289@g.us"
}

GET /group/list

curl -X GET "https://dropestore.com/wp-json/wdm/v1/group/list" \
      -H "token: SUA_INSTANCIA_TOKEN"

POST /group/list

{
    "page": 1,
    "pageSize": 50,
    "search": "Suporte",
    "force": false,
    "noParticipants": true
}

POST /group/resetInviteCode

{
    "groupjid": "120363308883996631@g.us"
}

POST /group/updateAnnounce

{
    "groupjid": "120363339858396166@g.us",
    "announce": true
}

POST /group/updateDescription

{
    "groupjid": "120363339858396166@g.us",
    "description": "Grupo oficial de suporte"
}

POST /group/updateImage

{
    "groupjid": "120363308883996631@g.us",
    "image": "https://site.com/imagem.jpg"
}

POST /group/updateLocked

{
    "groupjid": "120363308883996631@g.us",
    "locked": true
}

POST /group/updateName

{
    "groupjid": "120363339858396166@g.us",
    "name": "Grupo de Suporte"
}

POST /group/updateParticipants

{
    "groupjid": "120363308883996631@g.us",
    "action": "promote",
    "participants": ["5521987654321","5511999887766"]
}

POST /community/create

{
    "name": "Comunidade do Bairro"
}

POST /community/editgroups

{
    "community": "120363153742561022@g.us",
    "action": "add",
    "groupjids": ["120363324255083289@g.us","120363308883996631@g.us"]
}

Parâmetros disponíveis — Grupos & Comunidades

Campos em vermelho são obrigatórios conforme o endpoint.

Grupo — Criação

  • name - Nome do grupo
  • participants - Array de números (mín. 1)

Grupo — Informações

  • groupjid - ID do grupo (JID)
  • getInviteLink - Retornar link de convite
  • getRequestsParticipants - Solicitações pendentes
  • force - Forçar atualização (ignorar cache)

Convite / Entrada

  • invitecode - Código ou URL completa do convite

Listagem

  • page - Página (padrão 1)
  • pageSize - Qtde por página (padrão 50)
  • limit - Alias de pageSize
  • offset - Deslocamento base zero
  • search - Busca por nome/JID
  • force - Atualiza cache
  • noParticipants - Retorna sem participantes
  • noparticipants - (GET) Retorna sem participantes

Participantes

  • groupjid
  • action - add, remove, promote, demote, approve, reject
  • participants - Array (números/JIDs)

Configurações do Grupo

  • groupjid
  • announce - true/false (somente admins falam)
  • locked - true/false (bloquear edição)
  • description - Texto
  • name - Novo nome
  • image - URL, base64, ou remove/delete

Sair / Resetar convite

  • groupjid

Comunidades

  • name - Nome da comunidade (create)
  • community - JID da comunidade
  • action - add / remove
  • groupjids - Array de grupos

Exemplos (cURL) — Grupos & Comunidades

Padrão: /wp-json/wdm/v1 · Header: token

POST /group/create

{
    "name": "Meu Grupo",
    "participants": ["5521987905995","5511912345678"]
}

POST /group/info

{
    "groupjid": "120363153742561022@g.us",
    "getInviteLink": true,
    "getRequestsParticipants": true,
    "force": true
}

POST /group/inviteInfo

{
    "invitecode": "https://chat.whatsapp.com/IYnl5Zg9bUcJD32rJrDzO7"
}

POST /group/join

{
    "invitecode": "IYnl5Zg9bUcJD32rJrDzO7"
}

POST /group/leave

{
    "groupjid": "120363324255083289@g.us"
}

GET /group/list

/group/list?force=true&noparticipants=true

POST /group/list

{
    "page": 1,
    "pageSize": 50,
    "search": "suporte",
    "force": true,
    "noParticipants": true
}

POST /group/resetInviteCode

{
    "groupjid": "120363308883996631@g.us"
}

POST /group/updateAnnounce

{
    "groupjid": "120363339858396166@g.us",
    "announce": true
}

POST /group/updateDescription

{
    "groupjid": "120363339858396166@g.us",
    "description": "Grupo oficial de suporte"
}

POST /group/updateImage

{
    "groupjid": "120363308883996631@g.us",
    "image": "https://site.com/imagem.jpg"
}

POST /group/updateLocked

{
    "groupjid": "120363308883996631@g.us",
    "locked": true
}

POST /group/updateName

{
    "groupjid": "120363339858396166@g.us",
    "name": "Grupo de Suporte"
}

POST /group/updateParticipants

{
    "groupjid": "120363308883996631@g.us",
    "action": "promote",
    "participants": ["5521987654321"]
}

POST /community/create

{
    "name": "Comunidade do Bairro"
}

POST /community/editgroups

{
    "community": "120363153742561022@g.us",
    "action": "add",
    "groupjids": [
      "120363324255083289@g.us",
      "120363308883996631@g.us"
        ]
}

Formatos de respostas

Sucesso

Em caso de sucesso, a API retorna:

{
  "success": true,
  "data": { ... }
}

O data vem de response['data'] (ou do response inteiro, se não existir).

Erro

Em caso de erro (auth/validação/etc), a API retorna:

{
  "success": false,
  "message": "Mensagem do erro"
}

Códigos comuns

  • 401 — Token não informado / Token inválido
  • 403 — Instância não pertence ao usuário
  • 400 — Parâmetros inválidos
  • 500 — Erro na API externa (quando success vem falso no forward)

Observações importantes

  • • Todos os endpoints exigem o header token: SUA_INSTANCIA_TOKEN
  • • O parâmetro number deve estar no formato internacional (ex: 5511999999999)
  • • Falha de autenticação retorna 401 ou 403
  • • Erros de envio retornam 500

Templates

Carrossel - Produtos
{
  "number": "5511999999999",
  "text": "Nossos produtos em destaque",
  "carousel": [
    {
      "text": "DROPE WhatsApp API\nSua comunicação em outro nível",
      "image": "https://dropestore.com/wp-content/uploads/2026/01/Sem-Titulo-5.png",
      "buttons": [
        {
      "id": "https://dropestore.com/whatsapp-api",
      "text": "Saiba mais",
      "type": "URL"
  },
        {
      "id": "SABER_MAIS",
      "text": "Tenho dúvidas",
      "type": "REPLY"
  }
      ]
    },
    {
      "text": "DROPE Plugins\nCrie o site dos seus sonhos",
      "image": "https://dropestore.com/wp-content/uploads/2025/03/drope-graph.png",
      "buttons": [
        {
      "id": "SIM_COMPRAR_XYZ",
      "text": "Comprar Agora",
      "type": "REPLY"
  },
        {
      "id": "https://exemplo.com/xyz",
      "text": "Ver Detalhes",
      "type": "URL"
  }
      ]
    },
    {
      "text": "Cupom de Desconto\nGanhe 20% OFF em qualquer produto",
      "image": "https://dropestore.com/wp-content/uploads/edd/2023/10/sistema-de-rifas.png",
      "buttons": [
        {
      "id": "DESCONTO20",
      "text": "Copiar Cupom",
      "type": "COPY"
  },
        {
      "id": "5511999999999",
      "text": "Falar com Vendedor",
      "type": "CALL"
  }
      ]
    }
  ],
  "delay": 0,
  "readchat": true
}
Carrossel - Sandubaria
{
  "number": "5511999999999",
  "text": "Os queridinhos da nossa sandubaria 🍔🔥",
  "carousel": [
    {
      "text": "X-Burguer Artesanal\nSuculento, na chapa e com molho especial",
      "image": "https://exemplo.com/imagens/xburguer.png",
      "buttons": [
        {
      "id": "PEDIR_XBURGUER",
      "text": "Pedir Agora",
      "type": "REPLY"
  },
        {
      "id": "https://exemplo.com/cardapio",
      "text": "Ver Cardápio",
      "type": "URL"
  }
      ]
    },
    {
      "text": "Combo Família\n2 lanches + batata + refri",
      "image": "https://exemplo.com/imagens/combo.png",
      "buttons": [
        {
      "id": "PEDIR_COMBO",
      "text": "Quero esse combo",
      "type": "REPLY"
  },
        {
      "id": "https://exemplo.com/promocoes",
      "text": "Ver Promoções",
      "type": "URL"
  }
      ]
    },
    {
      "text": "Cupom PRIMEIRA10\n10% OFF no primeiro pedido",
      "image": "https://exemplo.com/imagens/cupom.png",
      "buttons": [
        {
      "id": "PRIMEIRA10",
      "text": "Copiar Cupom",
      "type": "COPY"
  },
        {
      "id": "5511999999999",
      "text": "Chamar no WhatsApp",
      "type": "CALL"
  }
      ]
    }
  ],
  "delay": 0,
  "readchat": true
}
Carrossel - Dentista
{
  "number": "5511999999999",
  "text": "Seu sorriso em boas mãos 😁✨",
  "carousel": [
    {
      "text": "Clareamento Dental\nResultados rápidos e seguros",
      "image": "https://exemplo.com/imagens/clareamento.png",
      "buttons": [
        {
      "id": "AGENDAR_CLAREAMENTO",
      "text": "Agendar Avaliação",
      "type": "REPLY"
  },
        {
      "id": "https://exemplo.com/clareamento",
      "text": "Saiba Mais",
      "type": "URL"
  }
      ]
    },
    {
      "text": "Implantes e Próteses\nTecnologia e conforto no seu tratamento",
      "image": "https://exemplo.com/imagens/implante.png",
      "buttons": [
        {
      "id": "AGENDAR_IMPLANTE",
      "text": "Quero Avaliação",
      "type": "REPLY"
  },
        {
      "id": "https://exemplo.com/tratamentos",
      "text": "Ver Tratamentos",
      "type": "URL"
  }
      ]
    },
    {
      "text": "Consulta com Desconto\n20% OFF para novos pacientes",
      "image": "https://exemplo.com/imagens/consulta.png",
      "buttons": [
        {
      "id": "SORRISO20",
      "text": "Copiar Cupom",
      "type": "COPY"
  },
        {
      "id": "5511999999999",
      "text": "Ligar para Clínica",
      "type": "CALL"
  }
      ]
    }
  ],
  "delay": 0,
  "readchat": true
}
Botões de resposta
{
  "number": "5511999999999",
  "type": "button",
  "text": "Você está com alguma dúvida? Selecione uma opção abaixo",
  "choices": [
    "Valores|valores",
    "Saber mais|saber_mais"
  ],
  "footerText": "Selecione uma opção"
}
Botão com cupom
{
  "number": "5511999999999",
  "type": "button",
  "text": "Você ganhou um cupom exclusivo!",
  "imageButton": "https://dropestore.com/wp-content/uploads/2025/03/drope-graph.png",
  "choices": [
    "Copiar cupom|copy:MEU_CUPOM"
  ],
  "footerText": "Irá expirar em breve"
}
Lista de produtos
{
  "number": "5511999999999",
  "type": "list",
  "text": "Catálogo de Produtos",
  "choices": [
    "[Eletrônicos]",
    "Smartphones|phones|Últimos lançamentos",
    "Notebooks|notes|Modelos 2024",
    "[Acessórios]",
    "Fones|fones|Bluetooth e com fio",
    "Capas|cases|Proteção para seu device"
  ],
  "listButton": "Ver Catálogo",
  "footerText": "Preços sujeitos a alteração"
}
Enquete
{
  "number": "5511999999999",
  "type": "poll",
  "text": "Qual horário prefere para atendimento?",
  "choices": [
    "Manhã (8h-12h)",
    "Tarde (13h-17h)",
    "Noite (18h-22h)"
  ],
  "selectableCount": 1
}

Observações

  • • Envio de carrossel usa o endpoint /send/carousel
  • • Botões, listas, enquetes e menus usam /send/menu
  • • O campo number deve estar no padrão internacional
  • • Botões suportam tipos REPLY, URL, CALL e COPY

© 2026 DROPE