The error message is misleading. 
In my test, I have a change request pending deployment with id=1. 

If you don't use a valid -d "status=xxx" part, you get that message (but it should not):

% curl -H "X-API-Token: XpIrv2y3oxFZrSraK7oqsV9NxC04H42k"  -X POST http://localhost:8082/rudder-web/api/3/changeRequests/1/accept -d "xxx=pending deployment"
{"action":"acceptChangeRequest","result":"error","errorDetails":"1 is not a valid change request id (need to be an integer)"}%