> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tesouro.com/llms.txt
> Use this file to discover all available pages before exploring further.

# updateDecisionComponent

> Update a decision component.

`Mutation`

## Arguments

<ParamField path="input" type="UpdateDecisionComponentInput!" required>
  <Expandable title="child attributes">
    <ParamField path="comments" type="[DecisionComponentCommentsInput!]">
      Comments to add to the decision component.

      <Expandable title="child attributes">
        <ParamField path="addCommentsInput" type="AddDecisionComponentCommentsInput">
          Input for adding a new comment

          <Expandable title="child attributes">
            <ParamField path="comment" type="String!" required>
              The comment text to add
            </ParamField>
          </Expandable>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="decisionComponentId" type="UUID!" required>
      The unique identifier of the decision component to update.
    </ParamField>

    <ParamField path="dynamicFields" type="[UnderwritingDynamicFieldInput!]">
      Dynamic field mutations to apply. Each entry is exactly one of add, remove, or update.

      <Expandable title="child attributes">
        <ParamField path="addDynamicField" type="AddUnderwritingDynamicFieldInput">
          Add a new dynamic field value.

          <Expandable title="child attributes">
            <ParamField path="decisionComponentItemId" type="UUID!" required>
              The decision-component item the value is scoped to (e.g. one owner).
            </ParamField>

            <ParamField path="dynamicFieldSchemaId" type="UUID!" required>
              The id of the dynamic field schema node this value is for.
            </ParamField>

            <ParamField path="value" type="String!" required>
              The value to set, as a string. Interpreted according to the schema node's data type.
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField path="removeDynamicField" type="RemoveUnderwritingDynamicFieldInput">
          Remove an existing dynamic field value.

          <Expandable title="child attributes">
            <ParamField path="dynamicFieldId" type="UUID!" required>
              The id of the dynamic field value to remove.
            </ParamField>
          </Expandable>
        </ParamField>

        <ParamField path="updateDynamicField" type="UpdateUnderwritingDynamicFieldInput">
          Update an existing dynamic field value.

          <Expandable title="child attributes">
            <ParamField path="dynamicFieldId" type="UUID!" required>
              The id of the dynamic field value to update.
            </ParamField>

            <ParamField path="value" type="String">
              The value to set, as a string. Interpreted according to the schema node's data type.
            </ParamField>
          </Expandable>
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="fields" type="[UpdateDecisionComponentFieldInput!]">
      Decision component Field values to update.

      <Expandable title="child attributes">
        <ParamField path="fieldId" type="UUID!" required>
          The unique identifier of the decision component field to update.
        </ParamField>

        <ParamField path="fieldValue" type="String">
          The updated value for this field.
        </ParamField>
      </Expandable>
    </ParamField>

    <ParamField path="status" type="DecisionComponentUpdatableStatus">
      The new status to set for the decision component.

      <Expandable title="Possible enum values">
        <ParamField path="ACCEPTED" type="enum">
          The decision component has been accepted.
        </ParamField>

        <ParamField path="NOT_ACCEPTED" type="enum">
          The decision component has not been accepted.
        </ParamField>
      </Expandable>
    </ParamField>
  </Expandable>
</ParamField>

## Return type

`UpdateDecisionComponentPayload!`

