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

Clear filters

Records 4 endpoints

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
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}
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 1 endpoints

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

Workflows 3 endpoints

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
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

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]"
    }
  }
}