Account
Response Object.Description
Returns the properties and settings of your Account.
Request Parameters
None
Response
Returns an Account object
Example request / response
GET https://[username]:[password]@api.hellosign.com/v3/account
CURL:
curl -u 'me@hellosign.com:password' 'https://api.hellosign.com/v3/account'
Response:
{
"account": {
"account_id": "5008b25c7f67153e57d5a357b1687968068fb465",
"email_address": "me@hellosign.com",
"callback_url": null,
"role_code": null
}
}
Description
Updates the properties and settings of your Account.
Request Parameters
Response
Returns an Account object
Example request / response
POST https://[username]:[password]@api.hellosign.com/v3/account
callback_url=https://www.example.com/callback
CURL:
curl -u 'me@hellosign.com:password' 'https://api.hellosign.com/v3/account' \ -F 'callback_url=https://www.example.com/callback'
Response:
{
"account": {
"account_id": "5008b25c7f67153e57d5a357b1687968068fb465",
"email_address": "me@hellosign.com",
"callback_url": "https://www.example.com/callback",
"role_code": null
}
}
Description
Creates a new HelloSign Account that is associated with the specified email_address and password.
Request Parameters
Response
Returns an Account object
Example request / response
POST https://[username]:[password]@api.hellosign.com/v3/account/create
email_address=newuser@hellosign.com
password=securePW
CURL:
curl 'https://api.hellosign.com/v3/account/create' \ -F 'email_address=newuser@hellosign.com' \ -F 'password=securePW'
Response:
{
"account": {
"account_id": "a2b31224f7e6fb5581d2f8cbd91cf65fa2f86aae",
"email_address": "newuser@hellosign.com",
"callback_url": null,
"role_code": null
}
}
SignatureRequest
Response Object.Description
Returns the status of the SignatureRequest specified by the signature_request_id parameter.
Request Parameters
Response
Returns a SignatureRequest object
Example request / response
GET https://[username]:[password]@api.hellosign.com/v3/signature_request/[:signature_request_id]
CURL:
curl -u 'me@hellosign.com:password' 'https://api.hellosign.com/v3/signature_request/fa5c8a0b0f492d768749333ad6fcc214c111e967'
Response:
{
"signature_request": {
"signature_request_id": "fa5c8a0b0f492d768749333ad6fcc214c111e967",
"title": "Purchase Agreement",
"subject": "Purchase Agreement",
"message": "Please sign and return.",
"is_complete": true,
"has_error": false,
"custom_fields": [
],
"response_data": [
{
"name": "Needs Express Shipping",
"value": true,
"type": "checkbox"
},
{
"name": "Shipping Address",
"value": "1212 Park Avenuee",
"type": "text"
},
{
"name": "DateSigned",
"value": "09\/01\/2012",
"type": "text"
}
],
"signing_url": null,
"details_url": "https:\/\/www.hellosign.com\/home\/manage?guid=fa5c8a0b0f492d768749333ad6fcc214c111e967",
"requester_email_address": "me@hellosign.com",
"signatures": [
{
"signer_email_address": "john@example.com",
"signer_name": "John Doe",
"order": null,
"status_code": "signed",
"signed_at": 1346521550,
"last_viewed_at": 1346521483,
"last_reminded_at": null
}
],
"cc_email_addresses": [
]
}
}
Description
Returns a list of SignatureRequests that you can access. This includes SignatureRequests you have sent as well as received, but not ones that you have been CCed on.
Request Parameters
Response Parameters
Example request / response
GET https://[username]:[password]@api.hellosign.com/v3/signature_request/list
CURL:
curl -u 'me@hellosign.com:password' 'https://api.hellosign.com/v3/signature_request/list?page=1'
Response:
{
"list_info": {
"page": 1,
"num_pages": 1,
"num_results": 2,
"page_size": 20
},
"signature_requests": [
{
"signature_request_id": "d10338cad145e1cb68afc828348c3fe3bd534bb1",
"title": "FHA",
"subject": "FHA",
"message": "Let me know if you two have any questions.",
"is_complete": false,
"has_error": false,
"custom_fields": [
],
"response_data": [
],
"signing_url": "https:\/\/www.hellosign.com\/editor\/sign?guid=d10338cad145e1cb68afc828348c3fe3bd534bb1",
"details_url": "https:\/\/www.hellosign.com\/home\/manage?guid=d10338cad145e1cb68afc828348c3fe3bd534bb1",
"requester_email_address": "me@hellosign.com",
"signatures": [
{
"signer_email_address": "george-jetson@example.com",
"signer_name": "George Jetson",
"order": 0,
"status_code": "awaiting_signature",
"signed_at": null,
"last_viewed_at": null,
"last_reminded_at": null
},
{
"signer_email_address": "jane-jetson@example.com",
"signer_name": "Jane Jetson",
"order": 1,
"status_code": "awaiting_signature",
"signed_at": null,
"last_viewed_at": null,
"last_reminded_at": null
}
],
"cc_email_addresses": [
"stan@example.com"
]
},
{
"signature_request_id": "fa5c8a0b0f492d768749333ad6fcc214c111e967",
"title": "Purchase Agreement",
"subject": "Purchase Agreement",
"message": "Please sign and return.",
"is_complete": true,
"has_error": false,
"custom_fields": [
],
"response_data": [
{
"name": "Needs Express Shipping",
"value": true,
"type": "checkbox"
},
{
"name": "Shipping Address",
"value": "1212 Park Avenuee",
"type": "text"
},
{
"name": "DateSigned",
"value": "09\/01\/2012",
"type": "date_signed"
}
],
"signing_url": null,
"details_url": "https:\/\/www.hellosign.com\/home\/manage?guid=fa5c8a0b0f492d768749333ad6fcc214c111e967",
"requester_email_address": "me@hellosign.com",
"signatures": [
{
"signer_email_address": "john@example.com",
"signer_name": "John Doe",
"order": null,
"status_code": "signed",
"signed_at": 1346521550,
"last_viewed_at": 1346521483,
"last_reminded_at": null
}
],
"cc_email_addresses": [
]
}
]
}
Description
Creates and sends a new SignatureRequest with the submitted documents. If form_fields_per_document is not specified, a signature page will be affixed where all signers will be required to add their signature, signifying their agreement to all contained documents.
Request Parameters
[
[
{
"name": "",
"type": "text",
"x": 112,
"y": 328,
"width": 100,
"height": 16,
"required": true,
"signer": 2
},
{
"name": "",
"type": "signature",
"x": 530,
"y": 415,
"width": 120,
"height": 30,
"required": true,
"signer": 1
}],
[]
]Response
Returns a SignatureRequest object
Example request / response
POST https://[username]:[password]@api.hellosign.com/v3/signature_request/send
title=NDA with Acme Co.
subject=The NDA we talked about
message=Please sign this NDA and then we can discuss more. Let me know if you have any questions.
signers[0][email_address]=jack@example.com
signers[0][name]=Jack
signers[0][order]=0
signers[1][email_address]=jill@example.com
signers[1][name]=Jill
signers[1][order]=1
cc_email_addresses[0]=lawyer@hellosign.com
cc_email_addresses[1]=lawyer@example.com
file[1]=@NDA.pdf
file[2]=@AppendixA.pdf
CURL:
curl -u 'me@hellosign.com:password' 'https://api.hellosign.com/v3/signature_request/send' \ -F 'title=NDA with Acme Co.' \ -F 'subject=The NDA we talked about' \ -F 'message=Please sign this NDA and then we can discuss more. Let me know if you have any questions.' \ -F 'signers[0][email_address]=jack@example.com' \ -F 'signers[0][name]=Jack' \ -F 'signers[0][order]=0' \ -F 'signers[1][email_address]=jill@example.com' \ -F 'signers[1][name]=Jill' \ -F 'signers[1][order]=1' \ -F 'cc_email_addresses[0]=lawyer@hellosign.com' \ -F 'cc_email_addresses[1]=lawyer@example.com' \ -F 'file[1]=@NDA.pdf' \ -F 'file[2]=@AppendixA.pdf'
Response:
{
"signature_request": {
"signature_request_id": "a9f4825edef25f47e7b4c14ce8100d81d1693160",
"title": "NDA with Acme Co.",
"subject": "The NDA we talked about",
"message": "Please sign this NDA and then we can discuss more. Let me know if you have any questions.",
"is_complete": false,
"has_error": false,
"custom_fields": [
],
"response_data": [
],
"signing_url": "https:\/\/www.hellosign.com\/editor\/sign?guid=a9f4825edef25f47e7b4c14ce8100d81d1693160",
"details_url": "https:\/\/www.hellosign.com\/home\/manage?guid=a9f4825edef25f47e7b4c14ce8100d81d1693160",
"requester_email_address": "me@hellosign.com",
"signatures": [
{
"signer_email_address": "jack@example.com",
"signer_name": "Jack",
"order": 0,
"status_code": "awaiting_signature",
"signed_at": null,
"last_viewed_at": null,
"last_reminded_at": null
},
{
"signer_email_address": "jill@example.com",
"signer_name": "Jill",
"order": 1,
"status_code": "awaiting_signature",
"signed_at": null,
"last_viewed_at": null,
"last_reminded_at": null
}
],
"cc_email_addresses": [
"lawyer@hellosign.com",
"lawyer@example.com"
]
}
}
Description
Creates and sends a new SignatureRequest based off of the ReusableForm specified with the reusable_form_id parameter.
Request Parameters
Response
Returns a SignatureRequest object
Example request / response
POST https://[username]:[password]@api.hellosign.com/v3/signature_request/send_with_reusable_form
reusable_form_id=c26b8a16784a872da37ea946b9ddec7c1e11dff6
subject=Purchase Order
message=Glad we could come to an agreement.
signers[Client][name]=George
signers[Client][email_address]=george@example.com
ccs[Accounting][email_address]=accounting@hellosign.com
custom_fields[Cost]=$20,000
CURL:
curl -u 'me@hellosign.com:password' 'https://api.hellosign.com/v3/signature_request/send_with_reusable_form' \ -F 'reusable_form_id=c26b8a16784a872da37ea946b9ddec7c1e11dff6' \ -F 'subject=Purchase Order' \ -F 'message=Glad we could come to an agreement.' \ -F 'signers[Client][name]=George' \ -F 'signers[Client][email_address]=george@example.com' \ -F 'ccs[Accounting][email_address]=accounting@hellosign.com' \ -F 'custom_fields[Cost]=$20,000'
Response:
{
"signature_request": {
"signature_request_id": "17d163069282df5eb63857d31ff4a3bffa9e46c0",
"title": "Purchase Order",
"subject": "Purchase Order",
"message": "Glad we could come to an agreement.",
"is_complete": false,
"has_error": false,
"custom_fields": [
{
"name": "Cost",
"value": "$20,000",
"type": "text"
}
],
"response_data": [
],
"signing_url": "https:\/\/www.hellosign.com\/editor\/sign?guid=17d163069282df5eb63857d31ff4a3bffa9e46c0",
"details_url": "https:\/\/www.hellosign.com\/home\/manage?guid=17d163069282df5eb63857d31ff4a3bffa9e46c0",
"requester_email_address": "me@hellosign.com",
"signatures": [
{
"signer_email_address": "george@example.com",
"signer_name": "George",
"order": null,
"status_code": "awaiting_signature",
"signed_at": null,
"last_viewed_at": null,
"last_reminded_at": null
}
],
"cc_email_addresses": [
"accounting@hellosign.com"
]
}
}
Description
Sends an email to the signer reminding them to sign the signature request. You cannot send a reminder within 12 hours of the last reminder that was sent. This includes manual AND automatic reminders.
Request Parameters
Response
Returns a SignatureRequest object
Example request / response
POST https://[username]:[password]@api.hellosign.com/v3/signature_request/remind/[:signature_request_id]
email_address=john@example.com
CURL:
curl -u 'me@hellosign.com:password' 'https://api.hellosign.com/v3/signature_request/remind/2f9781e1a8e2045224d808c153c2e1d3df6f8f2f' \ -F 'email_address=john@example.com'
Response:
{
"signature_request": {
"signature_request_id": "2f9781e1a8e2045224d808c153c2e1d3df6f8f2f",
"title": "ok",
"subject": "ok",
"message": null,
"is_complete": false,
"has_error": false,
"custom_fields": [
],
"response_data": [
],
"signing_url": "https:\/\/www.hellosign.com\/editor\/sign?guid=2f9781e1a8e2045224d808c153c2e1d3df6f8f2f",
"details_url": "https:\/\/www.hellosign.com\/home\/manage?guid=2f9781e1a8e2045224d808c153c2e1d3df6f8f2f",
"requester_email_address": "me@hellosign.com",
"signatures": [
{
"signer_email_address": "john@example.com",
"signer_name": "John Doe",
"order": 0,
"status_code": "awaiting_signature",
"signed_at": null,
"last_viewed_at": null,
"last_reminded_at": 1346616433
}
],
"cc_email_addresses": [
]
}
}
Description
Cancels a SignatureRequest. After canceling, no one will be able to sign or access the SignatureRequest or its documents. Only the requester can cancel and only before everyone has signed.
Request Parameters
Example request / response
POST https://[username]:[password]@api.hellosign.com/v3/signature_request/cancel/[:signature_request_id]
CURL:
curl -u 'me@hellosign.com:password' -X POST 'https://api.hellosign.com/v3/signature_request/cancel/2f9781e1a8e2045224d808c153c2e1d3df6f8f2f'
Response:
N/A (HTTP Status Code 200)
Description
Download the PDF copy of the finalized documents specified by the signature_request_id parameter.
Request Parameters
Response
Returns a PDF
Example request / response
GET https://[username]:[password]@api.hellosign.com/v3/signature_request/final_copy/[:signature_request_id]
CURL:
curl -u 'me@hellosign.com:password' 'https://api.hellosign.com/v3/signature_request/final_copy/f57db65d3f933b5316d398057a36176831451a35' -o final-copy.pdf
Response:
N/A (final-copy.pdf will be created)
ReusableForm
Response Object.Description
Returns the ReusableForm specified by the id parameter.
Request Parameters
Response
Returns a ReusableForm object
Example request / response
GET https://[username]:[password]@api.hellosign.com/v3/reusable_form/[:reusable_form_id]
CURL:
curl -u 'me@hellosign.com:password' 'https://api.hellosign.com/v3/reusable_form/f57db65d3f933b5316d398057a36176831451a35'
Response:
{
"reusable_form": {
"reusable_form_id": "f57db65d3f933b5316d398057a36176831451a35",
"title": "Mutual NDA",
"message": "Please sign this NDA as soon as possible.",
"signer_roles": [
{
"name": "Outside Vendor",
"order": 0
},
{
"name": "Internal Manager",
"order": 1
}
],
"cc_roles": [
{
"name": "Corporate Attorney"
}
],
"documents": [
{
"index": 0,
"name": "mutual_nda.pdf"
"form_fields": [
{
"name": "VendorName",
"type": "text",
"x": 160,
"y": 141,
"width": 80,
"height": 30,
"required": true
},
{
"name": "VendorTitle",
"type": "text",
"x": 160,
"y": 181,
"width": 80,
"height": 30,
"required": true
},
{
"name": "ManagerName",
"type": "text",
"x": 160,
"y": 221,
"width": 80,
"height": 30,
"required": true
},
{
"name": "ManagerTitle",
"type": "text",
"x": 160,
"y": 251,
"width": 80,
"height": 30,
"required": true
},
{
"name": "DateSigned",
"type": "date_signed",
"x": 523,
"y": 28,
"width": 105,
"height": 16,
"required": true
}
],
"custom_fields": [
{
"name": "Effective Date",
"type": "text"
}
],
}
],
"accounts": [
{
"account_id": "5008b25c7f67153e57d5a357b1687968068fb465",
"email_address": "me@hellosign.com"
}
]
}
}
Description
Returns a list the ReusableForms that are accessible by you.
Request Parameters
Response Parameters
Example request / response
GET https://[username]:[password]@api.hellosign.com/v3/reusable_form/list
CURL:
curl -u 'me@hellosign.com:password' 'https://api.hellosign.com/v3/reusable_form/list?page=1'
Response:
{
"list_info": {
"page": 1,
"num_pages": 1,
"num_results": 2,
"page_size": 20
},
"reusable_forms": [
{
"reusable_form_id": "c26b8a16784a872da37ea946b9ddec7c1e11dff6",
"title": "Purchase order",
"message": "",
"signer_roles": [
{
"name": "Client"
}
],
"cc_roles": [
{
"name": "Accounting"
}
],
"documents": [
{
"index": 0,
"name": "purchase_order.pdf"
"form_fields": [
],
"custom_fields": [
{
"name": "Cost",
"type": "text"
}
],
}
],
"accounts": [
{
"account_id": "5008b25c7f67153e57d5a357b1687968068fb465",
"email_address": "me@hellosign.com"
}
]
},
{
"reusable_form_id": "21f920ec2b7f4b6bb64d3ed79f26303843046536",
"title": "Mutual NDA",
"message": "Please sign this NDA as soon as possible.",
"signer_roles": [
{
"name": "Outside Vendor",
"order": 0
},
{
"name": "Internal Manager",
"order": 1
}
],
"cc_roles": [
{
"name": "Corporate Attorney"
}
],
"documents": [
{
"index": 0,
"name": "mutual_nda.pdf"
"form_fields": [
{
"name": "VendorName",
"type": "text",
"x": 160,
"y": 141,
"width": 80,
"height": 30,
"required": true
},
{
"name": "VendorTitle",
"type": "text",
"x": 160,
"y": 181,
"width": 80,
"height": 30,
"required": true
},
{
"name": "ManagerName",
"type": "text",
"x": 160,
"y": 221,
"width": 80,
"height": 30,
"required": true
},
{
"name": "ManagerTitle",
"type": "text",
"x": 160,
"y": 251,
"width": 80,
"height": 30,
"required": true
},
{
"name": "DateSigned",
"type": "date_signed",
"x": 523,
"y": 28,
"width": 105,
"height": 16,
"required": true
}
],
"custom_fields": [
{
"name": "Effective Date",
"type": "text"
}
],
}
],
"accounts": [
{
"account_id": "5008b25c7f67153e57d5a357b1687968068fb465",
"email_address": "me@hellosign.com"
}
]
}
]
}
Description
Gives the specified Account access to the specified ReusableForm. The specified Account must be a part of your Team.
Request Parameters
Response
Returns a ReusableForm object
Example request / response
POST https://[username]:[password]@api.hellosign.com/v3/reusable_form/add_user/[:reusable_form_id]
email_address=george@hellofax.com
CURL:
curl -u 'me@hellosign.com:password' 'https://api.hellosign.com/v3/reusable_form/add_user/21f920ec2b7f4b6bb64d3ed79f26303843046536' \ -F 'email_address=george@hellosign.com'
Response:
{
"reusable_form": {
"reusable_form_id": "21f920ec2b7f4b6bb64d3ed79f26303843046536",
"title": "Mutual NDA",
"message": "Please sign this NDA as soon as possible.",
"signer_roles": [
{
"name": "Outside Vendor",
"order": 0
},
{
"name": "Internal Manager",
"order": 1
}
],
"cc_roles": [
{
"name": "Corporate Attorney"
}
],
"documents": [
{
"index": 0,
"name": "mutual_nda.pdf"
"form_fields": [
{
"name": "VendorName",
"type": "text",
"x": 160,
"y": 141,
"width": 80,
"height": 30,
"required": true
},
{
"name": "VendorTitle",
"type": "text",
"x": 160,
"y": 181,
"width": 80,
"height": 30,
"required": true
},
{
"name": "ManagerName",
"type": "text",
"x": 160,
"y": 221,
"width": 80,
"height": 30,
"required": true
},
{
"name": "ManagerTitle",
"type": "text",
"x": 160,
"y": 251,
"width": 80,
"height": 30,
"required": true
},
{
"name": "DateSigned",
"type": "date_signed",
"x": 523,
"y": 28,
"width": 105,
"height": 16,
"required": true
}
],
"custom_fields": [
{
"name": "Effective Date",
"type": "text"
}
],
}
],
"accounts": [
{
"account_id": "5008b25c7f67153e57d5a357b1687968068fb465",
"email_address": "me@hellosign.com"
},
{
"account_id": "",
"email_address": "teammate@hellosign.com"
}
]
}
}
Description
Removes the specified Account's access to the specified ReusableForm.
Request Parameters
Response
Returns a ReusableForm object
Example request / response
POST https://[username]:[password]@api.hellosign.com/v3/reusable_form/remove_user/[:reusable_form_id]
email_address=george@hellofax.com
CURL:
curl -u 'me@hellosign.com:password' 'https://api.hellosign.com/v3/reusable_form/remove_user/21f920ec2b7f4b6bb64d3ed79f26303843046536' \ -F 'email_address=george@hellosign.com'
Response:
{
"reusable_form": {
"reusable_form_id": "21f920ec2b7f4b6bb64d3ed79f26303843046536",
"title": "Mutual NDA",
"message": "Please sign this NDA as soon as possible.",
"signer_roles": [
{
"name": "Outside Vendor",
"order": 0
},
{
"name": "Internal Manager",
"order": 1
}
],
"cc_roles": [
{
"name": "Corporate Attorney"
}
],
"documents": [
{
"index": 0,
"name": "mutual_nda.pdf"
"form_fields": [
{
"name": "VendorName",
"type": "text",
"x": 160,
"y": 141,
"width": 80,
"height": 30,
"required": true
},
{
"name": "VendorTitle",
"type": "text",
"x": 160,
"y": 181,
"width": 80,
"height": 30,
"required": true
},
{
"name": "ManagerName",
"type": "text",
"x": 160,
"y": 221,
"width": 80,
"height": 30,
"required": true
},
{
"name": "ManagerTitle",
"type": "text",
"x": 160,
"y": 251,
"width": 80,
"height": 30,
"required": true
},
{
"name": "DateSigned",
"type": "date_signed",
"x": 523,
"y": 28,
"width": 105,
"height": 16,
"required": true
}
],
"custom_fields": [
{
"name": "Effective Date",
"type": "text"
}
],
}
],
"accounts": [
{
"account_id": "5008b25c7f67153e57d5a357b1687968068fb465",
"email_address": "me@hellosign.com"
}
]
}
}
Team
Response Object.Description
Returns information about your Team as well as a list of its members. If you do not belong to a Team, a 404 error with an error_name of "not_found" will be returned.
Request Parameters
None
Response
Returns a Team object
Example request / response
GET https://[username]:[password]@api.hellosign.com/v3/team
CURL:
curl -u 'me@hellosign.com:password' 'https://api.hellosign.com/v3/team'
Response:
{
"team": {
"name": "Team HelloSign",
"accounts": [
{
"account_id": "5008b25c7f67153e57d5a357b1687968068fb465",
"email_address": "me@hellosign.com",
"role_code": "a"
},
{
"account_id": "d3d3d7b98d80b67d07740df7cdfd1f49fa8e2b82",
"email_address": "teammate@hellosign.com",
"role_code": "m"
}
],
"invited_accounts": [
]
}
}
Description
Creates a new Team and makes you a member. You must not currently belong to a Team to invoke.
Request Parameters
Response
Returns a Team object
Example request / response
POST https://[username]:[password]@api.hellosign.com/v3/team/create
name=Team America World Police
CURL:
curl -u 'me@hellosign.com:password' 'https://api.hellosign.com/v3/team/create' \ -F 'name=Team America World Police'
Response:
{
"team": {
"name": "Team America World Police",
"accounts": [
{
"account_id": "5008b25c7f67153e57d5a357b1687968068fb465",
"email_address": "me@hellosign.com",
"role_code": "a"
}
],
"invited_accounts": [
]
}
}
Description
Updates the name of your Team. If you do not have a Team, a new Team is created.
Request Parameters
Response
Returns a Team object
Example request / response
POST https://[username]:[password]@api.hellosign.com/v3/team
name=New Team Name
CURL:
curl -u 'me@hellosign.com:password' 'https://api.hellosign.com/v3/team' \ -F 'name=New Team Name'
Response:
{
"team": {
"name": "New Team Name",
"accounts": [
{
"account_id": "5008b25c7f67153e57d5a357b1687968068fb465",
"email_address": "me@hellosign.com",
"role_code": "a"
}
],
"invited_accounts": [
]
}
}
Description
Deletes your Team. Can only be invoked when you have a Team with only one member (yourself).
Request Parameters
None
Example request / response
POST https://[username]:[password]@api.hellosign.com/v3/team/destroy
CURL:
curl -u 'me@hellosign.com:password' -X POST 'https://api.hellosign.com/v3/team/destroy'
Response:
N/A (HTTP Status Code 200)
Description
Adds or invites a user (specified using the email_address parameter) to your Team. If the user does not currently have a HelloSign Account, a new one will be created for them. If the user currently has a paid subscription, they will not automatically join the Team but instead will be sent an invitation to join. If a user is already a part of another Team, a "team_invite_failed" error will be returned.
Request Parameters
Response
Returns a Team object
Example requests / responses
POST https://[username]:[password]@api.hellosign.com/v3/team/add_member
email_address=george@hellofax.com
CURL:
curl -u 'me@hellosign.com:password' 'https://api.hellosign.com/v3/team/add_member' \ -F 'email_address=george@hellosign.com'
Response:
{
"team": {
"name": "New Team Name",
"accounts": [
{
"account_id": "5008b25c7f67153e57d5a357b1687968068fb465",
"email_address": "me@hellosign.com",
"role_code": "a"
},
{
"account_id": "8e239b5a50eac117fdd9a0e2359620aa57cb2463",
"email_address": "george@hellosign.com",
"role_code": "m"
}
],
"invited_accounts": [
]
}
}
Description
Removes a user from your Team. If the user had an outstanding invitation to your Team the invitation will be expired.
Request Parameters
Response
Returns a Team object
Example requests / responses
POST https://[username]:[password]@api.hellosign.com/v3/team/remove_member
email_address=teammate@hellosign.com
CURL:
curl -u 'me@hellosign.com:password' 'https://api.hellosign.com/v3/team/remove_member' \ -F 'email_address=teammate@hellosign.com'
Response:
{
"team": {
"name": "Team HelloSign",
"accounts": [
{
"account_id": "5008b25c7f67153e57d5a357b1687968068fb465",
"email_address": "me@hellosign.com",
"role_code": "a"
}
],
"invited_accounts": [
]
}
}
UnclaimedDraft
Response Object.Description
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. If the type is "send_document" then only the file parameter is required. If the type is "request_signature", then the identities of the signers and optionally the location of signing elements on the page are also required.
Request Parameters
[
[
{
"name": "",
"type": "text",
"x": 112,
"y": 328,
"width": 100,
"height": 16,
"required": true,
"signer": 2
},
{
"name": "",
"type": "signature",
"x": 530,
"y": 415,
"width": 120,
"height": 30,
"required": true,
"signer": 1
}],
[]
]Response
Returns a UnclaimedDraft object
Example request / response
POST https://[username]:[password]@api.hellosign.com/v3/unclaimed_draft/create
file[0]=@Agreement.pdf
file[1]=@Appendix.doc
CURL:
curl -u 'me@hellosign.com:password' 'https://api.hellosign.com/v3/unclaimed_draft/create' \ -F 'file[0]=@Agreement.pdf' \ -F 'file[1]=@Appendix.doc'
Response:
{
"unclaimed_draft": {
"claim_url": "https:\/\/www.hellosign.com\/send\/resendDocs?root_snapshot_guids[]=7f967b7d06e154394eab693febedf61e8ebe49eb&snapshot_access_guids[]=fb848631&root_snapshot_guids[]=7aedaf31e12edf9f2672a0b2ddf028aca670e101&snapshot_access_guids[]=f398ef87"
}
}
Events will be POSTed to your Account.callback_url as they occur if an Account.callback_url has been set. If we cannot connect to your callback_url we will retry POSTing the event 7 times, with each retry interval being longer than the previous.
List of events
| Event | Description | Attached Model |
|---|---|---|
| signature_request_viewed | The SignatureRequest has been viewed. | SignatureRequest |
| signature_request_signed | A signer has completed all required fields on the SignatureRequest. | SignatureRequest |
| signature_request_sent | The SignatureRequest has been sent successfully. | SignatureRequest |
| signature_request_all_signed | All signers have completed all required fields for the SignatureRequest and the final PDF is ready to be downloaded using signature_request/final_copy. | SignatureRequest |
| file_error | We're unable to convert the file you provided. | SignatureRequest |
Example Event
Events posted to your callback url will be formatted as a JSON string contained in the json POST param. For example:
{
"event": {
"event_time": "1348177752",
"event_type": "signature_request_sent",
"event_hash": "3a31324d1919d7cdc849ff407adf38fc01e01107d9400b028ff8c892469ca947"
},
"signature_request": {
"cc_email_addresses": [],
"custom_fields": [],
"details_url": "https://www.hellosign.com/home/manage?guid=1f8c510a38edbdf97eed524fba1c9a900feb56a4",
"has_error": false,
"is_complete": false,
"message": "Please sign this NDA and then we can discuss more. Let me know if you have any questions.",
"requester_email_address": "me@hellosign.com",
"response_data": [],
"signature_request_id": "1f8c510a38edbdf97eed524fba1c9a900feb56a4",
"signatures": [
{
"last_reminded_at": null,
"last_viewed_at": null,
"order": null,
"signed_at": null,
"signer_email_address": "jack@example.com",
"signer_name": "Jack",
"status_code": "awaiting_signature"
}
],
"signing_url": "https://www.hellosign.com/editor/sign?guid=1f8c510a38edbdf97eed524fba1c9a900feb56a4",
"subject": "NDA with Acme Co.",
"title": "NDA with Acme Co."
}
}
Your endpoint will need to return a 200 HTTP code and a response body containing the following text: Hello API Event Received. Otherwise, the callback will be considered a failure and will be retried later.
Event Hash Verification
Each Event object in the callbacks contains an event_hash to help you verify that it's really coming from HelloSign. The event_hash is generated with the HMAC algorithm using your API Key as a key and SHA256 digest mode.
Your API Key can be found on the Settings page after you make your first API call.
Calculating event_hash
echo -n "${event_time}${event_type}" | openssl dgst -sha256 -hmac "${apikey}"
Calculating event_hash with PHP
hash_hmac('sha256', $event_time . $event_type, $apikey);
Calculating event_hash with Python
import hashlib, hmac hmac.new(apikey, (event_time + event_type), hashlib.sha256).hexdigest()
Calculating event_hash with Ruby
require 'openssl'
OpenSSL::HMAC.hexdigest(OpenSSL::Digest::Digest.new('sha256'), apikey, (event_time + event_type))
If an error or warning occurs, we'll return either an error or warning object in the JSON response.
List of errors
| Error | Description |
|---|---|
| bad_request | The request could not be understood by the server due to malformed syntax. The client should not repeat the request without modifications. |
| unauthorized | The email address and password combo you provided was invalid. |
| forbidden | The requested action cannot be performed in the current context. Most of the time this happens when trying to access resources you don't have access to. |
| not_found | The server has not found anything matching the Request-URI. |
| unknown | An unknown error has occurred, please try again. |
| team_invite_failed | The team invite request has failed. Most of the time this means the person you've invited already belongs to a team. |
| invalid_recipient | The email address you provided for the recipient is not valid. |
| convert_failed | We could not convert the document you provided. |
| signature_request_cancel_failed | Could not cancel the Signature Request. Either you are not the requester or the Signature Request can no longer be cancelled. |
Example Error
Only one error will be returned at a time. Here is an example of the JSON structure of the response (or error POSTed to your callback url):
{
"error": {
"error_msg": "Unauthorized user.",
"error_name": "unauthorized"
}
}
List of warnings
| Warning | Description |
|---|---|
| unconfirmed | The email address of the account making the Signature Request has not been confirmed. The Signature Request will be placed on hold until it is confirmed. |
Example Warning
A response may contain one or more warnings. Here is an example of the JSON structure of the response:
{
"warnings": [
{
"warning_msg": "This SignatureRequest will be placed on hold until the user confirms their email address.",
"warning_name": "unconfirmed"
}
]
}