# Odbieranie obrazów WhatsApp

Zdjęcie lub grafika wysłana przez kontakt dociera jako wiadomość przychodząca zawierająca `image`: referencję do pliku zapisanego przez Bird oraz ewentualny podpis wpisany pod obrazem.

## Co zawiera przychodzący obraz

```json
{
  "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"
}
```

| Pole        | Co zawiera                                                              |
| ----------- | ----------------------------------------------------------------------- |
| `id`        | Zapisany plik, przekazywany jako `media_id` podczas pobierania bajtów   |
| `url`       | URL Bird, pobierany za pomocą klucza API                                |
| `mime_type` | Typ mediów zgłoszony przez WhatsApp dla pliku, np. `image/jpeg`         |
| `caption`   | Tekst wpisany przez kontakt pod obrazem; nieobecny, gdy nic nie wpisano |

`id` i `mime_type` występują tylko w przychodzącym obrazie: Bird poznaje oba, pobierając plik, i nigdy nie zapisuje tego, który wysłałeś. Obraz wychodzący zwraca `url`, który podałeś, bez `id`.

Traktuj `mime_type` jako raport WhatsApp, a nie gwarancję, i rozgałęziaj logikę na jego podstawie zamiast na rozszerzeniu pliku w `url`, które go nie zawiera.

## Pobieranie bajtów

`url` i `id` wskazują na ten sam zapisany plik: przekaż identyfikator wiadomości i `id` mediów do metody mediów kanału w dowolnym SDK, CLI lub cURL. Sekcja [pobieranie przychodzących mediów](/docs/guides/whatsapp/receiving-whatsapp#fetching-inbound-media) w hubie zawiera to wywołanie we wszystkich językach, wraz z regułami przekierowań i nagłówków.

Wiadomość i jej media wygasają razem, 30 dni po nadejściu wiadomości; sekcja [pobieranie przychodzących mediów](/docs/guides/whatsapp/receiving-whatsapp#fetching-inbound-media) w hubie określa to okno i to, co zwracają odczyty po jego upływie. Zapisz każdy obraz, którego potrzebujesz na dłużej, dopóki wiadomość jest jeszcze dostępna.

## Ładunek webhooka

`whatsapp.received` zawiera gałąź `image` w kopercie zdarzenia, wraz z referencją mediów:

```json
{
  "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
  }
}
```

Webhook uruchamia się, gdy wiadomość dociera, co jest jednocześnie początkiem okna retencji, więc endpoint kolejkujący pobranie zamiast wykonywać je natychmiast ma całe okno na nadrobienie.

## Na co uważać

- **Podpis należy do kontaktu.** Dociera jako zwykły tekst bez formatowania ani informacji o encjach, więc renderuj go jako tekst.
- **Jeden obraz na wiadomość.** Kontakt wysyłający kilka zdjęć generuje kilka wiadomości przychodzących, każda z własnym `id` i własną referencją mediów. Grupuj je po `from` i czasie nadejścia; żadna tablica ich nie zbiera.

## Następne kroki

- [Jak działa odbieranie](/docs/guides/whatsapp/receiving-whatsapp): koperta przychodząca, pobieranie mediów i webhook `whatsapp.received`
- [Wiadomości graficzne WhatsApp](/docs/guides/whatsapp/message-types/images): strona wysyłania tej samej gałęzi
- [Odbieranie dokumentów](/docs/guides/whatsapp/receiving-whatsapp/documents): ten sam kształt mediów, z nazwą pliku nadawcy
- [Zdarzenia WhatsApp](/docs/guides/whatsapp/events): pełna lista zdarzeń, przez API lub webhooki

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