API Documentation

API Endpoint

Services

Services

In Productive services are line items for budgets. They are the basis for resourcing, time and expense tracking. You can find out more about services in our Help documentation: Adding Services to Deals or Budgets

Services always belong to a bugdet or deal and to a service type. They also may or may not belong to a section. A service can have many time entries, expenses or bookings. If the budget tracking type is set to ‘Restricted by person’ a service can also have many service_assignments.

Following diagram shows services in our data hierarchy:

Service diagram

For more information about service assingments please refer to Service Assignments

The enumeration unit_id can be:

  • 1 (Hour)

  • 2 (Piece)

  • 3 (Day)

The enumeration billing_type_id can be:

  • 1 (Fixed)

  • 2 (Time and Materials / Actuals)

  • 3 (None/ Not Billable)

The boolean attributes booking_tracking_enabled, time_tracking_enabled and expense_tracking_enabled toggle tracking on the service for bookings, time entries and expenses. Note that some restrictions apply. For example you can only track expenses on services which have the unit set to Piece.

Supported filter params

  • id

  • deal_id (array)

  • after

  • before

  • budget_date

  • bookable_date

  • name

  • task_id (array)

  • person_id (array)

  • project_id (array)

  • budget_status (1: open, 2: delivered)

  • unit (1: hour, 2: piece, 3: day)

  • billing_type (1: fixed, 2: actuals, 3: none)

  • time_tracking_enabled (boolean)

  • expense_tracking_enabled (boolean)

  • budget remaining

  • stage_status_id (array) (1: open, 2: won, 3: lost, 4: delivered)

  • trackable_by_person_id (Filters services that both person sending the request and person passed to the filter can track on.)

Filter operations are supported on this endpoint.

GET /api/v2/services
Requestsreturns services

GET  /api/v2/services

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": [
    {
      "id": "1151",
      "type": "services",
      "attributes": {
        "name": "test name",
        "position": 1,
        "deleted_at": null,
        "billable": true,
        "description": null,
        "time_tracking_enabled": true,
        "expense_tracking_enabled": true,
        "booking_tracking_enabled": true,
        "origin_service_id": null,
        "initial_service_id": 1151,
        "budget_cap_enabled": false,
        "editor_config": {},
        "custom_fields": null,
        "pricing_type_id": 1,
        "billing_type_id": 1,
        "unapproved_time": 0,
        "worked_time": 0,
        "billable_time": 0,
        "estimated_time": null,
        "budgeted_time": null,
        "rolled_over_time": 0,
        "profit_margin": "100.0",
        "booked_time": 0,
        "unit_id": 2,
        "future_booked_time": 0,
        "markup": null,
        "discount": null,
        "quantity": "1.0",
        "limitation_type": "no_limitation",
        "currency": "EUR",
        "currency_default": "USD",
        "currency_normalized": "EUR",
        "profit": 100000,
        "profit_default": 125000,
        "profit_normalized": 100000,
        "work_cost": 0,
        "work_cost_default": 0,
        "work_cost_normalized": 0,
        "future_cost": 0,
        "future_cost_default": 0,
        "future_cost_normalized": 0,
        "cost": 0,
        "cost_default": 0,
        "cost_normalized": 0,
        "price": 100000,
        "price_default": 125000,
        "price_normalized": 100000,
        "revenue": 100000,
        "revenue_default": 125000,
        "revenue_normalized": 100000,
        "projected_revenue": 0,
        "projected_revenue_default": 0,
        "projected_revenue_normalized": 0,
        "expense_amount": 0,
        "expense_amount_default": 0,
        "expense_amount_normalized": 0,
        "expense_billable_amount": 0,
        "expense_billable_amount_default": 0,
        "expense_billable_amount_normalized": 0,
        "budget_total": 100000,
        "budget_total_default": 125000,
        "budget_total_normalized": 100000,
        "budget_used": 0,
        "budget_used_default": 0,
        "budget_used_normalized": 0,
        "future_revenue": 0,
        "future_revenue_default": 0,
        "future_revenue_normalized": 0,
        "future_budget_used": 0,
        "future_budget_used_default": 0,
        "future_budget_used_normalized": 0,
        "discount_amount": 0,
        "discount_amount_default": 0,
        "discount_amount_normalized": 0,
        "markup_amount": 0,
        "markup_amount_default": 0,
        "markup_amount_normalized": 0
      },
      "relationships": {
        "organization": {
          "data": {
            "type": "organizations",
            "id": "1888"
          }
        },
        "service_type": {
          "meta": {
            "included": false
          }
        },
        "deal": {
          "meta": {
            "included": false
          }
        },
        "person": {
          "meta": {
            "included": false
          }
        },
        "section": {
          "meta": {
            "included": false
          }
        },
        "custom_field_people": {
          "meta": {
            "included": false
          }
        },
        "custom_field_attachments": {
          "meta": {
            "included": false
          }
        }
      }
    }
  ],
  "links": {
    "first": "http://api-test.productive.io/api/v2/services?page%5Bnumber%5D=1&page%5Bsize%5D=30",
    "last": "http://api-test.productive.io/api/v2/services?page%5Bnumber%5D=1&page%5Bsize%5D=30"
  },
  "meta": {
    "current_page": 1,
    "total_pages": 1,
    "total_count": 1,
    "page_size": 30,
    "max_page_size": 200
  }
}