<ResponseField name="decisionComponent" type="DecisionComponent">
  The decision component that was updated.

  <Expandable title="child attributes">
    <ResponseField name="attachments" type="[Attachment!]!" required>
      See [Attachment](/acquiring/reference/graphql/types/attachment)
    </ResponseField>

    <ResponseField name="comments" type="[Comment!]!" required>
      See [Comment](/acquiring/reference/graphql/types/comment)
    </ResponseField>

    <ResponseField name="hasAttachments" type="Boolean!" required />

    <ResponseField name="hasComments" type="Boolean!" required />

    <ResponseField name="id" type="UUID!" required>
      The unique identifier of the decision component.
    </ResponseField>

    <ResponseField name="items" type="[DecisionComponentItem!]!" required>
      See [DecisionComponentItem](/acquiring/reference/graphql/types/decision-component-item)
    </ResponseField>

    <ResponseField name="lastUpdatedBy" type="Actor">
      The actor (user or app) who last updated this record

      See [Actor](/acquiring/reference/graphql/types/actor)
    </ResponseField>

    <ResponseField name="schema" type="UnderwritingDecisionComponentSchema">
      See [UnderwritingDecisionComponentSchema](/acquiring/reference/graphql/types/underwriting-decision-component-schema)
    </ResponseField>

    <ResponseField name="status" type="DecisionComponentStatus">
      The current processing status of this decision component in the underwriting workflow.

      See [DecisionComponentStatus](/acquiring/reference/graphql/types/decision-component-status)
    </ResponseField>

    <ResponseField name="updatedDateTime" type="DateTime!" required>
      The last date and time this was updated in UTC.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="errors" type="[UpdateDecisionComponentError!]">
  Errors that occurred during the mutation, if any. Null or empty indicates success.

  <Expandable title="Possible types">
    <Expandable title="BadRequestError">
      <ResponseField name="advice" type="String!" required />

      <ResponseField name="code" type="CommonErrorCode!" required>
        See [CommonErrorCode](/acquiring/reference/graphql/types/common-error-code)
      </ResponseField>

      <ResponseField name="message" type="String!" required />
    </Expandable>

    <Expandable title="ForbiddenError">
      <ResponseField name="advice" type="String!" required />

      <ResponseField name="code" type="CommonErrorCode!" required>
        See [CommonErrorCode](/acquiring/reference/graphql/types/common-error-code)
      </ResponseField>

      <ResponseField name="message" type="String!" required />
    </Expandable>

    <Expandable title="InvalidActorError">
      <ResponseField name="advice" type="String!" required />

      <ResponseField name="code" type="CommonErrorCode!" required>
        See [CommonErrorCode](/acquiring/reference/graphql/types/common-error-code)
      </ResponseField>

      <ResponseField name="message" type="String!" required />
    </Expandable>

    <Expandable title="InvalidOrganizationError">
      <ResponseField name="advice" type="String!" required />

      <ResponseField name="code" type="CommonErrorCode!" required>
        See [CommonErrorCode](/acquiring/reference/graphql/types/common-error-code)
      </ResponseField>

      <ResponseField name="message" type="String!" required />
    </Expandable>

    <Expandable title="NotFoundError">
      <ResponseField name="advice" type="String!" required />

      <ResponseField name="code" type="CommonErrorCode!" required>
        See [CommonErrorCode](/acquiring/reference/graphql/types/common-error-code)
      </ResponseField>

      <ResponseField name="message" type="String!" required />

      <ResponseField name="resourceId" type="String" />

      <ResponseField name="resourceName" type="String" />
    </Expandable>

    <Expandable title="ServerError">
      <ResponseField name="advice" type="String!" required />

      <ResponseField name="code" type="CommonErrorCode!" required>
        See [CommonErrorCode](/acquiring/reference/graphql/types/common-error-code)
      </ResponseField>

      <ResponseField name="message" type="String!" required />
    </Expandable>

    <Expandable title="UnderwritingApplicationFieldValidationError">
      Represents a field-level validation error on an underwriting application.

      <ResponseField name="code" type="UnderwritingApplicationFieldValidationErrorCode!" required>
        A static code for tying the response back programmatically.

        <Expandable title="Possible enum values">
          <ResponseField name="FIELD_TOO_LONG" type="enum">
            A field value exceeds the maximum allowed length.
          </ResponseField>

          <ResponseField name="INVALID_BUSINESS_ADDRESS_COUNTRY_CODE" type="enum">
            The business address country code is not a recognized ISO 3166-1 alpha-3 value.
          </ResponseField>

          <ResponseField name="INVALID_EIN" type="enum">
            The Employer Identification Number (EIN) does not conform to the expected format of XX-XXXXXXX (e.g., 12-3456789).
          </ResponseField>

          <ResponseField name="INVALID_FIELD" type="enum">
            The field value does not meet the required format or constraints.
          </ResponseField>

          <ResponseField name="INVALID_MCC" type="enum">
            The Merchant Category Code (MCC) is not a recognized value.
          </ResponseField>

          <ResponseField name="INVALID_SSN" type="enum">
            The Social Security Number (SSN) does not conform to the expected format of XXX-XX-XXXX (e.g., 012-34-5678).
          </ResponseField>

          <ResponseField name="INVALID_TELEPHONE_NUMBER" type="enum">
            The telephone number is invalid. It must be a valid phone number containing only digits, with optional dashes, dots, or spaces.
          </ResponseField>

          <ResponseField name="INVALID_TIN" type="enum">
            The tax identification number (TIN) does not conform to the expected format: XXX-XX-XXXX for individuals (SSN/ITIN) or XX-XXXXXXX for businesses (EIN).
          </ResponseField>

          <ResponseField name="MISSING_FIELD" type="enum">
            A required field was not provided.
          </ResponseField>
        </Expandable>
      </ResponseField>

      <ResponseField name="field" type="String!" required>
        The field that is invalid.
      </ResponseField>

      <ResponseField name="message" type="String!" required>
        A helpful message to help fix the invalid value.
      </ResponseField>
    </Expandable>

    <Expandable title="UnderwritingApplicationStakeholderFieldValidationError">
      Represents a field-level validation error on a stakeholder within an underwriting application.

      <ResponseField name="code" type="UnderwritingApplicationStakeholderFieldValidationErrorCode!" required>
        A static code for tying the response back programmatically

        <Expandable title="Possible enum values">
          <ResponseField name="FIELD_TOO_LONG" type="enum">
            A field value exceeds the maximum allowed length.
          </ResponseField>

          <ResponseField name="INVALID_FIELD" type="enum">
            The field value does not meet the required format or constraints.
          </ResponseField>

          <ResponseField name="INVALID_TELEPHONE_NUMBER" type="enum">
            The stakeholder's telephone number is invalid. It must be a valid phone number containing only digits, with optional dashes, dots, or spaces.
          </ResponseField>

          <ResponseField name="MISSING_FIELD" type="enum">
            A required field was not provided.
          </ResponseField>
        </Expandable>
      </ResponseField>

      <ResponseField name="field" type="String!" required>
        The field that is invalid
      </ResponseField>

      <ResponseField name="message" type="String!" required>
        A helpful message to help fix the invalid value
      </ResponseField>

      <ResponseField name="stakeholderId" type="UUID!" required>
        The associated stakeholder ID
      </ResponseField>
    </Expandable>

    <Expandable title="UnderwritingApplicationValidationError">
      Represents a validation error on an underwriting application that is not specific to a single field.

      <ResponseField name="code" type="UnderwritingApplicationValidationErrorCode!" required>
        A static code for tying the response back programmatically.

        <Expandable title="Possible enum values">
          <ResponseField name="INTERNAL_SERVER_ERROR" type="enum">
            An unexpected server error occurred while processing the application.
          </ResponseField>

          <ResponseField name="INVALID_OWNER" type="enum">
            The caller does not own the application or lacks permission to modify it.
          </ResponseField>

          <ResponseField name="INVALID_STATUS" type="enum">
            The application is in a state that does not permit this operation.
          </ResponseField>

          <ResponseField name="MISSING_GUARANTOR" type="enum">
            The application is missing a required guarantor.
          </ResponseField>

          <ResponseField name="MISSING_STAKEHOLDER" type="enum">
            The application is missing a required stakeholder with at least one role.
          </ResponseField>
        </Expandable>
      </ResponseField>

      <ResponseField name="message" type="String!" required>
        A helpful message to help fix the validation error.
      </ResponseField>
    </Expandable>

    <Expandable title="UnderwritingApplicationBankAccountFieldValidationError">
      Represents a field-level validation error on a bank account within an underwriting application.

      <ResponseField name="bankAccountId" type="UUID!" required>
        The associated bank account id
      </ResponseField>

      <ResponseField name="code" type="UnderwritingApplicationBankAccountFieldValidationGraphQlErrorCode!" required>
        A static code for tying the response back programmatically

        <Expandable title="Possible enum values">
          <ResponseField name="FIELD_TOO_LONG" type="enum">
            A field value exceeds the maximum allowed length.
          </ResponseField>

          <ResponseField name="INVALID_CHARACTERS" type="enum">
            A field contains characters that are not permitted.
          </ResponseField>

          <ResponseField name="MISSING_FIELD" type="enum">
            A required field was not provided.
          </ResponseField>
        </Expandable>
      </ResponseField>

      <ResponseField name="field" type="String!" required>
        The field that is invalid
      </ResponseField>

      <ResponseField name="message" type="String!" required>
        A helpful message to help fix the invalid value
      </ResponseField>
    </Expandable>
  </Expandable>
