curl --request POST \
--url https://api.tomorro.com/v2/contracts/{id}/request-signatures \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"documentId": "123e4567-e89b-12d3-a456-426614174000",
"signatureNote": "Please review and sign this contract",
"isReminderEnabled": true
}
'import requests
url = "https://api.tomorro.com/v2/contracts/{id}/request-signatures"
payload = {
"documentId": "123e4567-e89b-12d3-a456-426614174000",
"signatureNote": "Please review and sign this contract",
"isReminderEnabled": True
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
documentId: '123e4567-e89b-12d3-a456-426614174000',
signatureNote: 'Please review and sign this contract',
isReminderEnabled: true
})
};
fetch('https://api.tomorro.com/v2/contracts/{id}/request-signatures', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tomorro.com/v2/contracts/{id}/request-signatures",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'documentId' => '123e4567-e89b-12d3-a456-426614174000',
'signatureNote' => 'Please review and sign this contract',
'isReminderEnabled' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.tomorro.com/v2/contracts/{id}/request-signatures"
payload := strings.NewReader("{\n \"documentId\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"signatureNote\": \"Please review and sign this contract\",\n \"isReminderEnabled\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.tomorro.com/v2/contracts/{id}/request-signatures")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"documentId\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"signatureNote\": \"Please review and sign this contract\",\n \"isReminderEnabled\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tomorro.com/v2/contracts/{id}/request-signatures")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"documentId\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"signatureNote\": \"Please review and sign this contract\",\n \"isReminderEnabled\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "sig-123",
"status": "sent",
"signatories": [
{
"id": "sig-123",
"email": "john@example.com",
"type": "member",
"status": "signed",
"signedAt": "2024-01-15T10:00:00Z"
}
],
"contractUrl": "https://app.tomorro.com/acme-corporation/project/550e8400-e29b-41d4-a716-446655440000",
"sentAt": "2024-01-15T10:00:00Z"
}Request contract signatures
Accepts a contract document for signature and starts the signature process if possible.
curl --request POST \
--url https://api.tomorro.com/v2/contracts/{id}/request-signatures \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"documentId": "123e4567-e89b-12d3-a456-426614174000",
"signatureNote": "Please review and sign this contract",
"isReminderEnabled": true
}
'import requests
url = "https://api.tomorro.com/v2/contracts/{id}/request-signatures"
payload = {
"documentId": "123e4567-e89b-12d3-a456-426614174000",
"signatureNote": "Please review and sign this contract",
"isReminderEnabled": True
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
documentId: '123e4567-e89b-12d3-a456-426614174000',
signatureNote: 'Please review and sign this contract',
isReminderEnabled: true
})
};
fetch('https://api.tomorro.com/v2/contracts/{id}/request-signatures', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.tomorro.com/v2/contracts/{id}/request-signatures",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'documentId' => '123e4567-e89b-12d3-a456-426614174000',
'signatureNote' => 'Please review and sign this contract',
'isReminderEnabled' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.tomorro.com/v2/contracts/{id}/request-signatures"
payload := strings.NewReader("{\n \"documentId\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"signatureNote\": \"Please review and sign this contract\",\n \"isReminderEnabled\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.tomorro.com/v2/contracts/{id}/request-signatures")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"documentId\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"signatureNote\": \"Please review and sign this contract\",\n \"isReminderEnabled\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tomorro.com/v2/contracts/{id}/request-signatures")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"documentId\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"signatureNote\": \"Please review and sign this contract\",\n \"isReminderEnabled\": true\n}"
response = http.request(request)
puts response.read_body{
"id": "sig-123",
"status": "sent",
"signatories": [
{
"id": "sig-123",
"email": "john@example.com",
"type": "member",
"status": "signed",
"signedAt": "2024-01-15T10:00:00Z"
}
],
"contractUrl": "https://app.tomorro.com/acme-corporation/project/550e8400-e29b-41d4-a716-446655440000",
"sentAt": "2024-01-15T10:00:00Z"
}Authorizations
API key for authentication. Get your key at https://app.tomorro.com/settings/integrations?integration=api-key
Path Parameters
The unique identifier (UUID) of the contract
"550e8400-e29b-41d4-a716-446655440000"
Body
Document ID to send for signature. If not provided, the last document will be used.
"123e4567-e89b-12d3-a456-426614174000"
Optional note to include with the signature request
"Please review and sign this contract"
Whether to enable signature reminders
true
Response
Contract sent for signature successfully
Unique identifier for the signature.
"sig-123"
Signature status
draft, sent, signed, canceled "sent"
List of signatories
Show child attributes
Show child attributes
[
{
"id": "sig-123",
"email": "john@example.com",
"type": "member",
"status": "signed",
"signedAt": "2024-01-15T10:00:00Z"
}
]
Direct link to the contract in the Tomorro app (https://app.tomorro.com/{organizationSlug}/project/{contractId}).
"https://app.tomorro.com/acme-corporation/project/550e8400-e29b-41d4-a716-446655440000"
Date when the signature was sent
"2024-01-15T10:00:00Z"