> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.hellosign.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.hellosign.com/_mcp/server.

# Edit and Resend Unclaimed Draft

POST https://api.hellosign.com/v3/unclaimed_draft/edit_and_resend/{signature_request_id}
Content-Type: application/json

Creates a new signature request from an embedded request that can be edited prior to being sent to the recipients. Parameter `test_mode` can be edited prior to request. Signers can be edited in embedded editor. Requester's email address will remain unchanged if `requester_email_address` parameter is not set.

**NOTE:** Embedded unclaimed drafts can only be accessed in embedded iFrames whereas normal drafts can be used and accessed on Dropbox Sign.

Reference: https://developers.hellosign.com/api/unclaimed-draft/edit-and-resend

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: Dropbox Sign API
  version: 1.0.0
paths:
  /unclaimed_draft/edit_and_resend/{signature_request_id}:
    post:
      operationId: editAndResend
      summary: Edit and Resend Unclaimed Draft
      description: >-
        Creates a new signature request from an embedded request that can be
        edited prior to being sent to the recipients. Parameter `test_mode` can
        be edited prior to request. Signers can be edited in embedded editor.
        Requester's email address will remain unchanged if
        `requester_email_address` parameter is not set.


        **NOTE:** Embedded unclaimed drafts can only be accessed in embedded
        iFrames whereas normal drafts can be used and accessed on Dropbox Sign.
      tags:
        - unclaimedDraft
      parameters:
        - name: signature_request_id
          in: path
          description: The ID of the signature request to edit and resend.
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: >
            Your API key can be used to make calls to the Dropbox Sign API. See
            [Authentication](/api/reference/authentication) for more
            information.

            ✅ Supported by Try it console (calls sent in `test_mode`
            only).            
          required: true
          schema:
            type: string
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnclaimedDraftCreateResponse'
        '400':
          description: failed_operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UnclaimedDraftEditAndResendRequest'
servers:
  - url: https://api.hellosign.com/v3
    description: https://api.hellosign.com/v3
