Understanding the Chat Webhook¶
What does it do?¶
The chat webhook lets Booking.com forward traveller messages to your driver app for Rides bookings. When a traveller sends a message, Booking.com sends an HTTP POST request to the webhook endpoint that your organisation registered. Your driver app shows the message in the conversation thread. The driver then replies through the Dispatch API.
The chat integration lets you:
- Receive traveller messages through a webhook.
- Send driver messages to travellers.
- Load the conversation history, including any messages missed while your webhook was unavailable.
Why use it?¶
If your driver app supports in-app messaging, the chat webhook gives travellers and drivers a real-time way to communicate during a Rides booking. Chat lets drivers receive operational messages from travellers — for example, pickup-location updates or arrival instructions — without a separate communication channel.
Note
Booking.com delivers chat events only for bookings where the driver assignment set chatEnabled: true.
How does it work?¶
- Self-enrol for the
CHATwebhook. AddCHATto yourPOST /v1/webhooksrequest. - Implement the receiver route
POST /v2/bookings/:bookingReference/chat-messageson your server. Return a2xxresponse within 30 seconds. No response body is required. - Declare chat support during driver assignment. Add
chatEnabled: trueand achatParticipantIdto your existing Assign a driver request.
Your API must be served via HTTPS with a valid SSL certificate and secured using OAuth 2.0 authentication.
The inbound webhook uses the same resource path as the outbound send-message endpoint. Only the host differs:
- Traveller to driver (inbound): Booking.com posts to your server.
- Driver to traveller (outbound): Your server posts to Booking.com.
Implement your receiver as a single parameterised route, for example app.post('/v2/bookings/:bookingReference/chat-messages', handler).
Key requirements¶
- Serve your API over HTTPS with a valid SSL certificate.
- Register
CHATtogether with the webhook event types you already use. - Set
chatEnabled: trueduring driver assignment to enable chat delivery for a booking. - Provide
chatParticipantIdwhen chat is enabled. It must match the participant currently assigned to the booking. - Return a
2xxresponse to inbound webhook requests within 30 seconds. - Deduplicate inbound messages with
messageId. - Recover missed messages with the conversation history endpoint when the chat screen opens.