API de verificação de números
Status da verificação de números de WhatsApp (API)
Acompanhe o progresso de uma tarefa de verificação de números e obtenha o resultado de cada número dela. Consulte este endpoint periodicamente depois de criar uma tarefa de verificação até que a tarefa seja concluída.
https://wbiztool.com/api/v1/verification/status/?campaign_id=4521Exemplo rápido#
curl "https://wbiztool.com/api/v1/verification/status/?campaign_id=4521" \
-H "Authorization: Bearer YOUR_API_KEY"import requests
response = requests.get(
"https://wbiztool.com/api/v1/verification/status/",
headers={"Authorization": "Bearer YOUR_API_KEY"},
params={"campaign_id": 4521},
timeout=60,
)
result = response.json() # read the body even when the HTTP code is 4xx or 5xx
if result["status"] == "success":
progress = result["progress"]
print(result["overall_status"], f"{progress['completed_percentage']}% done")
for item in result["results"]:
print(item["number"], item["status"])
else:
print(f"Failed ({response.status_code}):", result["message"])// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const url = new URL("https://wbiztool.com/api/v1/verification/status/");
url.searchParams.set("campaign_id", "4521");
const response = await fetch(url, {
headers: { Authorization: "Bearer YOUR_API_KEY" },
});
const result = await response.json(); // read the body even when the HTTP code is 4xx or 5xx
if (result.status === "success") {
console.log(result.overall_status, `${result.progress.completed_percentage}% done`);
for (const item of result.results) {
console.log(item.number, item.status);
}
} else {
console.error(`Failed (${response.status}):`, result.message);
}<?php
$ch = curl_init('https://wbiztool.com/api/v1/verification/status/?campaign_id=4521');
curl_setopt_array($ch, [
CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_API_KEY'],
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
]);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);
if (($result['status'] ?? '') === 'success') {
echo $result['overall_status'] . ' - ' . $result['progress']['completed_percentage'] . "% done\n";
foreach ($result['results'] as $item) {
echo $item['number'] . ': ' . $item['status'] . "\n";
}
} else {
echo 'Failed: ' . ($result['message'] ?? 'no response');
}Parâmetros da requisição#
AuthorizationheaderobrigatórioBearer YOUR_API_KEY, usando uma chave de Configurações → Chaves API. Você também pode passar a chave como parâmetro de queryapi_key, mas o cabeçalho a mantém fora dos logs do servidor e de proxies.campaign_idintegerobrigatórioO
campaign_idretornado por Criar verificação, enviado na query string. Precisa ser uma tarefa de verificação do mesmo espaço de trabalho da chave de API.
Resposta#
Uma requisição bem-sucedida retorna HTTP 200:
{
"status": "success",
"campaign_id": 4521,
"campaign_name": "Website leads - September",
"overall_status": "processing",
"progress": {
"total": 3,
"pending": 1,
"verified": 1,
"invalid": 1,
"completed_percentage": 66.67
},
"results": [
{
"number": "14155550123",
"status": "pending",
"checked_at": null,
"created_at": "2026-09-16T10:15:00.483101+00:00"
},
{
"number": "919876543210",
"status": "verified",
"checked_at": "2026-09-16T10:16:12.204551+00:00",
"created_at": "2026-09-16T10:15:00.482913+00:00"
},
{
"number": "919876543211",
"status": "invalid",
"checked_at": "2026-09-16T10:16:19.915372+00:00",
"created_at": "2026-09-16T10:15:00.483020+00:00"
}
],
"created_at": "2026-09-16T10:15:00.471820+00:00",
"last_updated": "2026-09-16T10:15:00.471820+00:00"
}
| Campo | Tipo | Descrição |
|---|---|---|
status | string | "success". Os erros retornam "error". |
campaign_id | integer | ID da tarefa de verificação. |
campaign_name | string | Nome da tarefa. |
overall_status | string | pending, processing ou completed. Veja Valores de status geral. |
progress.total | integer | Números na tarefa. |
progress.pending | integer | Números ainda não verificados. |
progress.verified | integer | Números registrados no WhatsApp. |
progress.invalid | integer | Números marcados como invalid (não estão no WhatsApp, não são números válidos ou tiveram uma verificação que falhou). |
progress.completed_percentage | number | Números verificados (verified + invalid) como porcentagem de total, arredondada para 2 casas decimais. |
results | array | Todos os números da tarefa, ordenados por número. A lista inteira é retornada de uma vez, sem paginação. |
results[].number | string | O número de telefone limpo. |
results[].status | string | pending, verified, invalid ou unknown. Veja Valores de status do número. |
results[].checked_at | string ou null | Quando o número foi verificado, ou null enquanto estiver pendente. |
results[].created_at | string | Quando o número foi adicionado. |
created_at | string | Quando a tarefa foi criada. |
last_updated | string | Quando o registro da tarefa foi alterado pela última vez. Ele não muda à medida que os números são verificados, então use checked_at para ver a atividade recente. |
Todos os timestamps estão em ISO 8601, em UTC, com microssegundos e deslocamento +00:00, por exemplo 2026-09-16T10:16:12.204551+00:00.
Valores de status do número#
| Valor | Significado |
|---|---|
pending | Aguardando verificação. |
verified | O número está registrado no WhatsApp. |
invalid | O número não está registrado no WhatsApp, não é um número de telefone válido ou não pôde ser verificado por causa de um erro de processamento. Se um número que você espera ser válido aparecer como invalid, verifique-o novamente em uma nova tarefa. |
unknown | A verificação foi cancelada pelo suporte do Wbiztool. O processamento normal não define esse valor. |
Valores de status geral#
| Valor | Significado |
|---|---|
pending | Nenhum número foi verificado ainda. |
processing | Alguns números foram verificados e outros ainda estão pendentes. |
completed | Nenhum número está pendente. |
Uma tarefa completed pode mostrar um completed_percentage abaixo de 100 se algumas verificações foram canceladas, porque os números cancelados contam em total, mas não na porcentagem.
Erros#
Os erros retornam um corpo JSON com status igual a "error" e um código de erro HTTP:
{ "status": "error", "message": "Campaign not found" }
| HTTP | Mensagem | Como corrigir |
|---|---|---|
405 | Only GET method allowed | Envie uma requisição GET. |
401 | API key required | Adicione o cabeçalho Authorization: Bearer YOUR_API_KEY. |
401 | Invalid API key | Verifique se a chave existe e não foi excluída nem desativada. |
400 | campaign_id is required | Adicione campaign_id à query string. |
404 | Campaign not found | O ID não existe, não é uma tarefa de verificação ou pertence a outro espaço de trabalho. Use uma chave do espaço de trabalho que criou a tarefa. |
500 | Internal server error: … | Na maioria das vezes, campaign_id não é um número. Envie somente dígitos. |
Dicas#
- Consulte com moderação. Até 10 números são verificados por execução em segundo plano, então verificar a cada 30 a 60 segundos é suficiente, e uma tarefa grande pode levar bastante tempo.
- Pare de consultar quando
overall_statusforcompleted. - Parado em
pending? A verificação precisa de um número de WhatsApp conectado nas configurações do WhatsApp no mesmo espaço de trabalho. Sem ele, os números nunca são verificados. As verificações também aguardam enquanto seu número conectado está ocupado enviando mensagens. - Tarefas grandes: este endpoint retorna todos os números em uma única resposta. Para ler os resultados página por página, ou somente os números
verified, use Resultados da verificação.
