New API version v7.8.64 has been released! 🎉
REST Documentation
PATCH Update Project

Update Project

This endpoint allows you to update an existing project. All fields are optional; only provided fields will be updated.

Request

PATCH /api/v1/projects/:id
curl --request PATCH \
     --url 'https://www.zep-online.de/zepinstanz/next/api/v1/projects/123' \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer {token}' \
     --header 'Content-Type: application/json' \
     --data '{
  "name": "Website Relaunch 2024",
  "description": "Complete overhaul of company website",
  "start_date": "2024-01-15",
  "end_date": "2024-06-30",
  "plan_hours": 500.0,
  "plan_expenses": 15000.00,
  "project_status_id": "in_progress"
}'

Parameters

  • id (integer, required): The ID of the project to update

Optional Fields

All fields are optional. You can update individual or multiple fields at once:

Basic Information

  • name (string): Project name/identifier (max. 64 characters, must be unique)
  • department_id (integer): Department ID
  • description (string): Project description (max. 255 characters)
  • start_date (string): Project start date (Format: YYYY-MM-DD)
  • end_date (string): Project end date (Format: YYYY-MM-DD, must be after start_date)
  • comments (string): Additional comments or notes

Location Information

  • location_address (string): Address (max. 64 characters)
  • location_city (string): City (max. 64 characters)
  • location_state (string): State/Region (max. 64 characters)
  • location_country (string): Country (max. 32 characters)

Planning Data

  • plan_hours (number): Planned hours (≥ 0)
  • plan_expenses (number): Planned expenses (≥ 0)
  • plan_wage (number): Planned wage (≥ 0)
  • plan_expenses_travel (number): Planned travel expenses (≥ 0)
  • plan_hours_done (number): Completed hours
  • plan_hours_invoiced (number): Invoiced hours
  • plan_hours_children (number): Planned hours for sub-projects (≥ 0)
  • plan_hours_per_day (number): Planned hours per day (≥ 0)
  • plan_warning_percent (number): Warning percentage 1 (≥ 0)
  • plan_warning_percent_2 (number): Warning percentage 2 (≥ 0)
  • plan_warning_percent_3 (number): Warning percentage 3 (≥ 0)
  • plan_can_exceed (integer): Plan can exceed option (enum value)

Cost Accounting

  • cost_object (string): Cost center (max. 32 characters)
  • cost_object_identifier (string/integer): Cost center identifier (max. 32 characters or number ≥ 0)
  • revenue_account (string): Revenue account (max. 32 characters)

Customer Information

  • customer_id (integer): Customer ID
  • customer_contact_id (integer): Customer contact person ID
  • customer_project_reference (string): Customer reference for the project (max. 64 characters)
  • customer_billing_address_id (integer): Billing address ID
  • customer_shipping_address_id (integer): Shipping address ID
  • has_multiple_customers (boolean): Multiple customers for this project

Billing and Language Settings

  • billing_type (integer): Billing type
  • default_billability (integer): Default billability
  • receipts_billability (integer): Receipts billability
  • billing_tasks (boolean): Bill tasks
  • currency (string): Currency
  • language (integer): Language

Status and References

  • project_status_id (string): Project status ID (max. 64 characters)
  • url (string): Project URL (max. 255 characters)
  • reference_commission (string): Commission reference (max. 100 characters)
  • reference_procurement (string): Procurement reference (max. 100 characters)
  • reference_object (string): Object reference (max. 100 characters)
  • reference_order (string): Order reference (max. 100 characters)

Reporting and Formatting Options

  • indicate_hours_for_daily_proof (integer): Indicate hours for daily proof
  • indicate_remarks_for_daily_proof (integer): Indicate remarks for daily proof
  • indicate_all_locations_per_day (integer): Show all locations per day
  • indicate_all_activities_per_day (integer): Show all activities per day
  • also_take_into_account_the_price_factors_for_hourly_rates (integer): Consider price factors for hourly rates
  • employee_name_time_report_format (integer): Employee name format in time report
  • employee_name_project_sales_volume_format (integer): Employee name format in project sales volume
  • employee_name_invoice_attachment_format (integer): Employee name format in invoice attachments

Other Fields

  • travel_flat_rate (number): Travel flat rate
  • keywords (array): Array of keywords (strings)
  • dynamic_attributes (array): Custom dynamic attributes (array of objects)
  • categories (array): Array of category IDs (integers)

Response

{
	"data": {
		"id": 123,
		"name": "Website Relaunch 2024",
		"description": "Complete overhaul of company website",
		"start_date": "2024-01-15",
		"end_date": "2024-06-30",
		"plan_hours": "500.00",
		"plan_expenses": "15000.00",
		"project_status_id": "in_progress",
		"department_id": 5,
		"customer_id": 42,
		"created": "2023-12-10T09:00:00.000000Z",
		"modified": "2024-11-20T15:30:00.000000Z"
	},
	"info": null
}

Response Fields

  • data: The updated project object
  • info: Optional consistency information when project data was adjusted during update

Error Codes

  • 401 Unauthorized: Invalid or missing authentication
  • 404 Not Found: Project not found
  • 422 Unprocessable Entity: Validation error

Notes

  • Only the submitted fields will be updated; unspecified fields remain unchanged
  • Project name must be unique if changed
  • End date must be after start date if both are provided
  • All planning values (hours, expenses) must be non-negative
  • Currency and language codes must exist in the system
  • References to customers, departments, and contact persons must be valid IDs