# WhatsApp-Nachrichten empfangen

Eingehende Nachrichten landen auf derselben Ressource wie ausgehende – es gibt keinen separaten Inbox-Endpunkt zum Abfragen. Lesen Sie sie über die [Nachrichtenliste](/docs/guides/whatsapp/message-log) im Dashboard oder über die API mit `GET /v1/whatsapp/messages/{id}`, nachdem Sie die Liste auf eingehende Nachrichten gefiltert haben.

Jede eingehende Nachricht verlängert das [Kundenservice-Fenster](/docs/knowledge-base/whatsapp/customer-service-window) auf 24 Stunden nach dem Zeitstempel dieser Nachricht. Dadurch wird eine freie Antwort Ihrerseits zustellbar. Eine Nachricht, die Bird verspätet erreicht, trägt daher das Fenster, das der Kontakt tatsächlich gewährt hat, und eine bereits gespeicherte spätere Frist wird nie verkürzt.

## Was eine eingehende Nachricht enthält

Jede eingehende Nachricht hat denselben Umschlag: eine `id`, `direction: "inbound"`, den Kontakt in `from`, Ihre eigene Nummer in `to`, einen `status` von `received` und einen `created_at`. Genau ein Inhaltsfeld steht daneben und benennt, was der Kontakt gesendet hat:

```json
{
  "id": "wam_01kya19eknftrs2s6p82asmvnh",
  "direction": "inbound",
  "from": { "phone_number": "+14155550100" },
  "to": { "phone_number": "+13124495569" },
  "status": "received",
  "text": { "body": "Is my order out for delivery yet?" },
  "created_at": "2026-08-25T09:04:11Z"
}
```

`from` benennt den Kontakt anhand der Identität, die WhatsApp meldet: eine E.164-`phone_number`, eine `bsuid` oder beides, plus `username` und `display_name`, die sie veröffentlichen. Ein Kontakt, der einen WhatsApp-Benutzernamen angenommen hat, kann Sie ganz ohne Telefonnummer erreichen; siehe [geschäftsbezogene Benutzer-IDs](/docs/guides/whatsapp/business-scoped-user-ids) für das, was Sie speichern und wie Sie nach einer Nummer fragen.

Eines dieser Inhaltsfelder, ein **Arm**, enthält das Gesendete, und genau ein Arm ist bei jeder Nachricht gesetzt. Jeder hat eine eigene Seite mit der Leseform, dem `whatsapp.received`-Payload und worauf Sie achten sollten:

| Feld                                                                                | Was eine eingehende Nachricht enthält                                                          |
| ----------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- |
| [`text`](/docs/guides/whatsapp/receiving-whatsapp/plain-text)                       | `body`, die Nachricht, die der Kontakt getippt hat                                             |
| [`image`](/docs/guides/whatsapp/receiving-whatsapp/images)                          | Eine `id`, `url`, `mime_type` und eventuelle `caption`                                         |
| [`video`](/docs/guides/whatsapp/receiving-whatsapp/video)                           | Dieselben Medienfelder, plus eventuelle `caption`                                              |
| [`audio`](/docs/guides/whatsapp/receiving-whatsapp/audio)                           | Dieselben Medienfelder, plus `voice` bei einer Sprachnachricht; es gibt keine Bildunterschrift |
| [`sticker`](/docs/guides/whatsapp/receiving-whatsapp/stickers)                      | Dieselben Medienfelder, plus `animated`                                                        |
| [`document`](/docs/guides/whatsapp/receiving-whatsapp/documents)                    | Dieselben Medienfelder, plus eventuelle `filename` und `caption`                               |
| [`location`](/docs/guides/whatsapp/receiving-whatsapp/location)                     | `latitude` und `longitude`, und manchmal `name`, `address` oder ein `url`                      |
| [`contact_cards`](/docs/guides/whatsapp/receiving-whatsapp/contact-cards)           | Eine oder mehrere Kontaktkarten, die der Kontakt geteilt hat                                   |
| [`interactive_reply`](/docs/guides/whatsapp/receiving-whatsapp/interactive-replies) | `slug` und `text` des Buttons oder der Zeile, die der Kontakt angetippt hat                    |
| [`unsupported`](/docs/guides/whatsapp/receiving-whatsapp/unsupported)               | Der WhatsApp-Inhaltstyp, den die API nicht modelliert, z. B. eine Bestellung                   |

