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

# Update identity

> Update the identity process for a user.

export const RestEndpointSubjects = ({subjects = []}) => {
  const subjectToIconMap = {
    'client': 'browser',
    'user:individual': 'user',
    'user:business': 'briefcase'
  };
  if (subjects.length === 0) {
    return null;
  }
  return <>
      {subjects.map(subject => <a key={subject} href="/rest-apis/authentication#subjects" className="border-0 opacity-85 hover:opacity-100 transition-opacity">
          <Badge stroke size="lg" icon={subjectToIconMap[subject]} color="gray" className="mr-1">
            {subject}
          </Badge>
        </a>)}
    </>;
};

<RestEndpointSubjects subjects={["user:individual"]} />

The **Update identity** endpoint is used for verifying that a user is who they claim to be.
Identity verification can be done in two ways:

## Via document submission

The user must provide actual ID documents (e.g., passport, ID card) and biometrics (e.g., selfie) to prove their identity.

There are media files required for the identity verification process that must be passed as `input.media`.
The following table lists the supported contexts and their respective file categories.

<AccordionGroup>
  <Accordion title="photo-document-front" icon="id-card">
    The front side of the photo document.

    File Category: `document` (which allows pdf files as well as typical images content-types)
  </Accordion>

  <Accordion title="photo-document-back" icon="id-card">
    The back side of the photo document.

    File Category: `document` (which allows pdf files as well as typical images content-types)
  </Accordion>

  <Accordion title="photo-selfie" icon="image-portrait">
    A selfie of the user.

    File Category: `image`
  </Accordion>

  <Accordion title="photo-selfie-and-document-front" icon="images-user">
    A selfie of the user holding the photo document.

    File Category: `image`
  </Accordion>

  <Accordion title="video" icon="video">
    A recording of the user going through the process of taking pictures.

    File Category: `video`
  </Accordion>
</AccordionGroup>

<Tip>Files are created and uploaded using the [Create File](../files/create-file) endpoint.</Tip>

## Via electronic verification (e-IDV)

Some KYC providers allow for identity verification through electronic means, i.e., submission of documents is not provided. This is usually done by checking the user's declared information against public and third-party records, such as government, credit, banking, and utility records.

<Note>e-IDV must be explicitly requested from your assigned **Account Manager** and approved by **Uphold's Compliance team** before it can be enabled.</Note>

## When to use document submission verification vs electronic verification

The table below indicates whether each method is adequate for proving user identity.

| Transfer type          | Electronic verification         | Document submission |
| ---------------------- | ------------------------------- | ------------------- |
| **Card deposits**      | Enough for FCA registered firms | Enough              |
| **Bank deposits**      | Not enough                      | Enough              |
| **Bank withdrawals**   | Not enough                      | Enough              |
| **Crypto deposits**    | Not enough                      | Enough              |
| **Crypto withdrawals** | Not enough                      | Enough              |

## Verification rejection reasons

When the process completes with `status: failed`, `output.reason` indicates why the verification was rejected:

* `data-mismatch`: the submitted data does not match the document.
* `duplicate`: the document or identity is already associated with another user.
* `underage`: the user does not meet the minimum age requirement.
* `provider-verification-rejected`: the upstream provider rejected the submission. When present, `output.providerDetails.reasons[]` carries provider-specific codes that can be surfaced to the user.


## OpenAPI

````yaml _media/specs/core-openapi.mintlify.json patch /core/kyc/processes/identity
openapi: 3.1.0
info:
  version: 0.1.0
  title: Core API
  description: >-
    The Core API provides essential building blocks that empower businesses to
    embed financial services into their applications.
  contact:
    name: Uphold API Team
    email: developers@uphold.com
    url: https://developer.uphold.com
servers:
  - url: https://api.enterprise.sandbox.uphold.com
    description: Sandbox
  - url: https://api.enterprise.uphold.com
    description: Production
security:
  - OAuth2: []