Get services
GET/api/v2/services


GET /api/v2/services/1
Requestsreturns service

GET  /api/v2/services/1156

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "1156",
    "type": "services",
    "attributes": {
      "name": "test name",
      "position": 1,
      "deleted_at": null,
      "billable": true,
      "description": null,
      "time_tracking_enabled": true,
      "expense_tracking_enabled": true,
      "booking_tracking_enabled": true,
      "origin_service_id": null,
      "initial_service_id": 1156,
      "budget_cap_enabled": false,
      "editor_config": {},
      "custom_fields": null,
      "pricing_type_id": 1,
      "billing_type_id": 1,
      "unapproved_time": 0,
      "worked_time": 0,
      "billable_time": 0,
      "estimated_time": null,
      "budgeted_time": null,
      "rolled_over_time": 0,
      "profit_margin": "100.0",
      "booked_time": 0,
      "unit_id": 2,
      "future_booked_time": 0,
      "markup": null,
      "discount": null,
      "quantity": "1.0",
      "limitation_type": "no_limitation",
      "currency": "EUR",
      "currency_default": "USD",
      "currency_normalized": "EUR",
      "profit": 100000,
      "profit_default": 125000,
      "profit_normalized": 100000,
      "work_cost": 0,
      "work_cost_default": 0,
      "work_cost_normalized": 0,
      "future_cost": 0,
      "future_cost_default": 0,
      "future_cost_normalized": 0,
      "cost": 0,
      "cost_default": 0,
      "cost_normalized": 0,
      "price": 100000,
      "price_default": 125000,
      "price_normalized": 100000,
      "revenue": 100000,
      "revenue_default": 125000,
      "revenue_normalized": 100000,
      "projected_revenue": 0,
      "projected_revenue_default": 0,
      "projected_revenue_normalized": 0,
      "expense_amount": 0,
      "expense_amount_default": 0,
      "expense_amount_normalized": 0,
      "expense_billable_amount": 0,
      "expense_billable_amount_default": 0,
      "expense_billable_amount_normalized": 0,
      "budget_total": 100000,
      "budget_total_default": 125000,
      "budget_total_normalized": 100000,
      "budget_used": 0,
      "budget_used_default": 0,
      "budget_used_normalized": 0,
      "future_revenue": 0,
      "future_revenue_default": 0,
      "future_revenue_normalized": 0,
      "future_budget_used": 0,
      "future_budget_used_default": 0,
      "future_budget_used_normalized": 0,
      "discount_amount": 0,
      "discount_amount_default": 0,
      "discount_amount_normalized": 0,
      "markup_amount": 0,
      "markup_amount_default": 0,
      "markup_amount_normalized": 0
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1890"
        }
      },
      "service_type": {
        "meta": {
          "included": false
        }
      },
      "deal": {
        "meta": {
          "included": false
        }
      },
      "person": {
        "meta": {
          "included": false
        }
      },
      "section": {
        "meta": {
          "included": false
        }
      },
      "custom_field_people": {
        "meta": {
          "included": false
        }
      },
      "custom_field_attachments": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Gets a service
