Create project
curl --request POST \
--url https://staging-api.usetyms.com/v1/adam/projects \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"name": "Website Redesign",
"description": "Q1 redesign for Acme",
"customer_uuid": "a1b2c3d4e5f6478990a1b2c3d4e5f678",
"start_date": "2026-01-15",
"end_date": "2026-04-15",
"currency": "NGN",
"cost": 500000,
"status": "active"
}
'import requests
url = "https://staging-api.usetyms.com/v1/adam/projects"
payload = {
"name": "Website Redesign",
"description": "Q1 redesign for Acme",
"customer_uuid": "a1b2c3d4e5f6478990a1b2c3d4e5f678",
"start_date": "2026-01-15",
"end_date": "2026-04-15",
"currency": "NGN",
"cost": 500000,
"status": "active"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Website Redesign',
description: 'Q1 redesign for Acme',
customer_uuid: 'a1b2c3d4e5f6478990a1b2c3d4e5f678',
start_date: '2026-01-15',
end_date: '2026-04-15',
currency: 'NGN',
cost: 500000,
status: 'active'
})
};
fetch('https://staging-api.usetyms.com/v1/adam/projects', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"status": "success",
"message": "Project created successfully",
"data": {
"uuid": "proj-uuid-1",
"name": "Website Redesign",
"status": "active",
"cost": 500000,
"currency": "NGN",
"customer_uuid": "a1b2c3..."
}
}{
"status": "failed",
"message": "<string>"
}Projects
Create project
Create a new project for job costing and revenue tracking. Attach to invoices, journals, and other transactions via project_uuid.
POST
/
projects
Create project
curl --request POST \
--url https://staging-api.usetyms.com/v1/adam/projects \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"name": "Website Redesign",
"description": "Q1 redesign for Acme",
"customer_uuid": "a1b2c3d4e5f6478990a1b2c3d4e5f678",
"start_date": "2026-01-15",
"end_date": "2026-04-15",
"currency": "NGN",
"cost": 500000,
"status": "active"
}
'import requests
url = "https://staging-api.usetyms.com/v1/adam/projects"
payload = {
"name": "Website Redesign",
"description": "Q1 redesign for Acme",
"customer_uuid": "a1b2c3d4e5f6478990a1b2c3d4e5f678",
"start_date": "2026-01-15",
"end_date": "2026-04-15",
"currency": "NGN",
"cost": 500000,
"status": "active"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Website Redesign',
description: 'Q1 redesign for Acme',
customer_uuid: 'a1b2c3d4e5f6478990a1b2c3d4e5f678',
start_date: '2026-01-15',
end_date: '2026-04-15',
currency: 'NGN',
cost: 500000,
status: 'active'
})
};
fetch('https://staging-api.usetyms.com/v1/adam/projects', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"status": "success",
"message": "Project created successfully",
"data": {
"uuid": "proj-uuid-1",
"name": "Website Redesign",
"status": "active",
"cost": 500000,
"currency": "NGN",
"customer_uuid": "a1b2c3..."
}
}{
"status": "failed",
"message": "<string>"
}Authorizations
Business secret tyms_sk_... for business-scoped routes. Partner secret for register-business and referred-business distributor routes.
Body
application/json
Project title.
Project details.
Linked customer contact uuid.
Budget or target cost.
Project status.
Available options:
pending, active, on_hold, paused, completed Advanced revenue recognition method.
Point at which revenue is recognized.
Account to hold deferred revenue.
Optional project group.
Response
Project created