Last updated

Messaging API FAQs

Find answers to the most common questions regarding payment methods, timings, and more.


General overview

What is the Booking.com Messaging API?

The Messaging API facilitates structured, two-way communication between guests and accommodation hosts, tied to specific reservations.
It supports features like contextual conversations, attachments, and access to conversation history.

What are the capabilities of Messaging API?

The key features are:

Key features
Two-way messaging two way communicationEnable real-time, direct communication between partners and travellers—making it easy to exchange updates, clarify details, and build trust throughout the post-booking journey.
Contextual conversations contextual conversationsMessages are always tied to a specific reservation, keeping communication structured, relevant, and easy to follow from start to finish.
Conversation history conversation historyAccess up to one year of past messages at any time—ensuring full visibility, easy reference, and a consistent experience across platforms.
File attachments file attachmentsSupport image, document, and other file exchanges within conversations—making it easy to share booking confirmations, ID documents, photos, and more.
Which benefits does Messaging API bring to partners?

Scalability – With messaging centralised and automated, partners can manage more accommodations or bookings with the same resources.

Improved guest loyalty and trust – Clear and timely communication before arrival helps reduce cancellations, negative reviews and builds trust with guests.

Data and insights for optimisation – Access to structured messaging data (e.g., response times, message types) allows performance tracking and improvement.

Seamless integration with other partner services – Messaging can be integrated with booking management, Customer Relationship Manager (CRM), or service dispatch systems, enabling a more unified partner offering.


Authentication & access

How do I authenticate API requests?

All Messaging API endpoints require:

  • A valid API token.
  • Your affiliate ID (X-Affiliate-Id).

These credentials are consistent with those used for other Demand API v3 endpoints.

See the authentication section for more details.


Messaging flow & timing

When can guests and hosts send messages?
  • Guests – From the time of booking until 66 days after checkout or cancellation.
  • Hosts – From the time of booking until 7 days after checkout or cancellation.

If a guest sends a message, hosts can reply for up to 14 days from the guest's message timestamp, even if this exceeds the 7-day post-checkout limit.

How are conversations initiated?

Conversations are automatically created upon reservation, if there is a pre-defined Welcome message in property configuration.

How long are messages stored in the system?

Conversation history is retained for 1 year.

Attachments follow separate retention rules (see Do attachments expire?).

Partners should ensure compliance with GDPR/CCPA when storing copies in their own systems.


Testing the API

How can I test the Messaging API?

You can use the Demand API Messaging Test Hotel (Accommodation ID: 13921698) in the sandbox environment.

This test hotel has preconfigured automated responses to simulate realistic messaging scenarios.

See the Try out guide for more details.

What are the available test scenarios?

Test scenarios include:

  • Booking and receiving a welcome message.
  • Sending special requests and receiving automated responses (e.g., rejections for certain requests).

Managing messages

How do I send a message?

Use the messages/send endpoint with the required parameters:

  • reservation – ID of the reservation.
  • accommodation – ID of the accommodation.
  • content – The message body.

Optional parameters:

  • reply_to – ID of the message being replied to.
  • attachments – IDs of uploaded attachments.
How do I retrieve the latest messages?

Use the messages/latest endpoint to fetch up to 100 of the most recent messages.
Each message includes metadata such as sender information, content, attachments, and timestamp.

How do I confirm message retrieval?

After retrieving messages using messages/latest, confirm receipt by calling messages/latest/confirm.

This acknowledges successful retrieval and removes the messages from the queue.

Are there rate limits on sending messages?

Yes. To prevent abuse, the Messaging API enforces 100 requests per minute.

If the limit is exceeded, the API responds with 429 Too Many Requests. Partners should implement retry with backoff.

Can I send messages in any language?

Yes. Message content is treated as UTF-8 text.

Automatic translation is not provided; partners are responsible for language handling.

Can I get notified when a new message arrives instead of polling?

Currently, polling via [messages/latest] is the supported approach.

Webhooks or push notifications may be added in future releases (partners will be informed in advance).


Attachments

Can messages include attachments?

Yes. Both guests and partners can upload image attachments to enhance post-booking communication.
This is useful for sharing booking confirmations, ID documents, photos, and more.

Do attachments expire?
  • Unlinked attachments (uploaded but not sent in a message) are stored for 24 hours.
  • Linked attachments (included in a message) are stored for 7–10 years.
Can attachments be deleted?

No. The Messaging API does not currently support deleting attachments.

Are attachments scanned for viruses?

Yes. All files are automatically scanned by our internal virus-scanning gateway.

Are attachments encrypted?

Yes. Files are uploaded in base64 format and stored securely.

Can multiple attachments be sent in one request?

Yes. While uploads are handled individually, the /messages/send endpoint accepts an array of attachments.


Best practices

Should I store messages in my system?

It's recommended to store messages to maintain conversation history, enable efficient message retrieval, and support features like tagging messages as read or indicating no reply is needed.

How can I handle duplicate messages?

Implement a cron job that periodically filters out duplicate messages.

This ensures that messages already confirmed are not stored again.


For more detailed information and updates, please refer to the Messaging API guidelines: