Ironclad

Contract lifecycle management platform

developer.ironcladapp.com ↗
Version
1
OpenAPI
3.0.3
Endpoints
41
Schemas
142
Updated
3 days ago
Legal legal contracts compliance
Use this API in your AI agent

Query structured spec data via REST or MCP. Get exactly what your agent needs.

Get API Key

Server URLs

https://ironcladapp.com/public/api/v1
https://eu1.ironcladapp.com/public/api/v1
https://demo.ironcladapp.com/public/api/v1
https://preview.ironcladapp.com/public/api/v1

Authentication

apiKey

Endpoints

Records 14 endpoints

GET /records

View all records in the company, with filtering available via query parameters

operationId: Records_listAll

Parameters

Name In Required Type Description
optional
optional
optional
optional
optional
sortField query optional string The field to sort Records. Only one field is supported in the sort operation.
sortDirection query optional string The direction the records are sorted by in correlation with the `sortField`.

Responses

200 200
400 400
GET /records
POST /records

Create a contract record by specifying its intended metadata properties

operationId: Records_createRecord

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/RecordsCreateRecordRequest"
      }
    }
  }
}

Responses

200 200
400 400
POST /records
GET /records/export

Export a records report with filtering available via query parameters

operationId: Records_getXlsxExportFile

Parameters

Name In Required Type Description
types query optional string Comma separated list of record types to export. Example: `mutualNDA,NDA`
properties query optional string IDs of properties to export, comma separated. Example: `counterpartyName,agreementDate`

Responses

200 200
400 400
GET /records/export
GET /records/metadata

View the schema associated with contract records, including available record types and metadata properties.

operationId: Records_getSchema

Responses

200 200
400 400
GET /records/metadata
GET /records/smart-import

Retrieve status of predictions of specific smart import record or all records in an import, one of Record Id or Import Id is required.

operationId: Records_getPredictions

Parameters

Name In Required Type Description
recordId query optional string The ID of the Record for prediction status.
importId query optional string The ID of the Import for prediction statuses.

Responses

200 200
400 400
403 403
404 404
GET /records/smart-import
POST /records/smart-import

Upload a file to create a record with smart import and predictions. Provide none of recordType, newRecordTypeId, or newRecordTypeDisplayName to default to Imported type.

operationId: Records_uploadSmartImportRecord

Request Body

{
  "content": {
    "multipart/form-data": {
      "schema": {
        "$ref": "#/components/schemas/RecordsUploadSmartImportRecordRequest"
      }
    }
  }
}

Responses

200 200
400 400
403 403
404 404
POST /records/smart-import
POST /records/smart-import/{importId}

Upload a file to an existing import and create a record with smart import and predictions. Provide none of recordType, newRecordTypeId, or newRecordTypeDisplayName to default to Imported type.

operationId: Records_uploadSmartImportRecordWithPredictions

Parameters

Name In Required Type Description
importId path required string The Import Id. You can upload a record to an existing import in the repository.

Request Body

{
  "content": {
    "multipart/form-data": {
      "schema": {
        "$ref": "#/components/schemas/RecordsUploadSmartImportRecordWithPredictionsRequest"
      }
    }
  }
}

Responses

200 200
400 400
403 403
404 404
POST /records/smart-import/{importId}
DELETE /records/{id}

Delete an existing record

operationId: Records_deleteRecord

Parameters

Name In Required Type Description
id path required string The ID or Ironclad ID of the Record.

Responses

204 204
400 404
DELETE /records/{id}
GET /records/{id}

View a specific record and its associated data

operationId: Records_getRecordData

Parameters

Name In Required Type Description
id path required string The ID or Ironclad ID of the Record.

Responses

200 200
400 400
GET /records/{id}
PATCH /records/{id}

Update specific fields on a record

operationId: Records_updateMetadata

Parameters

Name In Required Type Description
id path required string The ID or Ironclad ID of the Record.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/RecordsUpdateMetadataRequest"
      },
      "examples": {
        "Request Example": {
          "value": {
            "name": "Consulting Agreement with Jane Doe",
            "type": "consultingAgreement",
            "addLinks": [
              {
                "recordId": "df1c2805-f5a3-4a14-9386-c28d950dff49"
              }
            ],
            "removeLinks": [
              {
                "recordId": "df1c2805-f5a3-4a14-9386-c28d950dff49"
              }
            ],
            "addProperties": {
              "agreementDate": {
                "type": "date",
                "value": "2018-05-08T00:00:00-07:00"
              },
              "counterpartyName": {
                "type": "string",
                "value": "Jane Doe"
              }
            },
            "removeProperties": [
              "counterpartySigner"
            ]
          }
        }
      }
    }
  }
}

Responses

200 200
400 400
404 404
PATCH /records/{id}
PUT /records/{id}

Update an existing record with a new set of metadata

operationId: Records_replaceMetadata

Parameters

Name In Required Type Description
id path required string The ID or Ironclad ID of the Record.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/RecordsReplaceMetadataRequest"
      }
    }
  }
}

Responses

200 200
400 400
PUT /records/{id}
DELETE /records/{id}/attachments/{key}

Remove an attachment associated with a specific record

operationId: Records_removeAttachment

Parameters

Name In Required Type Description
id path required string The ID or Ironclad ID of the Record.
key path required string The attachment key.

Responses

204 204
404
DELETE /records/{id}/attachments/{key}
GET /records/{id}/attachments/{key}

View an attachment associated with a specific record

operationId: Records_getAttachment

Parameters

Name In Required Type Description
id path required string The ID or Ironclad ID of the Record.
key path required string The attachment key.

Responses

200 200
400 400
GET /records/{id}/attachments/{key}
POST /records/{id}/attachments/{key}

Create an attachment on a specified record at the specified attachment key.

operationId: Records_createAttachment

Parameters

Name In Required Type Description
id path required string The ID or Ironclad ID of the Record. For an explanation of Record IDs or Ironclad IDs and how to find them, see [Getting Started](https://developer.ironcladapp.com/reference/getting-started-api).
key path required string The attachment key. You can retrieve a list of available attachment keys with the [Retrieve Records Schema](https://developer.ironcladapp.com/reference/list-all-records-metadata) endpoint.

Request Body

{
  "content": {
    "multipart/form-data": {
      "schema": {
        "$ref": "#/components/schemas/RecordsCreateAttachmentRequest"
      }
    }
  }
}

Responses

200 200
400
POST /records/{id}/attachments/{key}

Webhooks 6 endpoints

GET /webhooks

View all webhooks associated with a specific company with filtering available via query parameters

operationId: Webhooks_listAll

Parameters

Name In Required Type Description
optional
optional

Responses

200 200
400 400
GET /webhooks
POST /webhooks

Creates a webhook for the specified events. Send separate requests if you need to create webhooks for multiple target URLs. Each target URL may only have one active registration.

operationId: Webhooks_createNew

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/WebhooksCreateNewRequest"
      }
    }
  }
}

Responses

200 200
400
POST /webhooks
GET /webhooks/verification-key

View the verification key for webhook security implementations

operationId: Webhooks_getVerificationKey

Responses

200 200
400 400
GET /webhooks/verification-key
DELETE /webhooks/{id}

Delete a specific webhook

operationId: Webhooks_deleteSpecific

Parameters

Name In Required Type Description
id path required string The ID of the webhook.

Responses

200 200
400 400
DELETE /webhooks/{id}
GET /webhooks/{id}

View the data associated with a specific webhook

operationId: Webhooks_getData

Parameters

Name In Required Type Description
id path required string The ID of the webhook.

Responses

200 200
400 400
GET /webhooks/{id}
PATCH /webhooks/{id}

Update the data associated with a specific webhook

operationId: Webhooks_updateWebhookData

Parameters

Name In Required Type Description
id path required string The ID of the webhook.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/WebhooksUpdateWebhookDataRequest"
      }
    }
  }
}

Responses

200 200
400 400
PATCH /webhooks/{id}

Workflows 20 endpoints

GET /workflow-schemas

Returns a list of workflow schemas. Each schema specifies the fields used in the workflow's launch form.

operationId: Workflows_listAllWorkflowSchemas

Parameters

Name In Required Type Description
form query required string The launch form is the only form supported at this time.
optional
optional

Responses

200 200
400 400
GET /workflow-schemas
GET /workflow-schemas/{id}

Returns the fields used in the workflow's launch form.

operationId: Workflows_getWorkflowSchema

Parameters

Name In Required Type Description
id path required string The unique identifier of a schema (see explanation of [Template ID](https://developer.ironcladapp.com/reference/getting-started-api)). A list of identifiers can be retrieved using the `GET /workflow-schemas` endpoint. Only published workflows will have an identifier.
form query optional string
optional
optional

Responses

200 200
400 400
GET /workflow-schemas/{id}
GET /workflows

List all workflows in your Ironclad account.

operationId: Workflows_listAll

Parameters

Name In Required Type Description
optional
optional
status query optional string Filter the workflows that are listed based on their status. If this parameter is omitted, `active` workflows will be returned. Active workflows include workflows in the Create, Review, Sign, and Archive stages.
template query optional string Filter workflows to a specific Template ID.
lastUpdated query optional string Retrieve workflows that have been updated since a UTC date.
filter query optional string Filter workflows using a formula. The workflow attribute ID should be enclosed in brackets `[ ]` and the value should be enclosed in single quotes `' '`. Workflow attributes for a specific workflow design can be identified using the [List All Workflow Schemas](https://developer.ironcladapp.com/reference/list-all-workflow-schemas) endpoint. Supported formula operations include: <ul> <li><code>Equals</code></li> <li><code>Contains</code></li> <li><code>And</code></li> <li><code>Or</code></li> </ul> For more information on writing formulas, please refer to <a href="https://ironcladapp.com/formulas/#company%20display%20name">this article</a>.

Responses

200 200
GET /workflows
POST /workflows

Launch a new Workflow synchronously.

operationId: Workflows_createSyncWorkflow

Request Body

{
  "$ref": "#/components/requestBodies/WorkflowLaunch"
}

Responses

200
400
POST /workflows
POST /workflows/async

Launch a new Workflow asynchronously for non-blocking performance, which is helpful when/if you provide files to the Workflow.

operationId: Workflows_launchAsynchronously

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/WorkflowRequestModel"
      }
    }
  }
}

Responses

200
400 Bad Request
POST /workflows/async
GET /workflows/async/{asyncJobId}

Check the status of a Workflow you created while using the [Create a Workflow Async](https://developer.ironcladapp.com/reference/create-a-workflow-sync-vs-async#create-a-new-workflow-async) route.

operationId: Workflows_getAsyncJobStatus

Parameters

Name In Required Type Description
asyncJobId path required string The identifier provided in the response of creating a Workflow asynchronously.

Responses

200
404 404
GET /workflows/async/{asyncJobId}
GET /workflows/{id}

View the data associated with a specific workflow

operationId: Workflows_getWorkflow

Parameters

Name In Required Type Description
id path required string The unique identifier or Ironclad ID of a workflow.

Responses

200 200
400 400
GET /workflows/{id}
GET /workflows/{id}/approval-requests

Returns a list of approval requests that have taken place on the workflow.

operationId: Workflows_getApprovalRequests

Parameters

Name In Required Type Description
id path required string The unique identifier or Ironclad ID of a workflow.
optional
optional
actorDetails query optional boolean An optional boolean parameter that adds additional information about the actor to each item in the response. Defaults to false.

Responses

200 200
403 403
404 404
GET /workflows/{id}/approval-requests
GET /workflows/{id}/approvals

Returns a list of approvals for the workflow. The `approvalGroups` property will display only triggered approvals (i.e. conditional approvals that have not been triggered will not appear).

operationId: Workflows_listApprovals

Parameters

Name In Required Type Description
id path required string The unique identifier or Ironclad ID of a workflow.

Responses

200 200
400 400
GET /workflows/{id}/approvals
PATCH /workflows/{id}/approvals/{roleId}

Updates an approval to the specified status. Approvals can only be updated during the Review step.

operationId: Workflows_updateApprovalStatus

Parameters

Name In Required Type Description
id path required string The unique identifier or Ironclad ID of a workflow.
roleId path required string The unique identifier of the approver role whose status should be changed. This identifier can be retrieved using the `GET /workflows/{id}/approvals` endpoint.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/WorkflowsUpdateApprovalStatusRequest"
      }
    }
  }
}

