---
title: "Complete DG correction"
url: "https://docs.signnow.com/docs/document-group/operations/put-v2-document-groups-document-group-id-invite-document-group-invite-id-correction"
type: "endpoint"
section: "document-group"
slug: "document-group/operations/put-v2-document-groups-document-group-id-invite-document-group-invite-id-correction"
method: "PUT"
path: "/v2/document-groups/{dg_id}/invite/{dg_invite_id}"
operation_id: "put-v2-document-groups-document-group-id-invite-document-group-invite-id-correction"
authorization: "bearer"
---

# Complete DG correction

`PUT /v2/document-groups/{dg_id}/invite/{dg_invite_id}`

This endpoint allows API users to complete a document group correction and apply the new signers, documents, and invite settings. With this endpoint, you can:

* Change the signers and viewers of the document group
* Update the invite settings
* Reorder and remove documents that were not signed yet
* Add new documents to the document group

Before completing the correction, [initiate](/docs/document-group/operations/post-v2-document-groups-document-group-id-invite-document-group-invite-id-correction) it.

**Partially signed invites**

A recipient counts as having signed once they complete their signing action or fill in at least one field on any document in the group. The document does not need to be fully completed.

When some recipients have already signed:

* Add new signers and viewers to the last step that was at least partially signed, or to any later step. Earlier steps are locked.
* A recipient who already signed a document in the last signed step can be added to that step as a viewer of another document.
* The role of a recipient who already signed keeps its email address.

Steps that were cancelled when the correction started are recreated when you complete it:

* If the last signed step is complete, the next step's invites are sent right away. Adding only viewers to the completed step does not change this.
* If you add a signer to the last completed step, the step returns to pending. The next step's invites are sent once the new signer finishes.

*For example*, an invite has three steps, and steps 1 and 2 are signed. You can add new signers to steps 2 and 3. If you add a signer to step 2, step 3's invites are sent after that signer completes step 2.

## Authorization

bearer

## Path Parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `dg_id` | string | Yes | ID of the document group. |
| `dg_invite_id` | string | Yes | ID of the document group invite. |

## Request Body

**Schema**

