diff --git a/pkg/service_internal/mapfixes.go b/pkg/service_internal/mapfixes.go
index 0827424..49ef1b4 100644
--- a/pkg/service_internal/mapfixes.go
+++ b/pkg/service_internal/mapfixes.go
@@ -74,7 +74,7 @@ func (svc *Service) UpdateMapfixValidatedModel(ctx context.Context, params inter
 	return nil
 }
 
-// ActionMapfixValidate invokes actionMapfixValidate operation.
+// ActionMapfixSubmitted invokes actionMapfixSubmitted operation.
 //
 // Role Validator changes status from Submitting -> Submitted.
 //
@@ -113,6 +113,46 @@ func (svc *Service) ActionMapfixSubmitted(ctx context.Context, params internal.A
 	return nil
 }
 
+// ActionMapfixRequestChanges implements actionMapfixRequestChanges operation.
+//
+// (Internal endpoint) Role Validator changes status from Submitting -> RequestChanges.
+//
+// POST /mapfixes/{MapfixID}/status/validator-request-changes
+func (svc *Service) ActionMapfixRequestChanges(ctx context.Context, params internal.ActionMapfixRequestChangesParams) error {
+	// transaction
+	target_status := model.MapfixStatusChangesRequested
+	smap := datastore.Optional()
+	smap.Add("status_id", target_status)
+	smap.Add("status_message", params.StatusMessage)
+	err := svc.DB.Mapfixes().IfStatusThenUpdate(ctx, params.MapfixID, []model.MapfixStatus{model.MapfixStatusSubmitting}, smap)
+	if err != nil {
+		return err
+	}
+
+	event_data := model.AuditEventDataAction{
+		TargetStatus: uint32(target_status),
+	}
+
+	EventData, err := json.Marshal(event_data)
+	if err != nil {
+		return err
+	}
+
+	_, err = svc.DB.AuditEvents().Create(ctx, model.AuditEvent{
+		ID:           0,
+		User:         ValidtorUserID,
+		ResourceType: model.ResourceMapfix,
+		ResourceID:   params.MapfixID,
+		EventType:    model.AuditEventTypeAction,
+		EventData:    EventData,
+	})
+	if err != nil {
+		return err
+	}
+
+	return nil
+}
+
 // ActionMapfixValidate invokes actionMapfixValidate operation.
 //
 // Role Validator changes status from Validating -> Validated.
diff --git a/pkg/service_internal/submissions.go b/pkg/service_internal/submissions.go
index 3250ca7..3acb264 100644
--- a/pkg/service_internal/submissions.go
+++ b/pkg/service_internal/submissions.go
@@ -73,7 +73,7 @@ func (svc *Service) UpdateSubmissionValidatedModel(ctx context.Context, params i
 	return nil
 }
 
-// ActionSubmissionValidate invokes actionSubmissionValidate operation.
+// ActionSubmissionSubmitted invokes actionSubmissionSubmitted operation.
 //
 // Role Validator changes status from Submitting -> Submitted.
 //
@@ -112,6 +112,46 @@ func (svc *Service) ActionSubmissionSubmitted(ctx context.Context, params intern
 	return nil
 }
 
+// ActionSubmissionRequestChanges implements actionSubmissionRequestChanges operation.
+//
+// (Internal endpoint) Role Validator changes status from Submitting -> RequestChanges.
+//
+// POST /submissions/{SubmissionID}/status/validator-request-changes
+func (svc *Service) ActionSubmissionRequestChanges(ctx context.Context, params internal.ActionSubmissionRequestChangesParams) error {
+	// transaction
+	target_status := model.SubmissionStatusChangesRequested
+	smap := datastore.Optional()
+	smap.Add("status_id", target_status)
+	smap.Add("status_message", params.StatusMessage)
+	err := svc.DB.Submissions().IfStatusThenUpdate(ctx, params.SubmissionID, []model.SubmissionStatus{model.SubmissionStatusSubmitting}, smap)
+	if err != nil {
+		return err
+	}
+
+	event_data := model.AuditEventDataAction{
+		TargetStatus: uint32(target_status),
+	}
+
+	EventData, err := json.Marshal(event_data)
+	if err != nil {
+		return err
+	}
+
+	_, err = svc.DB.AuditEvents().Create(ctx, model.AuditEvent{
+		ID:           0,
+		User:         ValidtorUserID,
+		ResourceType: model.ResourceSubmission,
+		ResourceID:   params.SubmissionID,
+		EventType:    model.AuditEventTypeAction,
+		EventData:    EventData,
+	})
+	if err != nil {
+		return err
+	}
+
+	return nil
+}
+
 // ActionSubmissionValidate invokes actionSubmissionValidate operation.
 //
 // Role Validator changes status from Validating -> Validated.