Responses

200 200
400 400
PATCH /workflows/{id}/approvals/{roleId}
PATCH /workflows/{id}/attributes

The workflow must be in the Review step in order for its data to be updated. Use the `remove` action to clear field values and the `set` action to add or modify values. Form validation is enforced; required fields cannot be removed and any required fields triggered by conditions must be populated.

operationId: Workflows_updateMetadata

Parameters

Name In Required Type Description
id path required string The unique identifier or Ironclad ID of a workflow.
optional
optional

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/WorkflowsUpdateMetadataRequest"
      }
    }
  }
}

Responses

200 200
400 400
403 403
404 404
PATCH /workflows/{id}/attributes
POST /workflows/{id}/comments

Creates a comment in the specified workflow's activity feed.

operationId: Workflows_createComment

Parameters

Name In Required Type Description
id path required string The unique identifier or Ironclad ID of a workflow.

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/WorkflowsCreateCommentRequest1"
      }
    }
  }
}

Responses

200 200
400 400
POST /workflows/{id}/comments
GET /workflows/{id}/document/{key}/download

Download a document associated with a specific workflow via a reference to its document key

operationId: Workflows_getDocumentByKey

Parameters

Name In Required Type Description
id path required string The unique identifier or Ironclad ID of a workflow.
key path required string The unique identifier for the attachment. This key can be located using the [Retrieve a Workflow](https://developer.ironcladapp.com/reference/retrieve-a-workflow) endpoint. In the response, locate the file attribute (e.g., `draft`) and look at its `download` parameter. The download parameter includes the key at the end of the URL `.../document/{ATTACHMENT_KEY}/download`

Responses

200 200
400 400
GET /workflows/{id}/document/{key}/download
GET /workflows/{id}/emails

List all email threads in the specified workflow

operationId: Workflows_getEmailThreads

Parameters

Name In Required Type Description
optional
optional
optional

Responses

200
404
GET /workflows/{id}/emails
GET /workflows/{id}/emails/{emailThreadId}

List a single email thread for a specified workflow

operationId: Workflows_getEmailThread

Parameters

Name In Required Type Description
optional
optional

Responses

200
404
GET /workflows/{id}/emails/{emailThreadId}
GET /workflows/{id}/emails/{emailThreadId}/attachments/{attachmentId}

Retrieve an attachment from the specified email thread

operationId: Workflows_getAttachmentFromEmailThread

Parameters

Name In Required Type Description
optional
optional
attachmentId path required string The unique identifier for the attachment. This key can be located using the [Retrieve email threads from workflow](https://developer.ironcladapp.com/reference/retrieve-emails) endpoint. In the response, locate the file attribute (e.g., `attachments`) and look at its `download` parameter. The download parameter includes the key at the end of the URL `...emails/{emailThreadId}/attachment/{ATTACHMENT_ID}`

Responses

200 200
404
GET /workflows/{id}/emails/{emailThreadId}/attachments/{attachmentId}
GET /workflows/{id}/participants

Returns a list of workflow participants.

operationId: Workflows_listAllParticipants

Parameters

Name In Required Type Description
id path required string The unique identifier or Ironclad ID of a workflow.
optional
optional
email query optional string The Ironclad user's email address.

Responses

200 200
403 403
404
GET /workflows/{id}/participants
PATCH /workflows/{id}/revert-to-review

Reverts a workflow to the Review step. Only workflows sourced from Workflow Designer and in the Sign step can be reverted.

operationId: Workflows_revertToReview

Parameters

Name In Required Type Description
id path required string The unique identifier or Ironclad ID of a workflow.
optional
optional

Request Body

{
  "content": {
    "application/json": {
      "schema": {
        "$ref": "#/components/schemas/WorkflowsRevertToReviewRequest"
      }
    }
  }
}

Responses

204 204
400 400
403 403
404 404
PATCH /workflows/{id}/revert-to-review
GET /workflows/{id}/signatures

Returns a list of workflow signers and the status of their signature.

operationId: Workflows_listSignatures

Parameters

Name In Required Type Description
id path required string The unique identifier or Ironclad ID of a workflow.

Responses

200 200
400 400
403 403
GET /workflows/{id}/signatures
GET /workflows/{id}/turn-history

An array of objects for each turn on a workflow.

operationId: Workflows_getTurnHistory

Parameters

Name In Required Type Description
id path required string The unique identifier or Ironclad ID of a workflow.
optional
optional

Responses

200 200
403 403
404 404
GET /workflows/{id}/turn-history

Schemas

object ActivityAuthorModel
{
  "type": "object",
  "oneOf": [
    {
      "$ref": "#/components/schemas/InternalUserModel"
    },
    {
      "$ref": "#/components/schemas/ExternalUserModel"
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "integration"
          ],
          "type": "string",
          "example": "integration"
        },
        "displayName": {
          "type": "string",
          "example": "Salesforce"
        }
      }
    },
    {
      "type": "object",
      "properties": {
        "type": {
          "enum": [
            "system"
          ],
          "type": "string",
          "example": "system"
        },
        "displayName": {
          "type": "string",
          "example": "Ironclad"
        }
      }
    }
  ]
}
object ActivityMetadataModel
{
  "type": "object",
  "oneOf": [
    {
      "$ref": "#/components/schemas/CommentMetadataModel"
    }
  ],
  "discriminator": {
    "mapping": {
      "comment": "#/components/schemas/CommentMetadataModel"
    },
    "propertyName": "objectType"
  }
}
object ActivityReactionModel
{
  "type": "object",
  "properties": {
    "emojiId": {
      "type": "string",
      "example": "smile"
    },
    "reactors": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/UserModel"
      }
    }
  }
}
object AttachmentNotFound
{
  "type": "object",
  "title": "Bad Request Error - attachmentId Not Found",
  "properties": {
    "code": {
      "type": "string",
      "example": "NOT_FOUND"
    },
    "param": {
      "type": "string",
      "example": "attachmentId"
    },
    "message": {
      "type": "string",
      "example": "attachmentId does not exist"
    }
  },
  "description": "attachmentId Not Found Request Error"
}
number AttributeNumberModel
{
  "type": "number",
  "example": 5
}
string AttributeStringModel
{
  "type": "string",
  "example": "Example Value"
}
object AttributesModel
{
  "type": "object",
  "required": [
    "counterpartyName"
  ],
  "properties": {
    "draft": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "example": "https://www.law.berkeley.edu/wp-content/uploads/2018/12/Resume-Samples-1.pdf",
            "description": "URL of the file to be uploaded"
          }
        }
      },
      "description": "Provide a URL for a file representing the first uploaded version of a counterparty paper. This field is required when the template source is set to third party paper"
    },
    "paperSource": {
      "enum": [
        "Counterparty paper",
        "Our paper"
      ],
      "type": "string",
      "description": "Indicate the type of paper source used on a contract that supports both templatized and third party paper functionality. This field is required when there exists a question for selecting paper source on the template"
    },
    "counterpartyName": {
      "type": "string",
      "example": "Example Company"
    }
  },
  "description": "The data that will be used to populate the workflow's fields. Learn more about the various attributes and their associated types by viewing the [Launch a Workflow](https://developer.ironcladapp.com/docs/launch-a-workflow) guide. Your attributes will differ and include more than this simple example."
}
object BadRequestErrorRecordAttachmentAlreadyExists
{
  "type": "object",
  "title": "Bad Request Error - Record Attachment Already Exists.",
  "properties": {
    "code": {
      "type": "string",
      "example": "INVALID_PARAM"
    },
    "param": {
      "type": "string",
      "example": "attachmentKey"
    },
    "message": {
      "type": "string",
      "example": "record attachment key 'signedCopy' already exists for record"
    }
  },
  "description": "Bad request error. The specified attachment key has an existing file."
}
object BadRequestErrorRecordAttachmentExtension
{
  "type": "object",
  "title": "Bad Request Error - Record Attachment Extension Not Supported",
  "properties": {
    "code": {
      "type": "string",
      "example": "INVALID_PARAM"
    },
    "param": {
      "type": "string",
      "example": "metadata.filename"
    },
    "message": {
      "type": "string",
      "example": "filename \"NDA - Acme LLC\" does not have an accepted extension. Only the following extensions are allowed: .adoc, .asice, .bdoc, .csv, .ddoc, .doc, .docx, .edoc, .eml, .gif, .htm, .jpeg, .jpg, .msg, .pdf, .png, .ppt, .pptx, .rtf, .tif, .tif, .txt, .xls, .xlsx, .xml"
    }
  },
  "description": "Bad request error. The specified filename does not include a supported extension."
}
object BadRequestErrorRecordAttachmentIDNotFound
{
  "type": "object",
  "title": "Bad Request Error - Record Attachment ID Not Found",
  "properties": {
    "code": {
      "type": "string",
      "example": "NOT_FOUND"
    },
    "message": {
      "type": "string",
      "example": "couldn't find an attachment matching the key [SOME_NONEXISTENT_ATTACHMENT_KEY] for record with id [RECORD_ID]"
    }
  },
  "description": "Record Attachment ID Not Found Request Error"
}
object BadRequestErrorRecordAttachmentMissingFormDataPart
{
  "type": "object",
  "title": "Bad Request Error - Missing Form-Data Part",
  "properties": {
    "code": {
      "type": "string",
      "example": "INVALID_PARAM"
    },
    "param": {
      "type": "string",
      "example": "metadata"
    },
    "message": {
      "type": "string",
      "example": "missing required form-data part 'metadata'"
    }
  },
  "description": "Bad request error. Missing form-data part."
}
object BadRequestErrorRecordAttachmentUnknownAttachmentKey
{
  "type": "object",
  "title": "Bad Request Error - Unknown Record Attachment Key",
  "properties": {
    "code": {
      "type": "string",
      "example": "INVALID_PARAM"
    },
    "param": {
      "type": "string",
      "example": "attachmentKey"
    },
    "message": {
      "type": "string",
      "example": "unknown record attachment key 'someRandomKey'"
    }
  },
  "description": "Bad request error. Unknown record attachment key."
}
object BadRequestErrorRecordAttachmentUnknownContentType
{
  "type": "object",
  "title": "Bad Request Error - Unknown Content Type",
  "properties": {
    "code": {
      "type": "string",
      "example": "INVALID_PARAM"
    },
    "param": {
      "type": "string",
      "example": "metadata.filename"
    },
    "message": {
      "type": "string",
      "example": "unknown content type 'filename or extension'"
    }
  },
  "description": "Bad request error. Unknown content type."
}
object BadRequestErrorRecordIDNotFound
{
  "type": "object",
  "title": "Bad Request Error - Record ID Not Found",
  "properties": {
    "code": {
      "type": "string",
      "example": "NOT_FOUND"
    },
    "message": {
      "type": "string",
      "example": "couldn't find a record matching the id [SOME_NONEXISTENT_RECORD_ID]"
    }
  },
  "description": "Record ID Not Found Request Error"
}
object BadRequestErrorRecordNotFound
{
  "type": "object",
  "title": "Bad Request Error - Record Does not Exist",
  "properties": {
    "code": {
      "type": "string",
      "example": "NOT_FOUND"
    },
    "message": {
      "type": "string",
      "example": "couldn't find a record matching the id workflow:6346f76fb8fc01d2b43e7c15a"
    }
  },
  "description": "Bad request error. The specified record does not exist."
}
object BadRequestErrorWorkflowLaunch
{
  "type": "object",
  "title": "Bad Request Error - Workflow Launch",
  "readOnly": true,
  "required": [
    "code",
    "message",
    "param"
  ],
  "properties": {
    "code": {
      "enum": [
        "MISSING_PARAM",
        "INVALID_PARAM",
        "INVALID_STATE"
      ],
      "type": "string",
      "title": "",
      "example": "MISSING_PARAM",
      "readOnly": true,
      "description": "A unique code to identify why the workflow cannot be launched."
    },
    "param": {
      "type": "string",
      "title": "",
      "example": "counterpartySignerTitle",
      "readOnly": true,
      "description": "The required or expected parameter(s) that may be missing in order to launch the workflow."
    },
    "message": {
      "type": "string",
      "title": "",
      "example": "missing required attribute",
      "readOnly": true,
      "description": "A message indicating why the workflow cannot be launched."
    }
  },
  "description": ""
}
object BaseActivityFeedItemModel
{
  "type": "object",
  "required": [
    "id",
    "type",
    "metadata",
    "author"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "type": {
      "enum": [
        "comment"
      ],
      "type": "string"
    },
    "author": {
      "$ref": "#/components/schemas/ActivityAuthorModel"
    },
    "metadata": {
      "$ref": "#/components/schemas/ActivityMetadataModel"
    },
    "reactions": {
      "$ref": "#/components/schemas/ActivityReactionModel"
    },
    "isExternal": {
      "type": "boolean"
    }
  }
}
object CommentMetadataModel
{
  "type": "object",
  "properties": {
    "message": {
      "type": "string",
      "example": "This is a comment Jon Snow"
    },
    "repliedTo": {
      "type": "object",
      "properties": {
        "author": {
          "$ref": "#/components/schemas/ActivityAuthorModel"
        },
        "activityItem": {
          "type": "string",
          "example": "TODO: unsure this is the right place"
        }
      }
    },
    "markedUpMessage": {
      "type": "string",
      "example": "This is a comment @[Jon Snow](630d28059893be00e1ccc9e7)"
    },
    "addedParticipants": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/UserModel"
      }
    }
  }
}
object CreatorEmailModel
{
  "type": "object",
  "properties": {
    "type": {
      "type": "string",
      "default": "email",
      "description": "The type of value used to identify the user."
    },
    "email": {
      "type": "string",
      "example": "example@example.com",
      "description": "The email address of the Ironclad user."
    }
  },
  "description": "The Ironclad user (must be a user in your Ironclad account) used to launch the workflow by using the user's email address."
}
object CreatorIdModel
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "abcd1234",
      "description": "The user ID of the Ironclad user."
    },
    "type": {
      "type": "string",
      "default": "id",
      "description": "The type of value used to identify the user."
    }
  },
  "description": "The Ironclad user (must be a user in your Ironclad account) used to launch the workflow by using the user's ID."
}
object CreatorModel
{
  "type": "object",
  "oneOf": [
    {
      "$ref": "#/components/schemas/CreatorEmailModel"
    },
    {
      "$ref": "#/components/schemas/CreatorIdModel"
    }
  ],
  "title": "creator",
  "description": "The Ironclad user (must be a user in your Ironclad account) to be used for launching the workflow."
}
object EmailNotFound
{
  "type": "object",
  "title": "Bad Request Error - Email ID Not Found",
  "properties": {
    "code": {
      "type": "string",
      "example": "NOT_FOUND"
    },
    "param": {
      "type": "string",
      "example": "emailThreadId"
    },
    "message": {
      "type": "string",
      "example": "emailThreadId does not exist"
    }
  },
  "description": "Email ID Not Found Request Error"
}
object EmailResponseModel
{
  "type": "object",
  "oneOf": [
    {
      "$ref": "#/components/schemas/InboundEmailResponse"
    },
    {
      "$ref": "#/components/schemas/OutboundEmailResponse"
    }
  ]
}
object ExternalUserModel
{
  "type": "object",
  "required": [
    "type",
    "email",
    "companyName"
  ],
  "properties": {
    "type": {
      "enum": [
        "externalUser"
      ],
      "type": "string",
      "example": "externalUser"
    },
    "email": {
      "type": "string",
      "example": "boba@ironclad.boba"
    },
    "companyName": {
      "type": "string",
      "example": "ironclad"
    },
    "displayName": {
      "type": "string",
      "example": "Boba Fett"
    }
  }
}
object InboundAttachmentModel
{
  "type": "object",
  "properties": {
    "download": {
      "type": "string",
      "example": "/public/api/v1/workflows/6013609108b8f070cee94fc1/emails/z_1zgjgjq/attachments/attachmentIdc85d7e3be5d84bf28cebe4591e39c894"
    },
    "filename": {
      "type": "string",
      "example": "file.docx"
    },
    "content-type": {
      "type": "string",
      "example": "application/vnd.openxmlformats-officedocument.wordprocessingml.document"
    }
  }
}
object InboundEmailResponse
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "6372b491abd2adf22f6e13ff"
    },
    "body": {
      "type": "string",
      "example": "This is a body of an email.\\n"
    },
    "type": {
      "enum": [
        "inboundEmail"
      ],
      "type": "string"
    },
    "author": {
      "$ref": "#/components/schemas/ActivityAuthorModel"
    },
    "subject": {
      "type": "string",
      "example": "This is the subject of an email"
    },
    "timestamp": {
      "type": "string",
      "example": "2022-09-28T19:21:05.034Z"
    },
    "attachments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/InboundAttachmentModel"
      }
    },
    "emailThreadId": {
      "type": "string",
      "example": "emailThread16ca903a0ec44ae09fc0b3fb3339ffa0"
    }
  }
}
object InternalUserModel
{
  "type": "object",
  "required": [
    "type",
    "displayName",
    "email",
    "userId",
    "companyName"
  ],
  "properties": {
    "type": {
      "enum": [
        "internalUser"
      ],
      "type": "string",
      "example": "internalUser"
    },
    "email": {
      "type": "string",
      "example": "boba@ironclad.boba"
    },
    "userId": {
      "type": "string",
      "example": "63d415e0dd0d828c3a878548"
    },
    "companyName": {
      "type": "string",
      "example": "Ironclad"
    },
    "displayName": {
      "type": "string",
      "example": "Boba Fett"
    }
  }
}
object LaunchedWorkflowModel
{
  "type": "object",
  "required": [
    "id",
    "title",
    "template",
    "step",
    "attributes",
    "schema",
    "isCancelled",
    "isComplete",
    "status",
    "created",
    "lastUpdated",
    "roles",
    "approvals",
    "signatures",
    "isRevertibleToReview"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "6013609108b8f070cee94fc1",
      "readOnly": true,
      "description": "The ID of the launched workflow."
    },
    "step": {
      "enum": [
        "Review",
        "Sign",
        "Archive",
        "Complete"
      ],
      "type": "string",
      "example": "Review",
      "readOnly": true,
      "description": "The step the workflow is currently on."
    },
    "roles": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkflowRoleModel"
      },
      "readOnly": true
    },
    "title": {
      "type": "string",
      "example": "Consulting Agreement with Jane Doe",
      "readOnly": true,
      "description": "The name used for the launched workflow."
    },
    "schema": {
      "$ref": "#/components/schemas/AttributesModel"
    },
    "status": {
      "enum": [
        "active",
        "paused",
        "cancelled",
        "completed"
      ],
      "type": "string",
      "example": "active",
      "readOnly": true,
      "description": "The current status of the launched workflow."
    },
    "created": {
      "type": "string",
      "example": "2016-11-17T00:37:22.318Z",
      "readOnly": true,
      "description": "The date (ISO8601 format) the workflow was launched"
    },
    "creator": {
      "type": "object",
      "title": "",
      "readOnly": true,
      "properties": {
        "id": {
          "type": "string",
          "example": "63d415e0dd0d828c3a878548",
          "readOnly": true,
          "description": ""
        },
        "email": {
          "type": "string",
          "example": "fett@intergalactic.com",
          "readOnly": true,
          "description": ""
        },
        "displayName": {
          "type": "string",
          "example": "Boba Fett",
          "readOnly": true,
          "description": ""
        }
      },
      "description": ""
    },
    "template": {
      "$ref": "#/components/schemas/WorkflowTemplateIdModel"
    },
    "approvals": {
      "type": "object",
      "properties": {
        "state": {
          "enum": [
            "not_started",
            "in_progress",
            "completed",
            "not_applicable"
          ],
          "type": "string",
          "example": "in_progress",
          "readOnly": true,
          "description": "The state of the approvals."
        }
      }
    },
    "recordIds": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "715f1e37-292f-4e6c-8b48-c07e1b68bccd",
        "description": "Ids of records created by the workflow."
      },
      "readOnly": true
    },
    "ironcladId": {
      "type": "string",
      "example": "IC-1",
      "readOnly": true,
      "description": "The Ironclad ID of the launched workflow."
    },
    "isComplete": {
      "type": "boolean",
      "example": false,
      "readOnly": true,
      "deprecated": true,
      "description": "Displays if the launched workflow has been completed."
    },
    "signatures": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "example": "https://ironcladapp.com/public/api/v1/workflows/6dac47a10b1242d1f7df688d/signatures",
          "readOnly": true,
          "description": "The url where signature information is located if it exists."
        },
        "state": {
          "enum": [
            "not_started",
            "in_progress",
            "complete",
            "not_applicable"
          ],
          "type": "string",
          "example": "in_progress",
          "readOnly": true,
          "description": "The state of the signatures."
        }
      }
    },
    "isCancelled": {
      "type": "boolean",
      "example": false,
      "readOnly": true,
      "deprecated": true,
      "description": "Displays if the launched workflow has been cancelled."
    },
    "lastUpdated": {
      "type": "string",
      "example": "2016-11-17T00:37:42.318Z",
      "readOnly": true,
      "description": "The date (ISO8601 format) the workflow was last updated"
    },
    "isRevertibleToReview": {
      "type": "boolean",
      "example": false,
      "readOnly": true,
      "description": "Displays if the launched workflow can be reverted back to the review step."
    }
  },
  "description": "The response from a successful workflow launch."
}
object OutboundAttachmentModel
{
  "type": "object",
  "properties": {
    "download": {
      "type": "string",
      "example": "/public/api/v1/workflows/6013609108b8f070cee94fc1/document/XZ9j0cHGA/download"
    },
    "filename": {
      "type": "string",
      "example": "attachment.pdf"
    },
    "content-type": {
      "type": "string",
      "example": "application/pdf"
    }
  }
}
object OutboundEmailResponse
{
  "type": "object",
  "properties": {
    "cc": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "admiral@ironclad.boba"
      }
    },
    "id": {
      "type": "string",
      "example": "6372b491abd2adf22f6e13ff"
    },
    "body": {
      "type": "string",
      "example": "This is a body of an email.\\n"
    },
    "type": {
      "enum": [
        "outboundEmail"
      ],
      "type": "string"
    },
    "author": {
      "$ref": "#/components/schemas/ActivityAuthorModel"
    },
    "subject": {
      "type": "string",
      "example": "This is the subject of an email"
    },
    "timestamp": {
      "type": "string",
      "example": "2022-09-28T19:21:05.034Z"
    },
    "recipients": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "dopstop@ironclad.boba"
      }
    },
    "attachments": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/OutboundAttachmentModel"
      }
    },
    "emailOpenedTimestamps": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "example": "david@boba.com"
          },
          "opened": {
            "type": "boolean"
          }
        }
      }
    }
  }
}
object RecordModel
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "22e2ff72-56a1-4711-a4ca-41328d311e9f"
    },
    "name": {
      "type": "string",
      "example": "Consulting Agreement with Jane Doe"
    },
    "type": {
      "type": "string",
      "example": "consultingAgreement"
    },
    "links": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "recordId": {
            "type": "string",
            "example": "df1c2805-f5a3-4a14-9386-c28d950dff49"
          }
        }
      }
    },
    "source": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "example": "workflow"
        },
        "workflowId": {
          "type": "string",
          "example": "abcd1234"
        }
      }
    },
    "childIds": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "4a785686-d3d5-47bc-960e-3df0df871ea9"
      }
    },
    "parentId": {
      "type": "string",
      "example": "d10b8c01-5c54-4a59-82cb-51e3825182e9"
    },
    "ironcladId": {
      "type": "string",
      "example": "IC-1"
    },
    "properties": {
      "type": "object",
      "properties": {
        "hourlyRate": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "monetaryAmount"
            },
            "value": {
              "type": "object",
              "properties": {
                "amount": {
                  "type": "integer",
                  "default": 0,
                  "example": 100
                },
                "currency": {
                  "type": "string",
                  "example": "USD"
                }
              }
            }
          }
        },
        "agreementDate": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "date"
            },
            "value": {
              "type": "string",
              "example": "2018-05-08T00:00:00-07:00"
            }
          }
        },
        "counterpartyName": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "string"
            },
            "value": {
              "type": "string",
              "example": "Jane Doe"
            }
          }
        },
        "counterpartyEmail": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "email"
            },
            "value": {
              "type": "string",
              "example": "jane.doe@test.com"
            }
          }
        }
      }
    },
    "attachments": {
      "type": "object",
      "properties": {
        "signedCopy": {
          "type": "object",
          "properties": {
            "href": {
              "type": "string",
              "example": "https://ironcladapp.com/public/api/v1/records/22e2ff72-56a1-4711-a4ca-41328d311e9f/attachments/signedCopy"
            },
            "filename": {
              "type": "string",
              "example": "2018-05-08 - Doe, Jane - Consulting Agreement.pdf"
            },
            "contentType": {
              "type": "string",
              "example": "application/json"
            }
          }
        }
      }
    },
    "lastUpdated": {
      "type": "string",
      "example": "2018-05-08T17:28:10Z"
    }
  }
}
object RecordPropertyLinkModel
{
  "type": "object",
  "properties": {
    "recordId": {
      "type": "string",
      "example": "17009e0d-z2e9-425d-a85b-1cf152773e49"
    }
  }
}
object RecordsCreateAttachment400Response
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/BadRequestErrorRecordNotFound"
    },
    {
      "$ref": "#/components/schemas/BadRequestErrorRecordAttachmentExtension"
    },
    {
      "$ref": "#/components/schemas/BadRequestErrorRecordAttachmentAlreadyExists"
    },
    {
      "$ref": "#/components/schemas/BadRequestErrorRecordAttachmentUnknownAttachmentKey"
    },
    {
      "$ref": "#/components/schemas/BadRequestErrorRecordAttachmentUnknownContentType"
    },
    {
      "$ref": "#/components/schemas/BadRequestErrorRecordAttachmentMissingFormDataPart"
    }
  ]
}
object RecordsCreateAttachmentRequest
{
  "type": "object",
  "properties": {
    "metadata": {
      "type": "object",
      "properties": {
        "filename": {
          "type": "string",
          "example": "NDA - Acme LLC.pdf",
          "description": "The name of the file. Must have a supported file extension (.adoc, .asice, .bdoc, .csv, .ddoc, .doc, .docx, .edoc, .eml, .gif, .htm, .jpeg, .jpg, .msg, .pdf, .png, .ppt, .pptx, .rtf,.tif, .txt, .xls, .xlsx, .xml)."
        }
      },
      "description": "The `metadata` property's value must be `{\"filename\": \"[YOUR_FILE_NAME]\"}`"
    },
    "attachment": {
      "type": "string",
      "format": "binary",
      "description": "Must be a binary. Base64 is not accepted at this time."
    }
  }
}
object RecordsCreateAttachmentResponse
{
  "type": "object",
  "properties": {}
}
object RecordsCreateRecordRequest
{
  "type": "object",
  "required": [
    "type",
    "name",
    "properties"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the record."
    },
    "type": {
      "type": "string",
      "description": "The type of record to be created. You can view available record types by retrieving records metadata."
    },
    "links": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/RecordPropertyLinkModel"
      }
    },
    "parent": {
      "type": "object",
      "properties": {
        "recordId": {
          "type": "string",
          "example": "17009e0d-z2e9-425d-a85b-1cf152773efg"
        }
      },
      "description": "Object containing Record IDs or Ironclad IDs to be set as the parent of the current record."
    },
    "children": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/RecordPropertyLinkModel"
      },
      "description": "List of objects containing the Record IDs or Ironclad IDs of the records to be set as child records of the current record."
    },
    "properties": {
      "type": "object",
      "properties": {
        "agreementDate": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "default": "date"
            },
            "value": {
              "type": "string",
              "description": "UTC date (e.g. `2018-05-08T00:00:00-07:00`)"
            }
          },
          "description": "The date of the agreement."
        },
        "counterpartyName": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "default": "string"
            },
            "value": {
              "type": "string",
              "description": "The name of the counterparty."
            }
          },
          "description": "The name of the counterparty."
        }
      },
      "description": "Object containing key/value pairs of metadata attached to the record. The key you specify must have a value with a supported type as outlined in the Supported Property Types section."
    }
  }
}
object RecordsCreateRecordResponse
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string"
    },
    "param": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  }
}
object RecordsDeleteRecord400Response
{
  "type": "object",
  "properties": {}
}
object RecordsDeleteRecordResponse
{
  "type": "object",
  "properties": {}
}
object RecordsGetAttachment400Response
{
  "type": "object",
  "properties": {}
}
object RecordsGetAttachmentResponse
{
  "type": "object",
  "properties": {}
}
object RecordsGetPredictions400Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  }
}
object RecordsGetPredictions403Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  }
}
object RecordsGetPredictions404Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  }
}
object RecordsGetPredictionsResponse
{
  "oneOf": [
    {
      "type": "object",
      "items": {
        "type": "object",
        "properties": {
          "status": {
            "enum": [
              "ready",
              "pending",
              "errored"
            ],
            "type": "string"
          },
          "recordId": {
            "type": "string",
            "example": "df1c2805-f5a3-4a14-9386-c28d950dff49"
          }
        }
      },
      "example": {
        "status": "ready",
        "recordId": "461aa9a3-5984-4553-b8ab-56a1786c2f44"
      }
    },
    {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "status": {
            "enum": [
              "ready",
              "pending",
              "errored"
            ],
            "type": "string"
          },
          "recordId": {
            "type": "string",
            "example": "df1c2805-f5a3-4a14-9386-c28d950dff49"
          }
        }
      },
      "example": [
        {
          "status": "ready",
          "recordId": "461aa9a3-5984-4553-b8ab-56a1786c2f44"
        },
        {
          "status": "pending",
          "recordId": "6392dd09-814d-4def-97d9-8fe8badcf6ce"
        }
      ]
    }
  ]
}
object RecordsGetRecordDataResponse
{
  "type": "object",
  "properties": {}
}
object RecordsGetSchema400Response
{
  "type": "object",
  "properties": {}
}
object RecordsGetSchemaResponse
{
  "type": "object",
  "properties": {
    "links": {
      "type": "object",
      "properties": {}
    },
    "properties": {
      "type": "object",
      "properties": {
        "workflowId": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "string"
            },
            "visible": {
              "type": "boolean",
              "default": true,
              "example": true
            },
            "displayName": {
              "type": "string",
              "example": "Workflow ID"
            }
          }
        },
        "agreementDate": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "date"
            },
            "visible": {
              "type": "boolean",
              "default": true,
              "example": true
            },
            "displayName": {
              "type": "string",
              "example": "Agreement Date"
            }
          }
        },
        "additionalNotes": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "string"
            },
            "visible": {
              "type": "boolean",
              "default": true,
              "example": true
            },
            "displayName": {
              "type": "string",
              "example": "Additional Notes"
            }
          }
        }
      }
    },
    "attachments": {
      "type": "object",
      "properties": {
        "signedCopy": {
          "type": "object",
          "properties": {
            "displayName": {
              "type": "string",
              "example": "Signed PDF"
            }
          }
        }
      }
    },
    "recordTypes": {
      "type": "object",
      "properties": {
        "contract": {
          "type": "object",
          "properties": {
            "displayName": {
              "type": "string",
              "example": "Contract"
            }
          }
        }
      }
    }
  }
}
object RecordsGetXlsxExportFile400Response
{
  "type": "object",
  "properties": {}
}
object RecordsGetXlsxExportFileResponse
{
  "type": "object",
  "properties": {}
}
object RecordsListAll400Response
{
  "type": "object",
  "properties": {}
}
object RecordsListAllResponse
{
  "type": "object",
  "properties": {
    "list": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/RecordModel"
      }
    },
    "page": {
      "type": "integer",
      "default": 0,
      "example": 0
    },
    "count": {
      "type": "integer",
      "default": 0,
      "example": 1234
    },
    "pageSize": {
      "type": "integer",
      "default": 0,
      "example": 20
    }
  }
}
object RecordsRemoveAttachmentResponse
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/BadRequestErrorRecordIDNotFound"
    },
    {
      "$ref": "#/components/schemas/BadRequestErrorRecordAttachmentIDNotFound"
    }
  ]
}
object RecordsReplaceMetadataRequest
{
  "type": "object",
  "required": [
    "type",
    "name",
    "properties"
  ],
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the record."
    },
    "type": {
      "type": "string",
      "description": "The type of record to be created. You can view available record types by retrieving records metadata."
    },
    "parent": {
      "type": "object",
      "properties": {
        "recordId": {
          "type": "string",
          "example": "17009e0d-z2e9-425d-a85b-1cf152773efg"
        }
      },
      "description": "Object containing Record IDs or Ironclad IDs to be set as the parent of the current record."
    },
    "children": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/RecordPropertyLinkModel"
      },
      "description": "List of objects containing the Record IDs or Ironclad IDs of the records to be set as child records of the current record."
    },
    "properties": {
      "type": "object",
      "properties": {
        "agreementDate": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "default": "date"
            },
            "value": {
              "type": "string",
              "description": "UTC date (e.g. `2018-05-08T00:00:00-07:00`)"
            }
          },
          "description": "The date of the agreement."
        },
        "counterpartyName": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "default": "string"
            },
            "value": {
              "type": "string",
              "description": "The name of the counterparty."
            }
          },
          "description": "The name of the counterparty."
        }
      },
      "description": "Object containing key/value pairs of metadata attached to the record. The key you specify must have a value with a supported type as outlined in the Supported Property Types section."
    }
  }
}
object RecordsReplaceMetadataResponse
{
  "type": "object",
  "properties": {}
}
object RecordsUpdateMetadata404Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "example": "NOT_FOUND"
    },
    "param": {
      "type": "string",
      "example": "parameter identifier"
    },
    "message": {
      "type": "string",
      "example": "not found"
    }
  }
}
object RecordsUpdateMetadataRequest
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "description": "The name of the Record."
    },
    "type": {
      "type": "string",
      "description": "The type of Record."
    },
    "addLinks": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/RecordPropertyLinkModel"
      },
      "description": "List of objects containing the Record IDs or Ironclad IDs of the records to link. For an explanation of Record IDs or Ironclad IDs and how to find them, see [Getting Started](https://developer.ironcladapp.com/reference/getting-started-api)."
    },
    "setParent": {
      "type": "object",
      "properties": {
        "recordId": {
          "type": "string",
          "example": "17009e0d-z2e9-425d-a85b-1cf152773efg"
        }
      },
      "description": "Object containing Record IDs or Ironclad IDs to be set as the parent of the current record."
    },
    "addChildren": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/RecordPropertyLinkModel"
      },
      "description": "List of objects containing the Record IDs or Ironclad IDs of the records to be set as child records of the current record."
    },
    "removeLinks": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/RecordPropertyLinkModel"
      },
      "description": "List of objects containing the Record IDs or Ironclad IDs of the record links to remove. For an explanation of Record IDs or Ironclad IDs and how to find them, see [Getting Started](https://developer.ironcladapp.com/reference/getting-started-api)."
    },
    "removeParent": {
      "type": "boolean",
      "example": false,
      "description": "Boolean flag to indicate if the parent id should be removed for the current record."
    },
    "addProperties": {
      "type": "object",
      "properties": {
        "agreementDate": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "default": "date",
              "example": "date"
            },
            "value": {
              "type": "string",
              "example": "2018-05-08T00:00:00-07:00"
            }
          }
        },
        "counterpartyName": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "default": "string"
            },
            "value": {
              "type": "string",
              "example": "Jane Doe"
            }
          }
        }
      },
      "description": "A key:value map of properties to add. The two below are examples."
    },
    "removeChildren": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/RecordPropertyLinkModel"
      },
      "description": "List of objects containing the Record IDs or Ironclad IDs of the child records to be removed from the current record."
    },
    "removeProperties": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "List of record property ids to be removed (e.g., ['counterpartyAddress', 'agreementExpirationDate'])"
    }
  }
}
object RecordsUpdateMetadataResponse
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "example": "MISSING_PARAM"
    },
    "param": {
      "type": "string",
      "example": "parameter identifier"
    },
    "message": {
      "type": "string",
      "example": "reason why something has gone wrong"
    }
  }
}
object RecordsUploadSmartImportRecord400Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string"
    },
    "param": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  }
}
object RecordsUploadSmartImportRecord403Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  }
}
object RecordsUploadSmartImportRecord404Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  }
}
object RecordsUploadSmartImportRecordRequest
{
  "type": "object",
  "required": [
    "attachment"
  ],
  "properties": {
    "attachment": {
      "type": "string",
      "format": "binary",
      "description": "Must be a binary. Base64 is not accepted at this time."
    },
    "recordType": {
      "type": "string",
      "format": "string",
      "default": "imported",
      "description": "Upload a smart import record as an existing record type.  Cannot provide alongside newRecordTypeId and newRecordTypeDisplayName. Defaults to Imported."
    },
    "newRecordTypeId": {
      "type": "string",
      "description": "The record type ID for a not-yet-existing record type.  Must be provided along with a newRecordTypeDisplayName"
    },
    "newRecordTypeDisplayName": {
      "type": "string",
      "format": "string",
      "description": "The display name of the new record type to create."
    }
  }
}
object RecordsUploadSmartImportRecordResponse
{
  "type": "object",
  "properties": {
    "importId": {
      "type": "string",
      "example": "55ez635d-f2g9-5419-gs34-8h1jx4s733q9"
    },
    "recordId": {
      "type": "string",
      "example": "17fe582d-e1e0-4000-bf65-3d2ec2c500a4",
      "description": "Record ID of the new created record"
    },
    "remainingCredits": {
      "type": "number",
      "example": 50
    }
  }
}
object RecordsUploadSmartImportRecordWithPredictions400Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string"
    },
    "param": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  }
}
object RecordsUploadSmartImportRecordWithPredictions403Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  }
}
object RecordsUploadSmartImportRecordWithPredictions404Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  }
}
object RecordsUploadSmartImportRecordWithPredictionsRequest
{
  "type": "object",
  "required": [
    "attachment",
    "recordType"
  ],
  "properties": {
    "attachment": {
      "type": "string",
      "format": "binary",
      "description": "Must be a binary. Base64 is not accepted at this time."
    },
    "recordType": {
      "type": "string",
      "format": "string",
      "default": "imported",
      "description": "Upload a smart import record as an existing record type.  Cannot provide alongside newRecordTypeId and newRecordTypeDisplayName. Defaults to Imported."
    },
    "newRecordTypeId": {
      "type": "string",
      "description": "The record type ID for a not-yet-existing record type.  Must be provided along with a newRecordTypeDisplayName"
    },
    "newRecordTypeDisplayName": {
      "type": "string",
      "format": "string",
      "description": "The display name of the new record type to create."
    }
  }
}
object RecordsUploadSmartImportRecordWithPredictionsResponse
{
  "type": "object",
  "properties": {
    "importId": {
      "type": "string",
      "example": "55ez635d-f2g9-5419-gs34-8h1jx4s733q9"
    },
    "recordId": {
      "type": "string",
      "example": "17fe582d-e1e0-4000-bf65-3d2ec2c500a4",
      "description": "Record ID of the new created record"
    },
    "remainingCredits": {
      "type": "number",
      "example": 50
    }
  }
}
object UserModel
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "displayName": {
      "type": "string"
    }
  }
}
object WebhooksCreateNew400Response
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/webhookInvalidEventTypeBadRequestResponse"
    },
    {
      "$ref": "#/components/schemas/webhookTargetURLExistsBadRequestResponse"
    }
  ]
}
object WebhooksCreateNewRequest
{
  "type": "object",
  "required": [
    "events",
    "targetURL"
  ],
  "properties": {
    "events": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/webhookEventTypeValue"
      },
      "minItems": 1,
      "description": "The event type(s) to trigger the webhook. Note: you can use `*` to receive events for all events, although we don't recommend this path, especially for environments with higher volume."
    },
    "targetURL": {
      "type": "string",
      "description": "The URL to send the webhook event payload to."
    }
  }
}
object WebhooksCreateNewResponse
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "5928719b30182d3700364a74"
    },
    "events": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "workflow_launched"
      }
    },
    "company": {
      "type": "string",
      "example": "5928719b30182d3700364a74"
    },
    "targetURL": {
      "type": "string",
      "example": "https://requestb.in/18m34b"
    }
  }
}
object WebhooksDeleteSpecific400Response
{
  "type": "object",
  "properties": {}
}
object WebhooksDeleteSpecificResponse
{
  "type": "object",
  "properties": {}
}
object WebhooksGetData400Response
{
  "type": "object",
  "properties": {}
}
object WebhooksGetDataResponse
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "5928719b30182d3700364a74"
    },
    "events": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "workflow_launched"
      }
    },
    "company": {
      "type": "string",
      "example": "5928719b30182d3700364a74"
    },
    "targetURL": {
      "type": "string",
      "example": "https://requestb.in/18m34b"
    }
  }
}
object WebhooksGetVerificationKeyResponse
{
  "type": "object",
  "properties": {}
}
object WebhooksListAll400Response
{
  "type": "object",
  "properties": {}
}
object WebhooksListAllResponse
{
  "type": "object",
  "properties": {
    "list": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "5928719b30182d3700364a74"
          },
          "events": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "workflow_launched"
            }
          },
          "company": {
            "type": "string",
            "example": "5928719b30182d3700364a74"
          },
          "targetURL": {
            "type": "string",
            "example": "https://requestb.in/18m34bs1"
          }
        }
      }
    },
    "page": {
      "type": "integer",
      "default": 0,
      "example": 0
    },
    "pageSize": {
      "type": "integer",
      "default": 0,
      "example": 20
    }
  }
}
object WebhooksUpdateWebhookData400Response
{
  "type": "object",
  "properties": {}
}
object WebhooksUpdateWebhookDataRequest
{
  "type": "object",
  "properties": {
    "events": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "The type of events that will trigger a notification to the target URL."
    },
    "targetURL": {
      "type": "string",
      "description": "The URL of where the notification gets sent."
    }
  }
}
object WebhooksUpdateWebhookDataResponse
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "5928719b30182d3700364a74"
    },
    "events": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "workflow_launched"
      }
    },
    "company": {
      "type": "string",
      "example": "5928719b30182d3700364a74"
    },
    "targetURL": {
      "type": "string",
      "example": "https://requestb.in/18m34b"
    }
  }
}
object WorkflowAsyncInProgressResponse
{
  "type": "object",
  "title": "Workflow Launch In Progress",
  "readOnly": true,
  "required": [
    "status",
    "requestPayload"
  ],
  "properties": {
    "status": {
      "type": "string",
      "title": "",
      "default": "in_progress",
      "readOnly": true,
      "description": ""
    },
    "requestPayload": {
      "$ref": "#/components/schemas/WorkflowRequestModel"
    }
  },
  "description": ""
}
object WorkflowAsyncLaunchFailedResponse
{
  "type": "object",
  "title": "Workflow Launch Failed",
  "readOnly": true,
  "required": [
    "status",
    "requestPayload",
    "error"
  ],
  "properties": {
    "error": {
      "type": "string",
      "title": "",
      "readOnly": true,
      "description": "An error message indicating why the workflow failed to launch."
    },
    "status": {
      "type": "string",
      "title": "",
      "default": "failed",
      "readOnly": true,
      "description": ""
    },
    "requestPayload": {
      "$ref": "#/components/schemas/WorkflowRequestModel"
    }
  },
  "description": ""
}
object WorkflowAsyncLaunchSuccessResponse
{
  "type": "object",
  "readOnly": true,
  "required": [
    "status",
    "requestPayload",
    "workflowUrls",
    "workflow"
  ],
  "properties": {
    "status": {
      "type": "string",
      "title": "",
      "default": "success",
      "readOnly": true,
      "description": ""
    },
    "workflow": {
      "$ref": "#/components/schemas/LaunchedWorkflowModel"
    },
    "workflowUrls": {
      "type": "object",
      "title": "",
      "readOnly": true,
      "properties": {
        "apiUrl": {
          "type": "string",
          "title": "",
          "example": "http://ironcladapp.com/public/api/v1/workflows/6013609108b8f070cee94fc1",
          "readOnly": true,
          "description": "The URL for accessing workflow data via the REST API."
        },
        "browserUrl": {
          "type": "string",
          "title": "",
          "example": "http://ironcladapp.com/workflows/6013609108b8f070cee94fc1",
          "readOnly": true,
          "description": "The URL for accessing the workflow in a browser."
        }
      },
      "description": ""
    },
    "requestPayload": {
      "$ref": "#/components/schemas/WorkflowRequestModel"
    }
  },
  "description": "Response for a successfully asynchronously launched workflow."
}
object WorkflowLastModifiedAuthorModel
{
  "type": "object",
  "oneOf": [
    {
      "$ref": "#/components/schemas/InternalUserModel"
    },
    {
      "$ref": "#/components/schemas/ExternalUserModel"
    },
    {
      "type": "object",
      "required": [
        "type",
        "displayName"
      ],
      "properties": {
        "type": {
          "enum": [
            "counterparty"
          ],
          "type": "string",
          "example": "counterparty"
        },
        "displayName": {
          "type": "string",
          "example": "Boba Fett"
        }
      }
    }
  ],
  "title": "author"
}
object WorkflowNotFound
{
  "type": "object",
  "title": "Bad Request Error - Workflow ID Not Found",
  "properties": {
    "code": {
      "type": "string",
      "example": "NOT_FOUND"
    },
    "param": {
      "type": "string",
      "example": "workflowId"
    },
    "message": {
      "type": "string",
      "example": "workflow does not exist"
    }
  },
  "description": "Workflow ID Not Found Request Error"
}
object WorkflowRequestModel
{
  "type": "object",
  "required": [
    "attributes",
    "creator",
    "template"
  ],
  "properties": {
    "creator": {
      "$ref": "#/components/schemas/CreatorEmailModel"
    },
    "template": {
      "$ref": "#/components/schemas/WorkflowTemplateIdModel"
    },
    "attributes": {
      "$ref": "#/components/schemas/AttributesModel"
    }
  }
}
object WorkflowResponseModel
{
  "type": "object",
  "required": [
    "id",
    "title",
    "template",
    "step",
    "attributes",
    "schema",
    "isCancelled",
    "isComplete",
    "status",
    "created",
    "lastUpdated",
    "roles",
    "approvals",
    "signatures",
    "isRevertibleToReview"
  ],
  "properties": {
    "id": {
      "type": "string",
      "example": "6013609108b8f070cee94fc1"
    },
    "step": {
      "type": "string",
      "example": "Review"
    },
    "roles": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "displayName",
          "assignees"
        ],
        "properties": {
          "id": {
            "type": "string",
            "example": "legal"
          },
          "assignees": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "userName",
                "userId",
                "email"
              ],
              "properties": {
                "email": {
                  "type": "string",
                  "example": "bobafett@gmail.com"
                },
                "userId": {
                  "type": "string",
                  "example": "63d415e0dd0d828c3a878548"
                },
                "userName": {
                  "type": "string",
                  "example": "Boba Fett"
                }
              }
            }
          },
          "displayName": {
            "type": "string",
            "example": "Legal"
          }
        }
      }
    },
    "title": {
      "type": "string",
      "example": "Consulting Agreement with Jane Doe"
    },
    "schema": {
      "type": "object",
      "properties": {
        "fee": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "monetaryAmount"
            },
            "displayName": {
              "type": "string",
              "example": "Example Monetary Amount Attribute"
            }
          }
        },
        "draft": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "array"
            },
            "elementType": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "example": "document"
                },
                "displayName": {
                  "type": "string",
                  "example": "Example Document Attribute"
                }
              }
            }
          }
        },
        "amount": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "number"
            },
            "displayName": {
              "type": "string",
              "example": "Example Number Attribute"
            }
          }
        },
        "lineItems": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "array"
            },
            "elementType": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "example": "object"
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "childAttribute": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "example": "string"
                        },
                        "displayName": {
                          "type": "string",
                          "example": "Example String Attribute"
                        }
                      }
                    },
                    "anotherChildAttribute": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "example": "string"
                        },
                        "displayName": {
                          "type": "string",
                          "example": "Example String Attribute"
                        }
                      }
                    }
                  }
                },
                "displayName": {
                  "type": "string",
                  "example": "Example Object Attribute"
                }
              }
            }
          }
        },
        "counterpartyName": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "string"
            },
            "displayName": {
              "type": "string",
              "example": "Example String Attribute"
            }
          }
        }
      }
    },
    "status": {
      "enum": [
        "active",
        "completed",
        "cancelled",
        "paused"
      ],
      "type": "string",
      "example": "active"
    },
    "created": {
      "type": "string",
      "example": "2016-11-17T00:37:22.318Z"
    },
    "creator": {
      "type": "object",
      "required": [
        "id",
        "displayName",
        "email",
        "title",
        "username",
        "metadata"
      ],
      "properties": {
        "id": {
          "type": "string",
          "example": "63d415e0dd0d828c3a878548"
        },
        "email": {
          "type": "string",
          "example": "fett@intergalactic.com"
        },
        "title": {
          "type": "string",
          "example": "Director"
        },
        "metadata": {
          "type": "object",
          "example": {}
        },
        "username": {
          "type": "string",
          "example": "fett@intergalactic.com"
        },
        "displayName": {
          "type": "string",
          "example": "Boba Fett"
        }
      }
    },
    "template": {
      "type": "string",
      "example": "600b296c3e15a234ab88f884"
    },
    "approvals": {
      "$ref": "#/components/schemas/WorkflowStateModel"
    },
    "recordIds": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "715f1e37-292f-4e6c-8b48-c07e1b68bccd"
      }
    },
    "attributes": {
      "type": "object",
      "properties": {
        "fee": {
          "type": "object",
          "properties": {
            "amount": {
              "type": "integer",
              "default": 0,
              "example": 50000
            },
            "currency": {
              "type": "string",
              "example": "USD"
            }
          }
        },
        "draft": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "version": {
                "type": "string",
                "example": "B1QePArXb"
              },
              "download": {
                "type": "string",
                "example": "/public/api/v1/workflows/594356b9fbcd7f74006fdf8a/document/rJklwCHQ/download"
              },
              "filename": {
                "type": "string",
                "example": "file.pdf"
              },
              "lastModified": {
                "type": "object",
                "properties": {
                  "author": {
                    "$ref": "#/components/schemas/WorkflowLastModifiedAuthorModel"
                  },
                  "timestamp": {
                    "type": "string",
                    "example": "2016-11-17T00:37:22.318Z"
                  }
                }
              },
              "versionNumber": {
                "type": "number",
                "example": 2
              }
            }
          }
        },
        "amount": {
          "type": "integer",
          "default": 0,
          "example": 123
        },
        "counterpartyName": {
          "type": "string",
          "example": "Boba Fett"
        }
      }
    },
    "ironcladId": {
      "type": "string",
      "example": "IC-1"
    },
    "isComplete": {
      "type": "boolean",
      "default": true,
      "example": false
    },
    "signatures": {
      "$ref": "#/components/schemas/WorkflowStateModel"
    },
    "isCancelled": {
      "type": "boolean",
      "default": true,
      "example": false
    },
    "lastUpdated": {
      "type": "string",
      "example": "2016-11-17T00:37:22.318Z"
    },
    "isRevertibleToReview": {
      "type": "boolean",
      "example": false
    }
  },
  "description": "The response from a successful workflow retrieval."
}
object WorkflowRoleAssigneeModel
{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "example": "bobafett@gmail.com"
    },
    "userId": {
      "type": "string",
      "example": "63d415e0dd0d828c3a878548"
    },
    "userName": {
      "type": "string",
      "example": "Boba Fett"
    }
  },
  "description": ""
}
object WorkflowRoleModel
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "legal"
    },
    "assignees": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkflowRoleAssigneeModel"
      }
    },
    "displayName": {
      "type": "string",
      "example": "Legal"
    }
  },
  "description": ""
}
object WorkflowStateModel
{
  "type": "object",
  "oneOf": [
    {
      "required": [
        "state"
      ],
      "properties": {
        "state": {
          "enum": [
            "not_started"
          ],
          "type": "string",
          "example": "not_started"
        }
      }
    },
    {
      "required": [
        "state"
      ],
      "properties": {
        "state": {
          "enum": [
            "completed"
          ],
          "type": "string",
          "example": "completed"
        }
      }
    },
    {
      "required": [
        "state",
        "url"
      ],
      "properties": {
        "url": {
          "type": "string",
          "example": "https://ironcladapp.com/public/api/v1/workflows/22e2ff72-56a1-4711-a4ca-41328d311e9f/approvals"
        },
        "state": {
          "enum": [
            "in_progress"
          ],
          "type": "string",
          "example": "in_progress"
        }
      }
    },
    {
      "required": [
        "state",
        "message"
      ],
      "properties": {
        "state": {
          "enum": [
            "not_applicable"
          ],
          "type": "string",
          "example": "not_applicable"
        },
        "message": {
          "type": "string",
          "example": "This workflow has been cancelled"
        }
      }
    }
  ]
}
string WorkflowTemplateIdModel
{
  "type": "string",
  "example": "600b296c3e15a234ab88f884",
  "description": "The identifier of the workflow template"
}
object WorkflowsCreateComment400Response
{
  "type": "object",
  "properties": {}
}
object WorkflowsCreateCommentRequest
{
  "type": "object",
  "required": [
    "creator",
    "comment"
  ],
  "properties": {
    "comment": {
      "type": "string",
      "description": "The comment text to add, accepts user mentions in the form of <@user_id_or_email>."
    },
    "creator": {
      "$ref": "#/components/schemas/CreatorEmailModel"
    },
    "addUsersToWorkflow": {
      "type": "boolean",
      "description": "Must be set to true if mentioning users who are not participants on the workflow."
    },
    "repliedToActivityFeedMessageId": {
      "type": "string",
      "description": "Use to specify the comment to reply to"
    }
  }
}
object WorkflowsCreateCommentRequest1
{
  "type": "object",
  "required": [
    "creator",
    "comment"
  ],
  "properties": {
    "comment": {
      "type": "string",
      "description": "The comment text to add, accepts user mentions in the form of <@user_id_or_email>."
    },
    "creator": {
      "$ref": "#/components/schemas/CreatorEmailModel"
    },
    "addUsersToWorkflow": {
      "type": "boolean",
      "description": "Must be set to true if mentioning users who are not participants on the workflow."
    },
    "repliedToActivityFeedMessageId": {
      "type": "string",
      "description": "Use to specify the comment to reply to"
    }
  }
}
object WorkflowsCreateCommentResponse
{
  "type": "object",
  "properties": {}
}
object WorkflowsGetApprovalRequests403Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "example": "FORBIDDEN"
    },
    "message": {
      "type": "string",
      "example": "access forbidden"
    }
  }
}
object WorkflowsGetApprovalRequests404Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "example": "NOT_FOUND"
    },
    "param": {
      "type": "string",
      "example": "workflowId"
    },
    "message": {
      "type": "string",
      "example": "workflow does not exist"
    }
  }
}
object WorkflowsGetApprovalRequestsResponse
{
  "type": "object",
  "properties": {
    "list": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "role": {
            "type": "string",
            "example": "approver58348a760b354ab3a986f56a74656c86"
          },
          "status": {
            "type": "string",
            "example": "approved"
          },
          "actorId": {
            "type": "string",
            "example": "6334b636b9fb1eb6e76ada97"
          },
          "endTime": {
            "type": "string",
            "example": "2022-09-28T19:21:05.034Z"
          },
          "roleName": {
            "type": "string",
            "example": "CEO"
          },
          "actorType": {
            "type": "string",
            "example": "User"
          },
          "startTime": {
            "type": "string",
            "example": "2022-09-20T15:51:54.156Z"
          },
          "actorDetails": {
            "type": "object",
            "example": {
              "userName": {
                "type": "string",
                "example": "Cave Johnson"
              },
              "userEmail": {
                "type": "string",
                "example": "cave@aperturescience.com"
              }
            }
          },
          "approvalType": {
            "type": "string",
            "example": "Workflow"
          }
        }
      }
    },
    "page": {
      "type": "integer",
      "default": 0,
      "example": 0
    },
    "count": {
      "type": "integer",
      "example": 42
    },
    "pageSize": {
      "type": "integer",
      "default": 20,
      "example": 20
    }
  }
}
object WorkflowsGetAsyncJobStatus404Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "example": "NOT_FOUND"
    },
    "param": {
      "type": "string",
      "example": "parameter identifier"
    },
    "message": {
      "type": "string",
      "example": "not found"
    }
  }
}
object WorkflowsGetAsyncJobStatusResponse
{
  "type": "object",
  "oneOf": [
    {
      "$ref": "#/components/schemas/WorkflowAsyncLaunchSuccessResponse"
    },
    {
      "$ref": "#/components/schemas/WorkflowAsyncLaunchFailedResponse"
    },
    {
      "$ref": "#/components/schemas/WorkflowAsyncInProgressResponse"
    }
  ],
  "title": "Workflow Launch Status",
  "readOnly": true,
  "description": "The current status of the launch workflow job."
}
object WorkflowsGetAttachmentFromEmailThread404Response
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/WorkflowNotFound"
    },
    {
      "$ref": "#/components/schemas/EmailNotFound"
    },
    {
      "$ref": "#/components/schemas/AttachmentNotFound"
    }
  ]
}
object WorkflowsGetAttachmentFromEmailThreadResponse
{
  "type": "object",
  "properties": {}
}
object WorkflowsGetDocumentByKey400Response
{
  "type": "object",
  "properties": {}
}
object WorkflowsGetDocumentByKeyResponse
{
  "type": "object",
  "properties": {}
}
object WorkflowsGetEmailThreadResponse
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/WorkflowNotFound"
    },
    {
      "$ref": "#/components/schemas/EmailNotFound"
    }
  ]
}
object WorkflowsGetEmailThreadsResponse
{
  "type": "object",
  "properties": {
    "list": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/EmailResponseModel"
      }
    },
    "page": {
      "type": "integer",
      "default": 0,
      "example": 0
    },
    "count": {
      "type": "integer",
      "example": 1
    },
    "pageSize": {
      "type": "integer",
      "default": 20,
      "example": 20
    }
  }
}
object WorkflowsGetTurnHistory403Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "example": "FORBIDDEN"
    },
    "message": {
      "type": "string",
      "example": "access forbidden"
    }
  }
}
object WorkflowsGetTurnHistory404Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "example": "NOT_FOUND"
    },
    "param": {
      "type": "string",
      "example": "workflowId"
    },
    "message": {
      "type": "string",
      "example": "workflow does not exist"
    }
  }
}
object WorkflowsGetTurnHistoryResponse
{
  "type": "object",
  "properties": {
    "list": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "turnParty": {
            "type": "string",
            "example": "internal"
          },
          "turnNumber": {
            "type": "integer",
            "example": 1
          },
          "turnUserId": {
            "type": "string",
            "example": "5f89b6a5eed2cc6e0b2735d4"
          },
          "turnEndTime": {
            "type": "string",
            "example": "2022-09-28T19:21:05.034Z"
          },
          "turnLocation": {
            "type": "string",
            "example": "manual change"
          },
          "turnStartTime": {
            "type": "string",
            "example": "2022-09-20T15:51:54.156Z"
          },
          "turnUserEmail": {
            "type": "string",
            "example": "baldwin@ironcladhq.com"
          }
        }
      }
    },
    "page": {
      "type": "integer",
      "default": 0,
      "example": 0
    },
    "count": {
      "type": "integer",
      "example": 42
    },
    "pageSize": {
      "type": "integer",
      "default": 20,
      "example": 20
    }
  }
}
object WorkflowsGetWorkflowResponse
{
  "type": "object",
  "properties": {}
}
object WorkflowsGetWorkflowSchema400Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string"
    },
    "param": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  }
}
object WorkflowsGetWorkflowSchemaResponse
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "6013609108b8f070cee94fc1"
    },
    "name": {
      "type": "string",
      "example": "MNDA"
    },
    "schema": {
      "type": "object",
      "properties": {
        "fee": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "monetaryAmount"
            },
            "displayName": {
              "type": "string",
              "example": "Example Monetary Amount Attribute"
            }
          }
        },
        "draft": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "array"
            },
            "elementType": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "example": "document"
                },
                "displayName": {
                  "type": "string",
                  "example": "Example Document Attribute"
                }
              }
            }
          }
        },
        "amount": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "number"
            },
            "displayName": {
              "type": "string",
              "example": "Example Number Attribute"
            }
          }
        },
        "lineItems": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "array"
            },
            "elementType": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "example": "object"
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "childAttribute": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "example": "string"
                        },
                        "displayName": {
                          "type": "string",
                          "example": "Example String Attribute"
                        }
                      }
                    },
                    "anotherChildAttribute": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "example": "string"
                        },
                        "displayName": {
                          "type": "string",
                          "example": "Example String Attribute"
                        }
                      }
                    }
                  }
                },
                "displayName": {
                  "type": "string",
                  "example": "Example Object Attribute"
                }
              }
            }
          }
        },
        "counterpartyName": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "string"
            },
            "displayName": {
              "type": "string",
              "example": "Example String Attribute"
            }
          }
        }
      }
    },
    "permissions": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "example": [
        "launch",
        "view"
      ]
    }
  }
}
object WorkflowsLaunchAsynchronously400Response
{
  "type": "object",
  "properties": {}
}
object WorkflowsLaunchAsynchronouslyResponse
{
  "type": "object",
  "title": "",
  "required": [
    "asyncJobId",
    "asyncJobStatusUrl"
  ],
  "properties": {
    "asyncJobId": {
      "type": "string",
      "title": "",
      "example": "jobIda89474a8ba364f79bb510517d7bd3fea",
      "readOnly": true,
      "description": ""
    },
    "asyncJobStatusUrl": {
      "type": "string",
      "title": "",
      "example": "http://ironcladapp.com/public/api/v1/workflows/async/jobIda89474a8ba364f79bb510517d7bd3fea",
      "readOnly": true,
      "description": ""
    }
  },
  "description": ""
}
object WorkflowsListAllParticipants403Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "example": "FORBIDDEN"
    },
    "message": {
      "type": "string",
      "example": "access forbidden"
    }
  }
}
object WorkflowsListAllParticipants404Response
{
  "oneOf": [
    {
      "$ref": "#/components/schemas/WorkflowNotFound"
    }
  ]
}
object WorkflowsListAllParticipantsResponse
{
  "type": "object",
  "properties": {
    "list": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "example": "boba@intergalactic.com"
          },
          "userId": {
            "type": "string",
            "example": "61968ae4945dcecf4a78cc83"
          }
        }
      }
    },
    "page": {
      "type": "integer",
      "default": 0,
      "example": 0
    },
    "count": {
      "type": "integer",
      "example": 1
    },
    "pageSize": {
      "type": "integer",
      "default": 20,
      "example": 20
    }
  }
}
object WorkflowsListAllResponse
{
  "type": "object",
  "properties": {
    "list": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/WorkflowResponseModel"
      }
    },
    "page": {
      "type": "integer",
      "default": 0,
      "example": 0
    },
    "count": {
      "type": "integer",
      "default": 0,
      "example": 1234
    },
    "pageSize": {
      "type": "integer",
      "default": 0,
      "example": 20
    }
  }
}
object WorkflowsListAllWorkflowSchemas400Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "example": "MISSING_PARAM"
    },
    "param": {
      "type": "string",
      "example": "parameter identifier"
    },
    "message": {
      "type": "string",
      "example": "reason why something has gone wrong"
    }
  }
}
object WorkflowsListAllWorkflowSchemasResponse
{
  "type": "object",
  "properties": {
    "list": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "a1b2c3d4"
          },
          "name": {
            "type": "string",
            "example": "MNDA"
          },
          "schema": {
            "type": "object",
            "properties": {
              "fee": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "example": "monetaryAmount"
                  },
                  "displayName": {
                    "type": "string",
                    "example": "Example Monetary Amount Attribute"
                  }
                }
              },
              "draft": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "example": "array"
                  },
                  "elementType": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "example": "document"
                      },
                      "displayName": {
                        "type": "string",
                        "example": "Example Document Attribute"
                      }
                    }
                  }
                }
              },
              "amount": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "example": "number"
                  },
                  "displayName": {
                    "type": "string",
                    "example": "Example Number Attribute"
                  }
                }
              },
              "lineItems": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "example": "array"
                  },
                  "elementType": {
                    "type": "object",
                    "properties": {
                      "type": {
                        "type": "string",
                        "example": "object"
                      },
                      "schema": {
                        "type": "object",
                        "properties": {
                          "childAttribute": {
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string",
                                "example": "string"
                              },
                              "displayName": {
                                "type": "string",
                                "example": "Example String Attribute"
                              }
                            }
                          },
                          "anotherChildAttribute": {
                            "type": "object",
                            "properties": {
                              "type": {
                                "type": "string",
                                "example": "string"
                              },
                              "displayName": {
                                "type": "string",
                                "example": "Example String Attribute"
                              }
                            }
                          }
                        }
                      },
                      "displayName": {
                        "type": "string",
                        "example": "Example Object Attribute"
                      }
                    }
                  }
                }
              },
              "counterpartyName": {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "example": "string"
                  },
                  "displayName": {
                    "type": "string",
                    "example": "Example String Attribute"
                  }
                }
              }
            }
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "example": [
              "launch",
              "view"
            ]
          }
        }
      }
    }
  }
}
object WorkflowsListApprovals400Response
{
  "type": "object",
  "properties": {}
}
object WorkflowsListApprovalsResponse
{
  "type": "object",
  "properties": {
    "roles": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "legal"
          },
          "assignees": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "email": {
                  "type": "string",
                  "example": "bobafett@gmail.com"
                },
                "userId": {
                  "type": "string",
                  "example": "63d415e0dd0d828c3a878548"
                },
                "userName": {
                  "type": "string",
                  "example": "Boba Fett"
                }
              }
            }
          },
          "displayName": {
            "type": "string",
            "example": "Legal"
          }
        }
      }
    },
    "title": {
      "type": "string",
      "example": "Consulting Agreement with Michael Scott Paper Company"
    },
    "workflowId": {
      "type": "string",
      "example": "5f595f76c4fc9b3571413c3ac"
    },
    "approvalGroups": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "reviewers": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "role": {
                  "type": "string",
                  "example": "finance"
                },
                "status": {
                  "type": "string",
                  "example": "pending"
                },
                "displayName": {
                  "type": "string",
                  "example": "Finance"
                },
                "reviewerType": {
                  "type": "string",
                  "example": "role"
                }
              }
            }
          }
        }
      }
    }
  }
}
object WorkflowsListSignatures400Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "example": "INVALID_STATE"
    },
    "message": {
      "type": "string",
      "example": "This workflow is not at the Sign step, and is currently at the Review step"
    }
  }
}
object WorkflowsListSignatures403Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "example": "FORBIDDEN"
    },
    "message": {
      "type": "string",
      "example": "access forbidden"
    }
  }
}
object WorkflowsListSignaturesResponse
{
  "type": "object",
  "properties": {
    "title": {
      "type": "string",
      "example": "Goldendoodle Adoption Contract"
    },
    "signers": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "example": "Jimothy Kim"
          },
          "email": {
            "type": "string",
            "example": "jimothykim@gmail.com"
          },
          "roleName": {
            "type": "string",
            "example": "Counterparty Signer"
          },
          "delegates": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "example": "Kim Lam"
                },
                "email": {
                  "type": "string",
                  "example": "kimlam@gmail.com"
                }
              }
            }
          },
          "signatureStatus": {
            "type": "string",
            "example": "sent"
          }
        }
      }
    },
    "workflowId": {
      "type": "string",
      "example": "6dac47a10b1242d1f7df688d"
    }
  }
}
object WorkflowsRevertToReview403Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "example": "FORBIDDEN"
    },
    "param": {
      "type": "string",
      "example": "user"
    },
    "message": {
      "type": "string",
      "example": "user is not a participant on the workflow"
    }
  }
}
object WorkflowsRevertToReview404Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "example": "NOT_FOUND"
    },
    "param": {
      "type": "string",
      "example": "workflowId"
    },
    "message": {
      "type": "string",
      "example": "workflow does not exist"
    }
  }
}
object WorkflowsRevertToReviewRequest
{
  "type": "object",
  "required": [
    "user",
    "status"
  ],
  "properties": {
    "user": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "default": "email",
          "description": "The mechanism of identifying the Ironclad user's account."
        },
        "email": {
          "type": "string",
          "example": "jango@intergalactic.com",
          "description": "The Ironclad user's email address."
        }
      },
      "description": "The Ironclad user reverting the workflow to the Review step. The user must be a participant on the workflow."
    }
  }
}
object WorkflowsRevertToReviewResponse
{
  "type": "object",
  "properties": {
    "code": {
      "enum": [
        "INVALID_PARAM",
        "INVALID_STATE"
      ],
      "type": "string",
      "example": "INVALID_STATE"
    },
    "param": {
      "type": "string",
      "example": "user"
    },
    "message": {
      "enum": [
        "invalid user for user attribute",
        "workflow was not built in workflow designer and cannot be reverted to review via the API",
        "workflow cannot be reverted to review as it is not in the sign stage",
        "various malformed user payload messages"
      ],
      "type": "string",
      "example": "workflow cannot be reverted to review as it is not in the sign stage"
    }
  }
}
object WorkflowsUpdateApprovalStatus400Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "example": "INVALID_PARAM"
    },
    "param": {
      "type": "string",
      "example": "approval"
    },
    "message": {
      "enum": [
        "This role does not exist in this workflow",
        "invalid user for user attribute",
        "This approval either was not requested or this user was not assigned to this approval"
      ],
      "type": "string",
      "example": "This role does not exist in this workflow"
    }
  }
}
object WorkflowsUpdateApprovalStatusRequest
{
  "type": "object",
  "required": [
    "user",
    "status"
  ],
  "properties": {
    "user": {
      "type": "object",
      "properties": {
        "type": {
          "type": "string",
          "default": "email",
          "description": "The mechanism of identifying the Ironclad user's account."
        },
        "email": {
          "type": "string",
          "example": "fett@intergalactic.com",
          "description": "The Ironclad user's email address."
        }
      },
      "description": "The Ironclad user approving the workflow. The user must be currently assigned as the approver."
    },
    "status": {
      "enum": [
        "approved",
        "pending"
      ],
      "type": "string",
      "description": "The new approval status."
    }
  }
}
boolean WorkflowsUpdateApprovalStatusResponse
{
  "type": "boolean",
  "example": true
}
object WorkflowsUpdateMetadata400Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string"
    },
    "param": {
      "type": "string"
    },
    "message": {
      "type": "string"
    }
  }
}
object WorkflowsUpdateMetadata403Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "example": "FORBIDDEN"
    },
    "message": {
      "type": "string",
      "example": "access forbidden"
    }
  }
}
object WorkflowsUpdateMetadata404Response
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "example": "NOT_FOUND"
    },
    "param": {
      "type": "string",
      "example": "parameter identifier"
    },
    "message": {
      "type": "string",
      "example": "not found"
    }
  }
}
object WorkflowsUpdateMetadataRequest
{
  "type": "object",
  "required": [
    "updates"
  ],
  "properties": {
    "comment": {
      "type": "string",
      "example": "Changing attribute on a Workflow.",
      "description": "A comment that explains the updates you are making to the workflow."
    },
    "updates": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "action",
          "path"
        ],
        "properties": {
          "path": {
            "type": "string",
            "example": "counterpartyName",
            "description": "The workflow attribute id that you'd like to make a change to. Workflow attribute IDs and values can be retrieved using the [Retrieve a Workflow](https://developer.ironcladapp.com/reference/retrieve-a-workflow) endpoint."
          },
          "value": {
            "type": "string",
            "example": "Example Company",
            "description": "The value to change the attribute to. Only required when the `action` property is `set` and not `remove`. The value's format must conform to the field type (e.g., `\"someString\"` for strings, `true` or `false` for booleans, etc."
          },
          "action": {
            "enum": [
              "set",
              "remove"
            ],
            "type": "string",
            "default": "set",
            "description": "The type of action you'd like to take on an existing attribute (read-only fields cannot be updated). Use the remove action to clear values. If using the remove action, the attribute cannot be required by the workflow."
          }
        }
      }
    }
  }
}
object WorkflowsUpdateMetadataResponse
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "example": "6013609108b8f070cee94fc1"
    },
    "step": {
      "type": "string",
      "example": "Review"
    },
    "roles": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "example": "legal"
          },
          "assignees": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "email": {
                  "type": "string",
                  "example": "bobafett@gmail.com"
                },
                "userId": {
                  "type": "string",
                  "example": "63d415e0dd0d828c3a878548"
                },
                "userName": {
                  "type": "string",
                  "example": "Boba Fett"
                }
              }
            }
          },
          "displayName": {
            "type": "string",
            "example": "Legal"
          }
        }
      }
    },
    "title": {
      "type": "string",
      "example": "Consulting Agreement with Jane Doe"
    },
    "schema": {
      "type": "object",
      "properties": {
        "fee": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "monetaryAmount"
            },
            "displayName": {
              "type": "string",
              "example": "Example Monetary Amount Attribute"
            }
          }
        },
        "draft": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "array"
            },
            "elementType": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "example": "document"
                },
                "displayName": {
                  "type": "string",
                  "example": "Example Document Attribute"
                }
              }
            }
          }
        },
        "amount": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "number"
            },
            "displayName": {
              "type": "string",
              "example": "Example Number Attribute"
            }
          }
        },
        "lineItems": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "array"
            },
            "elementType": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string",
                  "example": "object"
                },
                "schema": {
                  "type": "object",
                  "properties": {
                    "childAttribute": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "example": "string"
                        },
                        "displayName": {
                          "type": "string",
                          "example": "Example String Attribute"
                        }
                      }
                    },
                    "anotherChildAttribute": {
                      "type": "object",
                      "properties": {
                        "type": {
                          "type": "string",
                          "example": "string"
                        },
                        "displayName": {
                          "type": "string",
                          "example": "Example String Attribute"
                        }
                      }
                    }
                  }
                },
                "displayName": {
                  "type": "string",
                  "example": "Example Object Attribute"
                }
              }
            }
          }
        },
        "counterpartyName": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "example": "string"
            },
            "displayName": {
              "type": "string",
              "example": "Example String Attribute"
            }
          }
        }
      }
    },
    "status": {
      "type": "string",
      "example": "active"
    },
    "created": {
      "type": "string",
      "example": "2016-11-17T00:37:22.318Z"
    },
    "creator": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "example": "63d415e0dd0d828c3a878548"
        },
        "email": {
          "type": "string",
          "example": "fett@intergalactic.com"
        },
        "displayName": {
          "type": "string",
          "example": "Boba Fett"
        }
      }
    },
    "template": {
      "type": "string",
      "example": "600b296c3e15a234ab88f884"
    },
    "approvals": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "example": "https://ironcladapp.com/public/api/v1/workflows/22e2ff72-56a1-4711-a4ca-41328d311e9f/approvals"
        },
        "state": {
          "type": "string",
          "example": "in_progess"
        }
      }
    },
    "recordIds": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "715f1e37-292f-4e6c-8b48-c07e1b68bccd"
      }
    },
    "attributes": {
      "type": "object",
      "properties": {
        "fee": {
          "type": "object",
          "properties": {
            "amount": {
              "type": "integer",
              "default": 0,
              "example": 50000
            },
            "currency": {
              "type": "string",
              "example": "USD"
            }
          }
        },
        "draft": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "version": {
                "type": "string",
                "example": "B1QePArXb"
              },
              "download": {
                "type": "string",
                "example": "/public/api/v1/workflows/594356b9fbcd7f74006fdf8a/document/rJklwCHQ/download"
              },
              "filename": {
                "type": "string",
                "example": "file.pdf"
              }
            }
          }
        },
        "amount": {
          "type": "integer",
          "default": 0,
          "example": 123
        },
        "counterpartyName": {
          "type": "string",
          "example": "Boba Fett"
        }
      }
    },
    "ironcladId": {
      "type": "string",
      "example": "IC-1"
    },
    "isComplete": {
      "type": "boolean",
      "default": true,
      "example": false
    },
    "signatures": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "example": "https://ironcladapp.com/public/api/v1/workflows/6dac47a10b1242d1f7df688d/signatures"
        },
        "state": {
          "type": "string",
          "example": "in_progess"
        }
      }
    },
    "isCancelled": {
      "type": "boolean",
      "default": true,
      "example": false
    },
    "lastUpdated": {
      "type": "string",
      "example": "2016-11-17T00:37:22.318Z"
    },
    "isRevertibleToReview": {
      "type": "boolean",
      "example": false
    }
  }
}
string webhookEventTypeValue
{
  "enum": [
    "*",
    "workflow_launched",
    "workflow_updated",
    "workflow_cancelled",
    "workflow_completed",
    "workflow_approval_status_changed",
    "workflow_attribute_updated",
    "workflow_comment_added",
    "workflow_comment_removed",
    "workflow_comment_updated",
    "workflow_comment_reaction_added",
    "workflow_comment_reaction_removed",
    "workflow_counterparty_invite_sent",
    "workflow_counterparty_invite_revoked",
    "workflow_documents_added",
    "workflow_documents_removed",
    "workflow_documents_updated",
    "workflow_documents_renamed",
    "workflow_document_edited",
    "workflow_changed_turn",
    "workflow_paused",
    "workflow_resumed",
    "workflow_signature_packet_sent",
    "workflow_signature_packet_uploaded",
    "workflow_signature_packet_cancelled",
    "workflow_signer_added",
    "workflow_signer_removed",
    "workflow_signer_reassigned",
    "workflow_step_updated"
  ],
  "type": "string",
  "example": "workflow_launched"
}
object webhookInvalidEventTypeBadRequestResponse
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "example": "INVALID_PARAM"
    },
    "param": {
      "type": "string",
      "example": "events"
    },
    "message": {
      "type": "string",
      "example": "invalid event type; *, workflow_launched, workflow_updated, workflow_cancelled, workflow_completed, workflow_approval_status_changed, workflow_attribute_updated, workflow_changed_turn, workflow_comment_reaction_added, workflow_comment_reaction_removed, workflow_comment_added, workflow_comment_removed, workflow_comment_updated, workflow_counterparty_invite_sent, workflow_counterparty_invite_revoked, workflow_documents_added, workflow_documents_removed, workflow_documents_updated, workflow_documents_renamed, workflow_document_edited, workflow_paused, workflow_resumed, workflow_signature_packet_sent, workflow_signature_packet_uploaded, or workflow_signature_packet_cancelled, workflow_signer_added, workflow_signer_removed, workflow_signer_reassigned are acceptable event types"
    }
  }
}
object webhookTargetURLExistsBadRequestResponse
{
  "type": "object",
  "properties": {
    "code": {
      "type": "string",
      "example": "INVALID_PARAM"
    },
    "param": {
      "type": "string",
      "example": "tagetURL"
    },
    "message": {
      "type": "string",
      "example": "webhook already exists for event workflow_completed and target [SOME_EXISTING_TARGET_URL]"
    }
  }
}