# Messaggi di testo semplice WhatsApp

Il testo semplice è il tipo di contenuto libero più elementare: un corpo senza allegati e un'anteprima opzionale per il primo link al suo interno.

## Inviare un messaggio di testo

Imposta `text.body`:

**TypeScript**

```typescript
const msg = await bird.whatsapp.send({
  to: "+16505551234",
  from: "+13124495648",
  text: { body: "Your driver is 2 minutes away." },
});
console.log(msg.id, msg.status);
```

Examples: [TypeScript](/it-it/documentazione/guides/whatsapp/message-types/plain-text.ts.md) · [Python](/it-it/documentazione/guides/whatsapp/message-types/plain-text.py.md) · [Go](/it-it/documentazione/guides/whatsapp/message-types/plain-text.go.md) · [PHP](/it-it/documentazione/guides/whatsapp/message-types/plain-text.php.md) · [CLI](/it-it/documentazione/guides/whatsapp/message-types/plain-text.cli.md) · [MCP](/it-it/documentazione/guides/whatsapp/message-types/plain-text.mcp.md) · [cURL](/it-it/documentazione/guides/whatsapp/message-types/plain-text.curl.md)

La forma completa aggiunge `preview_url` più i campi che qualsiasi invio in formato libero può includere:

```json
{
  "to": "+16505551234",
  "from": "+13124495648",
  "text": {
    "body": "Your order shipped: https://example.com/track/A1B2C3",
    "preview_url": true
  },
  "in_reply_to_message_id": "wam_01kya19eknftrs2s6p82asmvnh",
  "tags": [{ "name": "category", "value": "shipping" }],
  "metadata": { "order_id": "A1B2C3" }
}
```

`from` è obbligatorio in ogni messaggio di servizio: un numero di proprietà del tuo spazio di lavoro, non uno gestito da Bird. `in_reply_to_message_id` cita un messaggio precedente nella stessa conversazione; vedi [Citare un messaggio](/docs/guides/whatsapp/sending-whatsapp#quoting-a-message) per sapere con cosa viene confrontato e cosa può mancare.

## Limiti

| Campo         | Vincolo                       | Applicato da                   |
| ------------- | ----------------------------- | ------------------------------ |
| `body`        | Da 1 a 4096 caratteri         | Bird, all'accettazione (`422`) |
| `preview_url` | booleano, predefinito `false` | N/A, informativo               |

Un `body` composto solo da spazi supera la validazione `minLength: 1` dello schema, ma Bird lo intercetta comunque: un `body` vuoto dopo il trimming viene rifiutato con `422` [`E15015`](/docs/api/errors/E15015) `WhatsAppContentRequired`. Un corpo oltre 4096 caratteri viene rifiutato con un semplice `422` e senza codice di catalogo dedicato.

## Leggere un messaggio di testo in arrivo

Un messaggio di testo in arrivo contiene lo stesso campo `text.body` e nient'altro sul ramo. Vedi [Ricevere messaggi di testo WhatsApp](/docs/guides/whatsapp/receiving-whatsapp/plain-text) per la lettura completa in arrivo, il payload `whatsapp.received` e a cosa prestare attenzione.

## Limiti e casi particolari

- **La finestra di servizio clienti deve essere aperta.** Il testo semplice è un messaggio di servizio, consegnabile solo con una finestra aperta; vedi la [finestra di servizio clienti](/docs/guides/whatsapp/message-types#the-customer-service-window) dell'hub.
- **`preview_url` influisce solo sul primo link e solo su ciò che il client del destinatario visualizza.** Il valore predefinito è `false`. Impostalo per mostrare l'anteprima del primo URL in `body`; un URL successivo nello stesso corpo non ne riceve mai una. Se il client del destinatario non riesce a recuperare un'anteprima per quel link, ritorna silenziosamente a un semplice link cliccabile. Nulla nella lettura indica se un'anteprima è stata effettivamente visualizzata.
- **Il markdown WhatsApp è il rendering del client del destinatario di `body`, non fa parte del contratto API.** Bird passa `body` senza modifiche; non valida, rimuove o codifica `*bold*`, `_italic_`, `~strikethrough~` o il monospace con triplo backtick. Se quei marcatori vengono visualizzati dipende interamente dal client che apre il messaggio.
- **Un `body` in arrivo non è garantito essere non vuoto, nonostante quanto indicato dallo schema di lettura.** Meta può segnalare un messaggio in arrivo come `"text": {}` o con un `body` vuoto, e Bird lo memorizza così com'è senza generare un segnaposto. Si tratta di un gap noto e aperto: non scrivere un consumer che si fidi del `required: body` dello schema in questo caso.

## Prossimi passi

- [Messaggi di servizio WhatsApp](/docs/guides/whatsapp/message-types): la finestra di servizio clienti e il modello condiviso da ogni messaggio di servizio
- [Invio di messaggi WhatsApp](/docs/guides/whatsapp/sending-whatsapp): l'envelope della richiesta, il modello `202` e i tentativi sicuri
- [Messaggi interattivi](/docs/guides/whatsapp/message-types/interactive): quando vuoi un tocco invece di una risposta digitata

## Related resources

- [Connecting WhatsApp to Bird: from buying a number to a live channel](/learn/whatsapp/connecting-whatsapp-to-bird) (video)
- [What is the 24-hour customer service window on WhatsApp?](/explained/whatsapp/what-is-the-24-hour-customer-service-window) (answer)
- [WhatsApp message builder](/tools/whatsapp-message-builder) (tool)
- [WhatsApp](/products/whatsapp) (product)

[Get an implementation brief](/learn/workspace?topic=whatsapp)