```json
{
  "type": "object",
  "required": [
    "invites",
    "client_timestamp"
  ],
  "properties": {
    "cc": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "An email address that should be in copy of the invite."
          }
        }
      },
      "description": "An array of email addresses that should be in copy of the invite email."
    },
    "invites": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "order",
          "signers"
        ],
        "properties": {
          "order": {
            "type": "integer",
            "maximum": 100,
            "minimum": 1,
            "description": "An order of a signing step: <br> 1 - the recipient(s) sign the document group first, then the document group is sent to 2 and so on."
          },
          "signers": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "email",
                "documents"
              ],
              "properties": {
                "email": {
                  "type": "string",
                  "description": "Recipient's email address."
                },
                "message": {
                  "type": "string",
                  "maxLength": 4998,
                  "description": "Custom email message for the recipient."
                },
                "subject": {
                  "type": "string",
                  "maxLength": 1000,
                  "description": "Custom email subject for the recipient."
                },
                "reassign": {
                  "type": "boolean",
                  "description": "Whether or not to allow recipients to reassign this invite to another email address. Cannot be used along with authentication."
                },
                "reminder": {
                  "type": "object",
                  "properties": {
                    "remind_after": {
                      "type": "integer",
                      "description": "In how many days after sending an invite to send a reminder."
                    },
                    "remind_before": {
                      "type": "integer",
                      "description": "In how many days before expiration to send a reminder."
                    },
                    "remind_repeat": {
                      "type": "integer",
                      "description": "In how many dates after reminder email to send another reminder."
                    }
                  },
                  "description": "When to send a reminder email to the recipient."
                },
                "documents": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "required": [
                      "id",
                      "role",
                      "action"
                    ],
                    "properties": {
                      "id": {
                        "type": "string",
                        "description": "ID of the document on which actions are required from this recipient."
                      },
                      "role": {
                        "type": "string",
                        "maxLength": 255,
                        "description": "Recipient's role associated with one or more fields. Can be found in the response to the [Get document](/docs/document/operations/get-document) request."
                      },
                      "action": {
                        "type": "string",
                        "description": "What kind of action is required. Possible values `sign`,`view`, `approve`."
                      }
                    }
                  },
                  "description": "An array of objects with documents that require action from the recipient."
                },
                "redirect_uri": {
                  "type": "string",
                  "example": "https://www.signnow.com/",
                  "description": "When all the requested fields are completed and signed, the signer is redirected to this URI."
                },
                "authentication": {
                  "type": "object",
                  "properties": {
                    "type": {
                      "type": "string",
                      "description": "Authentication type. Possible values: `password` or `phone`."
                    },
                    "phone": {
                      "type": "string",
                      "description": "Required if `type=phone`. User's phone number."
                    },
                    "method": {
                      "type": "string",
                      "description": "Required if `type=phone`. Possible values: `phone_call` or `sms`."
                    },
                    "password": {
                      "type": "string",
                      "description": "Required if `type=password`. The password for user authentication."
                    },
                    "sms_message": {
                      "type": "string",
                      "maxLength": 140,
                      "description": "Use if `method=sms`. A custom SMS message.",
                      "x-stoplight": {
                        "id": "svya3n7ep65r3"
                      }
                    }
                  },
                  "description": "Object that contains the type of signer's identity verification: with password, phone call, or SMS."
                },
                "expiration_days": {
                  "type": "integer",
                  "maximum": 180,
                  "minimum": 3,
                  "description": "In how many days the invite expires."
                },
                "redirect_target": {
                  "type": "string",
                  "example": "blank",
                  "description": "Determines whether to open the redirect link in the new tab in the browser, or in the same tab after the signing session. Possible values: `blank` - opens the link in the new tab, `self` - opens the link in the same tab.",
                  "x-stoplight": {
                    "id": "rx8g2k63dadna"
                  }
                },
                "close_redirect_uri": {
                  "type": "string",
                  "example": "https://www.signnow.com/",
                  "description": "The link that opens when a recipient clicks\u00a0**Save Progress and Finish Later**\u00a0during a signing session or\u00a0**Close**\u00a0in view mode."
                },
                "decline_by_signature": {
                  "type": "boolean",
                  "description": "Whether or not to allow recipients to decline the invite."
                },
                "decline_redirect_uri": {
                  "type": "string",
                  "example": "https://www.signnow.com/",
                  "description": "After declining the invite, the signer is redirected to this URI."
                },
                "is_close_redirect_canceled": {
                  "type": "boolean",
                  "default": false,
                  "description": "Specifies whether the save progress redirect setting is canceled for the organization.`true`\u00a0\u2013 the redirect is canceled;`false`\u00a0\u2013 the redirect remains active.",
                  "x-stoplight": {
                    "id": "lkvpjp7wi7ujh"
                  }
                },
                "is_finish_redirect_canceled": {
                  "type": "boolean",
                  "default": false,
                  "description": "Specifies whether the completion redirect setting is canceled for the organization.`true`\u00a0\u2013 the redirect is canceled;`false`\u00a0\u2013 the  redirect remains active.",
                  "x-stoplight": {
                    "id": "lkvpjp7wi7ujh"
                  }
                },
                "is_decline_redirect_canceled": {
                  "type": "boolean",
                  "default": false,
                  "description": "Specifies whether the decline redirect setting is canceled for the organization.`true`\u00a0\u2013 the redirect is canceled;`false`\u00a0\u2013 the redirect remains active.",
                  "x-stoplight": {
                    "id": "lkvpjp7wi7ujh"
                  }
                }
              }
            }
          }
        }
      },
      "description": "An array of objects with signing steps. Each step consists of an order number and a signers array with signers' email addresses and settings."
    },
    "order_type": {
      "enum": [
        "at_the_same_time",
        "recipient_order",
        "advanced_order",
        null
      ],
      "type": "string",
      "x-nullable": true,
      "description": "Recipient routing rule applied to all recipients in the invite. `at_the_same_time` - all at once; `recipient_order` - sequential by `order` parameter; `advanced_order` - advanced rules."
    },
    "mail_provider": {
      "type": "string",
      "description": "Defines the `from` field of the invite to sign email and other emails that are connected to the invite (cc, reminder, forward, reassign, and cancel). Possible values: \u2018default\u2019 or an email address. To use an email address, first, you must connect it to the SignNow account at the UI. If set to \u2018default\u2019, the default email address that had been set up is used. "
    },
    "client_timestamp": {
      "type": "integer",
      "description": "The timestamp of when the correction was completed.",
      "x-stoplight": {
        "id": "u4aeoi8st69oo"
      }
    },
    "general_reminder": {
      "type": "object",
      "properties": {
        "remind_after": {
          "type": "integer",
          "description": "Days after invite is sent before a reminder is delivered. Must be less than `general_expiration_days`."
        },
        "remind_before": {
          "type": "integer",
          "description": "Days before expiration when a reminder is delivered. Must be less than `general_expiration_days`."
        },
        "remind_repeat": {
          "type": "integer",
          "description": "Days between repeated reminders."
        }
      },
      "x-nullable": true,
      "description": "Default `reminder` applied to all recipients in the invite."
    },
    "completion_emails": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "Email address of the completion email recipient."
          },
          "disabled": {
            "type": "boolean",
            "description": "Whether to send completion emails."
          },
          "disable_document_attachment": {
            "type": "boolean",
            "description": "Whether to send document attachments with the completion email."
          }
        }
      },
      "description": "An array of objects that contain email addresses and custom settings for sending emails about completing the invite."
    },
    "general_expiration_days": {
      "type": "integer",
      "maximum": 180,
      "minimum": 1,
      "x-nullable": true,
      "description": "Default `expiration_days` applied to all recipients in the invite. Min: `1`, Max: `180`. Default: `30`."
    },
    "general_expiration_time": {
      "type": "integer",
      "x-nullable": true,
      "description": "Default expiration timestamp (Unix time, seconds) applied to all recipients in the invite."
    }
  },
  "x-examples": {
    "Example 1": {
      "cc": [
        {
          "email": "{{cc}}"
        }
      ],
      "invites": [
        {
          "order": 1,
          "signers": [
            {
              "email": "{{signer1}}",
              "message": "message",
              "subject": "subject",
              "reassign": true,
              "reminder": {
                "remind_after": 2,
                "remind_before": 3,
                "remind_repeat": 5
              },
              "documents": [
                {
                  "id": "{{document_id_01}}",
                  "role": "Signer 1",
                  "action": "sign"
                }
              ],
              "redirect_uri": "https://redirect.com",
              "authentication": {
                "type": "phone",
                "phone": "+12345",
                "method": "sms"
              },
              "expiration_days": 30,
              "close_redirect_uri": "https://close.com",
              "decline_by_signature": true,
              "decline_redirect_uri": "https://decline.com"
            }
          ]
        },
        {
          "order": 2,
          "signers": [
            {
              "email": "{{signer2}}",
              "documents": [
                {
                  "id": "{{document_id_02}}",
                  "role": "Signer 1",
                  "action": "sign"
                }
              ],
              "authentication": {
                "type": "password",
                "password": "12345"
              }
            },
            {
              "email": "{{signer1}}",
              "documents": [
                {
                  "id": "{{document_id_02}}",
                  "role": "Viewer",
                  "action": "view"
                }
              ]
            }
          ]
        }
      ],
      "order_type": "recipient_order",
      "mail_provider": "default",
      "general_reminder": {
        "remind_after": 3,
        "remind_before": 5,
        "remind_repeat": 7
      },
      "completion_emails": [
        {
          "email": "{{completion_email}}",
          "disabled": false,
          "disable_document_attachment": true
        }
      ],
      "general_expiration_days": 30
    }
  }
}
```

