Activity booking canceled
Sent when a booking is canceled, whether or not the attendance had been validated. One delivery per booking, so a mass cancellation (deleting a schedule or an activity) produces one delivery per affected booking.
activity_booking.canceledSee How webhooks work for the envelope, delivery semantics and retries.
Payload
The data object for this event.
canceledFromstring · nullablePlatform the cancellation came from (enum name, same values as `origin`). Only sent in `activity_booking.canceled`.
dateAttendedstring · date-time · nullableDate the attendance was validated (UTC). Always present in `activity_booking.validated`. In `activity_booking.canceled` a value means the attendance had already been notified and the consumer should revert whatever it granted; `null` means the booking was canceled without ever having been validated.
dateCanceledstring · date-time · nullableDate the booking was canceled (UTC). Only sent in `activity_booking.canceled`.
dateCreationstring · date-timerequiredDate the booking was created (UTC).
hadBookingbooleanrequired`false` when the member had no previous booking and it was created and validated in the same operation (walk-in); `true` when an existing booking was validated.
idintegerrequiredBooking id. Same id used by the validation endpoints of the public API.
memberobjectrequiredMember the booking belongs to.
objectstringObject type discriminator.
originstringrequiredPlatform the booking was created from (enum name).
originValidatedstring · nullablePlatform the attendance was validated from (enum name, same values as `origin`). Null when the booking was never validated.
reasonstring · nullableCancellation reason, when the originating flow provides one. Only sent in `activity_booking.canceled`, and omitted when there is no reason.
scheduleobjectrequiredActivity schedule the booking belongs to.
Example payload
{
"center": {
"id": 1234,
"name": "Portales",
"publicToken": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
},
"data": {
"canceledFrom": "tgManager",
"dateAttended": "2026-07-30T10:15:30Z",
"dateCanceled": "2026-07-30T18:42:11Z",
"dateCreation": "2026-07-28T18:04:11Z",
"hadBooking": true,
"id": 8471203,
"member": {
"address": "Calle Mayor 1",
"countryCode": "ES",
"cp": "50001",
"documentNumber": "12345678A",
"email": "marta.ruiz@example.com",
"id": "ZpQ1x7",
"lastName": "Ruiz Alonso",
"name": "Marta",
"object": "member"
},
"object": "activity_booking",
"origin": "android",
"originValidated": "totem",
"reason": "Horario eliminado",
"schedule": {
"activity": {
"id": "Qm4Xy8",
"name": "Body Pump",
"object": "activity"
},
"assistant": 12,
"bookingSetting": {
"bookedPlaces": 14,
"idScheduleRoomMap": null,
"isNumbered": false,
"isPayment": false,
"isReservable": true,
"maxBookingPlacesApp": 20,
"numberSeatByRow": 0
},
"capacity": 20,
"currentState": 1,
"dateProgram": "2026-07-30T00:00:00Z",
"duration": 60,
"id": 552310,
"idActivity": "Qm4Xy8",
"idRoom": "Lp9Rt3",
"idSchedule": 552310,
"idScheduleGroup": 4412,
"idStaff": "Tz6Wq1",
"isVisible": true,
"object": "activity_schedule",
"room": {
"id": "Lp9Rt3",
"name": "Sala 2",
"object": "room"
},
"staff": {
"id": "Tz6Wq1",
"object": "staff"
},
"targetAssistant": 15,
"timeEnd": "11:00:00",
"timeStart": "10:00:00"
}
},
"dateCreated": "2026-07-30T18:42:13Z",
"eventType": "activity_booking.canceled",
"idEvent": "7c1d2e3f-4a5b-6c7d-8e9f-0a1b2c3d4e5f"
}
Responses
- 200
- 202
- 204
- 400
- 401
- 403
- 500
Accepted / processed.
Accepted / queued for processing.
Accepted / processed.
Bad Request (will trigger retries).
Unauthorized (will trigger retries).
Forbidden (will trigger retries).
Server error (will trigger retries).