Deserializing response to correct type
Your code could be rewritten:

var settings = new JsonSerializerSettings { 
     TypeNameHandling = TypeNameHandling.All,
     SerializationBinder = knownTypesBinder // &lt;- see security risk below
};
var client = JsonConvert.DeserializeObject&lt;Models.Entities.Client&gt;(jsonResponse);
return client; // &lt;- strongly-typed



Make sure both server and client use the settings
If you have declared  public ClientType Type { get; set; } just to enable two-phase serialisation (base entity - concrete entity), you should remove it from the code.
The two-phase serialisation hack can be replaced with a strongly-typed serialisation using TypeNameHandling = TypeNameHandling.All. Example




As suggested in the comments, we need to address the security aspect also. Hence, knownTypesBinder is used to mitigate a security risk.

// based on https://www.newtonsoft.com/json/help/html/SerializeSerializationBinder.htm
var knownTypesBinder = new KnownTypesBinder
{
    KnownTypes = new List&lt;Type&gt; { typeof(Customer), typeof(Account) }
};

public class KnownTypesBinder : ISerializationBinder
{
    public IList&lt;Type&gt; KnownTypes { get; set; }

    public Type BindToType(string assemblyName, string typeName)
    {
        return KnownTypes.SingleOrDefault(t =&gt; t.Name == typeName);
    }

    public void BindToName(Type serializedType, out string assemblyName, 
        out string typeName)
    {
        assemblyName = null;
        typeName = serializedType.Name;
    }
}