GET/api/v2/services/{id}

URI Parameters
HideShow
id
number (required) Example: 1

service id


POST /api/v2/services
Requestscreates servicereturns errorcreates service

POST  /api/v2/services

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "services",
    "attributes": {
      "service_type_id": 1269,
      "name": "test name",
      "billing_type_id": 1,
      "unit_id": 2,
      "price": "100000.0",
      "quantity": 1,
      "description": "test description"
    },
    "relationships": {
      "deal": {
        "data": {
          "type": "deals",
          "id": "1705"
        }
      }
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "1158",
    "type": "services",
    "attributes": {
      "name": "test name",
      "position": 1,
      "deleted_at": null,
      "billable": true,
      "description": "test description",
      "time_tracking_enabled": true,
      "expense_tracking_enabled": true,
      "booking_tracking_enabled": true,
      "origin_service_id": null,
      "initial_service_id": 1158,
      "budget_cap_enabled": false,
      "editor_config": null,
      "custom_fields": null,
      "pricing_type_id": 1,
      "billing_type_id": 1,
      "unapproved_time": 0,
      "worked_time": 0,
      "billable_time": 0,
      "estimated_time": null,
      "budgeted_time": null,
      "rolled_over_time": 0,
      "profit_margin": "100.0",
      "booked_time": 0,
      "unit_id": 2,
      "future_booked_time": 0,
      "markup": null,
      "discount": null,
      "quantity": "1.0",
      "limitation_type": "no_limitation",
      "currency": "EUR",
      "currency_default": "USD",
      "currency_normalized": "EUR",
      "profit": 100000,
      "profit_default": 125000,
      "profit_normalized": 100000,
      "work_cost": 0,
      "work_cost_default": 0,
      "work_cost_normalized": 0,
      "future_cost": 0,
      "future_cost_default": 0,
      "future_cost_normalized": 0,
      "cost": 0,
      "cost_default": 0,
      "cost_normalized": 0,
      "price": 100000,
      "price_default": 125000,
      "price_normalized": 100000,
      "revenue": 100000,
      "revenue_default": 125000,
      "revenue_normalized": 100000,
      "projected_revenue": 0,
      "projected_revenue_default": 0,
      "projected_revenue_normalized": 0,
      "expense_amount": 0,
      "expense_amount_default": 0,
      "expense_amount_normalized": 0,
      "expense_billable_amount": 0,
      "expense_billable_amount_default": 0,
      "expense_billable_amount_normalized": 0,
      "budget_total": 100000,
      "budget_total_default": 125000,
      "budget_total_normalized": 100000,
      "budget_used": 0,
      "budget_used_default": 0,
      "budget_used_normalized": 0,
      "future_revenue": 0,
      "future_revenue_default": 0,
      "future_revenue_normalized": 0,
      "future_budget_used": 0,
      "future_budget_used_default": 0,
      "future_budget_used_normalized": 0,
      "discount_amount": 0,
      "discount_amount_default": 0,
      "discount_amount_normalized": 0,
      "markup_amount": 0,
      "markup_amount_default": 0,
      "markup_amount_normalized": 0
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1891"
        }
      },
      "service_type": {
        "meta": {
          "included": false
        }
      },
      "deal": {
        "meta": {
          "included": false
        }
      },
      "person": {
        "meta": {
          "included": false
        }
      },
      "section": {
        "meta": {
          "included": false
        }
      },
      "custom_field_people": {
        "meta": {
          "included": false
        }
      },
      "custom_field_attachments": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

POST  /api/v2/services

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "services",
    "attributes": {
      "name": ""
    }
  }
}
Responses422
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "errors": [
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "attribute is invalid",
      "source": {
        "pointer": "data/attributes/deal"
      }
    }
  ]
}

