Vai al contenuto
Wbiztool

API account WhatsApp

Collegare un numero WhatsApp (API)

Avvia il collegamento di un numero WhatsApp al tuo spazio di lavoro dalla tua app. Wbiztool apre una nuova sessione WhatsApp e invia il codice QR al tuo URL webhook. Mostralo al proprietario del telefono, che lo scansiona da WhatsApp, e il numero è pronto per inviare messaggi.

Colleghi il tuo numero a mano? Segui Collega il tuo numero WhatsApp.

POSThttps://wbiztool.com/api/v1/whatsapp/connect/

Corpo: JSON o campi di un modulo

POST /api/v1/whatsapp-client/create/ è un alias identico: esegue lo stesso codice e restituisce le stesse risposte. Entrambi i percorsi continuano a funzionare.

Come funziona il collegamento#

La chiamata API avvia soltanto il collegamento. Il codice QR arriva in un secondo momento, al tuo URL webhook.

  1. Chiama l'API di collegamento

    Invia il numero di telefono e il tuo webhook_url. La risposta ti restituisce un whatsapp_client_id. Salvalo.

  2. Ricevi il codice QR

    Il tuo webhook riceve status=qr_generated con l'immagine QR in qr_image. Mostra quell'immagine alla persona proprietaria del telefono. Il codice QR viene inviato di nuovo ogni pochi secondi mentre Wbiztool attende la scansione, quindi mostra sempre il più recente. La persona ha circa due minuti per scansionarlo. Dopo questo tempo, o se WhatsApp chiede di ricaricare il codice, ricevi not_connected; chiama di nuovo l'API per ottenere un nuovo codice.

  3. Scansionalo da WhatsApp

    Sul telefono, apri WhatsApp → Dispositivi collegatiCollega un dispositivo e scansiona il codice.

  4. Ottieni il risultato

    Il tuo webhook riceve status=connected quando il numero è collegato, oppure status=not_connected se il codice non è stato scansionato in tempo o il collegamento non è riuscito. L'evento connected può arrivare qualche secondo prima che Stato della connessione restituisca Connected. Rispondi prima al webhook, poi interroga Stato della connessione ogni pochi secondi per un minuto al massimo. Non controllarlo una sola volta dall'interno del gestore del webhook.

Esempio rapido#

curl -X POST https://wbiztool.com/api/v1/whatsapp/connect/ \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": 12345,
    "api_key": "YOUR_API_KEY",
    "whatsapp_number": "919876543210",
    "webhook_url": "https://example.com/wbiztool/connect-events?token=LONG_RANDOM_SECRET"
  }'

Sostituisci 12345 e YOUR_API_KEY con i tuoi valori. Consulta Autenticazione per sapere dove trovarli.

Parametri della richiesta#

client_idintegerobbligatorio

Il tuo ID Client API, da Impostazioni → Chiavi API.

api_keystringobbligatorio

La tua chiave API, dalla stessa pagina. Il numero viene aggiunto allo spazio di lavoro in cui è stata creata questa chiave.

whatsapp_numberstringobbligatorio

Il numero WhatsApp da collegare, con prefisso internazionale, ad esempio 919876543210. Viene salvato esattamente come lo invii (fino a 20 caratteri), quindi invia solo cifre, senza +, spazi o trattini. I valori più lunghi non riescono con HTTP 500. Lo stesso numero scritto in modo diverso conta come un numero diverso.

webhook_urlstringObbligatorio per ricevere il codice QR

Il tuo URL http o https che riceve il codice QR e gli aggiornamenti sul collegamento, fino a 250 caratteri (gli URL più lunghi non riescono con HTTP 500). L'API accetta una richiesta anche senza, ma in quel caso non ti viene inviato nulla e non hai modo di ottenere il codice QR tramite l'API. Vedi Eventi webhook.

Usare i client ufficiali#

Il client Python chiama /api/v1/whatsapp-client/create/ per te.

Python
from wbiztool_client import WbizToolClient

client = WbizToolClient(api_key="YOUR_API_KEY", client_id=12345)

result = client.create_whatsapp_client(
    whatsapp_number="919876543210",
    webhook_url="https://example.com/wbiztool/connect-events?token=LONG_RANDOM_SECRET",
)
print(result)

Il client Python solleva requests.exceptions.HTTPError quando l'API restituisce HTTP 400 o 403, quindi racchiudi la chiamata in un try/except.

Risposta#

Quando la richiesta di collegamento viene creata, l'API restituisce HTTP 200:

{
  "message": "Whatsapp Client Created",
  "whatsapp_client_id": 678,
  "status": 1
}
CampoTipoDescrizione
statusinteger1 se la richiesta di collegamento è stata creata, 0 se non è riuscita.
messagestringWhatsapp Client Created in caso di successo, altrimenti l'errore.
whatsapp_client_idintegerID del numero WhatsApp. Usalo come whatsapp_client nelle altre chiamate API. Presente solo in caso di successo.

