Unclaimed Draft - Create | HelloSign API Documentation
Unclaimed DraftA group of documents that a user can take ownership of via the claim URLA group of documents that a user can take ownership of via the claim URL
UnclaimedDraft Response Object.
signature_request_id The ID of the signature request that is represented by this UnclaimedDraft.
claim_url The URL to be used to claim this UnclaimedDraft.
signing_redirect_url The URL you want signers redirected to after they successfully sign.
requesting_redirect_url 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 When the link expires.
test_mode Whether this is a test draft. Signature requests made from test drafts have no legal value. Defaults to 0.
ACTION URI - Description
Create Unclaimed Draft
POST /unclaimed_draft/create
Creates a new Draft that can be claimed using the claim URL.

Creates a new Draft that can be claimed using the claim URL. The first authenticated user to access the URL will claim the Draft and will be shown either the "Sign and send" or the "Request signature" page with the Draft loaded. Subsequent access to the claim URL will result in a 404.

Request Parameters
test_mode optional
Whether this is a test, the signature request created from this draft will not be legally binding if set to 1. Defaults to 0.
file[] or file_url[]
Use file[] to indicate the uploaded file(s) to send for signature. Use file_url[] to have HelloSign download the file(s) to send for signature. Currently we only support use of either the file[] parameter or file_url[] parameter, not both.
The type of unclaimed draft to create. Use "send_document" to create a claimable file, and "request_signature" for a claimable signature request. If the type is "request_signature" then signers name and email_address are not optional.
subject optional
The subject in the email that will be sent to the signers.
message optional
The custom message in the email that will be sent to the signers.
signers[%i%][name] optional
The name of the signer. %i% is an integer that should be unique for each signer.
signers[%i%][email_address] optional
The email address of the signer. %i% is an integer that should be unique for each signer.
signers[%i%][order] optional
The order the signer is required to sign in. %i% is an integer that should be unique for each signer.
attachments[%i%][name] optional
The name of attachment.
attachments[%i%][instructions] optional
The instructions for uploading the attachment.
attachments[%i%][signer_index] optional
The signer's unique number, see signers[%i%][name] for more details.
attachments[%i%][required] optional
Determines if the attachment must be uploaded.
custom_fields optional
A JSON array defining values and options for custom fields. Required when defining pre-set values in form_fields_per_document or Text Tags.
  • name: the name, or "Field Label," of the custom field (the field's API ID can be used here as well)
  • value: the value of the custom field
  • editor: the RoleName allowed to edit the custom field (optional, but required if 'required' is defined)
    Note: Editable custom_fields are only supported for single signer requests or the first signer of ordered signature requests. If more than one signer is assigned to the unordered signature request, any editor value is ignored and the field will not be editable.
  • required: a boolean describing if this field is required (default: false)
cc_email_addresses[] optional
The email addresses that should be CCed.
signing_redirect_url optional
The URL you want signers redirected to after they successfully sign.
use_text_tags or use_preexisting_fields optional
[boolean] Set use_text_tags to 1 to enable Text Tags parsing in your document (defaults to disabled, or 0). Alternatively, if your PDF contains pre-defined fields, enable the detection of these fields by setting the use_preexisting_fields to 1 (defaults to disabled, or 0). Currently we only support use of either use_text_tags or use_preexisting_fields parameter, not both.
hide_text_tags optional
[boolean] Send with a value of 1 if you wish to enable automatic Text Tag removal. Defaults to 0. When using Text Tags it is preferred that you set this to 0 and hide your tags with white text or something similar because the automatic removal system can cause unwanted clipping. See the Text Tags walkthrough for more details.
metadata[%key%] optional
Key-value data that should be attached to the signature request. This metadata is included in all API responses and events involving the signature request. For example, use the metadata field to store a signer's order number for look up when receiving events for the signature request.

Each request can include up to 10 metadata keys, with key names up to 40 characters long and values up to 1000 characters long.
allow_decline optional
Allows signers to decline to sign a document if set to 1. Defaults to 0.
form_fields_per_document optional
The fields that should appear on the document, expressed as a 2-dimensional JSON array serialized to a string. The main array represents documents, with each containing an array of form fields. One document array is required for each file provided by the file[] parameter. In the case of a file with no fields, an empty list must be specified.

Each field must contain:
    1. api_id - (string) an identifier for the field that is unique across all documents in the request
    2. type - one of the Type options
    3. x & y - (int) location coordinates of the field in pixels
    4. page - (int) page in the document where the field should be placed (requires documents be PDF files)
        a. When the page number parameter is supplied, the API will use the new coordinate system.
        b. Check out the differences between both coordinate systems and how to use them.
    5. width & height - (int) size of the field in pixels
    6. required - (boolean) whether this field is required
    7. signer - (int | string) signer index identified by the offset %i% in the signers[%i%] parameter, indicating which signer should fill out the field. If your type is 'text-merge' you can set this to 'sender', so the field is non-editable by any signer.

Optionally, each field may contain a name (string) parameter. This is a display name for the field.

Each text field may contain a validation_type parameter. Check out the list of validation types to learn more about the possible values.

The following is an example of a form_fields_per_document for a 2-document request with a text field and signature field on the first page of the document, prior to serialization to a string for the API request:

            "api_id": "uniqueIdHere_1",
            "name": "",
            "type": "text",
            "x": 112,
            "y": 328,
            "width": 100,
            "height": 16,
            "required": true,
            "signer": 1,
            "page": 1,
            "validation_type": "numbers_only"
            "api_id": "uniqueIdHere_2",
            "name": "",
            "type": "signature",
            "x": 530,
            "y": 415,
            "width": 120,
            "height": 30,
            "required": true,
            "signer": 0,
            "page": 1
signing_options optional
This allows the requester to specify the types allowed for creating a signature.
  • draw: [boolean] allows drawing the signature (default: false)
  • type: [boolean] allows typing the signature (default: false)
  • upload: [boolean] allows uploading the signature (default: false)
  • phone: [boolean] allows using a smartphone to email the signature (default: false)
  • default: [string] the default type shown (limited to the above types) (required if signing_options defined)

Note: If signing_options are not defined in the request, the allowed types will default to those specified in the account settings.
field_options optional
This allows the requester to specify field options for a signature request.
  • date_format: [string] allows requester to specify the date format (see list of allowed formats)
    Note: Only available for Platinum and higher.

Returns an UnclaimedDraft object
Example request / response
POST https://[api key]:@api.hellosign.com/v3/unclaimed_draft/create
file[0] = @Agreement.pdf
file[1] = @Appendix.doc
test_mode = 1