It's sent after the status of a payment is updated. What status change you act on is entirely up to you. Ideally you should be making sure [var4] ($unifiedStatus) is Completed or Processed to ensure the payment is complete. Example condition as follows.
[var4] Is REGEXP /Completed|Processed/
The basket is var2, which can be used to grab the amount paid which will be after promotions, but again it depends on the status you're acting on as it could be updated before the promotions are added then again after they are added. phpdoc for that trigger usage as follows.
Code:
/**
* Event handler for onCPayAfterPaymentStatusUpdateEvent, called each time an update occurs to the payment status of the payment basket
*
* Paypal status mappings:
* CB Unified status Paypal status
* Completed <-- Completed
* Processed <-- Processed, Canceled_Reversal
* Denied <-- Denied, Expired, Failed, Voided
* Refunded <-- Reversed, Refunded, Partially-Refunded
* Pending <-- Pending, In-Progress
* RegistrationCancelled <-- A new cb registration got cancelled by user (e.g. paypal cancel payment button)
*
* @param UserTable $user User paying the payment basket
* @param cbpaidPaymentBasket $paymentBasket Payment basket
* @param cbpaidSomething[] $subscriptions Subscriptions in the basket
* @param string $unifiedStatus New Unified status (see above)
* @param string $previousUnifiedStatus Previous Unified status (see above)
* @param string $eventType type of event (paypal type): 'web_accept', 'subscr_payment', 'subscr_signup', 'subscr_modify', 'subscr_eot', 'subscr_cancel', 'subscr_failed'
* @return void
*/
public function onCPayAfterPaymentStatusUpdateEvent( &$user, &$paymentBasket, &$subscriptions, $unifiedStatus, $previousUnifiedStatus, $eventType )