Primeiros passos
Em dez minutos você terá uma chave, uma requisição funcionando e um webhook recebido.
1. Crie uma chave de API
- Entre no micuenta com um usuário administrador.
- Vá em Integrações → Webhooks e API e clique em Nova chave. O painel pede para confirmar que é você (senha ou código) antes de continuar.
- Dê a ela um nome que diga para que serve («CRM HubSpot», «Site Shopify»), escolha as permissões necessárias e, se quiser, uma data de expiração.
- Copie a chave. Ela começa com
wm_live_e é exibida uma única vez: no banco guardamos apenas o seu hash.
Se você perder a chave, revogue-a e crie outra. Revogar corta o acesso na hora e fica registrado no log de atividade.
2. Sua primeira requisição
A API fica em https://micuenta.whatsmarketing.es/api/v1 e a chave vai no cabeçalho Authorization:
curl https://micuenta.whatsmarketing.es/api/v1/contacts?pageSize=5 \
-H "Authorization: Bearer wm_live_SUA_CHAVE"const res = await fetch('https://micuenta.whatsmarketing.es/api/v1/contacts?pageSize=5', {
headers: { Authorization: `Bearer ${process.env.WM_API_KEY}` },
});
const { data, meta } = await res.json();
console.log(meta.total, 'contatos');import os, requests
r = requests.get(
"https://micuenta.whatsmarketing.es/api/v1/contacts",
params={"pageSize": 5},
headers={"Authorization": f"Bearer {os.environ['WM_API_KEY']}"},
timeout=30,
)
r.raise_for_status()
print(r.json()["meta"]["total"], "contatos")<?php
$ch = curl_init('https://micuenta.whatsmarketing.es/api/v1/contacts?pageSize=5');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('WM_API_KEY')],
]);
$res = json_decode(curl_exec($ch), true);
echo $res['meta']['total'], " contatos\n";A resposta traz data (os contatos), meta (página, tamanho, total), tabs e summary. Se você vir 401 API_KEY_INVALID, confira a chave; se vir 403 API_KEY_SCOPE_MISSING, a chave não tem a permissão contacts:read.
3. Crie um contato a partir do seu site
curl -X POST https://micuenta.whatsmarketing.es/api/v1/contacts \
-H "Authorization: Bearer wm_live_SUA_CHAVE" \
-H "Content-Type: application/json" \
-d '{
"fullName": "Laura Pérez",
"primaryPhone": "+34612345678",
"primaryEmail": "laura@ejemplo.com",
"source": "WEBSITE_FORM",
"tags": ["web"],
"consent": { "given": true, "how": "WEBSITE_FORM" }
}'O telefone vai sempre com o prefixo internacional. Se já existia um contato com esse telefone, você recebe 409 CONTACT_PHONE_EXISTS com o seu contactId: use PATCH /contacts/{id} para completá-lo.
4. Receba seu primeiro webhook
- Em Integrações → Webhooks e API → Novo webhook, informe a URL
httpsdo seu servidor e marquecontact.created. - Guarde o segredo
whsec_…(também é exibido uma única vez). - Crie um contato como no passo 3: em segundos chega um
POSTà sua URL com o evento. - Verifique a assinatura antes de fazer qualquer coisa com o corpo: está explicado em Webhooks.
Para testar localmente sem abrir portas, use um túnel (ngrok, Cloudflare Tunnel) e informe essa URL no webhook.
5. Próximos passos
- Autenticação e permissões: o que cada permissão libera e o que acontece quando falta.
- Limites e boas práticas: quantas requisições por minuto e como tentar de novo.
- Referência: todas as rotas com exemplos.
- Receitas: CRM, formulários, n8n, Make e Zapier.