Uphold KYC API

Individual User's KYC.

Documentation

Specifications

Other Resources

OpenAPI Specification

uphold-kyc-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Uphold KYC API
  version: 0.1.0
  description: 'Operations tagged KYC across 2 of this provider''s published API definitions: uphold-core-api-openapi.json, uphold-widgets-api-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.enterprise.sandbox.uphold.com
  description: Sandbox
- url: https://api.enterprise.uphold.com
  description: Production
security:
- OAuth2: []
tags:
- name: KYC
  description: Individual User's KYC.
paths:
  /core/kyc:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    get:
      operationId: core.get-kyc-overview
      summary: Get overview
      description: Get the KYC overview of a user.
      tags:
      - KYC
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:individual
      security:
      - OAuth2:
        - core.kyc:read
      parameters:
      - $ref: '#/components/parameters/get-kyc-overview-detailed'
      - $ref: '#/components/parameters/accept-language'
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      responses:
        '200':
          $ref: '#/components/responses/get-kyc-overview-response'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '409':
          $ref: '#/components/responses/get-kyc-overview-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/kyc/processes/profile:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    patch:
      operationId: core.update-kyc-profile
      summary: Update profile
      description: Update the profile process for a user.
      tags:
      - KYC
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:individual
      security:
      - OAuth2:
        - core.kyc.profile:update
      parameters:
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      requestBody:
        $ref: '#/components/requestBodies/update-kyc-profile-request-body'
      responses:
        '200':
          $ref: '#/components/responses/update-kyc-profile-response'
        '400':
          $ref: '#/components/responses/bad-request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '409':
          $ref: '#/components/responses/update-kyc-profile-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/kyc/processes/address:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    patch:
      operationId: core.update-kyc-address
      deprecated: true
      summary: Update address
      description: Update the address process for a user.
      tags:
      - KYC
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:individual
      security:
      - OAuth2:
        - core.kyc.address:update
      parameters:
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      requestBody:
        $ref: '#/components/requestBodies/update-kyc-address-request-body'
      responses:
        '200':
          $ref: '#/components/responses/update-kyc-address-response'
        '400':
          $ref: '#/components/responses/bad-request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '409':
          $ref: '#/components/responses/update-kyc-address-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/kyc/processes/email:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    patch:
      operationId: core.update-kyc-email
      summary: Update email
      description: Update the email process for a user.
      tags:
      - KYC
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:individual
      security:
      - OAuth2:
        - core.kyc.email:update
      parameters:
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      requestBody:
        $ref: '#/components/requestBodies/update-kyc-email-request-body'
      responses:
        '200':
          $ref: '#/components/responses/update-kyc-email-response'
        '400':
          $ref: '#/components/responses/bad-request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '409':
          $ref: '#/components/responses/update-kyc-email-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/kyc/processes/phone:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    patch:
      operationId: core.update-kyc-phone
      summary: Update phone
      description: Update the phone process for a user.
      tags:
      - KYC
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:individual
      security:
      - OAuth2:
        - core.kyc.phone:update
      parameters:
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      requestBody:
        $ref: '#/components/requestBodies/update-kyc-phone-request-body'
      responses:
        '200':
          $ref: '#/components/responses/update-kyc-phone-response'
        '400':
          $ref: '#/components/responses/bad-request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '409':
          $ref: '#/components/responses/update-kyc-phone-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/kyc/processes/identity:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    patch:
      operationId: core.update-kyc-identity
      summary: Update identity
      description: Update the identity process for a user.
      tags:
      - KYC
      security:
      - OAuth2:
        - core.kyc.identity:update
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:individual
            includeClient: true
            includeClientOwner: true
      parameters:
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      requestBody:
        $ref: '#/components/requestBodies/update-kyc-identity-request-body'
      responses:
        '200':
          $ref: '#/components/responses/update-kyc-identity-response'
        '400':
          $ref: '#/components/responses/bad-request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/update-kyc-identity-not-found-response'
        '409':
          $ref: '#/components/responses/update-kyc-identity-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/kyc/processes/proof-of-address:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    patch:
      operationId: core.update-kyc-proof-of-address
      summary: Update proof-of-address
      description: Update the proof-of-address process for a user.
      tags:
      - KYC
      security:
      - OAuth2:
        - core.kyc.proof-of-address:update
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:individual
            includeClient: true
            includeClientOwner: true
      parameters:
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      requestBody:
        $ref: '#/components/requestBodies/update-kyc-proof-of-address-request-body'
      responses:
        '200':
          $ref: '#/components/responses/update-kyc-proof-of-address-response'
        '400':
          $ref: '#/components/responses/bad-request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/update-kyc-proof-of-address-not-found-response'
        '409':
          $ref: '#/components/responses/update-kyc-proof-of-address-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/kyc/processes/customer-due-diligence:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    patch:
      operationId: core.update-kyc-customer-due-diligence
      summary: Update customer due diligence
      description: Update the customer due diligence process for a user.
      tags:
      - KYC
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:individual
      security:
      - OAuth2:
        - core.kyc.customer-due-diligence:update
      parameters:
      - $ref: '#/components/parameters/accept-language'
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      requestBody:
        $ref: '#/components/requestBodies/update-kyc-customer-due-diligence-request-body'
      responses:
        '200':
          $ref: '#/components/responses/update-kyc-customer-due-diligence-response'
        '400':
          $ref: '#/components/responses/bad-request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/update-kyc-customer-due-diligence-not-found-response'
        '409':
          $ref: '#/components/responses/update-kyc-customer-due-diligence-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/kyc/processes/enhanced-due-diligence:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    patch:
      operationId: core.update-kyc-enhanced-due-diligence
      summary: Update enhanced due diligence
      description: Update the enhanced due diligence process for a user.
      tags:
      - KYC
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:individual
      security:
      - OAuth2:
        - core.kyc.enhanced-due-diligence:update
      parameters:
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      requestBody:
        $ref: '#/components/requestBodies/update-kyc-enhanced-due-diligence-request-body'
      responses:
        '200':
          $ref: '#/components/responses/update-kyc-enhanced-due-diligence-response'
        '400':
          $ref: '#/components/responses/bad-request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/update-kyc-enhanced-due-diligence-not-found-response'
        '409':
          $ref: '#/components/responses/update-kyc-enhanced-due-diligence-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/kyc/processes/crypto-risk-assessment:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    patch:
      operationId: core.update-kyc-crypto-risk-assessment
      summary: Update crypto risk assessment
      description: Update the crypto risk assessment process for a user.
      tags:
      - KYC
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:individual
      security:
      - OAuth2:
        - core.kyc.crypto-risk-assessment:update
      parameters:
      - $ref: '#/components/parameters/accept-language'
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      requestBody:
        $ref: '#/components/requestBodies/update-kyc-crypto-risk-assessment-request-body'
      responses:
        '200':
          $ref: '#/components/responses/update-kyc-crypto-risk-assessment-response'
        '400':
          $ref: '#/components/responses/bad-request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/update-kyc-crypto-risk-assessment-not-found-response'
        '409':
          $ref: '#/components/responses/update-kyc-crypto-risk-assessment-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/kyc/processes/self-categorization-statement:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    patch:
      operationId: core.update-kyc-self-categorization-statement
      summary: Update self-categorization statement
      description: Update the self-categorization statement process for a user.
      tags:
      - KYC
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:individual
      security:
      - OAuth2:
        - core.kyc.self-categorization-statement:update
      parameters:
      - $ref: '#/components/parameters/accept-language'
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      requestBody:
        $ref: '#/components/requestBodies/update-kyc-self-categorization-statement-request-body'
      responses:
        '200':
          $ref: '#/components/responses/update-kyc-self-categorization-statement-response'
        '400':
          $ref: '#/components/responses/bad-request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '404':
          $ref: '#/components/responses/update-kyc-self-categorization-statement-not-found-response'
        '409':
          $ref: '#/components/responses/update-kyc-self-categorization-statement-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /core/kyc/processes/tax-details:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    patch:
      operationId: core.update-kyc-tax-details
      summary: Update tax details
      description: Update the tax details process for a user.
      tags:
      - KYC
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:individual
      security:
      - OAuth2:
        - core.kyc.tax-details:update
      parameters:
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/accept-language'
      requestBody:
        $ref: '#/components/requestBodies/update-kyc-tax-details-request-body'
      responses:
        '200':
          $ref: '#/components/responses/update-kyc-tax-details-response'
        '400':
          $ref: '#/components/responses/bad-request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '409':
          $ref: '#/components/responses/update-kyc-tax-details-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
  /widgets/kyc/sessions:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    post:
      operationId: widgets.create-kyc-widget-session
      summary: Create session
      description: Create a new session for the KYC Widget.
      tags:
      - KYC
      x-uphold:
        security:
          OAuth2:
            subjects:
            - user:individual
      security:
      - OAuth2:
        - widgets.kyc.sessions:create
      parameters:
      - $ref: '#/components/parameters/x-on-behalf-of'
      - $ref: '#/components/parameters/x-uphold-user-ip'
      - $ref: '#/components/parameters/x-uphold-user-agent'
      - $ref: '#/components/parameters/x-uphold-user-origin'
      - $ref: '#/components/parameters/x-uphold-user-country'
      - $ref: '#/components/parameters/x-uphold-user-subdivision'
      - $ref: '#/components/parameters/x-uphold-user-city'
      requestBody:
        $ref: '#/components/requestBodies/create-kyc-widget-session-request-body'
      responses:
        '201':
          $ref: '#/components/responses/create-kyc-widget-session-response'
        '400':
          $ref: '#/components/responses/bad-request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '403':
          $ref: '#/components/responses/forbidden'
        '409':
          $ref: '#/components/responses/create-kyc-widget-session-conflict-response'
        '429':
          $ref: '#/components/responses/too-many-requests'
