Skip to main content
POST
/
timmi-project
/
api
/
v4
/
projects
/
{id}
/
project-services
Create a new Project Service
curl --request POST \
  --url https://{host}/timmi-project/api/v4/projects/{id}/project-services \
  --header 'Authorization: <authorization>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "<string>",
  "code": "<string>",
  "description": "<unknown>",
  "jobQualificationRateId": 2,
  "initialTimeEstimate": {
    "value": 123,
    "iso": "<string>",
    "unit": "day"
  },
  "billRate": "<unknown>",
  "price": "<unknown>",
  "subContractingRelationship": "none",
  "subcontractType": "fixedPrice",
  "subcontractingFixedCost": {
    "amount": 123
  },
  "subcontractingCostRate": {
    "price": {
      "amount": 123
    },
    "unit": "day"
  },
  "subcontractingProjectId": 2
}
'
{
  "name": "<string>",
  "id": 2,
  "code": "<string>",
  "description": "<unknown>",
  "jobQualificationRate": {
    "id": 2,
    "standardRateCardId": 2,
    "jobQualificationId": 2,
    "jobQualification": {
      "id": 2,
      "name": "<string>"
    },
    "isBillable": true,
    "billingRate": {
      "price": {
        "amount": 123,
        "currencyId": "EUR"
      },
      "unit": "day"
    },
    "costRate": {
      "price": {
        "amount": 123,
        "currencyId": "EUR"
      },
      "unit": "day"
    }
  },
  "status": "ongoing",
  "initialTimeEstimate": {
    "value": 123,
    "iso": "<string>",
    "unit": "day"
  },
  "revisedTimeEstimate": "<unknown>",
  "initialBudget": "<unknown>",
  "revisedBudget": "<unknown>",
  "estimatedOverrun": "<unknown>",
  "billRate": "<unknown>",
  "price": "<unknown>",
  "discount": "<unknown>",
  "discountRate": "<unknown>",
  "subContractingRelationship": "none",
  "subcontractType": "fixedPrice",
  "subcontractingFixedCost": {
    "amount": 123,
    "currencyId": "EUR"
  },
  "subcontractingCostRate": {
    "price": {
      "amount": 123,
      "currencyId": "EUR"
    },
    "unit": "day"
  },
  "subcontractingProjectId": 2,
  "createdAt": "2023-11-07T05:31:56Z",
  "lastModifiedAt": "2023-11-07T05:31:56Z"
}

Headers

Authorization
string
required

API key. Value must be formatted like so: lucca application={api_key}.

Path Parameters

id
string
required

Id of the project

Body

application/json

Work item of a project.

name
string
required
code
string
description
null | string

Optional description of the expected work to be done.

jobQualificationRateId
integer
Required range: x >= 1
initialTimeEstimate
Duration · object

Also serves as maximum billable time on not-to-exceed time and materials contracts.

billRate
PriceRate · object

Required for time and materials contracts. Automatically calculated for fixed price contracts.

price
Price · object

Required for fixed price contracts.

subContractingRelationship
enum<string>
default:none
Available options:
none,
external,
internal
subcontractType
enum<string> | null
Available options:
fixedPrice,
timeAndMaterials
subcontractingFixedCost
Price · object

Fixed price of the bought service from the provider.

subcontractingCostRate
PriceRate · object

Daily or hourly rate billed from the service provider.

subcontractingProjectId
integer | null

In case of "internal sub-contracting", i.e. this project-service was sub-contracted to another organization in Lucca Project. Identifier of the project that represents the externalized services in the other organization.

Required range: x >= 1

Response

Created

Work item of a project.

name
string
required
id
integer
Required range: x >= 1
code
string
description
null | string

Optional description of the expected work to be done.

jobQualificationRate
object

The expected job qualification rate for assigned users.

status
enum<string>
default:ongoing

Time submission is disabled whenever a service is suspended or done. Once done, the service revised budget is brought to the actual amount spent.

Available options:
ongoing,
suspended,
completed
initialTimeEstimate
Duration · object

Also serves as maximum billable time on not-to-exceed time and materials contracts.

revisedTimeEstimate
Duration · object

Can only be modified through the estimate-to-complete ressource.

Example:
{
"value": 128,
"iso": "P5DT8H",
"unit": "hour"
}
initialBudget
Price · object

Equal to initialTimeEstimate multiplied by the standardRate.

revisedBudget
Price · object

Equal to revisedTimeEstimate multiplied by the standardRate.

estimatedOverrun
Price · object

Difference between revised and initial budgets.

billRate
PriceRate · object

Required for time and materials contracts. Automatically calculated for fixed price contracts.

price
Price · object

Required for fixed price contracts.

discount
Price · object

Equal to the plannedRevenue minus the initialBudget.

discountRate
null | number
Must be a multiple of 0.1
subContractingRelationship
enum<string>
default:none
Available options:
none,
external,
internal
subcontractType
enum<string> | null
Available options:
fixedPrice,
timeAndMaterials
subcontractingFixedCost
Price · object

Fixed price of the bought service from the provider.

subcontractingCostRate
PriceRate · object

Daily or hourly rate billed from the service provider.

subcontractingProjectId
integer | null

In case of "internal sub-contracting", i.e. this project-service was sub-contracted to another organization in Lucca Project. Identifier of the project that represents the externalized services in the other organization.

Required range: x >= 1
createdAt
string<date-time>

Timestamp of the service creation.

lastModifiedAt
string<date-time>

Timestamp of the service last update.