"status": 1 significa che la richiesta è stata creata, non che il numero sia collegato. Se chiami di nuovo l'API per un numero aggiunto in precedenza ma non collegato, ricevi lo stesso whatsapp_client_id e parte un nuovo tentativo di collegamento.

Errori#

MessaggioHTTPCome risolvere
whatsapp_number cant be null200Invia whatsapp_number. Questo controllo viene eseguito per primo, quindi il messaggio compare anche quando il corpo JSON non è valido.
Auth Error200Invia sia client_id sia api_key.
Invalid Client Id403Invia client_id come numero intero, ad esempio 12345.
Auth Error: invalid api key400Verifica che la chiave esista, non sia stata eliminata e appartenga a questo client_id.
Higher Subscription Required200Il tuo piano non include questa API. Passa a un piano superiore.
WhatsApp Account Limit Reached. Upgrade your account to get more whatsapp limit200Hai già tutti i numeri collegati consentiti dal tuo piano. Scollegane uno o passa a un piano superiore.
Already Connected With Given Number200Questo numero è già collegato in questo spazio di lavoro. Non devi fare nulla. Se hai già raggiunto il limite di numeri del tuo piano, ricevi invece WhatsApp Account Limit Reached, anche per un numero già collegato.

Una richiesta che non è una POST restituisce un oggetto vuoto {} con HTTP 200.

Se lo stesso proprietario dell'account ha già aggiunto questo numero in un altro spazio di lavoro, la richiesta può non riuscire con HTTP 500. Collega il numero dalle Impostazioni WhatsApp nello spazio di lavoro che preferisci, oppure contatta l'assistenza.

Eventi webhook#

Wbiztool invia una POST al tuo webhook_url a ogni passaggio. Il corpo è codificato come modulo (application/x-www-form-urlencoded), non JSON.

Codice QR pronto (inviato di nuovo ogni pochi secondi durante l'attesa della scansione, spesso con lo stesso URL):

status=qr_generated&whatsapp_client_id=678&qr_image=...

Numero collegato (può essere inviato più di una volta per lo stesso collegamento):

status=connected&whatsapp_client_id=678

Collegamento non riuscito, ad esempio perché il codice QR non è stato scansionato in tempo:

status=not_connected&whatsapp_client_id=678
CampoValori
statusqr_generated, connected o not_connected
whatsapp_client_idIl whatsapp_client_id restituito dall'API.
qr_imageSolo con qr_generated. Può essere un URL data: contenente l'immagine in base64 oppure un URL https dell'immagine. Gestisci entrambi i casi. L'URL https resta lo stesso per ogni aggiornamento dello stesso numero, mentre l'immagine a cui punta cambia. Aggiungi una query per evitare la cache quando la mostri (ad esempio ?t=<timestamp>), altrimenti il browser potrebbe continuare a mostrare un codice scaduto.

Il tuo URL deve essere raggiungibile pubblicamente e dovrebbe rispondere entro pochi secondi. Wbiztool attende la tua risposta senza timeout. Se il tuo server non è raggiungibile, il tentativo di collegamento può interrompersi prima che il numero venga salvato come collegato. È accettato qualsiasi codice di stato HTTP. Le consegne non riuscite non vengono ritentate e non viene inviato nulla se in seguito il numero si scollega. Per seguire un numero dopo il collegamento, interroga periodicamente Stato della connessione.

Polling al posto dei webhook#

Se il tuo server non può ricevere webhook, il webhook ti serve comunque per ottenere il codice QR, ma non devi dipendere da esso per il risultato. Dopo la scansione del codice QR, chiama Stato della connessione con il whatsapp_client_id ogni pochi secondi finché non restituisce Connected. Elenca account mostra la stessa informazione per tutti i tuoi numeri.

Suggerimenti#

  • Gestisci gli eventi duplicati: connected può arrivare due volte. Fai in modo che il tuo handler possa essere eseguito più volte senza problemi.
  • Mostra il codice QR più recente: sostituisci l'immagine ogni volta che arriva un nuovo evento qr_generated, aggiungendo una query per evitare la cache a un URL https. I codici precedenti smettono di funzionare.
  • Scansiona entro circa due minuti: dopo questo tempo ricevi not_connected. Chiama di nuovo l'API per un nuovo codice.
  • Nessun codice QR dopo 10 minuti? La richiesta è scaduta. Chiama di nuovo l'API.
  • Collegare dalla dashboard è più semplice quando colleghi il tuo numero. Usa le Impostazioni WhatsApp e scansiona lì il codice.