---
title: "Update crypto risk assessment"
method: PATCH
path: "/core/kyc/processes/crypto-risk-assessment"
tags: ["KYC"]
---

# Update crypto risk assessment

`PATCH /core/kyc/processes/crypto-risk-assessment`

## Request

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

Update the crypto risk assessment process for an individual user.

## Headers

- `Accept-Language` string
- `X-On-Behalf-Of` string
- `X-Uphold-User-Ip` union
  - string, ipv4
  - string, ipv6
- `X-Uphold-User-Agent` string
- `X-Uphold-User-Origin` string
- `X-Uphold-User-Country` string
- `X-Uphold-User-Subdivision` string
- `X-Uphold-User-City` string

## Request body

- object
  - `input` KycProcessInputFormForRequest, required: Input of the KYC process.
    - `formId` string, uuid: The form identifier returned in the `formId` property of the KYC process hint. Include this value when you need to persist or resume the current form state over an extended period (for example, across user sessions or long-running saves).
    - `answers` object, required: The `answers` property follows the [JSON Forms](https://jsonforms.io/) specification for data objects and has two key behaviors: 1. **Partial or Complete Answers Submission**: - It accepts the answers to the questions of the current step (identified by UI Schema 'Category'). This allows the submission of the responses incrementally, either answering all questions in the current step or just a subset of them. 2. **Form Reset by Answering Previous Questions**: - It also allows for a form reset by accepting one or more answers from a previous step (identified by UI Schema 'Category'). This enables the modification of previous answers, ensuring that the form is flexible and can handle dynamic user interactions. The KYC process starts its evaluation once the last question has been answered, ensuring that all necessary information has been provided before proceeding with the assessment.
  - `output` object: Output of the KYC process.
    - `result` 'approved' | 'rejected', required: The result of the verification.
    - `attempts` object, required: The attempts state of the verification.
      - `used` integer, required: The number of attempts used. Default is 1.
      - `maximum` integer, required: The maximum number of attempts allowed. Default is 5.
    - `verifiedAt` string, date-time, required: The date and time of the verification.

## Response `200`

KYC crypto risk assessment process updated.

- object
  - `cryptoRiskAssessment` KycCryptoRiskAssessment, required: The KYC crypto risk assessment 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` KycProcessInputForm: Input of the KYC process.
      - `formId` string: The id of the form.
      - `answers` object, required: The answers of the form.
    - `output` object: Output of the KYC process.
      - `result` 'approved' | 'rejected', required: The result of the verification.
      - `attempts` object, required: The attempts state of the verification.
        - `used` integer, required: The number of attempts used.
        - `maximum` integer, required: The maximum number of attempts.
        - `retryAt` string, date-time: The date and time when the next attempt is allowed.
      - `offboard` object: The offboarding state of the verification.
        - `completedAt` string, date-time: The date and time when the offboarding was completed.
        - `endsAt` string, date-time, required: The date and time when the offboard ends.
      - `verifiedAt` string, date-time: 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.
- `404`: Resource not found.
- `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)
