---
title: "Complete DG correction"
method: PUT
path: "/v2/document-groups/{dg_id}/invite/{dg_invite_id}"
---

# Complete DG correction

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

## Request

- Base URL: `https://api.signnow.com`
- URL: `https://api.signnow.com/v2/document-groups/{dg_id}/invite/{dg_invite_id}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/signnow/apis/signnow-api/docs/v2/document-groups/:dg_id/invite/:dg_invite_id/put.ts> (a function with typed inputs; its response is checked against the schema)

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.

**Short-link signers**

To give a signer a link instead of an email invite, set `is_short_link_invite` to `true` and omit `email`. Add short-link signers to the first step (`order: 1`). A step can include several of them.

* The endpoint returns `204` with no body. Get each signer's link from `short_link_url` in [Get document group info (v.2)](/docs/document-group/operations/get-document-group-info-v2). In that response, `signer_email` shows the guest address generated for the signer, such as `guest_signer_123456789012@no.reply`.
* Every completed correction generates a new link for each short-link signer. Share the link from the latest response.
* Short-link signers support `authentication` and `expiration_days`.

Short links can also be created with [Create/edit signing link for doc group](/docs/signing-link/operations/post-v2-document-group-document-group-id-signing-links) and [Update doc group invite](/docs/doc-group-field-invite/operations/update-document-group-invite).

## Request body

- object
  - `cc` object[]: An array of email addresses that should be in copy of the invite email.
    - `email` string: An email address that should be in copy of the invite.
  - `invites` object[], required: 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` integer, required: 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` object[], required
      - `email` string: Recipient's email address. Required unless `is_short_link_invite` is `true`.
      - `message` string: Custom email message for the recipient.
      - `subject` string: Custom email subject for the recipient.
      - `reassign` boolean: Whether or not to allow recipients to reassign this invite to another email address. Cannot be used along with authentication.
      - `reminder` object: When to send a reminder email to the recipient.
        - `remind_after` integer: In how many days after sending an invite to send a reminder.
        - `remind_before` integer: In how many days before expiration to send a reminder.
        - `remind_repeat` integer: In how many dates after reminder email to send another reminder.
      - `documents` object[], required: An array of objects with documents that require action from the recipient.
        - `id` string, required: ID of the document on which actions are required from this recipient.
        - `role` string, required: 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` string, required: What kind of action is required. Possible values `sign`,`view`, `approve`.
      - `redirect_uri` string: When all the requested fields are completed and signed, the signer is redirected to this URI.
      - `authentication` object: Object that contains the type of signer's identity verification: with password, phone call, SMS, or SSO login.
        - `type` string: Authentication type. Possible values: `password`, `phone`, or `sso_login`. `phone` is available on paid plans; on a free trial or without a paid subscription, use `password`. `sso_login` requires an active SSO configuration for the organization.
        - `phone` string: Required if `type=phone`. User's phone number.
        - `method` string: Required if `type=phone`. Possible values: `phone_call` or `sms`.
        - `password` string: Required if `type=password`. The password for user authentication.
        - `sms_message` string: Use if `method=sms`. A custom SMS message.
      - `expiration_days` integer: In how many days the invite expires.
      - `redirect_target` string: 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.
      - `close_redirect_uri` string: The link that opens when a recipient clicks **Save Progress and Finish Later** during a signing session or **Close** in view mode.
      - `decline_by_signature` boolean: Whether or not to allow recipients to decline the invite.
      - `decline_redirect_uri` string: After declining the invite, the signer is redirected to this URI.
      - `is_short_link_invite` boolean: Set to `true` to invite the signer by a short link instead of email. Allowed in the first step (`order: 1`) only; omit `email`. After the correction is completed, the link is available in `short_link_url` of [Get document group info (v.2)](/docs/document-group/operations/get-document-group-info-v2).
      - `is_close_redirect_canceled` boolean: Specifies whether the save progress redirect setting is canceled for the organization.`true` – the redirect is canceled;`false` – the redirect remains active.
      - `is_finish_redirect_canceled` boolean: Specifies whether the completion redirect setting is canceled for the organization.`true` – the redirect is canceled;`false` – the redirect remains active.
      - `is_decline_redirect_canceled` boolean: Specifies whether the decline redirect setting is canceled for the organization.`true` – the redirect is canceled;`false` – the redirect remains active.
  - `order_type` string: 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` string: 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: ‘default’ or an email address. To use an email address, first, you must connect it to the SignNow account at the UI. If set to ‘default’, the default email address that had been set up is used.
  - `client_timestamp` integer, required: The timestamp of when the correction was completed.
  - `general_reminder` object: Default `reminder` applied to all recipients in the invite.
    - `remind_after` integer: Days after invite is sent before a reminder is delivered. Must be less than `general_expiration_days`.
    - `remind_before` integer: Days before expiration when a reminder is delivered. Must be less than `general_expiration_days`.
    - `remind_repeat` integer: Days between repeated reminders.
  - `completion_emails` object[]: An array of objects that contain email addresses and custom settings for sending emails about completing the invite.
    - `email` string: Email address of the completion email recipient.
    - `disabled` boolean: Whether to send completion emails.
    - `disable_document_attachment` boolean: Whether to send document attachments with the completion email.
  - `general_expiration_days` integer: Default `expiration_days` applied to all recipients in the invite. Min: `1`, Max: `180`. Default: `30`.
  - `general_expiration_time` integer: Default expiration timestamp (Unix time, seconds) applied to all recipients in the invite.

## Response `204`

Success, no content

- object

## Other responses

- `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 on a free trial or without a paid 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. * `email` is missing for a signer without a short link. * `sso_login` authentication is used, but the organization has no active SSO configuration. * 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.
- `403`: User is not a document group owner.
- `404`: * Document group is not found. * Document group invite is not found.

---

[API](https://skmtc.dev/signnow/apis/signnow-api.md) - [All operations](https://skmtc.dev/signnow/apis/signnow-api/llms.txt) - [OpenAPI document](https://skmtc.dev/signnow/apis/signnow-api/revisions/1c9c30a6142b?raw)