Zwei Taps landen auf einem Arm, den Sie vielleicht nicht erwarten. Eine [Standortanfrage](/docs/guides/whatsapp/message-types/interactive/location-requests) wird als gewöhnliche eingehende `location` beantwortet, und eine [Kontaktinfo-Anfrage](/docs/guides/whatsapp/message-types/interactive/contact-info-requests) als `contact_cards` – eine Integration, die nur `interactive_reply` auf einen Tap überwacht, verpasst also beide.

## Eingehende Medien abrufen

Ein eingehendes `image`, `video`, `audio`, `sticker` oder `document` kommt als Verweis auf eine Datei an, die Bird gespeichert hat, nicht als die Datei selbst:

```json
{
  "image": {
    "id": "waf_01kyb2m4xq7whs0d8n3prv6tez",
    "url": "https://platform.bird.com/v1/whatsapp/messages/wam_01kya19eknftrs2s6p82asmvnh/media/waf_01kyb2m4xq7whs0d8n3prv6tez",
    "mime_type": "image/jpeg",
    "caption": "Is this the right part?"
  }
}
```

Rufen Sie die Bytes mit der Media-Methode des Channels ab und übergeben Sie die Nachrichten-ID und die Medien-`id`:

**TypeScript**

```typescript
const media = await bird.whatsapp.messages.media(
  "wam_01kya19eknftrs2s6p82asmvnh",
  "waf_01kyb2m4xq7whs0d8n3prv6tez",
);
console.log(media.contentType, media.contentLength);
```

Examples: [TypeScript](/de-de/dokumentation/guides/whatsapp/receiving-whatsapp.ts.md) · [Python](/de-de/dokumentation/guides/whatsapp/receiving-whatsapp.py.md) · [Go](/de-de/dokumentation/guides/whatsapp/receiving-whatsapp.go.md) · [PHP](/de-de/dokumentation/guides/whatsapp/receiving-whatsapp.php.md) · [CLI](/de-de/dokumentation/guides/whatsapp/receiving-whatsapp.cli.md) · [MCP](/de-de/dokumentation/guides/whatsapp/receiving-whatsapp.mcp.md) · [cURL](/de-de/dokumentation/guides/whatsapp/receiving-whatsapp.curl.md)

Sie erhalten die Bytes mit dem für sie deklarierten `mime_type`-Speicher zurück. Eine ID, die Bird nicht erkennt, gibt `404` zurück, und eine ausgehende Nachricht hat keine gespeicherten Medien zum Ausliefern.

**Eine Nachricht ist 30 Tage nach dem Eingang lesbar, und ihre Medien überdauern sie nie.** Dieser Endpunkt liest die Nachricht, bevor er die Datei ausliefert – sobald dieses Fenster abgelaufen ist, antworten beide mit `404`. Speichern Sie jede Datei, die Sie länger brauchen, solange die Nachricht noch lesbar ist. Der einzige Fall, der früher endet, ist, wenn die gespeicherten Bytes vor Ablauf des Fensters verschwinden: Der Abruf antwortet mit `410` [`E15021`](/docs/api/errors/E15021), und die Nachricht ist weiterhin mit `mime_type` und `caption` der Medien lesbar.

