---
title: "Create a new contract"
method: POST
path: "/api/v1/documents/contracts"
tags: ["contracts"]
---

# Create a new contract

`POST /api/v1/documents/contracts`

## Headers

- `x-api-key` string, nullable

## Request body

- CreateContractRequest — Request to create a new contract. Exactly one of ``contractor_email`` or ``client_email`` must be set. * ``contractor_email`` — the creator is the **client**. * ``client_email`` — the creator is the **contractor**.
  - `contractorEmail` string, nullable
  - `clientEmail` string, nullable
  - `label` string, nullable
  - `type` 'service' | 'employment' | 'nda' | 'contractor' | 'default_contractor' | 'custom' | 'vendor' | 'milestone' | 'msa' | 'other' — Contract type.
  - `period` 'weekly' | 'biweekly' | 'monthly' | 'quarterly' | 'yearly' — Recurring billing period of a contract.
  - `activationAt` string, date-time, nullable
  - `expirationAt` string, date-time, nullable
  - `status` 'pending_approval_by_contractor' | 'pending_approval_by_client' | 'active' | 'completed' | 'cancelled' | 'paused' — Contract status.
  - `fields` object, nullable
  - `documentId` string, uuid, nullable
  - `priorityMethods` TransactionType[]
  - `paymentMethods` object[]
  - `requireClientKyc` boolean
  - `requireClientW89` boolean
  - `requireContractorKyc` boolean
  - `requireContractorW89` boolean

## Response `201`

Successful Response

- ContractResponse — Contract response.
  - `id` string, uuid, required
  - `clientId` string, uuid, required
  - `contractorId` string, uuid, required
  - `client` ContractParty — Minimal user data embedded in contract responses.
    - `id` string, uuid, required
    - `email` string, nullable
    - `displayName` string, nullable
    - `firstName` string, nullable
    - `lastName` string, nullable
    - `entityName` string, nullable
    - `avatarUrl` string, nullable
    - `isBusiness` boolean
    - `address` object, nullable
  - `contractor` ContractParty — Minimal user data embedded in contract responses.
    - `id` string, uuid, required
    - `email` string, nullable
    - `displayName` string, nullable
    - `firstName` string, nullable
    - `lastName` string, nullable
    - `entityName` string, nullable
    - `avatarUrl` string, nullable
    - `isBusiness` boolean
    - `address` object, nullable
  - `label` string, nullable
  - `documentId` string, uuid, nullable
  - `documentName` string, nullable
  - `documentFileName` string, nullable
  - `documentDownloadLink` string, nullable
  - `type` 'service' | 'employment' | 'nda' | 'contractor' | 'default_contractor' | 'custom' | 'vendor' | 'milestone' | 'msa' | 'other', required — Contract type.
  - `status` 'pending_approval_by_contractor' | 'pending_approval_by_client' | 'active' | 'completed' | 'cancelled' | 'paused', required — Contract status.
  - `amount` string, nullable
  - `currency` 'USD' | 'EUR' | 'GBP' | 'JPY' | 'CHF' | 'CAD' | 'AUD' | 'NZD' | 'SEK' | 'NOK' | 'AED' | 'HKD' — Supported invoice/contract currencies. G10 majors + AED/HKD.
  - `period` string, nullable
  - `activationAt` string, date-time, nullable
  - `expirationAt` string, date-time, nullable
  - `signatureRequestId` string, nullable
  - `signed` object, nullable
  - `clientAcceptance` object, nullable
  - `contractorAcceptance` object, nullable
  - `creatorId` string, uuid, nullable
  - `fields` object, nullable
  - `priorityMethods` TransactionType[]
  - `paymentMethods` object[]
  - `lastInvoice` ContractLastInvoice — Flat last invoice data embedded in contract responses.
    - `id` string, uuid, required
    - `clientId` string, uuid, required
    - `contractorId` string, uuid, nullable
    - `contractorEmail` string, nullable
    - `clientEmail` string, nullable
    - `contractId` string, uuid, nullable
    - `onchainTransactionId` string, nullable
    - `invoiceDocumentId` string, uuid, nullable
    - `amount` string, required
    - `discount` string, nullable
    - `currency` 'USD' | 'EUR' | 'GBP' | 'JPY' | 'CHF' | 'CAD' | 'AUD' | 'NZD' | 'SEK' | 'NOK' | 'AED' | 'HKD', required — Supported invoice/contract currencies. G10 majors + AED/HKD.
    - `comment` string, nullable
    - `emailMessage` string, nullable
    - `invoiceNumber` string, nullable
    - `issuedDate` string, date, nullable
    - `dueDate` string, date, nullable
    - `status` string, required
    - `paidAt` string, date-time, nullable
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, required
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.net/hevn-inc/apis/hevn-api.md) · [All operations](https://skmtc.net/hevn-inc/apis/hevn-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/hevn-inc/hevn-api/versions/e6301d6796bf/schema)