components:
  schemas:
    SubEditorOptions:
      type: object
      properties:
        allow_edit_signers:
          type: boolean
          default: false
          description: Allows requesters to edit the list of signers
        allow_edit_documents:
          type: boolean
          default: false
          description: Allows requesters to edit documents, including delete and add
      description: >-
        This allows the requester to specify editor options when a preparing a
        document
      title: SubEditorOptions
    UnclaimedDraftEditAndResendRequest:
      type: object
      properties:
        client_id:
          type: string
          description: >-
            Client id of the app used to create the draft. Used to apply the
            branding and callback url defined for the app.
        editor_options:
          $ref: '#/components/schemas/SubEditorOptions'
        is_for_embedded_signing:
          type: boolean
          description: >-
            The request created from this draft will also be signable in
            embedded mode if set to `true`.
        requester_email_address:
          type: string
          format: email
          description: >-
            The email address of the user that should be designated as the
            requester of this draft. If not set, original requester's email
            address will be used.
        requesting_redirect_url:
          type: string
          description: >-
            The URL you want signers redirected to after they successfully
            request a signature.
        show_progress_stepper:
          type: boolean
          default: true
          description: >-
            When only one step remains in the signature request process and this
            parameter is set to `false` then the progress stepper will be
            hidden.
        signing_redirect_url:
          type: string
          description: The URL you want signers redirected to after they successfully sign.
        test_mode:
          type: boolean
          default: false
          description: >-
            Whether this is a test, the signature request created from this
            draft will not be legally binding if set to `true`. Defaults to
            `false`.
      required:
        - client_id
      title: UnclaimedDraftEditAndResendRequest
    UnclaimedDraftResponse:
      type: object
      properties:
        signature_request_id:
          type:
            - string
            - 'null'
          description: >-
            The ID of the signature request that is represented by this
            UnclaimedDraft.
        claim_url:
          type: string
          description: The URL to be used to claim this UnclaimedDraft.
        signing_redirect_url:
          type:
            - string
            - 'null'
          description: The URL you want signers redirected to after they successfully sign.
        requesting_redirect_url:
          type:
            - string
            - 'null'
          description: >-
            The URL you want signers redirected to after they successfully
            request a signature (Will only be returned in the response if it is
            applicable to the request.).
        expires_at:
          type:
            - integer
            - 'null'
          description: When the link expires.
        test_mode:
          type: boolean
          description: >-
            Whether this is a test draft. Signature requests made from test
            drafts have no legal value.
      description: >-
        A group of documents that a user can take ownership of via the claim
        URL.
      title: UnclaimedDraftResponse
    WarningResponse:
      type: object
      properties:
        warning_msg:
          type: string
          description: Warning message
        warning_name:
          type: string
          description: Warning name
      required:
        - warning_msg
        - warning_name
      description: A list of warnings.
      title: WarningResponse
    UnclaimedDraftCreateResponse:
      type: object
      properties:
        unclaimed_draft:
          $ref: '#/components/schemas/UnclaimedDraftResponse'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/WarningResponse'
          description: A list of warnings.
      required:
        - unclaimed_draft
      title: UnclaimedDraftCreateResponse
    ErrorResponseError:
      type: object
      properties:
        error_msg:
          type: string
          description: Message describing an error.
        error_path:
          type: string
          description: Path at which an error occurred.
        error_name:
          type: string
          description: >-
            Name of the error. See the `x-error-codes` catalog in openapi file
            for a complete list of possible error codes with detailed
            information including HTTP status codes, causes, remediation steps,
            and retry guidance.
      required:
        - error_msg
        - error_name
      description: Contains information about an error that occurred.
      title: ErrorResponseError
    ErrorResponse:
      type: object
      properties:
        error:
          $ref: '#/components/schemas/ErrorResponseError'
      required:
        - error
      title: ErrorResponse
  securitySchemes:
    Basic:
      type: http
      scheme: basic
      description: >
        Your API key can be used to make calls to the Dropbox Sign API. See
        [Authentication](/api/reference/authentication) for more information.

        ✅ Supported by Try it console (calls sent in `test_mode`
        only).            
    Bearer:
      type: http
      scheme: bearer
      description: >
        You can use an Access Token issued through an OAuth flow to send calls
        to the Dropbox Sign API from your app. The access scopes required by
        this endpoint are listed in the gray box above. See
        [Authentication](/api/reference/authentication) for more information.
          ❌ **Not supported** by Try it console.

```

## Examples

### Unclaimed Draft Edit and Resend



**Request**

```json
undefined
```

**Response**

```json
{
  "unclaimed_draft": {
    "signature_request_id": "8e55b3880c62497791dda0f3b4181cfd95f7ddb4",
    "claim_url": "https://embedded.hellosign.com/prep-and-send/embedded-request?cached_params_token=30c4d8df776038c2fa5f7094c3718937",
    "signing_redirect_url": null,
    "requesting_redirect_url": null,
    "expires_at": 1414093891,
    "test_mode": true
  }
}
```

**SDK Code**

```php PHP
<?php

namespace Dropbox\SignSandbox;

require_once __DIR__ . '/../vendor/autoload.php';

use SplFileObject;
use Dropbox;

$config = Dropbox\Sign\Configuration::getDefaultConfiguration();
$config->setUsername("YOUR_API_KEY");
// $config->setAccessToken("YOUR_ACCESS_TOKEN");

$unclaimed_draft_edit_and_resend_request = (new Dropbox\Sign\Model\UnclaimedDraftEditAndResendRequest())
    ->setClientId("b6b8e7deaf8f0b95c029dca049356d4a2cf9710a")
    ->setTestMode(false);

