# Recalculate a Quote/Contract/Rebate Agreement/Compensation Plan Calculates a Quote, Contract, Rebate Agreement, or Compensation Plan. Triggers a synchronous recalculation of the given CLIC document. If a header formula calls switchToAsync() during the pre-phase, the synchronous calculation is aborted, all changes are rolled back, and an asynchronous job is created instead. In that case the response contains a JobStatusTracker object instead of the calculated CLIC header. Use the typedId field in response.data[0] to distinguish the response type: - CLIC header — typedId ends with .Q, .C, .RA, or .CO (e.g. 42.Q) - JobStatusTracker (async) — typedId ends with .JST (e.g. 107.JST) >This endpoint is used in the REACT version only. It is not advisable to mix REACT endpoints together with Ember endpoints. Endpoint: POST /clicmanager.calculate/{typedId} Security: basic, X-PriceFx-jwt ## Path parameters: - `typedId` (string, required) The typedId of the document you want to calculate. ## Query parameters: - `validationType` (string) Configures user inputs validation (if all required fields are filled in) when a quote or contract is recalculated.Possible values:none – Disables the validation.strict – Prevents the action to be executed if the validation fails. ## Response 200 fields (application/json): - `response` (object) - `response.node` (string) - `response.data` (array) Contains the calculated CLIC header + computation stats on synchronous completion, or a single JobStatusTracker object when the calculation was switched to async. Inspect typedId to distinguish: .JST suffix means async, .Q/.C/.RA/.CO means synchronous result. - `response.data.outputs` (array) - `response.data.lastUpdateByName` (string) - `response.data.createdByName` (string) - `response.data.typedId` (string) Unique identifier of the returned object. The suffix indicates the type: .Q (Quote), .C (Contract), .RA (Rebate Agreement), .CO (Compensation Plan) for synchronous results, or .JST for a JobStatusTracker when the calculation was switched to async. - `response.data.workflowStatus` (string) - `response.data.inputs` (array) - `response.data.inputs.name` (string) - `response.data.inputs.label` (string) - `response.data.inputs.url` (string) - `response.data.inputs.type` (string) - `response.data.inputs.parameterConfig` (object) - `response.data.inputs.formattingOptions` (object) - `response.data.inputs.value` (object) - `response.data.inputs.value.Helptext` (string) - `response.data.inputs.value.Title` (string) - `response.data.inputs.value.helplink` (string) - `response.data.inputs.value.Placeholder` (string) - `response.data.inputs.value.CustAttrName` (string) - `response.data.inputs.value.CustAttrValue` (string) - `response.data.inputs.value.Exportable` (boolean) - `response.data.inputs.value.Importable` (boolean) - `response.data.inputs.value.Configurator` (object) - `response.data.inputs.value.InlineConfigurator` (object) - `response.data.inputs.value.InlineConfigurator.Checkbox1` (boolean) - `response.data.inputs.value.InputMatrix` (array) - `response.data.inputs.value.InputMatrix.comment` (string) - `response.data.inputs.value.InputMatrix.oneof` (string) - `response.data.inputs.value.Option` (string) - `response.data.inputs.value.Options` (string) - `response.data.lastUpdateDate` (string) - `response.data.serverMessagesExtended` (array) - `response.data.serverMessagesExtended.key` (string) - `response.data.serverMessagesExtended.message` (string) - `response.data.quoteType` (string) - `response.data.quoteStatus` (string) - `response.data.expiryDate` (string) - `response.data.createDate` (string) - `response.data.dirty` (boolean) - `response.data.refreshInputs` (boolean) - `response.data.rootUniqueName` (string) - `response.data.numberOfAttachments` (integer) - `response.data.targetDate` (string) - `response.data.ioMeta` (object) - `response.data.originDeleted` (boolean) - `response.data.version` (integer) - `response.data.uniqueName` (string) - `response.data.serverMessages` (array) - `response.data.createdBy` (integer) - `response.data.viewState` (object) - `response.data.calculationStatus` (integer) - `response.data.hasWorkflowHistory` (boolean) - `response.data.nodeId` (integer) - `response.data.lastUpdateBy` (integer) - `response.data.status` (string) - `response.data.folderChanged` (boolean) Returns true when a folder is added, renamed, deleted, or moved. - `response.data.inputChanged` (array) Returns lineId when an input is added, or updated by a header logic. - `response.data.outputChanged` (array) Returns lineId when an output is added, or updated by a header logic. - `response.data.durations` (object) Stats result of the currently performed calculation. - `response.data.durations.header` (array) - `response.data.durations.header.duration` (integer) - `response.data.durations.items` (array)