POST  /api/v2/services

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "services",
    "attributes": {
      "service_type_id": 1273,
      "name": "test name",
      "billing_type_id": 1,
      "unit_id": 2,
      "price": "100000.0",
      "quantity": 5.12345,
      "description": "test description"
    },
    "relationships": {
      "deal": {
        "data": {
          "type": "deals",
          "id": "1709"
        }
      }
    }
  }
}
Responses201
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "1164",
    "type": "services",
    "attributes": {
      "name": "test name",
      "position": 1,
      "deleted_at": null,
      "billable": true,
      "description": "test description",
      "time_tracking_enabled": true,
      "expense_tracking_enabled": true,
      "booking_tracking_enabled": true,
      "origin_service_id": null,
      "initial_service_id": 1164,
      "budget_cap_enabled": false,
      "editor_config": null,
      "custom_fields": null,
      "pricing_type_id": 1,
      "billing_type_id": 1,
      "unapproved_time": 0,
      "worked_time": 0,
      "billable_time": 0,
      "estimated_time": null,
      "budgeted_time": null,
      "rolled_over_time": 0,
      "profit_margin": "100.0",
      "booked_time": 0,
      "unit_id": 2,
      "future_booked_time": 0,
      "markup": null,
      "discount": null,
      "quantity": "5.123",
      "limitation_type": "no_limitation",
      "currency": "EUR",
      "currency_default": "USD",
      "currency_normalized": "EUR",
      "profit": 512300,
      "profit_default": 640375,
      "profit_normalized": 512300,
      "work_cost": 0,
      "work_cost_default": 0,
      "work_cost_normalized": 0,
      "future_cost": 0,
      "future_cost_default": 0,
      "future_cost_normalized": 0,
      "cost": 0,
      "cost_default": 0,
      "cost_normalized": 0,
      "price": 100000,
      "price_default": 125000,
      "price_normalized": 100000,
      "revenue": 512300,
      "revenue_default": 640375,
      "revenue_normalized": 512300,
      "projected_revenue": 0,
      "projected_revenue_default": 0,
      "projected_revenue_normalized": 0,
      "expense_amount": 0,
      "expense_amount_default": 0,
      "expense_amount_normalized": 0,
      "expense_billable_amount": 0,
      "expense_billable_amount_default": 0,
      "expense_billable_amount_normalized": 0,
      "budget_total": 512300,
      "budget_total_default": 640375,
      "budget_total_normalized": 512300,
      "budget_used": 0,
      "budget_used_default": 0,
      "budget_used_normalized": 0,
      "future_revenue": 0,
      "future_revenue_default": 0,
      "future_revenue_normalized": 0,
      "future_budget_used": 0,
      "future_budget_used_default": 0,
      "future_budget_used_normalized": 0,
      "discount_amount": 0,
      "discount_amount_default": 0,
      "discount_amount_normalized": 0,
      "markup_amount": 0,
      "markup_amount_default": 0,
      "markup_amount_normalized": 0
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1895"
        }
      },
      "service_type": {
        "meta": {
          "included": false
        }
      },
      "deal": {
        "meta": {
          "included": false
        }
      },
      "person": {
        "meta": {
          "included": false
        }
      },
      "section": {
        "meta": {
          "included": false
        }
      },
      "custom_field_people": {
        "meta": {
          "included": false
        }
      },
      "custom_field_attachments": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Create a service
POST/api/v2/services

URI Parameters
HideShow
name
string (required) Example: Name

name

billing_type_id
number (required) Example: 1

billing type id

unit_id
number (required) Example: 1

unit id

deal_id
number (required) Example: 1

deal id


PATCH /api/v2/services/1
Requestsupdates servicereturns errorupdates serviceupdates serviceupdates service

