---
title: "Create a new Project Service"
method: POST
path: "/timmi-project/api/v4/projects/{id}/project-services"
tags: ["Project services"]
---

# Create a new Project Service

`POST /timmi-project/api/v4/projects/{id}/project-services`

Create a new Project Service on a project.

## Request body

- ProjectService — Work item of a project.
  - `id` integer
  - `name` string, required
  - `code` string
  - `description` string, nullable — Optional description of the expected work to be done.
  - `jobQualificationRateId` integer
  - `jobQualificationRate` object — The expected job qualification rate for assigned users.
    - `id` integer
    - `standardRateCardId` integer
    - `jobQualificationId` integer
    - `jobQualification` object
      - `id` integer
      - `name` string
    - `isBillable` boolean
    - `billingRate` PriceRate — Represents an amount of money per day or hour.
      - `price` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
        - `amount` number
        - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
      - `unit` 'day' | 'hour' — Duration unit: days or hours.
    - `costRate` PriceRate — Represents an amount of money per day or hour.
      - `price` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
        - `amount` number
        - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
      - `unit` 'day' | 'hour' — Duration unit: days or hours.
  - `status` 'ongoing' | 'suspended' | 'completed' — Time submission is disabled whenever a service is suspended or done. Once done, the service revised budget is brought to the actual amount spent.
  - `initialTimeEstimate` Duration
    - `iso` string, duration — ISO-8601 formatted duration.
    - `unit` 'day' | 'hour'
  - `revisedTimeEstimate` Duration
    - `iso` string, duration — ISO-8601 formatted duration.
    - `unit` 'day' | 'hour'
  - `initialBudget` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
    - `amount` number
    - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
  - `revisedBudget` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
    - `amount` number
    - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
  - `estimatedOverrun` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
    - `amount` number
    - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
  - `billRate` PriceRate — Represents an amount of money per day or hour.
    - `price` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
      - `amount` number
      - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
    - `unit` 'day' | 'hour' — Duration unit: days or hours.
  - `price` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
    - `amount` number
    - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
  - `discount` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
    - `amount` number
    - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
  - `discountRate` number, nullable
  - `subContractingRelationship` 'none' | 'external' | 'internal'
  - `subcontractType` 'fixedPrice' | 'timeAndMaterials', nullable
  - `subcontractingFixedCost` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
    - `amount` number
    - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
  - `subcontractingCostRate` PriceRate — Represents an amount of money per day or hour.
    - `price` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
      - `amount` number
      - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
    - `unit` 'day' | 'hour' — Duration unit: days or hours.
  - `subcontractingProjectId` integer, nullable — 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.
  - `createdAt` string, date-time — Timestamp of the service creation.
  - `lastModifiedAt` string, date-time — Timestamp of the service last update.

## Response `201`

Created

- ProjectService — Work item of a project.
  - `id` integer
  - `name` string, required
  - `code` string
  - `description` string, nullable — Optional description of the expected work to be done.
  - `jobQualificationRateId` integer
  - `jobQualificationRate` object — The expected job qualification rate for assigned users.
    - `id` integer
    - `standardRateCardId` integer
    - `jobQualificationId` integer
    - `jobQualification` object
      - `id` integer
      - `name` string
    - `isBillable` boolean
    - `billingRate` PriceRate — Represents an amount of money per day or hour.
      - `price` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
        - `amount` number
        - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
      - `unit` 'day' | 'hour' — Duration unit: days or hours.
    - `costRate` PriceRate — Represents an amount of money per day or hour.
      - `price` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
        - `amount` number
        - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
      - `unit` 'day' | 'hour' — Duration unit: days or hours.
  - `status` 'ongoing' | 'suspended' | 'completed' — Time submission is disabled whenever a service is suspended or done. Once done, the service revised budget is brought to the actual amount spent.
  - `initialTimeEstimate` Duration
    - `iso` string, duration — ISO-8601 formatted duration.
    - `unit` 'day' | 'hour'
  - `revisedTimeEstimate` Duration
    - `iso` string, duration — ISO-8601 formatted duration.
    - `unit` 'day' | 'hour'
  - `initialBudget` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
    - `amount` number
    - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
  - `revisedBudget` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
    - `amount` number
    - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
  - `estimatedOverrun` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
    - `amount` number
    - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
  - `billRate` PriceRate — Represents an amount of money per day or hour.
    - `price` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
      - `amount` number
      - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
    - `unit` 'day' | 'hour' — Duration unit: days or hours.
  - `price` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
    - `amount` number
    - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
  - `discount` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
    - `amount` number
    - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
  - `discountRate` number, nullable
  - `subContractingRelationship` 'none' | 'external' | 'internal'
  - `subcontractType` 'fixedPrice' | 'timeAndMaterials', nullable
  - `subcontractingFixedCost` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
    - `amount` number
    - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
  - `subcontractingCostRate` PriceRate — Represents an amount of money per day or hour.
    - `price` Price — Represents an amount of money. Is a value object containing a decimal number and a currency.
      - `amount` number
      - `currencyId` 'EUR' | 'USD' | 'CAD' | '...'
    - `unit` 'day' | 'hour' — Duration unit: days or hours.
  - `subcontractingProjectId` integer, nullable — 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.
  - `createdAt` string, date-time — Timestamp of the service creation.
  - `lastModifiedAt` string, date-time — Timestamp of the service last update.

## Other responses

- `400` — Problem
- `401` — Problem
- `403` — Problem
- `404` — Problem
- `500` — Problem

---

[API](https://skmtc.net/luccasoftware/apis/lucca-expenses.md) · [All operations](https://skmtc.net/luccasoftware/apis/lucca-expenses/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/luccasoftware/lucca-expenses/revisions/110f9897756c/schema)