Intern antwortet dieser Endpunkt mit `302` und einer vorsignierten URL, die 15 Minuten gültig ist. Die SDKs und die CLI übernehmen diesen Zwischenschritt für Sie. Beim direkten Aufruf bringt die vorsignierte URL ihre eigene Berechtigung mit, sodass die weitergeleitete Anfrage nicht zusätzlich Ihren `Authorization`-Header senden darf. Beides zusammen schlägt fehl. `curl -L` entfernt den Header bei einem Cross-Host-Redirect automatisch; ein Client, der Header unverändert weiterleitet, muss die `Location` als separate, nicht authentifizierte Anfrage abrufen.

## Zitierte Antworten

`in_reply_to_message_id` benennt die Nachricht, auf die eine eingehende antwortet, wenn WhatsApp sie als Antwort markiert:

```json
{
  "id": "wam_01kyb2m4xq7whs0d8n3prv6tez",
  "direction": "inbound",
  "in_reply_to_message_id": "wam_01kya19eknftrs2s6p82asmvnh",
  "text": { "body": "Yes, that one" }
}
```

WhatsApp markiert nicht jede Antwort, und eine nicht markierte enthält überhaupt keine ID. Das Feld wird auch weggelassen, wenn die zitierte Nachricht keiner zugeordnet werden kann, die Bird gespeichert hat: eine Nachricht, die vor Beginn der Aufzeichnung in diesem Workspace gesendet wurde, oder eine, die die 15 Tage überschreitet, die Bird die eigenen Nachrichten-IDs von WhatsApp aufbewahrt. Ein Fehlschlag lässt das Feld weg, statt eines zu melden – das sieht genauso aus wie eine Antwort, die auf nichts antwortet.

Behandeln Sie das Feld als Hinweis, nicht als Schlüssel. `metadata` bei Ihrem eigenen Versand hilft hier nicht, weil es auf Ihrer Nachricht bleibt und nie zur Antwort des Kontakts wandert. Eine Integration, die wissen muss, zu welcher Frage eine Antwort gehört, verfolgt die letzte an den Kontakt gestellte Frage selbst. Siehe [Eine Nachricht zitieren](/docs/guides/whatsapp/sending-whatsapp#quoting-a-message) für die ausgehende Seite.

## Der Webhook

Abonnieren Sie `whatsapp.received`, um auf eine eingehende Nachricht bei Eintreffen zu reagieren, statt die Liste abzufragen. Der Payload enthält den Inhalt zusätzlich zum Event-Umschlag, sodass ein Endpunkt keinen Folgeabruf benötigt:

```json
{
  "type": "whatsapp.received",
  "timestamp": "2026-08-25T09:04:11.118Z",
  "data": {
    "whatsapp_id": "wam_01kyb2m4xq7whs0d8n3prv6tez",
    "workspace_id": "ws_01ky7m235keycbnwyajabe1a6b",
    "direction": "inbound",
    "from": { "phone_number": "+14155550100", "display_name": "Alex Rivera" },
    "to": { "phone_number": "+13124495569" },
    "in_reply_to_message_id": "wam_01kya19eknftrs2s6p82asmvnh",
    "interactive_reply": {
      "type": "button",
      "button": { "slug": "cancel-booking", "text": "Cancel" }
    },
    "tags": null,
    "metadata": null
  }
}
```

Siehe [WhatsApp-Events](/docs/guides/whatsapp/events#webhooks) für den vollständigen Umschlag und die restliche Event-Liste.

## Nächste Schritte

- [Service-Nachrichten](/docs/guides/whatsapp/message-types): die Sendeseite derselben Inhalts-Arms
- [WhatsApp-Nachrichten senden](/docs/guides/whatsapp/sending-whatsapp): innerhalb des Service-Fensters antworten und eine Nachricht zitieren
- [WhatsApp-Events](/docs/guides/whatsapp/events): die vollständige Event-Liste, über die API oder Webhooks
- [WhatsApp-Log](/docs/guides/whatsapp/message-log): die Konversation im Dashboard durchsuchen

## 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](/whatsapp) (product)

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