Single class which holds response and error message
Is that error, or status, or both, or neither?

This API is a bit confusing.
You have ErrorCode and StatusCode enums. But ErrorCode contains things like:


OK(200, "NONE", "Response is success."),
NO_CONTENT(204, "No Content", "Response is success."),
CLIENT_TIMEOUT(1007, "Timeout", "Timeout has occured on the Client.");



So two of the "error codes" indicate success.


public enum StatusCode {
    SUCCESS, ERROR;
}



... And StatusCode can indicate success or error.

... The confusing nature of these elements make it difficult to understand the API, and the distinction of its building blocks.

Your error codes resemble HTTP status codes. Why not go a bit further in following HTTP practices, and have just one Status enum, that contains status codes like in the HTTP protocol, some of which are success, and others are error.

DataResponse

I like that the class is immutable.
But I'm concerned about the long parameter list of the constructor,
especially considering that the first 4 values are all of String type,
which can lead to errors such as mistaken ordering.

I would suggest to consider adding a builder,
that will have well-named setters to set the parameter values,
possibly allowing some sensible defaults.

Lastly, the type of the date field is a String.
It would be good to add a JavaDoc about the required format.
(For that matter, a JavaDoc for the other String parameters would be good too.)