Skip to main content
POST
Create a webhook endpoint
Create an endpoint for the environment associated with your API key. Use individual event names or booking.* to receive every booking event.
The signing_secret is returned only once. Store it securely before discarding the response.
Production endpoints must use a public HTTPS URL. The endpoint starts in ACTIVE status.

Authorizations

x-api-key
string
header
required

Environment-specific API key created in the Unifystays portal

Headers

Body

application/json
name
string
required

Human-readable name shown in webhook logs and the portal.

Required string length: 1 - 120
Example:

"Production booking events"

url
string
required

Public HTTPS URL that receives webhook POST requests. Private, loopback, link-local, and internal hosts are rejected.

Required string length: 8 - 2048
Example:

"https://example.com/webhooks/unifystays"

event_types
enum<string>[]
required

Event types delivered to this endpoint. Use booking.* to subscribe to every booking event.

Required array length: 1 - 20 elements
Available options:
booking.created,
booking.confirmed,
booking.failed,
booking.cancellation_requested,
booking.cancelled,
booking.cancellation_failed,
booking.*
Example:

Response

201 - application/json

The signing secret is returned only in this response.

id
string<uuid>
required

Unique webhook endpoint identifier.

Example:

"8b95a9e0-4af3-4c6d-92df-84b64256d27f"

name
string
required

Human-readable endpoint name.

Example:

"Production booking events"

url
string<uri>
required

URL that receives signed webhook POST requests.

Example:

"https://example.com/webhooks/unifystays"

status
enum<string>
required

Current endpoint state. Paused and disabled endpoints do not receive new deliveries.

Available options:
ACTIVE,
PAUSED,
DISABLED
Example:

"ACTIVE"

event_types
enum<string>[]
required

Normalized event subscriptions for this endpoint.

Available options:
booking.created,
booking.confirmed,
booking.failed,
booking.cancellation_requested,
booking.cancelled,
booking.cancellation_failed,
booking.*
Example:
consecutive_failures
number
required

Consecutive delivery failures since the last success or reactivation.

Example:

0

last_success_at
string<date-time> | null
required

Time of the most recent successful delivery, if any.

Example:

"2026-08-08T08:30:00.000Z"

last_failure_at
string<date-time> | null
required

Time of the most recent failed delivery, if any.

Example:

null

disabled_at
string<date-time> | null
required

Time the endpoint was disabled, if applicable.

Example:

null

disabled_reason
string | null
required

Reason the endpoint was disabled, if applicable.

Example:

null

created_at
string<date-time>
required

Endpoint creation time.

Example:

"2026-08-08T08:00:00.000Z"

updated_at
string<date-time>
required

Time the endpoint was last updated.

Example:

"2026-08-08T08:30:00.000Z"

signing_secret
string
required

HMAC signing secret. Returned only once; store it securely before discarding the response.

Example:

"whsec_************************"