Back to top

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 Authentication
GET/login/{APIKey}

Gets the sessions token based on the API Key

Example URI

GET /login/3140fcb4-3462-4cad-afcc-a75d266af47d
URI Parameters
HideShow
APIKey
string (required) Example: 3140fcb4-3462-4cad-afcc-a75d266af47d
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "Token": "552520150723161530268",
  "UserID": "1686",
  "Result": "1",
  "ResultStatus": "Success"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
      "Incorrect company or api key."
}

Limits

The following quotas apply to the number of requests coming from the same IP address:

  • 5 requests per second

  • 100 requests per minute

  • 4,000 requests per hour

  • 10,000 requests per day

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.

If you do not use `/search`, the results will be limited to 50 records.

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 the pagerid: 4.
    Please note that you can switch between multiple pages with the same pagerId, but if you make changes to sorting, filtering or properties, the pagerId 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

GET https://api.itmplatform.com/v2/companyURL/projects/search?pageSize=10&page=3
POST https://api.itmplatform.com/v2/companyURL/projects/search?pageSize=10&page=3

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

POST https://api.itmplatform.com/v2/companyURL/projects/search/

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}}
$bt Returns any items that have a value that is between two values provided in a set. It is also referred to as the between operator. {“StartDate”: { “$bt”: [“2023-09-01”, “2023-11-30”] }}
$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 or desc

Example URI

GET https://api.itmplatform.com/v2/companyURL/projects/search?sortBy=Duration&sortOrder=desc
POST https://api.itmplatform.com/v2/companyURL/projects/search?sortBy=Duration&sortOrder=desc

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 or Name) 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

POST https://api.itmplatform.com/v2/companyURL/projects/search/

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

POST https://api.itmplatform.com/v2/companyURL/projects/search?page=2&pagerid=11&pageSize=11&sortBy=Name&sortOrder=asc

Body payload

{
    "Filter": {
        "Name": { "$regex": "growth"},
        "KindId": { "$in" : [2, 3] }
    }
,
    "Columns": { "$in": ["Id", "Name"] }
}
If query string parameters and the body request payload contradict each other in a POST method, the body request payload will prevail.

Projects

Projects

The /projects endpoint is available both for v1 and v2 versions.

We recommend using v2.

Get Projects v1 v2
GET/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

GET /projects
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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"
    }
  }
]
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
      "StatusMessage": "Token expired. Please generate a new token.",
      "StatusCode": 400
}
{
      "StatusMessage": "Please enter valid field name",
      "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Project v2

Get Projects v2
POST/projects/search

Only available on v2, this method accepts paging, sorting, filtering and property selection as described in the section Filter, Page, Sort v2.

Example URI

POST /projects/search
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
  "Filter": {
    "Name": {
      "$regex": "growth"
    },
    "KindId": {
      "$in": [
        2,
        3
      ]
    }
  },
  "Columns": {
    "$in": [
      "Id",
      "Name"
    ]
  }
}
Response  200
HideShow
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"
    }
  }
]
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
      "StatusMessage": "Token expired. Please generate a new token.",
      "StatusCode": 400
}
{
      "StatusMessage": "Please enter valid field name",
      "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Project v2

Get a project v2
GET/projects/{?ProjectId}

Example URI

GET /projects/?ProjectId=32005
URI Parameters
HideShow
ProjectId
int (required) Example: 32005
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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&nbsp;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&amp;dh=1\">http://www.youtube.com/watch?v=bdpHRZHv4d8&amp;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&rsquo;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"
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Add a project v2
POST/projects/

Pass IsKanbanProject property true in body for agile project and false for waterfall project.

Example URI

POST /projects/
Request
HideShow
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"
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "ProjectId": 1234,
  "StatusMessage": "Project inserted successfully.",
  "StatusCode": 201
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
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 v2
PATCH/projects/{?ProjectId}

Example URI

PATCH /projects/?ProjectId=12262
URI Parameters
HideShow
ProjectId
int (required) Example: 12262
Request
HideShow
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"
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "ProjectId": 12262,
  "StatusMessage": "Project updated successfully.",
  "StatusCode": 201
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Project Budget

Get a project budget
GET/project/{ProjectId}/budget

Example URI

GET /project/331/budget
URI Parameters
HideShow
ProjectId
int (required) Example: 331
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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
}
}
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Update a project budget
PUT/project/{ProjectId}/budget

Example URI

PUT /project/12262/budget
URI Parameters
HideShow
ProjectId
int (required) Example: 12262
Request
HideShow
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
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Budget updated successfully.",
  "StatusCode": 201
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Project Team

Get a project team
GET/project/{ProjectId}/team

Example URI

GET /project/331/team
URI Parameters
HideShow
ProjectId
int (required) Example: 331
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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"
        }
      }
    }
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Project Swimlanes

Get project swimlanes
GET/project/{ProjectId}/swimlanes

Example URI

GET /project/627/swimlanes
URI Parameters
HideShow
ProjectId
int (required) Example: 627
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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
  }
]
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Project Progress Report

Get project progress report
GET/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

GET /project/331/progress/
URI Parameters
HideShow
ProjectId
string (required) Example: 331
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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"
      }
    }
  }
]
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Add a project progress report
POST/project/{ProjectId}/progress/

Example URI

POST /project/331/progress/
URI Parameters
HideShow
ProjectId
int (required) Example: 331
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
{
      "AssessmentId" : 3011,
      "DetailDescription" : "detailsdescription",
      "ShortDescription": "des",
      "PercentageCompleted" : 45,
      "ReportDate" : "2017-06-15T00:00:00Z"
}
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
{
      "ProjectProgressId":67,
      "StatusMessage": "Project progress inserted successfully",
      "StatusCode": 201
}
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Update a project progress report
PUT/project/{ProjectId}/progress/{?ProjectProgressId}

Example URI

PUT /project/331/progress/?ProjectProgressId=456
URI Parameters
HideShow
ProjectId
int (required) Example: 331
ProjectProgressId
int (required) Example: 456
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
{
      "AssessmentId" : 3011,
      "DetailDescription" : "detailsdescription",
      "ShortDescription": "des",
      "PercentageCompleted" : 45,
      "ReportDate" : "2017-06-15T00:00:00Z"
}
}
Response  201
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
{
      "ProjectProgressId":456,
      "StatusMessage": "Project progress updated successfully",
      "StatusCode": 201
}
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Delete a project progress report
DELETE/project/{ProjectId}/progress/{?ProjectProgressId}

Example URI

DELETE /project/331/progress/?ProjectProgressId=2338
URI Parameters
HideShow
ProjectId
int (required) Example: 331
ProjectProgressId
int (required) Example: 2338
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
{
      "ProjectProgressId": 2338,
      "StatusMessage": "Project progress deleted successfully",
      "StatusCode": 200
}
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Change History

Change History
GET/Projects/{ProjectId}/changeHistory{?fromDate}

Only available on v2, it returns the Ids for all entities (namely ProjectGeneral, BudgetAccounts, Documents, ProgressReports, Users, Purchases, Tasks, Revenue, Risks, Issues, EstimatedAndAcceptedEffort) related to the project. You can specify a date to get only the changes after that date.

Example URI

GET /Projects/60989/changeHistory?fromDate=2020-12-20T17:00:37
URI Parameters
HideShow
ProjectId
string (required) Example: 60989

The ID of the project.

fromDate
string (optional) Example: 2020-12-20T17:00:37

The starting date from which to get the changes.

Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "ProjectGeneral": [
    60989
  ],
  "BudgetAccounts": [
    78958
  ],
  "Documents": [
    103117
  ],
  "ProgressReports": [
    174070,
    174068
  ],
  "Users": [
    45405
  ],
  "Tasks": [
    1480488,
    1480489
  ],
  "Revenue": [
    37388,
    37389
  ],
  "Risks": [
    13131
  ],
  "Issues": [
    1609
  ],
  "EstimatedAndAcceptedEffort": [
    839436,
    924229
  ]
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Sprints

Get Project Sprint

Get Project Sprint Search
POST/Projects/{ProjectId}/Sprints/Search

Example URI

POST /Projects/62573/Sprints/Search
URI Parameters
HideShow
ProjectId
int (required) Example: 62573
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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"
      }
    }
  ]
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}
Response  500
HideShow
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 Sprint
GET/Projects/{ProjectId}/Sprints/{SprintId}

Example URI

