Есть вполне стандартные статус коды:
401 - нужно авторизоваться. В этом случае на клиенте мы должны попросить чувака ввести логин и пароль
403 - у вас нет прав на это действие. Например юзер пытался удалить что-то или сделать что-то на что у него нет прав.
422 - не могу обработать сущность. То есть если у нас не валидны данные в запросе, пароль там или имейл не ввели и все такое.
404 - пользователя с таким именем пользователя и паролем не существует.
Добавлять ли в тело ответа месседж с пояснением проблемы - решать вам. По хорошему стоит добавлять ибо тогда мы можем рулить сообщениями об ошибках с сервера. Ну или предоставлять клиенту оные. Но в любом случае разруливать ошибки нужно при помощи статус кодов.
restpatterns.org/HTTP_Status_Codes