Skip to content
Partner API

Connect a system, not a mailbox.

Tour operators and platforms connect to DMC Connect directly. Instead of asking every few minutes, they are told when something changes.

POST /dmc-hook
X-DMC-Event: booking.confirmed
X-DMC-Event-Id: evt_5f0c6a2e9b1d4c8e8a7f3b2d1c0e9f8a
X-DMC-Signature: t=1810116902,v1=6a1f…c93e

{ "id": "evt_5f0c…", "type": "booking.confirmed",
  "api_version": "v1", "data": { … } }

APIs in and out.Nobody retypes anything.

Drawn from the real screen. Names invented, figures changed.

  1. In: partners search and book.

    Eighteen documented operations, and a test account first.

  2. Out: every change, signed.

    Bookings, availability, prices and hotels, as events within seconds.

  3. Suppliers beside your contracts.

    Live rates to compare, and to book when you allow it.

Drawn from the real screen. Names invented, figures changed.

What a partner is told

booking.*
Created, confirmed, amended, cancelled or a status change. Five event types.
availability.changed
A stop or open sale, an allotment or release change, or a booking that took or returned rooms.
prices.changed
A special offer added, changed or withdrawn, or contract prices changed.
hotel.changed
The hotel’s details, rooms or guest limits changed.
{
  "id": "evt_0b8e2d7c41a94f3e9c5d6a1b2f3e4d5c",
  "type": "prices.changed",
  "api_version": "v1",
  "created_at": "2027-05-12T09:41:07.502Z",
  "data": {
    "hotel_id": "1752",
    "hotel_name": "Erlia Bay Suites",
    "from": "2027-07-01",
    "to": "2027-07-31",
    "room_type": null,
    "reasons": ["special_offer"]
  }
}

Illustration: the fields follow the partner API guide.

The details your developers will ask about

Signed

Every event carries an HMAC-SHA256 signature over its exact body and a timestamp, with a secret the partner can rotate.

Delivered

Events are stored before they are sent. A failed delivery is retried after 1, 5 and 15 minutes, then 1, 3, 6 and 12 hours: eight attempts over about 22 hours.

Live rates

A live supplier rate is offered as an encrypted token, tied to the partner’s account and valid for 30 minutes.

No double bookings
A contracted-rate booking sent again with the same idempotency key returns the first booking.
Keys per agency
Each partner has its own key. The agency is always taken from the key, never from what the request says. Keys are shown once and can be revoked at once.
Limits
600 requests a minute per address, and 12 an hour for the two bulk calls, which answer “not modified” when nothing has changed.
What partners never see
Your net cost, your margin and the commission behind a price.

What a partner can call

18 operations in all.

GET /ping

Confirms the key, the network path and the account’s mode.

GET /hotels

The hotels the partner can sell.

GET /hotels/content

Descriptions, location, facilities, rooms and guest limits.

GET /availability
Every hotel, room and night in one call.
POST /search
A priced quote for a stay and a party, with offers applied.
POST /bookings
Book a contracted or a live rate.
POST /bookings/:id/amend
Change a booking. It is re-priced and only the difference counts.
POST /bookings/:id/cancel
Cancel a booking.
GET /bookings/:id/voucher
The voucher for a confirmed booking, without prices.
/webhooks
Register an address, send a test event, rotate the secret, read the delivery log, retry.

Documentation and test accounts

An online guide, an OpenAPI 3.0.3 specification with an interactive console, and a 38-page integration guide. A new partner starts on a test account limited to chosen hotels: it searches, books and receives events as a live partner would, and its bookings are marked as tests.