GET /Projects/62573/Sprints/83338240-51d4-4c0f-b764-c8a7876a156a
URI Parameters
HideShow
ProjectId
int (required) Example: 62573
SprintId
string (required) Example: 83338240-51d4-4c0f-b764-c8a7876a156a
Response  200
HideShow
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": []
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}
Response  500
HideShow
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 Sprint
POST/Projects/{ProjectId}/Sprints/

Example URI

POST /Projects/62573/Sprints/
URI Parameters
HideShow
ProjectId
int (required) Example: 62573
Request
HideShow
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
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "Id": 0,
  "StatusMessage": "Sprint inserted successfully",
  "StatusCode": 201,
  "OtherDetails": {
    "Id": "014eb417-2aab-444b-b4e2-a5eba73aae5d"
  }
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Update Project Sprint
PATCH/Projects/{ProjectId}/Sprints/{SprintId}

Example URI

PATCH /Projects/62573/Sprints/83338240-51d4-4c0f-b764-c8a7876a156a
URI Parameters
HideShow
ProjectId
int (required) Example: 62573
SprintId
string (required) Example: 83338240-51d4-4c0f-b764-c8a7876a156a
Request
HideShow
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
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "Id": 0,
  "StatusMessage": "Sprint updated successfully",
  "StatusCode": 200,
  "OtherDetails": {
    "Id": "83338240-51d4-4c0f-b764-c8a7876a156a"
  }
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}
Response  500
HideShow
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 Sprint
DELETE/Projects/{ProjectId}/Sprints/{SprintId}

Example URI

DELETE /Projects/62573/Sprints/83338240-51d4-4c0f-b764-c8a7876a156a
URI Parameters
HideShow
ProjectId
int (required) Example: 62573
SprintId
string (required) Example: 83338240-51d4-4c0f-b764-c8a7876a156a
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "Id": 0,
  "StatusMessage": "Sprint deleted successfully.",
  "StatusCode": 200
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Allocate Task to Sprint

Allocate Task to Sprint
POST/Projects/{ProjectId}/Sprints/{SprintId}/Allocate/{TaskId}

Example URI

POST /Projects/62573/Sprints/83338240-51d4-4c0f-b764-c8a7876a156a/Allocate/1540840
URI Parameters
HideShow
ProjectId
int (required) Example: 62573
SprintId
string (required) Example: 83338240-51d4-4c0f-b764-c8a7876a156a
TaskId
int (required) Example: 1540840
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "Id": 0,
  "StatusMessage": "Sprint allocated successfully.",
  "StatusCode": 200
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
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 Sprint
POST/Projects/{ProjectId}/Sprints/{SprintId}/Allocate

Example URI

POST /Projects/62573/Sprints/83338240-51d4-4c0f-b764-c8a7876a156a/Allocate
URI Parameters
HideShow
ProjectId
int (required) Example: 62573
SprintId
string (required) Example: 83338240-51d4-4c0f-b764-c8a7876a156a
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
  "TaskIds": [
    1540840
  ]
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusCode": 200
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
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 Sprint
GET/Projects/{ProjectId}/AllocatedTasks/{SprintId}

Example URI

GET /Projects/62573/AllocatedTasks/83338240-51d4-4c0f-b764-c8a7876a156a
URI Parameters
HideShow
ProjectId
int (required) Example: 62573
SprintId
string (required) Example: 83338240-51d4-4c0f-b764-c8a7876a156a
Response  200
HideShow
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
    }
  ]
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "Id": 0,
  "StatusMessage": "Sprint 83338240-51d4-4c0f-b764-c8a7876a157a does not exists.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Project Professional Categories v2

Project Professional Categories v2

Get Project Professional Categories v2
GET/Projects/{ProjectId}/Categories

Example URI

GET /Projects/55711/Categories
URI Parameters
HideShow
ProjectId
int (required) Example: 55711
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "ProjectId": 8176,
    "ProfessionalCategoryId": 19874,
    "Category": {
      "Id": 0,
      "Name": "General",
      "Type": "NoCategory"
    },
    "StandardBillRate": {
      "Amount": 0,
      "CurrencyId": 0,
      "ExchangeRate": 0,
      "AppliedDate": "",
      "BaseAmount": 10
    },
    "ProjectProfessionalCategoryPriceId": 578,
    "IsCategoryAssociatedWithTaskOrUser": true
  },
  {
    "ProjectId": 8176,
    "ProfessionalCategoryId": 19873,
    "Category": {
      "Id": 4681,
      "Name": "Default",
      "Type": "Employee"
    },
    "StandardBillRate": {
      "Amount": 0,
      "CurrencyId": 4145,
      "ExchangeRate": 1,
      "AppliedDate": "",
      "BaseAmount": 40
    },
    "ProjectProfessionalCategoryPriceId": 0,
    "IsCategoryAssociatedWithTaskOrUser": true
  }
]
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "Id": 0,
  "StatusMessage": "Project does not exist.<br/>",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Associate Professional Categories To Project v2
PUT/Projects/{ProjectId}/Categories

Example URI

PUT /Projects/55711/Categories
URI Parameters
HideShow
ProjectId
int (required) Example: 55711
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "Id": 55711,
  "StatusMessage": "Categories Linked to Project sucessfully",
  "StatusCode": 200
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "Id": 0,
  "StatusMessage": "Project does not exist.<br/>",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
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 Project v2
PATCH/Projects/{ProjectId}/Category

Example URI

PATCH /Projects/55711/Category
URI Parameters
HideShow
ProjectId
int (required) Example: 55711
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
  "CategoryId": 21687,
  "CategoryType": 2
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "Id": 55711,
  "StatusMessage": "Categories Linked to Project sucessfully",
  "StatusCode": 200
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Insert Professional Category And Price To Project v2
POST/Projects/{ProjectId}/Category

Example URI

POST /Projects/55711/Category
URI Parameters
HideShow
ProjectId
int (required) Example: 55711
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
  "CategoryId": 19874,
  "CategoryType": 2,
  "PricePerHour": 300
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "Id": 55711,
  "StatusMessage": "Categories Linked to Project sucessfully",
  "StatusCode": 200
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Professional Category Price v2

Update Professional Category Price v2
PATCH/Projects/{ProjectId}/Categories/{ProfessionalCategoryId}/Price

Example URI

PATCH /Projects/55711/Categories/97999/Price
URI Parameters
HideShow
ProjectId
int (required) Example: 55711
ProfessionalCategoryId
int (required) Example: 97999
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
  "PricePerHour": 250
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "Id": 97999,
  "StatusMessage": "Price Updated sucessfully",
  "StatusCode": 200
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Delete Professional Category Price v2
DELETE/Projects/{ProjectId}/Categories/{ProfessionalCategoryId}/Price

Example URI

DELETE /Projects/55711/Categories/97999/Price
URI Parameters
HideShow
ProjectId
int (required) Example: 55711
ProfessionalCategoryId
int (required) Example: 97999
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "Id": 97999,
  "StatusMessage": "Price Deleted sucessfully.",
  "StatusCode": 200
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Account Professional Categories v2

GetAccount Professional Categories v2
GET/ProfessionalCategories

Example URI

GET /ProfessionalCategories
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "Id": 19872,
    "Name": "Default delete502"
  },
  {
    "Id": 23474,
    "Name": "Software Engineer"
  }
]
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Resource Capacity

Get Resource Capacity

Get Resource Capacity
GET/resourceCapacity/?StartDate={StartDate}&Interval={Interval}&NumberOfIntervals={NumberOfIntervals}

  • Interval: Possible values are - day, week, month, quarter. Default will be day, if not specified.

  • NumberOfIntervals: It could be a number from 1 to 15.

Example URI

