# WhatsApp platte-tekstberichten

Platte tekst is de eenvoudigste vrijevorm-inhoudsvariant: een body zonder bijlage, en een optionele preview voor de eerste link erin.

## Een tekstbericht versturen

Stel `text.body` in:

**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](/nl-nl/documentatie/guides/whatsapp/message-types/plain-text.ts.md) · [Python](/nl-nl/documentatie/guides/whatsapp/message-types/plain-text.py.md) · [Go](/nl-nl/documentatie/guides/whatsapp/message-types/plain-text.go.md) · [PHP](/nl-nl/documentatie/guides/whatsapp/message-types/plain-text.php.md) · [CLI](/nl-nl/documentatie/guides/whatsapp/message-types/plain-text.cli.md) · [MCP](/nl-nl/documentatie/guides/whatsapp/message-types/plain-text.mcp.md) · [cURL](/nl-nl/documentatie/guides/whatsapp/message-types/plain-text.curl.md)

De volledige structuur voegt `preview_url` toe, plus de velden die elke vrijevorm-verzending kan bevatten:

```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` is verplicht bij elk servicebericht: een nummer dat je werkruimte bezit, niet een door Bird beheerd nummer. `in_reply_to_message_id` citeert een eerder bericht in hetzelfde gesprek; zie [Een bericht citeren](/docs/guides/whatsapp/sending-whatsapp#quoting-a-message) voor waartegen het wordt opgelost en wat het kan missen.

## Limieten

| Veld          | Grens                      | Afgedwongen door             |
| ------------- | -------------------------- | ---------------------------- |
| `body`        | 1 tot 4096 tekens          | Bird, bij acceptatie (`422`) |
| `preview_url` | boolean, standaard `false` | N.v.t., informatief          |

Een `body` die alleen witruimte bevat, doorstaat de eigen `minLength: 1` van het schema, maar Bird vangt het alsnog af: een `body` die na trimmen leeg is, wordt geweigerd met `422` [`E15015`](/docs/api/errors/E15015) `WhatsAppContentRequired`. Een body van meer dan 4096 tekens wordt geweigerd met een gewone `422` en zonder specifieke cataloguscode.

## Een inkomend tekstbericht lezen

Een inkomend tekstbericht bevat hetzelfde `text.body`-veld, en verder niets op de variant. Zie [WhatsApp-tekstberichten ontvangen](/docs/guides/whatsapp/receiving-whatsapp/plain-text) voor het volledige inkomende leesformaat, de `whatsapp.received`-payload, en waar je op moet letten.

## Limieten en randgevallen

- **Het klantenservicevenster moet open zijn.** Platte tekst is een servicebericht, alleen afleverbaar binnen een open venster; zie het [klantenservicevenster](/docs/guides/whatsapp/message-types#the-customer-service-window) van de hub.
- **`preview_url` beïnvloedt alleen de eerste link, en alleen wat de client van de ontvanger rendert.** De standaardwaarde is `false`. Stel het in om een preview van de eerste URL in `body` te tonen; een latere URL in dezelfde body krijgt er nooit een. Als de client van de ontvanger geen preview voor die link kan ophalen, valt het stilletjes terug op een gewone klikbare link. Niets bij het lezen vertelt je of er daadwerkelijk een preview is gerenderd.
- **WhatsApp-markdown is de client van de ontvanger die `body` rendert, geen onderdeel van het API-contract.** Bird geeft `body` ongewijzigd door; het valideert, stript of encodeert geen `*bold*`, `_italic_`, `~strikethrough~` of triple-backtick monospace. Of die markers renderen hangt volledig af van de client die het bericht opent.
- **Een inkomend `body` is niet gegarandeerd niet-leeg, ondanks wat het leesschema zegt.** Meta kan een inkomend bericht rapporteren als `"text": {}` of met een lege `body`, en Bird slaat het letterlijk op in plaats van een placeholder te genereren. Dit is een bekend, open hiaat: schrijf geen consumer die hier op de `required: body` van het schema vertrouwt.

## Volgende stappen

- [WhatsApp-serviceberichten](/docs/guides/whatsapp/message-types): het klantenservicevenster en het model dat elk servicebericht deelt
- [WhatsApp-berichten versturen](/docs/guides/whatsapp/sending-whatsapp): de request-envelope, het `202`-model en veilig opnieuw proberen
- [Interactieve berichten](/docs/guides/whatsapp/message-types/interactive): als je een tik wilt in plaats van een getypt antwoord

## 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)
