When it fires
Way sendsexperience.published when an experience is published on a brand. A listing.published event is sent at the same time for the corresponding listing. Publishing a collection sends only a listing.published event, not experience.published.
Events arrive at your endpoint as a POST request with the body { "event": "experience.published", "payload": { ... } }. When a webhook secret is set, the X-Way-Signature header carries an HMAC of the request body - see Verify signatures.
Payload
| Field | Type | Description |
|---|---|---|
id | string (UUID) | Unique identifier of the experience. |
title | string | Title of the experience. |
location.id | string (UUID) | Unique identifier of the location. |
location.name | string | Display name of the location. |
location.additionalInfo | string | null | Extra directions or meeting instructions. |
location.city | string | null | City of the location. |
location.state | string | null | State of the location. |
location.country | string | null | Country of the location. |
location.latitude | number | Latitude of the location. |
location.longitude | number | Longitude of the location. |
location.timezoneId | string | IANA time zone of the location. |
brand.id | string (UUID) | Unique identifier of the brand. |
brand.name | string | Display name of the brand. |
brand.tier | string | Subscription tier of the brand. |
brand.countryCode | string | Country code of the brand. |
brand.currency | string | Currency code used by the brand. |
brand.externalReferenceId | string | null | External reference identifier configured for the brand. |
headline | string | Short headline of the experience. |
description | string | Full description of the experience, as HTML. |
maxParticipantsCount | number | Maximum number of participants per session. |
sessionDurationMinutes | number | null | Duration of a session in minutes. |
priceTiers | array | Price tiers configured on the experience. |
priceTiers[].id | string (UUID) | Unique identifier of the price tier. |
priceTiers[].name | string | Name of the price tier. |
priceTiers[].price | number | Price of the tier. |
priceTiers[].maxQuantity | number | Maximum quantity bookable on the tier, when set. |
taxes | array | null | Taxes configured on the experience. |
taxes[].id | string (UUID) | Unique identifier of the tax. |
taxes[].includedInPrice | boolean | Whether the tax is included in the advertised price. |
taxes[].percentage | number | Tax percentage, for percentage-based taxes. |
taxes[].amount | number | Tax amount, for fixed-amount taxes. |
taxes[].isHostTax | boolean | Whether the tax applies to the host, when set. |
taxes[].order | number | null | Order in which the tax is applied, when set. |
taxes[].showInAdvertisedPrice | boolean | null | Whether the tax is shown in the advertised price, when set. |
taxes[].appliesTo | string[] | null | Identifiers of the items the tax applies to, when set. |
bookingAvailabilityMode | string | Booking availability mode: private, group, or non-restricted. |
provider | string[] | Items provided to participants. |
healthAndSafety | string | null | Health and safety information, as HTML. |
paymentMethods | string[] | null | Payment methods accepted for the experience. |
partySize | number | null | Party size for private bookings, when set. |
isNoHost | boolean | Whether the experience runs without a host. |
publishedAt | string (ISO 8601) | Timestamp when the experience was published. |
Sample
{
"event":"experience.published",
"payload":{
"id":"53e7c7e3-37c2-4af1-ab9f-958af8d42ccc",
"title":"Sunrise Surf & Swim",
"headline":"Catch the first wave of the day!",
"description":"<p>Join us on a 2 hour surf experience. The best way to start the day and connect with the sea.</p>",
"location":{
"longitude":-97.7430608,
"latitude":30.267153,
"name":"Austin, TX, USA",
"additionalInfo":"Please meet us in the lobby!",
"timezoneId":"America/Chicago"
},
"maxParticipantsCount":10,
"sessionDurationMinutes":60,
"priceTiers":[
{
"name":"Adult",
"price":100
},
{
"name":"Child",
"price":50
}
],
"taxes":[
{
"id":"ccf8424c-2da0-41a0-87d3-ef228cf30cf9",
"percentage":5,
"includedInPrice":false
}
],
"bookingAvailabilityMode":"group",
"provider":[
"Surfboard",
"Wetsuit"
],
"healthAndSafety":"<p>Must be 21+ to participate. </p>",
"paymentMethods":[
"credit-card"
],
"partySize":null,
"isNoHost":true,
"publishedAt":"2022-11-18T19:12:42.889Z"
}
}