Sign inGet started

WhatsApp-afbeeldingen ontvangen

Een foto of afbeelding die een contact stuurt, komt binnen als een inkomend bericht met image: een verwijzing naar het bestand dat Bird voor je heeft opgeslagen, plus het bijschrift dat ze eronder hebben getypt.

Wat een inkomende afbeelding bevat

Codevoorbeeld
{
  "id": "wam_01kya19eknftrs2s6p82asmvnh",
  "direction": "inbound",
  "from": { "phone_number": "+14155550100" },
  "to": { "phone_number": "+13124495569" },
  "status": "received",
  "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?"
  },
  "created_at": "2026-08-25T09:04:11Z"
}
VeldWat het bevat
idHet opgeslagen bestand, mee te geven als media_id bij het ophalen van de bytes
urlEen Bird-URL, op te halen met je API-sleutel
mime_typeHet mediatype dat WhatsApp voor het bestand heeft gerapporteerd, zoals image/jpeg
captionDe tekst die het contact onder de afbeelding heeft getypt; afwezig als ze niets hebben gestuurd
id en mime_type verschijnen alleen bij een inkomende afbeelding: Bird leert beide door het bestand op te halen, en heeft het bestand dat je hebt verstuurd nooit opgeslagen. Een uitgaande afbeelding wordt teruggelezen met de url die je hebt opgegeven en zonder id.
Behandel mime_type als het rapport van WhatsApp in plaats van als een garantie, en vertakt erop in plaats van op de bestandsextensie in url, die er geen bevat.

De bytes ophalen

url en id verwijzen beide naar hetzelfde opgeslagen bestand: geef het bericht-ID en de media-id door aan de mediamethode van het kanaal, in elke SDK, de CLI, of cURL. De hub's inkomende media ophalen bevat die aanroep in elke taal, samen met de redirect- en headerregels die erbij horen.
Het bericht en de media verlopen samen, 30 dagen na aankomst van het bericht; de hub's inkomende media ophalen beheert dat venster en wat de reads teruggeven nadat het is verstreken. Sla elke afbeelding die je langer nodig hebt op zolang het bericht nog leesbaar is.

De webhook-payload

whatsapp.received bevat de image-arm op de event-envelope, inclusief mediareferentie:
Codevoorbeeld
{
  "type": "whatsapp.received",
  "timestamp": "2026-08-25T09:04:11.118Z",
  "data": {
    "whatsapp_id": "wam_01kya19eknftrs2s6p82asmvnh",
    "workspace_id": "ws_01ky7m235keycbnwyajabe1a6b",
    "direction": "inbound",
    "from": { "phone_number": "+14155550100" },
    "to": { "phone_number": "+13124495569" },
    "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?"
    },
    "tags": null,
    "metadata": null
  }
}
De webhook wordt afgevuurd wanneer het bericht binnenkomt, en dat is ook het moment waarop het bewaarvenster start. Een endpoint dat het ophalen in een wachtrij plaatst in plaats van het inline te doen, heeft dus het volledige venster om bij te werken.

Aandachtspunten

  • Het bijschrift is van het contact. Het komt binnen als platte tekst zonder opmaak of entity-informatie, dus render het als tekst.
  • Eén afbeelding per bericht. Wanneer een contact meerdere foto's stuurt, ontstaan er meerdere inkomende berichten, elk met een eigen id en een eigen mediareferentie. Groepeer ze op from en aankomsttijd; er is geen array die ze bundelt.

Volgende stappen