Relatórios
Os relatórios do painel, prontos para o seu dashboard: comercial, ciclo de vida, campanhas, wallet, equipe e conversas.
Relatório comercial
GET/reports/comercial
Oportunidades abertas, ganhas e perdidas no período (days: 7, 30 ou 90), com seu valor, a taxa de conversão e o período anterior para comparar.
Permissões: reports:read
Parâmetros
| Nome | Onde | Tipo | Valores |
|---|---|---|---|
days | consulta | number | padrão: 30 · 1 – 365 |
curl "https://micuenta.whatsmarketing.es/api/v1/reports/comercial?days=30" \
-H "Authorization: Bearer $WM_API_KEY"const res = await fetch('https://micuenta.whatsmarketing.es/api/v1/reports/comercial?days=30', {
headers: {
Authorization: `Bearer ${process.env.WM_API_KEY}`,
},
});
const data = await res.json();import os, requests
r = requests.get(
"https://micuenta.whatsmarketing.es/api/v1/reports/comercial?days=30",
headers={"Authorization": f"Bearer {os.environ['WM_API_KEY']}"},
timeout=30,
)
r.raise_for_status()
data = r.json()<?php
$ch = curl_init('https://micuenta.whatsmarketing.es/api/v1/reports/comercial?days=30');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('WM_API_KEY'),
],
]);
$data = json_decode(curl_exec($ch), true);{
"period": {
"days": 30,
"since": "2026-09-14"
},
"open": {
"count": 12,
"value": 18400
},
"wonInPeriod": {
"count": 41,
"value": 61200
},
"lostInPeriod": {
"count": 9,
"value": 7300
},
"conversionRate": 82,
"previous": {
"wonCount": 35,
"wonValue": 50100,
"conversionRate": 79.5
}
}Relatório de ciclo de vida
GET/reports/lifecycle
Quantos contatos há em cada etapa; stage: null são os que não têm etapa.
Permissões: reports:read
curl "https://micuenta.whatsmarketing.es/api/v1/reports/lifecycle" \
-H "Authorization: Bearer $WM_API_KEY"const res = await fetch('https://micuenta.whatsmarketing.es/api/v1/reports/lifecycle', {
headers: {
Authorization: `Bearer ${process.env.WM_API_KEY}`,
},
});
const data = await res.json();import os, requests
r = requests.get(
"https://micuenta.whatsmarketing.es/api/v1/reports/lifecycle",
headers={"Authorization": f"Bearer {os.environ['WM_API_KEY']}"},
timeout=30,
)
r.raise_for_status()
data = r.json()<?php
$ch = curl_init('https://micuenta.whatsmarketing.es/api/v1/reports/lifecycle');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('WM_API_KEY'),
],
]);
$data = json_decode(curl_exec($ch), true);[
{
"stage": "Lead nuevo",
"order": 1,
"count": 318
},
{
"stage": "En proceso",
"order": 2,
"count": 96
},
{
"stage": "Cliente",
"order": 3,
"count": 204
},
{
"stage": null,
"order": null,
"count": 12
}
]Relatório de campanhas
GET/reports/campanas
Campanhas do período, destinatários por status e gasto total, com o período anterior para comparar.
Permissões: reports:read
Parâmetros
| Nome | Onde | Tipo | Valores |
|---|---|---|---|
days | consulta | number | padrão: 30 · 1 – 365 |
curl "https://micuenta.whatsmarketing.es/api/v1/reports/campanas?days=30" \
-H "Authorization: Bearer $WM_API_KEY"const res = await fetch('https://micuenta.whatsmarketing.es/api/v1/reports/campanas?days=30', {
headers: {
Authorization: `Bearer ${process.env.WM_API_KEY}`,
},
});
const data = await res.json();import os, requests
r = requests.get(
"https://micuenta.whatsmarketing.es/api/v1/reports/campanas?days=30",
headers={"Authorization": f"Bearer {os.environ['WM_API_KEY']}"},
timeout=30,
)
r.raise_for_status()
data = r.json()<?php
$ch = curl_init('https://micuenta.whatsmarketing.es/api/v1/reports/campanas?days=30');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('WM_API_KEY'),
],
]);
$data = json_decode(curl_exec($ch), true);{
"period": {
"days": 30,
"since": "2026-09-14"
},
"campaigns": 4,
"recipientsByStatus": {
"SENT": 120,
"DELIVERED": 3100,
"READ": 2210,
"REPLIED": 260,
"FAILED": 48
},
"cost": {
"total": 285.9
},
"previous": {
"recipients": 2900,
"costTotal": 231.4
}
}Relatório da wallet
GET/reports/wallet
Saldo atual e movimentações do período agrupadas por tipo (recargas, campanhas, conversas, agentes de IA…). Valores finais.
Permissões: reports:read
Parâmetros
| Nome | Onde | Tipo | Valores |
|---|---|---|---|
days | consulta | number | padrão: 30 · 1 – 365 |
curl "https://micuenta.whatsmarketing.es/api/v1/reports/wallet?days=30" \
-H "Authorization: Bearer $WM_API_KEY"const res = await fetch('https://micuenta.whatsmarketing.es/api/v1/reports/wallet?days=30', {
headers: {
Authorization: `Bearer ${process.env.WM_API_KEY}`,
},
});
const data = await res.json();import os, requests
r = requests.get(
"https://micuenta.whatsmarketing.es/api/v1/reports/wallet?days=30",
headers={"Authorization": f"Bearer {os.environ['WM_API_KEY']}"},
timeout=30,
)
r.raise_for_status()
data = r.json()<?php
$ch = curl_init('https://micuenta.whatsmarketing.es/api/v1/reports/wallet?days=30');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('WM_API_KEY'),
],
]);
$data = json_decode(curl_exec($ch), true);{
"period": {
"days": 30,
"since": "2026-09-14"
},
"currentBalance": 120,
"currency": "EUR",
"byType": [
{
"type": "TOPUP",
"count": 2,
"amount": 400
},
{
"type": "CAMPAIGN",
"count": 4,
"amount": -285.9
}
]
}Relatório da equipe
GET/reports/agentes
Para cada pessoa da equipe: contatos dos quais é proprietária, conversas abertas e oportunidades abertas e ganhas.
Permissões: reports:read
curl "https://micuenta.whatsmarketing.es/api/v1/reports/agentes" \
-H "Authorization: Bearer $WM_API_KEY"const res = await fetch('https://micuenta.whatsmarketing.es/api/v1/reports/agentes', {
headers: {
Authorization: `Bearer ${process.env.WM_API_KEY}`,
},
});
const data = await res.json();import os, requests
r = requests.get(
"https://micuenta.whatsmarketing.es/api/v1/reports/agentes",
headers={"Authorization": f"Bearer {os.environ['WM_API_KEY']}"},
timeout=30,
)
r.raise_for_status()
data = r.json()<?php
$ch = curl_init('https://micuenta.whatsmarketing.es/api/v1/reports/agentes');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('WM_API_KEY'),
],
]);
$data = json_decode(curl_exec($ch), true);[
{
"userId": "2b3c4d5e-6f7a-4b8c-9d0e-1f2a3b4c5d6e",
"fullName": "Ana Gómez",
"email": "ana@ejemplo.com",
"contactsOwned": 140,
"openConversations": 6,
"dealsOpen": 4,
"dealsWon": 17
}
]Relatório de conversas
GET/reports/conversaciones
Conversas por status e por canal, novas no período e o período anterior para comparar.
Permissões: reports:read
Parâmetros
| Nome | Onde | Tipo | Valores |
|---|---|---|---|
days | consulta | number | padrão: 30 · 1 – 365 |
curl "https://micuenta.whatsmarketing.es/api/v1/reports/conversaciones?days=30" \
-H "Authorization: Bearer $WM_API_KEY"const res = await fetch('https://micuenta.whatsmarketing.es/api/v1/reports/conversaciones?days=30', {
headers: {
Authorization: `Bearer ${process.env.WM_API_KEY}`,
},
});
const data = await res.json();import os, requests
r = requests.get(
"https://micuenta.whatsmarketing.es/api/v1/reports/conversaciones?days=30",
headers={"Authorization": f"Bearer {os.environ['WM_API_KEY']}"},
timeout=30,
)
r.raise_for_status()
data = r.json()<?php
$ch = curl_init('https://micuenta.whatsmarketing.es/api/v1/reports/conversaciones?days=30');
curl_setopt_array($ch, [
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer ' . getenv('WM_API_KEY'),
],
]);
$data = json_decode(curl_exec($ch), true);{
"period": {
"days": 30,
"since": "2026-09-14"
},
"byStatus": {
"OPEN": 14,
"PENDING": 3,
"RESOLVED": 2193
},
"newInPeriod": 2210,
"previous": {
"newInPeriod": 1980
},
"byChannel": [
{
"channel": "5f6a7b8c-9d0e-4f1a-8b2c-3d4e5f6a7b8c",
"name": "WhatsApp +34 600 000 000",
"count": 2010
},
{
"channel": null,
"name": "Sin canal",
"count": 200
}
]
}