Skip to content

Booking created

POST

A booking was confirmed. Sent to the hotel, and to the reseller / travel agent the booking was made through.

Recipients: AFFILIATE, AGENT, SUPPLIER. Delivery: POST to your registered URL; respond 2xx within 10s. Non-2xx or timeout is retried 10 times over ~3 days (1m, 5m, 30m, 2h, 6h, 12h, then daily); 4xx other than 408/429 is terminal. Wink-Event-Id is your idempotency key. Also raised when: Each booking of a multi-room group booking is delivered as its own booking.create event; correlate with groupIdentifier.

Wink-Signature
required
string
Example
t=1755000000,v1=5d41402abc4b2a76b9719d911017c592...

Signature over t + "." + rawBody. See the security scheme.

Wink-Event-Id
required
string
Example
0198a4f2-6b0e-7c1d-9a3e-2f4b8c6d1e0a

Event identifier — identical for every endpoint of this recipient and every retry.

Wink-Delivery-Id
required
string
Example
0198a4f2-6b0f-7d2e-8b4f-3a5c9d7e2f1b

Delivery identifier — unique per subscription endpoint.

Wink-Event-Type
required
string
Example
booking.create

Event type key (same as type in the body).

Wink-Delivery-Attempt
required
string
Example
1

1-based attempt number.

Wink-Version
required
string
Example
2.0

Wire contract version.

Media typeapplication/json
object
id
required

Unique event identifier. Identical for every endpoint of this recipient and every retry; use it as your idempotency key.

string format: uuid
""
Example
b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47
object
required

The event payload. Its schema depends on type; every payload carries links.self.

""
occurredAt
required

When the event happened on the platform (UTC).

string format: date-time
""
Example
2026-08-15T09:30:00Z
ownerIdentifier
required

The managing entity this delivery is addressed to.

string format: uuid
""
Example
d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69
recipientRole
required

Why the addressed managing entity receives this event.

string
""
Allowed values: SUPPLIER AFFILIATE AGENT SELF
Example
SUPPLIER
schemaVersion
required

Version of the payload contract (the shape of object). Currently 2.

integer format: int32
""
Example
2
type
required

Event type key, e.g. booking.create. The list of keys is documented under Webhooks.

string
""
Example
booking.create
object
required

Summary of a booking: what an integrator needs to act on a booking event. Fetch links.self for the full record.

object
booker

The person who made the booking (may be an agent rather than the traveler).

object
email

Email.

string format: email
""
firstName

First name.

string
""
lastName

Last name.

string
""
telephone

Telephone.

string
""
bookingCode
required

User-friendly confirmation code.

string
""
Example
WNK4ZQ7P
bookingIdentifier
required

Booking identifier.

string format: uuid
""
cancellation

Present when the booking is cancelled.

object
cancellationType

Cancellation policy type applied.

string
""
Allowed values: DUPLICATE CANCELLATION NO_SHOW CC_INVALID CC_INSUFFICIENT DISCRETIONARY
cancelledOn

When the booking was cancelled.

string format: date-time
""
cancellerType

Who cancelled.

string
""
Allowed values: HOTEL GUEST ADMIN AGENT ACQUIRER SALES_CHANNEL SYSTEM
reason

Free-text reason.

string
""
createdAt

When the booking was created.

string format: date-time
""
groupIdentifier

UUID grouping the bookings of a single multi-room transaction, if any.

string format: uuid
""
guest

The lead guest assigned to the stay, when different from the booker.

object
email

Email.

string format: email
""
firstName

First name.

string
""
lastName

Last name.

string
""
telephone

Telephone.

string
""
hotel
required

The property booked.

object
currencyCode

Hotel currency code.

string
""
Example
THB
hotelIdentifier
required

Hotel (managing entity) identifier.

string format: uuid
""
name

Hotel trade name.

string
""
lastUpdatedAt

When the booking record last changed.

string format: date-time
""
links
required

Links to fetch the full resource this event is about. self is the SUPPLIER-side canonical resource URL (/api/managing-entity/{hotel}/extranet/…). AFFILIATE and AGENT recipients cannot call it — use your own reseller/agent endpoints for the same resource id.

object
self
required

Absolute URL of the resource, on the SUPPLIER-side canonical path (/api/managing-entity/{hotel}/extranet/…). If you receive this event as an AFFILIATE or AGENT rather than the supplier, call your own reseller/agent endpoint for the same resource id instead — the REST ACL applies either way.

string format: uri
""
Example
https://api.wink.travel/api/managing-entity/3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51/extranet/booking/9c7d6e4f-0a8b-2c51-3c6b-1a5d8e2f4a0b
refund

Present when a refund exists.

object
amount

Refunded amount in the property’s currency.

object
amount
required

Amount, as a decimal.

number
""
Example
450
currency
required

ISO-4217 currency code.

string
""
Example
USD
processedAt

When the refund was processed, if it has been.

string format: date-time
""
reason

Refund reason.

string
""
Allowed values: DUPLICATE FRAUDULENT REQUESTED_BY_CUSTOMER GUEST_COMPLAINT GUEST_BOOKED_INCORRECT_DATE GUEST_SICK OVERBOOKING EMERGENCY FLIGHT_CANCELLED DEATH_IN_FAMILY OTHER EXPIRED_UNCAPTURED_CHARGE AVAILABILITY_CHECK_FAILED
refundIdentifier

Refund identifier.

string format: uuid
""
requestedAt

When the refund was requested.

string format: date-time
""
status

Refund status.

string
""
Allowed values: PENDING SUCCEEDED CANCELED REQUIRES_ACTION FAILED
refundState
required

How much of the captured amount has come back: FULL, PARTIAL, or NONE when no settled refund exists. Derived from the refund ledger rather than from status — a refunded booking that was not cancelled reports PAYMENT_SUCCEEDED in status, so read this field to detect a refund, not that one.

string
""
Allowed values: NONE PARTIAL FULL
reseller

The reseller / sales-channel context the booking was made under, if any.

object
managingEntityIdentifier

Managing entity identifier of the reseller / sales-channel owner.

string format: uuid
""
name

Reseller display name.

string
""
status
required

Booking lifecycle status.

string
""
Allowed values: INITIALIZED TEST_PAYMENT_SUCCEEDED PAYMENT_SUCCEEDED PAYMENT_FAILED FAILED CANCELLED PARTIALLY_REFUNDED FULLY_REFUNDED
stay

Dates, occupancy and room/rate plan.

object
adults

Adults.

integer format: int32
""
Example
2
checkIn
required

Check-in date.

string format: date
""
checkOut
required

Check-out date.

string format: date
""
children

Children.

integer format: int32
""
Example
0
nights

Number of nights.

integer format: int64
""
Example
3
quantity

Identical rooms booked.

integer format: int32
""
Example
1
ratePlanIdentifier

Rate plan identifier.

string format: uuid
""
ratePlanName

Rate plan name.

string
""
roomTypeIdentifier

Room type identifier.

string format: uuid
""
roomTypeName

Room type name.

string
""
total

Gross stay total in the property’s currency.

object
amount
required

Amount, as a decimal.

number
""
Example
450
currency
required

ISO-4217 currency code.

string
""
Example
USD

Acknowledged. Any 2xx marks the delivery SUCCEEDED.

Rejected. Terminal (no retry) except 408 and 429, which are retried.

Failed. Retried per the schedule above.