---
title: "Get overview"
method: GET
path: "/core/kyc"
tags: ["KYC"]
---

# Get overview

`GET /core/kyc`

## Request

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

Get the KYC overview of an individual user.

## Query parameters

- `detailed` string[]

## 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

## Response `200`

KYC overview retrieved.

- KycOverview
  - `summary` object, required
    - `status` 'blocked' | 'ok' | 'pending' | 'restricted', required: The overall KYC status.
    - `reason` string, required: Additional reason for the status.
  - `processes` object, required
    - `profile` KycProfile, required
      - `code` string, required: The code of the KYC process.
      - `status` 'ok' | 'failed' | 'running' | 'pending' | 'exempt', required: Status of the KYC process.
      - `verification` object: 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.
        - `rules` object
          - `fullName` ProcessVerificationRule: The process verification rule.
            - `presence` 'required' | 'optional' | 'disallowed', required
            - `editable` boolean, required
          - `birthdate` ProcessVerificationRule: The process verification rule.
            - `presence` 'required' | 'optional' | 'disallowed', required
            - `editable` boolean, required
          - `birthplace` object: The process verification rule.
            - `presence` 'required' | 'optional' | 'disallowed', required
            - `editable` boolean, required
            - `rules` object
              - …
          - `citizenshipCountry` ProcessVerificationRule: The process verification rule.
            - `presence` 'required' | 'optional' | 'disallowed', required
            - `editable` boolean, required
          - `primaryCitizenship` ProcessVerificationRule: The process verification rule.
            - `presence` 'required' | 'optional' | 'disallowed', required
            - `editable` boolean, required
          - `otherCitizenships` ProcessVerificationRule: The process verification rule.
            - `presence` 'required' | 'optional' | 'disallowed', required
            - `editable` boolean, required
          - `address` object: The process verification rule.
            - `presence` 'required' | 'optional' | 'disallowed', required
            - `editable` boolean, required
            - `rules` object
              - …
      - `input` object: The declared profile details.
        - `fullName` string: The full legal name.
        - `birthdate` string, date: The date of birth.
        - `birthplace` object: The place of birth.
          - `country` string, required: The country of birth.
          - `town` string, required: The town of birth.
        - `primaryCitizenship` string: The primary citizenship country.
        - `citizenshipCountry` string: The citizenship country. Deprecated in favor of primaryCitizenship.
        - `otherCitizenships` string[]: Additional citizenship countries.
        - `address` object: The address information.
          - `country` string, required: The country of the address.
          - `subdivision` string: The subdivision of the address.
          - `city` string: The city of the address.
          - `line1` string: The first line of the address.
          - `line2` string: The second line of the address.
          - `postalCode` string: The postal code of the address.
        - `details` object: Dynamic form input following the [JSON Forms](https://jsonforms.io/) specification. Deprecated in favor of the flat profile fields.
      - `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.
    - `address` KycAddress, required: The KYC address 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: Input of the KYC process.
        - `address` object, required: The address information.
          - `country` string, required: The country of the address.
          - `subdivision` string: The subdivision of the address.
          - `city` string: The city of the address.
          - `line1` string: The first line of the address.
          - `line2` string: The second line of the address.
          - `postalCode` string: The postal code of the address.
    - `email` KycEmail, required: The KYC email 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: Input of the KYC process.
        - `email` string, email, required: The email address that was verified.
      - `output` object: Output of the KYC process.
        - `verifiedAt` string, date-time, required: The date and time of the verification.
    - `phone` KycPhone, required: The KYC phone 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: Input of the KYC process.
        - `phone` string, required: The E.164 formatted phone number that was verified.
        - `country` string, required: The country code of the phone number.
      - `output` object: Output of the KYC process.
        - `verifiedAt` string, date-time, required: The date and time of the verification.
    - `identity` union, required: The KYC identity object.
      - KycIdentityNone
        - `code` string, required: The code of the KYC process.
        - `status` 'ok' | 'failed' | 'running' | 'pending' | 'exempt', required: Status of the KYC process.
        - `type` 'none': The identity submission type.
        - `verification` object: 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.
          - `submittable` boolean, required: Whether this process currently accepts a new submission.
      - KycIdentityDocumentSubmission
        - `code` string, required: The code of the KYC process.
        - `status` 'ok' | 'failed' | 'running' | 'pending' | 'exempt', required: Status of the KYC process.
        - `type` 'document-submission', required: The identity submission type.
        - `verification` object: 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.
          - `submittable` boolean, required: Whether this process currently accepts a new submission.
        - `input` object: Input of the KYC process.
          - `media` object[], required: The media that was collected during the process.
            - `context` 'photo-document-front' | 'photo-document-back' | 'photo-selfie' | 'photo-selfie-and-document-front' | 'video', required: The context of the file.
            - `fileId` string, uuid, required: The id of the file.
        - `output` object: Output of the KYC process.
          - `provider` string, required: The provider used to verify the KYC process.
          - `providerDetails` object: The provider details associated with the verification.
            - `reasons` string[]: The reasons associated with the verification.
          - `reason` 'data-mismatch' | 'duplicate' | 'underage' | 'provider-verification-rejected': The reason associated with the verification.
          - `document` object, required: The identity document information.
            - `type` 'driving-license' | 'id-card' | 'passport' | 'residence-permit' | 'unsupported', required: The type of the document.
            - `number` string, required: The number of the document.
            - `country` string, required: The country of the document.
            - `expiresAt` string, date: The expiration date of the document.
          - `person` object, required: The person information.
            - `givenName` string, required: The person's given name.
            - `familyName` string: The person's family name or surname.
            - `birthdate` string, date, required: The date of birth.
            - `gender` 'female' | 'male': The gender.
            - `address` object: The address information.
              - …
          - `verifiedAt` string, date-time, required: The date and time of the verification.
      - KycIdentityElectronicVerification
        - `code` string, required: The code of the KYC process.
        - `status` 'ok' | 'failed' | 'running' | 'pending' | 'exempt', required: Status of the KYC process.
        - `type` 'electronic-verification', required: The identity submission type.
        - `verification` object: 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.
          - `submittable` boolean, required: Whether this process currently accepts a new submission.
        - `input` object: Input of the KYC process.
          - `data` object, required: The declared data used to verify the process.
            - `givenName` string, required: The given name.
            - `familyName` string: The family name or surname.
            - `birthdate` string, date, required: The date of birth.
            - `citizenshipCountry` string, required: The citizenship country.
            - `gender` 'female' | 'male': The gender.
            - `address` object: The address information.
              - …
        - `output` object: Output of the KYC process.
          - `provider` string, required: The provider used to verify the KYC process.
          - `reason` 'data-mismatch' | 'duplicate' | 'missing-declared-information' | 'underage': The reason associated with the verification.
          - `verifiedAt` string, date-time, required: The date and time of the verification.
    - `proofOfAddress` union, required: The KYC proof-of-address object.
      - KycProofOfAddressNone
        - `code` string, required: The code of the KYC process.
        - `status` 'ok' | 'failed' | 'running' | 'pending' | 'exempt', required: Status of the KYC process.
        - `type` 'none': The proof-of-address submission type.
        - `verification` object: 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.
          - `submittable` boolean, required: Whether this process currently accepts a new submission.
      - KycProofOfAddressDocumentSubmission
        - `code` string, required: The code of the KYC process.
        - `status` 'ok' | 'failed' | 'running' | 'pending' | 'exempt', required: Status of the KYC process.
        - `type` 'document-submission', required: The proof-of-address submission type.
        - `verification` object: 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.
          - `submittable` boolean, required: Whether this process currently accepts a new submission.
        - `input` object: Input of the KYC process.
          - `media` object[], required: The media that was collected during the process.
            - `context` 'address-proof', required: The context of the file.
            - `fileId` string, uuid, required: The id of the file.
        - `output` object: Output of the KYC process.
          - `provider` string, required: The provider used to verify the KYC process.
          - `providerDetails` object: The provider details associated with the verification.
            - `reasons` string[]: The reasons associated with the verification.
          - `reason` 'address-mismatch' | 'name-mismatch' | 'provider-verification-rejected': The reason associated with the verification.
          - `person` object: The person information.
            - `givenName` string: The person's given name.
            - `familyName` string: The person's family name or surname.
            - `address` object: The address information.
              - …
          - `verifiedAt` string, date-time, required: The date and time of the verification.
      - KycProofOfAddressElectronicVerification
        - `code` string, required: The code of the KYC process.
        - `status` 'ok' | 'failed' | 'running' | 'pending' | 'exempt', required: Status of the KYC process.
        - `type` 'electronic-verification', required: The proof-of-address submission type.
        - `verification` object: 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.
          - `submittable` boolean, required: Whether this process currently accepts a new submission.
        - `input` object: Input of the KYC process.
          - `data` object, required: The declared data used to verify the process.
            - `givenName` string, required: The given name.
            - `familyName` string: The family name or surname.
            - `address` object, required: The address information.
              - …
        - `output` object: Output of the KYC process.
          - `provider` string, required: The provider used to verify the KYC process.
          - `reason` 'address-mismatch' | 'name-mismatch': The reason associated with the verification.
          - `verifiedAt` string, date-time, required: The date and time of the verification.
      - KycProofOfAddressFromIdentity
        - `code` string, required: The code of the KYC process.
        - `status` 'ok' | 'failed' | 'running' | 'pending' | 'exempt', required: Status of the KYC process.
        - `type` 'from-identity', required: The proof-of-address submission type.
        - `verification` object: 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.
          - `submittable` boolean, required: Whether this process currently accepts a new submission.
        - `output` object: Output of the KYC process.
          - `provider` string, required: The provider used to verify the KYC process.
          - `reason` 'address-mismatch' | 'name-mismatch': The reason associated with the verification.
          - `person` object: The person information.
            - `givenName` string: The person's given name.
            - `familyName` string: The person's family name or surname.
            - `address` object: The address information.
              - …
          - `verifiedAt` string, date-time, required: The date and time of the verification.
    - `customerDueDiligence` KycCustomerDueDiligence, required: The KYC customer due diligence 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.
        - `score` 'low' | 'medium' | 'high': The score of the verification.
        - `expiresAt` string, date-time: The date and time when the verification expires.
        - `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.
    - `enhancedDueDiligence` KycEnhancedDueDiligence, required: The KYC enhanced due diligence 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: Input of the KYC process.
        - `media` object[]
          - `context` 'source-of-funds-proof', required: The context of the file.
          - `fileId` string, uuid, required: The id of the file.
      - `output` object: Output of the KYC process.
        - `verifiedAt` string, date-time, required: The date and time of the verification.
    - `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.
    - `selfCategorizationStatement` KycSelfCategorizationStatement, required: The KYC self-categorization statement 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: The attempts state of the verification.
          - `used` integer, required: The number of attempts used.
          - `maximum` integer, required: The maximum number of attempts.
        - `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.
        - `expiresAt` string, date-time: The date and time when the verification expires.
        - `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.
    - `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.
    - `screening` KycScreening, required: The KYC screening 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.
      - `output` object: Output of the KYC process.
        - `result` 'approved' | 'rejected', required: The result of the verification.
    - `risk` KycRisk, required: The KYC risk 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.
      - `output` object: Output of the KYC process.
        - `result` 'approved' | 'rejected': The result of the verification.

## Other responses

- `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)