try {
    $response = (new Dropbox\Sign\Api\UnclaimedDraftApi(config: $config))->unclaimedDraftEditAndResend(
        signature_request_id: "fa5c8a0b0f492d768749333ad6fcc214c111e967",
        unclaimed_draft_edit_and_resend_request: $unclaimed_draft_edit_and_resend_request,
    );

    print_r($response);
} catch (Dropbox\Sign\ApiException $e) {
    echo "Exception when calling UnclaimedDraftApi#unclaimedDraftEditAndResend: {$e->getMessage()}";
}

```

```csharp C#
using System;
using System.Collections.Generic;
using System.IO;
using System.Text.Json;

using Dropbox.Sign.Api;
using Dropbox.Sign.Client;
using Dropbox.Sign.Model;

namespace Dropbox.SignSandbox;

public class UnclaimedDraftEditAndResendExample
{
    public static void Run()
    {
        var config = new Configuration();
        config.Username = "YOUR_API_KEY";
        // config.AccessToken = "YOUR_ACCESS_TOKEN";

        var unclaimedDraftEditAndResendRequest = new UnclaimedDraftEditAndResendRequest(
            clientId: "b6b8e7deaf8f0b95c029dca049356d4a2cf9710a",
            testMode: false
        );

        try
        {
            var response = new UnclaimedDraftApi(config).UnclaimedDraftEditAndResend(
                signatureRequestId: "fa5c8a0b0f492d768749333ad6fcc214c111e967",
                unclaimedDraftEditAndResendRequest: unclaimedDraftEditAndResendRequest
            );

            Console.WriteLine(response);
        }
        catch (ApiException e)
        {
            Console.WriteLine("Exception when calling UnclaimedDraftApi#UnclaimedDraftEditAndResend: " + e.Message);
            Console.WriteLine("Status Code: " + e.ErrorCode);
            Console.WriteLine(e.StackTrace);
        }
    }
}

```

```typescript TypeScript
import * as fs from 'fs';
import api from "@dropbox/sign"
import models from "@dropbox/sign"

const apiCaller = new api.UnclaimedDraftApi();
apiCaller.username = "YOUR_API_KEY";
// apiCaller.accessToken = "YOUR_ACCESS_TOKEN";

const unclaimedDraftEditAndResendRequest: models.UnclaimedDraftEditAndResendRequest = {
  clientId: "b6b8e7deaf8f0b95c029dca049356d4a2cf9710a",
  testMode: false,
};

apiCaller.unclaimedDraftEditAndResend(
  "fa5c8a0b0f492d768749333ad6fcc214c111e967", // signatureRequestId
  unclaimedDraftEditAndResendRequest,
).then(response => {
  console.log(response.body);
}).catch(error => {
  console.log("Exception when calling UnclaimedDraftApi#unclaimedDraftEditAndResend:");
  console.log(error.body);
});

```

```java Java
package com.dropbox.sign_sandbox;

import com.dropbox.sign.ApiException;
import com.dropbox.sign.Configuration;
import com.dropbox.sign.api.*;
import com.dropbox.sign.auth.*;
import com.dropbox.sign.JSON;
import com.dropbox.sign.model.*;

import java.io.File;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class UnclaimedDraftEditAndResendExample
{
    public static void main(String[] args)
    {
        var config = Configuration.getDefaultApiClient();
        ((HttpBasicAuth) config.getAuthentication("api_key")).setUsername("YOUR_API_KEY");
        // ((HttpBearerAuth) config.getAuthentication("oauth2")).setBearerToken("YOUR_ACCESS_TOKEN");

        var unclaimedDraftEditAndResendRequest = new UnclaimedDraftEditAndResendRequest();
        unclaimedDraftEditAndResendRequest.clientId("b6b8e7deaf8f0b95c029dca049356d4a2cf9710a");
        unclaimedDraftEditAndResendRequest.testMode(false);

        try
        {
            var response = new UnclaimedDraftApi(config).unclaimedDraftEditAndResend(
                "fa5c8a0b0f492d768749333ad6fcc214c111e967", // signatureRequestId
                unclaimedDraftEditAndResendRequest
            );

            System.out.println(response);
        } catch (ApiException e) {
            System.err.println("Exception when calling UnclaimedDraftApi#unclaimedDraftEditAndResend");
            System.err.println("Status code: " + e.getCode());
            System.err.println("Reason: " + e.getResponseBody());
            System.err.println("Response headers: " + e.getResponseHeaders());
            e.printStackTrace();
        }
    }
}

