Paypal enverra d'abord un IPN indiquant que le statut du paiement est inversé, suivi d'un autre IPN avec le statut remboursé. Donc, je n'inclurais pas à la fois inversé et remboursé comme vous l'avez fait dans votre exemple d'origine.
En ce qui concerne le test de l'user_id, c'est toujours cohérent, chaque IPN inclut l'e-mail paypal du payeur, y compris les messages annulés/remboursés.