GET /resourceCapacity/?StartDate=2022-08-29&Interval=day&NumberOfIntervals=5
URI Parameters
HideShow
StartDate
string (required) Example: 2022-08-29
Interval
string (required) Example: day
NumberOfIntervals
int (required) Example: 5
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "Projects": [
    {
      "ProjectId": 53907,
      "ProjectName": "Backend revamp",
      "ProjectMethodType": 2,
      "RedirectURL": "http://localhost/ITM.Web/itmrozas/UserPages/CapacityManagementUnit.aspx?IsRedirect=1&IsServices=0&ForProject=1&ProjectId=53907",
      "Tasks": [
        {
          "TaskId": 1552998,
          "TaskName": "17. Change on Tasks JSON structure for sprint. Backend",
          "TaskKind": 3,
          "ParentTaskId": 0,
          "RedirectURL": "http://localhost/ITM.Web/itmrozas/UserPages/CapacityManagementUnit.aspx?IsRedirect=1&IsTask=1&ForProject=0&ProjectId=53907&TaskId=1552998&tk=3",
          "Categories": [
            {
              "CategoryId": 15002,
              "CategoryName": "Programmer",
              "CategoryType": 3,
              "TaskStartDate": "2022-08-29T00:00:00",
              "TaskEndDate": "2022-09-02T00:00:00",
              "Efforts": [
                {
                  "IntervalIdentity": 1,
                  "Demand": 31,
                  "Allocated": 31
                }
              ]
            }
          ]
        }
      ]
    }
  ],
  "Intervals": [
    {
      "IntervalIdentity": 1,
      "IntervalName": "08/29/2022",
      "StartDate": "2022-08-29T00:00:00",
      "EndDate": "2022-08-29T23:59:59"
    }
  ],
  "Categories": [
    {
      "CategoryId": 15002,
      "CategoryName": "Programmer",
      "CategoryType": 3,
      "Users": [
        {
          "UserId": 53498,
          "UserName": "Darshi Shah",
          "Designation": "Developer",
          "UserImage": "",
          "Capacity": [
            {
              "IntervalIdentity": 1,
              "Capacity": 480,
              "IsUserOnHoliday": false
            }
          ],
          "Projects": [
            {
              "ProjectId": 58050,
              "ProjectName": "Backend Support ",
              "ProjectMethodType": 2,
              "RedirectURL": "http://localhost/ITM.Web/itmrozas/UserPages/CapacityManagementUnit.aspx?IsRedirect=1&IsServices=0&ForProject=1&ProjectId=58050",
              "Tasks": [
                {
                  "TaskId": 1556175,
                  "TaskName": "Zendesk 5087 - Task list slow the first time (high)",
                  "TaskKind": 3,
                  "ParentTaskId": 0,
                  "TaskStartDate": "2022-08-17T00:00:00",
                  "TaskEndDate": "2022-09-09T00:00:00",
                  "RedirectURL": "http://localhost/ITM.Web/itmrozas/UserPages/CapacityManagementUnit.aspx?IsRedirect=1&IsTask=1&ForProject=0&ProjectId=58050&TaskId=1556175&tk=3",
                  "Efforts": [
                    {
                      "IntervalIdentity": 1,
                      "Allocated": 11
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  ]
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Tasks

Get Tasks v2

Get Tasks v2
POST/tasks/search

Example URI

POST /tasks/search
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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
      }
    }
  ]
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Project Tasks v2

Get project tasks v2
GET/Projects/{ProjectId}/tasks

Example URI

GET /Projects/43407/tasks
URI Parameters
HideShow
ProjectId
string (required) Example: 43407
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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
      }
    }
  ]
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Gantt

Get Gantt
GET/Projects/{ProjectId}/Tasks/Gantt

Example URI

GET /Projects/43407/Tasks/Gantt
URI Parameters
HideShow
ProjectId
string (required) Example: 43407
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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": []
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Update Gantt
POST/Projects/{ProjectId}/Tasks/Gantt

Example URI

POST /Projects/43407/Tasks/Gantt
URI Parameters
HideShow
ProjectId
string (required) Example: 43407
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
  "type": "sync",
  "requestId": 16097428391411,
  "tasks": {
    "removed": [
      {
        "id": 1179392
      }
    ]
  }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "success": true,
  "requestId": 16097428391411,
  "type": "sync",
  "revision": null,
  "tasks": {
    "rows": []
  },
  "dependencies": {
    "rows": []
  }
}
Response  400
HideShow
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. "
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Gantt Progress

Insert Automatic Progress
POST/Projects/{ProjectId}/ganttprogress/{PercentDone}

Example URI

POST /Projects/43407/ganttprogress/50
URI Parameters
HideShow
ProjectId
string (required) Example: 43407
PercentDone
string (required) Example: 50
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "success": true
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Update Task Statuses

Bulk Update Task Status
POST/Projects/{ProjectId}/UpdateTaskStatuses

Example URI

POST /Projects/62573/UpdateTaskStatuses
URI Parameters
HideShow
ProjectId
string (required) Example: 62573
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
  "TaskIds": "1179390",
  "SelectedStatus": 77653,
  "ProjectMethodTypeId": "1"
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "Id": 1540838,
  "StatusMessage": "Task status updated successfully.",
  "StatusCode": 200
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Add a task v2

Add a task v2
POST/Projects/{ProjectId}/Tasks

Example URI

POST /Projects/43407/Tasks
URI Parameters
HideShow
ProjectId
int (required) Example: 43407
Request
HideShow
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"
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "Id": 1193461,
  "StatusMessage": "Task inserted successfully.",
  "StatusCode": 200
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Task v2

Update a task v2
PATCH/Projects/{ProjectId}/Tasks/{TaskId}

Example URI

PATCH /Projects/43407/Tasks/1193461
URI Parameters
HideShow
ProjectId
int (required) Example: 43407
TaskId
int (required) Example: 1193461
Request
HideShow
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"
        }
    ]
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "Id": 1193461,
  "StatusMessage": "Task updated successfully.",
  "StatusCode": 200
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Bulk Delete tasks v2
DELETE/Projects/{ProjectId}/Tasks/

Example URI

DELETE /Projects/43407/Tasks/
URI Parameters
HideShow
ProjectId
int (required) Example: 43407
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "Id": 0,
  "StatusMessage": "Task 1 - Type task 123: Task deleted successfully ",
  "StatusCode": 200
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Get a Task
POST/Projects/{ProjectId}/Tasks/{TaskId}

Example URI

POST /Projects/43407/Tasks/1190324
URI Parameters
HideShow
ProjectId
int (required) Example: 43407
TaskId
int (required) Example: 1190324
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Task Team

Get a task team
GET/project/{ProjectId}/task/{TaskId}/team/

Example URI

GET /project/331/task/11334/team/
URI Parameters
HideShow
ProjectId
int (required) Example: 331
TaskId
int (required) Example: 11334
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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"
  }
]
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Delete a task team
DELETE/project/{ProjectId}/task/{TaskId}/team/{?TaskUserId}/

Example URI

DELETE /project/331/task/123/team/?TaskUserId=2986/
URI Parameters
HideShow
ProjectId
int (required) Example: 331
TaskId
int (required) Example: 123
TaskUserId
int (required) Example: 2986
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Deleted Successfully",
  "StatusCode": 200
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Assign a task team
POST/project/{ProjectId}/task/{TaskId}/team/{?ProjectUserIds}/{?TaskManager}

Assigns a task team.

TaskManager specifies that user is task manager or not.

Example URI

POST /project/331/task/123/team/?ProjectUserIds=2345,345/?TaskManager=false
URI Parameters
HideShow
ProjectId
int (required) Example: 331
TaskId
int (required) Example: 123
ProjectUserIds
string (required) Example: 2345,345
TaskManager
bool (required) Example: false
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "User Assigned successfully.",
  "StatusCode": 200
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
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 v2
GET/Projects/{ProjectId}/GetKanbanTaskStatus

Example URI

GET /Projects/55713/GetKanbanTaskStatus
URI Parameters
HideShow
ProjectId
int (required) Example: 55713
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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
  }
]
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Get or Insert agile task statuses v2
PATCH/Projects/{ProjectId}/GetKanbanTaskStatus

Example URI

PATCH /Projects/55713/GetKanbanTaskStatus
URI Parameters
HideShow
ProjectId
int (required) Example: 55713
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
  "Name": "Pendiente"
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "Id": 140204,
  "Name": "Pendiente",
  "KanbanId": 16864,
  "Color": "",
  "Order": 1,
  "Date": "",
  "Type": {
    "Id": 1
  },
  "Default": false,
  "LanguageId": 0
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Task Progress Reports

Get task progress reports
GET/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

GET /project/331/task/20441/progress/
URI Parameters
HideShow
ProjectId
int (required) Example: 331
TaskId
int (required) Example: 20441
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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"
      }
    ]
  }
]
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Task Progress Report

Get a task progress report
GET/project/{ProjectId}/task/{TaskId}/progress/{TaskProgressId}

Example URI

GET /project/331/task/20441/progress/12535
URI Parameters
HideShow
ProjectId
int (required) Example: 331
TaskId
int (required) Example: 20441
TaskProgressId
int (required) Example: 12535
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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"
  }
]
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Delete a task progress report
DELETE/project/{ProjectId}/task/{TaskId}/progress/{TaskProgressId}

Example URI