PATCH  /api/v2/services/1165

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "services",
    "attributes": {
      "name": "new name"
    }
  }
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "1165",
    "type": "services",
    "attributes": {
      "name": "new name",
      "position": 1,
      "deleted_at": null,
      "billable": true,
      "description": null,
      "time_tracking_enabled": true,
      "expense_tracking_enabled": true,
      "booking_tracking_enabled": true,
      "origin_service_id": null,
      "initial_service_id": 1165,
      "budget_cap_enabled": false,
      "editor_config": {},
      "custom_fields": null,
      "pricing_type_id": 1,
      "billing_type_id": 1,
      "unapproved_time": 0,
      "worked_time": 0,
      "billable_time": 0,
      "estimated_time": null,
      "budgeted_time": null,
      "rolled_over_time": 0,
      "profit_margin": "100.0",
      "booked_time": 0,
      "unit_id": 2,
      "future_booked_time": 0,
      "markup": null,
      "discount": null,
      "quantity": "1.0",
      "limitation_type": "no_limitation",
      "currency": "EUR",
      "currency_default": "USD",
      "currency_normalized": "EUR",
      "profit": 100000,
      "profit_default": 125000,
      "profit_normalized": 100000,
      "work_cost": 0,
      "work_cost_default": 0,
      "work_cost_normalized": 0,
      "future_cost": 0,
      "future_cost_default": 0,
      "future_cost_normalized": 0,
      "cost": 0,
      "cost_default": 0,
      "cost_normalized": 0,
      "price": 100000,
      "price_default": 125000,
      "price_normalized": 100000,
      "revenue": 100000,
      "revenue_default": 125000,
      "revenue_normalized": 100000,
      "projected_revenue": 0,
      "projected_revenue_default": 0,
      "projected_revenue_normalized": 0,
      "expense_amount": 0,
      "expense_amount_default": 0,
      "expense_amount_normalized": 0,
      "expense_billable_amount": 0,
      "expense_billable_amount_default": 0,
      "expense_billable_amount_normalized": 0,
      "budget_total": 100000,
      "budget_total_default": 125000,
      "budget_total_normalized": 100000,
      "budget_used": 0,
      "budget_used_default": 0,
      "budget_used_normalized": 0,
      "future_revenue": 0,
      "future_revenue_default": 0,
      "future_revenue_normalized": 0,
      "future_budget_used": 0,
      "future_budget_used_default": 0,
      "future_budget_used_normalized": 0,
      "discount_amount": 0,
      "discount_amount_default": 0,
      "discount_amount_normalized": 0,
      "markup_amount": 0,
      "markup_amount_default": 0,
      "markup_amount_normalized": 0
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1896"
        }
      },
      "service_type": {
        "meta": {
          "included": false
        }
      },
      "deal": {
        "meta": {
          "included": false
        }
      },
      "person": {
        "meta": {
          "included": false
        }
      },
      "section": {
        "meta": {
          "included": false
        }
      },
      "custom_field_people": {
        "meta": {
          "included": false
        }
      },
      "custom_field_attachments": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

PATCH  /api/v2/services/1167

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "services",
    "attributes": {
      "name": ""
    }
  }
}
Responses422
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "errors": [
    {
      "status": "422",
      "code": "invalid_attribute",
      "title": "Invalid Attribute",
      "detail": "can't be blank",
      "source": {
        "pointer": "data/attributes/name"
      }
    }
  ]
}

PATCH  /api/v2/services/1171

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "services",
    "attributes": {
      "name": "new name"
    }
  }
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "1171",
    "type": "services",
    "attributes": {
      "name": "new name",
      "position": 1,
      "deleted_at": null,
      "billable": true,
      "description": null,
      "time_tracking_enabled": true,
      "expense_tracking_enabled": true,
      "booking_tracking_enabled": true,
      "origin_service_id": null,
      "initial_service_id": 1171,
      "budget_cap_enabled": false,
      "editor_config": {},
      "custom_fields": null,
      "pricing_type_id": 1,
      "billing_type_id": 1,
      "unapproved_time": 0,
      "worked_time": 0,
      "billable_time": 0,
      "estimated_time": null,
      "budgeted_time": null,
      "rolled_over_time": 0,
      "profit_margin": "100.0",
      "booked_time": 0,
      "unit_id": 2,
      "future_booked_time": 0,
      "markup": null,
      "discount": null,
      "quantity": "5.12345",
      "limitation_type": "no_limitation",
      "currency": "EUR",
      "currency_default": "USD",
      "currency_normalized": "EUR",
      "profit": 512345,
      "profit_default": 640431.25,
      "profit_normalized": 512345,
      "work_cost": 0,
      "work_cost_default": 0,
      "work_cost_normalized": 0,
      "future_cost": 0,
      "future_cost_default": 0,
      "future_cost_normalized": 0,
      "cost": 0,
      "cost_default": 0,
      "cost_normalized": 0,
      "price": 100000,
      "price_default": 125000,
      "price_normalized": 100000,
      "revenue": 512345,
      "revenue_default": 640431.25,
      "revenue_normalized": 512345,
      "projected_revenue": 0,
      "projected_revenue_default": 0,
      "projected_revenue_normalized": 0,
      "expense_amount": 0,
      "expense_amount_default": 0,
      "expense_amount_normalized": 0,
      "expense_billable_amount": 0,
      "expense_billable_amount_default": 0,
      "expense_billable_amount_normalized": 0,
      "budget_total": 512345,
      "budget_total_default": 640431.25,
      "budget_total_normalized": 512345,
      "budget_used": 0,
      "budget_used_default": 0,
      "budget_used_normalized": 0,
      "future_revenue": 0,
      "future_revenue_default": 0,
      "future_revenue_normalized": 0,
      "future_budget_used": 0,
      "future_budget_used_default": 0,
      "future_budget_used_normalized": 0,
      "discount_amount": 0,
      "discount_amount_default": 0,
      "discount_amount_normalized": 0,
      "markup_amount": 0,
      "markup_amount_default": 0,
      "markup_amount_normalized": 0
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1902"
        }
      },
      "service_type": {
        "meta": {
          "included": false
        }
      },
      "deal": {
        "meta": {
          "included": false
        }
      },
      "person": {
        "meta": {
          "included": false
        }
      },
      "section": {
        "meta": {
          "included": false
        }
      },
      "custom_field_people": {
        "meta": {
          "included": false
        }
      },
      "custom_field_attachments": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

