diff --git a/src/app/app.component.html b/src/app/app.component.html
index 21b361c5f12827d3f56abdfe305da752a8566450..8d4134e24ae62c00fffc105fedc6a16d1ee6fcb6 100644
--- a/src/app/app.component.html
+++ b/src/app/app.component.html
@@ -38,8 +38,13 @@
               <li>
                 <a class="dropdown-item cursor-pointer" (click)="startSimulation(planning)">{{planningText}}</a>
               </li>
-              <li>
-                <a class="dropdown-item cursor-pointer" (click)="startSimulation(financing)">{{financingText}}</a>
+              <li [class.disabled]="!financingSimulationIsEnable">
+                <ng-container *ngIf="financingSimulationIsEnable; else elseTemplate">
+                  <a class="dropdown-item cursor-pointer" (click)="startSimulation(financing)">{{financingText}}</a>
+                </ng-container>
+                <ng-template #elseTemplate>
+                  <a>{{financingText}}&nbsp;&nbsp;<sup>Em construção...</sup></a>
+                </ng-template>
               </li>
             </ul>
           </li>
@@ -83,8 +88,13 @@
             <li>
               <a class="cursor-pointer" (click)="startSimulation(planning)">{{planningText}}</a>
             </li>
-            <li>
-              <a class="cursor-pointer" (click)="startSimulation(financing)">{{financingText}}</a>
+            <li [class.disabled]="!financingSimulationIsEnable">
+              <ng-container *ngIf="financingSimulationIsEnable; else elseTemplate">
+                <a class="cursor-pointer" (click)="startSimulation(financing)">{{financingText}}</a>
+              </ng-container>
+              <ng-template #elseTemplate>
+                <a>{{financingText}}&nbsp;&nbsp;<sup>Em construção...</sup></a>
+              </ng-template>
             </li>
           </ul>
         </div>
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
index a5874c35172bc86bc25e5753f132b606a5695634..867b37d5bb57a1b7438aa43310ea5c0707ee5865 100644
--- a/src/app/app.component.ts
+++ b/src/app/app.component.ts
@@ -7,6 +7,7 @@ import { SessionService } from './shared/services/session/session.service';
 import { UtilitiesService } from './shared/services/utilities/utilities.service';
 import { SimulationType } from './simulator/simulator/entities/enums/simulation-type.enum';
 import { SimulatorService } from './simulator/simulator/services/simulator.service';