DELETE /project/331/task/20441/progress/2338
URI Parameters
HideShow
ProjectId
int (required) Example: 331
TaskId
int (required) Example: 20441
TaskProgressId
int (required) Example: 2338
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "TaskProgressId": 2338,
  "StatusMessage": "Task progress deleted successfully",
  "StatusCode": 200
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
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 v2
POST/projects/{ProjectId}/tasks/{TaskId}/progress/

Example URI

POST /projects/331/tasks/20441/progress/
URI Parameters
HideShow
ProjectId
int (required) Example: 331
TaskId
int (required) Example: 20441
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
  "AssessmentId": 1234,
  "Description": "detailsdescription",
  "ShortDescription": "des",
  "Percentage": 45,
  "ReportDate": "2017-06-15T00:00:00Z"
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "Id": 707463,
  "StatusMessage": "Task progress inserted successfully.",
  "StatusCode": 201
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Update a task progress report v2
PATCH/projects/{ProjectId}/tasks/{TaskId}/progress/{TaskProgressId}

Example URI

PATCH /projects/331/tasks/20441/progress/456
URI Parameters
HideShow
ProjectId
int (required) Example: 331
TaskId
int (required) Example: 20441
TaskProgressId
int (required) Example: 456
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
{
    "AssessmentId" : 67,
    "Description" : "detailsdescription",
    "ShortDescription": "des",
    "Percentage" : 45,
    "ReportDate" : "2017-06-15T00:00:00Z"
}
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
{
    "Id": 456,
    "StatusMessage": "Task progress updated successfully.",
    "StatusCode": 200
}
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
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 category
GET/project/{ProjectId}/task/{TaskId}/effortbyprofessionalcategory

Example URI

GET /project/331/task/20441/effortbyprofessionalcategory
URI Parameters
HideShow
ProjectId
int (required) Example: 331
TaskId
int (required) Example: 20441
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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
  }
]
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
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 member
GET/project/{ProjectId}/task/{TaskId}/effortbyteammember

Example URI

GET /project/331/task/20441/effortbyteammember
URI Parameters
HideShow
ProjectId
int (required) Example: 331
TaskId
int (required) Example: 20441
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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
  }
]
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Task Effort Categories

Add task effort categories
POST/project/{ProjectId}/task/{TaskId}/categories

Example URI

POST /project/331/task/20441/categories
URI Parameters
HideShow
ProjectId
int (required) Example: 331
TaskId
int (required) Example: 20441
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
[
  {
    "CategoryId": 379,
    "CategoryType": "2"
  }
]
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
{
        "StatusMessage": "Categories Inserted Successfully",
        "StatusCode": 201
}
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Task Effort Category

Delete task effort category
DELETE/project/{ProjectId}/task/{TaskId}/category/{CategoryId}

Example URI

DELETE /project/331/task/20441/category/379
URI Parameters
HideShow
ProjectId
int (required) Example: 331
TaskId
int (required) Example: 20441
CategoryId
int (required) Example: 379
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
{
    "CategoryId": 602,
    "CategoryType": "2"
}

}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
{
    "StatusMessage": "Deleted Successfully",
    "StatusCode": 200
}
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
      "StatusMessage": "Token expired. Please generate a new token.",
      "StatusCode": 400
}
{
    "StatusMessage": "Error occurred while Deleting",
    "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Task Effort

Update a task effort
PUT/project/{ProjectId}/task/{TaskId}/effort

Updates a task Effort. Please note that you should use different syntaxes for waterfall and agile tasks.

Example URI

PUT /project/12262/task/20441/effort
URI Parameters
HideShow
ProjectId
int (required) Example: 12262
TaskId
int (required) Example: 20441
Request
HideShow
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
    }
],
[{}]
]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Updated Successfully",
  "StatusCode": 200
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Task Dependencies

Get task dependencies
GET/project/{ProjectId}/taskdependencies

Example URI