**Example** (`Example 1`)

```json
{
  "cc": [
    {
      "email": "cc@email.com"
    }
  ],
  "invites": [
    {
      "order": 1,
      "signers": [
        {
          "email": "signer1@email.com",
          "message": "Custom message",
          "subject": "Custom subject",
          "reassign": true,
          "reminder": {
            "remind_after": 2,
            "remind_before": 3,
            "remind_repeat": 5
          },
          "documents": [
            {
              "id": "2274bf62786844e981584543275cdc0c88d67d45",
              "role": "Recipient",
              "action": "sign"
            }
          ],
          "redirect_uri": "https://redirect.com",
          "expiration_days": 30,
          "close_redirect_uri": "https://close.com",
          "decline_by_signature": true,
          "decline_redirect_uri": "https://decline.com"
        }
      ]
    },
    {
      "order": 2,
      "signers": [
        {
          "email": "signer2@email.com",
          "message": "Custom message",
          "subject": "Custom subject",
          "reminder": {
            "remind_after": 2,
            "remind_before": 3,
            "remind_repeat": 5
          },
          "documents": [
            {
              "id": "d2d3c991cf574ef18e99c745e41bffa0985855e0",
              "role": "Recipient",
              "action": "sign"
            }
          ],
          "redirect_uri": "https://redirect.com",
          "authentication": {
            "type": "password",
            "password": "P@$$Word#123"
          },
          "expiration_days": 30,
          "close_redirect_uri": "https://close.com",
          "decline_by_signature": true,
          "decline_redirect_uri": "https://decline.com"
        }
      ]
    }
  ],
  "order_type": "recipient_order",
  "mail_provider": "j.doe@email.com",
  "client_timestamp": "1720428823",
  "general_reminder": {
    "remind_after": 3,
    "remind_before": 5,
    "remind_repeat": 7
  },
  "completion_emails": [
    {
      "email": "j.doe@email.com",
      "disabled": false,
      "disable_document_attachment": true
    }
  ],
  "general_expiration_days": 30
}
```

