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
| Método | Rota | Descrição |
|---|---|---|
| POST | /send/text | Enviar mensagem de texto |
| POST | /send/media | Enviar imagem, vídeo, áudio ou documento |
| POST | /send/contact | Enviar contato |
| POST | /send/location | Enviar localização |
| POST | /message/presence | Enviar status de presença (typing, recording, etc.) |
| POST | /send/status | Publicar status (texto, imagem ou vídeo) |
| POST | /send/location-button | Enviar mensagem com botão de localização |
| POST | /send/request-payment | Solicitar pagamento (Pix, boleto, link) |
| POST | /send/pix-button | Enviar botão de pagamento Pix |
| POST | /send/menu | Enviar menu interativo |
| POST | /send/carousel | Enviar carrossel de cards |
POST /send/text
{
"number": "5511999999999",
"text": "Olá! Como posso ajudar?"
}
POST /send/media
{
"number": "5511999999999",
"type": "image",
"file": "https://site.com/imagem.jpg",
"text": "Legenda opcional"
}
POST /send/contact
{
"number": "5511999999999",
"fullName": "João da Silva",
"phoneNumber": "5511988887777"
}
POST /send/location
{
"number": "5511999999999",
"latitude": -23.55,
"longitude": -46.63
}
POST /message/presence
{
"number": "5511999999999",
"presence": "typing"
}
POST /send/status
{
"type": "text",
"text": "Promoção imperdível hoje!"
}
POST /send/location-button
{
"number": "5511999999999",
"text": "Clique para enviar sua localização"
}
POST /send/request-payment
{
"number": "5511999999999",
"amount": 59.90,
"pixKey": "suachavepix@banco.com"
}
POST /send/pix-button
{
"number": "5511999999999",
"pixType": "email",
"pixKey": "financeiro@empresa.com"
}
POST /send/carousel
{
"number": "5511999999999",
"text": "Confira nossas ofertas",
"carousel": []
}
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 (todos os envios)
- number - Número do destinatário (obrigatório)
- replyid - Responder mensagem específica
- mentions - Lista de números mencionados
- delay - Atraso em ms antes do envio
- readchat - Marcar conversa como lida
- readmessages - Marcar mensagens como lidas
- forward - Encaminhar mensagem
- async - Envio assíncrono
- track_source - Origem do rastreio
- track_id - ID de rastreio
Texto
- text - Conteúdo da mensagem
- linkPreview
- linkPreviewTitle
- linkPreviewDescription
- linkPreviewImage
- linkPreviewLarge
Mídia
- type - image, video, audio, document
- file - URL do arquivo
- docName
- thumbnail
- mimetype
Contato
- fullName
- phoneNumber
- organization
- url
Localização
- latitude
- longitude
- name
- address
Pagamento
- amount
- pixKey
- pixType
- pixName
- paymentLink
- boletoCode
- fileUrl
- fileName
Menus e Interativos
- choices
- footerText
- listButton
- selectableCount
- imageButton
- carousel
Status / Presença
- presence
- background_color
- font
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á! Como posso ajudar?"
}'
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"
}'
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",
"latitude": -23.55,
"longitude": -46.63
}'
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",
"carousel": []
}'
Grupos
Padrão: /wp-json/wdm/v1 + rota
| Método | Rota | Descrição |
|---|---|---|
| POST | /group/create | Criar grupo |
| GET | /group/list | Listar grupos |
| POST | /group/info | Informações do grupo |
| POST | /group/inviteInfo | Info por convite |
| POST | /group/updateParticipants | Gerenciar participantes |
| POST | /group/updateName | Atualizar nome |
| POST | /group/leave | Sair do grupo |
POST /group/create
{
"name": "Meu Grupo",
"participants": ["5511999999999", "5511888888888"]
}
GET /group/list
{
"force": false,
"noparticipants": true
}
POST /group/info
{
"groupjid": "1203630xxxxx@g.us",
"getInviteLink": true
}
POST /group/inviteInfo
{
"invitecode": "ABCD1234"
}
POST /group/updateParticipants
{
"groupjid": "1203630xxxxx@g.us",
"action": "add",
"participants": ["5511999999999"]
}
POST /group/updateName
{
"groupjid": "1203630xxxxx@g.us",
"name": "Novo nome do grupo"
}
POST /group/leave
{
"groupjid": "1203630xxxxx@g.us"
}
Parâmetros disponíveis
Campos em vermelho são obrigatórios conforme o endpoint.
Grupo — Criação
- name - Nome do grupo
- participants - Array de números
Grupo — Informações
- groupjid - ID do grupo
- getInviteLink
- getRequestsParticipants
- force
Convite / Entrada
- invitecode
Listagem
- page
- pageSize
- limit
- offset
- search
- force
- noParticipants
Participantes
- groupjid
- action - add, remove, promote, demote
- participants - Array de números
Configurações do Grupo
- groupjid
- announce - Somente admins falam
- locked - Bloqueio de edição
- description
- name
- image - URL base64 ou imagem
Sair / Resetar convite
- groupjid
Comunidades
- name - Criar comunidade
- community
- action - add / remove
- groupjids - Array de grupos
Exemplos (cURL) — Grupos
Padrão: /wp-json/wdm/v1 · Header: token
POST /group/create
curl -X POST "https://dropestore.com/wp-json/wdm/v1/group/create" \
-H "token: SUA_INSTANCIA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Meu Grupo",
"participants": ["5511999999999", "5511888888888"]
}'
GET /group/list
curl -X GET "https://dropestore.com/wp-json/wdm/v1/group/list" \
-H "token: SUA_INSTANCIA_TOKEN"
POST /group/info
curl -X POST "https://dropestore.com/wp-json/wdm/v1/group/info" \
-H "token: SUA_INSTANCIA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"groupjid": "1203630xxxxx@g.us"
}'
POST /group/inviteInfo
curl -X POST "https://dropestore.com/wp-json/wdm/v1/group/inviteInfo" \
-H "token: SUA_INSTANCIA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"invitecode": "ABCD1234"
}'
POST /group/updateParticipants
curl -X POST "https://dropestore.com/wp-json/wdm/v1/group/updateParticipants" \
-H "token: SUA_INSTANCIA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"groupjid": "1203630xxxxx@g.us",
"action": "add",
"participants": ["5511999999999"]
}'
POST /group/updateName
curl -X POST "https://dropestore.com/wp-json/wdm/v1/group/updateName" \
-H "token: SUA_INSTANCIA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"groupjid": "1203630xxxxx@g.us",
"name": "Novo nome do grupo"
}'
POST /group/leave
curl -X POST "https://dropestore.com/wp-json/wdm/v1/group/leave" \
-H "token: SUA_INSTANCIA_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"groupjid": "1203630xxxxx@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