```

```ruby Ruby
require "json"
require "dropbox-sign"

Dropbox::Sign.configure do |config|
    config.username = "YOUR_API_KEY"
    # config.access_token = "YOUR_ACCESS_TOKEN"
end

unclaimed_draft_edit_and_resend_request = Dropbox::Sign::UnclaimedDraftEditAndResendRequest.new
unclaimed_draft_edit_and_resend_request.client_id = "b6b8e7deaf8f0b95c029dca049356d4a2cf9710a"
unclaimed_draft_edit_and_resend_request.test_mode = false

begin
    response = Dropbox::Sign::UnclaimedDraftApi.new.unclaimed_draft_edit_and_resend(
        "fa5c8a0b0f492d768749333ad6fcc214c111e967", # signature_request_id
        unclaimed_draft_edit_and_resend_request,
    )

    p response
rescue Dropbox::Sign::ApiError => e
    puts "Exception when calling UnclaimedDraftApi#unclaimed_draft_edit_and_resend: #{e}"
end

```

```python Python
import json
from datetime import date, datetime
from pprint import pprint

from dropbox_sign import ApiClient, ApiException, Configuration, api, models

configuration = Configuration(
    username="YOUR_API_KEY",
    # access_token="YOUR_ACCESS_TOKEN",
)

with ApiClient(configuration) as api_client:
    unclaimed_draft_edit_and_resend_request = models.UnclaimedDraftEditAndResendRequest(
        client_id="b6b8e7deaf8f0b95c029dca049356d4a2cf9710a",
        test_mode=False,
    )

    try:
        response = api.UnclaimedDraftApi(api_client).unclaimed_draft_edit_and_resend(
            signature_request_id="fa5c8a0b0f492d768749333ad6fcc214c111e967",
            unclaimed_draft_edit_and_resend_request=unclaimed_draft_edit_and_resend_request,
        )

        pprint(response)
    except ApiException as e:
        print("Exception when calling UnclaimedDraftApi#unclaimed_draft_edit_and_resend: %s\n" % e)

```

```go Unclaimed Draft Edit and Resend
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.hellosign.com/v3/unclaimed_draft/edit_and_resend/fa5c8a0b0f492d768749333ad6fcc214c111e967"

	req, _ := http.NewRequest("POST", url, nil)

	req.SetBasicAuth("<apiKey>", "")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```swift Unclaimed Draft Edit and Resend
import Foundation

let credentials = Data("<apiKey>:".utf8).base64EncodedString()

let headers = [
  "Authorization": "Basic \(credentials)",
  "Content-Type": "application/json"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.hellosign.com/v3/unclaimed_draft/edit_and_resend/fa5c8a0b0f492d768749333ad6fcc214c111e967")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Default Example



**Request**

```json
{
  "client_id": "b6b8e7deaf8f0b95c029dca049356d4a2cf9710a",
  "test_mode": false
}
```

**Response**

```json
{
  "unclaimed_draft": {
    "signature_request_id": "8e55b3880c62497791dda0f3b4181cfd95f7ddb4",
    "claim_url": "https://embedded.hellosign.com/prep-and-send/embedded-request?cached_params_token=30c4d8df776038c2fa5f7094c3718937",
    "signing_redirect_url": null,
    "requesting_redirect_url": null,
    "expires_at": 1414093891,
    "test_mode": true
  }
}
```

**SDK Code**

```php PHP
<?php

namespace Dropbox\SignSandbox;

require_once __DIR__ . '/../vendor/autoload.php';

use SplFileObject;
use Dropbox;

