---
title: "Create Contract"
method: POST
path: "/api/vendor/v1/contracts/add"
tags: ["Contracts"]
---

# Create Contract

`POST /api/vendor/v1/contracts/add`

## Request

- Base URL: `https://hostname`
- URL: `https://hostname/api/vendor/v1/contracts/add`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `https://{hostname}/api/access/v1/oauth/token` scopes: `GENERIC`, `VRM`

Use this API to create a new contract.

## Request body

- ExternalContractCreateRequest
  - `name` string, required: The name of the contract for creation.
  - `status` 'NEW' | 'IN_PROGRESS' | 'ACTIVE' | 'INACTIVE' | 'EXPIRED' | 'TERMINATED' | 'ARCHIVED', required: The status of the new contract.
  - `agreementCreatedDate` string, date, required: The creation date for the new agreement.
  - `contractTypeId` string, uuid: The contract type identifier for new contract.
  - `contractTypeName` string: The contract type name for new contract.
  - `approvedDate` string, date: The approval date for the new contract.
  - `expirationDate` string, date: The expiration date for the new contract.
  - `contractOwnerId` string, uuid: The owner identifier for the new contract.
  - `contractOwnerEmail` string, email: The owner email for the new contract.
  - `vendorContact` string: The vendor contact for the new contract.
  - `approvers` string: The approvers list for the new contract.
  - `note` string: The notes for the new contract.
  - `cost` number: The cost for the new contract.
  - `currency` object: The currency in which the cost is indicated. Uses ISO 4217 currency codes.
    - `currencyCode` string
    - `symbol` string
    - `displayName` string
    - `defaultFractionDigits` integer
    - `numericCode` integer
    - `numericCodeAsString` string
  - `url` string, uri: The document URL for the new contract.
  - `orgGroupId` string, uuid: The organization group for the new contract.
  - `attributeValues` object: The custom attributes for the new contract.
  - `vendorId` string, uuid, required: The vendor identifier for the new contract.
  - `assets` InventoryLink[]: The collection of asset links for contract.
    - `inventoryId` string, uuid, required: The inventory identifier of the linked vendor.
    - `relationshipType` 'DirectLinkType' | 'RelatedLinkType' | 'IndirectLinkType': The relationship type between vendors.
  - `processingActivities` InventoryLink[]: The collection of processing activity links.
    - `inventoryId` string, uuid, required: The inventory identifier of the linked vendor.
    - `relationshipType` 'DirectLinkType' | 'RelatedLinkType' | 'IndirectLinkType': The relationship type between vendors.
  - `vendors` InventoryLink[]: The collection of vendor links for contract.
    - `inventoryId` string, uuid, required: The inventory identifier of the linked vendor.
    - `relationshipType` 'DirectLinkType' | 'RelatedLinkType' | 'IndirectLinkType': The relationship type between vendors.

## Response `201`

Created

- string, uuid: The unique identifier (contractId) of the created contract.

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `403`: Forbidden
- `429`: Too Many Requests. For more information, see [API Rate Limits](https://developer.onetrust.com/onetrust/reference/rate-limits-overview).
- `500`: Internal Server Error

---

[API](https://skmtc.dev/onetrust/apis/third-party-management-third-party-risk-management.md) - [All operations](https://skmtc.dev/onetrust/apis/third-party-management-third-party-risk-management/llms.txt) - [OpenAPI document](https://skmtc.dev/onetrust/apis/third-party-management-third-party-risk-management/revisions/64a31041f3ef?raw)