tags:
  - name: Authentication
    description: Authentication.
  - name: Countries
    description: Countries.
  - name: Users
    description: Users.
  - name: KYC
    description: Individual User's KYC.
  - name: KYB
    description: Business User's KYB.
  - name: Capabilities
    description: User capabilities.
  - name: Terms of service
    description: User terms of service.
  - name: Files
    description: Files.
  - name: Assets
    description: Assets, networks and rails.
  - name: Accounts
    description: Accounts.
  - name: External accounts
    description: External accounts.
  - name: Transactions
    description: Transactions.
  - name: Portfolio
    description: Portfolio.
  - name: Statements
    description: Statements.
  - name: Metadata
    description: Metadata.
  - name: Webhooks
    description: Webhooks.
paths:
  /core/kyc/processes/identity:
    patch:
      tags:
        - KYC
      summary: Update identity
      description: Update the identity process for a user.
      operationId: core.update-kyc-identity
      requestBody:
        $ref: '#/components/requestBodies/update-kyc-identity-request-body'
      responses:
        '200':
          $ref: '#/components/responses/update-kyc-identity-response'
        '404':
          $ref: '#/components/responses/update-kyc-identity-not-found-response'
        '409':
          $ref: '#/components/responses/update-kyc-identity-conflict-response'
      security:
        - OAuth2:
            - core.kyc.identity:update
