ITM Platform's API
With the ITM Platform API, you can quickly and easily integrate your existing company applications, build your own, or synchronize data with your favorite data analysis tools such as MS Excel, Tableau, or Power BI.
ITM Platform’s API is built using the REST architecture, so you should be up and running swiftly if you are familiar with REST APIs. Responses are all returned in JSON, and potential errors include the HTTP error codes.
Note on version 2
This documentation includes resources and actions of version 2.Some resources of version 1 have been replaced, in which case you will notice a DEPRECATED tag, whose names are also marked with v1
. We strongly recommend using version 2 when available.
Host URL endpoints are as follows:
- Version 1 (v1):
https://api.itmplatform.com/companyURL
- Version 2 (v2):
https://api.itmplatform.com/v2/companyURL
If version 1 or no version is specified, use the version 1 host. For example https://api.itmplatform.com/MyCompany/projects
When version 2 is specified, use the version 2 host. For example https://api.itmplatform.com/v2/MyCompany/projects
⚠ All examples follow the v1 convention, unless otherwise specified. Please be aware that you must add /v2/
when using version 2 resources.
Authentication ¶
Authentication using API Key ¶
This method provides a session token that must be passed as an HTTP header on any subsequent call to the ITM Platform API.
The API Key can be found within the My Profile section of your ITM Platform account. Permissions granted on ITM Platform will apply to the API calls.
The generated token will expire 30 minutes after the last call to the API.
The API key does not expire, but we recommend changing it every two months.
Get AuthenticationGET/login/{APIKey}
Gets the sessions token based on the API Key
Example URI
- APIKey
string
(required) Example: 3140fcb4-3462-4cad-afcc-a75d266af47d
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
"Token": "552520150723161530268",
"UserID": "1686",
"Result": "1",
"ResultStatus": "Success"
}
400
Headers
Content-Type: application/json
Body
{
"Incorrect company or api key."
}
Filtering v1 ¶
When specified, you can use this filtering on GET requests, applying filter operators on the URL parameters.
Each request parameters will depend on the endpoint you are using, but all have filter operators and conjunction operators operators to build your request.
Filter Operators
-
gt
- “greater than” - returns items with the specified attribute that is greater than the defined value -
lt
- “less than” - returns items with the specified attribute that is less than the defined value -
eql
- “equal to” - returns items with the specified attribute that is equal to the defined value
Conjunction operators
-
AND
- returns items that meet all filter operators -
OR
- returns items that meet at least one filter operator
Example
Using the /clients
endpoint:
Filter, Page, Sort v2 ¶
On version-2 resources, you can use the following advanced options:
-
Pagination allows navigating trough the different pages of query results
-
Filtering the results to get a more accurate response
-
Sorting the results by any of its properties
-
Property selection to pick exactly the fields you need and improve performance
All these features are available using the path /search
after the resource that you want to retrieve records of.
Use /search
path right after the resource of which you want to format the response. For example /projects/search
You can use both GET and POST methods on any resource, although we recommend using POST whenever possible.
Because the GET doesn’t allow a body request payload, the request must be URL encoded following the specifications of each option. Take into account that the URL length limit is 2048 characters.
The POST method has no limitations in size.
Pagination
By default, the response of a paginated resource will be limited to 50 items. This is an extract of a response example:
{"total" : 1125,
"pagerId": "44b7fecc-2fe4-4faa-b82d-40a9033d5ecc",
"page": 1,
"pageSize": 50}
To access items exceeding the first 50, you need paging using the following parameters:
-
total
(read-only) Number of total items for the current request. -
pagerId
(read / write) (optional) A string of up to 36 characters that will identify the pagination for this query. You can provide your own, or let the resource generate it. For example, you can set thepagerid: 4
.
Please note that you can switch between multiple pages with the samepagerId
, but if you make changes to sorting, filtering or properties, thepagerId
has to change. -
page
(read / write) (optional) The page you are requesting. The first page is 1. -
pageSize
You can change the default page size. The maximum is set to 500 items.
You can calculate the number of pages dividing the total
items by the pageSize
Pagination applies to both GET and POST methods of paginated resources, either in the query parameters or the body request payload in POST methods.
Example URI
POST using the body request payload
"page": 3,
"pageSize": 10,
"pagerId": "0c3d0f0a-12c1-4546-9096-93c3b9df811i"
Filtering
Resources providing a list of items can be filtered to narrow down the results, which will lead to a more precise result and better performance.
You can filter by any item property (like Name
), using the filter
object in the body request payload if you are using POST or encoded in the query string in GET methods.
A simple payload example when using the POST method
{
"Filter": {
"Name": "Build the app"
}
}
The example above, using the GET method, would add the following query string to the URL
?filter=%7B%22Name%22%3A%20%22Build%20the%20app%22%7D
This is the URL decoded
?filter={"Name": "Build the app"}
You can also use operators to create more complex queries.
Example URI
Body payload
{
"Filter": {
"Name": { "$regex": "growth"},
"KindId": { "$in" : [2, 3] }
}
}
The example above can also work on a GET method, encoding the payload to send the string in the filter
parameter.
?filter=%7B%22Name%22%3A%7B%22%24regex%22%3A%22growth%22%7D%2C%22KindId%22%3A%7B%22%24in%22%3A%5B2%2C3%5D%7D%7D
The decoded version would look like this
?filter={"Name":{"$regex":"growth"},"KindId":{"$in":[2,3]}}
Operators
The following is a list of all available operators
Operator | Description | Example |
---|---|---|
[none] | Returns any items that match the specified value. It is also referred to as the equality comparator operator. | {“Name”:“App”} |
$ne | Returns any items that do not match the specified value. It is also referred to as the inequality comparator operator. | {“Duration”:{"$ne":3}} |
$in | Returns any items that match any of the specified values in the set. It is also referred to as the in comparison operator. Use only one data type in the specified values. | {“TypeId”:{"$in":[1,2,3,4,5]}} |
$nin | Returns any items that do not match any of the specified values in the set. It is also referred to as the not in comparison operator. | {“TypeId”:{"$nin":[1,2,3,4]}} |
$lt | Returns any items that have a value that is less than the specified value in the set. It is also referred to as the less than comparison operator. | {“Duration”:{"$lt":3}} |
$lte | Returns any items that have a value that is less than or equal to the specified value in the set. It is also referred to as the less than or equals comparison operator. | {“Duration”:{"$lte":3}} |
$gt | Returns any items that have a value that is greater than the specified value in the set. It is also referred to as the greater than comparison operator. | {“Duration”:{"$gt":3}} |
$gte | Returns any items that have a value that is greater than or equal to the specified value in the set. It is also referred to as the greater than or equals comparison operator. | {“Duration”:{"$gte":3}} |
$regex | Returns any items that have an expression that matches a pattern of strings in the set. It is also referred to as the regular expression predicate. | {“name”:{"$regex":/^a.*/}} |
Sorting
You also can request a list sorted by any of the retrieved properties (fields).
Sorting can be specified in the body request payload for POST methods or as part of the query string of both GET and POST methods.
-
sortBy
specifies the property that will be used to sort the list -
sortOrder
accepts two values:asc
ordesc
Example URI
POST using the body request payload
"sortBy": "Name",
"sortOrder": "desc"
Property selection
The properties (fields) retrieved will follow the authenticated user’s preferences unless otherwise specified using the columns
parameter.
-
The default properties will be retrieved if the authenticated user has no specific columns defined within the ITM Platform’s application. These default properties differ from resource to resource and are visible when selecting ‘Default’ in the list column selector. Some mandatory properties (such as
Id
orName
) and custom fields will be retrieved along with these default properties. -
If the authenticated user has already defined preferred columns within the resource list in ITM Platform (for example, the project list), then those columns + mandatory columns + custom fields will be retrieved.
-
If you request specific properties, the resource will retrieve only those.
Request specific properties
Requesting columns is performed using the columns
parameter:
columns
Object containing an operator and the properties involved. The most common will be$in
Property selection applies to POST methods of resources accepting property selection.
Example URI
Body payload
{
"Columns": { "$in": ["Id", "Name"] }
}
The example above can also work on a GET method, encoding the payload to send the string in the filter
parameter.
?columns=%7B%22%24in%22%3A%5B%22Id%22%2C%22Name%22%5D%7D
The decoded version would look like this
?columns={"$in":["Id","Name"]}
All together
You can combine pagination, filtering, sorting and property selection.
Example URI
Body payload
{
"Filter": {
"Name": { "$regex": "growth"},
"KindId": { "$in" : [2, 3] }
}
,
"Columns": { "$in": ["Id", "Name"] }
}
Projects ¶
Projects ¶
The /projects
endpoint is available both for v1 and v2 versions.
-
v1: https://api.itmplatform.com/companyURL/projects (Only GET)
-
v2 : https://api.itmplatform.com/v2/companyURL/projects (Both GET and POST)
We recommend using v2.
Get Projects v1 v2GET/projects
Available both for v1 and v2 versions.
If you are using v2, this method accepts paging and sorting, as described in the section Filter, Page, Sort v2. If you need filter and property selection, use the POST
If you are using v1 This endpoint accepts Group Filtering v1. The parameters this filter accepts are:
-
ProjectId
-
ProjectName
-
ProjectNo
-
ProjectType.ProjectTypeName
-
ProjectType.ProjectTypeId
-
ProjectStatus.ProjectStatusName
-
ProjectStatus.ProjectStatusId
-
ProjectApproval.ProjectApprovalName
-
ProjectApproval.ProjectApprovalId
-
ProjectPriority.ProjectPriorityName
-
ProjectPriority.ProjectPriorityId
-
Duration
-
ProjectStartDate
-
ProjectEndDate
-
Assessment.AssessmentName
-
Assessment.AssessmentId
-
ProjectProgressComplete
-
ProjectProgressDate
-
CompanyProjectCode
-
ProjectTeam.ProjectManagers.UserId
-
ProjectTeam.ProjectTeamMembers.UserId
-
BusinessGoal.BusinessGoalName
-
BusinessGoal.BusinessGoalId
-
BusinessGoalCategory.BusinessGoalCategoryName
-
BusinessGoalCategory.BusinessGoalCategoryId
-
Sponsor.SponsorName
-
Sponsor.SponsorId
-
InternalClient.InternalClientName
-
InternalClient.InternalClientId
-
ExternalClient.ExternalClientName
-
ExternalClient.ExternalClientId
-
MainProcessAffected.MainProcessAffectedName
-
MainProcessAffected.MainProcessAffectedId
-
DestinationResource.DestinationResourceName
-
DestinationResource.DestinationResourcesId
-
PerformingUnit.PerformingUnitName
-
PerformingUnit.PerformingUnitId
-
ProjectMethodTypeId
-
IsProjectManager
-
Program.ProgramName
-
Program.ProgramId
-
MemberName
Example URI
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
[
{
"ProjectId": 331,
"AccountId": 1142,
"ProjectName": "iPhone Mobile Application - 1",
"ProjectNo": "PR-1142-13100001",
"ProjectType": {
"ProjectTypeName": "category 3",
"ProjectTypeId": 15866,
"ProjectTypeIcon": null
},
"ProjectStatus": {
"ProjectStatusName": "Closed",
"ProjectStatusId": 12741,
"ProjectStatusIcon": "https://app.itmplatform.com/UploadData/Iconlibrary/lock.png"
},
"ProjectApproval": {
"ProjectApprovalName": "Rejected",
"ProjectApprovalId": 11433,
"ProjectApprovalIcon": "https://app.itmplatform.com/UploadData/Iconlibrary/status-busy.png"
},
"ProjectPriority": {
"ProjectPriorityName": "High",
"ProjectPriorityId": 7890,
"ProjectPriorityIcon": "https://app.itmplatform.com/UploadData/Iconlibrary/flag.png"
},
"Duration": 5239,
"ProjectStartDate": "2009-10-01T00:00:00Z",
"ProjectEndDate": "2029-10-30T00:00:00Z",
"Assessment": {
"AssessmentName": "test1",
"AssessmentId": 5314,
"AssessmentIcon": "https://app.itmplatform.com/UploadData/Iconlibrary/icon_notepad.png"
},
"ProjectProgressComplete": 12,
"ProjectProgressDate": "2017-09-04T20:09:23Z",
"CompanyProjectCode": "IAPP1",
"ProjectTeam": {
"ProjectManagers": [
{
"UserId": 1689,
"EmailAddress": "torel@globalcorp360.com",
"DisplayName": "Travis Orellana"
},
{
"UserId": 179,
"EmailAddress": "major.wyman@globalcorp360.com",
"DisplayName": "Major Wyman"
}
],
"ProjectTeamMembers": [
{
"UserId": 1688,
"EmailAddress": "JohnDoe@globalcorp360.com1",
"DisplayName": "John Doe"
}
],
"ProjectGuests": []
},
"BusinessGoal": {
"BusinessGoalName": "My Goal",
"BusinessGoalId": 142
},
"BusinessGoalCategory": {
"BusinessGoalCategoryName": "1234",
"BusinessGoalCategoryId": 6922
},
"Sponsor": {
"SponsorName": "Android",
"SponsorId": 458
},
"InternalClient": {
"InternalClientName": "PHP",
"InternalClientId": 456
},
"ExternalClient": {
"ExternalClientName": "New Again Client",
"ExternalClientId": 95
},
"MainProcessAffected": {
"MainProcessAffectedName": "new Activity\\PRC1",
"MainProcessAffectedId": 115
},
"DestinationResource": {
"DestinationResourceName": "Asset1\\Test",
"DestinationResourcesId": 134
},
"PerformingUnit": {
"PerformingUnitName": "Android",
"PerformingUnitId": 458
},
"Active": true,
"ProjectMethodTypeId": 1,
"IsProjectManager": true,
"Program": null,
"AllCustomFields": {
"Test Text Field": "2017-10-04T00:00:00",
"Test New Field": "123"
}
}
]
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"StatusMessage": "Please enter valid field name",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Get Projects v2POST/projects
Only available on v2, this method accepts paging, sorting, filtering and property selection as described in the section Filter, Page, Sort v2.
Example URI
Headers
Content-Type: application/json
Token: [token]
Body
{
"Filter": {
"Name": {
"$regex": "growth"
},
"KindId": {
"$in": [
2,
3
]
}
},
"Columns": {
"$in": [
"Id",
"Name"
]
}
}
200
Headers
Content-Type: application/json
Body
[
{
"ProjectId": 331,
"AccountId": 1142,
"ProjectName": "Mobile Application Growth",
"ProjectNo": "PR-1142-13100001",
"ProjectType": {
"ProjectTypeName": "category 3",
"ProjectTypeId": 15866,
"ProjectTypeIcon": null
},
"ProjectStatus": {
"ProjectStatusName": "Closed",
"ProjectStatusId": 12741,
"ProjectStatusIcon": "https://app.itmplatform.com/UploadData/Iconlibrary/lock.png"
},
"ProjectApproval": {
"ProjectApprovalName": "Rejected",
"ProjectApprovalId": 11433,
"ProjectApprovalIcon": "https://app.itmplatform.com/UploadData/Iconlibrary/status-busy.png"
},
"ProjectPriority": {
"ProjectPriorityName": "High",
"ProjectPriorityId": 7890,
"ProjectPriorityIcon": "https://app.itmplatform.com/UploadData/Iconlibrary/flag.png"
},
"Duration": 5239,
"ProjectStartDate": "2009-10-01T00:00:00Z",
"ProjectEndDate": "2029-10-30T00:00:00Z",
"Assessment": {
"AssessmentName": "test1",
"AssessmentId": 5314,
"AssessmentIcon": "https://app.itmplatform.com/UploadData/Iconlibrary/icon_notepad.png"
},
"ProjectProgressComplete": 12,
"ProjectProgressDate": "2017-09-04T20:09:23Z",
"CompanyProjectCode": "IAPP1",
"ProjectTeam": {
"ProjectManagers": [
{
"UserId": 1689,
"EmailAddress": "torel@globalcorp360.com",
"DisplayName": "Travis Orellana"
},
{
"UserId": 179,
"EmailAddress": "major.wyman@globalcorp360.com",
"DisplayName": "Major Wyman"
}
],
"ProjectTeamMembers": [
{
"UserId": 1688,
"EmailAddress": "JohnDoe@globalcorp360.com1",
"DisplayName": "John Doe"
}
],
"ProjectGuests": []
},
"BusinessGoal": {
"BusinessGoalName": "My Goal",
"BusinessGoalId": 142
},
"BusinessGoalCategory": {
"BusinessGoalCategoryName": "1234",
"BusinessGoalCategoryId": 6922
},
"Sponsor": {
"SponsorName": "Android",
"SponsorId": 458
},
"InternalClient": {
"InternalClientName": "PHP",
"InternalClientId": 456
},
"ExternalClient": {
"ExternalClientName": "New Again Client",
"ExternalClientId": 95
},
"MainProcessAffected": {
"MainProcessAffectedName": "new Activity\\PRC1",
"MainProcessAffectedId": 115
},
"DestinationResource": {
"DestinationResourceName": "Asset1\\Test",
"DestinationResourcesId": 134
},
"PerformingUnit": {
"PerformingUnitName": "Android",
"PerformingUnitId": 458
},
"Active": true,
"ProjectMethodTypeId": 1,
"IsProjectManager": true,
"Program": null,
"AllCustomFields": {
"Test Text Field": "2017-10-04T00:00:00",
"Test New Field": "123"
}
}
]
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"StatusMessage": "Please enter valid field name",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Project v1 ¶
⚠ Get a project v1GET/project/{?ProjectId}
DEPRECATED
Example URI
- ProjectId
int
(required) Example: 331
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
"ProjectId": 331,
"ProjectNo": "PR-1142-13100001",
"ProjectName": "iPhone Mobile Application - 1",
"Description": "",
"ProjectTypeId": 15866,
"ProjectTypeName": "Jira category 3",
"ProjectPriorityId": 7890,
"ProjectPriorityName": "High",
"ProjectStatusId": 12741,
"ProjectStatusName": "Closed",
"ProjectApprovalId": 11433,
"ProjectApprovalName": "Rejected",
"PerformingUnitId": 458,
"PerformingUnitName": "Android",
"ExternalClientId": 95,
"ExternalClientName": "New Again Client",
"IsActive": true,
"CompanyProjectCode": "IAPP1",
"InternalCostCenter": "",
"IsServices": false,
"CategoryId": 6922,
"CategoryName": "1234",
"BusinessGoalId": 142,
"BusinessGoalName": "My Goal",
"DescriptionOfBenefit": "test",
"ExpectedROI": 25,
"DestinationAssetId": 134,
"DestinationAssetName": "Test",
"MainProcessAffectedId": 115,
"MainProcessAffectedName": "PRC1",
"InternalClientId": 456,
"InternalClientName": "PHP",
"SponsorId": 458,
"SponsorName": "Android",
"ExpectedROICurrencyId": 1113,
"ExpectedROIExcahngeRate": 1,
"ExpectedROIChangeApplied": "2017-10-04T17:21:06Z",
"Duration": 5234,
"ProjectMethodTypeId": 1,
"ProjectStartDate": "2009-10-01T00:00:00Z",
"ProjectEndDate": "2029-10-30T00:00:00Z",
"IsKanbanProject": false,
"TopDownInternalTeamHours": "12:00",
"TopDownInternalTeamCost": 0,
"TopDownExternalTeamHours": "30:00",
"TopDownExternalTeamCost": 0,
"TopDownUndefinedTeamHours": "50:00",
"TopDownUndefinedTeamCost": 0,
"TopDownTotalWorkforceHours": "92:00",
"TopDownTotalWorkforceCost": 0,
"TopDownPurchases": 0,
"TopDownMargin": 0,
"TopDownRevenue": 0,
"TopDownTotalBudget": 0,
"BottomUpInternalTeamHours": "816:21",
"BottomUpInternalTeamCost": 40817.5,
"BottomUpExternalTeamHours": "189:09",
"BottomUpExternalTeamCost": 9457.5,
"BottomUpUndefinedTeamHours": "70:00",
"BottomUpUndefinedTeamCost": 606.5,
"BottomUpTotalWorkforceHours": "1085:21",
"BottomUpTotalWorkforceCost": 50888,
"BottomUpPurchases": -119311.12,
"BottomUpTotalBudget": -66054.62,
"BottomUpMargin": 67308.62,
"BottomUpRevenue": 1254,
"PECTotalConsumption": 142635,
"PECInternalTeamHours": "00:00",
"PECInternalTeamCost": 0,
"PECExternalTeamHours": "00:00",
"PECExternalTeamCost": 0,
"PECTotalWorkforceHours": "00:00",
"PECTotalWorkforceCost": 0,
"PECPurchases": 142635,
"ActualInternalTeamHours": "993:00",
"ActualInternalTeamCost": 37080,
"ActualExternalTeamHours": "803:00",
"ActualExternalTeamCost": 40150,
"ActualTotalWorkforceHours": "1796:00",
"ActualTotalWorkforceCost": 77230,
"ActualPurchases": 142635,
"ActualMargin": -219865,
"ActualTotalConsumption": 142635,
"ActualRevenue": 0,
"ProjectDeviationToday": -88,
"TimeStamp": "2020-09-29T16:53:50.957Z",
"ActiveProjectBaseLineId": 1459,
"ActiveBaselineStartDate": "2011-07-07T00:00:00Z",
"ActiveBaselineEndDate": "2018-11-07T00:00:00Z",
"ActiveBaselineTopDownTotalHours": "1100:00",
"ActiveBaselineTopDownTotalCost": 22500,
"ActiveBaselineBottomUpTotalHours": "11797:28",
"ActiveBaselineBottomUpTotalCost": 206053.89,
"ActiveBaselineTopDownPurchases": 6100,
"ActiveBaselineTopDownRevenue": 5000,
"ActiveBaselineBottomUpPurchases": 2089,
"ActiveBaselineBottomUpRevenue": 17752,
"ProjectCreationDate": "2014-11-11T04:55:33.460Z",
"CreatorUserId": 7489,
"CreatorDisplayName": "Peter Yi",
"CreatorEmail": "girish.tank@tatvasoft.com1",
"EntityCount": {
"NumberOfTasks": 1112,
"NumberOfSummaryTasks": 168,
"NumberOfIssues": 0,
"NumberOfRisks": 14
},
"ProgressExpectedToday": {
"date": "2020-09-29",
"ProgressExpected": 100,
"ProgressExpectedBaseline": 100
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
⚠ Add a project v1POST/project/
DEPRECATED
Adds a project. Pass IsKanbanProject property true in body for agile project and false for waterfall project.
Example URI
Headers
Content-Type: application/json
Token: [token]
Body
{
"ProjectName": "Test Project from API INSERT ",
"Description": "Project description",
"ProjectTypeId": 8331,
"ExternalClientId": 0,
"PerformingUnitId": 0,
"ProjectPriorityId": 7891,
"ProjectStatusId": 12740,
"ProjectApprovalId": 11430,
"ProjectStartDate": "2016-06-16T00:00:00Z",
"ProjectEndDate": "2016-06-16T00:00:00Z",
"BusinessGoalId": 0,
"CategoryId": 0,
"DestinationAssetId": 0,
"MainProcessAffectedId": 0,
"InternalClientId": 0,
"SponsorId": 0,
"CompanyProjectCode": "",
"InternalCostCenter:": "",
"DescriptionOfBenefit": "",
"ExpectedROI": 15.25,
"ExpectedROICurrencyId": 1113,
"IsKanbanProject": false,
"InternalCostCenter": "100"
}
201
Headers
Content-Type: application/json
Body
{
"ProjectId": 1234,
"StatusMessage": "Project inserted successfully",
"StatusCode": 201
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter project name",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter project status id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project status id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter project type id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project type id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter project approval id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project approval id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter project priority id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project priority id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project start date",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project end date",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Project end date must be greater than or equal to project start date",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid assest destination id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid main process affected id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid internal client id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid sponsor id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid external client id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid performing unit id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid category id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid business goal id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid Expected ROI currency id",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
{
"ProjectId":0,
"StatusMessage": "Due to license policy, you cannot create more projects",
"StatusCode": 403
}
{
"ProjectId":0,
"StatusMessage": "Project name already exists.",
"StatusCode": 403
}
⚠ Update a project v1PUT/project/{?ProjectId}
DEPRECATED
Updates a project.
Example URI
- ProjectId
int
(required) Example: 12262
Headers
Content-Type: application/json
Token: [token]
Body
{
"ProjectName": "Test Project from API update",
"Description": "Project description",
"ProjectTypeId": 8331,
"ExternalClientId": 0,
"PerformingUnitId": 0,
"ProjectPriorityId": 7891,
"ProjectStatusId": 12740,
"ProjectApprovalId": 11430,
"ProjectStartDate": "2016-06-16T00:00:00Z",
"ProjectEndDate": "2016-06-16T00:00:00Z",
"BusinessGoalId": 0,
"CategoryId": 0,
"DestinationAssetId": 0,
"MainProcessAffectedId": 0,
"InternalClientId": 0,
"SponsorId": 0,
"CompanyProjectCode": "",
"InternalCostCenter:": "",
"DescriptionOfBenefit": "",
"ExpectedROI": 15.25,
"ExpectedROICurrencyId": 1113,
"InternalCostCenter": "100"
}
201
Headers
Content-Type: application/json
Body
{
"ProjectId": 12262,
"StatusMessage": "Project updated successfully",
"StatusCode": 201
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter project name",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter project status id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project status id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter project type id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project type id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter project approval id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project approval id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter project priority id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project priority id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project start date",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project end date",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Project end date must be greater than or equal to project start date",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid assest destination id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid main process affected id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid internal client id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid sponsor id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid external client id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid performing unit id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid category id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid business goal id",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid Expected ROI currency id",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid date range. Date range of projects must be the same as or later than date range of existing tasks.",
"StatusCode": 403
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid date range. Time entry is outside date range.",
"StatusCode": 403
}
{
"ProjectId":0,
"StatusMessage": "Project name already exists.",
"StatusCode": 403
}
InActive a projectDELETE/project/{?ProjectId}
Example URI
- ProjectId
int
(required) Example: 331
200
Headers
Content-Type: application/json
Body
{
"ProjectId":331,
"StatusMessage": "Record inactive successfully",
"StatusCode": 200
}
{
"ProjectId":331,
"StatusMessage": "Record successfully activated",
"StatusCode": 200
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Project doesn't exist",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Project v2 ¶
Get a project v2GET/projects/{?ProjectId}
Example URI
- ProjectId
int
(required) Example: 32005
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
"Id": 32005,
"No": "PR-2925-13080001",
"Name": "New product line",
"Code": "NP-0001",
"Description": "<h4 style=\"color: #262626; text-align: justify;\"><span style=\"font-weight: normal; font-size: 16px;\"><img alt=\"\" style=\"border-color: currentcolor; width: 24px; height: 24px; padding-right: 10px; vertical-align: middle;\" src=\"http://www.itmplatform.com/lib/uploads/UserInfo.png\" />Description of the project</span><br />\n<br />\n<span style=\"font-size: 13px;\"><span style=\"font-weight: normal;\">Use this section to share the <strong>general purpose</strong></span><span style=\"font-weight: normal;\"> of the project, which will be visible to all members.<br />\n<br />\n</span> <span style=\"font-weight: normal;\">The \"General\" section can be used to identity, classify and establish the basic project parameters, and may include <strong>customized fields</strong> corresponding to your information needs.<br />\n<br />\n</span>\n<div style=\"text-align: center;\"><span style=\"text-align: left; font-weight: normal;\">How to create projects swiftly</span></div>\n<div style=\"font-weight: normal; text-align: center;\"><a href=\"http://www.youtube.com/watch?v=bdpHRZHv4d8&dh=1\">http://www.youtube.com/watch?v=bdpHRZHv4d8&dh=1</a></div>\n<br />\n<br />\n<br />\n</span></h4>",
"InternalCode": "NP-0001",
"InternalCostCenter": "",
"StartDate": "2021-01-01T00:00:00Z",
"EndDate": "2022-08-15T00:00:00Z",
"Duration": 422,
"Expected": 57,
"MethodTypeId": 1,
"Type": {
"Id": 90329,
"Name": "New product of business process",
"Icon": "https://demo.itmplatform.com/revamping/UploadData/Iconlibrary/databases.png"
},
"Status": {
"Id": 93288,
"Name": "In Progress",
"Icon": "https://demo.itmplatform.com/revamping/UploadData/Iconlibrary/chart-up-color.png",
"IsCompleted": false
},
"Priority": {
"Id": 56970,
"Name": "Normal",
"Icon": "https://demo.itmplatform.com/revamping/UploadData/Iconlibrary/flag-green.png",
"IsSelected": true
},
"ApprovalStatus": {
"Id": 56940,
"Name": "Approved",
"Icon": "https://demo.itmplatform.com/revamping/UploadData/Iconlibrary/status.png",
"IsSelected": false
},
"PerformingUnit": {
"Id": 12221,
"Name": "Production"
},
"BusinessGoal": {
"Id": 9233,
"Name": "New product range launch"
},
"Category": {
"Id": 30419,
"IdByLanguage": 30419,
"BaseId": 30419,
"Name": "Business growth",
"NameByLanguage": "Business growth",
"LanguageId": 1,
"IsService": false
},
"BaseCurrencyId": 8325,
"ExpectedROI": {
"Amount": 540000,
"CurrencyId": 8325,
"ExchangeRate": 1,
"AppliedDate": "2021-10-26T15:10:02Z"
},
"BusinessBenefit": "<h4 style=\"color: #262626; font-weight: normal; text-align: justify;\"><span style=\"font-size: 16px;\"><img alt=\"\" style=\"border-color: currentcolor; width: 24px; height: 24px; padding-right: 10px; vertical-align: middle;\" src=\"http://www.itmplatform.com/lib/uploads/edition-view.png\" />Business Objectives<br />\n</span><br />\n<span style=\"font-size: 13px;\"><span style=\"text-align: justify; color: #262626; background-color: #ffffff;\">Assign objectives to your projects to maintain full alignment between the organization’s generic objectives and the specific objectives of each project.<br />\n</span>\n<h4 style=\"color: #262626; font-size: 16px; font-weight: normal; text-align: justify;\"><img alt=\"\" style=\"border-color: currentcolor; width: 24px; height: 24px; padding-right: 10px; vertical-align: middle;\" src=\"http://www.itmplatform.com/lib/uploads/finance-bag-dollar.png\" />Return on investment</h4>\n<span style=\"text-align: justify; color: #262626; background-color: #ffffff;\">Specify on this data sheet the key information about the return on the investment ensuring this is present at all times throughout project execution.</span><br />\n<br />\n</span>You may also read the article connected with the scope of objectives:<br />\n<a href=\"http://www.itmplatform.com/es/blog/2012/07/12/ejecutar-crecer-transformar-reducir-costes\">http://www.itmplatform.com/es/blog/2012/07/12/ejecutar-crecer-transformar-reducir-costes</a></h4>",
"ProcessAffected": {
"Id": 12571,
"Name": "Market analysis",
"BusinessActivityId": 0,
"Path": "Commercial\\Market analysis"
},
"Sponsor": {
"Id": 12220,
"Name": "R+D"
},
"InternalClient": {
"Id": 12222,
"Name": "Sales and Marketing"
},
"ExternalClient": {
"Id": 4098,
"Name": "Government"
},
"Asset": {
"Id": 14192,
"Name": "Flagship Product",
"Path": "Products\\Flagship Product"
},
"ProgressModelId": "DURATION",
"RevenueRecognitionModelId": "FIXED",
"RevenueModelId": "BASEDONTASKS",
"RevenueRecognitionPeriodTypeId": "MONTHLY",
"AllowManualProgress": true,
"AllowManualAmountInputRR": true,
"RevenueRecognitionFutureModelId": "USEREVENUERECOGNITION",
"AllCustomFields": {
"Exposure": {
"Text": "Alto",
"Color": "Red"
},
"ERP Code": 354.411,
"Client acceptance date": "2013-03-12T00:00:00Z",
"Area": null,
"Invoice paid": "Yes"
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Add a project v2POST/projects/
Pass IsKanbanProject property true in body for agile project and false for waterfall project.
Example URI
Headers
Content-Type: application/json
Token: [token]
Body
{
"Name": "Test Project from API INSERT",
"Description": "Project description",
"TypeId": 8331,
"ExternalClientId": 0,
"PerformingUnitId": 0,
"PriorityId": 7891,
"StatusId": 12740,
"ApprovalId": 11430,
"StartDate": "2016-06-16T00:00:00Z",
"EndDate": "2016-06-16T00:00:00Z",
"BusinessGoalId": 0,
"CategoryId": 0,
"DestinationAssetId": 0,
"MainProcessAffectedId": 0,
"InternalClientId": 0,
"SponsorId": 0,
"InternalCode": "",
"InternalCostCenter:": "",
"DescriptionOfBenefit": "",
"ExpectedROI": 15.25,
"ExpectedROICurrencyId": 1113,
"IsKanbanProject": false,
"InternalCostCenter": "100"
}
201
Headers
Content-Type: application/json
Body
{
"ProjectId": 1234,
"StatusMessage": "Project inserted successfully.",
"StatusCode": 201
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter project name.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Project name already exists.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter project status id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project status id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter project type id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project type id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter project approval id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project approval id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter project priority id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project priority id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project start date.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project end date.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Project end date must be greater than or equal to project start date.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid assest destination id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid main process affected id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid internal client id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid sponsor id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid external client id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid performing unit id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid category id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid business goal id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid Expected ROI currency id.<br/>",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
{
"ProjectId":0,
"StatusMessage": "Due to license policy, you cannot create more projects",
"StatusCode": 403
}
Update a project v2PATCH/projects/{?ProjectId}
Example URI
- ProjectId
int
(required) Example: 12262
Headers
Content-Type: application/json
Token: [token]
Body
{
{
"Name" : "Test Project from API INSERT ",
"Description" : "Project description",
"TypeId": 8331,
"ExternalClientId" : 0,
"PerformingUnitId" : 0,
"PriorityId" : 7891,
"StatusId" : 12740,
"ApprovalId" :11430,
"StartDate" : "2016-06-16T00:00:00Z",
"EndDate" : "2016-06-16T00:00:00Z",
"BusinessGoalId" :0,
"CategoryId" :0,
"DestinationAssetId" : 0,
"MainProcessAffectedId" : 0,
"InternalClientId" : 0,
"SponsorId" : 0,
"InternalCode" : "",
"InternalCostCenter:" : "",
"DescriptionOfBenefit" : "",
"ExpectedROI" : 15.25,
"ExpectedROICurrencyId" : 1113,
"InternalCostCenter":"100"
}
201
Headers
Content-Type: application/json
Body
{
"ProjectId": 12262,
"StatusMessage": "Project updated successfully.",
"StatusCode": 201
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter project name.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter project status id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project status id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter project type id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project type id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter project approval id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project approval id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter project priority id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project priority id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project start date.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid project end date.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Project end date must be greater than or equal to project start date.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid assest destination id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid main process affected id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid internal client id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid sponsor id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid external client id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid performing unit id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid category id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid business goal id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid Expected ROI currency id.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid date range. Date range of projects must be the same as or later than date range of existing tasks.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Please enter valid date range. Time entry is outside date range.<br/>",
"StatusCode": 400
}
{
"ProjectId":0,
"StatusMessage": "Project name already exists.<br/>",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Project Budget ¶
Get a project budgetGET/project/{ProjectId}/budget
Example URI
- ProjectId
int
(required) Example: 331
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
"TopDownBudget": {
"TopDownInternalTeamCost": 96,
"TopDownInternalTeamHours": "00:00",
"TopDownExternalTeamCost": 1000,
"TopDownExternalTeamHours": "00:00",
"TopDownUndefinedTeamCost": 0,
"TopDownUndefinedTeamHours": "00:00",
"TopDownPurchases": 0,
"TopDownRevenue": 2000,
"TopDownInternalTeamCostCurrencyId": 1113,
"TopDownInternalTeamCostExchangeRate": 1,
"TopDownInternalTeamCostChangeApplied": "2017-06-13T02:16:26Z",
"TopDownExternalTeamCostCurrencyId": 1113,
"TopDownExternalTeamCostExchangeRate": 1,
"TopDownExternalTeamCostChangeApplied": "2017-06-12T21:00:14Z",
"TopDownPurchasesCurrencyId": 1113,
"TopDownPurchasesBudgetExchangeRate": 1,
"TopDownPurchasesChangeApplied": "2017-06-13T02:16:26Z",
"TopDownUndefinedTeamCostCurrencyId": 1113,
"TopDownUndefinedTeamCostExchangeRate": 1,
"TopDownUndefinedTeamCostChangeApplied": "2017-06-13T02:16:26Z",
"TopDownRevenueCurrencyId": 1113,
"TopDownRevenueChangeApplied": "2017-06-12T15:31:16Z",
"TopDownRevenueExchangeRate": 1
},
"BottomUpBudget": {
"BottomUpInternalTeamCost": 40817.499951,
"BottomUpInternalTeamHours": "816:00",
"BottomUpExternalTeamCost": 9457.499957,
"BottomUpExternalTeamHours": "189:00",
"BottomUpUndefinedTeamCost": 500,
"BottomUpUndefinedTeamHours": "50:00",
"BottomUpPurchases": -119880,
"BottomUpRevenue": 500
},
"ActualValues": {
"ActualInternalTeamCost": 16870,
"ActualInternalTeamHours": "587:00",
"ActualExternalTeamCost": 30850,
"ActualExternalTeamHours": "617:00",
"ActualPurchases": 400,
"ActualRevenue": 100
},
"LastPECValues": {
"PECInternalTeamCost": 0,
"PECInternalTeamHours": "00:00",
"PECExternalTeamCost": 0,
"PECExternalTeamHours": "00:00",
"PECPurchases": 400,
"PECRevenue": 0
},
"GlobalStandardCost": {
"GlobalStandardGeneralCost": 10,
"GlobalStandardInternalCost": 8,
"GlobalStandardExternalCost": 1
}
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Update a project budgetPUT/project/{ProjectId}/budget
Example URI
- ProjectId
int
(required) Example: 12262
Headers
Content-Type: application/json
Token: [token]
Body
{
"TopDownInternalTeamCost": 0,
"TopDownInternalTeamHours": "1",
"TopDownExternalTeamCost": 0,
"TopDownExternalTeamHours": "2",
"TopDownUndefinedTeamCost": 0,
"TopDownUndefinedTeamHours": "3",
"TopDownPurchases": 0,
"TopDownRevenue": 2000,
"TopDownInternalTeamCostCurrencyId": 1113,
"TopDownInternalTeamCostExchangeRate": 1,
"TopDownInternalTeamCostChangeApplied": "2017-06-13T02:16:26Z",
"TopDownExternalTeamCostCurrencyId": 1113,
"TopDownExternalTeamCostExchangeRate": 1,
"TopDownExternalTeamCostChangeApplied": "2017-06-12T21:00:14Z",
"TopDownPurchasesCurrencyId": 1113,
"TopDownPurchasesBudgetExchangeRate": 1,
"TopDownPurchasesChangeApplied": "2017-06-13T02:16:26Z",
"TopDownUndefinedTeamCostCurrencyId": 1113,
"TopDownUndefinedTeamCostExchangeRate": 1,
"TopDownUndefinedTeamCostChangeApplied": "2017-06-13T02:16:26Z",
"TopDownRevenueCurrencyId": 1113,
"TopDownRevenueChangeApplied": "2017-06-12T15:31:16Z",
"TopDownRevenueExchangeRate": 1
}
201
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Budget updated successfully.",
"StatusCode": 201
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Project Team ¶
Get a project teamGET/project/{ProjectId}/team
Example URI
- ProjectId
int
(required) Example: 331
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
"type": "team",
"version": "1.1",
"ProjectMethodTypeId": "1",
"MySelfAsPM": "New.User@globalcorp360.com",
"members": {
"2191": {
"intUserId": "2191",
"name": "Adolfo Gonzalez",
"category": "Default One",
"firstName": "Adolfo",
"lastName": "Gonzalez",
"holidays": "2014/01/02,2015/04/07,2015/04/08,2015/04/09,2015/12/25,2015/12/25,",
"position": "",
"haspmlicense": true,
"hastmlicense": true,
"department": "",
"provider": "Employee",
"projectrole": "TeamMember",
"photo": ""
}
},
"tasks": {
"T-1018-17030001": {
"intTaskId": "148962",
"name": "task 1",
"status": "To Do",
"type": "Documentation",
"priority": "High123",
"start": "2017-03-01",
"end": "2017-03-02",
"members": {
"2191": {
"intProjectUserId": 2529,
"intAvailableCapacity": 960,
"taskrole": "TaskMember"
}
}
}
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Project Swimlanes ¶
Get project swimlanesGET/project/{ProjectId}/swimlanes
Example URI
- ProjectId
int
(required) Example: 627
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
[
{
"KanbanProjectSwimlaneId": 1,
"SwimlaneName": "Default",
"Description": "desc",
"ProjectId": 627,
"ColorCode": "#fabe3c",
"Order": 0
},
{
"KanbanProjectSwimlaneId": 23,
"SwimlaneName": "Swimlane 2",
"Description": "desc",
"ProjectId": 627,
"ColorCode": "#1e98d7",
"Order": 2
}
]
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Project Progress Report ¶
Get project progress reportGET/project/{ProjectId}/progress/
List of all progress of a particular project, including details. This endpoint accepts Group Filtering v1. The parameters this filter accepts are:
-
ProjectProgressId
-
Assessment.AssessmentName
-
Assessment.AssesmentId
-
DetailDescription
-
ShortDescription
-
PercentageCompleted
-
ReportDate
Example URI
- ProjectId
string
(required) Example: 331
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
[
{
"ProjectProgressId": 433,
"ProjectId": 331,
"Assessment": null,
"DetailDescription": "",
"ShortDescription": "Automatic follow-up",
"PercentageCompleted": 16,
"ReportDate": "2013-11-12T10:07:32.883Z",
"CreatedBy": {
"UserId": 1686,
"EmailAddress": "torel@globalcorp360.com",
"DisplayName": "Travis Orellana"
},
"AllCustomFields": {
"test ryg": {
"Text": "Steady",
"Color": "Yellow"
}
}
},
{
"ProjectProgressId": 434,
"ProjectId": 331,
"Assessment": {
"AssessmentName": "No Critical 2",
"AssessmentId": 3288,
"AssessmentIcon": "https://app.itmplatform.com/UploadData/Iconlibrary/icon_notepad.png"
},
"DetailDescription": "asdfgh123",
"ShortDescription": "Description1 update",
"PercentageCompleted": 50,
"ReportDate": "2013-01-01T11:39:17Z",
"CreatedBy": {
"UserId": 1686,
"EmailAddress": "torel@globalcorp360.com",
"DisplayName": "Travis Orellana"
},
"AllCustomFields": {
"test ryg": {
"Text": "Steady",
"Color": "Yellow"
}
}
}
]
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Add a project progress reportPOST/project/{ProjectId}/progress/
Example URI
- ProjectId
int
(required) Example: 331
Headers
Content-Type: application/json
Token: [token]
Body
{
{
"AssessmentId" : 3011,
"DetailDescription" : "detailsdescription",
"ShortDescription": "des",
"PercentageCompleted" : 45,
"ReportDate" : "2017-06-15T00:00:00Z"
}
}
201
Headers
Content-Type: application/json
Body
{
{
"ProjectProgressId":67,
"StatusMessage": "Project progress inserted successfully",
"StatusCode": 201
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"ProjectProgressId":0,
"StatusMessage": "Project does not exists",
"StatusCode": 400
}
{
"ProjectProgressId":0,
"StatusMessage": "An error occurred while inserting project follow-up, please try again later or contact ITM Administrator",
"StatusCode": 400
}
{
"ProjectProgressId":0,
"StatusMessage": "Please enter assessment",
"StatusCode": 400
}
{
"ProjectProgressId":0,
"StatusMessage": "Please short description",
"StatusCode": 400
}
{
"ProjectProgressId":0,
"StatusMessage": "lease enter project report date",
"StatusCode": 400
}
{
"ProjectProgressId":0,
"StatusMessage": "Please enter valid report date",
"StatusCode": 400
}
{
"ProjectProgressId":0,
"StatusMessage": "Please enter valid assessment",
"StatusCode": 400
}
{
"ProjectProgressId":0,
"StatusMessage": "Percentage completed should be between 0 to 100",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Update a project progress reportPUT/project/{ProjectId}/progress/{?ProjectProgressId}
Example URI
- ProjectId
int
(required) Example: 331- ProjectProgressId
int
(required) Example: 456
Headers
Content-Type: application/json
Token: [token]
Body
{
{
"AssessmentId" : 3011,
"DetailDescription" : "detailsdescription",
"ShortDescription": "des",
"PercentageCompleted" : 45,
"ReportDate" : "2017-06-15T00:00:00Z"
}
}
201
Headers
Content-Type: application/json
Token: [token]
Body
{
{
"ProjectProgressId":456,
"StatusMessage": "Project progress updated successfully",
"StatusCode": 201
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"ProjectProgressId":0,
"StatusMessage": "Project does not exists",
"StatusCode": 400
}
{
"ProjectProgressId":0,
"StatusMessage": "Project progress does not exists",
"StatusCode": 400
}
{
"ProjectProgressId":0,
"StatusMessage": "oops some error occurred while inserting project follow-up, please try again later or contact ITM Administrator",
"StatusCode": 400
}
{
"ProjectProgressId":0,
"StatusMessage": "Please enter assessment",
"StatusCode": 400
}
{
"ProjectProgressId":0,
"StatusMessage": "Please short description",
"StatusCode": 400
}
{
"ProjectProgressId":0,
"StatusMessage": "lease enter project report date",
"StatusCode": 400
}
{
"ProjectProgressId":0,
"StatusMessage": "Please enter valid report date",
"StatusCode": 400
}
{
"ProjectProgressId":0,
"StatusMessage": "Please enter valid assessment",
"StatusCode": 400
}
{
"ProjectProgressId":0,
"StatusMessage": "Percentage completed should be between 0 to 100",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Delete a project progress reportDELETE/project/{ProjectId}/progress/{?ProjectProgressId}
Example URI
- ProjectId
int
(required) Example: 331- ProjectProgressId
int
(required) Example: 2338
200
Headers
Content-Type: application/json
Body
{
{
"ProjectProgressId": 2338,
"StatusMessage": "Project progress deleted successfully",
"StatusCode": 200
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"ProjectProgressId": 0,
"StatusMessage": "Project progress id doesn't exist",
"StatusCode": 400
}
{
"ProjectProgressId": 0,
"StatusMessage": "Project doesn't exist",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Sprints ¶
Get Project Sprint ¶
Get Project Sprint SearchPOST/Projects/{ProjectId}/Sprints/Search
Example URI
- ProjectId
int
(required) Example: 62573
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
"total": 2,
"pagerid": "254318a8-fee4-4099-bdf8-8309f4f97649",
"page": 0,
"pageSize": 2,
"list": [
{
"Id": "726b7bb0-2a43-40ba-bb1c-46fd4285b55d",
"Name": "Sprint 2",
"AccountId": 4019,
"ProjectId": 62573,
"LanguageId": 0,
"Description": "",
"Duration": "Week1",
"StartDate": "2022-12-16T00:00:00Z",
"EndDate": "2022-12-22T00:00:00Z",
"Type": 0,
"IsService": false,
"CreationDate": "2022-09-16T16:05:19Z",
"Creator": {
"UserId": 54680,
"AccountId": 4019,
"EmailAddress": "darshi.shah@internal.mail",
"DisplayName": "Darshi Shah",
"UserRoleId": 0,
"FirstName": "Darshi",
"LastName": "Shah",
"Photo": "UploadData\\PHOTO\\54680.png"
}
},
{
"Id": "83338240-51d4-4c0f-b764-c8a7876a156a",
"Name": "Sprint 1",
"AccountId": 4019,
"ProjectId": 62573,
"LanguageId": 0,
"Description": "Test Sprint",
"Duration": "Week1",
"StartDate": "2022-08-09T10:18:23Z",
"EndDate": "2022-08-12T10:18:23Z",
"Type": "Project",
"IsService": false,
"CreationDate": "2022-08-09T16:58:19Z",
"Creator": {
"UserId": 54680,
"AccountId": 4019,
"EmailAddress": "darshi.shah@internal.mail",
"DisplayName": "Darshi Shah",
"UserRoleId": 0,
"FirstName": "Darshi",
"LastName": "Shah",
"Photo": "UploadData\\PHOTO\\54680.png"
}
}
]
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
500
Headers
Content-Type: application/json
Body
{
"Id": 625731,
"StatusMessage": "Project 62573 does not exist",
"StatusCode": 500
}
{
"Id": 625731,
"StatusMessage": "Account 4019 does not exist",
"StatusCode": 500
}
Project Sprints ¶
Get Project SprintGET/Projects/{ProjectId}/Sprints/{SprintId}
Example URI
- ProjectId
int
(required) Example: 62573- SprintId
string
(required) Example: 83338240-51d4-4c0f-b764-c8a7876a156a
200
Headers
Content-Type: application/json
Body
{
"Id": "83338240-51d4-4c0f-b764-c8a7876a156a",
"Name": "Sprint 1",
"AccountId": 4019,
"ProjectId": 62573,
"Description": "Test Sprint",
"Duration": "Week1",
"StartDate": "2022-08-09T10:18:23Z",
"EndDate": "2022-08-12T10:18:23Z",
"Type": "Project",
"IsService": false,
"CreationDate": "2022-08-09T16:58:19Z",
"CreatorId": 54680,
"Creator": {
"UserId": 54680,
"AccountId": 4019,
"EmailAddress": "darshi.shah@internal.mail",
"DisplayName": "Darshi Shah",
"UserRoleId": 0,
"FirstName": "Darshi",
"LastName": "Shah",
"Photo": "UploadData\\PHOTO\\54680.png"
},
"AllocatedTasks": []
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
500
Headers
Content-Type: application/json
Body
{
"Id": 625731,
"StatusMessage": "Sprint 83338240-51d4-4c0f-b764-c8a7876a156a does not exist",
"StatusCode": 500
}
{
"Id": 625731,
"StatusMessage": "Project 62573 does not exist",
"StatusCode": 500
}
{
"Id": 625731,
"StatusMessage": "Account 4019 does not exist",
"StatusCode": 500
}
Insert Project SprintPOST/Projects/{ProjectId}/Sprints/
Example URI
- ProjectId
int
(required) Example: 62573
Headers
Content-Type: application/json
Token: [token]
Body
{
"Name": "Sprint 2",
"Description": "Test Sprint 2",
"StartDate": "2022-08-09T10:18:23.072Z",
"EndDate": "2022-08-09T10:18:23.072Z",
"Type": "1",
"IsService": false
}
200
Headers
Content-Type: application/json
Body
{
"Id": 0,
"StatusMessage": "Sprint inserted successfully",
"StatusCode": 201,
"OtherDetails": {
"Id": "014eb417-2aab-444b-b4e2-a5eba73aae5d"
}
}
400
Headers
Content-Type: application/json
Body
{
"Id": 0,
"StatusMessage": "Please enter sprint name.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Project 625732 does not exist",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Account 4019 does not exist",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Update Project SprintPATCH/Projects/{ProjectId}/Sprints/{SprintId}
Example URI
- ProjectId
int
(required) Example: 62573- SprintId
string
(required) Example: 83338240-51d4-4c0f-b764-c8a7876a156a
Headers
Content-Type: application/json
Token: [token]
Body
{
"Name": "Sprint 1",
"Description": "Test Sprint",
"StartDate": "2022-08-09T10:18:23.072Z",
"EndDate": "2022-08-12T10:18:23.072Z",
"Type": "1",
"IsService": false
}
200
Headers
Content-Type: application/json
Body
{
"Id": 0,
"StatusMessage": "Sprint updated successfully",
"StatusCode": 200,
"OtherDetails": {
"Id": "83338240-51d4-4c0f-b764-c8a7876a156a"
}
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
500
Headers
Content-Type: application/json
Body
{
"Id": 0,
"StatusMessage": "Sprint 83338240-51d4-4c0f-b764-c8a7876a157a does not exist",
"StatusCode": 500
}
{
"Id": 0,
"StatusMessage": "Account 4019 does not exist",
"StatusCode": 500
}
{
"Id": 0,
"StatusMessage": "Project 62573 does not exist",
"StatusCode": 500
}
Delete Project SprintDELETE/Projects/{ProjectId}/Sprints/{SprintId}
Example URI
- ProjectId
int
(required) Example: 62573- SprintId
string
(required) Example: 83338240-51d4-4c0f-b764-c8a7876a156a
200
Headers
Content-Type: application/json
Body
{
"Id": 0,
"StatusMessage": "Sprint deleted successfully.",
"StatusCode": 200
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Allocate Task to Sprint ¶
Allocate Task to SprintPOST/Projects/{ProjectId}/Sprints/{SprintId}/Allocate/{TaskId}
Example URI
- ProjectId
int
(required) Example: 62573- SprintId
string
(required) Example: 83338240-51d4-4c0f-b764-c8a7876a156a- TaskId
int
(required) Example: 1540840
200
Headers
Content-Type: application/json
Body
{
"Id": 0,
"StatusMessage": "Sprint allocated successfully.",
"StatusCode": 200
}
400
Headers
Content-Type: application/json
Body
{
"Id": 0,
"StatusMessage": "Sprint 83338240-51d4-4c0f-b764-c8a7876a157a does not exists.",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "An archived task cannot be allocated to a sprint.",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Summary tasks and milestones cannot be allocated to a sprint.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Allocate Task to Sprint ¶
Bulk Allocate Task to SprintPOST/Projects/{ProjectId}/Sprints/{SprintId}/Allocate
Example URI
- ProjectId
int
(required) Example: 62573- SprintId
string
(required) Example: 83338240-51d4-4c0f-b764-c8a7876a156a
Headers
Content-Type: application/json
Token: [token]
Body
{
"TaskIds": [
1540840
]
}
200
Headers
Content-Type: application/json
Body
{
"StatusCode": 200
}
400
Headers
Content-Type: application/json
Body
{
"Id": 0,
"StatusMessage": "Sprint 83338240-51d4-4c0f-b764-c8a7876a157a does not exists.",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "An archived task cannot be allocated to a sprint.",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Summary tasks and milestones cannot be allocated to a sprint.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Get Allocated Tasks For Sprint ¶
Get Allocated Tasks For SprintGET/Projects/{ProjectId}/AllocatedTasks/{SprintId}
Example URI
- ProjectId
int
(required) Example: 62573- SprintId
string
(required) Example: 83338240-51d4-4c0f-b764-c8a7876a156a
200
Headers
Content-Type: application/json
Body
{
"total": 2,
"pagerid": "94a01846-4955-4529-afe3-0b533e8d7267",
"page": 0,
"pageSize": 2,
"list": [
{
"Status": {
"Id": 140204,
"Name": "New subcolumn 0",
"KanbanId": 38818,
"Color": "#fabe3c",
"Order": 0,
"Date": "2022-07-25T11:23:38Z",
"Type": {
"Id": 1,
"Name": "In Progress",
"IsArchive": false,
"IsBacklog": false
},
"Default": false,
"LanguageId": 0,
"AutomaticProgress": false,
"ParentKanbanTaskStatusId": 0
},
"Swimlane": {
"Id": 7842,
"Name": "Default"
},
"Id": 1540839,
"JiraId": 0,
"ProjectId": 62573,
"No": "",
"Name": "pen",
"Details": "",
"KindId": 3,
"RevenueMilestone": false,
"Type": null,
"Priority": null,
"ParentTask": null,
"Duration": 0,
"StartDate": "2022-07-25T00:00:00Z",
"EndDate": "",
"DisplayInPortfolio": false,
"Sprint": null,
"FavouriteId": -1
},
{
"Status": {
"Id": 140204,
"Name": "New subcolumn 0",
"KanbanId": 38818,
"Color": "#fabe3c",
"Order": 0,
"Date": "2022-09-29T16:59:45Z",
"Type": {
"Id": 1,
"Name": "In Progress",
"IsArchive": false,
"IsBacklog": false
},
"Default": false,
"LanguageId": 0,
"AutomaticProgress": false,
"ParentKanbanTaskStatusId": 0
},
"Swimlane": {
"Id": 7842,
"Name": "Default"
},
"Id": 1540840,
"JiraId": 0,
"ProjectId": 62573,
"No": "",
"Name": "in prog",
"Details": "",
"KindId": 3,
"RevenueMilestone": false,
"Type": null,
"Priority": null,
"ParentTask": null,
"Duration": 0,
"StartDate": "2022-07-25T00:00:00Z",
"EndDate": "",
"DisplayInPortfolio": false,
"Sprint": null,
"FavouriteId": -1
}
]
}
400
Headers
Content-Type: application/json
Body
{
"Id": 0,
"StatusMessage": "Sprint 83338240-51d4-4c0f-b764-c8a7876a157a does not exists.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Project Professional Categories ¶
Project Professional Categories ¶
Get Project Professional CategoriesGET/Projects/{ProjectId}/Categories
Example URI
- ProjectId
int
(required) Example: 55711
200
Headers
Content-Type: application/json
Body
[
{
"ProjectId": 55711,
"ProfessionalCategoryId": 19874,
"Category": {
"Name": "General",
"Type": "NoCategory"
},
"StandardBillRate": {
"Amount": 0,
"CurrencyId": 0,
"ExchangeRate": 0,
"AppliedDate": "",
"BaseAmount": 700
},
"ProjectProfessionalCategoryPriceId": 0,
"IsCategoryAssociatedWithTaskOrUser": false
},
{
"ProjectId": 55711,
"ProfessionalCategoryId": 19873,
"Category": {
"Id": 4681,
"Name": "Default delete502",
"Type": "Employee"
},
"StandardBillRate": {
"Amount": 0,
"CurrencyId": 4145,
"ExchangeRate": 1,
"AppliedDate": "",
"BaseAmount": 50
},
"ProjectProfessionalCategoryPriceId": 0,
"IsCategoryAssociatedWithTaskOrUser": true
},
{
"ProjectId": 55711,
"ProfessionalCategoryId": 124097,
"Category": {
"Id": 27501,
"Name": "Mangement",
"Type": "Employee"
},
"StandardBillRate": {
"Amount": 0,
"CurrencyId": 4145,
"ExchangeRate": 1,
"AppliedDate": "",
"BaseAmount": 100
},
"ProjectProfessionalCategoryPriceId": 0,
"IsCategoryAssociatedWithTaskOrUser": true
},
{
"ProjectId": 55711,
"ProfessionalCategoryId": 98000,
"Category": {
"Id": 21687,
"Name": "Brand New Category(UIX)",
"Type": "Employee"
},
"StandardBillRate": {
"Amount": 0,
"CurrencyId": 4145,
"ExchangeRate": 1,
"AppliedDate": "",
"BaseAmount": 100
},
"ProjectProfessionalCategoryPriceId": 0,
"IsCategoryAssociatedWithTaskOrUser": true
}
]
400
Headers
Content-Type: application/json
Body
{
"Id": 0,
"StatusMessage": "Project does not exist.<br/>",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Associate Professional Categories To ProjectPUT/Projects/{ProjectId}/Categories
Example URI
- ProjectId
int
(required) Example: 55711
200
Headers
Content-Type: application/json
Body
{
"Id": 55711,
"StatusMessage": "Categories Linked to Project sucessfully",
"StatusCode": 200
}
400
Headers
Content-Type: application/json
Body
{
"Id": 0,
"StatusMessage": "Project does not exist.<br/>",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Associate Professional Category To Project ¶
Associate Professional Category To ProjectPATCH/Projects/{ProjectId}/Category
Example URI
- ProjectId
int
(required) Example: 55711
Headers
Content-Type: application/json
Token: [token]
Body
{
"CategoryId": 21687,
"CategoryType": 2
}
200
Headers
Content-Type: application/json
Body
{
"Id": 55711,
"StatusMessage": "Categories Linked to Project sucessfully",
"StatusCode": 200
}
400
Headers
Content-Type: application/json
Body
{
"Id": 0,
"StatusMessage": "Project does not exist.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Professional Category 0 is invalid.<br/>",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Insert Professional Category And Price To ProjectPOST/Projects/{ProjectId}/Category
Example URI
- ProjectId
int
(required) Example: 55711
Headers
Content-Type: application/json
Token: [token]
Body
{
"CategoryId": 19874,
"CategoryType": 2,
"PricePerHour": 300
}
200
Headers
Content-Type: application/json
Body
{
"Id": 55711,
"StatusMessage": "Categories Linked to Project sucessfully",
"StatusCode": 200
}
400
Headers
Content-Type: application/json
Body
{
"Id": 0,
"StatusMessage": "Project does not exist.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Professional Category 0 is invalid.<br/>",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Professional Category Price ¶
Update Professional Category PricePATCH/Projects/{ProjectId}/Categories/{ProfessionalCategoryId}/Price
Example URI
- ProjectId
int
(required) Example: 55711- ProfessionalCategoryId
int
(required) Example: 97999
Headers
Content-Type: application/json
Token: [token]
Body
{
"PricePerHour": 250
}
200
Headers
Content-Type: application/json
Body
{
"Id": 97999,
"StatusMessage": "Price Updated sucessfully",
"StatusCode": 200
}
400
Headers
Content-Type: application/json
Body
{
"Id": 0,
"StatusMessage": "Project does not exist.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Professional Category 0 is invalid.<br/>",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Delete Professional Category PriceDELETE/Projects/{ProjectId}/Categories/{ProfessionalCategoryId}/Price
Example URI
- ProjectId
int
(required) Example: 55711- ProfessionalCategoryId
int
(required) Example: 97999
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
"Id": 97999,
"StatusMessage": "Price Deleted sucessfully.",
"StatusCode": 200
}
400
Headers
Content-Type: application/json
Body
{
"Id": 0,
"StatusMessage": "Project does not exist.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Professional Category 0 is invalid.<br/>",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Account Professional Categories ¶
GetAccount Professional CategoriesGET/ProfessionalCategories
Example URI
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
[
{
"Id": 19872,
"Name": "Default delete502"
},
{
"Id": 23474,
"Name": "Software Engineer"
}
]
400
Headers
Content-Type: application/json
Body
{
"Id": 0,
"StatusMessage": "Project does not exist.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Professional Category 0 is invalid.<br/>",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Tasks ¶
Get Tasks v2 ¶
Get Tasks v2POST/tasks/search
Example URI
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
"total": 7,
"pagerid": "7f2710ea-9ee7-405e-bae2-3552ebf52ed8",
"page": 1,
"pageSize": 2,
"list": [
{
"StartDate": "2020-07-30T00:00:00Z",
"EndDate": "2020-08-21T00:00:00Z",
"Id": 1181502,
"ProjectId": 52265,
"IdWithinEntity": 1,
"Name": "ST1",
"KindId": 2,
"Category": "Summary",
"Type": null,
"Status": {
"Name": "To Do"
},
"Priority": null,
"ParentTask": null,
"Duration": 20,
"Sprint": {
"Name": "Sprint 5"
},
"AllCustomFields": {
"Number Field 2": null,
"RYG list two 6": null,
"Cust HTML 5": null,
"Percentage field test": null,
"Date one 4": null,
"List One 8": null,
"List two 8": null,
"Text field 1": null,
"Dropdwon field 7": null,
"testing for Hide/Show 123": null,
"Tests date": null
}
},
{
"StartDate": "2020-08-07T00:00:00Z",
"EndDate": "2020-08-22T00:00:00Z",
"Id": 1181507,
"ProjectId": 52265,
"IdWithinEntity": 6,
"Name": "ST2",
"KindId": 2,
"Category": "Summary",
"Type": null,
"Status": {
"Name": "To Do"
},
"Priority": null,
"ParentTask": null,
"Duration": 14,
"Sprint": null,
"AllCustomFields": {
"Number Field 2": null,
"RYG list two 6": null,
"Cust HTML 5": null,
"Percentage field test": null,
"Date one 4": null,
"List One 8": null,
"List two 8": null,
"Text field 1": null,
"Dropdwon field 7": null,
"testing for Hide/Show 123": null,
"Tests date": null
}
}
]
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
⚠ Project Tasks v1 ¶
⚠ Get project tasks v1GET/project/{ProjectId}/tasks
DEPRECATED
This endpoint accepts Group Filtering v1. The parameters this filter accepts are:
-
TaskId
-
TaskKindId
-
TaskName
-
TaskNo
-
TaskType.TaskTypeName
-
TaskType.TaskTypeId
-
TaskStatus.TaskStatusName
-
TaskStatus.TaskStatusId
-
TaskPriority.TaskPriorityName
-
TaskPriority.TaskPriorityId
-
TaskStartDate
-
TaskEndDate
-
ParentTask.ParentTaskId
-
ParentTask.ParentTaskName
-
TaskCategory
-
TaskDuration
-
Efforts.EstEffort
-
Efforts.ActEffort
-
TaskProgressDate
-
OverAllocation
-
Assessment.AssessmentName
-
Assessment.AssessmentId
-
Completed
-
Expected
-
Deviation
-
BaselineStart
-
BaselineEnd
-
DisplayInPortfolio
-
Costs.ActualCost
-
Costs.PlannedCost
-
Revenues.PlannedRevenue
-
Revenues.ActualRevenue
-
SwimlaneName.SwimlaneName
-
SwimlaneName.SwimlaneId
-
SwimlaneName.SwimlaneId
-
IsServices
-
IsActivity
-
MemberName
Example URI
- ProjectId
string
(required) Example: 331
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
[
{
"ProjectId": 331,
"TaskId": 20441,
"TaskKindId": 3,
"TaskName": "2.0 Capacitacion Manejo",
"TaskNo": "T-331-13100001",
"TaskType": {
"TaskTypeId": 9846,
"TaskTypeName": "Generic"
},
"TaskStatus": {
"TaskStatusId": 8119,
"TaskStatusName": "Completed12554"
},
"TaskPriority": {
"TaskPriorityId": 7621,
"TaskPriorityName": "Normal"
},
"TaskStartDate": "2009-10-01T00:00:00Z",
"TaskEndDate": "2013-12-30T00:00:00Z",
"TaskProgressDate": "2017-08-23T17:48:22Z",
"BaselineStart": "2009-10-01T00:00:00Z",
"BaselineEnd": "2013-12-30T00:00:00Z",
"TaskTeam": {
"TaskManagers": [
{
"UserId": 1688,
"EmailAddress": "torel@globalcorp360.com",
"DisplayName": "Travis Orellana"
}
],
"TaskTeamMembers": [
{
"UserId": 1686,
"EmailAddress": "major.wyman@globalcorp360.com",
"DisplayName": "Major Wyman"
}
]
},
"ParentTask": {
"ParentTaskId": 148964,
"ParentTaskName": "summary task"
},
"TaskCategory": "Task",
"TaskDuration": 1108,
"OverAllocation": true,
"Assessment": {
"AssessmentName": "Good",
"AssessmentId": 3009,
"AssessmentIcon": "https://app.itmplatform.com/UploadData/Iconlibrary/icon_notepad.png"
},
"Completed": 56,
"Expected": 100,
"Deviation": -44,
"DisplayInPortfolio": true,
"IsDocumentAttached": 1,
"IsTaskManager": false,
"IsServices": false,
"IsActivity": false,
"AllCustomFields": {
"number field": 123
}
}
]
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Project Tasks v2 ¶
Get project tasks v2GET/Projects/{ProjectId}/tasks
Example URI
- ProjectId
string
(required) Example: 43407
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
"total": 2,
"pagerid": "f4bf9f1f-b44c-4d3a-8beb-b40dac1a888a",
"page": 1,
"pageSize": 50,
"list": [
{
"StartDate": "",
"EndDate": "",
"Id": 1190311,
"ProjectId": 43407,
"IdWithinEntity": 25,
"Name": "testsummary",
"KindId": 2,
"Category": "Summary",
"Status": {
"Name": "To Do"
},
"CreationDate": "2021-05-11T16:48:36Z",
"Team": {
"TeamMembers": []
},
"Completed": 0,
"Sprint": {
"Name": "Sprint 5"
},
"AllCustomFields": {
"Number Field 2": null,
"RYG list two 6": null,
"Cust HTML 5": null,
"Percentage field test": null,
"Date one 4": null,
"List One 8": null,
"List two 8": null,
"Text field 1": null,
"Dropdwon field 7": null,
"testing for Hide/Show 123": null,
"Tests date": null
}
},
{
"StartDate": "2020-09-01T00:00:00Z",
"EndDate": "2021-09-04T00:00:00Z",
"Id": 1190323,
"ProjectId": 43407,
"IdWithinEntity": 27,
"Name": "Test order summary",
"KindId": 2,
"Category": "Summary",
"Status": {
"Name": "To Do"
},
"CreationDate": "2021-05-18T18:10:52Z",
"Team": {
"TeamMembers": []
},
"Completed": 25,
"Sprint": null,
"AllCustomFields": {
"Number Field 2": null,
"RYG list two 6": null,
"Cust HTML 5": null,
"Percentage field test": null,
"Date one 4": null,
"List One 8": null,
"List two 8": null,
"Text field 1": null,
"Dropdwon field 7": null,
"testing for Hide/Show 123": null,
"Tests date": null
}
}
]
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Project Task Search ¶
Get Project Tasks SearchPOST/Projects/{ProjectId}/Tasks/Search
Example URI
- ProjectId
string
(required) Example: 43407
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
"total": 7,
"pagerid": "7f2710ea-9ee7-405e-bae2-3552ebf52ed8",
"page": 1,
"pageSize": 2,
"list": [
{
"StartDate": "2020-07-30T00:00:00Z",
"EndDate": "2020-08-21T00:00:00Z",
"Id": 1181502,
"ProjectId": 52265,
"IdWithinEntity": 1,
"Name": "ST1",
"KindId": 2,
"Category": "Summary",
"Status": {
"Name": "To Do"
},
"CreationDate": "2020-08-07T16:06:46Z",
"Team": {
"TeamMembers": []
},
"Completed": 33,
"Sprint": {
"Name": "Sprint 5"
},
"AllCustomFields": {
"Number Field 2": null,
"RYG list two 6": null,
"Cust HTML 5": null,
"Percentage field test": null,
"Date one 4": null,
"List One 8": null,
"List two 8": null,
"Text field 1": null,
"Dropdwon field 7": null,
"testing for Hide/Show 123": null,
"Tests date": null
}
},
{
"StartDate": "2020-08-07T00:00:00Z",
"EndDate": "2020-08-22T00:00:00Z",
"Id": 1181507,
"ProjectId": 52265,
"IdWithinEntity": 6,
"Name": "ST2",
"KindId": 2,
"Category": "Summary",
"Status": {
"Name": "To Do"
},
"CreationDate": "2020-08-07T17:24:13Z",
"Team": {
"TeamMembers": []
},
"Completed": 45,
"Sprint": null,
"AllCustomFields": {
"Number Field 2": null,
"RYG list two 6": null,
"Cust HTML 5": null,
"Percentage field test": null,
"Date one 4": null,
"List One 8": null,
"List two 8": null,
"Text field 1": null,
"Dropdwon field 7": null,
"testing for Hide/Show 123": null,
"Tests date": null
}
}
]
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Gantt ¶
Get GanttGET/Projects/{ProjectId}/Tasks/Gantt
Example URI
- ProjectId
string
(required) Example: 43407
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
"success": true,
"type": "sync",
"revision": 1,
"project": {
"calendar": "general",
"startDate": "2019-07-08",
"endDate": "2022-09-04",
"progressModel": "DURATION",
"percentDone": 26,
"hoursPerDay": 8,
"daysPerWeek": 5,
"daysPerMonth": 20,
"manuallyScheduled": false
},
"calendars": {
"rows": [
{
"id": "general",
"name": "General",
"hoursPerDay": 8,
"daysPerWeek": 5,
"daysPerMonth": 20,
"intervals": [
{
"recurrentStartDate": "on Sun at 8:00",
"recurrentEndDate": "on Mon at 8:00",
"isWorking": false
},
{
"recurrentStartDate": "on Mon at 16:00",
"recurrentEndDate": "on Tue at 8:00",
"isWorking": false
}
],
"expanded": true
}
]
},
"tasks": {
"rows": [
{
"id": 1190311,
"name": "testsummary",
"status": "To Do",
"duration": 0,
"sprint": "",
"percentDone": 0,
"calendar": "general",
"effort": 0,
"baselines": [
{
"startDate": "0001-01-01",
"endDate": "0001-01-01"
}
],
"schedulingMode": "Normal",
"effortDriven": false,
"manuallyScheduled": false,
"constraintType": "",
"rollup": false
},
{
"id": 1190323,
"name": "Test order summary",
"status": "To Do",
"startDate": "2020-09-01",
"endDate": "2021-09-04",
"sprint": "Sprint 1",
"duration": 315,
"percentDone": 25,
"calendar": "general",
"effort": 0,
"baselines": [
{
"startDate": "2020-09-01",
"endDate": "2021-09-04"
}
],
"schedulingMode": "Normal",
"effortDriven": false,
"manuallyScheduled": false,
"constraintType": "startnoearlierthan",
"constraintDate": "2020-09-01",
"rollup": false,
"children": [
{
"id": 1190324,
"name": "Test order task1",
"status": "To Do",
"startDate": "2020-09-01",
"endDate": "2021-09-04",
"sprint": "",
"duration": 315,
"percentDone": 0,
"calendar": "general",
"effort": 0,
"baselines": [
{
"startDate": "2020-09-01",
"endDate": "2021-09-04"
}
],
"schedulingMode": "Normal",
"effortDriven": false,
"manuallyScheduled": false,
"constraintType": "",
"rollup": false
},
{
"id": 1190326,
"name": "test order task 3",
"status": "To Do",
"startDate": "2020-09-01",
"endDate": "2020-09-03",
"sprint": "",
"duration": 3,
"percentDone": 0,
"calendar": "general",
"effort": 0,
"baselines": [
{
"startDate": "2020-09-01",
"endDate": "2020-09-03"
}
],
"schedulingMode": "Normal",
"effortDriven": false,
"manuallyScheduled": false,
"constraintType": "",
"rollup": false
},
{
"id": 1180467,
"name": "This Task",
"status": "Completed",
"startDate": "2020-09-01",
"endDate": "2020-09-04",
"sprint": "Sprint 2",
"duration": 4,
"percentDone": 70,
"lockStatus": "locked",
"calendar": "general",
"effort": 8,
"baselines": [
{
"startDate": "2020-09-01",
"endDate": "2020-09-04"
}
],
"schedulingMode": "Normal",
"effortDriven": false,
"manuallyScheduled": true,
"constraintType": "",
"rollup": false
},
{
"id": 1190325,
"name": "Test order task2",
"status": "Completed",
"startDate": "2020-09-01",
"endDate": "2020-09-02",
"sprint": "",
"duration": 2,
"percentDone": 0,
"lockStatus": "locked",
"calendar": "general",
"effort": 0,
"baselines": [
{
"startDate": "2020-09-01",
"endDate": "2020-09-02"
}
],
"schedulingMode": "Normal",
"effortDriven": false,
"manuallyScheduled": true,
"constraintType": "",
"rollup": false
}
]
}
]
},
"dependencies": {
"rows": [
{
"id": 465629,
"fromTask": 1179393,
"toTask": 1031678,
"type": 2,
"lag": "0",
"lagUnit": "day"
},
{
"id": 460878,
"fromTask": 1180468,
"toTask": 1179392,
"type": 2,
"lag": "0",
"lagUnit": "d"
}
]
},
"resources": {
"rows": [
{
"id": 7489,
"name": "Girish Tank",
"image": "UploadData\\PHOTO\\32by32_7489.jpg",
"calendar": "general"
},
{
"id": 49842,
"name": "Darshi Shah",
"image": "",
"calendar": "general"
}
]
},
"assignments": {
"rows": [
{
"id": 640822,
"event": 1031678,
"resource": 7489,
"effort": 5,
"units": 100
},
{
"id": 645182,
"event": 1031678,
"resource": 47477,
"effort": 15,
"units": 100
}
]
},
"timeRanges": {
"rows": []
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Update GanttPOST/Projects/{ProjectId}/Tasks/Gantt
Example URI
- ProjectId
string
(required) Example: 43407
Headers
Content-Type: application/json
Token: [token]
Body
{
"type": "sync",
"requestId": 16097428391411,
"tasks": {
"removed": [
{
"id": 1179392
}
]
}
}
200
Headers
Content-Type: application/json
Body
{
"success": true,
"requestId": 16097428391411,
"type": "sync",
"revision": null,
"tasks": {
"rows": []
},
"dependencies": {
"rows": []
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"success": false,
"responseText": "1179392: Task doesn't exists. "
}
{
"success": false,
"responseText": "Project doesn't exist. "
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Gantt Progress ¶
Insert Automatic ProgressPOST/Projects/{ProjectId}/ganttprogress/{PercentDone}
Example URI
- ProjectId
string
(required) Example: 43407- PercentDone
string
(required) Example: 50
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
"success": true
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Change Task status ¶
Change Task status to BacklogPOST/Projects/{ProjectId}/Tasks/{TaskId}/Backlog
Example URI
- ProjectId
string
(required) Example: 43407- TaskId
string
(required) Example: 1190324
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
"Id": 1190324,
"StatusMessage": "Task status updated successfully.",
"StatusCode": 200
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Change Task status ¶
Change Task status to ArchivePOST/Projects/{ProjectId}/Tasks/{TaskId}/Archive
Example URI
- ProjectId
string
(required) Example: 43407- TaskId
string
(required) Example: 1179390
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
"Id": 1179390,
"StatusMessage": "Task status updated successfully.",
"StatusCode": 200
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Update Task Statuses ¶
Bulk Update Task StatusPOST/Projects/{ProjectId}/UpdateTaskStatuses/{StatusName}
Example URI
- ProjectId
string
(required) Example: 62573- StatusName
string
(required) Example: In Progress
Headers
Content-Type: application/json
Token: [token]
Body
{
"TaskIds": "1179390"
}
200
Headers
Content-Type: application/json
Body
{
"Id": 1540838,
"StatusMessage": "Task status updated successfully.",
"StatusCode": 200
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
⚠ Task v1 ¶
⚠ Add a task v1POST/project/{ProjectId}/task/
DEPRECATED
Adds a task. Please note that you should use different syntaxes for waterfall and agile projects.
Example URI
- ProjectId
int
(required) Example: 168
Headers
Content-Type: application/json
Token: [token]
Body
"For waterfall tasks"
{
"TaskName":"Task From API",
"ParentTaskId":"0",
"TaskTypeName":"Documentation",
"TaskStatusName":"Completed",
"TaskPriorityName":"High",
"TaskStartDate":"2017-01-01T00:00:00Z",
"TaskEndDate":"2017-01-02T00:00:00Z",
"TaskManagers":"",
"TaskMembers":"",
"TaskTypeId" :124,
"TaskStatusId" :145,
"TaskPriorityId" : 123
}
"For agile tasks"
{
"TaskName":"agile task",
"TaskTypeName":"Documentation",
"Column":"New subcolumn 12",
"SwimlaneName":"Default",
"TaskPriorityName":"High",
"TaskStartDate":"2017-01-01T00:00:00Z",
"TaskEndDate":"2017-01-02T00:00:00Z",
"TaskManagers":"",
"TaskMembers":"",
"TaskStatusName": "To Do",
"TaskTypeId" :124,
"TaskPriorityId" : 123
}
201
Headers
Content-Type: application/json
Body
{
"TaskId":20441,
"StatusMessage": "Task inserted successfully",
"StatusCode": 201,
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Project doesn't exist",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter task name",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter task priority",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter task type",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter valid task end date",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Task start date should be less then or equal to task end date",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter valid task type",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter valid task priority",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "{User Emails} are not valid users",
"StatusCode": 400
}
"For waterfall tasks"
{
"TaskId":0,
"StatusMessage": "Please enter task status",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter task start date",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter task end date",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter valid task status",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter valid parent task id",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter valid task start date",
"StatusCode": 400
}
"For agile tasks"
{
"TaskId":0,
"StatusMessage": "Please enter task column",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter swimlane name",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter valid agile task column",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter valid swimlane name",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
⚠ Update a task v1PUT/project/{ProjectId}/task/{?TaskId}
DEPRECATED
Updates a task. Please note that you should use different syntaxes for waterfall and agile projects.
Example URI
- ProjectId
int
(required) Example: 12262- TaskId
int
(required) Example: 346128
Headers
Content-Type: application/json
Token: [token]
Body
"For waterfall tasks"
{
"TaskName":"Task From API",
"ParentTaskId":"0",
"TaskTypeName":"Documentation",
"TaskStatusName":"Completed",
"TaskPriorityName":"High",
"TaskStartDate":"2017-01-01T00:00:00Z",
"TaskEndDate":"2017-01-02T00:00:00Z",
"TaskManagers":"",
"TaskMembers":"",
"TaskTypeId" :124,
"TaskStatusId" :145,
"TaskPriorityId" : 123
}
"For agile tasks"
{
"TaskName":"agile task",
"TaskTypeName":"Documentation",
"Column":"New subcolumn 12",
"SwimlaneName":"Default",
"TaskPriorityName":"High",
"TaskStartDate":"2017-01-01T00:00:00Z",
"TaskEndDate":"2017-01-02T00:00:00Z",
"TaskManagers":"",
"TaskMembers":"",
"TaskTypeId" :124,
"TaskPriorityId" : 123
}
200
Headers
Content-Type: application/json
Body
{
"TaskId": 346128,
"StatusMessage": "Task updated successfully",
"StatusCode": 200
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter valid project id",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Project doesn't exist",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Task doesn't exists",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter task name",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter task priority",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter task type",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter task end date",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter valid task start date",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter valid task end date",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Task start date should be less then or equal to task end date",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter valid task type",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter valid task priority",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "{User Emails} are not valid users",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "You cannot complete status because child tasks of this task are not completed",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Time entry already exists so you cannot change task parent",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Time entry already exists, therefore you cannot update task dates",
"StatusCode": 400
}
"For waterfall tasks"
{
"TaskId":0,
"StatusMessage": "Please enter task status",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter valid task status",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter valid parent task id",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter task start date",
"StatusCode": 400
}
"For agile tasks"
{
"TaskId":0,
"StatusMessage": "Please enter valid agile task column",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Please enter valid swimlane name",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
⚠ Delete a task v1DELETE/project/{ProjectId}/task/{?TaskId}
DEPRECATED
Example URI
- ProjectId
int
(required) Example: 331- TaskId
int
(required) Example: 12262
200
Headers
Content-Type: application/json
Body
{
"TaskId": 12262,
"StatusMessage": "Task deleted successfully",
"StatusCode": 200
}
400
Headers
Content-Type: application/json
Body
{
"TaskId":0,
"StatusMessage": "Cannot delete task, reference is already in use",
"StatusCode": 400
}
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Task doesn't exist",
"StatusCode": 400
}
{
"TaskId":0,
"StatusMessage": "Project doesn't exist",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
⚠ Get a task v1GET/project/{ProjectId}/task/{?TaskId}
DEPRECATED
Example URI
- ProjectId
int
(required) Example: 331- TaskId
int
(required) Example: 20441
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
"ProjectId": 331,
"TaskId": 20441,
"TaskNo": "T-331-13100001",
"TaskName": "2.0 Capacitacion Manejo",
"ParentTaskName": "summary task",
"TaskTypeName": "Generic",
"TaskTypeId": 9846,
"TaskStatusName": "Completed",
"TaskStatusId": 8119,
"TaskPriorityName": "Normal",
"TaskPriorityId": 7621,
"TaskDuration": 1108,
"TaskStartDate": "2009-10-01T00:00:00Z",
"TaskEndDate": "2013-12-30T00:00:00Z",
"DisplayInPortfolio": true,
"ParentTaskId": 148964,
"TaskCategory": "Task",
"TaskDetails": "description",
"TaskKindId": 3,
"SwimlaneName": "",
"Column": "",
"EstEffort": "128:00",
"ActEffort": "700:00",
"ActualEffortTimeEntry": "488:00",
"ActualCost": 35000,
"PlannedCost": 3706.5,
"PlannedRevenue": 100,
"ActualRevenue": 0,
"IsActivity": false
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Add a task v2 ¶
Add a task v2POST/Projects/{ProjectId}/Tasks
Example URI
- ProjectId
int
(required) Example: 43407
Headers
Content-Type: application/json
Token: [token]
Body
{
"Name": "tests",
"Details": "test",
"DisplayInPortfolio": true,
"TypeName": "Bug",
"PriorityName": "Medium",
"StatusName": "Doing",
"ParentId": "",
"SwimlaneName": "Swimlane default",
"StartDate": "2019-07-11",
"EndDate": "2019-07-15",
"SprintId": "56b24ea4-30cb-4037-966c-9e5bf02f3f85"
}
200
Headers
Content-Type: application/json
Body
{
"Id": 1193461,
"StatusMessage": "Task inserted successfully.",
"StatusCode": 200
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Task v2 ¶
Update a task v2PATCH/Projects/{ProjectId}/Tasks/{TaskId}
Example URI
- ProjectId
int
(required) Example: 43407- TaskId
int
(required) Example: 1193461
Headers
Content-Type: application/json
Token: [token]
Body
{
"Id": 1193461,
"ProjectId": 43407,
"Name": "Task 1 - Type task 123",
"Details": "test",
"DisplayInPortfolio": true,
"ParentId": "",
"KanbanId": "10701",
"SwimlaneName": "Swimlane default",
"StartDate": "2019-07-10",
"EndDate": "2019-07-11",
"SprintId": "123e4567-e89b-12d3-a456-426614174000"
"CustomField": [
{
"CustomFieldBaseId": 967,
"CustomFieldValue": "11",
"CustomFieldTypeName": "Number"
},
{
"CustomFieldBaseId": 4268,
"Options": [
{
"CustomFieldOptionId": 6590
}
],
"CustomFieldTypeName": "List"
}
]
}
200
Headers
Content-Type: application/json
Body
{
"Id": 1193461,
"StatusMessage": "Task updated successfully.",
"StatusCode": 200
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Bulk Delete tasks v2DELETE/Projects/{ProjectId}/Tasks/
Example URI
- ProjectId
int
(required) Example: 43407
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
"Id": 0,
"StatusMessage": "Task 1 - Type task 123: Task deleted successfully ",
"StatusCode": 200
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Get a TaskPOST/Projects/{ProjectId}/Tasks/{TaskId}
Example URI
- ProjectId
int
(required) Example: 43407- TaskId
int
(required) Example: 1190324
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
"Id": 1190324,
"ProjectId": 43407,
"No": "T-43407-21050004",
"Name": "Test order task1",
"Details": "testset",
"KindId": 3,
"RevenueMilestone": false,
"Type": {
"Id": 116322,
"Name": "Generic",
"Default": true
},
"Status": {
"Id": 77652,
"Name": "To Do",
"KanbanId": 0,
"Color": null,
"Order": 0,
"Date": null,
"Type": {
"Id": 2,
"Name": null
},
"Default": true,
"LanguageId": 1
},
"Priority": {
"Id": 303157,
"Name": "Medium",
"Default": true
},
"ParentTask": {
"Id": 1190323,
"Name": "Test order summary"
},
"Duration": 315,
"StartDate": "2020-09-01T00:00:00Z",
"EndDate": "2021-09-04T00:00:00Z",
"DisplayInPortfolio": false,
"Swimlane": null,
"FavouriteId": -1
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Task Team ¶
Get a task teamGET/project/{ProjectId}/task/{TaskId}/team/
Example URI
- ProjectId
int
(required) Example: 331- TaskId
int
(required) Example: 11334
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
[
{
"SrNo": "1",
"UserId": 1686,
"UserName": "jucli@globalcorp360.com",
"LastName": "Julio",
"FirstName": "Cline",
"ServiceAlias": "Julio Cline",
"UserId1": 1686,
"TaskUserId": 1415,
"ProjectUserId": 706,
"UserRole": "Manager",
"DepartmentName": "",
"PositionName": ""
},
{
"SrNo": "2",
"UserId": 1693,
"UserName": "stakeholder@globalcorp360.com",
"LastName": "User",
"FirstName": "New",
"ServiceAlias": "New User",
"UserId1": 1693,
"TaskUserId": 1531,
"ProjectUserId": 720,
"UserRole": "Manager",
"DepartmentName": "Asp.Net\\MVC\\MVC 2",
"PositionName": "SE"
}
]
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Delete a task teamDELETE/project/{ProjectId}/task/{TaskId}/team/{?TaskUserId}/
Example URI
- ProjectId
int
(required) Example: 331- TaskId
int
(required) Example: 123- TaskUserId
int
(required) Example: 2986
200
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Deleted Successfully",
"StatusCode": 200
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Cannot delete reference, Actual Effort Accepted is already entered",
"StatusCode": 400
}
{
"StatusMessage": "Cannot delete reference, already in time entry",
"StatusCode": 400
}
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Assign a task teamPOST/project/{ProjectId}/task/{TaskId}/team/{?ProjectUserIds}/{?TaskManager}
Assigns a task team.
TaskManager specifies that user is task manager or not.
Example URI
- ProjectId
int
(required) Example: 331- TaskId
int
(required) Example: 123- ProjectUserIds
string
(required) Example: 2345,345- TaskManager
bool
(required) Example: false
200
Headers
Content-Type: application/json
Body
{
"StatusMessage": "User Assigned successfully.",
"StatusCode": 200
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
⚠ Agile Task Statuses v1 ¶
⚠ Get agile task statuses v1GET/project/{ProjectId}/kanbantaskstatuses
DEPRECATED
Example URI
- ProjectId
int
(required) Example: 331
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
[
{
"KanbanTaskStatusId": 138,
"KanbanStatusName": "Analysis123",
"Order": 0,
"ParentKanbanTaskStatusId": 0,
"IsSelected": true,
"StatusLevel": 0,
"IsDisabled": false
},
{
"KanbanTaskStatusId": 160,
"KanbanStatusName": "Test",
"Order": 1,
"ParentKanbanTaskStatusId": 0,
"IsSelected": true,
"StatusLevel": 0,
"IsDisabled": false
}
]
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"StatusMessage": "Please enter agile project id",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Agile Task Statuses v2 ¶
Get agile task statuses v2GET/Projects/{ProjectId}/GetKanbanTaskStatus
Example URI
- ProjectId
int
(required) Example: 55713
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
[
{
"Id": 140204,
"Name": "Pendiente",
"KanbanId": 16864,
"Color": "",
"Order": 1,
"Date": "",
"Type": {
"Id": 1
},
"Default": false,
"LanguageId": 0
},
{
"Id": 140205,
"Name": "En curso",
"KanbanId": 16865,
"Color": "",
"Order": 2,
"Date": "",
"Type": {
"Id": 2
},
"Default": false,
"LanguageId": 0
},
{
"Id": 140206,
"Name": "completado",
"KanbanId": 16866,
"Color": "",
"Order": 3,
"Date": "",
"Type": {
"Id": 3
},
"Default": false,
"LanguageId": 0
},
{
"Id": 763398,
"Name": "Backlog",
"KanbanId": 16867,
"Color": "",
"Order": 0,
"Date": "",
"Type": {
"Id": 0
},
"Default": false,
"LanguageId": 0
},
{
"Id": 763399,
"Name": "Archivo",
"KanbanId": 16868,
"Color": "",
"Order": 4,
"Date": "",
"Type": {
"Id": 4
},
"Default": false,
"LanguageId": 0
}
]
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Get or Insert agile task statuses v2PATCH/Projects/{ProjectId}/GetKanbanTaskStatus
Example URI
- ProjectId
int
(required) Example: 55713
Headers
Content-Type: application/json
Token: [token]
Body
{
"Name": "Pendiente"
}
200
Headers
Content-Type: application/json
Body
{
"Id": 140204,
"Name": "Pendiente",
"KanbanId": 16864,
"Color": "",
"Order": 1,
"Date": "",
"Type": {
"Id": 1
},
"Default": false,
"LanguageId": 0
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Task Progress Reports ¶
Get task progress reportsGET/project/{ProjectId}/task/{TaskId}/progress/
This endpoint accepts Group Filtering v1. The parameters this filter accepts are:
-
TaskName
-
TaskProgressId
-
Assessment.AssessmentName
-
Assessment.AssesmentId
-
DetailDescription
-
ShortDescription
-
PercentageCompleted
-
ReportDate
Example URI
- ProjectId
int
(required) Example: 331- TaskId
int
(required) Example: 20441
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
[
{
"TaskProgressId": 12891,
"TaskId": 20441,
"TaskName": "2.0 Capacitacion Manejo",
"ProjectId": 331,
"Assessment": {
"AssessmentName": "Crítico",
"AssessmentId": 3011,
"AssessmentIcon": "https://app.itmplatform.com/App_Themes/Default/Images/Red.png"
},
"DetailDescription": "",
"ShortDescription": "dfdsf",
"PercentageCompleted": 56,
"ReportDate": "2017-06-28T15:13:22Z",
"CreatedBy": "Major Wyman",
"TaskManagers": [
{
"UserId": 1686,
"EmailAddress": "major.wyman@globalcorp360.com",
"DisplayName": "Major Wyman"
},
{
"UserId": 1693,
"EmailAddress": "JohnDoe@globalcorp360.com1",
"DisplayName": "John Doe"
}
]
}
]
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Task Progress Report ¶
Get a task progress reportGET/project/{ProjectId}/task/{TaskId}/progress/{TaskProgressId}
Example URI
- ProjectId
int
(required) Example: 331- TaskId
int
(required) Example: 20441- TaskProgressId
int
(required) Example: 12535
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
[
{
"TaskProgressId": 12876,
"TaskId": 20441,
"TaskName": "2.0 Capacitacion Manejo",
"ProjectId": 331,
"ReportDate": "2017-06-02T12:00:12Z",
"CreatedBy": "Peter Yi",
"AssessmentName": "No Critical 2",
"AssessmentPath": "https://app.itmplatform.com/UploadData/Iconlibrary/icon_notepad.png",
"AssesmentId": 3288,
"DetailDescription": "",
"ShortDescription": "new follow up",
"PercentageCompleted": 56,
"TaskManager": "Major Wyman,John Doe"
}
]
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Delete a task progress reportDELETE/project/{ProjectId}/task/{TaskId}/progress/{TaskProgressId}
Example URI
- ProjectId
int
(required) Example: 331- TaskId
int
(required) Example: 20441- TaskProgressId
int
(required) Example: 2338
200
Headers
Content-Type: application/json
Body
{
"TaskProgressId": 2338,
"StatusMessage": "Task progress deleted successfully",
"StatusCode": 200
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Project doesn't exist",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Task doesn't exist",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Task progress id doesn't exist",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
⚠ Add a task progress v1 reportPOST/project/{ProjectId}/task/{TaskId}/progress/
DEPRECATED
Adds a task progress.
Example URI
- ProjectId
int
(required) Example: 331- TaskId
int
(required) Example: 20441
Headers
Content-Type: application/json
Token: [token]
Body
{
"AssessmentId": 1234,
"DetailDescription": "details description",
"ShortDescription": "des",
"PercentageCompleted": 45,
"ReportDate": "2017-06-15T00:00:00Z"
}
201
Headers
Content-Type: application/json
Body
{
"TaskProgressId": 67,
"StatusMessage": "Task progress inserted successfully",
"StatusCode": 201
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Task does not exists",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Project does not exists.",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Please enter short description",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Please enter assesment id greater than 0",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Please enter valid assessment id",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Please enter report date",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Please enter valid report date",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Please enter percentage completed",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Percentage completed should be between 0 to 100",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
⚠ Update a task progress report v1PUT/project/{ProjectId}/task/{TaskId}/progress/{TaskProgressId}
Example URI
- ProjectId
int
(required) Example: 331- TaskId
int
(required) Example: 20441- TaskProgressId
int
(required) Example: 456
Headers
Content-Type: application/json
Token: [token]
Body
{
"AssessmentId": 67,
"DetailDescription": "details description",
"ShortDescription": "des",
"PercentageCompleted": 45,
"ReportDate": "2017-06-15T00:00:00Z"
}
201
Headers
Content-Type: application/json
Body
{
"TaskProgressId": 456,
"StatusMessage": "Task progress updated successfully",
"StatusCode": 201
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Task progress doesn't exist",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Task does not exists",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Project does not exists.",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Please enter short description",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Please enter assesment id greater than 0",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Please enter valid assessment id",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Please enter report date",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Please enter valid report date",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Please enter percentage completed",
"StatusCode": 400
}
{
"TaskProgressId": 0,
"StatusMessage": "Percentage completed should be between 0 to 100",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Task Progress Report v2 ¶
Add a task progress report v2POST/projects/{ProjectId}/tasks/{TaskId}/progress/
Example URI
- ProjectId
int
(required) Example: 331- TaskId
int
(required) Example: 20441
Headers
Content-Type: application/json
Token: [token]
Body
{
"AssessmentId": 1234,
"Description": "detailsdescription",
"ShortDescription": "des",
"Percentage": 45,
"ReportDate": "2017-06-15T00:00:00Z"
}
201
Headers
Content-Type: application/json
Body
{
"Id": 707463,
"StatusMessage": "Task progress inserted successfully.",
"StatusCode": 201
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Task does not exists.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Project does not exist.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Please enter short description.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Please enter assessment id greater than 0.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Please enter valid assessment id.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Please enter report date.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Please enter valid report date.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Please enter percentage completed.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Percentage completed should be between 0 to 100.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Please provide details of Progress Report.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Update a task progress report v2PATCH/projects/{ProjectId}/tasks/{TaskId}/progress/{TaskProgressId}
Example URI
- ProjectId
int
(required) Example: 331- TaskId
int
(required) Example: 20441- TaskProgressId
int
(required) Example: 456
Headers
Content-Type: application/json
Token: [token]
Body
{
{
"AssessmentId" : 67,
"Description" : "detailsdescription",
"ShortDescription": "des",
"Percentage" : 45,
"ReportDate" : "2017-06-15T00:00:00Z"
}
}
201
Headers
Content-Type: application/json
Body
{
{
"Id": 456,
"StatusMessage": "Task progress updated successfully.",
"StatusCode": 200
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Task does not exists.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Project does not exist.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Please enter short description.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Please enter assessment id greater than 0.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Please enter valid assessment id.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Please enter report date.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Please enter valid report date.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Please enter percentage completed.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Percentage completed should be between 0 to 100.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Please provide details of Progress Report.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Project task effort by professional category ¶
Get task effort by professional categoryGET/project/{ProjectId}/task/{TaskId}/effortbyprofessionalcategory
Example URI
- ProjectId
int
(required) Example: 331- TaskId
int
(required) Example: 20441
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
[
{
"Category": {
"MasterCategoryId": 403,
"CategoryId": 2895,
"CategoryName": "Software Engineer",
"CategoryTypeId": 3,
"CategoryTypeName": "External"
},
"IsAutomaticActualEffortAccepted": false,
"Efforts": {
"AssignedEffort": "20:00",
"UnAssignedEffort": "0:00",
"ActualEffortAccepted": "200:00",
"ActualEffortByTimeEntry": "0:00",
"TotalEstimatedEffort": "20:00"
},
"IsOverload": true,
"OverloadDate": "2012-12-10T00:00:00Z",
"IsDelete": true
},
{
"Category": {
"MasterCategoryId": 379,
"CategoryId": 2693,
"CategoryName": "Default One",
"CategoryTypeId": 2,
"CategoryTypeName": "Internal"
},
"IsAutomaticActualEffortAccepted": false,
"Efforts": {
"AssignedEffort": "20:00",
"UnAssignedEffort": "0:00",
"ActualEffortAccepted": "500:00",
"ActualEffortByTimeEntry": "476:00",
"TotalEstimatedEffort": "20:00"
},
"IsOverload": true,
"OverloadDate": "2012-12-10T00:00:00Z",
"IsDelete": true
}
]
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Task Effort by Team Member ¶
Get task effort work by team memberGET/project/{ProjectId}/task/{TaskId}/effortbyteammember
Example URI
- ProjectId
int
(required) Example: 331- TaskId
int
(required) Example: 20441
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
[
{
"Category": {
"MasterCategoryId": 379,
"CategoryId": 2693,
"CategoryName": "Default One",
"CategoryTypeId": 2,
"CategoryTypeName": "Internal"
},
"IsAutomaticActualEffortAccepted": false,
"Efforts": {
"ActualEffortAccepted": "500:00",
"ActualEffortByTimeEntry": "408:00",
"EstimatedEffort": "20:00"
},
"User": {
"UserId": 1686,
"EmailAddress": "major.wyman@globalcorp360.com",
"DisplayName": "Major Wyman"
},
"IsOverload": true,
"OverloadDate": "2012-12-28T00:00:00Z",
"TaskUserId": 1415,
"IsPECGeneratedByTask": false
},
{
"Category": {
"MasterCategoryId": 403,
"CategoryId": 2895,
"CategoryName": "Software Engineer",
"CategoryTypeId": 3,
"CategoryTypeName": "External"
},
"IsAutomaticActualEffortAccepted": false,
"Efforts": {
"ActualEffortAccepted": "200:00",
"ActualEffortByTimeEntry": "68:00",
"EstimatedEffort": "20:00"
},
"User": {
"UserId": 1693,
"EmailAddress": "JohnDoe@globalcorp360.com1",
"DisplayName": "John Doe"
},
"IsOverload": true,
"OverloadDate": "2012-12-10T00:00:00Z",
"TaskUserId": 1531,
"IsPECGeneratedByTask": false
}
]
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Task Effort Categories ¶
Add task effort categoriesPOST/project/{ProjectId}/task/{TaskId}/categories
Example URI
- ProjectId
int
(required) Example: 331- TaskId
int
(required) Example: 20441
Headers
Content-Type: application/json
Token: [token]
Body
[
{
"CategoryId": 379,
"CategoryType": "2"
}
]
201
Headers
Content-Type: application/json
Body
{
{
"StatusMessage": "Categories Inserted Successfully",
"StatusCode": 201
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"StatusMessage": "Error occurred while Inserting Categories",
"StatusCode": 400
}
{
"StatusMessage": "Category already inserted",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Task Effort Category ¶
Delete task effort categoryDELETE/project/{ProjectId}/task/{TaskId}/category/{CategoryId}
Example URI
- ProjectId
int
(required) Example: 331- TaskId
int
(required) Example: 20441- CategoryId
int
(required) Example: 379
Headers
Content-Type: application/json
Token: [token]
Body
{
{
"CategoryId": 602,
"CategoryType": "2"
}
}
200
Headers
Content-Type: application/json
Body
{
{
"StatusMessage": "Deleted Successfully",
"StatusCode": 200
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"StatusMessage": "Error occurred while Deleting",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Task Effort ¶
Update a task effortPUT/project/{ProjectId}/task/{TaskId}/effort
Updates a task Effort. Please note that you should use different syntaxes for waterfall and agile tasks.
Example URI
- ProjectId
int
(required) Example: 12262- TaskId
int
(required) Example: 20441
Headers
Content-Type: application/json
Token: [token]
Body
For waterfall Task
[
[
{
"TaskId": "22297",
"EstimatedHours": "0",
"EstimatedMins": 0
}
],
[
{
"TaskUserId": 1746,
"EstimatedHours": 0,
"EstimatedMins": 0,
"ActualEffortAcceptedHours": 20,
"ActualEffortAcceptedMins": 0,
"AutomaticActualEffortAccepted": false,
"TaskId": "22297"
},
{
"TaskUserId": 1747,
"EstimatedHours": 0,
"EstimatedMins": 0,
"ActualEffortAcceptedHours": 0,
"ActualEffortAcceptedMins": 0,
"AutomaticActualEffortAccepted": true,
"TaskId": "22297"
}
],
[{}],
[
{
"CategoryId": 403,
"CategoryType": 3,
"NonAssignedEffort": "0",
"NonAssignedEffortMins": 0,
"ActualEffortAcceptedHours": 0,
"ActualEffortAcceptedMins": 0,
"AutomaticActualEffortAccepted": true
}
]
]
For agile Task
[
[{}],
[
{
"TaskUserId": 7811,
"EstimatedHours": 200,
"EstimatedMins": 0,
"ActualEffortAcceptedHours": 100,
"ActualEffortAcceptedMins": 0,
"AutomaticActualEffortAccepted": false,
"TaskId": "146322"
},
{
"TaskUserId": 7812,
"EstimatedHours": 300,
"EstimatedMins": 0,
"ActualEffortAcceptedHours": 0,
"ActualEffortAcceptedMins": 0,
"AutomaticActualEffortAccepted": true,
"TaskId": "146322"
}
],
[
{
"TaskId": "146322",
"TaskEstHour": 500,
"TaskEstmin": 0
}
],
[{}]
]
200
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Updated Successfully",
"StatusCode": 200
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Task Dependencies ¶
Get task dependenciesGET/project/{ProjectId}/taskdependencies
Example URI
- ProjectId
int
(required) Example: 1070
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
<Links>
<Link>
<Id>42404</Id>
<From>153809</From>
<To>153811</To>
<Type>0</Type>
</Link>
<Link>
<Id>42405</Id>
<From>153810</From>
<To>153812</To>
<Type>0</Type>
</Link>
</Links>
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"StatusMessage": "Project doesn't exist",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Add task dependenciesPOST/project/{ProjectId}/taskdependencies
Example URI
- ProjectId
int
(required) Example: 1070
Headers
Content-Type: application/json
Token: [token]
Body
[
{
"FromTaskNo": null,
"ToTaskNo": null,
"From": 153809,
"To": 153811,
"Type": 0,
"Lag": "0",
"Cls": "",
"LagUnit": "d",
"Id": 0
},
{
"FromTaskNo": null,
"ToTaskNo": null,
"From": 153810,
"To": 153812,
"Type": 0,
"Lag": "0",
"Cls": "",
"LagUnit": "d",
"Id": 0
}
]
200
Headers
Content-Type: application/json
Body
[
{
"FromTaskNo": "",
"ToTaskNo": "",
"From": 153809,
"To": 153811,
"Type": 0,
"Lag": "0",
"Cls": "",
"LagUnit": "d",
"Id": 42402
},
{
"FromTaskNo": "",
"ToTaskNo": "",
"From": 153810,
"To": 153812,
"Type": 0,
"Lag": "0",
"Cls": "",
"LagUnit": "d",
"Id": 42403
}
]
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"StatusMessage": "Project doesn't exist",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Delete task dependenciesDELETE/project/{ProjectId}/taskdependencies
Example URI
- ProjectId
int
(required) Example: 1070
Headers
Content-Type: application/json
Token: [token]
Body
[
{
"FromTaskNo": null,
"ToTaskNo": null,
"From": 153809,
"To": 153811,
"Type": 0,
"Lag": "0",
"Cls": "",
"LagUnit": "d",
"Id": 0
},
{
"FromTaskNo": null,
"ToTaskNo": null,
"From": 153810,
"To": 153812,
"Type": 0,
"Lag": "0",
"Cls": "",
"LagUnit": "d",
"Id": 0
}
]
200
Headers
Content-Type: application/json
Body
{
'success': true
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"StatusMessage": "Project doesn't exist",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Task Baseline ¶
Add task baselinePOST/project/{ProjectId}/baseline
Example URI
- ProjectId
int
(required) Example: 1070
Headers
Content-Type: application/json
Token: [token]
Body
"
<ROOT>
<TaskBaseLine>
<intTaskId>153809</intTaskId>
<dtsBaselineStartDate>8/5/2017 0:0:0</dtsBaselineStartDate>
<dtsBaselineEndDate>9/5/2017 0:0:0</dtsBaselineEndDate>
</TaskBaseLine>
<TaskBaseLine>
<intTaskId>153811</intTaskId>
<dtsBaselineStartDate>8/5/2017 0:0:0</dtsBaselineStartDate>
<dtsBaselineEndDate>9/5/2017 0:0:0</dtsBaselineEndDate>
</TaskBaseLine>
<TaskBaseLine>
<intTaskId>153810</intTaskId>
<dtsBaselineStartDate>8/5/2017 0:0:0</dtsBaselineStartDate>
<dtsBaselineEndDate>9/5/2017 0:0:0</dtsBaselineEndDate>
</TaskBaseLine>
<TaskBaseLine>
<intTaskId>153812</intTaskId>
<dtsBaselineStartDate>8/5/2017 0:0:0</dtsBaselineStartDate>
<dtsBaselineEndDate>9/5/2017 0:0:0</dtsBaselineEndDate>
</TaskBaseLine>
</ROOT>
"
200
Headers
Content-Type: application/json
Body
{
"IsSuccess": true
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"StatusMessage": "Project doesn't exist",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Purchases ¶
Get Purchases ¶
Get PurchasesPOST/purchases/search
This endpoint accepts Group Filtering v2. The parameters this filter accepts are:
-
Name
-
Description
-
StatusName
-
StatusId
-
StatusDate
-
BudgetAccountName
-
TypeName
-
TypeId
-
DueDate
-
ProviderId
-
ProviderName
-
No
-
ProjectId
-
ActualAmount
-
ActualAmount.CurrencyId
-
ActualAmount.ExchangeRate
-
ActualAmount.AppliedDate
-
ActualAmount.BaseAmount
-
ProjectedAmount
-
ProjectedAmount.CurrencyId
-
ProjectedAmount.ExchangeRate
-
ProjectedAmount.AppliedDate
-
ProjectedAmount.BaseAmount
-
IsConsiderAsActualValue
-
IsDependOnTask
-
DependingOnTaskName
-
DependingOnTaskId
Example URI
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
"total": 8989,
"pagerid": "1cefead5-96f6-4d25-8486-0dacd358b27a",
"page": 1,
"pageSize": 10,
"list": [
{
"Amount": 0,
"StatusDate": "2021-09-29T15:41:20Z",
"FirstRecurrenceDate": "",
"DueDate": "2021-04-13T00:00:00Z",
"DependOnTaskDate": "",
"IsTaskAssociated": false,
"DependingOnTaskId": 1192786
},
{
"Amount": 0,
"StatusDate": "2019-11-07T09:47:38Z",
"FirstRecurrenceDate": "",
"DueDate": "2026-12-02T00:00:00Z",
"DependOnTaskDate": "",
"IsTaskAssociated": false,
"DependingOnTaskId": null
},
{
"Amount": 0,
"StatusDate": "2019-11-07T09:47:38Z",
"FirstRecurrenceDate": "",
"DueDate": "2027-01-01T00:00:00Z",
"DependOnTaskDate": "",
"IsTaskAssociated": false,
"DependingOnTaskId": null
},
{
"Amount": 0,
"StatusDate": "2021-08-30T00:00:00Z",
"FirstRecurrenceDate": "",
"DueDate": "2021-01-14T00:00:00Z",
"DependOnTaskDate": "",
"IsTaskAssociated": false,
"DependingOnTaskId": 1192304
},
{
"Amount": 0,
"StatusDate": "2021-05-30T00:00:00Z",
"FirstRecurrenceDate": "",
"DueDate": "2021-01-14T00:00:00Z",
"DependOnTaskDate": "",
"IsTaskAssociated": false,
"DependingOnTaskId": 1192776
},
{
"Amount": 0,
"StatusDate": "2021-09-24T18:36:11Z",
"FirstRecurrenceDate": "",
"DueDate": "2021-04-13T00:00:00Z",
"DependOnTaskDate": "",
"IsTaskAssociated": false,
"DependingOnTaskId": 1192599
},
{
"Amount": 0,
"StatusDate": "2020-04-27T18:12:26Z",
"FirstRecurrenceDate": "",
"DueDate": "2022-03-29T00:00:00Z",
"DependOnTaskDate": "",
"IsTaskAssociated": false,
"DependingOnTaskId": 1177194
},
{
"Amount": 0,
"StatusDate": "2021-01-09T00:00:00Z",
"FirstRecurrenceDate": "",
"DueDate": "2021-01-14T00:00:00Z",
"DependOnTaskDate": "",
"IsTaskAssociated": false,
"DependingOnTaskId": 1192739
},
{
"Amount": 0,
"StatusDate": "2017-12-23T00:00:00Z",
"FirstRecurrenceDate": "",
"DueDate": "2018-08-14T00:00:00Z",
"DependOnTaskDate": "",
"IsTaskAssociated": false,
"DependingOnTaskId": 599433
},
{
"Amount": 0,
"StatusDate": "2019-05-23T00:00:00Z",
"FirstRecurrenceDate": "",
"DueDate": "2020-01-12T00:00:00Z",
"DependOnTaskDate": "",
"IsTaskAssociated": false,
"DependingOnTaskId": 599433
}
]
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Project Purchases ¶
Get project purchasesGET/project/{ProjectId}/purchases
This endpoint accepts Group Filtering v1. The parameters this filter accepts are:
-
PurchaseName
-
Description
-
PurchaseStatus.PurchaseStatusName
-
PurchaseStatus.PurchaseStatusId
-
PurchaseStatus.StatusDate
-
BudgetAccount.BudgetAccountName
-
BudgetAccount.BudgetAccountId
-
PurchaseType.PurchaseTypeName
-
PurchaseType.PurchaseTypeId
-
DueDate
-
Provider.ProviderId
-
Provider.ProviderName
-
InvoiceNo
-
ProjectId
-
ActualAmountDetail.ActualAmount
-
ActualAmountDetail.ActualAmountCurrencyId
-
ActualAmountDetail.ActualAmountExchangeRate
-
ActualAmountDetail.ActualAmountChangeApplied
-
ActualAmountDetail.ActualAmountBase
-
ActualAmountDetail.ActualAmountCurrencySymbol
-
ActualAmountDetail.ActualAmountCurrencyAlphabeticCode
-
ProjectedAmountDetail.ProjectedAmount
-
ProjectedAmountDetail.ProjectedAmountCurrencyId
-
ProjectedAmountDetail.ProjectedAmountExchangeRate
-
ProjectedAmountDetail.ProjectedAmountChangeApplied
-
ProjectedAmountDetail.ProjectedAmountBase
-
ProjectedAmountDetail.ProjectedAmountCurrencyAlphabeticCode
-
DependingOnTask.DependingOnTaskName
-
DependingOnTask.DependingOnTaskId
Example URI
- ProjectId
string
(required) Example: 2338
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
[
{
"PurchaseId": 2338,
"AccountId": 1142,
"ProjectId": 331,
"PurchaseName": "ProjectPurchase",
"Description": "",
"PurchaseStatus": {
"PurchaseStatusName": "Not Approved",
"PurchaseStatusId": 7,
"PurchaseStatusIcon": "https://app.itmplatform.com/UploadData/Iconlibrary/flag--exclamation.png",
"StatusDate": "2017-03-21T00:00:00Z"
},
"BudgetAccount": {
"BudgetAccountName": " Account 1",
"BudgetAccountId": 461
},
"PurchaseType": {
"PurchaseTypeName": "Others",
"PurchaseTypeId": 3273,
"PurchaseTypeIcon": "https://app.itmplatform.com/UploadData/Iconlibrary/question.png"
},
"DueDate": "2009-10-01T00:00:00Z",
"Provider": {
"ProviderId": 97,
"ProviderName": "Google"
},
"InvoiceNo": "123",
"DependingOnTask": {
"DependingOnTaskName": "2.0 Capacitacion Manejo",
"DependingOnTaskId": 20441
},
"ActualAmountDetail": {
"ActualAmount": 0,
"ActualAmountCurrencyId": 1113,
"ActualAmountExchangeRate": 1,
"ActualAmountChangeApplied": "2017-07-05T10:01:42.950Z",
"ActualAmountBase": 0,
"ActualAmountCurrencySymbol": "$",
"ActualAmountCurrencyAlphabeticCode": "USD"
},
"ProjectedAmountDetail": {
"ProjectedAmount": 110,
"ProjectedAmountCurrencyId": 1113,
"ProjectedAmountExchangeRate": 1,
"ProjectedAmountChangeApplied": "2017-07-05T10:01:42.950Z",
"ProjectedAmountBase": 110,
"ProjectedAmountCurrencySymbol": "$",
"ProjectedAmountCurrencyAlphabeticCode": "USD"
},
"IsDocumentAttached": false
}
]
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Service purchases ¶
Get service purchasesGET/service/{ServiceId}/purchases
Retrieves service purchases.
This endpoint accepts Group Filtering v1. The parameters this filter accepts are:
-
PurchaseName
-
Description
-
PurchaseStatus.PurchaseStatusName
-
PurchaseStatus.PurchaseStatusId
-
PurchaseStatus.StatusDate
-
BudgetAccount.BudgetAccountName
-
BudgetAccount.BudgetAccountId
-
PurchaseType.PurchaseTypeName
-
PurchaseType.PurchaseTypeId
-
DueDate
-
Provider.ProviderId
-
Provider.ProviderName
-
InvoiceNo
-
ServiceId:(int)
-
ActualAmountDetail.ActualAmount
-
ActualAmountDetail.ActualAmountCurrencyId
-
ActualAmountDetail.ActualAmountExchangeRate
-
ActualAmountDetail.ActualAmountChangeApplied
-
ActualAmountDetail.ActualAmountBase
-
ActualAmountDetail.ActualAmountCurrencySymbol
-
ActualAmountDetail.ActualAmountCurrencyAlphabeticCode
-
ProjectedAmountDetail.ProjectedAmount
-
ProjectedAmountDetail.ProjectedAmountCurrencyId
-
ProjectedAmountDetail.ProjectedAmountExchangeRate
-
ProjectedAmountDetail.ProjectedAmountChangeApplied
-
ProjectedAmountDetail.ProjectedAmountBase
-
ProjectedAmountDetail.ProjectedAmountCurrencyAlphabeticCode
-
DependingOnActivity.DependingOnActivityName
-
DependingOnActivity.DependingOnActivityId
Example URI
- ServiceId
string
(required) Example: 2338
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
[
{
"PurchaseId": 2459,
"AccountId": 1142,
"ServiceId": 339,
"PurchaseName": "new purchase",
"Description": "",
"PurchaseStatus": {
"PurchaseStatusName": "Pending",
"PurchaseStatusId": 1,
"PurchaseStatusIcon": "https://app.itmplatform.com/UploadData/Iconlibrary/flag-yellow.png",
"StatusDate": "2017-06-19T00:00:00Z"
},
"BudgetAccount": {
"BudgetAccountName": "Test",
"BudgetAccountId": 315
},
"PurchaseType": {
"PurchaseTypeName": "Others",
"PurchaseTypeId": 3273,
"PurchaseTypeIcon": "https://app.itmplatform.com/UploadData/Iconlibrary/question.png"
},
"DueDate": "2017-06-19T00:00:00Z",
"Provider": null,
"InvoiceNo": "",
"DependingOnActivity": null,
"ActualAmountDetail": {
"ActualAmount": 0,
"ActualAmountCurrencyId": 1113,
"ActualAmountExchangeRate": 1,
"ActualAmountChangeApplied": "2017-07-05T10:03:40.310Z",
"ActualAmountBase": 0,
"ActualAmountCurrencySymbol": "$",
"ActualAmountCurrencyAlphabeticCode": "USD"
},
"ProjectedAmountDetail": {
"ProjectedAmount": 0,
"ProjectedAmountCurrencyId": 1113,
"ProjectedAmountExchangeRate": 1,
"ProjectedAmountChangeApplied": "2017-07-05T10:03:40.310Z",
"ProjectedAmountBase": 0,
"ProjectedAmountCurrencySymbol": "$",
"ProjectedAmountCurrencyAlphabeticCode": "USD"
},
"IsDocumentAttached": false
}
]
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
⚠ Project Purchase v1 ¶
⚠ Add project purchase v1POST/project/{ProjectId}/purchase/
DEPRECATED
Adds single or recurring project purchase. Please note that you should use different syntaxes for single and recurring purchases.
Example URI
- ProjectId
int
(required) Example: 331
Headers
Content-Type: application/json
Token: [token]
Body
"For single purchase"
{
{
"PurchaseName":"Test",
"Description":"123",
"PurchaseStatusId":1,
"StatusDate": "2017-07-05T00:00:00Z",
"PurchaseTypeId":0,
"DueDate" :"2017-07-05T00:00:00Z",
"ProviderId":0,
"InvoiceNo":"",
"BudgetAccountId":235,
"ActualAmount":100.00,
"ActualAmountCurrencyId":1113,
"ProjectedAmount":100.00,
"ProjectedAmountCurrencyId":1113,
"TaskDateGap":0,
"IsDependUponTaskStartDate":false,
"DependingOnTaskId":0
}
}
"For recurring purchases"
{
{
"PurchaseName":"Test",
"Description":"description",
"PurchaseStatusId":1,
"StatusDate": "2017-07-05T00:00:00Z",
"PurchaseTypeId":0,
"ProviderId":0,
"InvoiceNo":"",
"BudgetAccountId":235,
"ActualAmount":100.00,
"ActualAmountCurrencyId":1113,
"ProjectedAmount":100.00,
"ProjectedAmountCurrencyId":1113,
"TaskDateGap":0,
"IsDependUponTaskStartDate":false,
"DependingOnTaskId":0,
"IsRecurrence":true,
"DueDateAfter":1,
"FirstPurchaseDate":"2017-07-05T00:00:00Z",
"RepeatsOn":2,
"RepeatsOnValue":1,
"NumberOfRecurrences":2
}
}
201
Headers
Content-Type: application/json
Body
{
{
"PurchaseId":1234,
"StatusMessage": "Purchase inserted successfully",
"StatusCode": 201
}
{
"PurchaseId": [
"2935",
"2936"
],
"StatusMessage": "Purchase(s) inserted successfully",
"StatusCode": 201
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Project doesn't exist",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter purchase name",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter purchase status date",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter budget account id greater than 0",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter purchase status id greater than 0",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid budget account id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid purchase status id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid provider id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid purchase type id",
"StatusCode": 400
}
{
"PurchaseId":0,
"StatusMessage": "Please enter valid actual amount",
"StatusCode": 400
}
{
"PurchaseId":0,
"StatusMessage": "Please enter valid projected amount",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid projected amount currency id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid actual amount currency id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid depending on task id",
"StatusCode": 400
}
"For single purchase"
{
"PurchaseId":null,
"StatusMessage": "Please enter valid purchase status date",
"StatusCode": 400
}
{
"PurchaseId":0,
"StatusMessage": "Please enter valid due date",
"StatusCode": 400
}
"For recurring purchases"
{
"PurchaseId":null,
"StatusMessage": "Please enter First purchase date",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter Repeat type",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter Number of recurrences",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
⚠ Update a project purchasePUT/project/{ProjectId}/purchase/{PurchaseId}
DEPRECATED
Example URI
- ProjectId
int
(required) Example: 331- PurchaseId
int
(required) Example: 345
Headers
Content-Type: application/json
Token: [token]
Body
{
{
"PurchaseName":"Test update",
"Description":"description",
"PurchaseStatusId":1,
"StatusDate": "2017-07-05T00:00:00Z",
"PurchaseTypeId":0,
"ProviderId":0,
"InvoiceNo":"",
"BudgetAccountId":417,
"ActualAmount":100.00,
"ActualAmountCurrencyId":1113,
"ProjectedAmount":100.00,
"ProjectedAmountCurrencyId":1113,
"TaskDateGap":0,
"IsDependUponTaskStartDate":false,
"DependingOnTaskId":0
}
}
201
Headers
Content-Type: application/json
Body
{
{
"PurchaseId":345,
"StatusMessage": "Purchase updated successfully",
"StatusCode": 201
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Project doesn't exist",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid purchase id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter purchase name",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter purchase status date",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter budget account id greater than 0",
"StatusCode": 400
}
{
"PurchaseId":0,
"StatusMessage": "Please enter purchase status id greater than 0",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid budget account id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid purchase status id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid provider id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid purchase type id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid purchase status date",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid due date",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid actual amount",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid projected amount",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid projected amount currency id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid actual amount currency id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid depending on task id",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
⚠ Get a project purchaseGET/project/{ProjectId}/purchase/{PurchaseId}
DEPRECATED
Example URI
- ProjectId
int
(required) Example: 331- PurchaseId
int
(required) Example: 2338
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
{
"PurchaseId": 2338,
"PurchaseName": "test prj purchase update ",
"Description": "",
"PurchaseStatusName": "Not Approved",
"PurchaseStatusId": 7,
"StatusDate": "2017-03-21T00:00:00Z",
"BudgetAccountName": "New Account 123",
"PurchaseTypeName": "Others",
"PurchaseTypeId": 3273,
"DueDate": "2009-10-01T00:00:00Z",
"ProviderName": "Google",
"ProviderId": 97,
"InvoiceNo": "123",
"AccountId": 1142,
"ProjectId": 331,
"BudgetAccountId": 461,
"ActualAmount": 0,
"ActualAmountCurrencyId": 1113,
"ActualAmountExchangeRate": 1,
"ActualAmountChangeApplied": "2017-07-05T10:01:42.950Z",
"ProjectedAmount": 110,
"ProjectedAmountCurrencyId": 1113,
"ProjectedAmountExchangeRate": 1,
"ProjectedAmountChangeApplied": "2017-07-05T10:01:42.950Z",
"PurchaseStatusIcon": "https://app.itmplatform.com/UploadData/Iconlibrary/flag--exclamation.png",
"PurchaseTypeIcon": "https://app.itmplatform.com/UploadData/Iconlibrary/question.png",
"DependingOnTaskName": "2.0 Capacitacion Manejo",
"IsDocumentAttached": false,
"IsConsiderActualValue": false,
"DependingOnTaskId": 20441,
"IsDependUponTaskStartDate": false,
"TaskDateGap": 0,
"TaskPath": "summary task\\2.0 Capacitacion Manejo"
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
⚠ Delete a project purchaseDELETE/project/{ProjectId}/purchase/{PurchaseId}
DEPRECATED
Example URI
- ProjectId
int
(required) Example: 331- PurchaseId
int
(required) Example: 2338
200
Headers
Content-Type: application/json
Body
{
{
"PurchaseId":0,
"StatusMessage": "Purchase deleted successfully",
"StatusCode": 200
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Project doesn't exist",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Purchase ids doesn't exist",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Add Project Purchase v2 ¶
Add project purchase v2POST/projects/{ProjectId}/purchases
Adds single or recurring project purchase.
Example URI
- ProjectId
int
(required) Example: 55614
Headers
Content-Type: application/json
Token: [token]
Body
"For single purchase"
{
{
"Name": "Test",
"Description": "123",
"StatusId": 47131,
"StatusDate": "2021-12-31T00:00:00Z",
"TypeId": 29083,
"DueDate" : "2021-12-31T00:00:00Z",
"ProviderId": 5146,
"No": "T12",
"ProjectCostId": 60003,
"ActualAmount": 100.00,
"ActualAmountCurrencyId": 4145,
"ProjectedAmount": 100.00,
"ProjectedAmountCurrencyId": 4145,
"TaskDateGap": 0,
"IsDependUponTaskStartDate": false,
"DependingOnTaskId": 0
}
}
"For recurring purchases"
{
{
"Name": "Test",
"Description": "description",
"StatusId": 1,
"StatusDate": "2021-12-31T00:00:00Z",
"TypeId": 0,
"ProviderId": 0,
"ProjectCostId": 235,
"ActualAmount": 100.00,
"ActualAmountCurrencyId": 1113,
"ProjectedAmount": 100.00,
"ProjectedAmountCurrencyId": 1113,
"TaskDateGap": 0,
"IsDependUponTaskStartDate": false,
"DependingOnTaskId": 0,
"IsRecurrence": true,
"DueDateAfter": 1,
"FirstPurchaseDate": "2021-12-31T00:00:00Z",
"RepeatsOn": 2,
"RepeatsOnValue": 1,
"NumberOfRecurrences": 2
}
}
201
Headers
Content-Type: application/json
Body
{
{
"Id": 159665,
"StatusMessage": "Purchase inserted successfully",
"StatusCode": 201
}
{
"PurchaseId": [
"2935",
"2936"
],
"StatusMessage": "Purchase(s) inserted successfully",
"StatusCode": 201
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Project 5561224 does not exist",
"StatusCode": 500
}
{
"Id": 0,
"StatusMessage": "Please enter purchase name.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Please enter valid status date.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Please enter budget account id greater than 0.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Please enter status id greater than 0.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Please enter valid status id.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Please enter valid provider id.<br/>",
"StatusCode": 400
}
{
"Id": 159665,
"StatusMessage": "Please enter valid depending task id.<br/>",
"StatusCode": 400
}
"For single purchase"
{
"Id": 0,
"StatusMessage": "Please enter valid status date.<br/>",
"StatusCode": 400
}
{
"Id": 0,
"StatusMessage": "Please enter valid due date.<br/>",
"StatusCode": 400
}
"For recurring purchases"
{
"Id": 159665,
"StatusMessage": "Please enter First purchase date.<br/>",
"StatusCode": 400
}
{
"Id": 159665,
"StatusMessage": "Please enter Repeat type.<br/>",
"StatusCode": 400
}
{
"Id": 159665,
"StatusMessage": "Please enter Number of recurrences.<br/>",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Project Purchase v2 ¶
Update a project purchase v2PATCH/projects/{ProjectId}/purchases/{PurchaseId}
Example URI
- ProjectId
int
(required) Example: 55614- PurchaseId
int
(required) Example: 159665
Headers
Content-Type: application/json
Token: [token]
Body
{
{
"Name": "Test update",
"Description": "description",
"StatusId": 47132,
"StatusDate": "2021-12-31T00:00:00Z",
"TypeId": 29084,
"ProviderId": 5145,
"No": "T123",
"BudgetAccountId": 417,
"ActualAmount": 100.00,
"ActualAmountCurrencyId": 4145,
"ProjectedAmount": 100.00,
"ProjectedAmountCurrencyId": 4145,
"TaskDateGap": 0,
"IsDependUponTaskStartDate": false,
"DependingOnTaskId": 0
}
}
200
Headers
Content-Type: application/json
Body
{
{
"Id": 159665,
"StatusMessage": "Purchase updated successfully",
"StatusCode": 200
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
500
Headers
Content-Type: application/json
Body
{
"Id": 0,
"StatusMessage": "Purchase 159665 does not exist",
"StatusCode": 500
}
{
"Id": 159665,
"StatusMessage": "Please enter valid status date.<br/>",
"StatusCode": 500
}
{
"Id": 159665,
"StatusMessage": "Please enter budget account id greater than 0.<br/>",
"StatusCode": 500
}
{
"Id": 159665,
"StatusMessage": "Please enter valid status id.<br/>",
"StatusCode": 500
}
{
"Id": 159665,
"StatusMessage": "Please enter valid budget account id.<br/>",
"StatusCode": 500
}
{
"Id": 159665,
"StatusMessage": "Please enter valid status id.<br/>",
"StatusCode": 500
}
{
"Id": 159665,
"StatusMessage": "Please enter valid provider id.<br/>",
"StatusCode": 500
}
{
"Id": 159665,
"StatusMessage": "Please enter valid status date.<br/>",
"StatusCode": 500
}
{
"Id": 159665,
"StatusMessage": "Please enter valid due date.<br/>",
"StatusCode": 500
}
{
"Id": 159665,
"StatusMessage": "Please enter valid projected amount currency id.<br/>",
"StatusCode": 500
}
{
"Id": 159665,
"StatusMessage": "Please enter valid actual amount currency id.<br/>",
"StatusCode": 500
}
{
"Id": 159665,
"StatusMessage": "Please enter valid depending task id.<br/>",
"StatusCode": 500
}
{
"Id": 159665,
"StatusMessage": "Please enter First purchase date.<br/>",
"StatusCode": 500
}
{
"Id": 159665,
"StatusMessage": "Please enter Repeat type.<br/>",
"StatusCode": 500
}
{
"Id": 159665,
"StatusMessage": "Please enter Number of recurrences.<br/>",
"StatusCode": 500
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Delete a project purchaseDELETE/projects/{ProjectId}/purchases/{PurchaseId}
Example URI
- ProjectId
int
(required) Example: 55614- PurchaseId
int
(required) Example: 159665
200
Headers
Content-Type: application/json
Body
[
{
"Id": 159665,
"StatusMessage": "Purchase deleted successfully",
"StatusCode": 200
}
]
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Project doesn't exist",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Purchase ids doesn't exist",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Get a project purchase v2POST/projects/{ProjectId}/purchases/{PurchaseId}
Example URI
- ProjectId
int
(required) Example: 55614- PurchaseId
int
(required) Example: 159662
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
{
"Id": 159662,
"AccountId": 4019,
"ProjectId": 55614,
"Name": "Test 123",
"Description": "testse",
"StatusName": "Planificado",
"StatusId": 47131,
"StatusDate": "2022-01-02T00:00:00Z",
"ProjectCostId": 60003,
"BudgetAccountName": "Teste",
"TypeId": 29087,
"TypeName": "Goods",
"ProviderName": "Manpower Inc.",
"ProviderId": 5146,
"No": "test12",
"ActualAmount": {
"Amount": 0.000000000000,
"CurrencyId": 4145,
"ExchangeRate": 1.000000,
"AppliedDate": "2022-01-02T15:20:31Z",
"BaseAmount": 0.000000
},
"ProjectedAmount": {
"Amount": 200.000000000000,
"CurrencyId": 4145,
"ExchangeRate": 1.000000,
"AppliedDate": "2022-01-02T09:50:04Z",
"BaseAmount": 200.000000
},
"IsConsiderAsActualValue": false,
"DependingOnTaskName": "",
"DependingOnTaskPercentCompleted": 0.0,
"IsDependUponTaskStartDate": false,
"TaskDateGap": 0,
"TaskDue": "",
"TaskStart": "",
"DueDate": "2022-01-02T00:00:00Z",
"DependingOnTaskId": null
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Bulk Update ¶
Bulk update purchasesPATCH/Projects/{ProjectId}/Purchases
Example URI
- ProjectId
int
(required) Example: 55614
Headers
Content-Type: application/json
Token: [token]
Body
{
"PurchaseIds": "159662,159668",
"StatusId": "47134"
}
200
Headers
Content-Type: application/json
Body
[
{
"StatusCode": 200
}
]
500
Headers
Content-Type: application/json
Body
{
"Id": 0,
"StatusMessage": "Purchase 159662 does not exist",
"StatusCode": 500
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Bulk Delete ¶
Bulk delete purchasesDELETE/Projects/{ProjectId}/BulkDeletePurchases
Example URI
- ProjectId
int
(required) Example: 55614
Headers
Content-Type: application/json
Token: [token]
Body
{
"PurchaseIds": "159662,159668",
"StatusId": "47134"
}
200
Headers
Content-Type: application/json
Body
[
{
"Id": 159662,
"StatusMessage": "Purchase deleted successfully",
"StatusCode": 200
}
]
400
Headers
Content-Type: application/json
Body
[
{
"Id": 0,
"StatusMessage": "Project doesn't exist.",
"StatusCode": 400
}
]
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Task Purchases ¶
Get Task PurchasesGET/Projects/{ProjectId}/TaskPurchases/{TaskId}
Example URI
- ProjectId
int
(required) Example: 55614- TaskId
int
(required) Example: 121620
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
[
{
"Id": 2852,
"Amount": 0,
"AccountId": 0,
"ProjectId": 0,
"LanguageId": 0,
"Name": "",
"Description": "",
"StatusName": "",
"StatusId": 0,
"StatusDate": "",
"ProjectCostId": 0,
"BudgetAccountName": "",
"TypeId": 0,
"TypeName": "",
"ProviderName": "",
"No": "",
"ActualAmount": {
"Amount": 0,
"CurrencyId": 0,
"ExchangeRate": 0,
"AppliedDate": "",
"BaseAmount": 0
},
"ProjectedAmount": {
"Amount": 0,
"CurrencyId": 0,
"ExchangeRate": 0,
"AppliedDate": "",
"BaseAmount": 250
},
"IsConsiderAsActualValue": false,
"IsFromTaskPurchases": false,
"IsDependOnTask": false,
"DependingOnTaskName": "",
"DependingOnTaskPercentCompleted": 0,
"IsDependUponTaskStartDate": false,
"TaskDateGap": 0,
"UserId": 0,
"TaskDue": "",
"TaskStart": "",
"BaselineDueDate": "",
"BaselineBlendedProjectedAmount": 0,
"BaselineBlendedDate": "",
"BaselineProjectedAmount": 0,
"IsDocumentAttached": false,
"AllCustomFields": {},
"FirstRecurrenceDate": "",
"DueDate": "",
"DependOnTaskDate": "",
"IsTaskAssociated": false
},
{
"Id": 71758,
"Amount": 0,
"AccountId": 0,
"ProjectId": 0,
"LanguageId": 0,
"Name": "",
"Description": "",
"StatusName": "",
"StatusId": 0,
"StatusDate": "",
"ProjectCostId": 0,
"BudgetAccountName": "",
"TypeId": 0,
"TypeName": "",
"ProviderName": "",
"No": "",
"ActualAmount": {
"Amount": 0,
"CurrencyId": 0,
"ExchangeRate": 0,
"AppliedDate": "",
"BaseAmount": 0
},
"ProjectedAmount": {
"Amount": 0,
"CurrencyId": 0,
"ExchangeRate": 0,
"AppliedDate": "",
"BaseAmount": 0
},
"IsConsiderAsActualValue": false,
"IsFromTaskPurchases": false,
"IsDependOnTask": false,
"DependingOnTaskName": "",
"DependingOnTaskPercentCompleted": 0,
"IsDependUponTaskStartDate": false,
"TaskDateGap": 0,
"UserId": 0,
"TaskDue": "",
"TaskStart": "",
"BaselineDueDate": "",
"BaselineBlendedProjectedAmount": 0,
"BaselineBlendedDate": "",
"BaselineProjectedAmount": 0,
"IsDocumentAttached": false,
"AllCustomFields": {},
"FirstRecurrenceDate": "",
"DueDate": "",
"DependOnTaskDate": "",
"IsTaskAssociated": false
}
]
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Service purchase ¶
Add service purchasePOST/service/{ServiceId}/purchase/
Adds single or recurring service purchase. Please note that you should use different syntaxes for single and recurring purchases.
Example URI
- ServiceId
int
(required) Example: 339
Headers
Content-Type: application/json
Token: [token]
Body
"For single purchase"
{
{
"PurchaseName":"NEwTest",
"Description":"123",
"PurchaseStatusId":1,
"StatusDate": "2017-07-05T00:00:00Z",
"PurchaseTypeId":0,
"DueDate" :"2017-07-05T00:00:00Z",
"ProviderId":0,
"InvoiceNo":"",
"BudgetAccountId":235,
"ActualAmount":100.00,
"ActualAmountCurrencyId":1113,
"ProjectedAmount":100.00,
"ProjectedAmountCurrencyId":1113,
"ActivityDateGap":0,
"IsDependUponActivityStartDate":false,
"DependingOnActivityId":0
}
}
"For recurring purchases"
{
{
"PurchaseName":"NEwTest",
"Description":"description",
"PurchaseStatusId":1,
"StatusDate": "2017-07-05T00:00:00Z",
"PurchaseTypeId":0,
"ProviderId":0,
"InvoiceNo":"",
"BudgetAccountId":235,
"ActualAmount":100.00,
"ActualAmountCurrencyId":1113,
"ProjectedAmount":100.00,
"ProjectedAmountCurrencyId":1113,
"ActivityDateGap":0,
"IsDependUponActivityStartDate":false,
"DependingOnActivityId":0,
"IsRecurrence":true,
"DueDateAfter":1,
"FirstPurchaseDate":"2017-07-05T00:00:00Z",
"RepeatsOn":2,
"RepeatsOnValue":1,
"NumberOfRecurrences":2
}
}
201
Headers
Content-Type: application/json
Body
{
{
"PurchaseId":1234,
"StatusMessage": "Purchase inserted successfully",
"StatusCode": 201
}
{
"PurchaseId": [
"2935",
"2936"
],
"StatusMessage": "Purchase(s) inserted successfully",
"StatusCode": 201
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Service doesn't exist",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter purchase name",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter purchase status date",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter budget account id greater than 0",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter purchase status id greater than 0",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid budget account id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid purchase status id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid provider id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid purchase type id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid actual amount",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid projected amount",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid projected amount currency id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid actual amount currency id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid depending on task id",
"StatusCode": 400
}
"For single purchase"
{
"PurchaseId":null,
"StatusMessage": "Please enter valid purchase status date",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid due date",
"StatusCode": 400
}
"For recurring purchases"
{
"PurchaseId":null,
"StatusMessage": "Please enter First purchase date",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter Repeat type",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter Number of recurrences",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Update a service purchasePUT/service/{ServiceId}/purchase/{PurchaseId}
Example URI
- ServiceId
int
(required) Example: 339- PurchaseId
int
(required) Example: 345
Headers
Content-Type: application/json
Token: [token]
Body
{
{
"PurchaseName":"NEwTest update",
"Description":"description",
"PurchaseStatusId":1,
"StatusDate": "2017-07-05T00:00:00Z",
"PurchaseTypeId":0,
"ProviderId":0,
"InvoiceNo":"",
"BudgetAccountId":417,
"ActualAmount":100.00,
"ActualAmountCurrencyId":1113,
"ProjectedAmount":100.00,
"ProjectedAmountCurrencyId":1113,
"ActivityDateGap":0,
"IsDependUponActivityStartDate":false,
"DependingOnActivityId":0
}
}
201
Headers
Content-Type: application/json
Body
{
{
"PurchaseId":345,
"StatusMessage": "Purchase updated successfully",
"StatusCode": 201
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Service doesn't exist",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid purchase id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter purchase name",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter purchase status date",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter budget account id greater than 0",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter purchase status id greater than 0",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid budget account id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid purchase status id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid provider id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid purchase type id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid purchase status date",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid due date",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid actual amount",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid projected amount",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid projected amount currency id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid actual amount currency id",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Please enter valid depending on task id",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Get a service purchaseGET/service/{ServiceId}/purchase/{PurchaseId}
Example URI
- ServiceId
int
(required) Example: 339- PurchaseId
int
(required) Example: 2939
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
{
"PurchaseId": 2939,
"PurchaseName": "NEwTest",
"Description": "description",
"PurchaseStatusName": "Pending",
"PurchaseStatusId": 1,
"StatusDate": "2017-07-05T00:00:00Z",
"BudgetAccountName": "Test",
"PurchaseTypeName": null,
"PurchaseTypeId": 0,
"DueDate": "2017-07-06T00:00:00Z",
"ProviderName": null,
"ProviderId": 0,
"InvoiceNo": "",
"AccountId": 1142,
"ServiceId": 339,
"BudgetAccountId": 315,
"ActualAmount": 100,
"ActualAmountCurrencyId": 1113,
"ActualAmountExchangeRate": 0,
"ActualAmountChangeApplied": "2017-07-05T17:35:46.190Z",
"ProjectedAmount": 100,
"ProjectedAmountCurrencyId": 1113,
"ProjectedAmountExchangeRate": 0,
"ProjectedAmountChangeApplied": "2017-07-05T17:35:46.190Z",
"PurchaseStatusIcon": "https://app.itmplatform.com/UploadData/Iconlibrary/flag-yellow.png",
"PurchaseTypeIcon": null,
"DependingOnActivityName": "",
"IsDocumentAttached": false,
"IsConsiderActualValue": false,
"DependingOnActivityId": 0,
"IsDependUponActivityStartDate": false,
"ActivityDateGap": 0,
"ActivityPath": null
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Delete a service purchaseDELETE/service/{ServiceId}/purchase/{PurchaseId}
Example URI
- ServiceId
int
(required) Example: 331- PurchaseId
int
(required) Example: 2940
200
Headers
Content-Type: application/json
Body
{
{
"PurchaseId":null,
"StatusMessage": "Purchase deleted successfully",
"StatusCode": 200
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Service doesn't exist",
"StatusCode": 400
}
{
"PurchaseId":null,
"StatusMessage": "Purchase ids doesn't exist",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Get project purchases budgets ¶
Get project purchases budgetsGET/project/{ProjectId}/purchases/budgets
Example URI
- ProjectId
int
(required) Example: 331
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
[
{
"ProjectId": 331,
"BudgetAccount": {
"BudgetAccountName": "My Purchase Budget",
"BudgetAccountId": 235,
"BudgetAccountCurrencyId": 1113,
"BudgetAccountExcahngeRate": 1,
"BudgetAccountChangeApplied": "2017-04-17T10:16:14.293Z"
},
"Description": "Description",
"Estimated": 700,
"ProjectedAmount": 4036,
"ActualAmount": 17425,
"LastPECValues": 0,
"CurrencyDetail": {
"CurrencySymbol": "$",
"CurrencyAlphabeticCode": "USD",
"CurrencySymbolPEC": "$",
"CurrencyAlphabeticCodePEC": "USD"
},
"Percentage": 2489.2857,
"PercentagePEC": 0,
"Provider": null
}
]
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Project purchases budget ¶
Delete a project purchases budgetDELETE/project/{ProjectId}/purchases/budget/{BudgetAccountId}
Example URI
- ProjectId
int
(required) Example: 331- BudgetAccountId
int
(required) Example: 431
200
Headers
Content-Type: application/json
Body
{
{
"BudgetAccountId": 431,
"StatusMessage": "Record deleted successfully",
"StatusCode": 200
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Cannot delete reference, already in use",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Budget account detailsdoesn't exist",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Get a project purchases budgetGET/project/{ProjectId}/purchases/budget/{BudgetAccountId}
Example URI
- ProjectId
int
(required) Example: 331- BudgetAccountId
int
(required) Example: 235
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
{
"ProjectId": 331,
"BudgetAccountId": 235,
"BudgetAccountName": "My Purchase Budget",
"BudgetAccountCurrencyId": 1113,
"BudgetAccountExcahngeRate": 1,
"BudgetAccountChangeApplied": "2017-04-17T10:16:14.293Z",
"Description": "Description",
"Estimated": 700,
"ProjectedAmount": 0,
"ActualAmount": 0,
"LastPECValues": 0,
"ProviderId": 0,
"ProviderName": ""
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Add a project purchases budgetPOST/project/{ProjectId}/purchases/budget/
Example URI
- ProjectId
int
(required) Example: 331
Headers
Content-Type: application/json
Token: [token]
Body
{
{
"BudgetAccountName":"New Account",
"Description":"",
"Estimated":300,
"BudgetAccountCurrencyId":1113
}
}
201
Headers
Content-Type: application/json
Body
{
"BudgetAccountId": 321,
"StatusMessage": "Project purchase budget account inserted successfully",
"StatusCode": 201
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Project doesn't exist",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Please enter budget account name",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Please enter valid estimated amount",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Please enter valid currency id",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Record already exists",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Update a project purchases budgetPUT/project/{ProjectId}/purchases/budget/{BudgetAccountId}
Example URI
- ProjectId
int
(required) Example: 331- BudgetAccountId
int
(required) Example: 321
Headers
Content-Type: application/json
Token: [token]
Body
{
{
"BudgetAccountName":"New Account update",
"Description":"",
"Estimated":300,
"BudgetAccountCurrencyId":1113
}
201
Headers
Content-Type: application/json
Body
{
"BudgetAccountId": 321,
"StatusMessage": "Project purchase budget account updated successfully",
"StatusCode": 201
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Budget account detailsdoesn't exist",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Please enter budget account name",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Please enter valid estimated amount",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Please enter valid currency id",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Record already exists",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Service purchases budgets ¶
Get service purchases budgetsGET/service/{ServiceId}/purchases/budgets
Example URI
- ServiceId
int
(required) Example: 339
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
[
{
"ServiceId": 339,
"BudgetAccount": {
"BudgetAccountName": "Test",
"BudgetAccountId": 315,
"BudgetAccountCurrencyId": 1176,
"BudgetAccountExcahngeRate": 0.08,
"BudgetAccountChangeApplied": "2017-07-05T10:03:42.550Z"
},
"Description": "",
"Estimated": 5500,
"ProjectedAmount": 99,
"ActualAmount": 0,
"LastPECValues": 0,
"CurrencyDetail": {
"CurrencySymbol": "$",
"CurrencyAlphabeticCode": "LRD",
"CurrencySymbolPEC": "$",
"CurrencyAlphabeticCodePEC": "LRD"
},
"Percentage": 0,
"PercentagePEC": 0,
"Provider": null
}
]
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Service purchase budget ¶
Delete a service purchase budgetDELETE/service/{ServiceId}/purchases/budget/{BudgetAccountId}
Example URI
- ServiceId
int
(required) Example: 339- BudgetAccountId
int
(required) Example: 431
200
Headers
Content-Type: application/json
Body
{
{
"BudgetAccountId": 431,
"StatusMessage": "Record deleted successfully",
"StatusCode": 200
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"BudgetAccountId": 431,
"StatusMessage": "Cannot delete reference, already in use",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Budget account details doesn't exist",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Get a service purchases budgetGET/service/{ServiceId}/purchases/budget/{BudgetAccountId}
Example URI
- ServiceId
int
(required) Example: 331- BudgetAccountId
int
(required) Example: 315
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
{
"ServiceId": 339,
"BudgetAccountId": 315,
"BudgetAccountName": "Test",
"BudgetAccountCurrencyId": 1176,
"BudgetAccountExcahngeRate": 0.08,
"BudgetAccountChangeApplied": "2017-07-05T10:03:42.550Z",
"Description": "",
"Estimated": 68750,
"ProjectedAmount": 0,
"ActualAmount": 0,
"LastPECValues": 0,
"ProviderId": 0,
"ProviderName": ""
}
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Add a service purchases budgetPOST/service/{ServiceId}/purchases/budget/
Example URI
- ServiceId
int
(required) Example: 339
Headers
Content-Type: application/json
Token: [token]
Body
{
{
"BudgetAccountName":"New Account",
"Description":"",
"Estimated":300,
"BudgetAccountCurrencyId":1113
}
}
201
Headers
Content-Type: application/json
Body
{
"BudgetAccountId": 557,
"StatusMessage": "Service purchase budget account inserted successfully",
"StatusCode": 201
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Service doesn't exist",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Please enter budget account name",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Please enter valid estimated amount",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Please enter valid currency id",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Record already exists",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Update a service purchases budgetPUT/service/{ServiceId}/purchases/budget/{BudgetAccountId}
Example URI
- ServiceId
int
(required) Example: 339- BudgetAccountId
int
(required) Example: 557
Headers
Content-Type: application/json
Token: [token]
Body
{
{
"BudgetAccountName":"New Account update",
"Description":"",
"Estimated":300,
"BudgetAccountCurrencyId":1113
}
}
201
Headers
Content-Type: application/json
Body
{
"BudgetAccountId": 557,
"StatusMessage": "Service purchase budget account updated successfully",
"StatusCode": 201
}
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Budget account details doesn't exist",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Please enter budget account name",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Please enter valid estimated amount",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Please enter valid currency id",
"StatusCode": 400
}
{
"BudgetAccountId": 0,
"StatusMessage": "Record already exists",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Revenues ¶
Get Revenues ¶
Get RevenuesPOST/revenues/search
Example URI
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
"total": 1709,
"pagerid": "8dca3d53-076b-4652-abfc-52e3ffad2063",
"page": 1,
"pageSize": 10,
"list": [
{
"Id": 24447,
"Name": "Test Prj Revenue",
"StatusDate": "2019-11-07T09:47:51Z",
"ProjectedAmount": {
"BaseAmount": 0
},
"ActualAmount": {
"BaseAmount": 0
},
"DependingOnTaskName": "",
"AllCustomFields": {
"ryg": null,
"test no": 0,
"te01": [],
"Hello World": []
},
"FirstRecurrenceDate": "",
"DueDate": "2026-08-25T00:00:00Z",
"DependOnTaskDate": "",
"IsTaskAssociated": false,
"DependingOnTaskId": null
},
{
"Id": 24448,
"Name": "Test Prj Revenue",
"StatusDate": "2019-11-07T09:47:51Z",
"ProjectedAmount": {
"BaseAmount": 0
},
"ActualAmount": {
"BaseAmount": 0
},
"DependingOnTaskName": "",
"AllCustomFields": {
"ryg": null,
"test no": 0,
"te01": [],
"Hello World": []
},
"FirstRecurrenceDate": "",
"DueDate": "2026-09-25T00:00:00Z",
"DependOnTaskDate": "",
"IsTaskAssociated": false,
"DependingOnTaskId": null
},
{
"Id": 24449,
"Name": "Test Prj Revenue",
"StatusDate": "2019-11-07T09:47:51Z",
"ProjectedAmount": {
"BaseAmount": 0
},
"ActualAmount": {
"BaseAmount": 0
},
"DependingOnTaskName": "",
"AllCustomFields": {
"ryg": null,
"test no": 0,
"te01": [],
"Hello World": []
},
"FirstRecurrenceDate": "",
"DueDate": "2026-10-25T00:00:00Z",
"DependOnTaskDate": "",
"IsTaskAssociated": false,
"DependingOnTaskId": null
},
{
"Id": 24450,
"Name": "Test Prj Revenue",
"StatusDate": "2019-11-07T09:47:51Z",
"ProjectedAmount": {
"BaseAmount": 0
},
"ActualAmount": {
"BaseAmount": 0
},
"DependingOnTaskName": "",
"AllCustomFields": {
"ryg": null,
"test no": 0,
"te01": [],
"Hello World": []
},
"FirstRecurrenceDate": "",
"DueDate": "2026-11-25T00:00:00Z",
"DependOnTaskDate": "",
"IsTaskAssociated": false,
"DependingOnTaskId": null
},
{
"Id": 24451,
"Name": "Test Prj Revenue",
"StatusDate": "2019-11-07T09:47:51Z",
"ProjectedAmount": {
"BaseAmount": 0
},
"ActualAmount": {
"BaseAmount": 0
},
"DependingOnTaskName": "",
"AllCustomFields": {
"ryg": null,
"test no": 0,
"te01": [],
"Hello World": []
},
"FirstRecurrenceDate": "",
"DueDate": "2026-12-25T00:00:00Z",
"DependOnTaskDate": "",
"IsTaskAssociated": false,
"DependingOnTaskId": null
},
{
"Id": 24452,
"Name": "Test Prj Revenue",
"StatusDate": "2019-11-07T09:47:51Z",
"ProjectedAmount": {
"BaseAmount": 0
},
"ActualAmount": {
"BaseAmount": 0
},
"DependingOnTaskName": "",
"AllCustomFields": {
"ryg": null,
"test no": 0,
"te01": [],
"Hello World": []
},
"FirstRecurrenceDate": "",
"DueDate": "2027-01-25T00:00:00Z",
"DependOnTaskDate": "",
"IsTaskAssociated": false,
"DependingOnTaskId": null
},
{
"Id": 29498,
"Name": "Revenue 1",
"StatusDate": "2021-04-27T00:00:00Z",
"ProjectedAmount": {
"BaseAmount": 0
},
"ActualAmount": {
"BaseAmount": 0
},
"DependingOnTaskName": "Task 1",
"AllCustomFields": {
"ryg": null,
"test no": null,
"te01": [],
"Hello World": []
},
"FirstRecurrenceDate": "",
"DueDate": "2021-02-10T00:00:00Z",
"DependOnTaskDate": "",
"IsTaskAssociated": false,
"DependingOnTaskId": null
},
{
"Id": 29499,
"Name": "Revenue 1",
"StatusDate": "2021-04-27T00:00:00Z",
"ProjectedAmount": {
"BaseAmount": 0
},
"ActualAmount": {
"BaseAmount": 0
},
"DependingOnTaskName": "Task 5",
"AllCustomFields": {
"ryg": null,
"test no": null,
"te01": [],
"Hello World": []
},
"FirstRecurrenceDate": "",
"DueDate": "2021-04-27T00:00:00Z",
"DependOnTaskDate": "",
"IsTaskAssociated": false,
"DependingOnTaskId": null
},
{
"Id": 29566,
"Name": "Revenue 2",
"StatusDate": "2021-12-15T00:00:00Z",
"ProjectedAmount": {
"BaseAmount": 500
},
"ActualAmount": {
"BaseAmount": 0
},
"DependingOnTaskName": "Revenue Task",
"AllCustomFields": {
"ryg": {
"Text": "2",
"Color": "Yellow"
},
"test no": 123,
"te01": [
{
"Id": 4156,
"Value": "te"
}
],
"Hello World": [
{
"Id": 4159,
"Value": "Hello"
},
{
"Id": 4165,
"Value": "dfgdfsd"
}
]
},
"FirstRecurrenceDate": "",
"DueDate": "2021-12-14T00:00:00Z",
"DependOnTaskDate": "",
"IsTaskAssociated": false,
"DependingOnTaskId": null
},
{
"Id": 29639,
"Name": "revenue 1 (changed) 1",
"StatusDate": "2021-12-16T00:00:00Z",
"ProjectedAmount": {
"BaseAmount": 40
},
"ActualAmount": {
"BaseAmount": 0
},
"DependingOnTaskName": "Task 13 - task type (v2)",
"AllCustomFields": {
"ryg": {
"Text": "2",
"Color": "Yellow"
},
"test no": 2342,
"te01": [
{
"Id": 6845,
"Value": "te 1"
}
],
"Hello World": [
{
"Id": 4162,
"Value": "fgbfkgbdfgbfdgkjdfgd"
}
]
},
"FirstRecurrenceDate": "",
"DueDate": "2022-07-04T00:00:00Z",
"DependOnTaskDate": "",
"IsTaskAssociated": false,
"DependingOnTaskId": null
}
]
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
⚠ Project revenues v1 ¶
⚠ Get project revenues v1GET/project/{ProjectId}/revenues
DEPRECATED
Retrieves a list of all revenues of a particular project, including their details.
This endpoint accepts Group Filtering v1. The parameters this filter accepts are:
-
RevenueId
-
RevenueName
-
RevenueStatus.RevenueStatusName
-
RevenueStatus.RevenueStatusId
-
RevenueStatus.StatusDate
-
ProjectedAmountDetail.ProjectedAmount
-
ProjectedAmountDetail.ProjectedAmountCurrencyId
-
ProjectedAmountDetail.ProjectedAmountExchangeRate
-
ProjectedAmountDetail.ProjectedAmountChangeApplied
-
ProjectedAmountDetail.ProjectedAmountCurrencySymbol
-
ProjectedAmountDetail.ProjectedAmountCurrencyAlphabeticCode
-
ActualAmountDetail.ActualAmount
-
ActualAmountDetail.ActualAmountCurrencyId
-
ActualAmountDetail.ActualAmountExchangeRate
-
ActualAmountDetail.ActualAmountChangeApplied
-
ActualAmountDetail.ActualAmountCurrencySymbol
-
ActualAmountDetail.ActualAmountCurrencyAlphabeticCode
-
Description
-
DueDate
-
DependingOnTask.DependingOnTaskId
-
DependingOnTask.DependingOnTaskName
-
TaskDateGap
-
IsDependOnTask
-
IsStartDate
-
RevenueNo
-
IsDocumentAttached
Example URI
- ProjectId
int
(required) Example: 8070
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
[
{
"ProjectId": 331,
"RevenueId": 2644,
"RevenueName": "Revenue 1",
"Description": "test",
"RevenueStatus": {
"RevenueStatusName": "Available",
"RevenueStatusId": 22,
"RevenueStatusIcon": "https://app.itmplatform.com/UploadData/Iconlibrary/plus.png",
"StatusDate": "2017-05-10T00:00:00Z"
},
"ActualAmountDetail": {
"ActualAmount": 0,
"ActualAmountCurrencyId": 1113,
"ActualAmountExchangeRate": 1,
"ActualAmountChangeApplied": "2017-07-04T18:46:37.277Z",
"ActualAmountCurrencySymbol": "$",
"ActualAmountCurrencyAlphabeticCode": "USD"
},
"ProjectedAmountDetail": {
"ProjectedAmount": 0,
"ProjectedAmountCurrencyId": 1113,
"ProjectedAmountExchangeRate": 1,
"ProjectedAmountChangeApplied": "2017-07-04T18:46:37.277Z",
"ProjectedAmountCurrencySymbol": "$",
"ProjectedAmountCurrencyAlphabeticCode": "USD"
},
"DueDate": "2017-05-10T00:00:00Z",
"DependingOnTask": {
"DependingOnTaskName": "2.0 Capacitacion Manejo",
"DependingOnTaskId": 20441
},
"TaskDateGap": 0,
"IsDependOnTask": true,
"IsStartDate": false,
"RevenueNo": "",
"IsDocumentAttached": false
}
]
400
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Token expired. Please generate a new token.",
"StatusCode": 400
}
401
Headers
Content-Type: application/json
Body
{
"StatusMessage": "Invalid Token.",
"StatusCode": 401
}
403
Headers
Content-Type: application/json
Body
{
"StatusMessage": "You need additional privileges to complete this action.",
"StatusCode": 403
}
Project revenues v2 ¶
Get project revenues v2GET/Projects/{ProjectId}/Revenues
Example URI
- ProjectId
int
(required) Example: 43407
Headers
Content-Type: application/json
Token: [token]
200
Headers
Content-Type: application/json
Body
{
"total": 19,
"pagerid": "33c9207d-179a-4a9c-9723-90c69ca10a3d",
"page": 1,
"pageSize": 50,
"list": [
{
"Id": 29501,
"No": "",
"Name": "testse",
"Description": "",
"DueDate": "2021-05-06T00:00:00Z",
"FirstRevenueDate": "",
"RepeatsOnId": 0,
"RepeatsOnValue": 0,
"StatusId": 47131,
"StatusName": "Planned",
"StatusDate": "2021-05-06T00:00:00Z",
"IsConsiderActualValue": false,
"ProjectedAmount": {
"Amount": 0,
"CurrencyId": 4145,
"ExchangeRate": 1,
"AppliedDate": "2021-05-06T04:04:28Z"
},
"ActualAmount": {
"Amount": 0,
"CurrencyId": 4145,
"ExchangeRate": 1,
"AppliedDate": "2021-05-06T09:35:25Z"
},
"IsDependOnTask": false,
"DependingOnTaskId": 0,
"DependingOnTaskName": "",
"IsStartDate": false,
"TaskDateGap": 0,
"IsDependUponTaskStartDate": false,
"IsRevenueTaskAssociated": false,
"DependOnTaskDate": "",
"AllCustomFields": {
"ryg": null,
"test no": null,
"te01": null,
"Hello World": null
},
"IsConsiderAsActualValue": false,
"IsDocumentAttached": false,
"BaselineDueDate":