treat payload as JSON instead of str