Overview
The webhook request has following structure:
{
"payload": "JSON ENCODED PAYLOAD",
}You should first validate that the payload value signature matches the value provided in the x-webhook-signature header.
The encoded payload body has always this basic structure, with the payload field varying depending on the webhook event:
{
"timestamp": "2024-01-01T20:00:00.000Z",
"event": "event.name.here",
"payload": { /* event-specific payload */ },
}Events reference
session-booked
session-bookedTriggered when any host session is booked by any way, including automatic or child bookings.
{
"type": "object",
"properties": {
"sessionId": {
"type": "integer",
"description": "The ID of the booked session"
},
"sessionBookingId": {
"type": "integer",
"description": "The ID of the created session booking"
},
"payingMemberId": {
"type": "integer",
"description": "The ID of the member who paid for the session"
},
"targetMemberId": {
"type": "integer",
"description": "The ID of the member for whom the session was booked"
}
},
"required": [
"sessionId",
"sessionBookingId",
"payingMemberId",
"targetMemberId"
]
}
session-booking-cancelled
session-booking-cancelledTriggered when a session booking is cancelled by either the member or the host.
{
"type": "object",
"properties": {
"sessionBookingId": {
"type": "integer",
"description": "The ID of the cancelled session booking"
},
"sessionId": {
"type": "integer",
"description": "The ID of the session"
},
"payingMemberId": {
"type": "integer",
"description": "The ID of the member who paid for the session"
},
"targetMemberId": {
"type": "integer",
"description": "The ID of the member for whom the session was booked"
},
"isLateCancellation": {
"type": "boolean",
"description": "Whether this was a late cancellation"
},
"cancelledAt": {
"type": "string",
"description": "The timestamp when the booking was cancelled"
}
},
"required": [
"sessionBookingId",
"sessionId",
"payingMemberId",
"targetMemberId",
"isLateCancellation",
"cancelledAt"
]
}
member-assigned
member-assignedTriggered when a new member is assigned to a host.
{
"type": "object",
"properties": {
"memberId": {
"type": "integer"
},
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
}
},
"required": [
"memberId",
"email",
"firstName",
"lastName"
]
}
member-updated
member-updatedTriggered when member attributes change.
{
"type": "object",
"properties": {
"memberId": {
"type": "integer"
},
"email": {
"type": "string"
},
"firstName": {
"type": "string"
},
"lastName": {
"type": "string"
}
},
"required": [
"memberId",
"email",
"firstName",
"lastName"
]
}
member-address-created
member-address-createdTriggered when a member address is created.
{
"type": "object",
"properties": {
"memberAddressId": {
"type": "integer"
},
"memberId": {
"type": "integer"
},
"address": {
"type": "string"
},
"zipcode": {
"type": "string"
},
"city": {
"type": "string"
},
"country": {
"type": "string"
}
},
"required": [
"memberAddressId",
"memberId",
"address",
"zipcode",
"city",
"country"
]
}
member-address-updated
member-address-updatedTriggered when a member address is updated.
{
"type": "object",
"properties": {
"memberAddressId": {
"type": "integer"
},
"memberId": {
"type": "integer"
},
"address": {
"type": "string"
},
"zipcode": {
"type": "string"
},
"city": {
"type": "string"
},
"country": {
"type": "string"
}
},
"required": [
"memberAddressId",
"memberId",
"address",
"zipcode",
"city",
"country"
]
}
member-address-deleted
member-address-deletedTriggered when a member address is deleted.
{
"type": "object",
"properties": {
"memberAddressId": {
"type": "integer"
},
"memberId": {
"type": "integer"
}
},
"required": [
"memberAddressId",
"memberId"
]
}
session-created
session-createdTriggered when any host session is created, including automatic or child sessions.
{
"type": "object",
"properties": {
"sessionId": {
"type": "integer",
"description": "The ID of the created session"
},
"type": {
"type": "string",
"enum": [
"private",
"special-event",
"special-event-new",
"retreat",
"fitness",
"course",
"course-class",
"semester",
"recital"
],
"x-enumNames": [
"PRIVATE",
"SPECIAL_EVENT",
"SPECIAL_EVENT_NEW",
"RETREAT",
"FITNESS",
"COURSE",
"COURSE_CLASS",
"SEMESTER",
"RECITAL"
]
},
"roomId": {
"type": "integer",
"nullable": true
},
"teacherId": {
"type": "integer",
"nullable": true
},
"payrateId": {
"type": "integer",
"nullable": true
},
"locationId": {
"type": "integer",
"nullable": true
},
"sessionTemplateId": {
"type": "integer",
"nullable": true,
"description": "The ID of the session template from which the session was created, "
},
"sessionSemesterOccurrenceId": {
"type": "integer",
"nullable": true,
"description": "The ID of the session semester occurrence, if this value is set it means that the session is part of a semester"
},
"name": {
"type": "string",
"nullable": true
},
"startsAt": {
"type": "string"
},
"endsAt": {
"type": "string"
},
"capacity": {
"type": "number",
"nullable": true
},
"durationMinutes": {
"type": "number",
"nullable": true
},
"description": {
"type": "string",
"nullable": true
}
},
"required": [
"sessionId",
"type",
"roomId",
"teacherId",
"payrateId",
"locationId",
"sessionTemplateId",
"sessionSemesterOccurrenceId",
"name",
"startsAt",
"endsAt",
"capacity",
"durationMinutes",
"description"
]
}
session-updated
session-updatedTriggered when any host session is updated.
{
"type": "object",
"properties": {
"sessionId": {
"type": "integer",
"description": "The ID of the updated session"
},
"type": {
"type": "string",
"enum": [
"private",
"special-event",
"special-event-new",
"retreat",
"fitness",
"course",
"course-class",
"semester",
"recital"
],
"x-enumNames": [
"PRIVATE",
"SPECIAL_EVENT",
"SPECIAL_EVENT_NEW",
"RETREAT",
"FITNESS",
"COURSE",
"COURSE_CLASS",
"SEMESTER",
"RECITAL"
]
},
"roomId": {
"type": "integer",
"nullable": true
},
"teacherId": {
"type": "integer",
"nullable": true
},
"payrateId": {
"type": "integer",
"nullable": true
},
"locationId": {
"type": "integer",
"nullable": true
},
"sessionTemplateId": {
"type": "integer",
"nullable": true,
"description": "The ID of the session template from which the session was created, "
},
"sessionSemesterOccurrenceId": {
"type": "integer",
"nullable": true,
"description": "The ID of the session semester occurrence, if this value is set it means that the session is part of a semester"
},
"name": {
"type": "string",
"nullable": true
},
"startsAt": {
"type": "string"
},
"endsAt": {
"type": "string"
},
"capacity": {
"type": "number",
"nullable": true
},
"durationMinutes": {
"type": "number",
"nullable": true
},
"description": {
"type": "string",
"nullable": true
}
},
"required": [
"sessionId",
"type",
"roomId",
"teacherId",
"payrateId",
"locationId",
"sessionTemplateId",
"sessionSemesterOccurrenceId",
"name",
"startsAt",
"endsAt",
"capacity",
"durationMinutes",
"description"
]
}
host-report-run-completed
host-report-run-completedTriggered when a host report run is completed.
{
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"reportUrlWeb": {
"type": "string"
},
"reportUrlApi": {
"type": "string"
}
},
"required": [
"id",
"reportUrlWeb",
"reportUrlApi"
]
}
session-booking-checked-in
session-booking-checked-inTriggered when a member is checked in to a session booking.
{
"type": "object",
"properties": {
"sessionBookingId": {
"type": "integer",
"description": "The ID of the session booking that was checked in"
},
"sessionId": {
"type": "integer",
"description": "The ID of the session"
},
"memberId": {
"type": "integer",
"description": "The ID of the member who was checked in"
},
"checkedInAt": {
"type": "string",
"description": "The ISO 8601 timestamp when the member was checked in"
}
},
"required": [
"sessionBookingId",
"sessionId",
"memberId",
"checkedInAt"
]
}
session-booking-no-show
session-booking-no-showTriggered when a member does not check in to a session they booked. Fires approximately 2 hours after the session ends.
{
"type": "object",
"properties": {
"sessionBookingId": {
"type": "integer",
"description": "The ID of the session booking marked as no-show"
},
"sessionId": {
"type": "integer",
"description": "The ID of the session"
},
"memberId": {
"type": "integer",
"description": "The ID of the member who did not show up"
}
},
"required": [
"sessionBookingId",
"sessionId",
"memberId"
]
}
bought-membership-activated
bought-membership-activatedTriggered when a membership is activated.
{
"type": "object",
"properties": {
"hostId": {
"type": "integer"
},
"boughtMembershipId": {
"type": "integer"
},
"membershipId": {
"type": "integer"
},
"memberId": {
"type": "integer"
},
"subscriptionSeriesId": {
"type": "integer",
"nullable": true
},
"seriesIndex": {
"type": "integer",
"nullable": true
},
"type": {
"type": "string",
"enum": [
"subscription",
"on-demand-subscription",
"package-events",
"package-money",
"patron"
],
"x-enumNames": [
"Subscription",
"OnDemandSubscription",
"PackageEvents",
"PackageMoney",
"Patron"
]
},
"startDate": {
"type": "string",
"nullable": true
},
"endDate": {
"type": "string",
"nullable": true
}
},
"required": [
"hostId",
"boughtMembershipId",
"membershipId",
"memberId",
"subscriptionSeriesId",
"seriesIndex",
"type",
"startDate",
"endDate"
]
}
bought-membership-cancelled-after-failed-renewal
bought-membership-cancelled-after-failed-renewalTriggered when a membership is cancelled after failed retries.
{
"type": "object",
"properties": {
"hostId": {
"type": "integer"
},
"boughtMembershipId": {
"type": "integer"
},
"membershipId": {
"type": "integer"
},
"memberId": {
"type": "integer"
},
"subscriptionSeriesId": {
"type": "integer",
"nullable": true
},
"seriesIndex": {
"type": "integer",
"nullable": true
},
"type": {
"type": "string",
"enum": [
"subscription",
"on-demand-subscription",
"package-events",
"package-money",
"patron"
],
"x-enumNames": [
"Subscription",
"OnDemandSubscription",
"PackageEvents",
"PackageMoney",
"Patron"
]
},
"startDate": {
"type": "string",
"nullable": true
},
"endDate": {
"type": "string",
"nullable": true
}
},
"required": [
"hostId",
"boughtMembershipId",
"membershipId",
"memberId",
"subscriptionSeriesId",
"seriesIndex",
"type",
"startDate",
"endDate"
]
}
bought-membership-frozen
bought-membership-frozenTriggered when a membership is frozen.
{
"type": "object",
"properties": {
"hostId": {
"type": "integer"
},
"boughtMembershipId": {
"type": "integer"
},
"membershipId": {
"type": "integer"
},
"memberId": {
"type": "integer"
},
"subscriptionSeriesId": {
"type": "integer",
"nullable": true
},
"seriesIndex": {
"type": "integer",
"nullable": true
},
"type": {
"type": "string",
"enum": [
"subscription",
"on-demand-subscription",
"package-events",
"package-money",
"patron"
],
"x-enumNames": [
"Subscription",
"OnDemandSubscription",
"PackageEvents",
"PackageMoney",
"Patron"
]
},
"startDate": {
"type": "string",
"nullable": true
},
"endDate": {
"type": "string",
"nullable": true
},
"freezeAt": {
"type": "string"
}
},
"required": [
"hostId",
"boughtMembershipId",
"membershipId",
"memberId",
"subscriptionSeriesId",
"seriesIndex",
"type",
"startDate",
"endDate",
"freezeAt"
]
}
bought-membership-renewal-cancelled
bought-membership-renewal-cancelledTriggered when a membership renewal is cancelled.
{
"type": "object",
"properties": {
"hostId": {
"type": "integer"
},
"boughtMembershipId": {
"type": "integer"
},
"membershipId": {
"type": "integer"
},
"memberId": {
"type": "integer"
},
"subscriptionSeriesId": {
"type": "integer",
"nullable": true
},
"seriesIndex": {
"type": "integer",
"nullable": true
},
"type": {
"type": "string",
"enum": [
"subscription",
"on-demand-subscription",
"package-events",
"package-money",
"patron"
],
"x-enumNames": [
"Subscription",
"OnDemandSubscription",
"PackageEvents",
"PackageMoney",
"Patron"
]
},
"startDate": {
"type": "string",
"nullable": true
},
"endDate": {
"type": "string",
"nullable": true
}
},
"required": [
"hostId",
"boughtMembershipId",
"membershipId",
"memberId",
"subscriptionSeriesId",
"seriesIndex",
"type",
"startDate",
"endDate"
]
}
bought-membership-renewal-failed
bought-membership-renewal-failedTriggered when a membership renewal has failed.
{
"type": "object",
"properties": {
"hostId": {
"type": "integer"
},
"boughtMembershipId": {
"type": "integer"
},
"membershipId": {
"type": "integer"
},
"memberId": {
"type": "integer"
},
"subscriptionSeriesId": {
"type": "integer",
"nullable": true
},
"seriesIndex": {
"type": "integer",
"nullable": true
},
"type": {
"type": "string",
"enum": [
"subscription",
"on-demand-subscription",
"package-events",
"package-money",
"patron"
],
"x-enumNames": [
"Subscription",
"OnDemandSubscription",
"PackageEvents",
"PackageMoney",
"Patron"
]
},
"startDate": {
"type": "string",
"nullable": true
},
"endDate": {
"type": "string",
"nullable": true
}
},
"required": [
"hostId",
"boughtMembershipId",
"membershipId",
"memberId",
"subscriptionSeriesId",
"seriesIndex",
"type",
"startDate",
"endDate"
]
}
bought-membership-renewal-uncancelled
bought-membership-renewal-uncancelledTriggered when a membership is no longer cancelled.
{
"type": "object",
"properties": {
"hostId": {
"type": "integer"
},
"boughtMembershipId": {
"type": "integer"
},
"membershipId": {
"type": "integer"
},
"memberId": {
"type": "integer"
},
"subscriptionSeriesId": {
"type": "integer",
"nullable": true
},
"seriesIndex": {
"type": "integer",
"nullable": true
},
"type": {
"type": "string",
"enum": [
"subscription",
"on-demand-subscription",
"package-events",
"package-money",
"patron"
],
"x-enumNames": [
"Subscription",
"OnDemandSubscription",
"PackageEvents",
"PackageMoney",
"Patron"
]
},
"startDate": {
"type": "string",
"nullable": true
},
"endDate": {
"type": "string",
"nullable": true
}
},
"required": [
"hostId",
"boughtMembershipId",
"membershipId",
"memberId",
"subscriptionSeriesId",
"seriesIndex",
"type",
"startDate",
"endDate"
]
}
bought-membership-unfrozen
bought-membership-unfrozenTriggered when a membership is unfrozen.
{
"type": "object",
"properties": {
"hostId": {
"type": "integer"
},
"boughtMembershipId": {
"type": "integer"
},
"membershipId": {
"type": "integer"
},
"memberId": {
"type": "integer"
},
"subscriptionSeriesId": {
"type": "integer",
"nullable": true
},
"seriesIndex": {
"type": "integer",
"nullable": true
},
"type": {
"type": "string",
"enum": [
"subscription",
"on-demand-subscription",
"package-events",
"package-money",
"patron"
],
"x-enumNames": [
"Subscription",
"OnDemandSubscription",
"PackageEvents",
"PackageMoney",
"Patron"
]
},
"startDate": {
"type": "string",
"nullable": true
},
"endDate": {
"type": "string",
"nullable": true
},
"unfreezeAt": {
"type": "string"
}
},
"required": [
"hostId",
"boughtMembershipId",
"membershipId",
"memberId",
"subscriptionSeriesId",
"seriesIndex",
"type",
"startDate",
"endDate",
"unfreezeAt"
]
}