curl --request PATCH \
--url https://api.tomorro.com/v2/contracts/{id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "Service Agreement - Acme Corp",
"status": "draft",
"folderId": "550e8400-e29b-41d4-a716-446655440005",
"counterparty": {
"name": "Acme Corporation"
},
"signatureDate": "2024-06-01T00:00:00.000Z",
"signatories": {
"internalSignatoryMemberIds": [
"mem_550e8400-e29b-41d4-a716-446655440004"
],
"externalSignatoryEmailList": [
"signatory@example.com"
]
},
"fields": [
{
"fieldId": "550e8400-e29b-41d4-a716-446655440008",
"value": "Technology"
}
],
"contractMembersIds": [
"550e8400-e29b-41d4-a716-446655440004"
],
"contractGuestsEmails": [
"guest@example.com",
"guest2@example.com"
],
"integration": {
"type": "salesforce"
}
}
'import requests
url = "https://api.tomorro.com/v2/contracts/{id}"
payload = {
"name": "Service Agreement - Acme Corp",
"status": "draft",
"folderId": "550e8400-e29b-41d4-a716-446655440005",
"counterparty": { "name": "Acme Corporation" },
"signatureDate": "2024-06-01T00:00:00.000Z",
"signatories": {
"internalSignatoryMemberIds": ["mem_550e8400-e29b-41d4-a716-446655440004"],
"externalSignatoryEmailList": ["signatory@example.com"]
},
"fields": [
{
"fieldId": "550e8400-e29b-41d4-a716-446655440008",
"value": "Technology"
}
],
"contractMembersIds": ["550e8400-e29b-41d4-a716-446655440004"],
"contractGuestsEmails": ["guest@example.com", "guest2@example.com"],
"integration": { "type": "salesforce" }
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Service Agreement - Acme Corp',
status: 'draft',
folderId: '550e8400-e29b-41d4-a716-446655440005',
counterparty: {name: 'Acme Corporation'},
signatureDate: '2024-06-01T00:00:00.000Z',
signatories: {
internalSignatoryMemberIds: ['mem_550e8400-e29b-41d4-a716-446655440004'],
externalSignatoryEmailList: ['signatory@example.com']
},
fields: [{fieldId: '550e8400-e29b-41d4-a716-446655440008', value: 'Technology'}],
contractMembersIds: ['550e8400-e29b-41d4-a716-446655440004'],
contractGuestsEmails: ['guest@example.com', 'guest2@example.com'],
integration: {type: 'salesforce'}
})
};
fetch('https://api.tomorro.com/v2/contracts/{id}', 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}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Service Agreement - Acme Corp',
'status' => 'draft',
'folderId' => '550e8400-e29b-41d4-a716-446655440005',
'counterparty' => [
'name' => 'Acme Corporation'
],
'signatureDate' => '2024-06-01T00:00:00.000Z',
'signatories' => [
'internalSignatoryMemberIds' => [
'mem_550e8400-e29b-41d4-a716-446655440004'
],
'externalSignatoryEmailList' => [
'signatory@example.com'
]
],
'fields' => [
[
'fieldId' => '550e8400-e29b-41d4-a716-446655440008',
'value' => 'Technology'
]
],
'contractMembersIds' => [
'550e8400-e29b-41d4-a716-446655440004'
],
'contractGuestsEmails' => [
'guest@example.com',
'guest2@example.com'
],
'integration' => [
'type' => 'salesforce'
]
]),
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}"
payload := strings.NewReader("{\n \"name\": \"Service Agreement - Acme Corp\",\n \"status\": \"draft\",\n \"folderId\": \"550e8400-e29b-41d4-a716-446655440005\",\n \"counterparty\": {\n \"name\": \"Acme Corporation\"\n },\n \"signatureDate\": \"2024-06-01T00:00:00.000Z\",\n \"signatories\": {\n \"internalSignatoryMemberIds\": [\n \"mem_550e8400-e29b-41d4-a716-446655440004\"\n ],\n \"externalSignatoryEmailList\": [\n \"signatory@example.com\"\n ]\n },\n \"fields\": [\n {\n \"fieldId\": \"550e8400-e29b-41d4-a716-446655440008\",\n \"value\": \"Technology\"\n }\n ],\n \"contractMembersIds\": [\n \"550e8400-e29b-41d4-a716-446655440004\"\n ],\n \"contractGuestsEmails\": [\n \"guest@example.com\",\n \"guest2@example.com\"\n ],\n \"integration\": {\n \"type\": \"salesforce\"\n }\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.tomorro.com/v2/contracts/{id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Service Agreement - Acme Corp\",\n \"status\": \"draft\",\n \"folderId\": \"550e8400-e29b-41d4-a716-446655440005\",\n \"counterparty\": {\n \"name\": \"Acme Corporation\"\n },\n \"signatureDate\": \"2024-06-01T00:00:00.000Z\",\n \"signatories\": {\n \"internalSignatoryMemberIds\": [\n \"mem_550e8400-e29b-41d4-a716-446655440004\"\n ],\n \"externalSignatoryEmailList\": [\n \"signatory@example.com\"\n ]\n },\n \"fields\": [\n {\n \"fieldId\": \"550e8400-e29b-41d4-a716-446655440008\",\n \"value\": \"Technology\"\n }\n ],\n \"contractMembersIds\": [\n \"550e8400-e29b-41d4-a716-446655440004\"\n ],\n \"contractGuestsEmails\": [\n \"guest@example.com\",\n \"guest2@example.com\"\n ],\n \"integration\": {\n \"type\": \"salesforce\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tomorro.com/v2/contracts/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Service Agreement - Acme Corp\",\n \"status\": \"draft\",\n \"folderId\": \"550e8400-e29b-41d4-a716-446655440005\",\n \"counterparty\": {\n \"name\": \"Acme Corporation\"\n },\n \"signatureDate\": \"2024-06-01T00:00:00.000Z\",\n \"signatories\": {\n \"internalSignatoryMemberIds\": [\n \"mem_550e8400-e29b-41d4-a716-446655440004\"\n ],\n \"externalSignatoryEmailList\": [\n \"signatory@example.com\"\n ]\n },\n \"fields\": [\n {\n \"fieldId\": \"550e8400-e29b-41d4-a716-446655440008\",\n \"value\": \"Technology\"\n }\n ],\n \"contractMembersIds\": [\n \"550e8400-e29b-41d4-a716-446655440004\"\n ],\n \"contractGuestsEmails\": [\n \"guest@example.com\",\n \"guest2@example.com\"\n ],\n \"integration\": {\n \"type\": \"salesforce\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "ctr_550e8400-e29b-41d4-a716-446655440000",
"name": "Service Agreement - Acme Corp",
"status": "draft",
"counterparty": {
"id": "550e8400-e29b-41d4-a716-446655440001",
"name": "Acme Corporation"
},
"contractType": {
"id": "550e8400-e29b-41d4-a716-446655440002",
"name": "Service Agreement"
},
"templateId": "550e8400-e29b-41d4-a716-446655440003",
"initialContractId": "550e8400-e29b-41d4-a716-446655440006",
"folderId": "550e8400-e29b-41d4-a716-446655440005",
"author": {
"id": "550e8400-e29b-41d4-a716-446655440004",
"email": "john.doe@example.com"
},
"fields": [
{
"attributeDefinitionId": "123e4567-e89b-12d3-a456-426614174000",
"name": "Department",
"value": "John Doe"
}
],
"signatories": [
{
"id": "sig_550e8400-e29b-41d4-a716-446655440005",
"name": "John Doe",
"email": "john.doe@example.com",
"type": "member"
}
],
"integration": {
"type": "salesforce",
"externalId": "sf-123456",
"externalEntity": "Opportunity",
"externalUrl": "https://my-crm.example.com/opportunities/sf-123456"
},
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-02-20T14:45:00.000Z",
"contractUrl": "https://app.tomorro.com/acme-corporation/project/550e8400-e29b-41d4-a716-446655440000",
"contractMembers": [
{
"id": "550e8400-e29b-41d4-a716-446655440004",
"email": "john.doe@example.com"
}
]
}Update contract
Updates a contract with the provided fields. Only the fields provided in the request body will be updated.
curl --request PATCH \
--url https://api.tomorro.com/v2/contracts/{id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"name": "Service Agreement - Acme Corp",
"status": "draft",
"folderId": "550e8400-e29b-41d4-a716-446655440005",
"counterparty": {
"name": "Acme Corporation"
},
"signatureDate": "2024-06-01T00:00:00.000Z",
"signatories": {
"internalSignatoryMemberIds": [
"mem_550e8400-e29b-41d4-a716-446655440004"
],
"externalSignatoryEmailList": [
"signatory@example.com"
]
},
"fields": [
{
"fieldId": "550e8400-e29b-41d4-a716-446655440008",
"value": "Technology"
}
],
"contractMembersIds": [
"550e8400-e29b-41d4-a716-446655440004"
],
"contractGuestsEmails": [
"guest@example.com",
"guest2@example.com"
],
"integration": {
"type": "salesforce"
}
}
'import requests
url = "https://api.tomorro.com/v2/contracts/{id}"
payload = {
"name": "Service Agreement - Acme Corp",
"status": "draft",
"folderId": "550e8400-e29b-41d4-a716-446655440005",
"counterparty": { "name": "Acme Corporation" },
"signatureDate": "2024-06-01T00:00:00.000Z",
"signatories": {
"internalSignatoryMemberIds": ["mem_550e8400-e29b-41d4-a716-446655440004"],
"externalSignatoryEmailList": ["signatory@example.com"]
},
"fields": [
{
"fieldId": "550e8400-e29b-41d4-a716-446655440008",
"value": "Technology"
}
],
"contractMembersIds": ["550e8400-e29b-41d4-a716-446655440004"],
"contractGuestsEmails": ["guest@example.com", "guest2@example.com"],
"integration": { "type": "salesforce" }
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Service Agreement - Acme Corp',
status: 'draft',
folderId: '550e8400-e29b-41d4-a716-446655440005',
counterparty: {name: 'Acme Corporation'},
signatureDate: '2024-06-01T00:00:00.000Z',
signatories: {
internalSignatoryMemberIds: ['mem_550e8400-e29b-41d4-a716-446655440004'],
externalSignatoryEmailList: ['signatory@example.com']
},
fields: [{fieldId: '550e8400-e29b-41d4-a716-446655440008', value: 'Technology'}],
contractMembersIds: ['550e8400-e29b-41d4-a716-446655440004'],
contractGuestsEmails: ['guest@example.com', 'guest2@example.com'],
integration: {type: 'salesforce'}
})
};
fetch('https://api.tomorro.com/v2/contracts/{id}', 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}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'Service Agreement - Acme Corp',
'status' => 'draft',
'folderId' => '550e8400-e29b-41d4-a716-446655440005',
'counterparty' => [
'name' => 'Acme Corporation'
],
'signatureDate' => '2024-06-01T00:00:00.000Z',
'signatories' => [
'internalSignatoryMemberIds' => [
'mem_550e8400-e29b-41d4-a716-446655440004'
],
'externalSignatoryEmailList' => [
'signatory@example.com'
]
],
'fields' => [
[
'fieldId' => '550e8400-e29b-41d4-a716-446655440008',
'value' => 'Technology'
]
],
'contractMembersIds' => [
'550e8400-e29b-41d4-a716-446655440004'
],
'contractGuestsEmails' => [
'guest@example.com',
'guest2@example.com'
],
'integration' => [
'type' => 'salesforce'
]
]),
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}"
payload := strings.NewReader("{\n \"name\": \"Service Agreement - Acme Corp\",\n \"status\": \"draft\",\n \"folderId\": \"550e8400-e29b-41d4-a716-446655440005\",\n \"counterparty\": {\n \"name\": \"Acme Corporation\"\n },\n \"signatureDate\": \"2024-06-01T00:00:00.000Z\",\n \"signatories\": {\n \"internalSignatoryMemberIds\": [\n \"mem_550e8400-e29b-41d4-a716-446655440004\"\n ],\n \"externalSignatoryEmailList\": [\n \"signatory@example.com\"\n ]\n },\n \"fields\": [\n {\n \"fieldId\": \"550e8400-e29b-41d4-a716-446655440008\",\n \"value\": \"Technology\"\n }\n ],\n \"contractMembersIds\": [\n \"550e8400-e29b-41d4-a716-446655440004\"\n ],\n \"contractGuestsEmails\": [\n \"guest@example.com\",\n \"guest2@example.com\"\n ],\n \"integration\": {\n \"type\": \"salesforce\"\n }\n}")
req, _ := http.NewRequest("PATCH", 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.patch("https://api.tomorro.com/v2/contracts/{id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Service Agreement - Acme Corp\",\n \"status\": \"draft\",\n \"folderId\": \"550e8400-e29b-41d4-a716-446655440005\",\n \"counterparty\": {\n \"name\": \"Acme Corporation\"\n },\n \"signatureDate\": \"2024-06-01T00:00:00.000Z\",\n \"signatories\": {\n \"internalSignatoryMemberIds\": [\n \"mem_550e8400-e29b-41d4-a716-446655440004\"\n ],\n \"externalSignatoryEmailList\": [\n \"signatory@example.com\"\n ]\n },\n \"fields\": [\n {\n \"fieldId\": \"550e8400-e29b-41d4-a716-446655440008\",\n \"value\": \"Technology\"\n }\n ],\n \"contractMembersIds\": [\n \"550e8400-e29b-41d4-a716-446655440004\"\n ],\n \"contractGuestsEmails\": [\n \"guest@example.com\",\n \"guest2@example.com\"\n ],\n \"integration\": {\n \"type\": \"salesforce\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tomorro.com/v2/contracts/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"Service Agreement - Acme Corp\",\n \"status\": \"draft\",\n \"folderId\": \"550e8400-e29b-41d4-a716-446655440005\",\n \"counterparty\": {\n \"name\": \"Acme Corporation\"\n },\n \"signatureDate\": \"2024-06-01T00:00:00.000Z\",\n \"signatories\": {\n \"internalSignatoryMemberIds\": [\n \"mem_550e8400-e29b-41d4-a716-446655440004\"\n ],\n \"externalSignatoryEmailList\": [\n \"signatory@example.com\"\n ]\n },\n \"fields\": [\n {\n \"fieldId\": \"550e8400-e29b-41d4-a716-446655440008\",\n \"value\": \"Technology\"\n }\n ],\n \"contractMembersIds\": [\n \"550e8400-e29b-41d4-a716-446655440004\"\n ],\n \"contractGuestsEmails\": [\n \"guest@example.com\",\n \"guest2@example.com\"\n ],\n \"integration\": {\n \"type\": \"salesforce\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "ctr_550e8400-e29b-41d4-a716-446655440000",
"name": "Service Agreement - Acme Corp",
"status": "draft",
"counterparty": {
"id": "550e8400-e29b-41d4-a716-446655440001",
"name": "Acme Corporation"
},
"contractType": {
"id": "550e8400-e29b-41d4-a716-446655440002",
"name": "Service Agreement"
},
"templateId": "550e8400-e29b-41d4-a716-446655440003",
"initialContractId": "550e8400-e29b-41d4-a716-446655440006",
"folderId": "550e8400-e29b-41d4-a716-446655440005",
"author": {
"id": "550e8400-e29b-41d4-a716-446655440004",
"email": "john.doe@example.com"
},
"fields": [
{
"attributeDefinitionId": "123e4567-e89b-12d3-a456-426614174000",
"name": "Department",
"value": "John Doe"
}
],
"signatories": [
{
"id": "sig_550e8400-e29b-41d4-a716-446655440005",
"name": "John Doe",
"email": "john.doe@example.com",
"type": "member"
}
],
"integration": {
"type": "salesforce",
"externalId": "sf-123456",
"externalEntity": "Opportunity",
"externalUrl": "https://my-crm.example.com/opportunities/sf-123456"
},
"createdAt": "2024-01-15T10:30:00.000Z",
"updatedAt": "2024-02-20T14:45:00.000Z",
"contractUrl": "https://app.tomorro.com/acme-corporation/project/550e8400-e29b-41d4-a716-446655440000",
"contractMembers": [
{
"id": "550e8400-e29b-41d4-a716-446655440004",
"email": "john.doe@example.com"
}
]
}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
The name or title of the contract.
"Service Agreement - Acme Corp"
The status of the contract.
draft: The contract is being created or edited.negotiating: The contract is being reviewed with counterparties.canceled: The contract has been canceled.
draft, negotiating, signing, signed, canceled "draft"
ID of the folder to move the contract to.
"550e8400-e29b-41d4-a716-446655440005"
Counterparty for the contract. Can reference an existing counterparty by ID or update with a new name.
Show child attributes
Show child attributes
{ "name": "Acme Corporation" }
The date when the contract was signed. Formatted as an ISO 8601 date-time string.
"2024-06-01T00:00:00.000Z"
List of internal and external signatories for the contract
Show child attributes
Show child attributes
{
"internalSignatoryMemberIds": ["mem_550e8400-e29b-41d4-a716-446655440004"],
"externalSignatoryEmailList": ["signatory@example.com"]
}
Field values to set on the contract. Use field IDs and values (option labels for select fields).
Show child attributes
Show child attributes
[
{
"fieldId": "550e8400-e29b-41d4-a716-446655440008",
"value": "Technology"
}
]
List of members to add to the contract
["550e8400-e29b-41d4-a716-446655440004"]
List of guests to add to the contract
["guest@example.com", "guest2@example.com"]
Integration parameters. When provided, field values will be resolved using integration-specific option mappings.
Show child attributes
Show child attributes
{ "type": "salesforce" }
Response
Contract updated successfully
Unique identifier for the contract.
"ctr_550e8400-e29b-41d4-a716-446655440000"
The name or title of the contract.
"Service Agreement - Acme Corp"
The current status of the contract.
draft: The contract is being created or edited.negotiating: The contract is being reviewed with counterparties.signing: The contract is in the signature process.signed: All parties have signed the contract.canceled: The contract has been canceled.
"draft"
The counterparty associated with this contract.
Show child attributes
Show child attributes
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"name": "Acme Corporation"
}
The type of the contract, it is composed of many templates.
Show child attributes
Show child attributes
{
"id": "550e8400-e29b-41d4-a716-446655440002",
"name": "Service Agreement"
}
The template used to create this contract.
"550e8400-e29b-41d4-a716-446655440003"
When this contract is an amendment, the id of the initial (root) contract it amends. null for initial contracts and for amendments that have been unlinked.
"550e8400-e29b-41d4-a716-446655440006"
The folder the contract is filed in. null when the contract sits at the root of the contract list. Matches the folderId accepted on PATCH /contracts/{id} and the folderId filter on GET /contracts.
"550e8400-e29b-41d4-a716-446655440005"
The member who created this contract.
Show child attributes
Show child attributes
{
"id": "550e8400-e29b-41d4-a716-446655440004",
"email": "john.doe@example.com"
}
The fields associated with this contract.
Show child attributes
Show child attributes
[
{
"attributeDefinitionId": "123e4567-e89b-12d3-a456-426614174000",
"name": "Department",
"value": "John Doe"
}
]
The signatories associated with this contract.
Show child attributes
Show child attributes
[
{
"id": "sig_550e8400-e29b-41d4-a716-446655440005",
"name": "John Doe",
"email": "john.doe@example.com",
"type": "member"
}
]
The third-party system this contract is linked to, when it was created via an integration (currently Salesforce or HubSpot). The shape mirrors the integration payload accepted on POST /contracts, so you can use this to look up the originating record in your CRM. null when the contract has no external link or was created from the Tomorro web app.
Show child attributes
Show child attributes
{
"type": "salesforce",
"externalId": "sf-123456",
"externalEntity": "Opportunity",
"externalUrl": "https://my-crm.example.com/opportunities/sf-123456"
}
Time at which the contract was created. Formatted as an ISO 8601 date-time string.
"2024-01-15T10:30:00.000Z"
Time at which the contract was last updated. Formatted as an ISO 8601 date-time string.
"2024-02-20T14:45:00.000Z"
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"
The list of participants with this contract.
Show child attributes
Show child attributes
[
{
"id": "550e8400-e29b-41d4-a716-446655440004",
"email": "john.doe@example.com"
}
]