Skip to main content
POST
/
v2
/
integrations
/
contracts
curl --location 'https://integrations.projectcor.com/v2/integrations/contracts' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
  "metadata": {
    "source": "SALESFORCE"
  },
  "id": "SF-CONTRACT-12345",
  "name": "Annual Service Agreement",
  "client_id": "SF-ACC-67890",
  "type": "retainer",
  "status": "active",
  "start_date": "2025-01-01",
  "end_date": "2025-12-31",
  "value": 120000,
  "description": "Annual retainer for design and development services"
}'
{
  "id": 30001,
  "name": "Annual Service Agreement",
  "client_id": 25855,
  "type": "retainer",
  "status": "active",
  "start_date": "2025-01-01",
  "end_date": "2025-12-31",
  "value": 120000,
  "company_id": 1234,
  "created_at": "2025-01-10T14:30:00Z",
  "updated_at": "2025-01-10T14:30:00Z"
}

Documentation Index

Fetch the complete documentation index at: https://developers.projectcor.com/llms.txt

Use this file to discover all available pages before exploring further.

Creates a new contract in your COR instance through the integrations service. Validates contract type, status, client association, and validates date fields in YYYY-MM-DD format before creating. The currency ISO sent in the request must have a previously configured currency exchange in COR. If no exchange rate exists from the contract currency to the company base currency, contract creation is rejected with status: 400, name: CORCustomError, and code: CTR006.

Request Body Requirements

metadata
object
required
id
string
required
External contract ID from your source system
name
string
required
Contract name
client_id
string
required
External client ID. The client must have been previously created through the integrations API.
type
string
Contract type (e.g., “retainer”, “project”, “hourly”)
status
string
Contract status (e.g., “active”, “pending”, “completed”)
start_date
string
Start date in YYYY-MM-DD format
end_date
string
End date in YYYY-MM-DD format
value
number
Contract value/amount
description
string
Contract description

Known Errors

  • ValidationError — Missing required fields
  • ClientNotFoundError — The specified client does not exist in the integration mappings
  • DuplicateExternalIdError — A contract with this external ID already exists
  • ValidationErrorInvalid start date format: <value> when start_date is not a valid YYYY-MM-DD date
  • ValidationErrorInvalid end date format: <value> when end_date is not a valid YYYY-MM-DD date
  • CTR006 (CORCustomError, 400) — Cannot save contract. Exchange rate not found for ${currency} to ${baseCurrency}. Please sync exchange rates first.
curl --location 'https://integrations.projectcor.com/v2/integrations/contracts' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
  "metadata": {
    "source": "SALESFORCE"
  },
  "id": "SF-CONTRACT-12345",
  "name": "Annual Service Agreement",
  "client_id": "SF-ACC-67890",
  "type": "retainer",
  "status": "active",
  "start_date": "2025-01-01",
  "end_date": "2025-12-31",
  "value": 120000,
  "description": "Annual retainer for design and development services"
}'
{
  "id": 30001,
  "name": "Annual Service Agreement",
  "client_id": 25855,
  "type": "retainer",
  "status": "active",
  "start_date": "2025-01-01",
  "end_date": "2025-12-31",
  "value": 120000,
  "company_id": 1234,
  "created_at": "2025-01-10T14:30:00Z",
  "updated_at": "2025-01-10T14:30:00Z"
}