Webinar registrant status issue

Zoom API “List Webinar Registrants” returns based on status “approved”,“pending” or “denied”.
“denied” means EITHER a pending registrant was denied, or an approved registrant was canceled by a webinar admin.
If a user cancels their own registration, the registrant is removed entirely from the webinar, and the user is free to re-register.

The problem is that there is only one webhook for both events: “Webinar Registration Cancelled”.
This webhook sends identical data for either action, even though from Zoom’s perspective (and my app’s perspective) the actions are handled very differently.

To keep data in sync with our own system and determine how to treat our user, we need to know which type of cancelation happened.
The only way to do this that I can see is to do an additional Zoom API “Get a Webinar Registrant” call to determine which type of cancelation happened. This seems very klugey and inefficient.

Webhooks do not distinguish between user registrant cancelations and admin registrant cancelations.

Which App Type (OAuth / Chatbot / JWT / Webhook)?

Which Endpoint/s?
Webhook: webinar.registration_cancelled

How To Reproduce (If applicable)
Setup webinar.registration_cancelled handler, test user-driven cancel as well as an admin cancel (via Zoom UI).

Screenshots (If applicable)

Additional context

Hi @john-pk,

Thanks for raising this use case with us—you make a great point.

While the webhook doesn’t distinguish between cancelation types at the moment, I’ve reached out to our team to see if this is something we might be able to add in the future. (ZOOM-211588).

I’ll be happy to share any updates with you here.


Thanks @will.zoom.
In a similar vein, there seems to be no way for the Zoom API to mimic a user cancellation.
“PUT # /webinars/{webinarId}/registrants/status” allows for “cancel”, but this is the same as an admin cancel, which puts the user into a “denied” status.
We want our users to be able to cancel their own registration and re-register, similarly to how they can via links from zoom emails.
Currently this seems impossible via the Zoom API.

Also, to make this feature set complete, " GET # /webinars/{webinarId}/registrants" should have a query param status of “user_cancelled” or just “cancelled”, which will list users who registered but canceled themselves.
Doing a " GET # /webinars/{webinarId}/registrants/{registrantId}" on users in a user-canceled state show them with a status of “all”, which is not documented anywhere, and there is no way to list users in this state.

Thank you for your time.

Hi @john-pk,

Thanks for this feedback—this is really valuable.

For some potential workarounds, have you considered using the “operator/operator_id” fields to identify whether or not a registration was canceled by self (the registrant), or if the registrant was removed?:

We also have the approved/denied events, which could be helpful:


This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.