Webhooks

Registration Events

LifeLoop emits registration events — a registration was created, waitlisted, or deleted. Webhook event for registration domain mutations. resourceId is the composite string "{activityId}:{userId}" (registrations have no standalone id — see RegistrationDTO). See registration.created, registration.waitlisted and registration.deleted for when each fires, including the v1.8 waitlist-promotion trigger (LIFELOOP-5812).

Events

Event typeTriggered when
registration.createdFired when a user registers for an activity with immediate status=registered, AND when a previously status=waitlisted resident registration is automatically promoted to registered after a cancellation frees a slot (LIFELOOP-5812).
registration.waitlistedFired when a resident registers for an activity that is already full, so the registration lands as status=waitlisted.
registration.deletedFired when a user cancels their registration for an activity, whether it was status=registered or status=waitlisted.

What to do after receiving this event

  1. Check the X-API-KEY header.
  2. Read resourceId from the payload — this is the registrationId.
  3. Call GET /api/v1/{tenant}/activities/{activityId}/registrations to fetch the full object.
  4. Update your local data store.
  5. Return HTTP 200.

Note: Fetch the registrations for the related activity and locate the record by resourceId.

Sample payloadregistration.created.json
{
  "eventType": "registration.created",
  "aggregateType": "registration",
  "occurredAt": "2026-06-18T10:30:00Z",
  "tenant": "sunrise-001",
  "eventId": "f3a91bc2-4d12-4e88-a1c3-8f2901dd7c94",
  "resourceId": "reg-001"
}
Fetch the full objectbash
curl https://api.lifeloop.com/api/v1/sunrise-001/activities/act-001/registrations \
  -H "Authorization: Bearer YOUR_SERVICE_TOKEN" \
  -H "X-Acting-User-Id: ACTING_USER_ID" \
  -H "X-Acting-User-Tenant: sunrise-001"