curl --location 'https://integrations.projectcor.com/v2/integrations/projects' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"metadata": {
"source": "SALESFORCE"
},
"id": "SF-OPP-12345",
"name": "Website Redesign Project",
"client_id": "SF-ACC-67890",
"brief": "Complete website overhaul including new branding",
"start": "2025-01-15",
"end": "2025-03-31",
"pm_id": "SF-USER-111",
"estimated_time": 200,
"billable": true,
"status": "active",
"estimated": 15000,
"contract_id": "SF-CONTRACT-001",
"work_order": "WO-2025-001"
}'
import requests
url = "https://integrations.projectcor.com/v2/integrations/projects"
payload = {
"metadata": {
"source": "SALESFORCE"
},
"id": "SF-OPP-12345",
"name": "Website Redesign Project",
"client_id": "SF-ACC-67890",
"brief": "Complete website overhaul including new branding",
"start": "2025-01-15",
"end": "2025-03-31",
"pm_id": "SF-USER-111",
"estimated_time": 200,
"billable": True,
"status": "active",
"estimated": 15000,
"contract_id": "SF-CONTRACT-001",
"work_order": "WO-2025-001"
}
headers = {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const response = await fetch(
'https://integrations.projectcor.com/v2/integrations/projects',
{
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
metadata: {
source: 'SALESFORCE'
},
id: 'SF-OPP-12345',
name: 'Website Redesign Project',
client_id: 'SF-ACC-67890',
brief: 'Complete website overhaul including new branding',
start: '2025-01-15',
end: '2025-03-31',
pm_id: 'SF-USER-111',
estimated_time: 200,
billable: true,
status: 'active',
estimated: 15000,
contract_id: 'SF-CONTRACT-001',
work_order: 'WO-2025-001'
})
}
);
const data = await response.json();
console.log(data);
{
"id": 155693,
"name": "Website Redesign Project",
"client_id": 25855,
"brief": "Complete website overhaul including new branding",
"start": "2025-01-15 00:00:00",
"end": "2025-03-31 00:00:00",
"pm_id": 8546,
"estimated_time": 200,
"billable": true,
"status": "active",
"estimated": 15000,
"contract_id": 4521,
"work_order": "WO-2025-001",
"company_id": 1234,
"created_at": "2025-01-10T14:30:00Z",
"updated_at": "2025-01-10T14:30:00Z"
}
{
"error": "ValidationError",
"message": "Missing required field: metadata.source",
"code": "ZC002"
}
{
"error": "ClientNotFoundError",
"message": "Client with external ID 'SF-ACC-67890' not found",
"code": "ZC004"
}
Projects
Create Project
Creates a new project in your COR instance with external ID mapping
POST
/
v2
/
integrations
/
projects
curl --location 'https://integrations.projectcor.com/v2/integrations/projects' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"metadata": {
"source": "SALESFORCE"
},
"id": "SF-OPP-12345",
"name": "Website Redesign Project",
"client_id": "SF-ACC-67890",
"brief": "Complete website overhaul including new branding",
"start": "2025-01-15",
"end": "2025-03-31",
"pm_id": "SF-USER-111",
"estimated_time": 200,
"billable": true,
"status": "active",
"estimated": 15000,
"contract_id": "SF-CONTRACT-001",
"work_order": "WO-2025-001"
}'
import requests
url = "https://integrations.projectcor.com/v2/integrations/projects"
payload = {
"metadata": {
"source": "SALESFORCE"
},
"id": "SF-OPP-12345",
"name": "Website Redesign Project",
"client_id": "SF-ACC-67890",
"brief": "Complete website overhaul including new branding",
"start": "2025-01-15",
"end": "2025-03-31",
"pm_id": "SF-USER-111",
"estimated_time": 200,
"billable": True,
"status": "active",
"estimated": 15000,
"contract_id": "SF-CONTRACT-001",
"work_order": "WO-2025-001"
}
headers = {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const response = await fetch(
'https://integrations.projectcor.com/v2/integrations/projects',
{
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
metadata: {
source: 'SALESFORCE'
},
id: 'SF-OPP-12345',
name: 'Website Redesign Project',
client_id: 'SF-ACC-67890',
brief: 'Complete website overhaul including new branding',
start: '2025-01-15',
end: '2025-03-31',
pm_id: 'SF-USER-111',
estimated_time: 200,
billable: true,
status: 'active',
estimated: 15000,
contract_id: 'SF-CONTRACT-001',
work_order: 'WO-2025-001'
})
}
);
const data = await response.json();
console.log(data);
{
"id": 155693,
"name": "Website Redesign Project",
"client_id": 25855,
"brief": "Complete website overhaul including new branding",
"start": "2025-01-15 00:00:00",
"end": "2025-03-31 00:00:00",
"pm_id": 8546,
"estimated_time": 200,
"billable": true,
"status": "active",
"estimated": 15000,
"contract_id": 4521,
"work_order": "WO-2025-001",
"company_id": 1234,
"created_at": "2025-01-10T14:30:00Z",
"updated_at": "2025-01-10T14:30:00Z"
}
{
"error": "ValidationError",
"message": "Missing required field: metadata.source",
"code": "ZC002"
}
{
"error": "ClientNotFoundError",
"message": "Client with external ID 'SF-ACC-67890' not found",
"code": "ZC004"
}
Creates a new project in your COR instance through the integrations service. The project is mapped to an external ID from your source system (Salesforce, Jira, etc.) for bidirectional synchronization.
Request Body Requirements
All requests require themetadata.source field to identify the integration source.
object
required
Show properties
Show properties
string
required
Integration source identifier. Must be one of:
JIRA, SALESFORCE, ADVERTMIND, QUICKBOOKS, ZAPIER, OKTA, MICROSOFT_DYNAMICS, GITHUB, MICROSOFT_TEAMS, VBS, SAP, GLOBANTstring
required
External project ID from your source system. This ID will be used to reference the project in future update/delete operations.
string
required
Project name
string
External client ID. The client must have been previously created through the integrations API.
string
Project description or brief
string
Project start date in
YYYY-MM-DD formatstring
Project end date in
YYYY-MM-DD formatstring
External project manager user ID
string
External brand ID
string
External product ID
number
Estimated hours for the project
boolean
Whether the project is billable
string
Project status
string
External currency ID
string
Project evaluation date in
YYYY-MM-DD formatnumber
Estimated monetary value for the project
string
External fee ID
string
External contract ID. The contract must have been previously created through the integrations API.
string
Project deliverables description
string
Work order number or code
string
Income type for the project. Possible values:
fee, one_time, hourly_rate, contractboolean
default:"false"
Whether the project is archived
Known Errors
ValidationError— Missing required fields (metadata.source,id, orname)ClientNotFoundError— The specifiedclient_iddoes not exist in the integration mappingsDuplicateExternalIdError— A project with this external ID already exists for this sourceInvalidSourceError— Themetadata.sourcevalue is not a valid integration source
curl --location 'https://integrations.projectcor.com/v2/integrations/projects' \
--header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
"metadata": {
"source": "SALESFORCE"
},
"id": "SF-OPP-12345",
"name": "Website Redesign Project",
"client_id": "SF-ACC-67890",
"brief": "Complete website overhaul including new branding",
"start": "2025-01-15",
"end": "2025-03-31",
"pm_id": "SF-USER-111",
"estimated_time": 200,
"billable": true,
"status": "active",
"estimated": 15000,
"contract_id": "SF-CONTRACT-001",
"work_order": "WO-2025-001"
}'
import requests
url = "https://integrations.projectcor.com/v2/integrations/projects"
payload = {
"metadata": {
"source": "SALESFORCE"
},
"id": "SF-OPP-12345",
"name": "Website Redesign Project",
"client_id": "SF-ACC-67890",
"brief": "Complete website overhaul including new branding",
"start": "2025-01-15",
"end": "2025-03-31",
"pm_id": "SF-USER-111",
"estimated_time": 200,
"billable": True,
"status": "active",
"estimated": 15000,
"contract_id": "SF-CONTRACT-001",
"work_order": "WO-2025-001"
}
headers = {
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const response = await fetch(
'https://integrations.projectcor.com/v2/integrations/projects',
{
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
metadata: {
source: 'SALESFORCE'
},
id: 'SF-OPP-12345',
name: 'Website Redesign Project',
client_id: 'SF-ACC-67890',
brief: 'Complete website overhaul including new branding',
start: '2025-01-15',
end: '2025-03-31',
pm_id: 'SF-USER-111',
estimated_time: 200,
billable: true,
status: 'active',
estimated: 15000,
contract_id: 'SF-CONTRACT-001',
work_order: 'WO-2025-001'
})
}
);
const data = await response.json();
console.log(data);
{
"id": 155693,
"name": "Website Redesign Project",
"client_id": 25855,
"brief": "Complete website overhaul including new branding",
"start": "2025-01-15 00:00:00",
"end": "2025-03-31 00:00:00",
"pm_id": 8546,
"estimated_time": 200,
"billable": true,
"status": "active",
"estimated": 15000,
"contract_id": 4521,
"work_order": "WO-2025-001",
"company_id": 1234,
"created_at": "2025-01-10T14:30:00Z",
"updated_at": "2025-01-10T14:30:00Z"
}
{
"error": "ValidationError",
"message": "Missing required field: metadata.source",
"code": "ZC002"
}
{
"error": "ClientNotFoundError",
"message": "Client with external ID 'SF-ACC-67890' not found",
"code": "ZC004"
}
Was this page helpful?

