Skip to main content

Hi folks!

I’ve created a webhook subscription using this API: https://developers.ringcentral.com/api-reference/Subscriptions/createSubscription

Everything worked fine, I’m receiving needed events in my webhook but then I decided to delete that webhook, first wanted to see the list of webhooks created using this API: https://developers.ringcentral.com/api-reference/Subscriptions/listSubscriptions

but got empty array:



Then noticed I receive this kind of JSON when receiving events in my webook:

{
"uuid": "...",
"event": "/restapi/v1.0/account/.../extension/.../telephony/sessions",
"timestamp": "2025-06-19T04:44:20.283Z",
"subscriptionId": "...",
"ownerId": "....",
"body": {...}
}

 

It includes subscriptionId, I tried to use it to delete the subscription, so called this API:
https://developers.ringcentral.com/api-reference/Subscriptions/deleteSubscription
 

But got 404

I’ve tried to call these APIs with access token of exact same account which I used to create the webhook.
Double checked the id of account I’m using to call these APIs with ownerId of webhook subscription, they’re exactly same.

 



 

Please submit a dev support ticket and provide the account/user info. They maybe able to check and remove it for you.


Subscription is scoped per app per user. So you will need to delete it using the same app and same user.

If you created it as user A and tried to delete it as user B, 404 will be returned.

If you created it using RC app A and tried to delete it as RC app B, 404 will be returned.


Is there no work around for this?

In our integration app with Ring Central different users can modify “phone inboxes” (which creates/cancels subscriptions) so it isn’t guaranteed that the same user that created the webhook subscription will be the one that cancels it.

 

I was shocked when I discovered the subscription list is based on the user.  We really need it to be at the app/account level.


Is there no work around for this?

In our integration app with Ring Central different users can modify “phone inboxes” (which creates/cancels subscriptions) so it isn’t guaranteed that the same user that created the webhook subscription will be the one that cancels it.

 

I was shocked when I discovered the subscription list is based on the user.  We really need it to be at the app/account level.

To help optimize your integration and improve efficiency, we would like to suggest a few best practices for handling subscriptions:

  1. Leverage Account-Level Alternatives: For greater efficiency, we recommend using account-level subscriptions where available. For example, rather than creating a separate Extension Telephony Sessions Event for each user, you can establish a single Account Telephony Sessions Event. This approach can significantly reduce the number of subscriptions your application needs to maintain.

  2. Leverage Administrative Permissions for Broader Scope: A user with sufficient administrative permissions (such as a "Super Admin") can typically configure their own subscription to receive notifications for events generated by other users. This powerful feature enables a single, centralized subscription to monitor activity across the entire account, eliminating the need for each user to maintain their own.

  3. Combine Event Filters into a Single Subscription: A key feature of our API is that a single subscription can support an extensive number of event filters. To simplify your implementation, we recommend consolidating various event filters into one subscription whenever possible, rather than creating a separate subscription for each event type.

With the best practices above, you will be able to reduce the numbers of subscriptions you need to manage.