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": null,
  "jobQualificationRateId": 2,
  "initialTimeEstimate": {
    "value": 128,
    "iso": "P5DT8H",
    "unit": "hour"
  },
  "billRate": null,
  "price": null,
  "subContractingRelationship": "none",
  "subcontractType": "fixedPrice",
  "subcontractingFixedCost": {
    "amount": 123
  },
  "subcontractingCostRate": {
    "price": {
      "amount": 123
    },
    "unit": "day"
  },
  "subcontractingProjectId": 2
}'
{
  "id": 2,
  "name": "<string>",
  "code": "<string>",
  "description": null,
  "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": 128,
    "iso": "P5DT8H",
    "unit": "hour"
  },
  "revisedTimeEstimate": null,
  "initialBudget": null,
  "revisedBudget": null,
  "estimatedOverrun": null,
  "billRate": null,
  "price": null,
  "discount": null,
  "discountRate": null,
  "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
string | null

Optional description of the expected work to be done.

jobQualificationRateId
integer
Required range: x >= 1
initialTimeEstimate
object

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

Examples:
{
"value": 128,
"iso": "P5DT8H",
"unit": "hour"
}
billRate
object | null

Required for time and materials contracts. Automatically calculated for fixed price contracts. Represents an amount of money per day or hour.

price
object | null

Required for fixed price contracts. Represents an amount of money. Is a value object containing a decimal number and a currency.

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

Fixed price of the bought service from the provider.

Represents an amount of money. Is a value object containing a decimal number and a currency.

subcontractingCostRate
object | null

Daily or hourly rate billed from the service provider.

Represents an amount of money per day or hour.

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
string | null

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
object

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

Examples:
{
"value": 128,
"iso": "P5DT8H",
"unit": "hour"
}
revisedTimeEstimate
object | null

Can only be modified through the estimate-to-complete ressource. Represents a duration in days or hours. ISO value is formatted as an ISO-8601 duration string. For example P5DT8H represents 128 hours. When sending a duration to the server, please only send either a value or an iso. In most cases, the unit is set on the project's organization and thus should not be sent in the request.

Examples:
{
"value": 128,
"iso": "P5DT8H",
"unit": "hour"
}
initialBudget
object | null

Equal to initialTimeEstimate multiplied by the standardRate. Represents an amount of money. Is a value object containing a decimal number and a currency.

revisedBudget
object | null

Equal to revisedTimeEstimate multiplied by the standardRate. Represents an amount of money. Is a value object containing a decimal number and a currency.

estimatedOverrun
object | null

Difference between revised and initial budgets. Represents an amount of money. Is a value object containing a decimal number and a currency.

billRate
object | null

Required for time and materials contracts. Automatically calculated for fixed price contracts. Represents an amount of money per day or hour.

price
object | null

Required for fixed price contracts. Represents an amount of money. Is a value object containing a decimal number and a currency.

discount
object | null

Equal to the plannedRevenue minus the initialBudget. Represents an amount of money. Is a value object containing a decimal number and a currency.

discountRate
number | null
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
object | null

Fixed price of the bought service from the provider.

Represents an amount of money. Is a value object containing a decimal number and a currency.

subcontractingCostRate
object | null

Daily or hourly rate billed from the service provider.

Represents an amount of money per day or hour.

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.