GET /project/1070/taskdependencies
URI Parameters
HideShow
ProjectId
int (required) Example: 1070
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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>
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
      "StatusMessage": "Token expired. Please generate a new token.",
      "StatusCode": 400
}
{
    "StatusMessage": "Project doesn't exist",
    "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Add task dependencies
POST/project/{ProjectId}/taskdependencies

Example URI

POST /project/1070/taskdependencies
URI Parameters
HideShow
ProjectId
int (required) Example: 1070
Request
HideShow
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
  }
]
Response  200
HideShow
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
  }
]
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
      "StatusMessage": "Token expired. Please generate a new token.",
      "StatusCode": 400
}
{
    "StatusMessage": "Project doesn't exist",
    "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Delete task dependencies
DELETE/project/{ProjectId}/taskdependencies

Example URI

DELETE /project/1070/taskdependencies
URI Parameters
HideShow
ProjectId
int (required) Example: 1070
Request
HideShow
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
  }
]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
'success': true
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
      "StatusMessage": "Token expired. Please generate a new token.",
      "StatusCode": 400
}
{
    "StatusMessage": "Project doesn't exist",
    "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Task Baseline

Add task baseline
POST/project/{ProjectId}/baseline

Example URI

POST /project/1070/baseline
URI Parameters
HideShow
ProjectId
int (required) Example: 1070
Request
HideShow
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>
"
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "IsSuccess": true
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
      "StatusMessage": "Token expired. Please generate a new token.",
      "StatusCode": 400
}
{
    "StatusMessage": "Project doesn't exist",
    "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Project Baselines

Get Project Baselines

Get Project Baselines
GET/project/{ProjectId}/baselines

Example URI

GET /project/53907/baselines
URI Parameters
HideShow
ProjectId
int (required) Example: 53907
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "ProjectId": 0,
    "ProjectName": null,
    "ProjectNo": null,
    "ProjectStartDate": "2021-02-16T00:00:00Z",
    "ProjectEndDate": "2023-09-08T00:00:00Z",
    "ProjectDuration": 669,
    "BaselineId": 5387,
    "BaselineName": "My Baseline 1",
    "BaselineAuthor": "Daniel Piret",
    "BaselineStartDate": "2021-02-16T00:00:00Z",
    "BaselineEndDate": "2022-12-31T00:00:00Z",
    "ProjectBaselineDuration": 489,
    "BaselineTimeStamp": "2022-08-09T06:27:59Z",
    "IsActive": false,
    "BaselineTopDownDetail": {
      "TopDownInternalHours": "00:00",
      "TopDownInternalCost": 0,
      "TopDownExternalHours": "00:00",
      "TopDownExternalCost": 0,
      "TopDownUndefinedHours": "00:00",
      "TopDownUndefinedCost": 0,
      "TopDownTotalWorkforceHours": "00:00",
      "TopDownTotalWorkforceCost": 0,
      "TopDownPurchasesCost": 0,
      "TopDownTotalCost": 0,
      "TopDownMargin": 0,
      "TopDownRevenue": 0
    },
    "BaselineBottomUpDetail": {
      "BottomUpInternalHours": "00:00",
      "BottomUpInternalCost": 0,
      "BottomUpExternalHours": "1071:15",
      "BottomUpExternalCost": 10712.5,
      "BottomUpUndefinedHours": "00:00",
      "BottomUpUndefinedCost": 0,
      "BottomUpTotalWorkforceHours": "1071:15",
      "BottomUpTotalWorkforceCost": 10712.5,
      "BottomUpPurchasesCost": 0,
      "BottomUpTotalCost": 10712.5,
      "BottomUpMargin": -10712.5,
      "BottomUpRevenue": 0,
      "BottomUpPurchasesBlended": 0
    }
  }
]
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
      "StatusMessage": "Token expired. Please generate a new token.",
      "StatusCode": 400
}
{
    "StatusMessage": "Project doesn't exist",
    "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Get Active Baseline

Get Project Active Baseline Details
GET/project/{ProjectId}/activebaseline

Example URI

GET /project/53907/activebaseline
URI Parameters
HideShow
ProjectId
int (required) Example: 53907
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "ProjectId": 53907,
  "ProjectName": "Backend revamp",
  "ProjectNo": "PR-15-21010001",
  "ProjectStartDate": "2021-02-16T00:00:00Z",
  "ProjectEndDate": "2023-09-08T00:00:00Z",
  "ProjectDuration": 489,
  "BaselineId": 5388,
  "BaselineName": "Your baseline",
  "BaselineAuthor": "Daniel Piret",
  "BaselineStartDate": "2021-02-16T00:00:00Z",
  "BaselineEndDate": "2022-12-31T00:00:00Z",
  "ProjectBaselineDuration": 0,
  "BaselineTimeStamp": "2022-08-09T06:28:23Z",
  "IsActive": true,
  "BaselineTopDownDetail": {
    "TopDownInternalHours": "00:00",
    "TopDownInternalCost": 0,
    "TopDownExternalHours": "00:00",
    "TopDownExternalCost": 0,
    "TopDownUndefinedHours": "00:00",
    "TopDownUndefinedCost": 0,
    "TopDownTotalWorkforceHours": "00:00",
    "TopDownTotalWorkforceCost": 0,
    "TopDownPurchasesCost": 0,
    "TopDownTotalCost": 0,
    "TopDownMargin": 0,
    "TopDownRevenue": 0
  },
  "BaselineBottomUpDetail": {
    "BottomUpInternalHours": "00:00",
    "BottomUpInternalCost": 0,
    "BottomUpExternalHours": "1071:15",
    "BottomUpExternalCost": 10712.5,
    "BottomUpUndefinedHours": "00:00",
    "BottomUpUndefinedCost": 0,
    "BottomUpTotalWorkforceHours": "1071:15",
    "BottomUpTotalWorkforceCost": 10712.5,
    "BottomUpPurchasesCost": 0,
    "BottomUpTotalCost": 10712.5,
    "BottomUpMargin": -10712.5,
    "BottomUpRevenue": 0
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
      "StatusMessage": "Token expired. Please generate a new token.",
      "StatusCode": 400
}
{
    "StatusMessage": "Project doesn't exist",
    "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Baseline Detail

Get Project Baseline Details
GET/project/{ProjectId}/baseline/{BaselineId}

Example URI

GET /project/53907/baseline/5387
URI Parameters
HideShow
ProjectId
int (required) Example: 53907
BaselineId
int (required) Example: 5387
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "ProjectId": 53907,
  "ProjectName": "Backend revamp",
  "ProjectNo": "PR-15-21010001",
  "ProjectStartDate": "2021-02-16T00:00:00Z",
  "ProjectEndDate": "2023-09-08T00:00:00Z",
  "ProjectDuration": 489,
  "BaselineId": 5387,
  "BaselineName": "My Baseline 1",
  "BaselineAuthor": "Daniel Piret",
  "BaselineStartDate": "2021-02-16T00:00:00Z",
  "BaselineEndDate": "2022-12-31T00:00:00Z",
  "ProjectBaselineDuration": 0,
  "BaselineTimeStamp": "2022-08-09T06:27:59Z",
  "IsActive": false,
  "BaselineTopDownDetail": {
    "TopDownInternalHours": "00:00",
    "TopDownInternalCost": 0,
    "TopDownExternalHours": "00:00",
    "TopDownExternalCost": 0,
    "TopDownUndefinedHours": "00:00",
    "TopDownUndefinedCost": 0,
    "TopDownTotalWorkforceHours": "00:00",
    "TopDownTotalWorkforceCost": 0,
    "TopDownPurchasesCost": 0,
    "TopDownTotalCost": 0,
    "TopDownMargin": 0,
    "TopDownRevenue": 0
  },
  "BaselineBottomUpDetail": {
    "BottomUpInternalHours": "00:00",
    "BottomUpInternalCost": 0,
    "BottomUpExternalHours": "1071:15",
    "BottomUpExternalCost": 10712.5,
    "BottomUpUndefinedHours": "00:00",
    "BottomUpUndefinedCost": 0,
    "BottomUpTotalWorkforceHours": "1071:15",
    "BottomUpTotalWorkforceCost": 10712.5,
    "BottomUpPurchasesCost": 0,
    "BottomUpTotalCost": 10712.5,
    "BottomUpMargin": -10712.5,
    "BottomUpRevenue": 0,
    "BottomUpPurchasesBlended": 0
  }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
      "StatusMessage": "Token expired. Please generate a new token.",
      "StatusCode": 400
}
{
    "StatusMessage": "Project doesn't exist",
    "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Delete Project Baseline Details
DELETE/project/{ProjectId}/baseline/{BaselineId}

Example URI

DELETE /project/53907/baseline/5387
URI Parameters
HideShow
ProjectId
int (required) Example: 53907
BaselineId
int (required) Example: 5387
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "ProjectId": 53907,
  "BaselineId": 5388,
  "StatusMessage": "Baseline deleted",
  "StatusCode": 200
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
      "StatusMessage": "Token expired. Please generate a new token.",
      "StatusCode": 400
}
{
    "StatusMessage": "Project doesn't exist",
    "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Get Baseline Detail

Active/Inactive Project Baseline
PUT/project/{ProjectId}/baseline/{BaselineId}/{IsActive}

Example URI

PUT /project/53907/baseline/5387/true
URI Parameters
HideShow
ProjectId
int (required) Example: 53907
BaselineId
int (required) Example: 5387
IsActive
bit (required) Example: true
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "ProjectId": 53907,
  "BaselineId": 5387,
  "StatusMessage": "Baseline activated",
  "StatusCode": 200
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
      "StatusMessage": "Token expired. Please generate a new token.",
      "StatusCode": 400
}
{
    "StatusMessage": "Project doesn't exist",
    "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Rename Baseline

Rename Baseline
PUT/Project/{ProjectId}/renamebaseline

Example URI

PUT /Project/53907/renamebaseline
URI Parameters
HideShow
ProjectId
int (required) Example: 53907
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
  "BaselineId": 5387,
  "BaselineName": "My Baseline"
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "ProjectId": 53907,
  "BaselineId": 5387,
  "StatusMessage": "Baseline name updated",
  "StatusCode": 200
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
      "StatusMessage": "Token expired. Please generate a new token.",
      "StatusCode": 400
}
{
    "StatusMessage": "Project doesn't exist",
    "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Insert Baseline

Insert Baseline
POST/Project/{ProjectId}/projectbaseline

Example URI

POST /Project/53907/projectbaseline
URI Parameters
HideShow
ProjectId
int (required) Example: 53907
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
  "BaselineId": 5387,
  "BaselineName": "My Baseline 2",
  "BaselineAuthor": "Daniel Piret",
  "BaselineStartDate": "2021-02-16T00:00:00Z",
  "BaselineEndDate": "2022-12-31T00:00:00Z",
  "ProjectBaselineDuration": 0,
  "BaselineTimeStamp": "2022-08-09T06:27:59Z",
  "IsActive": false
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "ProjectId": 53907,
  "BaselineId": 6160,
  "StatusMessage": "Baseline created",
  "StatusCode": 200
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
      "StatusMessage": "Token expired. Please generate a new token.",
      "StatusCode": 400
}
{
    "StatusMessage": "Project doesn't exist",
    "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Purchases

Get Purchases

Get Purchases
POST/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

POST /purchases/search
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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
    }
  ]
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Project Purchases

Get project purchases
GET/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

GET /project/2338/purchases
URI Parameters
HideShow
ProjectId
string (required) Example: 2338
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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
  }
]
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Service purchases

Get service purchases
GET/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

GET /service/2338/purchases
URI Parameters
HideShow
ServiceId
string (required) Example: 2338
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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
  }
]
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Add Project Purchase v2

Add project purchase v2
POST/projects/{ProjectId}/purchases

Adds single or recurring project purchase.

Example URI

POST /projects/55614/purchases
URI Parameters
HideShow
ProjectId
int (required) Example: 55614
Request
HideShow
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
    }
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
        {
            "Id": 159665,
            "StatusMessage": "Purchase inserted successfully",
            "StatusCode": 201
        }
    {
        "PurchaseId": [
            "2935",
            "2936"
        ],
        "StatusMessage": "Purchase(s) inserted successfully",
        "StatusCode": 201
    }
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Project Purchase v2

Update a project purchase v2
PATCH/projects/{ProjectId}/purchases/{PurchaseId}

Example URI

PATCH /projects/55614/purchases/159665
URI Parameters
HideShow
ProjectId
int (required) Example: 55614
PurchaseId
int (required) Example: 159665
Request
HideShow
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
    }
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    {
        "Id": 159665,
        "StatusMessage": "Purchase updated successfully",
        "StatusCode": 200
    }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  500
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Delete a project purchase
DELETE/projects/{ProjectId}/purchases/{PurchaseId}

Example URI

DELETE /projects/55614/purchases/159665
URI Parameters
HideShow
ProjectId
int (required) Example: 55614
PurchaseId
int (required) Example: 159665
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "Id": 159665,
    "StatusMessage": "Purchase deleted successfully",
    "StatusCode": 200
  }
]
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Get a project purchase v2
POST/projects/{ProjectId}/purchases/{PurchaseId}

