> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://support.xperiencehr.com/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Project API

The **Project API** in XperienceHR provides an interface for managing projects, including creating, updating, deactivating, and listing projects, ensuring seamless integration with external systems for project management and tracking.

This API supports **XML & JSON format** for structured data exchange and requires authentication via an **API key**.

By integrating the Project API, organizations can efficiently manage project lifecycle data, ensuring accurate project tracking and resource allocation.

# Overview

**API Type:** REST
**Supported Formats:** XML
**API Key**: Generated in the app configuration
**Method:** *POST, GET*
---

# Project Management

**Functionality:** 
* Create New Project
* Update Project
* Deactivate Project
* Get All Projects

### Create New Project

| Parameter | Min | Max | Required | Information | Description |
| ---- |
| name | 1 | 100 | ✅ |  | The project name. |
| code | 1 | 30 | ✅ |  | The project short name. |
| description | 0 | 500 | ❌ |  | The description of this project. |
| projectType | FIXED | HOURLY | ❌ | Default value is *HOURLY* | The project type. |
| startDate |  |  | ❌ |  | The date when the project begins (format: YYYY-MM-DD). |
| finishDate |  |  | ❌ |  | The date when the project ends (format: YYYY-MM-DD). |
| ProjectStatus code |  |  | ✅ | Valid XPHR value | The value of the project status. |
| budget | 0 | Double_MAX_VALUE | ❌ |  | The amount of money expected to be spent on the project ($). |
| duration | 0 | Integer_MAX_VALUE | ❌ |  | The number of hours expected to be spent on the project. |
| billingType |  |  | ❌ | Valid values: employee, activity, project | The way in which the budgeted amount is calculated. |
| rate | 0 | Double_MAX_VALUE | ❌ | Only relevant for project rate type | The project rate ($). |
| durationCorrection |  | Positive value | ❌ |  | The number of hours already tracked outside the application. |
| billable | TRUE | FALSE | ❌ |  | TRUE: all activities are billable; FALSE: only manually marked activities are billable |
| billableType |  |  | ❌ |  | Controls the default billable flag for time records |
| active | TRUE | FALSE | ❌ |  | Indicates whether the project is currently active. |
| lateMissingNotification | TRUE | FALSE | ❌ |  | TRUE: enabled; FALSE: disabled |
| lateMissingEmployeeSMSNotification | TRUE | FALSE | ❌ | Valid XPHR value | Indicates if employees will receive SMS notifications when late (paid service). |
| lateMissingEmailsString |  |  | ❌ | Valid email address | The email addresses that should receive Late and Missing Notifications (multiple addresses separated by commas). |
| projectManagerLogins |  |  | ❌ | Valid XPHR value | The logins for project management. |
| ProjectTeamMember OU, User |  |  | ❌ | Valid XPHR value | Team assignments for the project. |
| latitude | -90 | 90 | ❌ |  | The latitude of the project location. |
| longitude | -180 | 180 | ❌ |  | The longitude of the project location. |
| gpsRadius | 0 | Integer_MAX_VALUE | ❌ |  | The GPS radius in meters. |
| CostCenter code |  |  | ❌ | Valid XPHR value | The code of the cost center, only for creating a new project (updating Cost Center is not supported). |

| Billable Type Options | Description |
| ---- |
| YES | All activities marked strictly as billable |
| DEFAULT_YES | All activities marked as billable but could be unmarked |
| NO | All activities marked strictly as non-billable |
| DEFAULT_NO | All activities marked as non-billable but could be unmarked |
| ACTIVITY | Billable flag is determined by activity setting |

|| Multiple email addresses are separated with commas.

||| Cost Center Name & Code are required only when creating a new project. Updating Cost Center is not supported with this API.

###### Endpoint
---

### Update Project

To update project's information, match its code in request body and provide value(s) for data to be updated. Only Project code is a required value for update.

###### Endpoint
---

### Get All Projects

To filter the list of projects, include the `projectStatus` parameter in the request and specify one or more supported values: **ACTIVE**, **INACTIVE**, or **ARCHIVED**.

###### Endpoint
---

### Error Handling

Common errors help in debugging and correcting API usage issues.

**Example 1: Missing Code**

**Example 2: Name Length Exceeded Error**
---

### HTTP Response Codes
* **2XX Success** - Operation completed successfully.
* **4XX Client Error** - Likely an issue with the request, such as incorrect parameters or insufficient permissions. Returns an error message in text or XML format.
* **5XX Server Error** - Indicates a server issue. Report this error if encountered.
