The two parameters delete_all_on_error and stop_on_first_error can be used to achieve transaction-like behavior. If a booking in your solution consists of multiple bookings in Timekit terms, it may be important that all Timekit bookings are in sync with your booking.
The webhooks settings are to override the default webhooks set on app-level. There should be a corresponding webhooks.[X].enabled=false settings for any app-level webhooks that you want disabled, in order to only get one webhook triggered for a bulk transaction. Notice that the disabling of the webhook is present on all but one of the bookings since you will probably still want to be notified at least once on updates to your booking.
You should probably always disable all webhooks except on the last booking because if the first booking has no error and the next has (at some subsequent state e.g. ‘cancel’), the webhook might still get triggered even though we reset the state.
Related bulked bookings
If you set the relate_bookings parameter to true, you can retrieve all related bookings by retrieving any one of the bulked bookings and dynamically include bulked_bookings like so:
Please note that applying an action to a related bulked booking, will automatically replicate to the related bookings as well. So if you "confirm" one of three bulked and related bookings, all three bookings will be "confirmed". This default behaviour can be disabled by adding the body parameter apply_to_bulked_bookings: false