Example URI

POST /projects/55614/purchases/159662
URI Parameters
HideShow
ProjectId
int (required) Example: 55614
PurchaseId
int (required) Example: 159662
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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
    }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Bulk Update

Bulk update purchases
PATCH/Projects/{ProjectId}/Purchases

Example URI

PATCH /Projects/55614/Purchases
URI Parameters
HideShow
ProjectId
int (required) Example: 55614
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
  "PurchaseIds": "159662,159668",
  "StatusId": "47134"
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "StatusCode": 200
  }
]
Response  500
HideShow
Headers
Content-Type: application/json
Body
{
  "Id": 0,
  "StatusMessage": "Purchase 159662 does not exist",
  "StatusCode": 500
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Bulk Delete

Bulk delete purchases
DELETE/Projects/{ProjectId}/BulkDeletePurchases

Example URI

DELETE /Projects/55614/BulkDeletePurchases
URI Parameters
HideShow
ProjectId
int (required) Example: 55614
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
  "PurchaseIds": "159662,159668",
  "StatusId": "47134"
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "Id": 159662,
    "StatusMessage": "Purchase deleted successfully",
    "StatusCode": 200
  }
]
Response  400
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "Id": 0,
    "StatusMessage": "Project doesn't exist.",
    "StatusCode": 400
  }
]
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Task Purchases

Get Task Purchases
GET/Projects/{ProjectId}/TaskPurchases/{TaskId}

Example URI

GET /Projects/55614/TaskPurchases/121620
URI Parameters
HideShow
ProjectId
int (required) Example: 55614
TaskId
int (required) Example: 121620
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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
  }
]
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Service purchase

Add service purchase
POST/service/{ServiceId}/purchase/

Adds single or recurring service purchase. Please note that you should use different syntaxes for single and recurring purchases.

Example URI

POST /service/339/purchase/
URI Parameters
HideShow
ServiceId
int (required) Example: 339
Request
HideShow
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

}
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
{
    "PurchaseId":1234,
    "StatusMessage": "Purchase inserted successfully",
    "StatusCode": 201
}
{
    "PurchaseId": [
        "2935",
        "2936"
    ],
    "StatusMessage": "Purchase(s) inserted successfully",
    "StatusCode": 201
}
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Update a service purchase
PUT/service/{ServiceId}/purchase/{PurchaseId}

Example URI

PUT /service/339/purchase/345
URI Parameters
HideShow
ServiceId
int (required) Example: 339
PurchaseId
int (required) Example: 345
Request
HideShow
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
}
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
{
    "PurchaseId":345,
    "StatusMessage": "Purchase updated successfully",
    "StatusCode": 201
}
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Get a service purchase
GET/service/{ServiceId}/purchase/{PurchaseId}

Example URI

GET /service/339/purchase/2939
URI Parameters
HideShow
ServiceId
int (required) Example: 339
PurchaseId
int (required) Example: 2939
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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
    }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Delete a service purchase
DELETE/service/{ServiceId}/purchase/{PurchaseId}

Example URI

DELETE /service/331/purchase/2940
URI Parameters
HideShow
ServiceId
int (required) Example: 331
PurchaseId
int (required) Example: 2940
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    {
    "PurchaseId":null,
    "StatusMessage": "Purchase deleted successfully",
    "StatusCode": 200
    }
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Get project purchases budgets

Get project purchases budgets
GET/project/{ProjectId}/purchases/budgets

Example URI

GET /project/331/purchases/budgets
URI Parameters
HideShow
ProjectId
int (required) Example: 331
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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
  }
]
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Project purchases budget

Delete a project purchases budget
DELETE/project/{ProjectId}/purchases/budget/{BudgetAccountId}

Example URI

DELETE /project/331/purchases/budget/431
URI Parameters
HideShow
ProjectId
int (required) Example: 331
BudgetAccountId
int (required) Example: 431
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    {
    "BudgetAccountId": 431,
    "StatusMessage": "Record deleted successfully",
    "StatusCode": 200
    }
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Get a project purchases budget
GET/project/{ProjectId}/purchases/budget/{BudgetAccountId}

Example URI

GET /project/331/purchases/budget/235
URI Parameters
HideShow
ProjectId
int (required) Example: 331
BudgetAccountId
int (required) Example: 235
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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": ""
    }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Add a project purchases budget
POST/project/{ProjectId}/purchases/budget/

Example URI

POST /project/331/purchases/budget/
URI Parameters
HideShow
ProjectId
int (required) Example: 331
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
{
    "BudgetAccountName":"New Account",
    "Description":"",
    "Estimated":300,
    "BudgetAccountCurrencyId":1113
}
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "BudgetAccountId": 321,
  "StatusMessage": "Project purchase budget account inserted successfully",
  "StatusCode": 201
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Update a project purchases budget
PUT/project/{ProjectId}/purchases/budget/{BudgetAccountId}

Example URI

PUT /project/331/purchases/budget/321
URI Parameters
HideShow
ProjectId
int (required) Example: 331
BudgetAccountId
int (required) Example: 321
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
{
    "BudgetAccountName":"New Account update",
    "Description":"",
    "Estimated":300,
    "BudgetAccountCurrencyId":1113
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "BudgetAccountId": 321,
  "StatusMessage": "Project purchase budget account updated successfully",
  "StatusCode": 201
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Service purchases budgets

Get service purchases budgets
GET/service/{ServiceId}/purchases/budgets

Example URI

GET /service/339/purchases/budgets
URI Parameters
HideShow
ServiceId
int (required) Example: 339
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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
  }
]
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Service purchase budget

Delete a service purchase budget
DELETE/service/{ServiceId}/purchases/budget/{BudgetAccountId}

Example URI

DELETE /service/339/purchases/budget/431
URI Parameters
HideShow
ServiceId
int (required) Example: 339
BudgetAccountId
int (required) Example: 431
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
    {
    "BudgetAccountId": 431,
    "StatusMessage": "Record deleted successfully",
    "StatusCode": 200
    }
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Get a service purchases budget
GET/service/{ServiceId}/purchases/budget/{BudgetAccountId}

Example URI

GET /service/331/purchases/budget/315
URI Parameters
HideShow
ServiceId
int (required) Example: 331
BudgetAccountId
int (required) Example: 315
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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": ""
    }
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Add a service purchases budget
POST/service/{ServiceId}/purchases/budget/

Example URI

POST /service/339/purchases/budget/
URI Parameters
HideShow
ServiceId
int (required) Example: 339
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
{
    "BudgetAccountName":"New Account",
    "Description":"",
    "Estimated":300,
    "BudgetAccountCurrencyId":1113
}
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "BudgetAccountId": 557,
  "StatusMessage": "Service purchase budget account inserted successfully",
  "StatusCode": 201
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Update a service purchases budget
PUT/service/{ServiceId}/purchases/budget/{BudgetAccountId}

Example URI

PUT /service/339/purchases/budget/557
URI Parameters
HideShow
ServiceId
int (required) Example: 339
BudgetAccountId
int (required) Example: 557
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
{
    "BudgetAccountName":"New Account update",
    "Description":"",
    "Estimated":300,
    "BudgetAccountCurrencyId":1113
}
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "BudgetAccountId": 557,
  "StatusMessage": "Service purchase budget account updated successfully",
  "StatusCode": 201
}
Response  400
HideShow
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
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Revenues

Get Revenues

Get Revenues
POST/revenues/search

Example URI

POST /revenues/search
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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
    }
  ]
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Project revenues v2

Get project revenues v2
GET/Projects/{ProjectId}/Revenues

Example URI

GET /Projects/43407/Revenues
URI Parameters
HideShow
ProjectId
int (required) Example: 43407
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
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": "",
      "BaselineBlendedProjectedAmount": 0,
      "BaselineBlendedDate": "",
      "BaselineProjectedAmount": 0
    }
  ]
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Bulk Update Revenues
PATCH/Projects/{ProjectId}/Revenues

Example URI

PATCH /Projects/43407/Revenues
URI Parameters
HideShow
ProjectId
int (required) Example: 43407
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
  "RevenueIds": "29514,29515",
  "StatusId": "47133"
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusCode": 200
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Bulk Delete Revenues
DELETE/Projects/{ProjectId}/Revenues

Example URI

