Vai al contenuto
WbizTool

API v2 (beta)

Disiscrizioni

Una disiscrizione è una persona che non vuole i messaggi del tuo spazio di lavoro. A un numero disiscritto non viene mai inviato nulla: un nuovo messaggio per lui viene rifiutato, e i messaggi messi in coda prima falliscono con l'errore Opted out invece di partire. Vale per ogni modo di inviare: l'API (v1 e v2), la dashboard, le campagne, i messaggi template, i promemoria, Google Sheets e Shopify.

L'elenco è lo stesso della scheda Disiscritti di Contatti nella dashboard.

OperazioneEndpointScope
Disiscrivere un numeroPOST /api/v2/opt-outscontacts
Elencare le disiscrizioniGET /api/v2/opt-outscontacts
Ottenere una disiscrizioneGET /api/v2/opt-outs/{phone}contacts
Iscrivere di nuovo un numeroDELETE /api/v2/opt-outs/{phone}contacts

Le risposte STOP vengono aggiunte da sole#

Quando qualcuno risponde a uno dei tuoi numeri inbox con un messaggio che è solo una parola di disiscrizione, viene disiscritto da solo, con source reply e il suo messaggio come keyword. Un messaggio che è solo START (o Subscribe) lo iscrive di nuovo.

  • Le parole, in maiuscolo o minuscolo e con o senza punteggiatura: STOP, Stop all, Unsubscribe, Opt out, Baja, Parar, Sair, Stopp, Abmelden, Arrêt, Désabonner, Basta, Disiscrivi, Стоп, Отписаться, Berhenti, Dur, توقف, إلغاء الاشتراك, עצור, הסר.
  • Conta solo un messaggio che sia soltanto la parola: "per favore smettete di mandarmi il listino prezzi" non disiscrive nessuno.
  • Serve la posta in arrivo sul numero a cui la persona risponde, perché solo i numeri inbox leggono i messaggi in arrivo. Le risposte più vecchie di 7 giorni, come quelle lette quando si aggiunge un numero inbox, non contano.
  • Alla persona non viene inviato nulla in risposta, e nessuna risposta automatica risponde allo STOP.

Disiscrivere un numero#

POSThttps://wbiztool.com/api/v2/opt-outs

Corpo: JSON (application/json)

Body

phonestringobbligatorio

Il numero in formato internazionale con + (+919876543210). Spazi, trattini e parentesi vengono ignorati. Funziona anche uno @username di Telegram.

notestringfacoltativo

Il motivo, per il tuo team, fino a 200 caratteri. Mostrato nella scheda Disiscritti.

curl -X POST https://wbiztool.com/api/v2/opt-outs \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"phone": "+919876543210", "note": "Asked by email"}'

Risposta: 201 con la disiscrizione. Un numero già disiscritto risponde 200 con la sua voce esistente, invariata.

{
  "recipient": "+919876543210",
  "source": "api",
  "keyword": null,
  "note": "Asked by email",
  "created_at": "2026-10-26T09:12:03.120Z"
}

Errori#

HTTPCodiceQuando
400validation_failednote non è testo o supera i 200 caratteri
422invalid_phonephone manca o non è un numero di telefono

Elencare le disiscrizioni#

GEThttps://wbiztool.com/api/v2/opt-outs

Tutti quelli che si sono disiscritti, dal più recente, in pagine (limit da 1 a 100, predefinito 25, e cursor). Aggiungi phone per cercare un solo numero.

curl "https://wbiztool.com/api/v2/opt-outs?limit=100" \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"
{
  "data": [
    { "recipient": "+919876543210", "source": "reply", "keyword": "STOP", "note": null, "created_at": "2026-10-26T09:12:03.120Z" }
  ],
  "next_cursor": null
}

Ottenere una disiscrizione#

GEThttps://wbiztool.com/api/v2/opt-outs/{phone}

Il numero va nell'indirizzo in formato internazionale senza + (919876543210). Risponde 404 opt_out_not_found quando il numero non si è disiscritto, quindi è un controllo rapido prima di inviare.

curl https://wbiztool.com/api/v2/opt-outs/919876543210 \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"

Iscrivere di nuovo un numero#

DELETEhttps://wbiztool.com/api/v2/opt-outs/{phone}

Da adesso i messaggi al numero partono di nuovo. I messaggi già falliti come Opted out restano falliti. Fallo solo quando la persona ha chiesto di nuovo i tuoi messaggi.

curl -X DELETE https://wbiztool.com/api/v2/opt-outs/919876543210 \
  -H "Authorization: Bearer $WBIZTOOL_API_KEY"
{ "recipient": "+919876543210", "deleted": true }

Un numero che non era disiscritto risponde 404 opt_out_not_found.

Inviare a un numero disiscritto#

  • POST /messages risponde 422 recipient_opted_out, e nulla viene messo in coda. In un batch, l'intero batch viene rifiutato e il field dell'errore indica la voce.
  • Un messaggio messo in coda prima che la persona si disiscrivesse fallisce con error Opted out quando arriva il suo turno, e un webhook riceve message.failed.
  • L'API v1 mette il messaggio in coda e questo fallisce con Opted out, come vedrai nello stato del messaggio.
  • Reinvia falliti delle campagne salta questi messaggi.

L'oggetto Opt-out#

CampoTipoDescrizione
recipientstring+ e il numero, oppure uno @username di Telegram
sourcestringreply: ha risposto STOP a un numero inbox. dashboard: aggiunto da Contatti. import: da un CSV in Contatti. api: questa API
keywordstring or nullLa risposta che l'ha disiscritto, così come l'ha scritta
notestring or nullLa nota del tuo team
created_atstringQuando si è disiscritto (ISO 8601, UTC)

Pagine correlate#