</ResponseField>

<RequestExample>
  ```graphql Operation lines expandable theme={null}
  mutation UpdateDecisionComponent($input: UpdateDecisionComponentInput!) {
    updateDecisionComponent(input: $input) {
      decisionComponent {
        attachments {
          fileName
          id
          size
          uploadedDateTime
        }
        comments {
          content
          createdDateTime
          decisionComponent
          id
          updatedDateTime
        }
        hasAttachments
        hasComments
        id
        items {
          descriptiveText
          displayOrder
          guidance
          id
          label
          stakeholderId
          status
        }
        lastUpdatedBy {
          name
          type
        }
        schema {
          id
          label
          requiredRoles
          requiredScopes
        }
        status
        updatedDateTime
      }
      errors {
        ... on BadRequestError {
          advice
          code
          message
        }
        ... on ForbiddenError {
          advice
          code
          message
        }
        ... on InvalidActorError {
          advice
          code
          message
        }
        ... on InvalidOrganizationError {
          advice
          code
          message
        }
        ... on NotFoundError {
          advice
          code
          message
          resourceId
          resourceName
        }
        ... on ServerError {
          advice
          code
          message
        }
        ... on UnderwritingApplicationFieldValidationError {
          code
          field
          message
        }
        ... on UnderwritingApplicationStakeholderFieldValidationError {
          code
          field
          message
          stakeholderId
        }
        ... on UnderwritingApplicationValidationError {
          code
          message
        }
        ... on UnderwritingApplicationBankAccountFieldValidationError {
          bankAccountId
          code
          field
          message
        }
      }
    }
  }
  ```

  ```json Variables lines expandable theme={null}
  {
    "input": {
      "decisionComponentId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
    }
  }
  ```

  ```bash cURL lines expandable theme={null}
  curl --request POST \
    --url https://api.sandbox.com/graphql \
    --header 'Content-Type: application/json' \
    --header 'Authorization: Bearer <YOUR_ACCESS_TOKEN>' \
    --data '{
    "query": "mutation UpdateDecisionComponent($input: UpdateDecisionComponentInput!) {\n  updateDecisionComponent(input: $input) {\n    decisionComponent {\n      attachments {\n        fileName\n        id\n        size\n        uploadedDateTime\n      }\n      comments {\n        content\n        createdDateTime\n        decisionComponent\n        id\n        updatedDateTime\n      }\n      hasAttachments\n      hasComments\n      id\n      items {\n        descriptiveText\n        displayOrder\n        guidance\n        id\n        label\n        stakeholderId\n        status\n      }\n      lastUpdatedBy {\n        name\n        type\n      }\n      schema {\n        id\n        label\n        requiredRoles\n        requiredScopes\n      }\n      status\n      updatedDateTime\n    }\n    errors {\n      ... on BadRequestError {\n        advice\n        code\n        message\n      }\n      ... on ForbiddenError {\n        advice\n        code\n        message\n      }\n      ... on InvalidActorError {\n        advice\n        code\n        message\n      }\n      ... on InvalidOrganizationError {\n        advice\n        code\n        message\n      }\n      ... on NotFoundError {\n        advice\n        code\n        message\n        resourceId\n        resourceName\n      }\n      ... on ServerError {\n        advice\n        code\n        message\n      }\n      ... on UnderwritingApplicationFieldValidationError {\n        code\n        field\n        message\n      }\n      ... on UnderwritingApplicationStakeholderFieldValidationError {\n        code\n        field\n        message\n        stakeholderId\n      }\n      ... on UnderwritingApplicationValidationError {\n        code\n        message\n      }\n      ... on UnderwritingApplicationBankAccountFieldValidationError {\n        bankAccountId\n        code\n        field\n        message\n      }\n    }\n  }\n}",
    "variables": {
      "input": {
        "decisionComponentId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
      }
    }
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json Response lines expandable theme={null}
  {
    "data": {
      "updateDecisionComponent": {
        "decisionComponent": {
          "attachments": [
            {
              "fileName": "business-license.pdf",
              "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
              "size": 0,
              "uploadedBy": "example",
              "uploadedDateTime": "2026-01-15T14:30:00Z"
            }
          ],
          "comments": [
            {
              "content": "Approved for mechanical keyboard accessories line.",
              "createdBy": "example",
              "createdDateTime": "2026-01-15T14:30:00Z",
              "decisionComponent": "example",
              "id": "c9a1e2d3-4b5f-6789-0abc-def123456789",
              "lastUpdatedBy": "example",
              "updatedDateTime": "2026-01-15T14:30:00Z"
            }
          ],
          "hasAttachments": true,
          "hasComments": true,
          "id": "d8b2f3e4-5c6a-7890-1bcd-ef2345678901",
          "items": [
            {
              "descriptiveText": "example",
              "displayOrder": 0,
              "dynamicFields": [
                "example"
              ],
              "fields": [
                "example"
              ],
              "guidance": "example",
              "id": "e7c3a4b5-6d7e-8901-2cde-f34567890123",
              "label": "example",
              "outcomes": "example",
              "stakeholderId": "b6d4e5f6-7a8b-9012-3def-456789012345",
              "status": "ACCEPTED"
            }
          ],
          "lastUpdatedBy": {
            "name": "Ben Torres",
            "type": "APP"
          },
          "schema": {
            "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
            "label": "example",
            "requiredRoles": [
              "BANK"
            ],
            "requiredScopes": [
              "example"
            ],
            "underwritingDecisionComponentItemSchemas": [
              "example"
            ]
          },
          "status": "ACCEPTED",
          "updatedDateTime": "2026-01-15T14:30:00Z"
        },
        "errors": [
          {
            "__typename": "BadRequestError",
            "advice": "example",
            "code": "BAD_REQUEST",
            "message": "example"
          }
        ]
      }
    }
  }
  ```
</ResponseExample>
