SpotDraft · Schema

SpotDraft Contract

Defines the data that is required for contract creation

Contract Lifecycle ManagementCLMContractsLegal TechE-SignatureClickwrapWorkflowsApprovalsNegotiationTemplatesCounterpartiesObligationsAnalyticsWebhooksAISaaSBangalore

Properties

Name Type Description
contract_template_id integer ID of the SpotDraft contract template used to generate the contract.
contract_data object A key-value object where each key must match a template field name from the contract template. Values should use the data type expected by that template field. Common patterns include: - `string`: fre
counter_party_details array A list of counterparties involved in the contract. At least one counterparty must be provided.
external_metadata object Optional external system metadata to associate with the contract, such as a CRM or ERP record reference.
entity_reference_id string Optional creator organization entity reference ID. If omitted, SpotDraft uses the primary organization entity for the creator organization.
workflow_config object
send_to_counterparty_config object Optional email-delivery settings to apply when sending the contract to counterparties.
contract_name string Optional contract display name. If omitted, SpotDraft derives the contract name from the workflow or template configuration.
signatories array An optional list of signatories for the contract. If provided, each signatory must be associated with a counterparty specified in `counter_party_details`.
is_embedded_contract boolean Set to true when the contract will be used in an embedded signing flow.
View JSON Schema on GitHub

JSON Schema

spotdraft-contract-schema.json Raw ↑
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://raw.githubusercontent.com/api-evangelist/spotdraft/main/json-schema/spotdraft-contract-schema.json",
  "title": "SpotDraft Contract",
  "description": "Defines the data that is required for contract creation",
  "type": "object",
  "properties": {
    "contract_template_id": {
      "type": "integer",
      "description": "ID of the SpotDraft contract template used to generate the contract."
    },
    "contract_data": {
      "description": "A key-value object where each key must match a template field name from the contract template.\n\nValues should use the data type expected by that template field. Common patterns include:\n- `string`: free-form text\n- `number`: integer or decimal values\n- `boolean`: `true` or `false`\n- `date`: `YYYY-MM-DD`\n- `datetime`: ISO 8601 timestamp such as `2026-03-28T10:15:00Z`\n- `duration`: `{ \"type\": \"MONTHS\" | \"YEARS\" | \"DAYS\", \"value\": number, \"days\": number }`\n- `currency`: `{ \"type\": \"USD\" | \"INR\" | ... , \"value\": number }`\n- `dropdown`: the selected option value as configured in the template\n- `multi_select`: an array of selected option values\n- `address`: an object such as `{ \"line_one\": ..., \"city\": ..., \"country\": ..., \"zipcode\": ... }`\n- `repeating`: an array of row objects for repeating groups or dynamic tables\n- `file`: a file object or uploaded file reference where the workflow supports attachments\n\nUse template field names exactly as configured in SpotDraft."
    },
    "counter_party_details": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ExternalCounterPartyDetails"
      },
      "description": "A list of counterparties involved in the contract. At least one counterparty must be provided."
    },
    "external_metadata": {
      "description": "Optional external system metadata to associate with the contract, such as a CRM or ERP record reference."
    },
    "entity_reference_id": {
      "type": "string",
      "description": "Optional creator organization entity reference ID. If omitted, SpotDraft uses the primary organization entity for the creator organization."
    },
    "workflow_config": {
      "$ref": "#/components/schemas/WorkflowConfig"
    },
    "send_to_counterparty_config": {
      "allOf": [
        {
          "$ref": "#/components/schemas/SendToCounterparty"
        }
      ],
      "description": "Optional email-delivery settings to apply when sending the contract to counterparties."
    },
    "contract_name": {
      "type": "string",
      "description": "Optional contract display name. If omitted, SpotDraft derives the contract name from the workflow or template configuration."
    },
    "signatories": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ExternalCreateContractSignatory"
      },
      "description": "An optional list of signatories for the contract. If provided, each signatory must be associated with a counterparty specified in `counter_party_details`."
    },
    "is_embedded_contract": {
      "type": "boolean",
      "default": false,
      "description": "Set to true when the contract will be used in an embedded signing flow."
    }
  },
  "required": [
    "contract_data",
    "contract_template_id",
    "counter_party_details"
  ]
}