+import { AuthService } from './shared/services/auth/auth.service';
 
 @Component({
   selector: 'app-root',
@@ -20,6 +21,7 @@ export class AppComponent extends BaseUnsubscribe implements OnInit {
   isQualityPage: boolean;
   showFooter: boolean;
   isInverseColor: boolean = false;
+  financingSimulationIsEnable: boolean = false;
 
   readonly caq: SimulationType = SimulationType.caq;
   readonly caqText: string = UtilitiesService.caqText;
@@ -31,7 +33,12 @@ export class AppComponent extends BaseUnsubscribe implements OnInit {
   @ViewChild('navbarMenuToggle', { static: false }) navbarMenuToggle: ElementRef;
   @ViewChild('navbarContent', { static: false }) navbarContent: ElementRef;
 
-  constructor(private router: Router, private sessionService: SessionService, private utilitiesService: UtilitiesService, private simulatorService: SimulatorService) {
+  constructor(
+    private router: Router,
+    private sessionService: SessionService,
+    private utilitiesService: UtilitiesService,
+    private simulatorService: SimulatorService,
+    private authService: AuthService) {
     super();
 
     // Clear 'has error' flag.
@@ -40,6 +47,18 @@ export class AppComponent extends BaseUnsubscribe implements OnInit {
 
   ngOnInit(): void {
     this.listenRouteEvents();
+
+    this.verifyFinancingSimulationIsEnable();
+
+    this.authService.userLoggedObserver.pipe(
+      takeUntil(this.unsubscribe))
+      .subscribe(userIsLoggedIn => {
+        if (userIsLoggedIn) {
+          this.verifyFinancingSimulationIsEnable();
+        } else {
+          this.financingSimulationIsEnable = false;
+        }
+      });
   }
 
   startSimulation(simulationType: SimulationType): void {
@@ -63,4 +82,10 @@ export class AppComponent extends BaseUnsubscribe implements OnInit {
       });
   }
 
+  private verifyFinancingSimulationIsEnable(): void {
+    this.authService.userIsAdmin().pipe(
+      takeUntil(this.unsubscribe))
+      .subscribe(userIsAdmin => this.financingSimulationIsEnable = userIsAdmin);
+  }
+
 }
diff --git a/src/app/home/home.component.html b/src/app/home/home.component.html
index 22c4227c706a3c4e1848f6a478d56ca889b09385..5ff54a159f9337559324d70b4f375273447ebb27 100644
--- a/src/app/home/home.component.html
+++ b/src/app/home/home.component.html
@@ -33,7 +33,7 @@
                 Acesse o Custo-aluno Qualidade (CAQ) de cada etapa/modalidade
               </div>
               <div class="type-start">
-                <button class="btn btn-primary" (click)="startSimulation(1)">Acessar</button>
+                <button class="btn btn-primary" (click)="startSimulation(caq)">Acessar</button>
               </div>
             </div>
             <div class="simulation-type-container planning">
@@ -44,7 +44,7 @@
                 Calcule o orçamento necessário para financiar a educação na sua localidade
               </div>
               <div class="type-start">
-                <button class="btn btn-primary" (click)="startSimulation(2)">Simular</button>
+                <button class="btn btn-primary" (click)="startSimulation(planning)">Simular</button>
               </div>
             </div>
             <div class="simulation-type-container financing">
@@ -55,7 +55,12 @@
                 Consulte valores para um fundo de manutenção a partir do CAQ
               </div>
               <div class="type-start">
-                <button class="btn btn-primary" (click)="startSimulation(3)">Consultar</button>
+                <ng-container *ngIf="financingSimulationIsEnable; else elseTemplate">
+                  <button class="btn btn-primary" (click)="startSimulation(financing)">Consultar</button>
+                </ng-container>
+                <ng-template #elseTemplate>
+                  <button class="btn btn-primary" disabled="disabled">Em construção...</button>
+                </ng-template>
               </div>
             </div>
           </div>
diff --git a/src/app/home/home.component.ts b/src/app/home/home.component.ts
index 98c7578fc0a5f78481a7f0a7744aec657e25d367..b997f0159a7f686c42686eaa4a793f82b810f67e 100644
--- a/src/app/home/home.component.ts
+++ b/src/app/home/home.component.ts
@@ -1,22 +1,51 @@
 import { Component, OnInit } from '@angular/core';
+import { Router } from '@angular/router';
+import { takeUntil, map } from 'rxjs/operators';
 
 import { SimulationType } from '../simulator/simulator/entities/enums/simulation-type.enum';
 import { SimulatorService } from '../simulator/simulator/services/simulator.service';
+import { AuthService } from '../shared/services/auth/auth.service';
+import { BaseUnsubscribe } from '../shared/entities/base/base-unsubscribe';
 
 @Component({
   selector: 'app-home',
   templateUrl: './home.component.html',
   styleUrls: ['./home.component.scss']
 })
-export class HomeComponent implements OnInit {
+export class HomeComponent extends BaseUnsubscribe implements OnInit {
 
-  constructor(private simulatorService: SimulatorService) { }
+  financingSimulationIsEnable: boolean = false;
+
+  readonly caq: SimulationType = SimulationType.caq;
+  readonly planning: SimulationType = SimulationType.planning;
+  readonly financing: SimulationType = SimulationType.financing;
+
+  constructor(private simulatorService: SimulatorService, private authService: AuthService) {
+    super();
+  }
 
   ngOnInit(): void {
+    this.verifyFinancingSimulationIsEnable();
+
+    this.authService.userLoggedObserver.pipe(
+      takeUntil(this.unsubscribe))
+      .subscribe(userIsLoggedIn => {
+        if (userIsLoggedIn) {
+          this.verifyFinancingSimulationIsEnable();
+        } else {
+          this.financingSimulationIsEnable = false;
+        }
+      });
   }
 
   startSimulation(simulationType: SimulationType): void {
     this.simulatorService.startSimulation(simulationType);
   }
 
+  private verifyFinancingSimulationIsEnable(): void {
+    this.authService.userIsAdmin().pipe(
+      takeUntil(this.unsubscribe))
+      .subscribe(userIsAdmin => this.financingSimulationIsEnable = userIsAdmin);
+  }
+
 }
diff --git a/src/app/shared/guards/auth/financing-simulation-is-enable.guard.spec.ts b/src/app/shared/guards/auth/financing-simulation-is-enable.guard.spec.ts
new file mode 100644
index 0000000000000000000000000000000000000000..ea919959e2acfd6e4404a426f069ab48a68f8388
--- /dev/null
+++ b/src/app/shared/guards/auth/financing-simulation-is-enable.guard.spec.ts
@@ -0,0 +1,15 @@
+import { TestBed, async, inject } from '@angular/core/testing';
+
+import { FinancingSimulationIsEnableGuard } from './financing-simulation-is-enable.guard';
+
+describe('FinancingSimulationIsEnableGuard', () => {
+  beforeEach(() => {
+    TestBed.configureTestingModule({
+      providers: [FinancingSimulationIsEnableGuard]
+    });
+  });
+
+  it('should ...', inject([FinancingSimulationIsEnableGuard], (guard: FinancingSimulationIsEnableGuard) => {
+    expect(guard).toBeTruthy();
+  }));
+});
diff --git a/src/app/shared/guards/auth/financing-simulation-is-enable.guard.ts b/src/app/shared/guards/auth/financing-simulation-is-enable.guard.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4013818b54f9d957ff2c32a7d24843d3c3779210
--- /dev/null
+++ b/src/app/shared/guards/auth/financing-simulation-is-enable.guard.ts
@@ -0,0 +1,26 @@
+import { Injectable } from '@angular/core';
+import { CanActivate, CanActivateChild, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';
+import { Observable } from 'rxjs';
+import { map } from 'rxjs/operators';
+
+import { AuthService } from '../../services/auth/auth.service';
+
+@Injectable({
+  providedIn: 'root'
+})
+export class FinancingSimulationIsEnableGuard implements CanActivate, CanActivateChild {
+
+  constructor(private authService: AuthService) { }
+
+  canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
+    return this.canActivateThis(state);
+  }
+  canActivateChild(next: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
+    return this.canActivateThis(state);
+  }
+
+  private canActivateThis(state: RouterStateSnapshot): Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree {
+    return this.authService.userIsAdmin().pipe(
+      map(userIsAdmin => userIsAdmin));
+  }
+}
diff --git a/src/app/simulator/results/results-children.routes.ts b/src/app/simulator/results/results-children.routes.ts
index e118230b062c06d5820ca29a7eb1048c4da0cf8a..dff32f864b74b4b129a7578c790c76cca4f9f8d9 100644
--- a/src/app/simulator/results/results-children.routes.ts
+++ b/src/app/simulator/results/results-children.routes.ts
@@ -6,11 +6,12 @@ import { CaqReportComponent } from './caq-report/caq-report.component';
 import { BudgetForecastReportComponent } from './budget-forecast-report/budget-forecast-report.component';
 import { FinancingFundsReportComponent } from './financing-funds-report/financing-funds-report.component';
 import { ItemCostExpenseReportComponent } from './item-cost-expense-report/item-cost-expense-report.component';
+import { FinancingSimulationIsEnableGuard } from '../../shared/guards/auth/financing-simulation-is-enable.guard';
 
 const routes: Routes = [
   { path: 'caqreport', component: CaqReportComponent, canDeactivate: [HasErrorGuard, HasRequiredDataGuard] },
   { path: 'budgetforecastreport', component: BudgetForecastReportComponent, canDeactivate: [HasErrorGuard, HasRequiredDataGuard] },
-  { path: 'financingfundsreport', component: FinancingFundsReportComponent, canDeactivate: [HasErrorGuard, HasRequiredDataGuard] },
+  { path: 'financingfundsreport', component: FinancingFundsReportComponent, canDeactivate: [HasErrorGuard, HasRequiredDataGuard], canActivate: [FinancingSimulationIsEnableGuard] },
   { path: 'itemcostexpensereport', component: ItemCostExpenseReportComponent, canDeactivate: [HasErrorGuard, HasRequiredDataGuard] },
 ];
 
diff --git a/src/app/simulator/results/results/results.component.ts b/src/app/simulator/results/results/results.component.ts
index 78db5de73002b41c968550615c07e69063051ad8..cd3751266bea07ff384415978342428a53b892f8 100644
--- a/src/app/simulator/results/results/results.component.ts
+++ b/src/app/simulator/results/results/results.component.ts
@@ -6,7 +6,10 @@ import { BaseUnsubscribe } from '../../../shared/entities/base/base-unsubscribe'
 import { SimulatorService } from '../../simulator/services/simulator.service';
 import { Functionality } from '../../../shared/entities/functionality/functionality';
 import { FunctionalityRoute } from '../../../shared/entities/functionality/functionality-route';
+import { SimulationType } from '../../simulator/entities/enums/simulation-type.enum';
 import { SessionService } from '../../../shared/services/session/session.service';
+import { UtilitiesService } from '../../../shared/services/utilities/utilities.service';
+import { AuthService } from '../../../shared/services/auth/auth.service';
 
 @Component({
   selector: 'app-results',
@@ -18,7 +21,7 @@ export class ResultsComponent extends BaseUnsubscribe implements OnInit {
   homeRoute: Array<string> = [FunctionalityRoute.homeRoute];
   isItemCostExpenseReport: boolean;
 
-  constructor(private router: Router, private simulatorService: SimulatorService) {
+  constructor(private router: Router, private simulatorService: SimulatorService, private sessionService: SessionService, private authService: AuthService) {
     super();
 
     this.router.events.pipe(
@@ -27,11 +30,20 @@ export class ResultsComponent extends BaseUnsubscribe implements OnInit {
       .subscribe((event: NavigationEnd) => {
         this.isItemCostExpenseReport = event.url.indexOf('itemcostexpensereport') > 0;
 
-        if (event.url.indexOf(Functionality.caqReport.key) !== -1 ||
-          event.url.indexOf(Functionality.budgetForecastReport.key) !== -1 ||
-          event.url.indexOf(Functionality.financingFundsReport.key) !== -1 ||
-          event.url.endsWith(FunctionalityRoute.resultsRoute)) {
-          this.simulatorService.navigateToResultSimulation();
+        const simulationType: SimulationType = this.sessionService.getItem(UtilitiesService.simulationTypeSessionKey);
+
+        if (simulationType === SimulationType.financing) {
+          this.authService.userIsAdmin().pipe(
+            takeUntil(this.unsubscribe))
+            .subscribe(userIsAdmin => {
+              if (userIsAdmin) {
+                this.navigateToResultSimulation(event.url);
+              } else {
+                this.router.navigate([FunctionalityRoute.homeRoute]);
+              }
+            });
+        } else {
+          this.navigateToResultSimulation(event.url);
         }
       });
   }
@@ -39,4 +51,13 @@ export class ResultsComponent extends BaseUnsubscribe implements OnInit {
   ngOnInit() {
   }
 
+  private navigateToResultSimulation(url: string): void {
+    if (url.indexOf(Functionality.caqReport.key) !== -1 ||
+      url.indexOf(Functionality.budgetForecastReport.key) !== -1 ||
+      url.indexOf(Functionality.financingFundsReport.key) !== -1 ||
+      url.endsWith(FunctionalityRoute.resultsRoute)) {
+      this.simulatorService.navigateToResultSimulation();
+    }
+  }
+
 }
diff --git a/src/app/simulator/shared/components/processing-simulation/processing-simulation.component.ts b/src/app/simulator/shared/components/processing-simulation/processing-simulation.component.ts
index 796b2f36571816672095bf34c8b028d99d351164..aa806ca7d0770206111f6792bfc6bb1b5423c55a 100644
--- a/src/app/simulator/shared/components/processing-simulation/processing-simulation.component.ts
+++ b/src/app/simulator/shared/components/processing-simulation/processing-simulation.component.ts
@@ -8,6 +8,7 @@ import { SimulationType } from '../../../simulator/entities/enums/simulation-typ
 import { SessionService } from '../../../../shared/services/session/session.service';
 import { FunctionalityRoute } from '../../../../shared/entities/functionality/functionality-route';
 import { UtilitiesService } from '../../../../shared/services/utilities/utilities.service';
+import { AuthService } from '../../../../shared/services/auth/auth.service';
 
 @Component({
   selector: 'app-processing-simulation',
@@ -16,7 +17,7 @@ import { UtilitiesService } from '../../../../shared/services/utilities/utilitie
 })
 export class ProcessingSimulationComponent extends BaseUnsubscribe implements OnInit {
 
-  constructor(private router: Router, private simulatorService: SimulatorService, private sessionService: SessionService) {
+  constructor(private router: Router, private simulatorService: SimulatorService, private sessionService: SessionService, private authService: AuthService) {
     super();
   }
 
@@ -27,6 +28,23 @@ export class ProcessingSimulationComponent extends BaseUnsubscribe implements On
   processSimulation(): void {
     const simulationType: SimulationType = this.sessionService.getItem(UtilitiesService.simulationTypeSessionKey);
 
+    if (simulationType === SimulationType.financing) {
+      this.authService.userIsAdmin().pipe(
+        takeUntil(this.unsubscribe))
+        .subscribe(userIsAdmin => {
+          if (userIsAdmin) {
+            this.initializeSimulation(simulationType);
+          } else {
+            this.router.navigate([FunctionalityRoute.homeRoute]);
+          }
+        });
+    } else {
+      this.initializeSimulation(simulationType);
+    }
+
+  }
+
+  private initializeSimulation(simulationType: SimulationType): void {
     this.simulatorService.initializeSimulation(simulationType).pipe(
       takeUntil(this.unsubscribe))
       .subscribe(result => {