$config = Dropbox\Sign\Configuration::getDefaultConfiguration();
$config->setUsername("YOUR_API_KEY");
// $config->setAccessToken("YOUR_ACCESS_TOKEN");

$unclaimed_draft_edit_and_resend_request = (new Dropbox\Sign\Model\UnclaimedDraftEditAndResendRequest())
    ->setClientId("b6b8e7deaf8f0b95c029dca049356d4a2cf9710a")
    ->setTestMode(false);

try {
    $response = (new Dropbox\Sign\Api\UnclaimedDraftApi(config: $config))->unclaimedDraftEditAndResend(
        signature_request_id: "fa5c8a0b0f492d768749333ad6fcc214c111e967",
        unclaimed_draft_edit_and_resend_request: $unclaimed_draft_edit_and_resend_request,
    );

    print_r($response);
} catch (Dropbox\Sign\ApiException $e) {
    echo "Exception when calling UnclaimedDraftApi#unclaimedDraftEditAndResend: {$e->getMessage()}";
}

```

```csharp C#
using System;
using System.Collections.Generic;
using System.IO;
using System.Text.Json;

using Dropbox.Sign.Api;
using Dropbox.Sign.Client;
using Dropbox.Sign.Model;

namespace Dropbox.SignSandbox;

public class UnclaimedDraftEditAndResendExample
{
    public static void Run()
    {
        var config = new Configuration();
        config.Username = "YOUR_API_KEY";
        // config.AccessToken = "YOUR_ACCESS_TOKEN";

        var unclaimedDraftEditAndResendRequest = new UnclaimedDraftEditAndResendRequest(
            clientId: "b6b8e7deaf8f0b95c029dca049356d4a2cf9710a",
            testMode: false
        );

        try
        {
            var response = new UnclaimedDraftApi(config).UnclaimedDraftEditAndResend(
                signatureRequestId: "fa5c8a0b0f492d768749333ad6fcc214c111e967",
                unclaimedDraftEditAndResendRequest: unclaimedDraftEditAndResendRequest
            );

            Console.WriteLine(response);
        }
        catch (ApiException e)
        {
            Console.WriteLine("Exception when calling UnclaimedDraftApi#UnclaimedDraftEditAndResend: " + e.Message);
            Console.WriteLine("Status Code: " + e.ErrorCode);
            Console.WriteLine(e.StackTrace);
        }
    }
}

```

```typescript TypeScript
import * as fs from 'fs';
import api from "@dropbox/sign"
import models from "@dropbox/sign"

const apiCaller = new api.UnclaimedDraftApi();
apiCaller.username = "YOUR_API_KEY";
// apiCaller.accessToken = "YOUR_ACCESS_TOKEN";

const unclaimedDraftEditAndResendRequest: models.UnclaimedDraftEditAndResendRequest = {
  clientId: "b6b8e7deaf8f0b95c029dca049356d4a2cf9710a",
  testMode: false,
};

apiCaller.unclaimedDraftEditAndResend(
  "fa5c8a0b0f492d768749333ad6fcc214c111e967", // signatureRequestId
  unclaimedDraftEditAndResendRequest,
).then(response => {
  console.log(response.body);
}).catch(error => {
  console.log("Exception when calling UnclaimedDraftApi#unclaimedDraftEditAndResend:");
  console.log(error.body);
});

```

```java Java
package com.dropbox.sign_sandbox;

import com.dropbox.sign.ApiException;
import com.dropbox.sign.Configuration;
import com.dropbox.sign.api.*;
import com.dropbox.sign.auth.*;
import com.dropbox.sign.JSON;
import com.dropbox.sign.model.*;