DELETE /Projects/43407/Revenues
URI Parameters
HideShow
ProjectId
int (required) Example: 43407
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
  "RevenueIds": "29514,29515",
  "StatusId": "47133"
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusCode": 200
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Add project revenue v2
POST/Projects/{ProjectId}/Revenues

Example URI

POST /Projects/43407/Revenues
URI Parameters
HideShow
ProjectId
int (required) Example: 43407
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
"For single revenue"

{
    "Name": "Test 1",
    "StatusId": 22,
    "ProjectedAmount": 100,
    "ActualAmount": 0,
    "Description": "",
    "StatusDate": "2017-03-14T00:00:00Z",
    "DueDate": "2017-03-14T00:00:00Z",
    "TaskDateGap": 0,
    "IsDependOnTask": false,
    "DependOnTaskDate": "",
    "No": "",
    "ProjectedAmountCurrencyId": 1113,
    "ProjectedAmountChangeApplied": "2017-03-14T00:00:00Z",
    "ActualAmountCurrencyId": 1113,
    "ActualAmountChangeApplied": "2017-03-14T00:00:00Z",
    "IsDependUponTaskStartDate": true,
    "IsConsiderActualValue": false,
    "DependingOnTaskId": 0
}

"For recurring revenue"

{
    "Name": "Recurring revenue",
    "Description": "description",
    "StatusId": 22,
    "StatusDate": "2017-07-05T00:00:00Z",,
    "No": "1234",
    "ActualAmount": 100,
    "ActualAmountCurrencyId": 1113,
    "ActualAmountChangeApplied": "2017-07-05T08:43:23.076Z",
    "ProjectedAmount": 100,
    "ProjectedAmountCurrencyId": 1113,
    "ProjectedAmountChangeApplied": "2017-07-05T08:43:23.076Z",
    "DependingOnTaskId": 0,
    "IsRecurrence": true,
    "DueDateAfter": 1,
    "FirstRevenueDate": "2017-07-05T00:00:00Z",
    "RepeatsOn": 2,
    "NumberOfRecurrences": 2
}
Response  201
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
    "RevenueId": 29544,
    "StatusMessage": "Revenue inserted successfully",
    "StatusCode": 201
}

{
    "RevenueId": [
        "29545","29546"
    ],
    "StatusMessage": "Revenue(s) inserted successfully",
    "StatusCode": 201
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Project 43407 does not exist",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Account 4019 does not exist",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter revenue name.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter valid due date.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter status id greater than 0.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter valid status id.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter valid status date.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter valid projected amount currency id.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter valid total amount currency id.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter valid depending task id.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter First revenue date.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter Repeat type.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter Number of recurrences.",
    "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Project revenue v2

Delete a project revenue v2
DELETE/Projects/{ProjectId}/Revenues/{RevenueId}

Example URI

DELETE /Projects/43407/Revenues/29501
URI Parameters
HideShow
ProjectId
int (required) Example: 43407
RevenueId
int (required) Example: 29501
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "Id": 29501,
  "StatusMessage": "Revenue deleted successfully",
  "StatusCode": 200
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
      "StatusMessage": "Token expired. Please generate a new token.",
      "StatusCode": 400
}
{
    "RevenueId": 29501,
    "StatusMessage": "Project 43407 does not exist",
    "StatusCode": 400
}
{
    "RevenueId": 29501,
    "StatusMessage": "Revenue 29501 does not exist",
    "StatusCode": 400
}
{
    "RevenueId": 29501,
    "StatusMessage": "Account 4019 does not exist",
    "StatusCode":400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Get a project revenue v2
GET/Projects/{ProjectId}/Revenues/{RevenueId}

Example URI

GET /Projects/43407/Revenues/29514
URI Parameters
HideShow
ProjectId
int (required) Example: 43407
RevenueId
int (required) Example: 29514
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "Id": 29514,
  "No": "",
  "Name": "test21052021",
  "Description": "sdgsdgsdgsd",
  "DueDate": "2021-05-21T00:00:00Z",
  "StatusId": 47131,
  "StatusDate": "2021-05-21T00:00:00Z",
  "ProjectedAmount": {
    "Amount": 100,
    "CurrencyId": 4145,
    "ExchangeRate": 1,
    "AppliedDate": "2021-05-21T05:50:17Z"
  },
  "ActualAmount": {
    "Amount": 0,
    "CurrencyId": 4145,
    "ExchangeRate": 1,
    "AppliedDate": "2021-05-21T11:20:56Z"
  },
  "DependingOnTaskId": 0,
  "DependingOnTaskName": "",
  "TaskDateGap": 0,
  "IsDependUponTaskStartDate": false,
  "Period": null
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Update a project revenue v2
PATCH/Projects/{ProjectId}/Revenues/{RevenueId}

Example URI

PATCH /Projects/43407/Revenues/29515
URI Parameters
HideShow
ProjectId
int (required) Example: 43407
RevenueId
int (required) Example: 29515
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
  "Name": "Test Update",
  "StatusId": 22,
  "ProjectedAmount": 100,
  "ActualAmount": 0,
  "Description": "",
  "StatusDate": "2017-03-14T00:00:00Z",
  "DueDate": "2017-03-14T00:00:00Z",
  "TaskDateGap": 0,
  "IsDependOnTask": false,
  "IsStartDate": "",
  "No": "",
  "ProjectedAmountCurrencyId": 1113,
  "ProjectedAmountChangeApplied": "2017-03-14T00:00:00Z",
  "ActualAmountCurrencyId": 1113,
  "ActualAmountChangeApplied": "2017-03-14T00:00:00Z",
  "IsDependUponTaskStartDate": true,
  "IsConsiderActualValue": false,
  "DependingOnTaskId": 0
}
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "RevenueId": 29515,
  "StatusMessage": "Revenue updated successfully",
  "StatusCode": 200
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
    "StatusMessage": "Token expired. Please generate a new token.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Revenue 29515 does not exist",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Account 4019 does not exist",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Project 43407 does not exist",
    "StatusCode": 400
}
{
    "StatusMessage": "Token expired. Please generate a new token.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Project 43407 does not exist",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Account 4019 does not exist",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter revenue name.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter valid due date.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter status id greater than 0.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter valid status id.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter valid status date.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter valid projected amount currency id.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter valid total amount currency id.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter valid depending task id.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter First revenue date.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter Repeat type.",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter Number of recurrences.",
    "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Associated Tasks With Revenue

Get Associated Tasks With Revenue
GET/Projects/{ProjectId}/Revenues/{RevenueId}/Periods/{MonthPeriod}

Example URI

GET /Projects/43407/Revenues/29493/Periods/202005
URI Parameters
HideShow
ProjectId
int (required) Example: 43407
RevenueId
int (required) Example: 29493
MonthPeriod
int (required) Example: 202005
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "Id": 1031678,
    "Name": "Task 1",
    "Price": 2000,
    "Status": null,
    "IsSelected": false,
    "IsAlreadyAssociated": false
  }
]
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Service revenues

Get service revenues
GET/service/{ServiceId}/revenues

Retrieves a list of all revenues of a particular service, 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

  • DependingOnActivity.DependingOnActivityId

  • DependingOnActivity.DependingOnActivityName

  • ActivityDateGap

  • IsDependOnActivity

  • IsStartDate

  • RevenueNo

  • IsDocumentAttached

Example URI

GET /service/542/revenues
URI Parameters
HideShow
ServiceId
int (required) Example: 542
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
{
        "ServiceId": 542,
        "RevenueId": 2947,
        "RevenueName": "test revenue",
        "RevenueStatus": {
            "RevenueStatusName": "Busy",
            "RevenueStatusId": 13,
            "RevenueStatusIcon": "https://app.itmplatform.com/UploadData/Iconlibrary/pencil--arrow.png",
            "StatusDate": "2017-07-25T00:00:00Z"
        },
        "Description": "revenue description",
        "DueDate": "2017-07-25T00:00:00Z",
        "DependingOnActivity": {
            "DependingOnActivityName": "test activity",
            "DependingOnActivityId": 175313
        },
        "ActivityDateGap": 0,
        "IsDependOnActivity": true,
        "IsStartDate": false,
        "RevenueNo": "rev123",
        "ActualAmountDetail": {
            "ActualAmount": 0,
            "ActualAmountCurrencyId": 1113,
            "ActualAmountExchangeRate": 1,
            "ActualAmountChangeApplied": "2017-09-07T11:44:09Z",
            "ActualAmountCurrencySymbol": "$",
            "ActualAmountCurrencyAlphabeticCode": "USD"
        },
        "ProjectedAmountDetail": {
            "ProjectedAmount": 123,
            "ProjectedAmountCurrencyId": 1113,
            "ProjectedAmountExchangeRate": 1,
            "ProjectedAmountChangeApplied": "2017-09-07T11:44:09Z",
            "ProjectedAmountCurrencySymbol": "$",
            "ProjectedAmountCurrencyAlphabeticCode": "USD"
        }
]
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
      "StatusMessage": "Token expired. Please generate a new token.",
      "StatusCode": 400
}

