Sponsors: One-time sponsor cancellation event? reverting a pending_cancellation?

Hey all,

I’ll just get right to it: I’m aware of the few webhooks event samples that do exist in the documentation, but they don’t provide sufficient context to properly use this, which lead me to the following questions:

When a user sponsors as a one-time sponsor, their sponsorship is valid for 30 days (according to the Github Sponsors UI). This then also generates a created webhook event similar to a regular sponsorship as per my own testing. Does this mean that on/after that 30th day, a cancelled event will be sent to the webhook for that one-time sponsorship? Or should I observe the is_one_time flag and use that?

Next, when a user cancels a monthly sponsorship, a pending_cancellation webhook event is dispatched. When the user then directly cancels it, no new/different event is dispatched. Can you confirm that this event mostly serves as a potential heads-up (e.g. a good moment to send a ‘consider renewing’ notification to the user or whatever) and doesn’t necessarily guarantee/indicate that the user will cancel? Or, to put it simpler: Should I only rely on the cancelled event for confirmed cancelations?

Finally, as a feature request, I’d like to add that it would be amazing if we could have a way to ‘sponsor’ or trigger these events ourselves using a sandbox/test user with special buttons to trigger situations directly. Right now, I literally have to wait 30 real-world days in order to see what the system does above for the above questions/situations, and also can’t confirm other things, such as what happens (event-wise) when an one-time sponsorship converts into an monthly sponsorship, as I have to wait for the actual payment to process.

Thanks!