diff --git a/lib/api/notes.rb b/lib/api/notes.rb
index 413faf0cf2de35ed33f266a4aefeab56bf4f69fe..0ef9a3c4beb17e1fdea6179b93e58e8722c93122 100644
--- a/lib/api/notes.rb
+++ b/lib/api/notes.rb
@@ -50,12 +50,15 @@ module API
         post ":id/#{noteables_str}/:#{noteable_id_str}/notes" do
           required_attributes! [:body]
 
-          @noteable = user_project.send(:"#{noteables_str}").find(params[:"#{noteable_id_str}"])
-          @note = @noteable.notes.new(note: params[:body])
-          @note.author = current_user
-          @note.project = user_project
+          opts = {
+           note: params[:body],
+           noteable_type: noteables_str.classify,
+           noteable_id: params[noteable_id_str]
+          }
+
+          @note = ::Notes::CreateService.new(user_project, current_user, opts).execute
 
-          if @note.save
+          if @note.valid?
             present @note, with: Entities::Note
           else
             not_found!