diff --git a/src/libs/routes/city.js b/src/libs/routes/city.js
index 2ebc44d28c80fba86042b5ee0aafcd074c3b25a5..1686c850aeea190dd8af43acf46acc9d0ceb8bb8 100644
--- a/src/libs/routes/city.js
+++ b/src/libs/routes/city.js
@@ -115,27 +115,5 @@ cityApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
     next();
 }, query, response('city'));
 
-cityApp.get('/microregion', rqf.parse(), rqf.build(), (req, res, next) => {
-    req.sql.from('municipio')
-    .field('municipio.estado_id', 'state_id')
-    .field('municipio.microrregiao_id', 'microregion_id')
-    .field('municipio.nome_microrregiao', 'microregion_name')
-    .group('municipio.estado_id')
-    .group('municipio.microrregiao_id')
-    .group('municipio.nome_microrregiao')
-    next();
-}, query, response('city/microregion'));
-
-cityApp.get('/mesoregion', rqf.parse(), rqf.build(), (req, res, next) => {
-    req.sql.from('municipio')
-    .field('municipio.estado_id', 'state_id')
-    .field('municipio.mesorregiao_id', 'mesoregion_id')
-    .field('municipio.nome_mesorregiao', 'mesoregion_name')
-    .group('municipio.nome_mesorregiao')
-    .group('municipio.mesorregiao_id')
-    .group('municipio.estado_id')
-    next();
-}, query, response('city/mesoregion'));
-
 
 module.exports = cityApp;
diff --git a/src/libs/routes/mesoregion.js b/src/libs/routes/mesoregion.js
index 0feb76270835ba64e9c4a7adfed6bd8f8a676c09..001976f2f053e9226249fc1bfdda4d68f36916da 100644
--- a/src/libs/routes/mesoregion.js
+++ b/src/libs/routes/mesoregion.js
@@ -60,6 +60,15 @@ rqf.addField({
         foreign: 'estado_id',
         foreignTable: 'municipio'
     }
+}).addValue({
+    name: 'mesoregion',
+    table: 'municipio',
+    tableField: 'mesorregiao_id',
+    where: {
+        relation: '=',
+        type: 'integer',
+        field: 'mesorregiao_id'
+    }
 });
 
 mesoregionApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
@@ -69,7 +78,8 @@ mesoregionApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
         .field('municipio.estado_id', 'state_id')
         .group('municipio.nome_mesorregiao')
         .group('municipio.mesorregiao_id')
-        .group('municipio.estado_id');
+        .group('municipio.estado_id')
+        .order('municipio.mesorregiao_id');
     next();
 }, query, response('mesoregion'));
 
diff --git a/src/libs/routes/microregion.js b/src/libs/routes/microregion.js
index 0b9b0e1a3f5f04b0a768283d7aaffa7b353aafc6..c4aba0fea760cbadeba7264e1f081436bc850634 100644
--- a/src/libs/routes/microregion.js
+++ b/src/libs/routes/microregion.js
@@ -60,6 +60,24 @@ rqf.addField({
         foreign: 'estado_id',
         foreignTable: 'municipio'
     }
+}).addValue({
+    name: 'mesoregion',
+    table: 'municipio',
+    tableField: 'mesorregiao_id',
+    where: {
+        relation: '=',
+        type: 'integer',
+        field: 'mesorregiao_id'
+    }
+}).addValue({
+    name: 'microregion',
+    table: 'municipio',
+    tableField: 'microrregiao_id',
+    where: {
+        relation: '=',
+        type: 'integer',
+        field: 'microrregiao_id'
+    }
 });
 
 microregionApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
@@ -73,7 +91,8 @@ microregionApp.get('/', rqf.parse(), rqf.build(), (req, res, next) => {
         .group('municipio.microrregiao_id')
         .group('municipio.nome_mesorregiao')
         .group('municipio.mesorregiao_id')
-        .group('municipio.estado_id');
+        .group('municipio.estado_id')
+        .order('municipio.microrregiao_id');
     next();
 }, query, response('microregion'));