What's new, 21 October 2026: A customer who sends several messages before the bot's first reply no longer gets the opening sequence of a Chat Flow twice
WASync · Developers

Il tuo primo utilizzo

Elenca le connessioni raggiungibili con la tua chiave e verifica di avere capacità disponibile prima di attivarne un'altra.

Base URL https://developers.wasync.app/api/v1.

Elencare le connessioni che puoi usare

GET /connections
curl https://developers.wasync.app/api/v1/connections \
  -H "Authorization: Bearer $WASYNC_API_KEY"

Compaiono solo le connessioni con una licenza attiva. Ciascuna riporta un provider pari a qr o cloud_api, un id (un cuid: l'identificatore stabile che dovresti memorizzare insieme al record del tuo cliente) e uno status. Usa whatsapp.read.

Chiami già cloudapi.wasync.app/api/v1? Continua pure.

developers.wasync.app è l'host canonico, ma cloudapi.wasync.app è un alias permanente della stessa identica API: stesse chiavi, stessi percorsi, stesse risposte, e resta valido a tempo indeterminato. Nessuna integrazione esistente deve cambiare nulla. Gli endpoint OAuth, i documenti /.well-known/… e l'URL del server MCP sono identificatori di protocollo registrati dai client: restano di proposito su cloudapi.wasync.app.

Verificare la capacità prima di prometterla

GET /account
curl https://developers.wasync.app/api/v1/account \
  -H "Authorization: Bearer $WASYNC_API_KEY"
200 response
{
  "slots": {
    "total": 30,
    "used": 28,
    "available": 2,
    "nextExpiry": "2027-08-08T09:00:00.000Z"
  },
  "connections": {
    "total": 28,
    "connected": 27,
    "needsReconnect": 1
  }
}

slots.available indica se puoi attivare subito un altro numero, e nextExpiry è la data entro cui devi fatturare il tuo cliente: così uno slot non scade mai sotto i piedi di chi ti ha già pagato. connections.needsReconnect conta i numeri che attendono che il proprietario scansioni un QR; iscriviti agli eventi di connessione per essere avvisato nel momento in cui quel numero cambia, invece di fare polling. Usa whatsapp.read.

Uno slot è capacità, non un numero di telefono. Se elimini una connessione, il suo slot torna nel tuo pool con il tempo che gli resta: il prossimo numero che colleghi lo recupera automaticamente. Così puoi spostare uno slot già pagato da un cliente in uscita a uno nuovo senza pagare due volte.

Collegare un numero

Una sola chiamata crea la connessione e restituisce un codice QR da scansionare. Funziona su uno spazio di lavoro nuovo, senza alcuna connessione: con una chiave non c'è nulla da cliccare prima in un portale.

POST /connections
curl -X POST https://developers.wasync.app/api/v1/connections \
  -H "Authorization: Bearer $WASYNC_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{"label":"Support line"}'
201 response
{
  "connection": {
    "id": "conn_8f3a21",
    "status": "connecting",
    "qr": "data:image/png;base64,iVBORw0KGgo…"
  }
}

Il QR che ricevi qui non resta valido

WhatsApp cambia il codice di abbinamento circa ogni 20 secondi, quindi il qr nella risposta di creazione è già scaduto pochi secondi dopo la visualizzazione. L'errore è silenzioso: il telefono non si abbina e nulla a schermo ne spiega il motivo. Interroga GET /connections/{id} ogni 3–5 s e ridisegna il qr a partire da ogni risposta. Non memorizzarlo in cache e non nascondere l'aggiornamento dietro un pulsante che l'utente deve premere. Codice di abbinamento e QR descrive l'alternativa con un solo dispositivo.

Usa whatsapp.manage. Le connessioni create in questo modo sono numeri qr; i numeri cloud_api si attivano invece tramite Meta Embedded Signup. Questo endpoint è disponibile solo per gli spazi di lavoro standalone: un portale Bitrix24 riceve 403 forbidden_portal_kind, perché lì le connessioni le crea l'amministratore del portale all'interno di WASync. Invia un Idempotency-Key: creare una connessione consuma uno slot a pagamento, e un nuovo tentativo dopo un timeout senza chiave te ne fa acquistare due. Errori e idempotenza descrive i quattro casi da gestire.

Questa pagina è stata utile?

On this page