---
title: "Whatsapp Webhook"
method: POST
path: "/whatsapp_webhooks"
tags: ["whatsapp"]
---

# Whatsapp Webhook

`POST /whatsapp_webhooks`

Parse the WhatsApp multipart, build a channel-blind ``InboundMessage``,
and dispatch to the generic core.

Multipart contract (#810, #814): ``payload`` is the JSON-encoded
``WhatsAppWebhookRequest`` body; ``audio``, ``image``, and ``document``
are mutually-exclusive optional file fields. At least one of
``text``/``audio``/``image``/``document`` must be present.

Returns 200 after the durable turn is enqueued; the coach run or invite
send happens in the channel worker.

## Headers

- `x-whatsapp-bridge-token` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/imperfect/apis/imperfect-api.md) · [All operations](https://skmtc.dev/imperfect/apis/imperfect-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/imperfect/imperfect-api/revisions/cc2293a44257/schema)
