diff --git a/src/libs/middlewares/aggregateData.js b/src/libs/middlewares/aggregateData.js
index 8dbf01d7bbae35fbd18821f850c26ba17c93cbd7..0aab03415abda3ef381b7e57979aad14a20c78d7 100644
--- a/src/libs/middlewares/aggregateData.js
+++ b/src/libs/middlewares/aggregateData.js
@@ -78,6 +78,7 @@ function aggregateData(req, res, next) {
         let currentAggregateField;
         let currentNonAggregateField;
     
+        console.log("data pre aggregate" ,req.result)
         // Verifica se o filtro passado está presente nos filtros agregados
         fields.forEach(field => {if (aggregateFields.includes(field)) currentAggregateField = field; else currentNonAggregateField = field});
         if (currentAggregateField) {
@@ -109,6 +110,7 @@ function aggregateData(req, res, next) {
             req.result = newResult;
         }
     }
+    console.log("data pos aggregate" ,req.result)
     next();
 }
 
diff --git a/src/libs/routes_v1/expenses.js b/src/libs/routes_v1/expenses.js
index 624609e8a1b0239b1985a8de3b4e675137c7c5f1..0e578f2e663414eb3641496670685e710b221ac1 100644
--- a/src/libs/routes_v1/expenses.js
+++ b/src/libs/routes_v1/expenses.js
@@ -51,6 +51,14 @@ ExpensesApp.get('/years', (req, res, next) => {
     next();
 }, query, response('years'))
 
+ExpensesApp.get('/type', (req, res, next) => {
+    req.result = []
+
+    req.result.push({ id: 1, name: "Rede Estadual" });
+    req.result.push({ id: 2, name: "Rede Municipal" });
+    next();
+}, response('type'));
+
 // rqf.addValue({
 //     name: 'location',
 //     table: 'despesas',
@@ -111,33 +119,44 @@ rqf.addField({
 
 ExpensesApp.get('/', rqf.parse(), rqf.build(),  (req, res, next) => {
 
-    if (req.query.dims && req.query.dims.includes('despesas')) {
-        let whereCondition = req.query.filter.includes("region") ? "" : "despesas.cod_ibge = 0";
-        let filterId;
-        const filters = req.query.filter.split(",");
-        filters.forEach((filter) => {
-            if (filter.includes("state") || filter.includes("city")) {
-                filterId = Number(filter.split(":")[1].replace(/"/g, ""));
-                whereCondition = `despesas.cod_ibge = ${filterId}`
+    let obj = {}
+    let typeFilter = false;
+    let whereCondition = req.query.filter.includes("region") ? "" : "despesas.cod_ibge = 0";
+    let filterId;
+    const filters = req.query.filter.split(",");
+    filters.forEach((filter) => {
+        if (filter.includes("state") || filter.includes("city")) {
+            filterId = Number(filter.split(":")[1].replace(/"/g, ""));
+            whereCondition = `despesas.cod_ibge = ${filterId}`
+        }
+    })
+
+    if (req.query.filter) {
+        const jsonString = `{${req.query.filter.replace(/(\w+):/g, '"$1":')}}`;
+        obj = JSON.parse(jsonString);
+        if (obj.type) {
+            if (obj.type.includes("1") && !obj.type.includes("2")) {
+                whereCondition = "despesas.cod_ibge >= 11 and despesas.cod_ibge <= 53"
             }
-        })
+            else if (obj.type.includes("2") && !obj.type.includes("1")) {
+                whereCondition = "despesas.cod_ibge > 53"
+            }
+
+            typeFilter = true;
+        }
+    }
 
+    if (!typeFilter || (typeFilter && (!obj.state && !obj.city && !obj.region))) {
         req.sql.from('despesas')
         .field('despesas.ano_censo', 'year')
         .field('despesas.ano_censo', 'total_ano')
         .field('despesas.nome_ente', 'total_nome_ente')
-        .field('round(despesas.despesas,2)', 'total_despesas')
-        .field('matriculas_publica', 'total_matriculas_publica')
-        .field('matriculas_publicas_mais_conveniada', 'total_matriculas_publicas_mais_conveniada')
-        .field('round(gasto_aluno_ano_publica,2)', 'total_gasto_aluno_ano_publica')
-        .field('round(gasto_aluno_mes_publica,2)', 'total_gasto_aluno_mes_publica')
-        .field('round(gasto_aluno_ano_publica_mais_conveniada,2)', 'total_gasto_aluno_ano_publica_mais_conveniada')
-        .field('round(gasto_aluno_mes_publica_mais_conveniada,2)', 'total_gasto_aluno_mes_publica_mais_conveniada')
+        .field('round(despesas.despesas,2)', 'total')
         .where(`${whereCondition}`)
         .order('despesas.ano_censo')
     }
 
     next();
-}, query, aggregateData, id2str.transform(false), response('expenses'));
+}, query, id2str.transform(false), response('expenses'));
 
 module.exports = ExpensesApp;
\ No newline at end of file