PATCH  /api/v2/services/1172

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "services",
    "attributes": {
      "name": "new name",
      "quantity": 2.12345
    }
  }
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "1172",
    "type": "services",
    "attributes": {
      "name": "new name",
      "position": 1,
      "deleted_at": null,
      "billable": true,
      "description": null,
      "time_tracking_enabled": true,
      "expense_tracking_enabled": true,
      "booking_tracking_enabled": true,
      "origin_service_id": null,
      "initial_service_id": 1172,
      "budget_cap_enabled": false,
      "editor_config": {},
      "custom_fields": null,
      "pricing_type_id": 1,
      "billing_type_id": 1,
      "unapproved_time": 0,
      "worked_time": 0,
      "billable_time": 0,
      "estimated_time": null,
      "budgeted_time": null,
      "rolled_over_time": 0,
      "profit_margin": "100.0",
      "booked_time": 0,
      "unit_id": 2,
      "future_booked_time": 0,
      "markup": null,
      "discount": null,
      "quantity": "2.123",
      "limitation_type": "no_limitation",
      "currency": "EUR",
      "currency_default": "USD",
      "currency_normalized": "EUR",
      "profit": 212300,
      "profit_default": 265375,
      "profit_normalized": 212300,
      "work_cost": 0,
      "work_cost_default": 0,
      "work_cost_normalized": 0,
      "future_cost": 0,
      "future_cost_default": 0,
      "future_cost_normalized": 0,
      "cost": 0,
      "cost_default": 0,
      "cost_normalized": 0,
      "price": 100000,
      "price_default": 125000,
      "price_normalized": 100000,
      "revenue": 212300,
      "revenue_default": 265375,
      "revenue_normalized": 212300,
      "projected_revenue": 0,
      "projected_revenue_default": 0,
      "projected_revenue_normalized": 0,
      "expense_amount": 0,
      "expense_amount_default": 0,
      "expense_amount_normalized": 0,
      "expense_billable_amount": 0,
      "expense_billable_amount_default": 0,
      "expense_billable_amount_normalized": 0,
      "budget_total": 212300,
      "budget_total_default": 265375,
      "budget_total_normalized": 212300,
      "budget_used": 0,
      "budget_used_default": 0,
      "budget_used_normalized": 0,
      "future_revenue": 0,
      "future_revenue_default": 0,
      "future_revenue_normalized": 0,
      "future_budget_used": 0,
      "future_budget_used_default": 0,
      "future_budget_used_normalized": 0,
      "discount_amount": 0,
      "discount_amount_default": 0,
      "discount_amount_normalized": 0,
      "markup_amount": 0,
      "markup_amount_default": 0,
      "markup_amount_normalized": 0
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1903"
        }
      },
      "service_type": {
        "meta": {
          "included": false
        }
      },
      "deal": {
        "meta": {
          "included": false
        }
      },
      "person": {
        "meta": {
          "included": false
        }
      },
      "section": {
        "meta": {
          "included": false
        }
      },
      "custom_field_people": {
        "meta": {
          "included": false
        }
      },
      "custom_field_attachments": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