## Responses

### 204

Success, no content

### 400

* Document group is not in correction state.
* All documents should be in the document group.
* Role `role` does not exist.
* Role `role` must be used in the invite.
* Authentication is required for this organization.
* Field `phone` is not a phone number.
* Email subject must not be empty or default.
* Phone authentication can't be used for user with trial or no subscription.
* At least one document must contain fields.
* Reassign is not allowed for viewers.
* Authentication is not allowed for viewers.
* Invite is not pending.
* This user doesn't have an active mail provider.
* Currency is not supported.
* A short link invite is not in the first step (`order: 1`).
* A short link invite contains an email address.
* `is_short_link_invite` is not a boolean.
* A signer has already completed a document on the last completed step and cannot be added as a signer of another document on this step.
* A step is not the last completed step and cannot be edited.
* The recipient with this role has already completed a document and cannot be edited.
* `invites` is not an array.
* `invites` value is not an array.
* `cc` is not an array.
* `cc` value is not an array.
* `completion_emails` is not an array.
* `completion_emails` value is not an array.
* `order` is not an integer.
* `signers` is not an array.
* `signers` value is not an array.
* `signers.email` is not a string.
* `documents` is not an array.
* `documents` value is not an array.
* `message` is not a string.
* `subject` is not a string.
* `expiration_days` is not an integer.
* `decline_by_signature` is not a boolean.
* `reassign` is not a boolean.
* `documents.id` is not a string.
* `documents.role` is not a string.
* `authentication.type` is not a string.
* `authentication.phone` is not a string.
* `authentication.method` is not a string.
* `authentication.sms_message` is not a string.
* `authentication.password` is not a string.
* `cc.email` is not a string.
* `completion_emails.email` is not a string.
* `completion_emails.disabled` is not a boolean.
* `completion_emails.disable_document_attachment` is not a boolean.
* `authentication` is not an object.
* `reminder` is not an object.
* `redirect_uri` is not a string.
* `decline_redirect_uri` is not a string.
* `close_redirect_uri` is not a string.
* `mail_provider` is not a string.

**Example** (`cc not array`)

```json
{
  "errors": [
    {
      "code": 19067004,
      "message": "Field `cc` should be of type array."
    }
  ]
}
```

**Example** (`invites not array`)

```json
{
  "errors": [
    {
      "code": 19067002,
      "message": "Field `invites` should be of type array."
    }
  ]
}
```

**Example** (`order not integer`)

```json
{
  "errors": [
    {
      "code": 19067009,
      "message": "Field `order` in `invites` should be of type integer."
    }
  ]
}
```

**Example** (`signers not array`)

```json
{
  "errors": [
    {
      "code": 19067012,
      "message": "Field `signers` in `invites` should be of type array."
    }
  ]
}
```

