EVENT_AFTER_CREATE_SUBSCRIPTION can someone confirm this means successful purchase?
I've looked into this in more detail now, and whilst it used to be the case that EVENT_AFTER_CREATE_SUBSCRIPTION only worked for successful payments, it's now (post Commerce 2.2.0), no longer the case due to the fact that a subscription can get created in a "Suspended" status, which still triggers that event (https://github.com/craftcms/commerce/issues/1105).

I'm still using that event, but in Commerce 2.2.7 (and beyond unless they change it again!), you'll need to make an additional check inside your code to make sure the subscription is not Suspended.

Event::on(
    Subscriptions::class,
    Subscriptions::EVENT_AFTER_CREATE_SUBSCRIPTION,
    function(SubscriptionEvent $e) {

        // --------------------------------------------
        // BAIL OUT on Suspended subs!
        // --------------------------------------------

        if ($e-&gt;subscription-&gt;isSuspended){
            return;
        }

        // --------------------------------------------
        // Continue...
        // --------------------------------------------

        ...
    }
);