PATCH  /api/v2/services/1174

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Body
{
  "data": {
    "type": "services",
    "attributes": {
      "name": "new name"
    }
  }
}
Responses200
Headers
Content-Type: application/vnd.api+json; charset=utf-8
Body
{
  "data": {
    "id": "1174",
    "type": "services",
    "attributes": {
      "name": "new name",
      "position": 1,
      "deleted_at": null,
      "billable": true,
      "description": null,
      "time_tracking_enabled": true,
      "expense_tracking_enabled": true,
      "booking_tracking_enabled": true,
      "origin_service_id": null,
      "initial_service_id": 1174,
      "budget_cap_enabled": false,
      "editor_config": {},
      "custom_fields": null,
      "pricing_type_id": 1,
      "billing_type_id": 1,
      "unapproved_time": 0,
      "worked_time": 0,
      "billable_time": 0,
      "estimated_time": null,
      "budgeted_time": null,
      "rolled_over_time": 0,
      "profit_margin": "100.0",
      "booked_time": 0,
      "unit_id": 2,
      "future_booked_time": 0,
      "markup": null,
      "discount": null,
      "quantity": "1.0",
      "limitation_type": "no_limitation",
      "currency": "EUR",
      "currency_default": "USD",
      "currency_normalized": "EUR",
      "profit": 100000,
      "profit_default": 125000,
      "profit_normalized": 100000,
      "work_cost": 0,
      "work_cost_default": 0,
      "work_cost_normalized": 0,
      "future_cost": 0,
      "future_cost_default": 0,
      "future_cost_normalized": 0,
      "cost": 0,
      "cost_default": 0,
      "cost_normalized": 0,
      "price": 100000,
      "price_default": 125000,
      "price_normalized": 100000,
      "revenue": 100000,
      "revenue_default": 125000,
      "revenue_normalized": 100000,
      "projected_revenue": 50000,
      "projected_revenue_default": 62500,
      "projected_revenue_normalized": 50000,
      "expense_amount": 0,
      "expense_amount_default": 0,
      "expense_amount_normalized": 0,
      "expense_billable_amount": 0,
      "expense_billable_amount_default": 0,
      "expense_billable_amount_normalized": 0,
      "budget_total": 100000,
      "budget_total_default": 125000,
      "budget_total_normalized": 100000,
      "budget_used": 0,
      "budget_used_default": 0,
      "budget_used_normalized": 0,
      "future_revenue": 0,
      "future_revenue_default": 0,
      "future_revenue_normalized": 0,
      "future_budget_used": 0,
      "future_budget_used_default": 0,
      "future_budget_used_normalized": 0,
      "discount_amount": 0,
      "discount_amount_default": 0,
      "discount_amount_normalized": 0,
      "markup_amount": 0,
      "markup_amount_default": 0,
      "markup_amount_normalized": 0
    },
    "relationships": {
      "organization": {
        "data": {
          "type": "organizations",
          "id": "1905"
        }
      },
      "service_type": {
        "meta": {
          "included": false
        }
      },
      "deal": {
        "meta": {
          "included": false
        }
      },
      "person": {
        "meta": {
          "included": false
        }
      },
      "section": {
        "meta": {
          "included": false
        }
      },
      "custom_field_people": {
        "meta": {
          "included": false
        }
      },
      "custom_field_attachments": {
        "meta": {
          "included": false
        }
      }
    }
  },
  "meta": {}
}

Update a service
PATCH/api/v2/services/{id}

URI Parameters
HideShow
id
number (required) Example: 1

service id


DELETE /api/v2/services/1
Requestsarchives service

DELETE  /api/v2/services/1184

Headers
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Content-Type: application/vnd.api+json
Responses204
This response has no content.

Deletes a service
DELETE/api/v2/services/{id}

URI Parameters
HideShow
id
number (required) Example: 1

service id


Generated by aglio on 01 Aug 2025