400 вместо 500 означает серверную агрессивность. (я сервер я всегда прав)
потому что возвращать 500 это позиция слабого сервера.
и ваааще, современные тенденции в поведении говорят о том, что нужно быть ассертивным: нужно возвращать 200 а в теле json со статусом
"я тебе ничего не должен, и ты мне ничего не должен, мы партнёры, не надо повышать на меня статус-код"
агрессивный API, это когда он обязывает тебя в GET пихать Body. и он оперирует только 200 кодом, а в теле ответа он имеет поле перечисления Status, в спецификации это перечисление имеет 40-60 значений, которые можно трактовать по разному.