components:
  requestBodies:
    update-kyc-identity-request-body:
      content:
        application/json:
          schema:
            type: object
            discriminator:
              propertyName: type
              mapping:
                document-submission:
                  $ref: '#/components/schemas/update-kyc-identity-document-submission'
                electronic-verification:
                  $ref: >-
                    #/components/schemas/update-kyc-identity-electronic-verification
            oneOf:
              - $ref: '#/components/schemas/update-kyc-identity-document-submission'
                title: Document submission
              - $ref: >-
                  #/components/schemas/update-kyc-identity-electronic-verification
                title: Electronic verification
            required:
              - type
          examples:
            Update Process via Document Submission - Partner-verified:
              value:
                type: document-submission
                input:
                  media:
                    - context: photo-selfie
                      fileId: 470b2192-893f-4ce6-9daa-816d4c319a84
                output:
                  provider: veriff
                  document:
                    type: passport
                    number: 7700225VH
                    country: GB
                    expiresAt: '2026-03-13'
                  person:
                    givenName: John
                    familyName: Doe
                    birthdate: '1987-01-01'
                    gender: male
                  verifiedAt: '2020-01-01T00:00:00.000Z'
            Update Process via Electronic Verification - Partner-verified:
              value:
                type: electronic-verification
                input:
                  data:
                    givenName: John
                    familyName: Doe
                    birthdate: '1987-01-01'
                    citizenshipCountry: GB
                    address:
                      country: GB
                      city: Manchester
                      line1: 1 High Street
                      postalCode: M4 1AA
                output:
                  provider: onfido
                  verifiedAt: '2020-01-01T00:00:00.000Z'
  responses:
    update-kyc-identity-response:
      description: KYC identity process updated.
      content:
        application/json:
          schema:
            type: object
            properties:
              identity:
                $ref: '#/components/schemas/kyc-identity'
            required:
              - identity
          examples:
            Process Updated via Document Submission - Partner-verified:
              value:
                identity:
                  code: identity
                  status: ok
                  type: document-submission
                  verification:
                    model: partner-verified
                    method: manual
                    dependencies:
                      - phone
                      - profile
                    submittable: true
                  input:
                    media:
                      - context: photo-document-front
                        fileId: 75e5be00-4264-4cec-ace6-598bff79932c
                      - context: photo-document-back
                        fileId: 402587f2-6299-4a40-b465-eb49d739998c
                      - context: photo-selfie
                        fileId: 470b2192-893f-4ce6-9daa-816d4c319a84
                  output:
                    provider: veriff
                    document:
                      type: passport
                      number: 7700225VH
                      country: GB
                      expiresAt: '2026-03-13'
                    person:
                      givenName: John
                      familyName: Doe
                      birthdate: '1987-01-01'
                      gender: male
                      address:
                        country: GB
                        subdivision: GB-MAN
                        city: Manchester
                        line1: 1 High Street
                        line2: Northern Quarter
                        postalCode: M4 1AA
                    verifiedAt: '2020-01-01T00:00:00.000Z'
            Process Updated via Electronic Verification - Partner-verified:
              value:
                identity:
                  code: identity
                  status: ok
                  type: electronic-verification
                  verification:
                    model: partner-verified
                    method: manual
                    dependencies:
                      - phone
                      - profile
                    submittable: true
                  input:
                    data:
                      givenName: John
                      familyName: Doe
                      birthdate: '1987-01-01'
                      citizenshipCountry: GB
                      address:
                        country: GB
                        city: Manchester
                        line1: 1 High Street
                        postalCode: M4 1AA
                  output:
                    provider: onfido
                    verifiedAt: '2020-01-01T00:00:00.000Z'
      headers:
        x-uphold-request-id:
          description: >-
            A unique identifier for the request that can be shared with Uphold
            for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    update-kyc-identity-not-found-response:
      description: Resource not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            File Not Found:
              value:
                code: entity_not_found
                message: A file specified in the media array cannot be found
                details:
                  entity: file
      headers:
        x-uphold-request-id:
          description: >-
            A unique identifier for the request that can be shared with Uphold
            for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
    update-kyc-identity-conflict-response:
      description: Business logic error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/error'
          examples:
            Document Country Not Supported:
              value:
                code: country_not_supported
                message: The country is not supported
                details:
                  context: body
                  property: output.document.country
            Document Expiration Date Invalid:
              value:
                code: date_invalid
                message: The date must be in the future
                details:
                  rule: difference-less-than-threshold
                  threshold:
                    limit: 0
                    unit: milliseconds
                  context: body
                  property: output.document.expiresAt
            Given Name Contains Invalid Characters:
              value:
                code: invalid_characters
                message: The request has invalid characters
                details:
                  context: body
                  property: output.person.givenName
            Family Name Contains Invalid Characters:
              value:
                code: invalid_characters
                message: The request has invalid characters
                details:
                  context: body
                  property: output.person.familyName
            Birthdate Invalid:
              value:
                code: date_invalid
                message: The date must be in the past
                details:
                  rule: difference-greater-than-threshold
                  threshold:
                    limit: 0
                    unit: milliseconds
                  context: body
                  property: output.verifiedAt
            Address Country Not Supported:
              value:
                code: country_not_supported
                message: The country is not supported
                details:
                  context: body
                  property: output.person.address.country
            Address Subdivision Not Supported:
              value:
                code: subdivision_not_supported
                message: The subdivision is not supported
                details:
                  context: body
                  property: output.person.address.subdivision
            File Invalid:
              value:
                code: file_invalid
                message: A file specified in the media array has not been uploaded
            Verified Date Invalid:
              value:
                code: date_invalid
                message: The date must be in the past
                details:
                  rule: difference-greater-than-threshold
                  threshold:
                    limit: 0
                    unit: milliseconds
                  context: body
                  property: output.verifiedAt
            Missing Declared Information:
              value:
                code: operation_not_allowed
                message: >-
                  User cannot submit identity due to incomplete declared
                  information
                details:
                  reasons:
                    - missing-name
                    - missing-birthdate
            Process Updates Not Allowed:
              value:
                code: operation_not_allowed
                message: The current status of the process does not allow updates
                details:
                  reasons:
                    - kyc-process-update-not-allowed
            Submission Type Not Allowed:
              value:
                code: operation_not_allowed
                message: >-
                  The submission type 'electronic-verification' is not allowed
                  for your organization
                details:
                  reasons:
                    - permission-denied
            Uphold-Verified Updates Not Allowed:
              value:
                code: operation_not_allowed
                message: Uphold-verified 'identity' updates are not allowed
                details:
                  reasons:
                    - permission-denied
      headers:
        x-uphold-request-id:
          description: >-
            A unique identifier for the request that can be shared with Uphold
            for troubleshooting purposes.
          required: true
          schema:
            type: string
            format: uuid
          examples:
            Request ID:
              value: 9092ee4d-f0fb-42e9-8787-b668dbcec531
  schemas:
    update-kyc-identity-document-submission:
      type: object
      properties:
        type:
          description: The identity submission type.
          type: string
          enum:
            - document-submission
        input:
          description: Input of the KYC process.
          type: object
          properties:
            media:
              description: The media that was used to verify the process.
              type: array
              minItems: 1
              maxItems: 10
              items:
                type: object
                properties:
                  context:
                    description: The context of the file.
                    type: string
                    enum:
                      - photo-document-front
                      - photo-document-back
                      - photo-selfie
                      - photo-selfie-and-document-front
                      - video
                  fileId:
                    description: The id of the file.
                    type: string
                    format: uuid
                required:
                  - context
                  - fileId
          required:
            - media
        output:
          description: Output of the KYC process.
          type: object
          properties:
            provider:
              allOf:
                - $ref: '#/components/schemas/string-no-edge-spaces'
                - description: The provider used to verify the KYC process.
                  type: string
                  maxLength: 100
            document:
              description: The identity document information.
              type: object
              properties:
                type:
                  description: The type of the document.
                  type: string
                  enum:
                    - driving-license
                    - id-card
                    - passport
                    - residence-permit
                number:
                  allOf:
                    - $ref: '#/components/schemas/string-no-edge-spaces'
                    - description: The number of the document.
                      type: string
                      maxLength: 200
                country:
                  allOf:
                    - $ref: '#/components/schemas/country-code-for-request'
                    - description: The country of the document.
                expiresAt:
                  description: The expiration date of the document.
                  type: string
                  format: date
              required:
                - type
                - number
                - country
            person:
              description: The person information.
              type: object
              properties:
                givenName:
                  allOf:
                    - $ref: '#/components/schemas/string-no-edge-spaces'
                    - description: The person's given name.
                      type: string
                      maxLength: 200
                familyName:
                  allOf:
                    - $ref: '#/components/schemas/string-no-edge-spaces'
                    - description: The person's family name or surname.
                      type: string
                      maxLength: 200
                birthdate:
                  description: The date of birth.
                  type: string
                  format: date
                gender:
                  description: The gender.
                  type: string
                  enum:
                    - female
                    - male
                address:
                  allOf:
                    - $ref: '#/components/schemas/address-for-request'
                    - type: object
                      required:
                        - country
              required:
                - givenName
                - birthdate
            verifiedAt:
              description: The date and time of the verification.
              type: string
              format: date-time
          required:
            - provider
            - document
            - person
            - verifiedAt
      required:
        - type
        - input
    update-kyc-identity-electronic-verification:
      type: object
      properties:
        type:
          description: The identity submission type.
          type: string
          enum:
            - electronic-verification
        input:
          description: Input of the KYC process.
          type: object
          properties:
            data:
              description: The declared data used to verify the process.
              type: object
              properties:
                givenName:
                  allOf:
                    - $ref: '#/components/schemas/string-no-edge-spaces'
                    - description: The given name.
                      type: string
                      maxLength: 200
                familyName:
                  allOf:
                    - $ref: '#/components/schemas/string-no-edge-spaces'
                    - description: The family name or surname.
                      type: string
                      maxLength: 200
                birthdate:
                  description: The date of birth.
                  type: string
                  format: date
                citizenshipCountry:
                  allOf:
                    - $ref: '#/components/schemas/country-code-for-request'
                    - description: The citizenship country.
                gender:
                  description: The gender.
                  type: string
                  enum:
                    - female
                    - male
                address:
                  allOf:
                    - $ref: '#/components/schemas/address-for-request'
                    - type: object
                      required:
                        - country
              required:
                - givenName
                - birthdate
                - citizenshipCountry
          required:
            - data
        output:
          description: Output of the KYC process.
          type: object
          properties:
            provider:
              allOf:
                - $ref: '#/components/schemas/string-no-edge-spaces'
                - description: The provider used to verify the KYC process.
                  type: string
                  maxLength: 100
            verifiedAt:
              description: The date and time of the verification.
              type: string
              format: date-time
          required:
            - provider
            - verifiedAt
      required:
        - type
        - input
    kyc-identity:
      discriminator:
        propertyName: type
        mapping:
          none:
            $ref: '#/components/schemas/kyc-identity-none'
          document-submission:
            $ref: '#/components/schemas/kyc-identity-document-submission'
          electronic-verification:
            $ref: '#/components/schemas/kyc-identity-electronic-verification'
      oneOf:
        - $ref: '#/components/schemas/kyc-identity-none'
          title: None
        - $ref: '#/components/schemas/kyc-identity-document-submission'
          title: Document submission
        - $ref: '#/components/schemas/kyc-identity-electronic-verification'
          title: Electronic verification
    error:
      description: The error information.
      allOf:
        - $ref: '#/components/schemas/feedback'
    string-no-edge-spaces:
      type: string
      pattern: ^\S.*\S$|^\S$
    country-code-for-request:
      type: string
      pattern: ^[A-Z]{2}$
    address-for-request:
      description: The address information.
      type: object
      properties:
        country:
          allOf:
            - $ref: '#/components/schemas/country-code-for-request'
            - description: The country of the address.
        subdivision:
          allOf:
            - $ref: '#/components/schemas/subdivision-code-for-request'
            - description: The subdivision of the address.
        city:
          allOf:
            - $ref: '#/components/schemas/string-no-edge-spaces'
            - description: The city of the address.
              type: string
              maxLength: 100
        line1:
          allOf:
            - $ref: '#/components/schemas/string-no-edge-spaces'
            - description: The first line of the address.
              type: string
              maxLength: 150
        line2:
          allOf:
            - $ref: '#/components/schemas/string-no-edge-spaces'
            - description: The second line of the address.
              type: string
              maxLength: 100
        postalCode:
          allOf:
            - $ref: '#/components/schemas/string-no-edge-spaces'
            - description: The postal code of the address.
              type: string
              maxLength: 20
    kyc-identity-none:
      title: None
      type: object
      properties:
        code:
          description: The code of the KYC process.
          type: string
        status:
          $ref: '#/components/schemas/kyc-process-status'
        type:
          description: The identity submission type.
          type: string
          enum:
            - none
        verification:
          allOf:
            - $ref: '#/components/schemas/kyc-process-verification'
            - type: object
              properties:
                submittable:
                  description: Whether this process currently accepts a new submission.
                  type: boolean
              required:
                - submittable
      required:
        - code
        - status
    kyc-identity-document-submission:
      title: Document Submission
      type: object
      properties:
        code:
          description: The code of the KYC process.
          type: string
        status:
          $ref: '#/components/schemas/kyc-process-status'
        type:
          description: The identity submission type.
          type: string
          enum:
            - document-submission
        verification:
          allOf:
            - $ref: '#/components/schemas/kyc-process-verification'
            - type: object
              properties:
                submittable:
                  description: Whether this process currently accepts a new submission.
                  type: boolean
              required:
                - submittable
        input:
          description: Input of the KYC process.
          type: object
          properties:
            media:
              description: The media that was collected during the process.
              type: array
              items:
                type: object
                properties:
                  context:
                    description: The context of the file.
                    type: string
                    enum:
                      - photo-document-front
                      - photo-document-back
                      - photo-selfie
                      - photo-selfie-and-document-front
                      - video
                  fileId:
                    description: The id of the file.
                    type: string
                    format: uuid
                required:
                  - context
                  - fileId
          required:
            - media
        output:
          description: Output of the KYC process.
          type: object
          properties:
            provider:
              description: The provider used to verify the KYC process.
              type: string
            providerDetails:
              description: The provider details associated with the verification.
              type: object
              properties:
                reasons:
                  description: The reasons associated with the verification.
                  type: array
                  items:
                    type: string
            reason:
              description: The reason associated with the verification.
              type: string
              enum:
                - data-mismatch
                - duplicate
                - underage
                - provider-verification-rejected
            document:
              description: The identity document information.
              type: object
              properties:
                type:
                  description: The type of the document.
                  type: string
                  enum:
                    - driving-license
                    - id-card
                    - passport
                    - residence-permit
                    - unsupported
                number:
                  description: The number of the document.
                  type: string
                country:
                  description: The country of the document.
                  type: string
                expiresAt:
                  description: The expiration date of the document.
                  type: string
                  format: date
              required:
                - type
                - number
                - country
            person:
              description: The person information.
              type: object
              properties:
                givenName:
                  description: The person's given name.
                  type: string
                familyName:
                  description: The person's family name or surname.
                  type: string
                birthdate:
                  description: The date of birth.
                  type: string
                  format: date
                gender:
                  description: The gender.
                  type: string
                  enum:
                    - female
                    - male
                address:
                  allOf:
                    - $ref: '#/components/schemas/address'
                    - type: object
                      required:
                        - country
              required:
                - givenName
                - birthdate
            verifiedAt:
              description: The date and time of the verification.
              type: string
              format: date-time
          required:
            - provider
            - document
            - person
            - verifiedAt
      required:
        - code
        - status
        - type
    kyc-identity-electronic-verification:
      title: Electronic Verification
      type: object
      properties:
        code:
          description: The code of the KYC process.
          type: string
        status:
          $ref: '#/components/schemas/kyc-process-status'
        type:
          description: The identity submission type.
          type: string
          enum:
            - electronic-verification
        verification:
          allOf:
            - $ref: '#/components/schemas/kyc-process-verification'
            - type: object
              properties:
                submittable:
                  description: Whether this process currently accepts a new submission.
                  type: boolean
              required:
                - submittable
        input:
          description: Input of the KYC process.
          type: object
          properties:
            data:
              description: The declared data used to verify the process.
              type: object
              properties:
                givenName:
                  description: The given name.
                  type: string
                familyName:
                  description: The family name or surname.
                  type: string
                birthdate:
                  description: The date of birth.
                  type: string
                  format: date
                citizenshipCountry:
                  description: The citizenship country.
                  type: string
                gender:
                  description: The gender.
                  type: string
                  enum:
                    - female
                    - male
                address:
                  allOf:
                    - $ref: '#/components/schemas/address'
                    - type: object
                      required:
                        - country
              required:
                - givenName
                - birthdate
                - citizenshipCountry
          required:
            - data
        output:
          description: Output of the KYC process.
          type: object
          properties:
            provider:
              description: The provider used to verify the KYC process.
              type: string
            reason:
              description: The reason associated with the verification.
              type: string
              enum:
                - data-mismatch
                - duplicate
                - missing-declared-information
                - underage
            verifiedAt:
              description: The date and time of the verification.
              type: string
              format: date-time
          required:
            - provider
            - verifiedAt
      required:
        - code
        - status
        - type
    feedback:
      description: A feedback message with a code and human-readable description.
      type: object
      properties:
        code:
          description: A short string with a brief explanation about the code reported.
          type: string
        message:
          description: A human-readable message providing more details.
          type: string
        details:
          description: Additional information about the feedback reported.
          type: object
          additionalProperties: true
      required:
        - code
        - message
    subdivision-code-for-request:
      type: string
      pattern: ^[A-Z]{2}-[A-Z0-9]{1,3}$
    kyc-process-status:
      description: Status of the KYC process.
      type: string
      enum:
        - ok
        - failed
        - running
        - pending
        - exempt
    kyc-process-verification:
      description: Configuration of this process.
      type: object
      properties:
        model:
          description: The verification model to complete this process.
          type: string
          enum:
            - none
            - partner-verified
            - uphold-verified
        method:
          description: >-
            Whether this process is verified automatically in the background or
            requires user action.
          type: string
          enum:
            - automatic
            - manual
        triggers:
          description: >-
            Other processes that, once updated, trigger this process to run
            automatically. Only present when `method` is `automatic`.
          type: array
          items:
            type: string
            enum:
              - profile
              - identity
        dependencies:
          $ref: '#/components/schemas/kyc-process-dependencies'
      required:
        - model
        - method
        - dependencies
    address:
      description: The address information.
      type: object
      properties:
        country:
          description: The country of the address.
          type: string
        subdivision:
          description: The subdivision of the address.
          type: string
        city:
          description: The city of the address.
          type: string
        line1:
          description: The first line of the address.
          type: string
        line2:
          description: The second line of the address.
          type: string
        postalCode:
          description: The postal code of the address.
          type: string
    kyc-process-dependencies:
      description: The processes that must be updated before you can update this one.
      type: array
      items:
        type: string
        enum:
          - profile
          - email
          - phone
          - identity
          - proof-of-address
          - customer-due-diligence
          - enhanced-due-diligence
          - crypto-risk-assessment
          - self-categorization-statement
          - tax-details
  securitySchemes:
    OAuth2:
      type: oauth2
      description: OAuth 2.0 authentication.
      flows:
        clientCredentials:
          tokenUrl: /core/oauth2/token
          scopes:
            core.users:act-on-behalf-of: Grants access to act on behalf of a user
            core.users:create: Grants access to create users
            core.users:read: Grants access to view users
            core.users:delete: Grants access to delete users
            core.users.metadata:read: Grants access to view user metadata
            core.users.metadata:write: Grants access to modify user metadata
            core.kyc:read: Grants access to view KYC processes
            core.kyc.profile:update: Grants access to update profile KYC process
            core.kyc.address:update: Grants access to update address KYC process
            core.kyc.email:update: Grants access to update email KYC process
            core.kyc.phone:update: Grants access to update phone KYC process
            core.kyc.identity:update: Grants access to update identity KYC process
            core.kyc.proof-of-address:update: Grants access to update proof-of-address KYC process
            core.kyc.customer-due-diligence:update: Grants access to update customer due diligence KYC process
            core.kyc.enhanced-due-diligence:update: Grants access to update enhanced due diligence KYC process
            core.kyc.crypto-risk-assessment:update: Grants access to update crypto risk assessment KYC process
            core.kyc.self-categorization-statement:update: Grants access to update self-categorization statement KYC process
            core.kyc.tax-details:update: Grants access to update tax details KYC process
            core.capabilities:read: Grants access to view user capabilities
            core.terms-of-service:read: Grants access to view terms of service
            core.terms-of-service:accept: Grants access to accept terms of service
            core.files:create: Grants access to create files
            core.files:read: Grants access to view files
            core.files.metadata:read: Grants access to view files metadata
            core.files.metadata:write: Grants access to modify files metadata
            core.accounts:create: Grants access to create accounts
            core.accounts:read: Grants access to view accounts
            core.accounts:update: Grants access to update accounts
            core.accounts:archive: Grants access to archive accounts
            core.accounts:deposit-method: >-
              Grants access to deposit method needed for depositing into
              accounts
            core.accounts:use-test-helpers: Grants access to test helpers of accounts
            core.accounts.metadata:read: Grants access to view accounts metadata
            core.accounts.metadata:write: Grants access to modify accounts metadata
            core.assets:use-test-helpers: Grants access to test helpers of assets
            core.external-accounts:create: Grants access to create external accounts
            core.external-accounts:read: Grants access to view external accounts
            core.external-accounts:update: Grants access to update external accounts
            core.external-accounts:delete: Grants access to delete external accounts
            core.external-accounts.metadata:read: Grants access to view external accounts metadata
            core.external-accounts.metadata:write: Grants access to modify external accounts metadata
            core.transactions:create: Grants access to commit quotes
            core.transactions:read: Grants access to view transactions
            core.transactions.metadata:read: Grants access to view transactions metadata
            core.transactions.metadata:write: Grants access to modify transactions metadata
            core.transactions.requests-for-information:read: Grants access to view transactions requests for information
            core.transactions.requests-for-information:update: Grants access to update transactions requests for information
            core.portfolio:read: >-
              Grants access to view portfolio overview, performance, and
              historical balance
            core.statements:read: Grants access to read statements
            core.webhooks:management-link: Grants access to create webhook management links

````