diff --git a/packages/component-invite/src/routes/fragmentsInvitations/post.js b/packages/component-invite/src/routes/fragmentsInvitations/post.js
index 0e45b83faac29aef7b05b2ca588cf07b6dc7fb0e..df347226ef738bab6131bf4f1f63738fe0310e9f 100644
--- a/packages/component-invite/src/routes/fragmentsInvitations/post.js
+++ b/packages/component-invite/src/routes/fragmentsInvitations/post.js
@@ -13,18 +13,8 @@ const emailInvitations = require('./emails/invitations')
 const { last } = require('lodash')
 
 module.exports = models => async (req, res) => {
-  const { email, role, firstName, lastName, affiliation, country } = req.body
-
-  if (
-    !services.checkForUndefinedParams(
-      email,
-      role,
-      firstName,
-      lastName,
-      affiliation,
-      country,
-    )
-  ) {
+  const { email, role } = req.body
+  if (!services.checkForUndefinedParams(email, role)) {
     res.status(400).json({ error: 'Missing parameters.' })
     return
   }
@@ -112,6 +102,17 @@ module.exports = models => async (req, res) => {
       await fragment.save()
       resend = true
     } else {
+      const { firstName, lastName, affiliation, country } = req.body
+      if (
+        !services.checkForUndefinedParams(
+          firstName,
+          lastName,
+          affiliation,
+          country,
+        )
+      ) {
+        res.status(400).json({ error: 'Missing parameters.' })
+      }
       invitation = await invitationHelper.createInvitation({
         parentObject: fragment,
       })
diff --git a/packages/component-invite/src/tests/fragmentsInvitations/post.test.js b/packages/component-invite/src/tests/fragmentsInvitations/post.test.js
index 0683f0aaf927ed7e6b810bd1103aaa75b4267955..cf4b990bb539ca664bb997a79bd136142908ac57 100644
--- a/packages/component-invite/src/tests/fragmentsInvitations/post.test.js
+++ b/packages/component-invite/src/tests/fragmentsInvitations/post.test.js
@@ -52,6 +52,7 @@ describe('Post fragments invitations route handler', () => {
     const data = JSON.parse(res._getData())
     expect(data.error).toEqual('Missing parameters.')
   })
+
   it('should return success when a reviewer is invited', async () => {
     const { user, editorInChief } = testFixtures.users
     const { collection } = testFixtures.collections
@@ -78,6 +79,61 @@ describe('Post fragments invitations route handler', () => {
     const data = JSON.parse(res._getData())
     expect(data.role).toEqual(body.role)
   })
+
+  it('should return success when resending an invitation to an existing reviewer', async () => {
+    const { editorInChief, reviewer } = testFixtures.users
+    const { collection } = testFixtures.collections
+    const { fragment } = testFixtures.fragments
+
+    const body = {
+      email: reviewer.email,
+      role: 'reviewer',
+      isPublons: false,
+    }
+
+    const res = await requests.sendRequest({
+      body,
+      userId: editorInChief.id,
+      route,
+      models,
+      path,
+      params: {
+        collectionId: collection.id,
+        fragmentId: fragment.id,
+      },
+    })
+
+    expect(res.statusCode).toBe(200)
+    const data = JSON.parse(res._getData())
+    expect(data.role).toEqual(body.role)
+  })
+
+  it('should return an error when resending an invitation to reviewer and the params are missing.', async () => {
+    const { editorInChief, reviewer } = testFixtures.users
+    const { collection } = testFixtures.collections
+    const { fragment } = testFixtures.fragments
+
+    const body = {
+      email: reviewer.email,
+    }
+
+    const res = await requests.sendRequest({
+      body,
+      userId: editorInChief.id,
+      route,
+      models,
+      path,
+      params: {
+        collectionId: collection.id,
+        fragmentId: fragment.id,
+      },
+    })
+
+    expect(res.statusCode).toBe(400)
+    const data = JSON.parse(res._getData())
+    expect(data.error).toEqual('Missing parameters.')
+  })
+
   it('should return an error when inviting his self', async () => {
     const { editorInChief } = testFixtures.users
     body.email = editorInChief.email