I have deleted previous answer and add new one as par your requirement
JSON String :
{
    "TRANS": {
        "HPAY": [{
                "ID": "1234",
                "DATE": "10/09/2011 18:09:27",
                "REC": "wallet Ricaricato",
                "COM": "Tasso Commissione",
                "MSG": "Commento White Brand",
                "STATUS": "3",
                "EXTRA": {
                    "IS3DS": "0",
                    "CTRY": "FRA",
                    "AUTH": "455622"
                },
                "INT_MSG": "05-00-05 ERR_PSP_REFUSED",
                "MLABEL": "IBAN",
                "TYPE": "1"
            }
        ]
    }
}
Java Objects : (Here Extra is not list)
public class MyObject {
    @SerializedName("TRANS")
    @Expose
    private Trans trans;
    public Trans getTRANS() {return trans;}
    public void setTRANS(Trans trans) {this.trans = trans;}
}
public class Trans {
    @SerializedName("HPAY")
    @Expose
    private List<HPay> hPay;
    public List<HPay> getHPAY() {return hPay;}
    public void setHPAY(List<HPay> hPay) {this.hPay = hPay;}
}
public class HPay {
    @SerializedName("ID")
    @Expose
    private String id;
    @SerializedName("DATE")
    @Expose
    private String date;
    @SerializedName("REC")
    @Expose
    private String rec;
    @SerializedName("COM")
    @Expose
    private String com;
    @SerializedName("MSG")
    @Expose
    private String msg;
    @SerializedName("STATUS")
    @Expose
    private String status;
    @SerializedName("EXTRA")
    @Expose
    private Extra extra;
    @SerializedName("INT_MSG")
    @Expose
    private String intMsg;
    @SerializedName("MLABEL")
    @Expose
    private String mLabel;
    @SerializedName("TYPE")
    @Expose
    private String type;
    public String getID() {return id;}
    public void setID(String id) {this.id = id;}
    public String getDATE() {return date;}
    public void setDATE(String date) {this.date = date;}
    public String getREC() {return rec;}
    public void setREC(String rec) {this.rec = rec;}
    public String getCOM() {return com;}
    public void setCOM(String com) {this.com = com;}
    public String getMSG() {return msg;}
    public void setMSG(String msg) {this.msg = msg;}
    public String getSTATUS() {return status;}
    public void setSTATUS(String status) {this.status = status;}
    public Extra getEXTRA() {return extra;}
    public void setEXTRA(Extra extra) {this.extra = extra;}
    public String getINTMSG() {return intMsg;}
    public void setINTMSG(String intMsg) {this.intMsg = intMsg;}
    public String getMLABEL() {return mLabel;}
    public void setMLABEL(String mLabel) {this.mLabel = mLabel;}
    public String getTYPE() {return type;}
    public void setTYPE(String type) {this.type = type;}
}
public class Extra {
    @SerializedName("IS3DS")
    @Expose
    private String is3ds;
    @SerializedName("CTRY")
    @Expose
    private String ctry;
    @SerializedName("AUTH")
    @Expose
    private String auth;
    public String getIS3DS() { return is3ds; }
    public void setIS3DS(String is3ds) { this.is3ds = is3ds; }
    public String getCTRY() { return ctry; }
    public void setCTRY(String ctry) { this.ctry = ctry; }
    public String getAUTH() { return auth; }
    public void setAUTH(String auth) { this.auth = auth; }
}
Conversion Logic : 
import com.google.gson.Gson;
    public class NewClass {
    public static void main(String[] args) {
        Gson g = new Gson();
        g.fromJson(json, MyObject.class);
    }
    static String json = "{ \"TRANS\": { \"HPAY\": [{ \"ID\": \"1234\", \"DATE\": \"10/09/2011 18:09:27\", \"REC\": \"wallet Ricaricato\", \"COM\": \"Tasso Commissione\", \"MSG\": \"Commento White Brand\", \"STATUS\": \"3\", \"EXTRA\": { \"IS3DS\": \"0\", \"CTRY\": \"FRA\", \"AUTH\": \"455622\" }, \"INT_MSG\": \"05-00-05 ERR_PSP_REFUSED\", \"MLABEL\": \"IBAN\", \"TYPE\": \"1\" } ] } }";
}
Here I use Google Gosn lib for conversion.
And need to import bellow classes for annotation
com.google.gson.annotations.Expose;
com.google.gson.annotations.SerializedName;