Skip to main content
POST
/
contracts
Create a contract
curl --request POST \
  --url http://localhost:3015/contracts \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "templateId": "550e8400-e29b-41d4-a716-446655440003",
  "counterparty": {
    "name": "Acme Corporation"
  },
  "name": "Service Agreement - Acme Corp",
  "signatories": [
    {
      "InternalSignatoryMemberIds": [
        "mem_550e8400-e29b-41d4-a716-446655440004"
      ],
      "ExternalSignatoryEmailList": [
        "signatory@example.com"
      ]
    }
  ],
  "fields": [
    {
      "fieldId": "550e8400-e29b-41d4-a716-446655440008",
      "value": "Technology"
    }
  ],
  "contractMembers": [
    {
      "memberId": "550e8400-e29b-41d4-a716-446655440004"
    }
  ],
  "contractTypeId": "550e8400-e29b-41d4-a716-446655440002",
  "folderId": "550e8400-e29b-41d4-a716-446655440005",
  "referentId": "550e8400-e29b-41d4-a716-446655440006",
  "supervisorId": "550e8400-e29b-41d4-a716-446655440007"
}
'
{
  "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"
  },
  "template": {
    "id": "550e8400-e29b-41d4-a716-446655440003",
    "name": "Standard Service Agreement"
  },
  "author": {
    "id": "550e8400-e29b-41d4-a716-446655440004",
    "email": "john.doe@example.com"
  },
  "referent": {
    "id": "550e8400-e29b-41d4-a716-446655440005",
    "email": "referent@example.com"
  },
  "supervisor": {
    "id": "550e8400-e29b-41d4-a716-446655440006",
    "email": "supervisor@example.com"
  },
  "startAt": "2024-06-01T00:00:00.000Z",
  "endAt": "2025-05-31T23:59:59.999Z",
  "fields": [
    {
      "attributeDefinitionId": "123e4567-e89b-12d3-a456-426614174000",
      "value": "John Doe"
    }
  ],
  "signatories": [
    {
      "id": "sig_550e8400-e29b-41d4-a716-446655440005",
      "name": "John Doe",
      "email": "john.doe@example.com",
      "type": "member"
    }
  ],
  "createdAt": "2024-01-15T10:30:00.000Z",
  "updatedAt": "2024-01-15T10:30:00.000Z"
}

Authorizations

x-api-key
string
header
required

API key for authentication. Get your key at https://app.tomorro.com/settings/api

Body

application/json
templateId
string
required

ID of the template to create the document from

Example:

"550e8400-e29b-41d4-a716-446655440003"

counterparty
object
required

Counterparty for the contract. Can reference an existing counterparty by ID or create a new one.

Example:
{ "name": "Acme Corporation" }
name
string

Contract name. If omitted, auto-generated from the template name.

Example:

"Service Agreement - Acme Corp"

signatories
object

List of internal and external signatories for the contract

Example:
[
{
"InternalSignatoryMemberIds": ["mem_550e8400-e29b-41d4-a716-446655440004"],
"ExternalSignatoryEmailList": ["signatory@example.com"]
}
]
fields
object[]

Field values to set on the contract. Use field IDs and values (option labels for select fields).

Example:
[
{
"fieldId": "550e8400-e29b-41d4-a716-446655440008",
"value": "Technology"
}
]
contractMembers
object[]

List of members to add to the contract

Example:
[
{
"memberId": "550e8400-e29b-41d4-a716-446655440004"
}
]
contractTypeId
string

ID of the contract type

Example:

"550e8400-e29b-41d4-a716-446655440002"

folderId
string

ID of the folder to place the contract in

Example:

"550e8400-e29b-41d4-a716-446655440005"

referentId
string

ID of the member to set as contract referent

Example:

"550e8400-e29b-41d4-a716-446655440006"

supervisorId
string

ID of the member to set as contract supervisor

Example:

"550e8400-e29b-41d4-a716-446655440007"

Response

Contract created successfully Any non-signed status can transition to canceled

id
string
required

Unique identifier for the contract.

Example:

"ctr_550e8400-e29b-41d4-a716-446655440000"

name
string
required

The name or title of the contract.

Example:

"Service Agreement - Acme Corp"

status
string
required

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.
Example:

"draft"

counterparty
object

The counterparty associated with this contract.

Example:
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"name": "Acme Corporation"
}
contractType
object

The type/category of this contract.

Example:
{
"id": "550e8400-e29b-41d4-a716-446655440002",
"name": "Service Agreement"
}
template
object

The template used to create this contract, if any.

Example:
{
"id": "550e8400-e29b-41d4-a716-446655440003",
"name": "Standard Service Agreement"
}
author
object

The member who created this contract.

Example:
{
"id": "550e8400-e29b-41d4-a716-446655440004",
"email": "john.doe@example.com"
}
referent
object

The member designated as the referent for this contract. The referent is typically the primary point of contact or owner.

Example:
{
"id": "550e8400-e29b-41d4-a716-446655440005",
"email": "referent@example.com"
}
supervisor
object

The member designated as the supervisor for this contract. The supervisor has oversight responsibility for the contract.

Example:
{
"id": "550e8400-e29b-41d4-a716-446655440006",
"email": "supervisor@example.com"
}
startAt
object

The date when the contract term begins. Formatted as an ISO 8601 date-time string.

Example:

"2024-06-01T00:00:00.000Z"

endAt
object

The date when the contract term ends. Formatted as an ISO 8601 date-time string.

Example:

"2025-05-31T23:59:59.999Z"

fields
object[]

The fields associated with this contract.

Example:
[
{
"attributeDefinitionId": "123e4567-e89b-12d3-a456-426614174000",
"value": "John Doe"
}
]
signatories
object[]

The signatories associated with this contract.

Example:
[
{
"id": "sig_550e8400-e29b-41d4-a716-446655440005",
"name": "John Doe",
"email": "john.doe@example.com",
"type": "member"
}
]
createdAt
string<date-time>

Time at which the contract was created. Formatted as an ISO 8601 date-time string.

Example:

"2024-01-15T10:30:00.000Z"

updatedAt
string<date-time>

Time at which the contract was last updated. Formatted as an ISO 8601 date-time string.

Example:

"2024-01-15T10:30:00.000Z"