**Example** (`Invite not pending`)

```json
{
  "errors": [
    {
      "code": 19068012,
      "message": "Invite should be pending"
    }
  ]
}
```

**Example** (`Role doesn't exist`)

```json
{
  "errors": [
    {
      "code": 19068003,
      "message": "Role `role` does not exist."
    }
  ]
}
```

**Example** (`cc value not array`)

```json
{
  "errors": [
    {
      "code": 19067005,
      "message": "Each element of array `cc` should be of type array."
    }
  ]
}
```

**Example** (`message not string`)

```json
{
  "errors": [
    {
      "code": 19067024,
      "message": "Field `message` in `invites.signers` should be of type string."
    }
  ]
}
```

**Example** (`subject not string`)

```json
{
  "errors": [
    {
      "code": 19067028,
      "message": "Field `subject` in `invites.signers` should be of type string."
    }
  ]
}
```

**Example** (`Subscription needed`)

```json
{
  "errors": [
    {
      "code": 19068008,
      "message": "Phone authentication can't be used for user with trial or no subscription."
    }
  ]
}
```

**Example** (`cc.email not string`)

```json
{
  "errors": [
    {
      "code": 19067063,
      "message": "Field `email` in `cc` should be of type string."
    }
  ]
}
```

**Example** (`documents not array`)

```json
{
  "errors": [
    {
      "code": 19067022,
      "message": "Field `documents` in `invites.signers` should be of type array."
    }
  ]
}
```

**Example** (`reminder not object`)

```json
{
  "errors": [
    {
      "code": 19067075,
      "message": "Field `reminder` in `invites.signers` should be of type object."
    }
  ]
}
```

**Example** (`DG not in correction`)

```json
{
  "errors": [
    {
      "code": 19068001,
      "message": "Document Group should be in correction state."
    }
  ]
}
```

**Example** (`reassign not boolean`)

```json
{
  "errors": [
    {
      "code": 19067037,
      "message": "Field `reassign` in `invites.signers` should be of type bool."
    }
  ]
}
```

**Example** (`Missing email subject`)

```json
{
  "errors": [
    {
      "code": 19068007,
      "message": "Cannot use empty or default email subject."
    }
  ]
}
```

**Example** (`Step cannot be edited`)

```json
{
  "errors": [
    {
      "code": 19068014,
      "message": "You could not add new invites to step that signed and it is not last step with signing. Step: 1. Email: signer@example.com. Doc Id: 2274bf62786844e981584543275cdc0c88d67d45"
    }
  ]
}
```

**Example** (`Currency not supported`)

```json
{
  "errors": [
    {
      "code": 19068017,
      "message": "Currency not supported"
    }
  ]
}
```

**Example** (`Existing role not used`)

```json
{
  "errors": [
    {
      "code": 19068004,
      "message": "Role `role` is not specified."
    }
  ]
}
```

**Example** (`Incorrect phone number`)

```json
{
  "errors": [
    {
      "code": 19068006,
      "message": "Field `phone` is not valid phone number."
    }
  ]
}
```

**Example** (`Authentication required`)

```json
{
  "errors": [
    {
      "code": 19068005,
      "message": "Authentication is required for this organization."
    }
  ]
}
```

**Example** (`No active mail provider`)

```json
{
  "errors": [
    {
      "code": 19068016,
      "message": "The active mail provider does not exist for current user."
    }
  ]
}
```

**Example** (`Viewers cannot reassign`)

```json
{
  "errors": [
    {
      "code": 19068010,
      "message": "Reassign is not allowed for viewers."
    }
  ]
}
```

**Example** (`documents.id not string`)

```json
{
  "errors": [
    {
      "code": 19067039,
      "message": "Field `id` in `invites.signers.documents` should be of type string."
    }
  ]
}
```

**Example** (`invites value not array`)

```json
{
  "errors": [
    {
      "code": 19067003,
      "message": "Each element of array `invites` should be of type array."
    }
  ]
}
```

**Example** (`redirect_uri not string`)

```json
{
  "errors": [
    {
      "code": 19067082,
      "message": "Field `redirect_uri` in `invites.signers` should be of type string."
    }
  ]
}
```