import java.io.File;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.OffsetDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class UnclaimedDraftEditAndResendExample
{
    public static void main(String[] args)
    {
        var config = Configuration.getDefaultApiClient();
        ((HttpBasicAuth) config.getAuthentication("api_key")).setUsername("YOUR_API_KEY");
        // ((HttpBearerAuth) config.getAuthentication("oauth2")).setBearerToken("YOUR_ACCESS_TOKEN");

        var unclaimedDraftEditAndResendRequest = new UnclaimedDraftEditAndResendRequest();
        unclaimedDraftEditAndResendRequest.clientId("b6b8e7deaf8f0b95c029dca049356d4a2cf9710a");
        unclaimedDraftEditAndResendRequest.testMode(false);

        try
        {
            var response = new UnclaimedDraftApi(config).unclaimedDraftEditAndResend(
                "fa5c8a0b0f492d768749333ad6fcc214c111e967", // signatureRequestId
                unclaimedDraftEditAndResendRequest
            );

            System.out.println(response);
        } catch (ApiException e) {
            System.err.println("Exception when calling UnclaimedDraftApi#unclaimedDraftEditAndResend");
            System.err.println("Status code: " + e.getCode());
            System.err.println("Reason: " + e.getResponseBody());
            System.err.println("Response headers: " + e.getResponseHeaders());
            e.printStackTrace();
        }
    }
}

```

```ruby Ruby
require "json"
require "dropbox-sign"

Dropbox::Sign.configure do |config|
    config.username = "YOUR_API_KEY"
    # config.access_token = "YOUR_ACCESS_TOKEN"
end

unclaimed_draft_edit_and_resend_request = Dropbox::Sign::UnclaimedDraftEditAndResendRequest.new
unclaimed_draft_edit_and_resend_request.client_id = "b6b8e7deaf8f0b95c029dca049356d4a2cf9710a"
unclaimed_draft_edit_and_resend_request.test_mode = false

begin
    response = Dropbox::Sign::UnclaimedDraftApi.new.unclaimed_draft_edit_and_resend(
        "fa5c8a0b0f492d768749333ad6fcc214c111e967", # signature_request_id
        unclaimed_draft_edit_and_resend_request,
    )

    p response
rescue Dropbox::Sign::ApiError => e
    puts "Exception when calling UnclaimedDraftApi#unclaimed_draft_edit_and_resend: #{e}"
end

```

```python Python
import json
from datetime import date, datetime
from pprint import pprint

from dropbox_sign import ApiClient, ApiException, Configuration, api, models

configuration = Configuration(
    username="YOUR_API_KEY",
    # access_token="YOUR_ACCESS_TOKEN",
)

with ApiClient(configuration) as api_client:
    unclaimed_draft_edit_and_resend_request = models.UnclaimedDraftEditAndResendRequest(
        client_id="b6b8e7deaf8f0b95c029dca049356d4a2cf9710a",
        test_mode=False,
    )

    try:
        response = api.UnclaimedDraftApi(api_client).unclaimed_draft_edit_and_resend(
            signature_request_id="fa5c8a0b0f492d768749333ad6fcc214c111e967",
            unclaimed_draft_edit_and_resend_request=unclaimed_draft_edit_and_resend_request,
        )

        pprint(response)
    except ApiException as e:
        print("Exception when calling UnclaimedDraftApi#unclaimed_draft_edit_and_resend: %s\n" % e)

```

```go Default Example
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.hellosign.com/v3/unclaimed_draft/edit_and_resend/fa5c8a0b0f492d768749333ad6fcc214c111e967"

	payload := strings.NewReader("{\n  \"client_id\": \"b6b8e7deaf8f0b95c029dca049356d4a2cf9710a\",\n  \"test_mode\": false\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.SetBasicAuth("<apiKey>", "")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```swift Default Example
import Foundation

let credentials = Data("<apiKey>:".utf8).base64EncodedString()

let headers = [
  "Authorization": "Basic \(credentials)",
  "Content-Type": "application/json"
]
let parameters = [
  "client_id": "b6b8e7deaf8f0b95c029dca049356d4a2cf9710a",
  "test_mode": false
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.hellosign.com/v3/unclaimed_draft/edit_and_resend/fa5c8a0b0f492d768749333ad6fcc214c111e967")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```