diff --git a/src/libs/models/user.js b/src/libs/models/user.js
index 7ee47258b1951f3ae0d3228c5bbc5b402f9c8dfc..4f1618caa3c16408814f3d6390185857b8eafcc7 100644
--- a/src/libs/models/user.js
+++ b/src/libs/models/user.js
@@ -43,6 +43,15 @@ var UserSchema = new Schema({
     course: {
         type: String,
     },
+    complement: {
+        type: String,
+    },
+    address: {
+        type: String,
+    },
+    phone: {
+        type: String,
+    },
     segment: {
         type: String,
         required: [true, 'O campo Segmento é obrigatório.']
@@ -78,6 +87,12 @@ var UserSchema = new Schema({
     verified: {
         type: Boolean,
         default: false
+    },
+    citesegment: {
+        type: String
+    },
+    citerole: {
+        type: String
     }
 });
 
diff --git a/src/libs/routes/idhm.js b/src/libs/routes/idhm.js
index 7d6d97de924f5863bb8e1ec934ae8b7c0aa25e82..fd3c4aab268794bd71e3c3a9a3bd6395737ab582 100644
--- a/src/libs/routes/idhm.js
+++ b/src/libs/routes/idhm.js
@@ -16,7 +16,7 @@ const ReqQueryFields = require(`${libs}/middlewares/reqQueryFields`);
 
 const id2str = require(`${libs}/middlewares/id2str`);
 
-const config = require(`${libs}/config`); 
+const config = require(`${libs}/config`);
 
 const cache = require('apicache').options({ debug: config.debug, statusCodes: {include: [200]} }).middleware;
 
@@ -164,42 +164,32 @@ rqf.addField({
 
 idhmApp.get('/', rqf.parse(), (req, res, next) => {
   log.debug(req.sql.toParam());
-  if((Object.keys(req.filter).length === 0) && (Object.keys(req.dims).length === 0)) {
-      req.sql.from('adh_idh_uf')
-      .field('adh_idh_uf.idhm', 'total')
-      .field('adh_idh_uf.ano_censo', 'year')
-      .field('adh_idh_uf.estado_id', 'state_id')
-      .group('adh_idh_uf.idhm')
-      .group('adh_idh_uf.ano_censo')
-      .group('adh_idh_uf.estado_id')
-  } else if ("state" in req.filter && !("city" in req.filter) && !("city" in req.dims)) {
-      req.sql.from('adh_idh_uf')
-      .field('adh_idh_uf.idhm', 'total')
-      .field('adh_idh_uf.ano_censo', 'year')
-      .field('adh_idh_uf.estado_id', 'state_id')
-      .group('adh_idh_uf.idhm')
-      .group('adh_idh_uf.ano_censo')
-      .group('adh_idh_uf.estado_id')
-   } else if ("city" in req.filter || "city" in req.dims) {
-      req.sql.from('adh_idh')
-      .field('adh_idh.idhm', 'total')
-      .field('adh_idh.ano_censo', 'year')
-      .field('adh_idh.municipio_id', 'city_id')
-      .field('adh_idh.estado_id', 'state_id')
-      .group('adh_idh.idhm')
-      .group('adh_idh.ano_censo')
-      .group('adh_idh.municipio_id')
-      .group('adh_idh.estado_id')
-    } else {
-      req.sql.from('adh_idh_uf')
-      .field('adh_idh_uf.idhm', 'total')
-      .field('adh_idh_uf.ano_censo', 'year')
-      .field('adh_idh_uf.estado_id', 'state_id')
-      .group('adh_idh_uf.idhm')
-      .group('adh_idh_uf.ano_censo')
-      .group('adh_idh_uf.estado_id')
-    }
-   next();
+      if (("city" in req.dims) || ("city" in req.filter)) {
+          req.sql.from('adh_idh')
+          .field('adh_idh.idhm', 'total')
+          .field('adh_idh.ano_censo', 'year')
+          .field('adh_idh.municipio_id', 'city_id')
+          .field('adh_idh.estado_id', 'state_id')
+          .group('adh_idh.idhm')
+          .group('adh_idh.ano_censo')
+          .group('adh_idh.municipio_id')
+          .group('adh_idh.estado_id')
+      } else if (("state" in req.filter) || ("state" in req.dims)) {
+          req.sql.from('adh_idh_uf')
+          .field('adh_idh_uf.idhm', 'total')
+          .field('adh_idh_uf.ano_censo', 'year')
+          .field('adh_idh_uf.estado_id', 'state_id')
+          .group('adh_idh_uf.idhm')
+          .group('adh_idh_uf.ano_censo')
+          .group('adh_idh_uf.estado_id')
+        } else {
+            res.status(400);
+            next({
+                status: 400,
+                message: 'Wrong/No filter specified'
+            });
+        }
+        next();
 }, rqf.build(), query, id2str.transform(), response('idhm'));
 
 module.exports = idhmApp;
diff --git a/src/libs/routes/idhmr.js b/src/libs/routes/idhmr.js
index 4bd16e9102d11beeb86f9521ca078fe7a8e3bf8f..3909f55febd4d85f2d68746548ebf405424face7 100644
--- a/src/libs/routes/idhmr.js
+++ b/src/libs/routes/idhmr.js
@@ -16,7 +16,7 @@ const ReqQueryFields = require(`${libs}/middlewares/reqQueryFields`);
 
 const id2str = require(`${libs}/middlewares/id2str`);
 
-const config = require(`${libs}/config`); 
+const config = require(`${libs}/config`);
 
 const cache = require('apicache').options({ debug: config.debug, statusCodes: {include: [200]} }).middleware;
 
@@ -140,43 +140,32 @@ rqf.addField({
 
 idhmrApp.get('/', rqf.parse(), (req, res, next) => {
   log.debug(req.sql.toParam());
-  if(typeof req.filter === 'undefined' || Object.keys(req.filter).length === 0 ) {
-      req.sql.from('adh_idh_uf')
-      .field('adh_idh_uf.idhm_r', 'total')
-      .field('adh_idh_uf.ano_censo', 'year')
-      .field('adh_idh_uf.estado_id', 'state_id')
-      .group('adh_idh_uf.idhm_r')
-      .group('adh_idh_uf.ano_censo')
-      .group('adh_idh_uf.estado_id')
-  } else if ("state" in req.filter && !("city" in req.filter) && !("city" in req.dims)) {
-      req.sql.from('adh_idh_uf')
-      .field('adh_idh_uf.idhm_r', 'total')
-      .field('adh_idh_uf.ano_censo', 'year')
-      .field('adh_idh_uf.estado_id', 'state_id')
-      .group('adh_idh_uf.idhm_r')
-      .group('adh_idh_uf.ano_censo')
-      .group('adh_idh_uf.estado_id')
-  } else if ("city" in req.filter || "city" in req.dims) {
-      req.sql.from('adh_idh')
-      .field('adh_idh.idhm_r', 'total')
-      .field('adh_idh.ano_censo', 'year')
-      .field('adh_idh.municipio_id', 'city_id')
-      .field('adh_idh.estado_id', 'state_id')
-      .group('adh_idh.idhm_r')
-      .group('adh_idh.ano_censo')
-      .group('adh_idh.municipio_id')
-      .group('adh_idh.estado_id')
-  } else {
-      req.sql.from('adh_idh_uf')
-      .field('adh_idh_uf.idhm_r', 'total')
-      .field('adh_idh_uf.ano_censo', 'year')
-      .field('adh_idh_uf.estado_id', 'state_id')
-      .group('adh_idh_uf.idhm_r')
-      .group('adh_idh_uf.ano_censo')
-      .group('adh_idh_uf.estado_id')
-    }
-
-  next();
+    if (("city" in req.dims) || ("city" in req.filter)) {
+        req.sql.from('adh_idh')
+        .field('adh_idh.idhm_r', 'total')
+        .field('adh_idh.ano_censo', 'year')
+        .field('adh_idh.municipio_id', 'city_id')
+        .field('adh_idh.estado_id', 'state_id')
+        .group('adh_idh.idhm_r')
+        .group('adh_idh.ano_censo')
+        .group('adh_idh.municipio_id')
+        .group('adh_idh.estado_id')
+    } else if (("state" in req.filter) || ("state" in req.dims)) {
+        req.sql.from('adh_idh_uf')
+        .field('adh_idh_uf.idhm_r', 'total')
+        .field('adh_idh_uf.ano_censo', 'year')
+        .field('adh_idh_uf.estado_id', 'state_id')
+        .group('adh_idh_uf.idhm_r')
+        .group('adh_idh_uf.ano_censo')
+        .group('adh_idh_uf.estado_id')
+      } else {
+          res.status(400);
+          next({
+              status: 400,
+              message: 'Wrong/No filter specified'
+          });
+      }
+      next();
 }, rqf.build(),query, id2str.transform(), response('idhmr'));
 
 module.exports = idhmrApp;
diff --git a/src/libs/routes/user.js b/src/libs/routes/user.js
index 7d3e6fe8281d7cd1077083064e72558f0356dd31..9bdc38de32e2a544970d326ff7896e7f839c80ab 100644
--- a/src/libs/routes/user.js
+++ b/src/libs/routes/user.js
@@ -135,7 +135,9 @@ userApp.post('/', (req, res, next) => {
     state: req.body.state,
     city: req.body.city,
     receiveEmails: false || req.body.receiveEmails,
-    origin: req.body.origin
+    origin: req.body.origin,
+    citesegment: req.body.citesegment,
+    citerole: req.body.citerole
   });
 
   if (typeof req.body.password === 'undefined' || !req.body.password) {