**Example** (`signers value not array`)

```json
{
  "errors": [
    {
      "code": 19067013,
      "message": "Each element of array `signers` in `invites` should be of type array."
    }
  ]
}
```

**Example** (`mail_provider not string`)

```json
{
  "errors": [
    {
      "code": 19067088,
      "message": "The `mail_provider` field must be a string."
    }
  ]
}
```

**Example** (`signers.email not string`)

```json
{
  "errors": [
    {
      "code": 19067018,
      "message": "Field `email` in `invites.signers` should be of type string."
    }
  ]
}
```

**Example** (`authentication not object`)

```json
{
  "errors": [
    {
      "code": 19067074,
      "message": "Field `authentication` in `invites.signers` should be of type object."
    }
  ]
}
```

**Example** (`documents value not array`)

```json
{
  "errors": [
    {
      "code": 19067023,
      "message": "Each element of array `documents` in `invites.signers` should be of type array."
    }
  ]
}
```

**Example** (`documents.role not string`)

```json
{
  "errors": [
    {
      "code": 19067042,
      "message": "Field `role` in `invites.signers.documents` should be of type string."
    }
  ]
}
```

**Example** (`No fields on the documents`)

```json
{
  "errors": [
    {
      "code": 19068009,
      "message": "At least one document must contain fields."
    }
  ]
}
```

**Example** (`Recipient cannot be edited`)

```json
{
  "errors": [
    {
      "code": 19068015,
      "message": "Wrong signer's email who has already signed"
    }
  ]
}
```

**Example** (`completion_emails not array`)

```json
{
  "errors": [
    {
      "code": 19067006,
      "message": "Field `completion_emails` should be of type array."
    }
  ]
}
```

**Example** (`expiration_days not integer`)

```json
{
  "errors": [
    {
      "code": 19067033,
      "message": "Field `expiration_days` in `invites.signers` should be of type integer."
    }
  ]
}
```

**Example** (`No authentication for viewers`)

```json
{
  "errors": [
    {
      "code": 19068011,
      "message": "Authentication is not allowed for viewers."
    }
  ]
}
```

**Example** (`Signer action cannot be added`)

```json
{
  "errors": [
    {
      "code": 19068013,
      "message": "You could not add new signer action to signed signers in last signed step. Step: 2. Email: signer@example.com. Doc Id: 2274bf62786844e981584543275cdc0c88d67d45"
    }
  ]
}
```

**Example** (`close_redirect_uri not string`)

```json
{
  "errors": [
    {
      "code": 19067096,
      "message": "The close_redirect_uri field in invites.signers must be a string."
    }
  ]
}
```

**Example** (`Document not in document group`)

```json
{
  "errors": [
    {
      "code": 19068002,
      "message": "All documents should be part of the document group."
    }
  ]
}
```

**Example** (`authentication.type not string`)

```json
{
  "errors": [
    {
      "code": 19067048,
      "message": "Field `type` in `invites.signers.authentication` should be of type string."
    }
  ]
}
```

**Example** (`authentication.phone not string`)

```json
{
  "errors": [
    {
      "code": 19067050,
      "message": "Field `phone` in `invites.signers.authentication` should be of type string."
    }
  ]
}
```

**Example** (`decline_redirect_uri not string`)

```json
{
  "errors": [
    {
      "code": 19067091,
      "message": "The decline_redirect_uri field in invites.signers must be a string."
    }
  ]
}
```

**Example** (`authentication.method not string`)

```json
{
  "errors": [
    {
      "code": 19067053,
      "message": "Field `method` in `invites.signers.authentication` should be of type string."
    }
  ]
}
```

**Example** (`decline_by_signature not boolean`)

```json
{
  "errors": [
    {
      "code": 19067036,
      "message": "Field `decline_by_signature` in `invites.signers` should be of type bool."
    }
  ]
}
```

**Example** (`is_short_link_invite not boolean`)

```json
{
  "errors": [
    {
      "code": 19067107,
      "message": "The `is_short_link_invite` field must be true or false."
    }
  ]
}
```

**Example** (`completion_emails value not array`)