{
    "StatusMessage": "Please enter valid field name",
    "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Service revenue status

Get service revenue status
GET/service/{ServiceId}/revenuestatuses

Example URI

GET /service/542/revenuestatuses
URI Parameters
HideShow
ServiceId
int (required) Example: 542
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
Headers
Content-Type: application/json
Body
[
  {
    "RevenueStatusName": "Available",
    "RevenueStatusBaseId": 22,
    "IsConsiderAsActualValue": false,
    "IconPath": "~/UploadData/Iconlibrary/plus.png",
    "IsDefault": true
  },
  {
    "RevenueStatusName": "Away",
    "RevenueStatusBaseId": 16,
    "IsConsiderAsActualValue": false,
    "IconPath": "~/UploadData/Iconlibrary/application--plus.png",
    "IsDefault": false
  },
  {
    "RevenueStatusName": "Busy",
    "RevenueStatusBaseId": 13,
    "IsConsiderAsActualValue": false,
    "IconPath": "~/UploadData/Iconlibrary/pencil--arrow.png",
    "IsDefault": false
  }
]
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Service revenue

Delete a service revenue
DELETE/service/{ServiceId}/revenue/{RevenueId}

Example URI

DELETE /service/542/revenue/2951
URI Parameters
HideShow
ServiceId
int (required) Example: 542
RevenueId
int (required) Example: 2951
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "RevenueId": null,
  "StatusMessage": "Revenue deleted successfully",
  "StatusCode": 200
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
      "StatusMessage": "Token expired. Please generate a new token.",
      "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Service doesn't exist",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Revenue id/s doesn't exist",
    "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Get a service revenue
GET/service/{ServiceId}/revenue/{RevenueId}

Example URI

GET /service/542/revenue/2947
URI Parameters
HideShow
ServiceId
int (required) Example: 542
RevenueId
int (required) Example: 2947
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Response  200
HideShow
Headers
Content-Type: application/json
Body
{
  "ServiceId": 542,
  "RevenueId": 2947,
  "RevenueName": "test revenue",
  "RevenueStatusName": "Busy",
  "RevenueStatusId": 13,
  "RevenueStatusIcon": "https://app.itmplatform.com/UploadData/Iconlibrary/pencil--arrow.png",
  "StatusDate": "2017-07-25T00:00:00Z",
  "ProjectedAmount": 123,
  "ActualAmount": 0,
  "Description": "test re",
  "DueDate": "2017-07-25T00:00:00Z",
  "DependingOnActivityName": "test activity",
  "DependingOnActivityId": 175313,
  "ActivityDateGap": 0,
  "IsDependOnActivity": false,
  "IsStartDate": false,
  "RevenueNo": "rev123",
  "ProjectedAmountCurrencyId": 1113,
  "ProjectedAmountExchangeRate": 1,
  "ProjectedAmountChangeApplied": "2017-09-07T11:44:09Z",
  "ActualAmountCurrencyId": 1113,
  "ActualAmountExchangeRate": 1,
  "ActualAmountChangeApplied": "2017-09-07T11:44:09Z",
  "IsConsiderActualValue": false,
  "IsDependUponActivityStartDate": true,
  "ActivityPath": "test activity"
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Token expired. Please generate a new token.",
  "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Add a service revenue
POST/service/{ServiceId}/revenue/

Example URI

POST /service/542/revenue/
URI Parameters
HideShow
ServiceId
int (required) Example: 542
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
"For single revenue"

{
    "RevenueName":"Revenue Insert",
    "RevenueStatusId":13,
    "ProjectedAmount":100,
    "ActualAmount":0,
    "Description":"",
    "StatusDate":"2017-03-14T00:00:00Z",
    "DueDate":"2017-03-14T00:00:00Z",
    "ActivityDateGap":0,
    "IsDependOnActivity":false,
    "IsStartDate":"",
    "RevenueNo":"",
    "ProjectedAmountCurrencyId":1113,
    "ProjectedAmountExchangeRate":1,
    "ProjectedAmountChangeApplied":"2017-03-14T00:00:00Z",
    "ActualAmountCurrencyId":1113,
    "ActualAmountExchangeRate":1,
    "ActualAmountChangeApplied":"2017-03-14T00:00:00Z",
    "IsDependUponTaskStartDate":true,
    "IsConsiderActualValue":false,
    "DependingOnActivityId" :0
}

"For recurring revenue"

{
    "RevenueName":"Recurring revenue",
    "Description":"description",
    "RevenueStatusId":22,
    "StatusDate": "2017-07-05T00:00:00Z",,
    "RevenueNo":"1234",
    "ActualAmount":100,
    "ActualAmountCurrencyId":1113,
    "ProjectedAmountExchangeRate":1,
    "ActualAmountChangeApplied":"2017-07-05T08:43:23.076Z",
    "ProjectedAmount":100,
    "ProjectedAmountCurrencyId":1113,
    "ProjectedAmountExchangeRate":1,
    "ProjectedAmountChangeApplied":"2017-07-05T08:43:23.076Z",
    "DependingOnTaskId":0,
    "IsRecurrence":true,
    "DueDateAfter":1,
    "FirstRevenueDate":"2017-07-05T00:00:00Z",
    "RepeatsOn":2,
    "RepeatsOnValue":1,
    "NumberOfRecurrences":2
}
Response  201
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
{
    "RevenueId":3014,
    "StatusMessage": "Revenue inserted successfully",
    "StatusCode": 201
}
}

{
{
    "RevenueId": [
        "3015",
    "3016"
    ],
    "StatusMessage": "Revenue(s) inserted successfully",
    "StatusCode": 201
}
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
      "StatusMessage": "Token expired. Please generate a new token.",
      "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Service doesn't exist",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter revenue name",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter status date",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter valid status id",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter valid status date",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter valid due date",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter valid Projected amount",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter valid actual amount",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter valid projected amount currency id",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter valid total amount currency id",
    "StatusCode": 400
}
{
    "RevenueId": 0,
    "StatusMessage": "Please enter valid depending activity id",
    "StatusCode": 400
}
Response  401
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "Invalid Token.",
  "StatusCode": 401
}
Response  403
HideShow
Headers
Content-Type: application/json
Body
{
  "StatusMessage": "You need additional privileges to complete this action.",
  "StatusCode": 403
}

Update a service revenue
PUT/service/{ServiceId}/revenue/{RevenueId}

Example URI

PUT /service/542/revenue/3014
URI Parameters
HideShow
ServiceId
int (required) Example: 542
RevenueId
int (required) Example: 3014
Request
HideShow
Headers
Content-Type: application/json
Token: [token]
Body
{
  "RevenueName": "Update Revenue",
  "RevenueStatusId": 13,
  "ProjectedAmount": 100,
  "ActualAmount": 0,
  "Description": "",
  "StatusDate": "2017-03-14T00:00:00Z",
  "DueDate": "2017-03-14T00:00:00Z",
  "ActivityDateGap": 0,
  "IsDependOnActivity": false,
  "IsStartDate": "",
  "RevenueNo": "",
  "ProjectedAmountCurrencyId": 1113,
  "ProjectedAmountExchangeRate": 1,
  "ProjectedAmountChangeApplied": "2017-03-14T00:00:00Z",
  "ActualAmountCurrencyId": 1113,
  "ActualAmountExchangeRate": 1,
  "ActualAmountChangeApplied": "2017-03-14T00:00:00Z",
  "IsDependUponTaskStartDate": true,
  "IsConsiderActualValue": false,
  "DependingOnActivityId": 0
}
Response  201
HideShow
Headers
Content-Type: application/json
Body
{
  "RevenueId": 3014,
  "StatusMessage": "Revenue updated successfully",
  "StatusCode": 201
}
Response  400
HideShow
Headers
Content-Type: application/json
Body
{
      "StatusMessage": "Token expired. Please generate a new token.",
      "StatusCode": 400
}
{
    "RevenueId":