> You are reading the Docusign Developer Documentation. For clean Markdown of any page, append .md to the page URL.
>
> Documentation indexes by section:
> - APIs and SDKs: https://docusign.docs.buildwithfern.com/docs/llms.txt
> - Platform 101: https://docusign.docs.buildwithfern.com/platform/llms.txt
> - Extension Apps: https://docusign.docs.buildwithfern.com/extension-apps/llms.txt
> - Docusign CLI: https://docusign.docs.buildwithfern.com/docusign-cli/llms.txt
>
> Authentication (OAuth, JWT Grant, M2M): https://docusign.docs.buildwithfern.com/platform/auth
> Webhooks and Connect: https://docusign.docs.buildwithfern.com/platform/webhooks
>
> OpenAPI specifications: https://docusign.docs.buildwithfern.com/openapi.json
> MCP server: https://docusign.docs.buildwithfern.com/_mcp/server

# Get URL to envelope correction UI

POST https://demo.docusign.net/restapi/v2.1/accounts/{accountId}/envelopes/{envelopeId}/views/correct
Content-Type: application/json

Returns a URL that enables you to embed the envelope sender view of the Docusign UI. You can customize the appearance of the view via the settings request attribute. You can embed the view in an iframe.

**API request update**

The request object for this API method was updated in June 2024. The new API request format is described below. Existing applications must update to the new version; it solves a security issue with the old version. The deprecation schedule has been announced in the [Docusign Core Release Notes](https://support.docusign.com/s/document-item?language=en_US\&bundleId=adp1720620778794_24-2-02-00-demo\&topicId=wcz1616195757589.html&_LANG=enus). While backwards compatibility will be provided for a while for existing applications, all applications must be updated to be secure. See below for migration information.

**Best practices**

The returned URL expires after 10 minutes. Therefore, request the URL immediately before you redirect your user to it.

Due to screen space issues, do not use an iframe for embedded operations on mobile devices. For mobile applications, use a [WebView](https://developer.android.com/reference/android/webkit/WebView) (Android) or [WKWebView](https://developer.apple.com/documentation/webkit/wkwebview) (iOS).

## Customizing the user experience

By default, the view includes two pages: the **Prepare** and **Tagger** pages. The settings object is used to control the user experience. For example, to limit the user to the **Tagger** page, and not allow the user to change the recipient information:

* `"startingScreen": "Tagger"`
* `"showBackButton": "false"`
* `"showEditRecipients": "false"`

Use the [Embedded Views Test Too](https://docusign.github.io/app-examples/embedded-views-v2/) to try the different UX controls. Some UI settings attributes are not yet implemented.

### The envelope must be in the correct state for the Embedded View

To use the Correct View, the envelope **must** be in the `sent` or `delivered` state. Otherwise, a 400 error will be returned with an error message in the response body:

```json
{
    "errorCode": "ENVELOPE_INVALID_STATUS",
    "message": "Invalid envelope status. Correct view cannot be created for an envelope in a Created state."
}
```

### Modifying the envelope after redirection

If you set `"sendButtonAction": "redirect"` or `"backButtonAction": "redirect"`, and your app will modify the envelope before or after the view completes, you must lock the envelope before the API call and provide the lock as the lockToken attribute in the API request object.

Delete the lock token after the browser has been redirected to your application.

### Closing the view's iframe

If you choose to embed the view in your application via an iframe, Docusign recommends this software pattern to close the iframe after the view has completed:

* (One time) create a standalone return page that you will use as the `returnUrl` target for the view. The view will redirect the iframe to this URL when it has completed. Here's an [example return page](https://github.com/docusign/docusign.github.io/blob/master/jsfiddleDsResponse.html). In this page, use JavaScript and the [postMessage](https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) method to send a message to your application with the results of the view.
* In your application, use `window.addEventListener("message", function_name)` to register a listener for incoming messages.
* To show the view, use this API method, then set the iframe to load the URL from the API response.
* In your application, receive the completion message, validate it, and then close the iframe.

### Information security

This view only has write access to the specific envelope referenced in the API call. It also has read access to templates and other secondary information that a user can access to modify the envelope. The read access corresponds to the access rights of the user associated with the access token used for the API call.

>

**Recommendations:**

* Use the access token of a service user who can access the templates appropriate for your use case.
* Do not use the access token of a user with administrator privileges.

## Migrating to the current version of the request object

This section only applies to existing applications that use the older version of the request object.

Migrating from the old API request object to the new version will take under a day of developer time.

**Step 1.** Does your application set the `returnUrl` attribute?

Yes: continue with step 2.

No: In this case, your users first update the envelope, and then the Docusign eSignature home screen is shown. To accomplish this UI pattern with the new API request format:

* Set the `returnUrl` to a new endpoint for your application. You can use query parameters or session data to manage state. Remember to authenticate the incoming requests.
* When the new endpoint is called, use the [EnvelopeViews:createConsole](/docs/esign-rest-api/reference/envelopes/envelopeviews/createconsole/) API call to obtain and then display the Docusign eSignature home page to your application's user.

**Step 2.** Does your application modify the default UI of the view?

No: continue with step 3.

Yes: With the new API request object, UI controls for the view are now set when you make the API call via the `settings` attribute.

* Note the UI settings your application is currently modifying by adding and updating query parameters on the URL *returned* by the API method.

* Using the reference documentation below, create a settings object that accomplishes your UI goals. You can use the [Embedded Views Test tool](https://docusign.github.io/app-examples/embedded-views-v2/) to check your UI settings. Note that the `settings` object includes multiple objects and subobjects for various UI settings.

* **Delete the code** in your application that modifies and adds query parameters to the URL returned by the API. With the new API format, your application will not make any changes to the returned URL. Exception: If you set the view's locale specifically, that is still accomplished by appending the `locale` query parameter.

**Step 3.** Is the envelope always in the right state before you call the Embedded View?

If your software may try to create the Embedded View when the envelope is not in the right state (see above), then you must add additional checks and logic to prevent this.

**Step 4.** Check that these API attributes are set:

* `"viewAccess" = "envelope"`
* The `returnUrl` is set

**Step 5.** All done! Test your application.

Reference: https://developers.docusign.com/docs/esign-rest-api/reference/envelopes/envelopeviews/createcorrect

## Authentication

- `Authorization` header (required) (prefixed with ` Bearer  `) — OAuth 2.0 access token (JWT or auth-code grant). Sent as `Authorization: Bearer <token>` on every request except `GET /v2.1` and `GET /service_information`, which are public discovery endpoints.

## Servers

- `https://demo.docusign.net/restapi` (Demo, default)
- `https://www.docusign.net/restapi` (Production)

## Request

### Path parameters

- `accountId` (string, required) — The external account number (int) or account ID Guid.
- `envelopeId` (string, required) — The envelope's GUID. Example: `93be49ab-xxxx-xxxx-xxxx-f752070d71ec`

### Body (application/json)

This endpoint expects an envelopeViewRequest.

- `returnUrl` (string, optional) — **Required** Identifies the return point after sending the envelope. Docusign returns to the URL and includes an event parameter that can be used to redirect the recipient to another location. The possible event parameters returned are: - send (user sends the envelope) - save (user saves the envelope) - cancel (user cancels the sending transaction. No envelopeId is returned in this case.) - error (there is an error when performing the send) - sessionEnd (the sending session ends before the user completes another action).
- `settings` (envelopeViewSettings, optional)
- `viewAccess` (string, optional) — **Required** . Set to `envelope`

## Response

### 201

Successful response.

- `url` (string, optional) — URL for the template edit view.

## Errors

### 400 Bad Request Error

Error encountered.

- `errorCode` (string, optional) — The code associated with the error condition.
- `message` (string, optional) — A brief message describing the error condition.

## Types

### envelopeViewSettings

- `backButtonAction` (string, optional) — Sets the behavior of the back button when clicked. Valid values: - `previousPage`: Navigate to browser's previous page - `redirect`: Redirect to the `returnUrl` specified in the request
- `documentSettings` (envelopeViewDocumentSettings, optional)
- `envelopeCustomFieldSettings` (envelopeViewEnvelopeCustomFieldSettings, optional)
- `lockToken` (string, optional) — If your app will modify the envelope after the user finishes editing the envelope, create and use a [lock token](/docs/esign-rest-api/reference/envelopes/envelopelocks/create/) for this attribute. Remember to delete the lock token after your app has finished its envelope modifications.
- `recipientSettings` (envelopeViewRecipientSettings, optional)
- `sendButtonAction` (string, optional) — Sets the behavior of the send button when clicked. Valid values: - `send`: send the envelope and redirect with query parameter `event=Send` (default) - `redirect`: Change the Tagger page's button text to 'Continue'; when clicked, redirect to the `returnUrl` with query parameter `event=Save`. Set `showBackButton` to `false` and `startingScreen` to `Tagger`.
- `showAdvancedOptions` (string, optional) — Reserved for Docusign.
- `showBackButton` (string, optional) — Determines whether the Tagger's back button is shown. Valid values: - `true`: The back button is shown. This is the default value. - `false`: Prevents access to the Prepare screen by hiding the back button.
- `showDiscardAction` (string, optional) — When **true,** the Discard option is shown in the Actions menu. When **false,** the Discard option is not shown. The default value is **true.**
- `showHeaderActions` (string, optional) — Determines whether the Actions menu displays advanced actions. Valid values: - `true`: The Actions menu shows all options, including editing the message, recipients, documents, and advanced options. This is the default value. - `false`: The Actions menu will only show Save, Close, and Discard. To limit the user to tagging only, use this value and set `startingScreen` to `Tagger` and `showBackButton` to `false`.
- `showSignNow` (string, optional) — When `true` and the sender is the first recipient (and not using bulk send or send later), the sender will be prompted to sign immediately after sending the envelope. Otherwise, the envelope is sent without launching the signing flow for the sender from the envelope sending view.
- `startingScreen` (string, optional) — Determines the starting screen for the sender view. Valid values: - `Prepare` (default) - `Tagger`
- `taggerSettings` (envelopeViewTaggerSettings, optional)
- `templateSettings` (envelopeViewTemplateSettings, optional)

### envelopeViewDocumentSettings

- `showEditDocuments` (string, optional) — When `false,` prevents the app user from adding, replacing, or deleting documents. The default value is `true`. **Note:** An existing document in the envelope can also be deleted by deleting all of the document’s pages via the document’s thumbnail images. To prohibit this, see the `ShowEditPages` attribute.
- `showEditDocumentVisibility` (string, optional) — When `false`, prevents the user from modifying document visibility settings. The default value is `true`.
- `showEditPages` (string, optional) — When `false`, prevents the user from deleting or rotating individual document pages via the document’s thumbnail images. The default value is `true`.
- `showSaveAsDocumentCustomField` (string, optional) — Reserved for Docusign.

### envelopeViewEnvelopeCustomFieldSettings

- `showEnvelopeCustomFields` (string, optional) — Reserved for Docusign.

### envelopeViewRecipientSettings

- `showBulkSend` (string, optional) — Reserved for Docusign.
- `showContactsList` (string, optional) — When `false`, the user will not be able to use the contacts list when selecting recipients for this envelope. The default value is `true`.
- `showEditMessage` (string, optional) — Reserved for Docusign.
- `showEditRecipients` (string, optional) — When `false`, prevents the user from changing the recipients from the **Tagger** page. The default value is `true`.

### envelopeViewTaggerSettings

- `paletteDefault` (string, optional) — When `paletteSections` is set to `custom`, this property selects the default tagger palette. Valid values: - `custom` - `merge` - `notary` - `seals` - `smartContracts` - `annotations` - `smartSections`
- `paletteSections` (string, optional) — Valid values: - `default` (default): The default tagger palette UX - `none`: No tagger palette - `custom`: Set by `paletteDefault`
- `paletteSettings` (paletteSettings, optional) — Reserved for Docusign.

### envelopeViewTemplateSettings

- `showMatchingTemplatesPrompt` (string, optional) — When **true,** the auto-match template modal dialog will appear when the prepare page is loaded in the embedded sending experience. When **false,** the auto-match template modal dialog will not be shown.

### paletteSettings

Reserved for Docusign.

- `annotations` (paletteItemSettings, optional)
- `custom` (paletteItemSettings, optional)
- `merge` (paletteItemSettings, optional)
- `notary` (paletteItemSettings, optional)
- `seals` (paletteItemSettings, optional)
- `smartContracts` (paletteItemSettings, optional)
- `smartSections` (paletteItemSettings, optional)

### paletteItemSettings

- `show` (string, optional) — Reserved for Docusign.

## Examples

**Request**

```json
{
  "returnUrl": "sample string 1",
  "settings": {
    "backButtonAction": "sample string 1",
    "documentSettings": {
      "showEditDocuments": "sample string 1",
      "showEditDocumentVisibility": "sample string 2",
      "showEditPages": "sample string 3",
      "showSaveAsDocumentCustomField": "sample string 4"
    },
    "envelopeCustomFieldSettings": {
      "showEnvelopeCustomFields": "sample string 1"
    },
    "lockToken": "sample string 2",
    "recipientSettings": {
      "showBulkSend": "sample string 1",
      "showContactsList": "sample string 2",
      "showEditMessage": "sample string 3",
      "showEditRecipients": "sample string 4"
    },
    "sendButtonAction": "sample string 3",
    "showAdvancedOptions": "sample string 4",
    "showBackButton": "sample string 5",
    "showDiscardAction": "sample string 6",
    "showHeaderActions": "sample string 7",
    "showSignNow": "sample string 8",
    "startingScreen": "sample string 9",
    "taggerSettings": {
      "paletteDefault": "sample string 1",
      "paletteSections": "sample string 2"
    },
    "templateSettings": {
      "showMatchingTemplatesPrompt": "sample string 1"
    }
  },
  "viewAccess": "sample string 2"
}
```

**Response**

```json
{
  "url": "sample string 1"
}
```