When attempting to update Cost Plan Details using the Clarity REST API (PUT method), the API call returns a 200 OK success status code, but the submitted values are not updated in the application.
Clarity PPM 16.x
This issue occurs when the incorrect IDs are mapped within the API request URL and the JSON payload body.
Silent Failure (200 OK but no update): This happens when the Cost Plan ID is passed as the _internalId in the JSON payload. Because the ID does not correspond to a valid Cost Plan Detail row, the system silently skips the update.
API-1004 Error: This happens when the Cost Plan Detail ID is mistakenly placed in the URL endpoint instead of the Cost Plan ID.
To successfully update Cost Plan Details, the IDs must be placed in their exact designated locations within the request.
Ensure the following configuration is used for the PUT operation:
Header Requirement: The PUT operation requires the following header to enforce the update:
x-api-force-patch = true
URL Endpoint: The target URL must contain the Cost Plan ID.
Format: https://<server_url>/ppm/rest/v1/costPlans/{Cost_Plan_ID}/costPlanDetails
JSON Payload Body: The _internalId field within the JSON body must strictly be the Cost Plan Detail ID (fin_cost_plan_details), not the Cost Plan ID.
Example Payload:
{
"d": [
{
"cost": {
"workEffortUnit": "hours",
"pattern": "uniform",
"periodList": [
{
"periods": [
{
"start": "2026-03-01T00:00:00",
"finish": "2026-03-31T00:00:00",
"value": "0"
},
{
"start": "2026-04-01T00:00:00",
"finish": "2026-04-30T00:00:00",
"value": "200"
}
]
}
]
},
"_internalId": <cost_plan_detail_id>
}
]
}