---
title: "Update tax details"
method: PATCH
path: "/core/kyc/processes/tax-details"
tags: ["KYC"]
---

# Update tax details

`PATCH /core/kyc/processes/tax-details`

## Request

- Base URL: `https://api.enterprise.sandbox.uphold.com`
- URL: `https://api.enterprise.sandbox.uphold.com/core/kyc/processes/tax-details`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `/core/oauth2/token` scopes: `core.kyc.tax-details:update`
- TypeScript: <https://skmtc.dev/uphold/apis/core-api/docs/core/kyc/processes/tax-details/patch.ts> (a function with typed inputs; its response is checked against the schema)

Update the tax details process for an individual user.

## Headers

- `X-On-Behalf-Of` string
- `Accept-Language` string

## Request body

- object: Dynamic form input following the [JSON Forms](https://jsonforms.io/) specification, enabling progressive disclosure of properties and anytime submissions to keep tax details up to date.
  - `input` object, required
  - `output` UpdateKycTaxDetailsRequestBodyOutput: Output of the KYC process.
    - `result` 'approved' | 'rejected', required: The result of the verification.
    - `verifiedAt` string, date-time, required: The date and time of the verification.

## Response `200`

KYC tax details process updated.

- object
  - `taxDetails` KycTaxDetails, required: The KYC tax details object.
    - `code` string, required: The code of the KYC process.
    - `status` 'ok' | 'failed' | 'running' | 'pending' | 'exempt', required: Status of the KYC process.
    - `verification` KycProcessVerification: Configuration of this process.
      - `model` 'none' | 'partner-verified' | 'uphold-verified', required: The verification model to complete this process.
      - `method` 'automatic' | 'manual', required: Whether this process is verified automatically in the background or requires user action.
      - `triggers` string[]: Other processes that, once updated, trigger this process to run automatically. Only present when `method` is `automatic`.
      - `dependencies` string[], required: The processes that must be updated before you can update this one.
    - `input` object: The declared tax details.
    - `output` object: Output of the KYC process.
      - `result` 'approved' | 'rejected', required: The result of the verification.
      - `verifiedAt` string, date-time, required: The date and time of the verification.
    - `hint` KycProcessHintForm: The hint for the KYC process.
      - `type` 'form', required: The type of the hint.
      - `formId` string, uuid: The id of the form.
      - `schema` object, required: The definition of the structure and validation rules for this KYC process form. It follows the [JSON Schema](https://json-schema.org/) specification with the power of [JSON Forms](https://jsonforms.io/). The schema is iterative, meaning that new questions and properties can be added dynamically as the KYC process evolves. This allows for a flexible and adaptive form structure that can accommodate changes and new requirements over time.
      - `uiSchema` object, required: The definition of the general layout and presentation of the form by means of different UI schema elements. It follows the [JSON Forms](https://jsonforms.io/) specification and is used to customize the appearance and behavior of the form fields. The `uiSchema` includes the following elements: - `Layouts`: Used to structure the form layout. It includes properties like `type` to define the layout type (e.g., `Categorization`) and `elements` to define the child elements. - `Controls`: Used to define the form controls. It includes properties like `scope` to point to the corresponding schema property and `label` to define the control's label. - `Rules`: Used to define conditional visibility rules for form controls. It includes properties like `effect` to define the rule effect (e.g., `SHOW`) and `condition` to define the rule condition. The `uiSchema` is iterative, meaning that new controls and layout elements can be added dynamically as the KYC process evolves. This allows for a flexible and dynamic form layout, enhancing the user experience by providing a structured and intuitive form design that can adapt to new requirements and changes over time.
  - `warnings` ProcessWarnings: The warnings generated during a process update.

## Other responses

- `400`: Bad Request.
- `401`: Unauthorized.
- `403`: Forbidden.
- `409`: Business logic error.
- `429`: Too Many Requests.

---

[API](https://skmtc.dev/uphold/apis/core-api.md) - [All operations](https://skmtc.dev/uphold/apis/core-api/llms.txt) - [OpenAPI document](https://skmtc.dev/uphold/apis/core-api/revisions/6c663575c57a?raw)
