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, stickerBody (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çãoBody (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 nativoBody (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 WhatsAppBody (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"
}
POST /send/carousel
Carrossel (cards + botões) no formato JSONBody (obrigatório)
- number — Destinatário
- text — Texto principal
- carousel — Array de cards
Card (obrigatório)
- text — Texto do card
- image — URL da imagem
- buttons — Botões do card
Botões
- type — REPLY, URL, COPY, CALL
- text — Texto exibido
- id — Valor do botão (resposta, url, cupom, telefone)
Campos comuns (opcional)
- delay, readchat, readmessages, replyid, mentions
- forward, track_source, track_id, async
Exemplo completo
{
"number": "5511999999999",
"text": "Nossos Produtos em Destaque",
"carousel": [
{
"text": "Smartphone XYZ\nO mais avançado smartphone da linha",
"image": "https://exemplo.com/produto1.jpg",
"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://exemplo.com/cupom.jpg",
"buttons": [
{ "id": "DESCONTO20", "text": "Copiar Cupom", "type": "COPY" },
{ "id": "5511999999999", "text": "Falar com Vendedor", "type": "CALL" }
]
}
],
"delay": 0,
"readchat": true
}
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
- 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/carousel
curl -X POST "https://dropestore.com/wp-json/wdm/v1/send/carousel" \
-H "token: SUA_INSTANCIA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"number": "5511999999999",
"text": "Planos Disponíveis",
"carousel": [
{
"text": "Plano Básico",
"image": "https://site.com/plano1.jpg",
"buttons": [
{ "id": "BASICO", "text": "Escolher", "type": "REPLY" },
{ "id": "https://site.com/basico", "text": "Detalhes", "type": "URL" }
]
}
]
}'
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