Hello nchungie!
Sorry for the confusion here. I took your example code snippet (thank you, by the way, it was very helpful) and I translated it to a sample REST API call that can be made via HTTP:
http://test.lithium.example/restapi/vc/messages/id/155/ratings/key/tkb_helpfulness/ratings/add?rating.value=-2
The above failed, which is also what you were encountering. So, I tried manipulating the integer and did some poking around - kh-mso was very helpful in pointing out that in actuality, a "Yes"/"Helpful" response has a value of "1", and a "No"/"Unhelpful" response has a value of "0". The API documentation needs to be updated and we are working with our Docs team to update that to be accurate; I figured I'd respond in here so that you know what to use for your code.
http://test.lithium.example/restapi/vc/messages/id/155/ratings/key/tkb_helpfulness/ratings/add?rating.value=0
Hope this helps!
Ted