```json
{
  "errors": [
    {
      "code": 19067007,
      "message": "Each element of array `completion_emails` should be of type array."
    }
  ]
}
```

**Example** (`authentication.password not string`)

```json
{
  "errors": [
    {
      "code": 19067060,
      "message": "Field `password` in `invites.signers.authentication` should be of type string."
    }
  ]
}
```

**Example** (`completion_emails.email not string`)

```json
{
  "errors": [
    {
      "code": 19067067,
      "message": "Field `email` in `completion_emails` should be of type string."
    }
  ]
}
```

**Example** (`Short link invite not in first step`)

```json
{
  "errors": [
    {
      "code": 19067105,
      "message": "Only default ordering is allowed with short link invites."
    }
  ]
}
```

**Example** (`authentication.sms_message not string`)

```json
{
  "errors": [
    {
      "code": 19067056,
      "message": "Field `sms_message` in `invites.signers.authentication` should be of type string."
    }
  ]
}
```

**Example** (`completion_emails.disabled not boolean`)

```json
{
  "errors": [
    {
      "code": 19067070,
      "message": "Field `disabled` in `completion_emails` should be of type bool."
    }
  ]
}
```

**Example** (`disable_document_attachment not boolean`)

```json
{
  "errors": [
    {
      "code": 19067071,
      "message": "Field `disable_document_attachment` in `completion_emails` should be of type bool."
    }
  ]
}
```

**Example** (`Email not allowed for short link invites`)

```json
{
  "errors": [
    {
      "code": 19067106,
      "message": "Short link invite cannot contain email field."
    }
  ]
}
```

### 403

User is not a document group owner

**Example** (`Example 1`)

```json
{
  "errors": [
    {
      "code": 19001010,
      "message": "Current user is not document group owner."
    }
  ]
}
```

### 404

* Document group is not found.
* Document group invite is not found.

**Example** (`Example 1`)

```json
{
  "errors": [
    {
      "code": 19001011,
      "message": "Document group `unique_id` not found."
    }
  ]
}
```

**Example** (`Invite not found`)

```json
{
  "errors": [
    {
      "code": 19002005,
      "message": "Document group invite `a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0` not found."
    }
  ]
}
```

## Code Examples

> Replace `$SIGNNOW_ACCESS_TOKEN` and any `{placeholder}` values before running.

### cURL

```bash
curl -X PUT \
  "https://api.signnow.com/v2/document-groups/{dg_id}/invite/{dg_invite_id}" \
  -H "Authorization: Bearer $SIGNNOW_ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"cc": [{"email": "cc@email.com"}], "invites": [{"order": 1, "signers": [{"email": "signer1@email.com", "message": "Custom message", "subject": "Custom subject", "reassign": true, "reminder": {"remind_after": 2, "remind_before": 3, "remind_repeat": 5}, "documents": [{"id": "2274bf62786844e981584543275cdc0c88d67d45", "role": "Recipient", "action": "sign"}], "redirect_uri": "https://redirect.com", "expiration_days": 30, "close_redirect_uri": "https://close.com", "decline_by_signature": true, "decline_redirect_uri": "https://decline.com"}]}, {"order": 2, "signers": [{"email": "signer2@email.com", "message": "Custom message", "subject": "Custom subject", "reminder": {"remind_after": 2, "remind_before": 3, "remind_repeat": 5}, "documents": [{"id": "d2d3c991cf574ef18e99c745e41bffa0985855e0", "role": "Recipient", "action": "sign"}], "redirect_uri": "https://redirect.com", "authentication": {"type": "password", "password": "P@$$Word#123"}, "expiration_days": 30, "close_redirect_uri": "https://close.com", "decline_by_signature": true, "decline_redirect_uri": "https://decline.com"}]}], "order_type": "recipient_order", "mail_provider": "j.doe@email.com", "client_timestamp": "1720428823", "general_reminder": {"remind_after": 3, "remind_before": 5, "remind_repeat": 7}, "completion_emails": [{"email": "j.doe@email.com", "disabled": false, "disable_document_attachment": true}], "general_expiration_days": 30}'
```

---
*Full reference: https://docs.signnow.com/docs/document-group/operations/put-v2-document-groups-document-group-id-invite-document-group-invite-id-correction*