webhooks:
  core.kyc.profile.status-changed:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    post:
      operationId: core.kyc-profile-status-changed
      summary: Profile Status Changed
      description: The profile status has been changed.
      tags:
      - KYC
      parameters:
      - $ref: '#/components/parameters/webhook-id'
      - $ref: '#/components/parameters/webhook-timestamp'
      - $ref: '#/components/parameters/webhook-signature'
      requestBody:
        description: KYC profile status changed event.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/kyc-webhook-event'
            examples:
              KYC Profile Status Changed:
                value:
                  id: 123e4567-e89b-12d3-a456-426614174000
                  type: core.kyc.profile.status-changed
                  createdAt: '2021-01-01T00:00:00.000Z'
                  data:
                    status: ok
                    userId: 123e4567-e89b-12d3-a456-426614174000
      responses:
        '200':
          description: Return a 200 status to indicate that the data was received successfully.
  core.kyc.email.status-changed:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    post:
      operationId: core.kyc-email-status-changed
      summary: Email Status Changed
      description: The email status has been changed.
      tags:
      - KYC
      parameters:
      - $ref: '#/components/parameters/webhook-id'
      - $ref: '#/components/parameters/webhook-timestamp'
      - $ref: '#/components/parameters/webhook-signature'
      requestBody:
        description: KYC email status changed event.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/kyc-webhook-event'
            examples:
              KYC Email Status Changed:
                value:
                  id: 123e4567-e89b-12d3-a456-426614174000
                  type: core.kyc.email.status-changed
                  createdAt: '2021-01-01T00:00:00.000Z'
                  data:
                    status: ok
                    userId: 123e4567-e89b-12d3-a456-426614174000
      responses:
        '200':
          description: Return a 200 status to indicate that the data was received successfully.
  core.kyc.phone.status-changed:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    post:
      operationId: core.kyc-phone-status-changed
      summary: Phone Status Changed
      description: The phone status has been changed.
      tags:
      - KYC
      parameters:
      - $ref: '#/components/parameters/webhook-id'
      - $ref: '#/components/parameters/webhook-timestamp'
      - $ref: '#/components/parameters/webhook-signature'
      requestBody:
        description: KYC phone status changed event.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/kyc-webhook-event'
            examples:
              KYC Phone Status Changed:
                value:
                  id: 123e4567-e89b-12d3-a456-426614174000
                  type: core.kyc.phone.status-changed
                  createdAt: '2021-01-01T00:00:00.000Z'
                  data:
                    status: ok
                    userId: 123e4567-e89b-12d3-a456-426614174000
      responses:
        '200':
          description: Return a 200 status to indicate that the data was received successfully.
  core.kyc.address.status-changed:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    post:
      operationId: core.kyc-address-status-changed
      summary: Address Status Changed
      description: The address status has been changed.
      tags:
      - KYC
      parameters:
      - $ref: '#/components/parameters/webhook-id'
      - $ref: '#/components/parameters/webhook-timestamp'
      - $ref: '#/components/parameters/webhook-signature'
      requestBody:
        description: KYC address status changed event.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/kyc-webhook-event'
            examples:
              KYC Address Status Changed:
                value:
                  id: 123e4567-e89b-12d3-a456-426614174000
                  type: core.kyc.address.status-changed
                  createdAt: '2021-01-01T00:00:00.000Z'
                  data:
                    status: ok
                    userId: 123e4567-e89b-12d3-a456-426614174000
      responses:
        '200':
          description: Return a 200 status to indicate that the data was received successfully.
  core.kyc.identity.status-changed:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    post:
      operationId: core.kyc-identity-status-changed
      summary: Identity Status Changed
      description: The identity status has been changed.
      tags:
      - KYC
      parameters:
      - $ref: '#/components/parameters/webhook-id'
      - $ref: '#/components/parameters/webhook-timestamp'
      - $ref: '#/components/parameters/webhook-signature'
      requestBody:
        description: KYC identity status changed event.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/kyc-webhook-event'
            examples:
              KYC Identity Status Changed:
                value:
                  id: 123e4567-e89b-12d3-a456-426614174000
                  type: core.kyc.identity.status-changed
                  createdAt: '2021-01-01T00:00:00.000Z'
                  data:
                    status: ok
                    userId: 123e4567-e89b-12d3-a456-426614174000
      responses:
        '200':
          description: Return a 200 status to indicate that the data was received successfully.
  core.kyc.proof-of-address.status-changed:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    post:
      operationId: core.kyc-proof-of-address-status-changed
      summary: Proof-of-address Status Changed
      description: The proof-of-address status has been changed.
      tags:
      - KYC
      parameters:
      - $ref: '#/components/parameters/webhook-id'
      - $ref: '#/components/parameters/webhook-timestamp'
      - $ref: '#/components/parameters/webhook-signature'
      requestBody:
        description: KYC proof-of-address status changed event.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/kyc-webhook-event'
            examples:
              KYC Proof-of-address Status Changed:
                value:
                  id: 123e4567-e89b-12d3-a456-426614174000
                  type: core.kyc.proof-of-address.status-changed
                  createdAt: '2021-01-01T00:00:00.000Z'
                  data:
                    status: ok
                    userId: 123e4567-e89b-12d3-a456-426614174000
      responses:
        '200':
          description: Return a 200 status to indicate that the data was received successfully.
  core.kyc.tax-details.status-changed:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    post:
      operationId: core.kyc-tax-details-status-changed
      summary: Tax Details Status Changed
      description: The tax details status has been changed.
      tags:
      - KYC
      parameters:
      - $ref: '#/components/parameters/webhook-id'
      - $ref: '#/components/parameters/webhook-timestamp'
      - $ref: '#/components/parameters/webhook-signature'
      requestBody:
        description: KYC tax details status changed event.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/kyc-webhook-event'
            examples:
              KYC Tax Details Status Changed:
                value:
                  id: 123e4567-e89b-12d3-a456-426614174000
                  type: core.kyc.tax-details.status-changed
                  createdAt: '2021-01-01T00:00:00.000Z'
                  data:
                    status: ok
                    userId: 123e4567-e89b-12d3-a456-426614174000
      responses:
        '200':
          description: Return a 200 status to indicate that the data was received successfully.
  core.kyc.customer-due-diligence.status-changed:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    post:
      operationId: core.kyc-customer-due-diligence-status-changed
      summary: Customer Due Diligence Status Changed
      description: The customer due diligence status has been changed.
      tags:
      - KYC
      parameters:
      - $ref: '#/components/parameters/webhook-id'
      - $ref: '#/components/parameters/webhook-timestamp'
      - $ref: '#/components/parameters/webhook-signature'
      requestBody:
        description: KYC customer due diligence status changed event.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/kyc-webhook-event'
            examples:
              KYC Customer Due Diligence Status Changed:
                value:
                  id: 123e4567-e89b-12d3-a456-426614174000
                  type: core.kyc.customer-due-diligence.status-changed
                  createdAt: '2021-01-01T00:00:00.000Z'
                  data:
                    status: ok
                    userId: 123e4567-e89b-12d3-a456-426614174000
      responses:
        '200':
          description: Return a 200 status to indicate that the data was received successfully.
  core.kyc.enhanced-due-diligence.status-changed:
    servers:
    - url: https://api.enterprise.sandbox.uphold.com
      description: Sandbox
    - url: https://api.enterprise.uphold.com
      description: Production
    post:
      operationId: core.kyc-enhanced-due-diligence-status-changed
      summary: Enhanced Due Diligence Status Changed
      description: The enhanced due diligence status has been changed.
      tags:
      - KYC
      parameters:
      - $ref: '#/components/parameters/webhook-id'
      - $ref: '#/components/parameters/webhook-timestamp'
      - $ref: '#/components/parameters/webhook-signature'
      requestBody:
        descri

# --- truncated at 32 KB (252 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/uphold/refs/heads/main/openapi/uphold-kyc-api-openapi.yml