Skip to content

Create

POST
/api/managing-entity/{managingEntityIdentifier}/webhook
curl --request POST \
--url https://api.wink.travel/api/managing-entity/d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69/webhook \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Wink-Version: 2.0' \
--data null

Registers a new webhook subscription for the managing entity and returns the persisted record.

managingEntityIdentifier
required
string
""

Identifier of the managing entity that will own the webhook

Example
d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69
Wink-Version
string
default: 2.0.0
Allowed values: 2.0

Webhook configuration including the target callback URL, signing secret, and the list of event types to subscribe to

Media type application/json

Request payload for creating or updating a webhook subscription, including the target endpoint URL, owning entity, and the list of event types to subscribe to.

object
name
required

Descriptive name of this webhook, e.g. ‘Booking confirmation sync’ or ‘Payment notifications’.

string
"" >= 1 characters
Example
Booking confirmation sync
entity
required

The managing entity (account owner) that will own this webhook.

object
identifier
required

Unique managing entity (account owner) identifier.

string format: uuid
"" >= 1 characters
Example
d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69
name
required

Display name of the managing entity.

string
"" >= 1 characters
Example
The Siam Residences, Bangkok
Example
{
"identifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"name": "The Siam Residences, Bangkok"
}
enabled
required

Whether this webhook is actively subscribed to events.

boolean
default: true
Example
true
eventUrl
required

HTTPS endpoint URL to POST events to. Must be a valid, publicly accessible URL.

string format: uri
"" >= 1 characters
Example
https://api.example.com/webhooks/wink/events
eventList
required
Array<string>
Example
{
"name": "Booking confirmation sync",
"entity": {
"identifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69",
"name": "The Siam Residences, Bangkok"
},
"enabled": true,
"eventUrl": "https://api.example.com/webhooks/wink/events",
"eventList": [
"booking.created"
]
}

Webhook created successfully

Media type application/json

A webhook subscription that delivers HTTP POST notifications to a configured endpoint whenever subscribed events occur on the Wink platform.

object
id
required

Document UUID

string format: uuid
"" >= 1 characters
createdDate

Datetime this record was first created

string format: date-time
""
lastUpdate

Datetime this record was last updated

string format: date-time
""
version

Version property that shows how many times this document has been persisted. Document will not persist if the version property is less than current version property in the system. Result in an optimistic locking exception.

integer format: int64
""
userIdentifier
required

Unique authenticated user identifier

string format: uuid
"" >= 1 characters
ownerIdentifier
required

Unique managing entity (owner) identifier

string format: uuid
"" >= 1 characters
ownerName
required

Display name of the managing entity that owns this webhook.

string
"" >= 1 characters
name
required

Descriptive name of this webhook, e.g. ‘Booking confirmation sync’ or ‘Payment notifications’.

string
"" >= 1 characters
enabled
required

Whether this webhook is actively subscribed to events.

boolean
default: true
eventUrl
required

HTTPS endpoint URL to POST events to. Must be a valid, publicly accessible URL.

string format: uri
"" >= 1 characters
eventList
required
Array<string>
key
additional properties
""
Example

Bad Request — missing or invalid request parameter or body

Media type application/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Unauthorized — authentication is required or the session has expired

Media type application/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Forbidden — authenticated but lacking the required permission or scope

Media type application/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Not Found — the requested resource does not exist

Media type application/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Method Not Allowed — the HTTP verb is not supported on this endpoint

Media type application/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Unsupported Media Type — use application/json

Media type application/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Internal Server Error — an unexpected failure occurred on the server

Media type application/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Service Unavailable — a downstream dependency is unreachable

Media type application/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example