I suspect a 500 status code would indicate a problem on the server-side, but not necessarily with the application itself but with the payload it's receiving. Some REST services (which consume JSON or XML) deserialize the content using libraries. If the data being passed into the request doesn't match with what is expected for that end-point, the REST service might throw a 500 because it could not correctly deserialize the payload.
If you're absolutely confident that the payload is correct, I'd recommend looking at log files at the server-side to determine what might be causing the problem (usually web-services will log if there's problems deserializing). If you don't have access to this then perhaps raise a ticket with the REST service support?
Before you do any of this, have you tried running your request through a tool like
Postman[
^] which lets you immediately view the request + response bodies? Perhaps the 500 is being returned with additional information in the response itself.