API di verifica numeri
Creare una verifica di numeri WhatsApp (API)
Verifica se un elenco di numeri di telefono è registrato su WhatsApp prima di inviare loro messaggi. Usala per ripulire elenchi di contatti importati, convalidare i numeri in fase di registrazione o rimuovere numeri a cui l'invio fallirebbe comunque.
https://wbiztool.com/api/v1/verification/create/Corpo: JSON (application/json)
La richiesta crea un'attività di verifica e restituisce subito un campaign_id. I numeri vengono poi controllati in background da uno dei tuoi numeri WhatsApp collegati. Usa il campaign_id con Stato della verifica per seguire l'avanzamento, oppure con Risultati della verifica per leggere i risultati.
Esempio rapido#
curl -X POST https://wbiztool.com/api/v1/verification/create/ \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"campaign_name": "Website leads - September",
"numbers": ["919876543210", "+91 98765 43211", "14155550123"]
}'import requests
response = requests.post(
"https://wbiztool.com/api/v1/verification/create/",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"campaign_name": "Website leads - September",
"numbers": ["919876543210", "+91 98765 43211", "14155550123"],
},
timeout=60,
)
result = response.json() # read the body even when the HTTP code is 4xx or 5xx
if result["status"] == "success":
print("Task created, campaign_id", result["campaign_id"])
print("Accepted numbers:", result["numbers_submitted"])
else:
print(f"Failed ({response.status_code}):", result["message"])// Node.js 18+ (built-in fetch). Save as .mjs to use top-level await.
const response = await fetch("https://wbiztool.com/api/v1/verification/create/", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
campaign_name: "Website leads - September",
numbers: ["919876543210", "+91 98765 43211", "14155550123"],
}),
});
const result = await response.json(); // read the body even when the HTTP code is 4xx or 5xx
if (result.status === "success") {
console.log("Task created, campaign_id", result.campaign_id);
console.log("Accepted numbers:", result.numbers_submitted);
} else {
console.error(`Failed (${response.status}):`, result.message);
}<?php
$payload = [
'campaign_name' => 'Website leads - September',
'numbers' => ['919876543210', '+91 98765 43211', '14155550123'],
];
$ch = curl_init('https://wbiztool.com/api/v1/verification/create/');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer YOUR_API_KEY',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 60,
]);
$result = json_decode(curl_exec($ch), true);
curl_close($ch);
if (($result['status'] ?? '') === 'success') {
echo 'Task created, campaign_id ' . $result['campaign_id'];
} else {
echo 'Failed: ' . ($result['message'] ?? 'no response');
}Sostituisci YOUR_API_KEY con una chiave da Impostazioni → Chiavi API. La chiave determina a quale spazio di lavoro appartiene l'attività.
Parametri della richiesta#
Header
AuthorizationheaderobbligatorioBearer YOUR_API_KEY. La chiave deve essere attiva e non eliminata. Per questa API non serveclient_id.Content-TypestringobbligatorioDeve essere
application/json. Con qualsiasi altro content type,numbersnon viene letto e riceviNumbers array is required.
Corpo
numbersarray of stringsobbligatorioI numeri di telefono da verificare, ciascuno con il proprio prefisso internazionale, ad esempio
919876543210per un numero indiano. Prima della verifica, ogni numero viene ripulito:- spazi,
+,-e parentesi vengono rimossi - viene rimosso uno
0iniziale - il risultato deve contenere solo cifre ed essere lungo almeno 10 cifre
I numeri che non superano questi controlli vengono esclusi senza avviso. I duplicati non vengono rimossi, quindi ogni copia viene verificata separatamente.
- spazi,
campaign_namestringfacoltativoUn nome con cui ritrovare l'attività nella dashboard. Se lo ometti, il nome è
API Verificationseguito da data e ora del server in IST (UTC+5:30), ad esempioAPI Verification 20260916_154500. I nomi possono avere fino a 500 caratteri. Non inviarenull: i nomi più lunghi o null non riescono con HTTP500.
Risposta#
Una richiesta riuscita restituisce HTTP 200:
{
"status": "success",
"message": "Verification task created successfully",
"campaign_id": 4521,
"numbers_count": 3,
"numbers_submitted": ["919876543210", "919876543211", "14155550123"]
}
| Campo | Tipo | Descrizione |
|---|---|---|
status | string | "success". Gli errori restituiscono "error". |
message | string | Verification task created successfully. |
campaign_id | integer | ID dell'attività di verifica. Usalo con Stato della verifica e Risultati della verifica. |
numbers_count | integer | Quanti numeri sono stati accettati dopo la pulizia. |
numbers_submitted | array of strings | I numeri ripuliti che verranno verificati. Confrontalo con ciò che hai inviato per vedere quali numeri sono stati esclusi. |
Ogni numero accettato parte come pending. L'attività compare anche nella pagina Verifica Numero della tua dashboard. Lì la sua scheda può continuare a mostrare Elaborazione anche dopo il completamento, quindi usa Stato della verifica per lo stato reale.
Errori#
Gli errori restituiscono un corpo JSON con status impostato su "error" e un codice di errore HTTP:
{ "status": "error", "message": "No valid phone numbers found" }
| HTTP | Messaggio | Come risolvere |
|---|---|---|
405 | Only POST method allowed | Invia una richiesta POST. |
401 | API key required | Aggiungi l'header Authorization: Bearer YOUR_API_KEY. |
401 | Invalid API key | Verifica che la chiave esista e non sia stata eliminata o disattivata. |
403 | Verification feature not available for your plan | Il tuo piano non include la verifica dei numeri. Passa a un piano superiore. |
400 | Numbers array is required | Invia numbers come array JSON non vuoto, con Content-Type: application/json. |
400 | No valid phone numbers found | Nessuno dei numeri aveva almeno 10 cifre dopo la pulizia. Includi il prefisso internazionale. |
400 | Request contains N numbers but your plan allows only M verifications | Il tuo piano limita quanti numeri può contenere una singola richiesta. Dividi l'elenco in richieste più piccole. |
500 | Internal server error: … | Di solito il corpo JSON non è valido, ad esempio a causa di una virgola finale. |
Come vengono verificati i numeri#
L'attività viene messa in coda
L'API salva ogni numero accettato come
pendinge risponde immediatamente.Un numero WhatsApp collegato li verifica
I numeri vengono verificati fino a 10 alla volta usando un numero WhatsApp collegato nelle Impostazioni WhatsApp. Ogni numero diventa
verifiedse è registrato su WhatsApp, oppureinvalidse non lo è. Le verifiche vengono eseguite solo su un numero collegato che non è occupato a inviare messaggi, quindi durante una campagna di grandi dimensioni possono restare in attesa finché l'invio non termina.Leggi i risultati
Interroga periodicamente Stato della verifica finché
overall_statusnon ècompleted, poi leggi i numeri dalla stessa risposta o da Risultati della verifica.
Suggerimenti#
- Includi sempre il prefisso internazionale. Un numero locale di 10 cifre senza prefisso supera il controllo sulla lunghezza, ma viene verificato esattamente come è scritto, quindi il risultato non riguarderà il numero che intendevi.
- Non usare il prefisso internazionale
00. Viene rimosso un solo0iniziale, quindi00919876543210viene verificato come0919876543210. Invia919876543210. - Rimuovi tu stesso i duplicati prima di inviare, così non consumi con le ripetizioni il limite per richiesta del tuo piano.
- Controlla
numbers_submittedper trovare i numeri esclusi perché troppo corti o contenenti lettere. - Elenchi grandi: se raggiungi il limite per richiesta, invia più attività più piccole e tieni traccia di ogni
campaign_id.
Nuovo alla verifica dei numeri? Consulta la guida alla verifica dei numeri.
