Not 500 because there is no problem with the server.
I would suggest 409 Conflict.
From RFC:
The request could not be completed due to a conflict with the current state of the resource. This code is only allowed in situations where it is expected that the user will be able to resolve the conflict and resubmit the request. The response body MUST include sufficient information so that the user can recognize the source of the conflict. Ideally, the response object will contain sufficient information for the user or user agent to resolve the problem; however, this may be impossible and not required. Conflicts most often occur in response to a PUT request. For example, if version control was used, and the PUT object included changes to a resource that conflicts with those made using an earlier (third-party) request, the server can use a 409 response to indicate that it cannot fulfill the request. In this case, the response object is likely to contain a list of differences between the two versions in the format defined by the Content-Type response.
This does not exactly fit your case, but very close IMHO.
For example, the server may tell you that the parent resource does not exist for you, and you can "resend" an employee of another company. :)
source share