@classmethod
def sync_from_stripe_data(cls, data):
    """
        Syncs this object from the stripe data provided.

        Foreign keys will also be retrieved and synced recursively.

        :param data: stripe object
        :type data: dict
        :rtype: cls
        """
    current_ids = set()
    data_id = data.get('id')
    if data_id:
        current_ids.add(data_id)
    instance, created = cls._get_or_create_from_stripe_object(data,
        current_ids=current_ids)
    if not created:
        instance._sync(cls._stripe_object_to_record(data))
        instance._attach_objects_hook(cls, data)
        instance.save()
        instance._attach_objects_post_save_hook(cls, data)
    return instance
