openapi: 3.0.1
info:
  title: Entities
  version: 2.10.0
  description: Entities REST API for entities management.
  contact:
    name: Jan Terlecki
servers:
  - url: https://tvda-api.platform-test.tradevest.ai
    description: Test
security:
  - Bearer: []
tags:
  - name: General
    description: General entity endpoints
  - name: Natural Persons
    description: Natural Persons
  - name: Identification
    description: Natural Person identification verifications
  - name: Trading Profile
    description: Natural Person trading profile and investment objectives
  - name: Appropriateness Test
    description: Natural Person appropriateness test
  - name: Legal Entities
    description: Legal Entities
  - name: Beneficial Owners
    description: Beneficial Owners
  - name: Legal Representatives
    description: Legal Representatives
  - name: Onboardings
    description: Onboardings
  - name: Offboardings
    description: Offboardings
  - name: Search Nace Sectors
    description: Search Nace Sectors
paths:
  /v2/partner-details:
    get:
      summary: Get Partner details
      operationId: get-partner-details
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      description: Get partner details
      tags:
        - General
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerDetails'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /entities:
    get:
      summary: Get Entities
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Entities'
      operationId: get-entities
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      description: Get list of entities
      parameters:
        - $ref: '#/components/parameters/cursor'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/entityTypes'
        - $ref: '#/components/parameters/entityStatuses'
        - $ref: '#/components/parameters/searchText'
        - $ref: '#/components/parameters/globalId'
        - $ref: '#/components/parameters/optionalEntityId'
        - $ref: '#/components/parameters/role'
        - $ref: '#/components/parameters/startDate'
        - $ref: '#/components/parameters/endDate'
      tags:
        - General
    parameters: []
  /entities/identification-verifications:
    post:
      summary: Create Identification Verification
      operationId: create-identification-verification
      x-operation-group: entities-command
      x-required-permissions: rs/entities/write
      tags:
        - Identification
      parameters:
        - $ref: '#/components/parameters/requestorId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RequestIdentificationVerificationResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/IdentificationVerificationData'
      description: |-
        Create Identification Verification

        After successful request link to a video call should be retrieved with Get Identification Verification endpoint from `identificationUrl` field of the response.

        Currently only externalVerifier = WEB_ID and identificationType = VIDEO_IDENT is supported.
    get:
      summary: Get Identification Verifications
      operationId: get-identification-verifications
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      tags:
        - Identification
      parameters:
        - $ref: '#/components/parameters/cursor'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentificationVerifications'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      description: Get Identification Verifications
  /entities/identification-verifications/{identificationVerificationId}:
    parameters:
      - $ref: '#/components/parameters/identificationVerificationId'
    get:
      summary: Get Identification Verification
      operationId: get-identification-verification
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      tags:
        - Identification
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IdentificationVerification'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      description: Get Identification Verification
  /entities/natural-persons:
    post:
      summary: Create Natural Person
      operationId: create-natural-person
      x-operation-group: entities-command
      x-required-permissions: rs/entities/write
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateNaturalPersonResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      description: Create new natural person
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NaturalPersonData'
      tags:
        - Natural Persons
    get:
      summary: Get Natural Persons
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      tags:
        - Natural Persons
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NaturalPersons'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      operationId: get-natural-persons
      description: Get natural persons
      parameters:
        - $ref: '#/components/parameters/cursor'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/naturalPersonStatus'
  /entities/natural-persons/{naturalPersonId}:
    parameters:
      - $ref: '#/components/parameters/naturalPersonId'
    get:
      summary: Get Natural Person
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      tags:
        - Natural Persons
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NaturalPerson'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      operationId: get-natural-person
      description: Get natural person
    patch:
      summary: Update Natural Person
      operationId: update-natural-person
      x-operation-group: entities-command
      x-required-permissions: rs/entities/write
      parameters:
        - $ref: '#/components/parameters/requestorId'
      responses:
        '202':
          description: Accepted
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      description: Update natural person
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NaturalPersonUpdate'
      tags:
        - Natural Persons
  /entities/natural-persons/{naturalPersonId}/identification:
    parameters:
      - $ref: '#/components/parameters/naturalPersonId'
    post:
      summary: Create Natural Person Identification
      operationId: create-natural-person-identification
      x-operation-group: entities-command
      x-required-permissions: rs/entities/write
      tags:
        - Identification
      parameters:
        - $ref: '#/components/parameters/requestorId'
      responses:
        '202':
          description: Accepted
          content: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      description: Create new natural person identification
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NaturalPersonIdentificationData'
  /appropriateness-test/asset-types/{appropriatenessTestAssetType}:
    parameters:
      - $ref: '#/components/parameters/appropriatenessTestAssetType'
      - $ref: '#/components/parameters/TradingProfileLanguage'
    get:
      summary: Get Appropriateness Test
      operationId: get-appropriateness-test
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      tags:
        - Appropriateness Test
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppropriatenessTest'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      description: Get appropriateness test for a specific asset type. Returns the latest version of the test available in the database.
  /entities/natural-persons/{naturalPersonId}/appropriateness-test/asset-types/{appropriatenessTestAssetType}/responses:
    parameters:
      - $ref: '#/components/parameters/naturalPersonId'
      - $ref: '#/components/parameters/appropriatenessTestAssetType'
    post:
      summary: Submit Appropriateness Test Responses
      operationId: submit-appropriateness-test-responses
      x-operation-group: entities-command
      x-required-permissions: rs/entities/write
      tags:
        - Appropriateness Test
      parameters:
        - $ref: '#/components/parameters/requestorId'
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubmitAppropriatenessTestResponseResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      description: Submit appropriateness test responses for a specific asset type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppropriatenessTestResponsesData'
    get:
      summary: Get Appropriateness Test Responses
      operationId: get-appropriateness-test-responses
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      tags:
        - Appropriateness Test
      parameters:
        - $ref: '#/components/parameters/cursor'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/TradingProfileLanguage'
        - $ref: '#/components/parameters/TradingProfileStatus'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppropriatenessTestResponses'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      description: Get all appropriateness test responses for a natural person and specific asset type
  /entities/natural-persons/appropriateness-test/responses/{appropriatenessTestResponseId}:
    get:
      summary: Get Appropriateness Test Response
      operationId: get-appropriateness-test-response
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      tags:
        - Appropriateness Test
      parameters:
        - $ref: '#/components/parameters/appropriatenessTestResponseId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppropriatenessTestResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      description: Get all appropriateness test responses for a natural person and specific asset type
  /entities/natural-persons/{naturalPersonId}/trading-profile/asset-types/{assetType}:
    parameters:
      - $ref: '#/components/parameters/naturalPersonId'
      - $ref: '#/components/parameters/assetType'
    post:
      summary: Create Asset Type Trading Profile
      operationId: create-asset-type-trading-profile
      x-operation-group: entities-command
      x-required-permissions: rs/entities/write
      tags:
        - Trading Profile
      parameters:
        - $ref: '#/components/parameters/requestorId'
      responses:
        '202':
          description: Accepted
          content: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      description: Create new trading profile details for specific asset type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetTypeTradingProfileData'
    patch:
      summary: Update Asset Type Trading Profile
      operationId: update-asset-type-trading-profile
      x-operation-group: entities-command
      x-required-permissions: rs/entities/write
      tags:
        - Trading Profile
      parameters:
        - $ref: '#/components/parameters/requestorId'
      responses:
        '202':
          description: Accepted
          content: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      description: Update existing trading profile details for specific asset type
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssetTypeTradingProfileUpdate'
  /entities/natural-persons/{naturalPersonId}/trading-profile/asset-types/{assetType}/acknowledge:
    parameters:
      - $ref: '#/components/parameters/naturalPersonId'
      - $ref: '#/components/parameters/assetType'
    post:
      summary: Acknowledge Asset Type Trading Profile
      operationId: acknowledge-asset-type-trading-profile
      x-operation-group: entities-command
      x-required-permissions: rs/entities/write
      tags:
        - Trading Profile
      parameters:
        - $ref: '#/components/parameters/requestorId'
      responses:
        '202':
          description: Accepted
          content: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      description: Acknowledge asset type trading profile for natural person
  /entities/natural-persons/{naturalPersonId}/trading-profile/investment-objectives:
    parameters:
      - $ref: '#/components/parameters/naturalPersonId'
    post:
      summary: Create Investment Objectives
      operationId: create-investment-objectives
      x-operation-group: entities-command
      x-required-permissions: rs/entities/write
      tags:
        - Trading Profile
      parameters:
        - $ref: '#/components/parameters/requestorId'
      responses:
        '202':
          description: Accepted
          content: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      description: Create investment objectives for natural person trading profile
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvestmentObjectives'
    patch:
      summary: Update Investment Objectives
      operationId: update-investment-objectives
      x-operation-group: entities-command
      x-required-permissions: rs/entities/write
      tags:
        - Trading Profile
      parameters:
        - $ref: '#/components/parameters/requestorId'
      responses:
        '202':
          description: Accepted
          content: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      description: Update investment objectives for natural person trading profile
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvestmentObjectives'
  /entities/natural-persons/search/nace-sectors:
    parameters:
      - $ref: '#/components/parameters/naceSectorDescription'
    get:
      summary: Search Nace Sectors for Natural Person
      operationId: search-nace-sectors-for-natural-person
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/NaturalPersonNaceSector'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      description: Search Nace Sectors for Natural Person
      tags:
        - Search Nace Sectors
  /entities/legal-entities:
    post:
      summary: Create Legal Entity
      operationId: create-legal-entity
      x-operation-group: entities-command
      x-required-permissions: rs/entities/write
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateLegalEntityResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      description: Create new legal entity
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateLegalEntityData'
      tags:
        - Legal Entities
    get:
      summary: Get Legal Entities
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      tags:
        - Legal Entities
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegalEntities'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      operationId: get-legal-entities
      description: Get legal entities
      parameters:
        - $ref: '#/components/parameters/cursor'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/legalEntityStatus'
  /entities/legal-entities/{legalEntityId}:
    parameters:
      - $ref: '#/components/parameters/legalEntityId'
    get:
      summary: Get Legal Entity
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      tags:
        - Legal Entities
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegalEntity'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      operationId: get-legal-entity
      description: Get legal entity
    patch:
      summary: Update Legal Entity
      operationId: update-legal-entity
      x-operation-group: entities-command
      x-required-permissions: rs/entities/write
      parameters:
        - $ref: '#/components/parameters/requestorId'
      responses:
        '202':
          description: Accepted
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      description: Update legal entity
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LegalEntityUpdate'
      tags:
        - Legal Entities
  /entities/legal-entities/search/nace-sectors:
    parameters:
      - $ref: '#/components/parameters/naceSectorDescription'
    get:
      summary: Search Nace Sectors for Legal Entity
      operationId: search-nace-sectors-for-legal-entity
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LegalEntityNaceSector'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      description: Search Nace Sectors for Legal Entity
      tags:
        - Search Nace Sectors
  /entities/{legalEntityId}/beneficial-owners:
    parameters:
      - $ref: '#/components/parameters/legalEntityId'
    post:
      summary: Create Beneficial Owner
      operationId: create-beneficial-owner
      x-operation-group: entities-command
      x-required-permissions: rs/entities/write
      description: Create new beneficial owner
      tags:
        - Beneficial Owners
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateBeneficialOwnerResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BeneficialOwnerData'
    get:
      summary: Get Beneficial Owners
      operationId: get-beneficial-owners
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      description: Get beneficial owners
      tags:
        - Beneficial Owners
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BeneficialOwners'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      parameters:
        - $ref: '#/components/parameters/cursor'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/beneficialOwnerStatus'
        - $ref: '#/components/parameters/startDate'
        - $ref: '#/components/parameters/endDate'
  /entities/beneficial-owners/{beneficialOwnerId}:
    parameters:
      - $ref: '#/components/parameters/beneficialOwnerId'
    get:
      summary: Get Beneficial Owner
      operationId: get-beneficial-owner
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      description: Get beneficial owner
      tags:
        - Beneficial Owners
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BeneficialOwner'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
    patch:
      summary: Update Beneficial Owner
      operationId: update-beneficial-owner
      x-operation-group: entities-command
      x-required-permissions: rs/entities/write
      description: Update beneficial owner
      tags:
        - Beneficial Owners
      parameters:
        - $ref: '#/components/parameters/requestorId'
      responses:
        '202':
          description: Accepted
          content: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BeneficialOwnerUpdate'
  /entities/{legalEntityId}/legal-representatives:
    parameters:
      - $ref: '#/components/parameters/legalEntityId'
    post:
      summary: Create Legal Representative
      operationId: create-legal-representative
      x-operation-group: entities-command
      x-required-permissions: rs/entities/write
      description: Create new legal representative
      tags:
        - Legal Representatives
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateLegalRepresentativeResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LegalRepresentativeData'
    get:
      summary: Get Legal Representatives
      operationId: get-legal-representatives
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      description: Get legal representatives
      tags:
        - Legal Representatives
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegalRepresentatives'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      parameters:
        - $ref: '#/components/parameters/cursor'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/legalRepresentativeStatus'
        - $ref: '#/components/parameters/startDate'
        - $ref: '#/components/parameters/endDate'
  /entities/legal-representatives/{legalRepresentativeId}:
    parameters:
      - $ref: '#/components/parameters/legalRepresentativeId'
    get:
      summary: Get Legal Representative
      operationId: get-legal-representative
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      description: Get legal representative
      tags:
        - Legal Representatives
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegalRepresentative'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
    patch:
      summary: Update Legal Representative
      operationId: update-legal-representative
      x-operation-group: entities-command
      x-required-permissions: rs/entities/write
      description: Update legal representative
      tags:
        - Legal Representatives
      parameters:
        - $ref: '#/components/parameters/requestorId'
      responses:
        '202':
          description: Accepted
          content: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LegalRepresentativeUpdate'
    delete:
      summary: Delete Legal Representative
      operationId: delete-legal-representative
      x-operation-group: entities-command
      x-required-permissions: rs/entities/write
      description: Delete legal representative, it will inactivate the legal representative
      tags:
        - Legal Representatives
      parameters:
        - $ref: '#/components/parameters/requestorId'
      responses:
        '202':
          description: Accepted
          content: {}
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /entities/vendor/legal-entities:
    get:
      summary: Search Legal Entities
      operationId: search-legal-entities
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      description: This operation requests a fuzzy search for a legal entity by the company name and the country in which it was registered. The name does not have to be complete and will return a list of companies that most closely match the search criteria.
      tags:
        - Legal Entities
      parameters:
        - $ref: '#/components/parameters/legalName'
        - $ref: '#/components/parameters/providerId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LegalEntitySearchLiteResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
    post:
      summary: Prepare Legal Entity
      operationId: prepare-legal-entity
      x-operation-group: entities-command
      x-required-permissions: rs/entities/write
      description: This operation requests preparation of data for a legal entity by its full name and the country in which was registered. As a result of the operation, a unique search id is returned, which can be used on other endpoints. The outcome of the matching will be presented for review on the **Get Legal Entity By Search Id** endpoint. The result can be discarded and all company details can be filled in manually or the result can be accepted and the company can be created on the **Create Legal Entity Customer - search based** endpoint. This endpoint will, among others, automatically pull company documents from public registers. As this might not always succeed, it is recommended to call this endpoint multiple times in case of failure.
      tags:
        - Legal Entities
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PrepareLegalEntityResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PrepareLegalEntityData'
  /entities/vendor/legal-entities/{searchId}:
    parameters:
      - $ref: '#/components/parameters/searchId'
    get:
      summary: Get Legal Entity Search Result
      operationId: get-legal-entity-search-result
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      description: Get legal entity search result
      tags:
        - Legal Entities
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LegalEntityCompoundSearchResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
  /entities/onboardings:
    post:
      summary: Start Onboarding
      operationId: start-onboarding
      x-operation-group: entities-command
      x-required-permissions: rs/entities/write
      parameters:
        - $ref: '#/components/parameters/requestorId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StartOnboardingResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      description: Start onboarding process
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EntityOnboardingData'
        description: ''
      tags:
        - Onboardings
    get:
      summary: Get Onboardings
      operationId: get-onboardings
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EntityOnboarding'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      description: Get list of onboardings for an entity
      tags:
        - Onboardings
      parameters:
        - $ref: '#/components/parameters/onboardingEntityType'
        - $ref: '#/components/parameters/mandatoryEntityId'
  /entities/onboardings/{onboardingId}:
    parameters:
      - $ref: '#/components/parameters/onboardingId'
    get:
      summary: Get Onboarding
      operationId: get-onboarding
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityOnboarding'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      description: Get onboarding information
      tags:
        - Onboardings
  /entities/offboardings:
    post:
      summary: Start Offboarding
      operationId: start-offboarding
      description: Start offboarding process process for a entity
      x-operation-group: entities-command
      x-required-permissions: rs/entities/write
      tags:
        - Offboardings
      parameters:
        - $ref: '#/components/parameters/requestorId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StartOffboardingResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EntityOffboardingData'
    get:
      summary: Get Offboardings
      operationId: get-offboardings
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      description: Get list of offboardings for a entity
      tags:
        - Offboardings
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/EntityOffboarding'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
      parameters:
        - $ref: '#/components/parameters/offboardingEntityType'
        - $ref: '#/components/parameters/mandatoryEntityId'
  /entities/offboardings/{offboardingId}:
    parameters:
      - $ref: '#/components/parameters/offboardingId'
    get:
      summary: Get Offboarding
      operationId: get-offboarding
      x-operation-group: entities-query
      x-required-permissions: rs/entities/read
      description: Get offboarding information
      tags:
        - Offboardings
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityOffboarding'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
    delete:
      summary: Cancel Offboarding
      operationId: cancel-offboarding
      x-operation-group: entities-command
      x-required-permissions: rs/entities/write
      description: Cancel created offboarding if not started.
      tags:
        - Offboardings
      parameters:
        - $ref: '#/components/parameters/requestorId'
      responses:
        '202':
          description: Accepted
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorMessage'
components:
  schemas:
    PartnerDetails:
      title: PartnerDetails
      type: object
      properties:
        businessName:
          type: string
          minLength: 1
          maxLength: 255
          description: The business name of the entity
        globalId:
          type: string
          minLength: 12
          maxLength: 12
          readOnly: true
        address:
          $ref: '#/components/schemas/Address'
        contact:
          $ref: '#/components/schemas/Contact'
        createdOn:
          type: string
          format: date-time
          readOnly: true
        modifiedOn:
          type: string
          format: date-time
          readOnly: true
        activatedOn:
          type: string
          format: date-time
          readOnly: true
      required:
        - businessName
        - globalId
        - address
        - contact
        - createdOn
        - modifiedOn
    Entities:
      title: Entities
      type: object
      properties:
        data:
          type: array
          description: Array of entities ordered by creation date (newest first)
          items:
            $ref: '#/components/schemas/Entity'
        pagination:
          $ref: '#/components/schemas/Pagination'
      required:
        - data
        - pagination
    Entity:
      title: Entity
      type: object
      properties:
        globalId:
          type: string
          minLength: 12
          maxLength: 12
          description: Global ID of the entity
        entityId:
          type: string
          format: uuid
          description: Unique entity identification number in UUID format
        entityName:
          type: string
          minLength: 1
          description: |
            Name of the entity:
            * For Natural Person, Beneficial Owner, Legal Representative: firstName + lastName
            * For Joint Person: firstName + lastName of 1st natural person + " & " + firstName + lastName of 2nd natural person
            * For Legal Entity: legalName
        entityType:
          $ref: '#/components/schemas/EntityTypeEnum'
        entityStatus:
          $ref: '#/components/schemas/EntityStatusEnum'
        contactPhone:
          type: string
          minLength: 1
          description: Contact phone number of the entity
        createdOn:
          type: string
          format: date-time
          description: The date on which the entity was created
        roles:
          type: array
          description: List of roles assigned to the entity
          items:
            $ref: '#/components/schemas/EntityRole'
      required:
        - globalId
        - entityId
        - entityName
        - entityType
        - entityStatus
        - contactPhone
        - createdOn
        - roles
    EntityRole:
      title: EntityRole
      type: object
      properties:
        roleType:
          $ref: '#/components/schemas/EntityRoleEnum'
        roleId:
          type: string
          format: uuid
          description: Unique role identification number in UUID format
      required:
        - roleType
        - roleId
    JointPersonData:
      title: JointPersonData
      type: object
      properties:
        annualIncomeNet:
          type: number
          multipleOf: 0.01
          description: Annual income net
        sourceOfIncome:
          type: array
          items:
            $ref: '#/components/schemas/NaturalPersonSourceOfIncomeEnum'
        availableAssets:
          type: number
          multipleOf: 0.01
          description: Available assets
        originOfAssets:
          type: array
          items:
            $ref: '#/components/schemas/NaturalPersonAssetOriginEnum'
        firstNaturalPersonId:
          type: string
          format: uuid
          description: Identifier for the first **Natural Person**
        secondNaturalPersonId:
          type: string
          format: uuid
          description: Identifier for the second **Natural Person**
        contact:
          $ref: '#/components/schemas/Contact'
        mainAddress:
          $ref: '#/components/schemas/Address'
        correspondenceAddress:
          $ref: '#/components/schemas/Address'
        externalId:
          type: string
          minLength: 1
          description: External Id in partner's system. This value has to be unique
      required:
        - firstNaturalPersonId
        - secondNaturalPersonId
        - contact
        - mainAddress
    JointPersons:
      title: JointPersons
      type: object
      properties:
        data:
          type: array
          description: Array of joint persons
          items:
            $ref: '#/components/schemas/JointPerson'
        pagination:
          $ref: '#/components/schemas/Pagination'
      required:
        - data
        - pagination
    JointPerson:
      title: JointPerson
      type: object
      properties:
        annualIncomeNet:
          type: number
          multipleOf: 0.01
          description: Annual income net
        sourceOfIncome:
          type: array
          items:
            $ref: '#/components/schemas/NaturalPersonSourceOfIncomeEnum'
        availableAssets:
          type: number
          multipleOf: 0.01
          description: Available assets
        originOfAssets:
          type: array
          items:
            $ref: '#/components/schemas/NaturalPersonAssetOriginEnum'
        firstNaturalPersonId:
          type: string
          format: uuid
          description: Identifier for the first **Natural Person**
        secondNaturalPersonId:
          type: string
          format: uuid
          description: Identifier for the second **Natural Person**
        contact:
          $ref: '#/components/schemas/Contact'
        mainAddress:
          $ref: '#/components/schemas/Address'
        correspondenceAddress:
          $ref: '#/components/schemas/Address'
        externalId:
          type: string
          minLength: 1
          description: External Id in partner's system. This value has to be unique
        jointPersonId:
          type: string
          format: uuid
          description: Unique joint person identification number in UUID format
        createdOn:
          type: string
          format: date-time
          description: The date on which the joint person was created
        modifiedOn:
          type: string
          format: date-time
          description: The date on which the joint person was modified the last time
        globalId:
          type: string
          minLength: 12
          maxLength: 12
          description: Global ID of the joint person
        jointPersonStatus:
          $ref: '#/components/schemas/JointPersonStatusEnum'
      required:
        - contact
        - createdOn
        - firstNaturalPersonId
        - globalId
        - jointPersonId
        - jointPersonStatus
        - mainAddress
        - modifiedOn
        - secondNaturalPersonId
    JointPersonUpdate:
      title: JointPersonUpdate
      type: object
      properties:
        annualIncomeNet:
          type: number
          multipleOf: 0.01
          description: Annual income net
        sourceOfIncome:
          type: array
          items:
            $ref: '#/components/schemas/NaturalPersonSourceOfIncomeEnum'
        availableAssets:
          type: number
          multipleOf: 0.01
          description: Available assets
        originOfAssets:
          type: array
          items:
            $ref: '#/components/schemas/NaturalPersonAssetOriginEnum'
        contact:
          $ref: '#/components/schemas/Contact'
        mainAddress:
          $ref: '#/components/schemas/Address'
        correspondenceAddress:
          $ref: '#/components/schemas/Address'
        externalId:
          type: string
          minLength: 1
          description: External Id in partner's system. This value has to be unique
    RequestIdentificationVerificationResult:
      title: RequestIdentificationVerificationResult
      type: object
      properties:
        identificationVerificationId:
          type: string
          format: uuid
      required:
        - identificationVerificationId
    IdentificationVerificationData:
      title: IdentificationVerificationData
      type: object
      properties:
        naturalPersonId:
          type: string
          format: uuid
        externalVerifier:
          $ref: '#/components/schemas/ExternalVerifierEnum'
        identificationType:
          $ref: '#/components/schemas/IdentificationTypeEnum'
        redirectUrl:
          type: string
          minLength: 1
          pattern: ^https?://.+
          description: Redirect URL passed to the external verifier. After the identification process is done, the user will be redirected to this URL.
      required:
        - naturalPersonId
        - externalVerifier
        - identificationType
    IdentificationVerifications:
      title: IdentificationVerifications
      type: object
      properties:
        data:
          type: array
          description: Array of identification verifications
          items:
            $ref: '#/components/schemas/IdentificationVerification'
        pagination:
          $ref: '#/components/schemas/Pagination'
      required:
        - data
        - pagination
    IdentificationVerification:
      title: IdentificationVerification
      type: object
      properties:
        naturalPersonId:
          type: string
          format: uuid
        identificationVerificationId:
          type: string
          format: uuid
          readOnly: true
        externalVerifier:
          $ref: '#/components/schemas/ExternalVerifierEnum'
        identificationType:
          $ref: '#/components/schemas/IdentificationTypeEnum'
        identificationUrl:
          type: string
          minLength: 1
        documentId:
          type: string
          format: uuid
        naturalPersonIdentificationId:
          type: string
          format: uuid
        createdOn:
          type: string
          format: date-time
          description: The date on which the wizard was created
          readOnly: true
        modifiedOn:
          type: string
          format: date-time
          description: The date on which the wizard was modified the last time
          readOnly: true
        status:
          $ref: '#/components/schemas/IdentificationVerificationStatusEnum'
      required:
        - externalVerifier
        - identificationType
        - naturalPersonId
        - identificationUrl
        - identificationVerificationId
        - createdOn
        - modifiedOn
        - status
    CreateNaturalPersonResult:
      title: CreateNaturalPersonResult
      type: object
      properties:
        naturalPersonId:
          type: string
          format: uuid
          description: Unique natural person identification number in UUID format
          readOnly: true
      required:
        - naturalPersonId
    CreateJointPersonResult:
      title: CreateJointPersonResult
      type: object
      properties:
        jointPersonId:
          type: string
          format: uuid
          description: Unique joint person identification number in UUID format
          readOnly: true
      required:
        - jointPersonId
    NaturalPersons:
      title: NaturalPersons
      type: object
      properties:
        data:
          type: array
          description: Array of natural persons
          items:
            $ref: '#/components/schemas/NaturalPerson'
        pagination:
          $ref: '#/components/schemas/Pagination'
      required:
        - data
        - pagination
    NaturalPerson:
      type: object
      required:
        - birthCountry
        - birthDay
        - birthPlace
        - contact
        - createdOn
        - firstName
        - gender
        - globalId
        - isUsNationality
        - lastName
        - mainAddress
        - modifiedOn
        - nationalities
        - naturalPersonId
        - naturalPersonStatus
        - taxDetails
      properties:
        deathDay:
          type: string
          format: date
        naturalPersonId:
          type: string
          format: uuid
          description: Unique natural person identification number in UUID format
        globalId:
          type: string
          minLength: 12
          maxLength: 12
          description: Unique identifier for any natural persons, joint persons and legal entities. The respective data set indicates what the data is about.
        createdOn:
          type: string
          format: date-time
          description: The date on which the natural person was created
        modifiedOn:
          type: string
          format: date-time
          description: The date on which the natural person was modified the last time
        verifiedOn:
          type: string
          format: date-time
          description: The date on which the natural person was verified
        isPep:
          type: boolean
          description: Indication of whether the person is a politically exposed person.
        isPepRelated:
          type: boolean
          description: Indication of whether the person is directly related to a politically exposed person.
        isSanction:
          type: boolean
          description: Indication of whether the person is on sanction list.
        riskLevel:
          deprecated: true
          $ref: '#/components/schemas/RiskLevelEnum'
        naturalPersonStatus:
          $ref: '#/components/schemas/NaturalPersonStatusEnum'
        naturalPersonIdentifications:
          type: array
          items:
            $ref: '#/components/schemas/NaturalPersonIdentification'
        naturalPersonSignedDocuments:
          type: array
          items:
            $ref: '#/components/schemas/NaturalPersonDocumentSignature'
        tradingProfile:
          $ref: '#/components/schemas/TradingProfile'
        gender:
          $ref: '#/components/schemas/GenderEnum'
        title:
          $ref: '#/components/schemas/NaturalPersonTitleEnum'
        firstName:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^\S+( \S+)*$
          description: All first names of the person according to the identification document
        lastName:
          type: string
          minLength: 1
          maxLength: 255
          description: Natural person last name
        maritalStatus:
          $ref: '#/components/schemas/NaturalPersonMaritalStatusEnum'
        birthDay:
          type: string
          format: date
        birthPlace:
          type: string
          minLength: 1
          maxLength: 255
        birthCountry:
          $ref: '#/components/schemas/CountryEnum'
        nationalities:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/Nationality'
        language:
          $ref: '#/components/schemas/LanguageEnum'
        taxDetails:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/TaxDetail'
        isUsNationality:
          type: boolean
          description: FATCA - Question whether the customer is subject to US tax liability (nationality or other references due to a green card, registration address, etc.).
        profession:
          type: string
          minLength: 1
          maxLength: 255
        professionGroup:
          $ref: '#/components/schemas/NaturalPersonProfessionGroupEnum'
        naceSectors:
          description: Specification of the sector in which the natural person is professionally active. The information should be provided according to the main classes of the NACE codes (Sections A-V) without subclasses. (Level 1)
          type: array
          items:
            $ref: '#/components/schemas/NaturalPersonNaceSector'
        mainAddress:
          $ref: '#/components/schemas/Address'
        correspondenceAddress:
          $ref: '#/components/schemas/Address'
        annualIncomeNet:
          type: number
          multipleOf: 0.01
          description: Annual income net
        sourceOfIncome:
          type: array
          items:
            $ref: '#/components/schemas/NaturalPersonSourceOfIncomeEnum'
        availableAssets:
          type: number
          multipleOf: 0.01
          description: Available assets
        originOfAssets:
          type: array
          items:
            $ref: '#/components/schemas/NaturalPersonAssetOriginEnum'
        contact:
          $ref: '#/components/schemas/Contact'
        externalId:
          type: string
          minLength: 1
          description: External Id in partner's system. This value has to be unique
      title: NaturalPerson
      description: ''
    NaturalPersonData:
      title: NaturalPersonData
      type: object
      properties:
        gender:
          $ref: '#/components/schemas/GenderEnum'
        title:
          $ref: '#/components/schemas/NaturalPersonTitleEnum'
        firstName:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^\S+( \S+)*$
          description: All first names of the person according to the identification document
        lastName:
          type: string
          minLength: 1
          maxLength: 255
          description: Natural person last name
        maritalStatus:
          $ref: '#/components/schemas/NaturalPersonMaritalStatusEnum'
        birthDay:
          type: string
          format: date
        birthPlace:
          type: string
          minLength: 1
          maxLength: 255
        birthCountry:
          $ref: '#/components/schemas/CountryEnum'
        nationalities:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/Nationality'
        language:
          $ref: '#/components/schemas/LanguageEnum'
        taxDetails:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/TaxDetail'
        isUsNationality:
          type: boolean
          description: FATCA - Question whether the customer is subject to US tax liability (nationality or other references due to a green card, registration address, etc.).
        profession:
          type: string
          minLength: 1
          maxLength: 255
        professionGroup:
          $ref: '#/components/schemas/NaturalPersonProfessionGroupEnum'
        naceSectors:
          description: Specification of the sector in which the natural person is professionally active. The information should be provided according to the main classes of the NACE codes (Sections A-V) without subclasses. (Level 1)
          type: array
          items:
            $ref: '#/components/schemas/NaturalPersonNaceSector'
        mainAddress:
          $ref: '#/components/schemas/Address'
        correspondenceAddress:
          $ref: '#/components/schemas/Address'
        annualIncomeNet:
          type: number
          multipleOf: 0.01
          description: Annual income net
        sourceOfIncome:
          type: array
          items:
            $ref: '#/components/schemas/NaturalPersonSourceOfIncomeEnum'
        availableAssets:
          type: number
          multipleOf: 0.01
          description: Available assets
        originOfAssets:
          type: array
          items:
            $ref: '#/components/schemas/NaturalPersonAssetOriginEnum'
        contact:
          $ref: '#/components/schemas/Contact'
        externalId:
          type: string
          minLength: 1
          description: External Id in partner's system. This value has to be unique
      required:
        - birthCountry
        - birthDay
        - birthPlace
        - contact
        - firstName
        - gender
        - isUsNationality
        - lastName
        - mainAddress
        - nationalities
        - taxDetails
      description: ''
    NaturalPersonUpdate:
      title: NaturalPersonUpdate
      type: object
      properties:
        naturalPersonUpdateData:
          $ref: '#/components/schemas/NaturalPersonUpdateData'
        documentId:
          type: string
          format: uuid
          description: Document ID in UUID format for those params where a document upload is required (title, lastName, deathDay)
      required:
        - naturalPersonUpdateData
    NaturalPersonUpdateData:
      title: NaturalPersonUpdateData
      type: object
      properties:
        annualIncomeNet:
          type: number
          multipleOf: 0.01
          description: Annual income net
        sourceOfIncome:
          type: array
          items:
            $ref: '#/components/schemas/NaturalPersonSourceOfIncomeEnum'
        availableAssets:
          type: number
          multipleOf: 0.01
          description: Available assets
        originOfAssets:
          type: array
          items:
            $ref: '#/components/schemas/NaturalPersonAssetOriginEnum'
        contact:
          $ref: '#/components/schemas/Contact'
        mainAddress:
          title: Address
          type: object
          description: |
            Legal address of the natural person. \
            If the new address is outside DE: A corresponding document (proof of residence) must be submitted to update the legal address. When uploading the document via respecting endpoint, the exact document name must be specified under 'name' and 'PROOF_OF_RESIDENCE' must be selected as the type.
          properties:
            street:
              type: string
              minLength: 1
              maxLength: 255
            streetNumber:
              type: string
              minLength: 1
              maxLength: 20
            city:
              type: string
              minLength: 1
              maxLength: 255
            zip:
              type: string
              minLength: 3
              maxLength: 10
            state:
              type: string
              minLength: 1
              maxLength: 35
            country:
              $ref: '#/components/schemas/CountryEnum'
            additionalInfo:
              type: string
              minLength: 1
          required:
            - street
            - streetNumber
            - city
            - zip
            - country
        correspondenceAddress:
          $ref: '#/components/schemas/Address'
        title:
          title: NaturalPersonTitleEnum
          type: string
          enum:
            - PROFESSOR
            - MAGISTER
            - DR
          description: |
            A corresponding document (proof of obtaining the respective title) must be submitted to update the title. When uploading the document via respecting endpoint, the exact document name must be specified under 'name' and 'KYC' must be selected as the type.
        lastName:
          type: string
          description: |
            Natural person last name. \
            A corresponding document (proof of respective name change) must be submitted to update the last name. When uploading the document via respecting endpoint, the exact document name must be specified under 'name' and 'KYC' must be selected as the type.
          maxLength: 255
        firstName:
          type: string
          description: |
            Natural person first name. \
            A corresponding document (proof of respective name change) must be submitted to update the first name. When uploading the document via respecting endpoint, the exact document name must be specified under 'name' and 'KYC' must be selected as the type.
        gender:
          title: GenderEnum
          type: string
          description: |
            A corresponding document (proof of respective gender change) must be submitted to update the gender. When uploading the document via respecting endpoint, the exact document name must be specified under 'name' and 'KYC' must be selected as the type.
          enum:
            - MALE
            - FEMALE
            - DIVERSE
        maritalStatus:
          $ref: '#/components/schemas/NaturalPersonMaritalStatusEnum'
        profession:
          type: string
          minLength: 1
          maxLength: 255
        professionGroup:
          $ref: '#/components/schemas/NaturalPersonProfessionGroupEnum'
        naceSectors:
          description: Specification of the sector in which the natural person is professionally active. The information should be provided according to the main classes of the NACE codes (Sections A-V) without subclasses. (Level 1)
          type: array
          items:
            $ref: '#/components/schemas/NaturalPersonNaceSector'
        taxDetails:
          type: array
          items:
            $ref: '#/components/schemas/TaxDetail'
        nationalities:
          type: array
          items:
            title: Nationality
            type: object
            x-examples:
              Example 1:
                countryCode: DE
            description: |
              A corresponding document (ID, passport) must be submitted to update the nationality. When uploading the document via respecting endpoint, the exact document name must be specified under 'name' and 'KYC' must be selected as the type.
            properties:
              countryCode:
                $ref: '#/components/schemas/CountryEnum'
              nationalIdentifier:
                type: string
                description: National identifier of the customer
              nationalIdentifierType:
                $ref: '#/components/schemas/NationalIdentifierType'
            required:
              - countryCode
        externalId:
          type: string
          minLength: 1
          description: External Id in partner's system. This value has to be unique
        deathDay:
          type: string
          format: date
          description: |
            A corresponding document (death certificate) must be submitted to update the death day. When uploading the document via respecting endpoint, the exact document name must be specified under 'name' and 'OTHER' must be selected as the type.
    NaturalPersonDocumentSignature:
      title: NaturalPersonDocumentSignature
      type: object
      properties:
        partnerDocumentId:
          type: string
          format: uuid
          description: Id of the partner document which was signed
        name:
          type: string
          description: Name of the document
        documentType:
          $ref: '#/components/schemas/DocumentSignatureTypeEnum'
        version:
          type: integer
          description: Version of the document
        customerId:
          type: string
          format: uuid
          description: Id of the customer in whose context the natural person is active. Required only for TERMS_AND_CONDITIONS document type.
        createdOn:
          type: string
          format: date-time
          description: The date on which the document signature was created
          readOnly: true
        modifiedOn:
          type: string
          format: date-time
          description: The date on which the document signature was modified the last time
          readOnly: true
      required:
        - partnerDocumentId
        - name
        - documentType
        - version
        - createdOn
        - modifiedOn
    NaturalPersonPersonalData:
      title: NaturalPersonPersonalData
      type: object
      properties:
        gender:
          $ref: '#/components/schemas/GenderEnum'
        title:
          $ref: '#/components/schemas/NaturalPersonTitleEnum'
        firstName:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^\S+( \S+)*$
          description: All first names of the person according to the identification document
        lastName:
          type: string
          minLength: 1
          maxLength: 255
          description: Natural person last name
        maritalStatus:
          $ref: '#/components/schemas/NaturalPersonMaritalStatusEnum'
      required:
        - gender
        - firstName
        - lastName
    NaturalPersonBirthData:
      title: NaturalPersonBirthData
      type: object
      properties:
        birthDay:
          type: string
          format: date
        birthPlace:
          type: string
          minLength: 1
          maxLength: 255
        birthCountry:
          $ref: '#/components/schemas/CountryEnum'
        nationalities:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/Nationality'
        language:
          $ref: '#/components/schemas/LanguageEnum'
      required:
        - nationalities
        - birthDay
        - birthPlace
        - birthCountry
    NaturalPersonAddressData:
      title: NaturalPersonAddressData
      type: object
      description: ''
      properties:
        mainAddress:
          $ref: '#/components/schemas/Address'
        correspondenceAddress:
          $ref: '#/components/schemas/Address'
      required:
        - mainAddress
    NaturalPersonClassificationAssetDisclosures:
      title: NaturalPersonClassificationAssetDisclosures
      type: object
      properties:
        annualIncomeNet:
          type: number
          multipleOf: 0.01
          description: Annual income net
        sourceOfIncome:
          type: array
          items:
            $ref: '#/components/schemas/NaturalPersonSourceOfIncomeEnum'
        availableAssets:
          type: number
          multipleOf: 0.01
          description: Available assets
        originOfAssets:
          type: array
          items:
            $ref: '#/components/schemas/NaturalPersonAssetOriginEnum'
    NaturalPersonTaxData:
      title: NaturalPersonTaxData
      type: object
      properties:
        taxDetails:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/TaxDetail'
        isUsNationality:
          type: boolean
          description: FATCA - Question whether the customer is subject to US tax liability (nationality or other references due to a green card, registration address, etc.).
      required:
        - isUsNationality
        - taxDetails
    NaturalPersonEmploymentData:
      title: NaturalPersonEmploymentData
      type: object
      properties:
        profession:
          type: string
          minLength: 1
          maxLength: 255
        professionGroup:
          $ref: '#/components/schemas/NaturalPersonProfessionGroupEnum'
        naceSectors:
          description: Specification of the sector in which the natural person is professionally active. The information should be provided according to the main classes of the NACE codes (Sections A-V) without subclasses. (Level 1)
          type: array
          items:
            $ref: '#/components/schemas/NaturalPersonNaceSector'
    NaturalPersonIdentificationData:
      title: NaturalPersonIdentificationData
      type: object
      properties:
        externalVerifier:
          $ref: '#/components/schemas/ExternalVerifierEnum'
        identificationType:
          $ref: '#/components/schemas/IdentificationTypeEnum'
        identificationDate:
          description: Date on which the identification was carried out. The date must be within the last 24 months.
          type: string
          format: date
        identificationDocumentType:
          $ref: '#/components/schemas/IdentificationDocumentTypeEnum'
        documentNumber:
          description: Document number of the identification document.
          type: string
          minLength: 1
          maxLength: 255
        documentCountry:
          title: CountryEnum
          type: string
          description: Issuing country of the identification document.
          enum:
            - AF
            - AX
            - AL
            - DZ
            - AS
            - AD
            - AO
            - AI
            - AQ
            - AG
            - AR
            - AM
            - AW
            - AU
            - AT
            - AZ
            - BS
            - BH
            - BD
            - BB
            - BY
            - BE
            - BZ
            - BJ
            - BM
            - BT
            - BO
            - BQ
            - BA
            - BW
            - BV
            - BR
            - VG
            - IO
            - BN
            - BG
            - BF
            - BI
            - KH
            - CM
            - CA
            - CV
            - KY
            - CF
            - TD
            - CL
            - CN
            - HK
            - MO
            - CX
            - CC
            - CO
            - KM
            - CG
            - CD
            - CK
            - CR
            - CI
            - HR
            - CU
            - CW
            - CY
            - CZ
            - DK
            - DJ
            - DM
            - DO
            - EC
            - EG
            - SV
            - GQ
            - ER
            - EE
            - ET
            - FK
            - FO
            - FJ
            - FI
            - FR
            - GF
            - PF
            - TF
            - GA
            - GM
            - GE
            - DE
            - GH
            - GI
            - GR
            - GL
            - GD
            - GP
            - GU
            - GT
            - GG
            - GN
            - GW
            - GY
            - HT
            - HM
            - VA
            - HN
            - HU
            - IS
            - IN
            - ID
            - IR
            - IQ
            - IE
            - IM
            - IL
            - IT
            - JM
            - JP
            - JE
            - JO
            - KZ
            - KE
            - KI
            - KP
            - KR
            - KW
            - KG
            - LA
            - LV
            - LB
            - LS
            - LR
            - LY
            - LI
            - LT
            - LU
            - MK
            - MG
            - MW
            - MY
            - MV
            - ML
            - MT
            - MH
            - MQ
            - MR
            - MU
            - YT
            - MX
            - FM
            - MD
            - MC
            - MN
            - ME
            - MS
            - MA
            - MZ
            - MM
            - NA
            - NR
            - NP
            - NL
            - AN
            - NC
            - NZ
            - NI
            - NE
            - NG
            - NU
            - NF
            - MP
            - 'NO'
            - OM
            - PK
            - PW
            - PS
            - PA
            - PG
            - PY
            - PE
            - PH
            - PN
            - PL
            - PT
            - PR
            - QA
            - RE
            - RO
            - RU
            - RW
            - BL
            - SH
            - KN
            - LC
            - MF
            - PM
            - VC
            - WS
            - SM
            - ST
            - SA
            - SN
            - RS
            - SC
            - SL
            - SG
            - SX
            - SK
            - SI
            - SB
            - SO
            - ZA
            - GS
            - SS
            - ES
            - LK
            - SD
            - SR
            - SJ
            - SZ
            - SE
            - CH
            - SY
            - TW
            - TJ
            - TZ
            - TH
            - TL
            - TG
            - TK
            - TO
            - TT
            - TN
            - TR
            - TM
            - TC
            - TV
            - UG
            - UA
            - AE
            - GB
            - US
            - UM
            - UY
            - UZ
            - VU
            - VE
            - VN
            - VI
            - WF
            - EH
            - YE
            - ZM
            - ZW
            - XK
        documentIssuer:
          description: Issuing authority of the identification document
          type: string
          minLength: 1
          maxLength: 255
        documentIssueDate:
          description: Issue date of the identification document
          type: string
          format: date
        documentExpiryDate:
          description: Expiry date of the identification document. If the identification document is a birth certificate, the date on which the person comes of age must be entered as the expiry date.
          type: string
          format: date
        documentMotherFullName:
          description: Full name of the mother, only mandatory for identificationDocumentType = BIRTH_CERTIFICATE
          type: string
          minLength: 1
          maxLength: 255
        documentMotherResidenceCity:
          description: Residence city of the mother, only mandatory for identificationDocumentType = BIRTH_CERTIFICATE
          type: string
          minLength: 1
          maxLength: 255
        documentFatherFullName:
          description: Full name of the father, only mandatory for identificationDocumentType = BIRTH_CERTIFICATE
          type: string
          minLength: 1
          maxLength: 255
        documentFatherResidenceCity:
          description: Residence city of the father, only mandatory for identificationDocumentType = BIRTH_CERTIFICATE
          type: string
          minLength: 1
          maxLength: 255
      required:
        - externalVerifier
        - identificationType
        - identificationDocumentType
        - documentNumber
        - documentCountry
        - documentIssuer
        - documentIssueDate
        - documentExpiryDate
        - identificationDate
    NaturalPersonIdentification:
      type: object
      properties:
        identificationId:
          type: string
          format: uuid
          description: Unique identification number in UUID format
          readOnly: true
        createdOn:
          type: string
          format: date-time
          description: The date on which the wizard was created
          readOnly: true
        modifiedOn:
          type: string
          format: date-time
          description: The date on which the wizard was modified the last time
          readOnly: true
        externalVerifier:
          $ref: '#/components/schemas/ExternalVerifierEnum'
        identificationType:
          $ref: '#/components/schemas/IdentificationTypeEnum'
        identificationDate:
          description: Date on which the identification was carried out. The date must be within the last 24 months.
          type: string
          format: date
        identificationDocumentType:
          $ref: '#/components/schemas/IdentificationDocumentTypeEnum'
        documentNumber:
          description: Document number of the identification document.
          type: string
          minLength: 1
          maxLength: 255
        documentCountry:
          title: CountryEnum
          type: string
          description: Issuing country of the identification document.
          enum:
            - AF
            - AX
            - AL
            - DZ
            - AS
            - AD
            - AO
            - AI
            - AQ
            - AG
            - AR
            - AM
            - AW
            - AU
            - AT
            - AZ
            - BS
            - BH
            - BD
            - BB
            - BY
            - BE
            - BZ
            - BJ
            - BM
            - BT
            - BO
            - BQ
            - BA
            - BW
            - BV
            - BR
            - VG
            - IO
            - BN
            - BG
            - BF
            - BI
            - KH
            - CM
            - CA
            - CV
            - KY
            - CF
            - TD
            - CL
            - CN
            - HK
            - MO
            - CX
            - CC
            - CO
            - KM
            - CG
            - CD
            - CK
            - CR
            - CI
            - HR
            - CU
            - CW
            - CY
            - CZ
            - DK
            - DJ
            - DM
            - DO
            - EC
            - EG
            - SV
            - GQ
            - ER
            - EE
            - ET
            - FK
            - FO
            - FJ
            - FI
            - FR
            - GF
            - PF
            - TF
            - GA
            - GM
            - GE
            - DE
            - GH
            - GI
            - GR
            - GL
            - GD
            - GP
            - GU
            - GT
            - GG
            - GN
            - GW
            - GY
            - HT
            - HM
            - VA
            - HN
            - HU
            - IS
            - IN
            - ID
            - IR
            - IQ
            - IE
            - IM
            - IL
            - IT
            - JM
            - JP
            - JE
            - JO
            - KZ
            - KE
            - KI
            - KP
            - KR
            - KW
            - KG
            - LA
            - LV
            - LB
            - LS
            - LR
            - LY
            - LI
            - LT
            - LU
            - MK
            - MG
            - MW
            - MY
            - MV
            - ML
            - MT
            - MH
            - MQ
            - MR
            - MU
            - YT
            - MX
            - FM
            - MD
            - MC
            - MN
            - ME
            - MS
            - MA
            - MZ
            - MM
            - NA
            - NR
            - NP
            - NL
            - AN
            - NC
            - NZ
            - NI
            - NE
            - NG
            - NU
            - NF
            - MP
            - 'NO'
            - OM
            - PK
            - PW
            - PS
            - PA
            - PG
            - PY
            - PE
            - PH
            - PN
            - PL
            - PT
            - PR
            - QA
            - RE
            - RO
            - RU
            - RW
            - BL
            - SH
            - KN
            - LC
            - MF
            - PM
            - VC
            - WS
            - SM
            - ST
            - SA
            - SN
            - RS
            - SC
            - SL
            - SG
            - SX
            - SK
            - SI
            - SB
            - SO
            - ZA
            - GS
            - SS
            - ES
            - LK
            - SD
            - SR
            - SJ
            - SZ
            - SE
            - CH
            - SY
            - TW
            - TJ
            - TZ
            - TH
            - TL
            - TG
            - TK
            - TO
            - TT
            - TN
            - TR
            - TM
            - TC
            - TV
            - UG
            - UA
            - AE
            - GB
            - US
            - UM
            - UY
            - UZ
            - VU
            - VE
            - VN
            - VI
            - WF
            - EH
            - YE
            - ZM
            - ZW
            - XK
        documentIssuer:
          description: Issuing authority of the identification document
          type: string
          minLength: 1
          maxLength: 255
        documentIssueDate:
          description: Issue date of the identification document
          type: string
          format: date
        documentExpiryDate:
          description: Expiry date of the identification document. If the identification document is a birth certificate, the date on which the person comes of age must be entered as the expiry date.
          type: string
          format: date
        documentMotherFullName:
          description: Full name of the mother, only mandatory for identificationDocumentType = BIRTH_CERTIFICATE
          type: string
          minLength: 1
          maxLength: 255
        documentMotherResidenceCity:
          description: Residence city of the mother, only mandatory for identificationDocumentType = BIRTH_CERTIFICATE
          type: string
          minLength: 1
          maxLength: 255
        documentFatherFullName:
          description: Full name of the father, only mandatory for identificationDocumentType = BIRTH_CERTIFICATE
          type: string
          minLength: 1
          maxLength: 255
        documentFatherResidenceCity:
          description: Residence city of the father, only mandatory for identificationDocumentType = BIRTH_CERTIFICATE
          type: string
          minLength: 1
          maxLength: 255
      required:
        - createdOn
        - documentCountry
        - documentExpiryDate
        - documentIssueDate
        - documentIssuer
        - documentNumber
        - externalVerifier
        - identificationDate
        - identificationDocumentType
        - identificationId
        - identificationType
        - modifiedOn
      title: NaturalPersonIdentification
    Address:
      title: Address
      type: object
      description: Address
      properties:
        street:
          type: string
          minLength: 1
          maxLength: 255
        streetNumber:
          type: string
          minLength: 1
          maxLength: 20
        city:
          type: string
          minLength: 1
          maxLength: 255
        zip:
          type: string
          minLength: 3
          maxLength: 10
        state:
          type: string
          minLength: 1
          maxLength: 35
        country:
          $ref: '#/components/schemas/CountryEnum'
        additionalInfo:
          type: string
          minLength: 1
      required:
        - street
        - streetNumber
        - city
        - zip
        - country
    CreateLegalEntityResult:
      title: CreateLegalEntityResult
      type: object
      properties:
        legalEntityId:
          type: string
          format: uuid
          description: Unique legal entity identification number in UUID format
          readOnly: true
      required:
        - legalEntityId
    LegalEntities:
      title: LegalEntities
      type: object
      properties:
        data:
          type: array
          description: Array of legal entities
          items:
            $ref: '#/components/schemas/LegalEntity'
        pagination:
          $ref: '#/components/schemas/Pagination'
      required:
        - data
        - pagination
    LegalEntity:
      type: object
      properties:
        legalEntityId:
          type: string
          format: uuid
          description: Unique legal entity identification number in UUID format
        globalId:
          type: string
          minLength: 12
          maxLength: 12
        lei:
          $ref: '#/components/schemas/Lei'
        createdOn:
          type: string
          format: date-time
          description: The date on which the natural person was created
        modifiedOn:
          type: string
          format: date-time
          description: The date on which the natural person was modified the last time
        verifiedOn:
          type: string
          format: date-time
          description: The date on which the natural person was verified
        isSanction:
          type: boolean
          description: Indication of whether the person is on sanction list.
        riskLevel:
          deprecated: true
          $ref: '#/components/schemas/RiskLevelEnum'
        legalEntityStatus:
          $ref: '#/components/schemas/LegalEntityStatusEnum'
        legalName:
          type: string
          description: The legal name of the entity
          pattern: ^[^,]*$
          maxLength: 255
        legalForm:
          $ref: '#/components/schemas/LegalFormEnum'
        naceSectors:
          type: array
          description: Specification of the sector in which the company is mainly economically active. The information should be provided according to the groups of the NACE codes (Sections A-V, Groups 01.11 - 99.00) without subclasses. (Level 4)
          items:
            $ref: '#/components/schemas/LegalEntityNaceSector'
        registerCountry:
          $ref: '#/components/schemas/CountryEnum'
        registerNumber:
          type: string
          minLength: 1
          maxLength: 255
          description: Number at which the company is registered
        registerCourt:
          type: string
          minLength: 1
          maxLength: 255
          description: An administrative court in which the company was registered
        registerCourtZipCode:
          type: string
          minLength: 1
          maxLength: 255
          description: An administrative court zip code in which the company was registered
        registeredOn:
          type: string
          format: date
          description: The date on which the entity was registered
        foundedOn:
          type: string
          format: date
          description: The date on which the entity was founded
        vatId:
          type: string
          minLength: 11
          maxLength: 11
          description: The value-added tax id of the legal entity
        purpose:
          type: string
          minLength: 1
          maxLength: 255
          description: The purpose of the legal entity
        mainAddress:
          $ref: '#/components/schemas/Address'
        correspondenceAddress:
          $ref: '#/components/schemas/Address'
        invoiceAddress:
          $ref: '#/components/schemas/Address'
        contact:
          $ref: '#/components/schemas/Contact'
        searchId:
          type: string
          format: uuid
        taxNumber:
          type: string
          minLength: 1
          maxLength: 255
          description: The tax number of the legal entity
        isListed:
          type: boolean
          description: Determine whether the shares of that company are on the list (or board) of stock that are officially traded on a stock exchange
        listedAt:
          type: string
          minLength: 1
          maxLength: 255
          description: Determine where the shares of that company are officially traded on a stock exchange. Only when entity is listed
        averageProfit:
          type: number
          multipleOf: 0.01
          description: Average profit for the year (after tax)
        averageRevenue:
          type: number
          multipleOf: 0.01
          description: Average revenue for the year
        liquidAssets:
          type: number
          multipleOf: 0.01
          description: Liquid assets
        lastAnnualFinancialStatement:
          type: string
          format: date
          description: Last annual financial statement date
        fatcaCrsDeclaration:
          $ref: '#/components/schemas/FatcaCrsDeclaration'
        externalId:
          type: string
          minLength: 1
          description: External Id in partner's system. This value has to be unique
      required:
        - contact
        - createdOn
        - fatcaCrsDeclaration
        - foundedOn
        - globalId
        - legalEntityId
        - legalEntityStatus
        - legalForm
        - legalName
        - mainAddress
        - modifiedOn
        - naceSectors
        - registerCountry
        - registerCourt
        - registerNumber
        - taxNumber
      title: LegalEntity
    CreateLegalEntityData:
      type: object
      properties:
        legalEntityIdentifier:
          type: string
          minLength: 20
          maxLength: 20
          description: Unique global identifier for legal entities participating in financial transactions
          pattern: ^\d{4}[0]{2}[A-Z\d]{12}\d{2}$
        legalName:
          type: string
          description: The legal name of the entity
          pattern: ^[^,]*$
          maxLength: 255
        legalForm:
          $ref: '#/components/schemas/LegalFormEnum'
        naceSectors:
          type: array
          description: Specification of the sector in which the company is mainly economically active. The information should be provided according to the groups of the NACE codes (Sections A-V, Groups 01.11 - 99.00) without subclasses. (Level 4)
          items:
            $ref: '#/components/schemas/LegalEntityNaceSector'
        registerCountry:
          $ref: '#/components/schemas/CountryEnum'
        registerNumber:
          type: string
          minLength: 1
          maxLength: 255
          description: Number at which the company is registered
        registerCourt:
          type: string
          minLength: 1
          maxLength: 255
          description: An administrative court in which the company was registered
        registerCourtZipCode:
          type: string
          minLength: 1
          maxLength: 255
          description: An administrative court zip code in which the company was registered
        registeredOn:
          type: string
          format: date
          description: The date on which the entity was registered
        foundedOn:
          type: string
          format: date
          description: The date on which the entity was founded
        vatId:
          type: string
          minLength: 11
          maxLength: 11
          description: The value-added tax id of the legal entity
        purpose:
          type: string
          minLength: 1
          maxLength: 255
          description: The purpose of the legal entity
        mainAddress:
          $ref: '#/components/schemas/Address'
        correspondenceAddress:
          $ref: '#/components/schemas/Address'
        invoiceAddress:
          $ref: '#/components/schemas/Address'
        contact:
          $ref: '#/components/schemas/Contact'
        searchId:
          type: string
          format: uuid
        taxNumber:
          type: string
          minLength: 1
          maxLength: 255
          description: The tax number of the legal entity
        isListed:
          type: boolean
          description: Determine whether the shares of that company are on the list (or board) of stock that are officially traded on a stock exchange
        listedAt:
          type: string
          minLength: 1
          maxLength: 255
          description: Determine where the shares of that company are officially traded on a stock exchange. Only when entity is listed
        averageProfit:
          type: number
          multipleOf: 0.01
          description: Average profit for the year (after tax)
        averageRevenue:
          type: number
          multipleOf: 0.01
          description: Average revenue for the year
        liquidAssets:
          type: number
          multipleOf: 0.01
          description: Liquid assets
        lastAnnualFinancialStatement:
          type: string
          format: date
          description: Last annual financial statement date
        fatcaCrsDeclaration:
          $ref: '#/components/schemas/FatcaCrsDeclaration'
        externalId:
          type: string
          minLength: 1
          description: External Id in partner's system. This value has to be unique
      title: CreateLegalEntityData
      required:
        - legalName
        - legalForm
        - registerCountry
        - naceSectors
        - registerNumber
        - registerCourt
        - foundedOn
        - mainAddress
        - contact
        - taxNumber
        - fatcaCrsDeclaration
    LegalEntityData:
      title: LegalEntityData
      properties:
        legalName:
          type: string
          description: The legal name of the entity
          pattern: ^[^,]*$
          maxLength: 255
        legalForm:
          $ref: '#/components/schemas/LegalFormEnum'
        naceSectors:
          type: array
          description: Specification of the sector in which the company is mainly economically active. The information should be provided according to the groups of the NACE codes (Sections A-V, Groups 01.11 - 99.00) without subclasses. (Level 4)
          items:
            $ref: '#/components/schemas/LegalEntityNaceSector'
        registerCountry:
          $ref: '#/components/schemas/CountryEnum'
        registerNumber:
          type: string
          minLength: 1
          maxLength: 255
          description: Number at which the company is registered
        registerCourt:
          type: string
          minLength: 1
          maxLength: 255
          description: An administrative court in which the company was registered
        registerCourtZipCode:
          type: string
          minLength: 1
          maxLength: 255
          description: An administrative court zip code in which the company was registered
        registeredOn:
          type: string
          format: date
          description: The date on which the entity was registered
        foundedOn:
          type: string
          format: date
          description: The date on which the entity was founded
        vatId:
          type: string
          minLength: 11
          maxLength: 11
          description: The value-added tax id of the legal entity
        purpose:
          type: string
          minLength: 1
          maxLength: 255
          description: The purpose of the legal entity
        mainAddress:
          $ref: '#/components/schemas/Address'
        correspondenceAddress:
          $ref: '#/components/schemas/Address'
        invoiceAddress:
          $ref: '#/components/schemas/Address'
        contact:
          $ref: '#/components/schemas/Contact'
        searchId:
          type: string
          format: uuid
        taxNumber:
          type: string
          minLength: 1
          maxLength: 255
          description: The tax number of the legal entity
        isListed:
          type: boolean
          description: Determine whether the shares of that company are on the list (or board) of stock that are officially traded on a stock exchange
        listedAt:
          type: string
          minLength: 1
          maxLength: 255
          description: Determine where the shares of that company are officially traded on a stock exchange. Only when entity is listed
        averageProfit:
          type: number
          multipleOf: 0.01
          description: Average profit for the year (after tax)
        averageRevenue:
          type: number
          multipleOf: 0.01
          description: Average revenue for the year
        liquidAssets:
          type: number
          multipleOf: 0.01
          description: Liquid assets
        lastAnnualFinancialStatement:
          type: string
          format: date
          description: Last annual financial statement date
        fatcaCrsDeclaration:
          $ref: '#/components/schemas/FatcaCrsDeclaration'
        externalId:
          type: string
          minLength: 1
          description: External Id in partner's system. This value has to be unique
      required:
        - legalName
        - legalForm
        - registerCountry
        - naceSectors
        - registerNumber
        - registerCourt
        - foundedOn
        - mainAddress
        - contact
        - taxNumber
        - fatcaCrsDeclaration
    Lei:
      title: Lei
      properties:
        legalEntityIdentifier:
          type: string
          minLength: 20
          maxLength: 20
          description: Unique global identifier for legal entities participating in financial transactions
          pattern: ^\d{4}[0]{2}[A-Z\d]{12}\d{2}$
        leiStatus:
          $ref: '#/components/schemas/LeiStatusEnum'
        leiValidUntil:
          type: string
          format: date
      required:
        - legalEntityIdentifier
    LegalEntityUpdate:
      title: LegalEntityUpdate
      type: object
      properties:
        legalEntityUpdateData:
          $ref: '#/components/schemas/LegalEntityUpdateData'
        documentIds:
          type: array
          items:
            type: string
            format: uuid
          description: |
            Document IDs in UUID format for parameters where a document upload is required. When updating any of legalName, legalForm, mainAddress, correspondenceAddress, invoiceAddress,  registerCountry, registerNumber, registerCourt, registerCourtZipCode, registeredOn — proper document must be included.
      required:
        - legalEntityUpdateData
    LegalEntityUpdateData:
      title: LegalEntityUpdateData
      type: object
      properties:
        legalName:
          type: string
          description: The legal name of the entity
          maxLength: 255
        legalForm:
          $ref: '#/components/schemas/LegalFormEnum'
        naceSectors:
          type: array
          description: Specification of the sector in which the company is mainly economically active. The information should be provided according to the groups of the NACE codes (Sections A-V, Groups 01.11 - 99.00) without subclasses. (Level 4)
          items:
            $ref: '#/components/schemas/LegalEntityNaceSector'
        taxNumber:
          type: string
          minLength: 1
          maxLength: 255
          description: The tax number of the legal entity
        vatId:
          type: string
          minLength: 11
          maxLength: 11
          description: The value-added tax id of the legal entity
        isListed:
          type: boolean
          description: Determine whether the shares of that company are on the list (or board) of stock that are officially traded on a stock exchange
        listedAt:
          type: string
          minLength: 1
          maxLength: 255
          description: Determine where the shares of that company are officially traded on a stock exchange. Only when entity is listed
        legalEntityIdentifier:
          type: string
          minLength: 20
          maxLength: 20
          description: Unique global identifier for legal entities participating in financial transactions
          pattern: ^\d{4}[0]{2}[A-Z\d]{12}\d{2}$
        purpose:
          type: string
          minLength: 1
          maxLength: 255
          description: The purpose of the legal entity
        fatcaCrsDeclaration:
          $ref: '#/components/schemas/FatcaCrsDeclaration'
        averageProfit:
          type: number
          multipleOf: 0.01
          description: Average profit for the year (after tax)
        averageRevenue:
          type: number
          multipleOf: 0.01
          description: Average revenue for the year
        liquidAssets:
          type: number
          multipleOf: 0.01
          description: Liquid assets
        lastAnnualFinancialStatement:
          type: string
          format: date
          description: Last annual financial statement date
        mainAddress:
          $ref: '#/components/schemas/Address'
        correspondenceAddress:
          $ref: '#/components/schemas/Address'
        invoiceAddress:
          $ref: '#/components/schemas/Address'
        registerCountry:
          $ref: '#/components/schemas/CountryEnum'
        registerNumber:
          type: string
          minLength: 1
          maxLength: 255
          description: Number at which the company is registered
        registerCourt:
          type: string
          minLength: 1
          maxLength: 255
          description: An administrative court in which the company was registered
        registerCourtZipCode:
          type: string
          minLength: 1
          maxLength: 255
          description: An administrative court zip code in which the company was registered
        registeredOn:
          type: string
          format: date
          description: The date on which the entity was registered
        contact:
          $ref: '#/components/schemas/Contact'
        externalId:
          type: string
          minLength: 1
          description: External Id in partner's system. This value has to be unique
    CreateBeneficialOwnerResult:
      title: CreateBeneficialOwnerResult
      type: object
      properties:
        beneficialOwnerId:
          type: string
          format: uuid
          description: Unique beneficial owner identification number in UUID format
          readOnly: true
      required:
        - beneficialOwnerId
    BeneficialOwners:
      title: BeneficialOwners
      type: object
      properties:
        data:
          type: array
          description: Array of beneficial owners
          items:
            $ref: '#/components/schemas/BeneficialOwner'
        pagination:
          $ref: '#/components/schemas/Pagination'
      required:
        - data
        - pagination
    BeneficialOwner:
      title: BeneficialOwner
      type: object
      properties:
        firstName:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^\S+( \S+)*$
          description: All first names of the person according to the identification document
        lastName:
          type: string
          minLength: 1
          maxLength: 255
          description: Natural person last name
        birthDay:
          type: string
          format: date
        birthPlace:
          type: string
          minLength: 1
          description: 'Location '
          maxLength: 255
        birthCountry:
          $ref: '#/components/schemas/CountryEnum'
        taxDetails:
          type: array
          items:
            $ref: '#/components/schemas/TaxDetail'
        isUsNationality:
          type: boolean
          description: FATCA - Question whether the customer is subject to US tax liability (nationality or other references due to a green card, registration address, etc.).
        mainAddress:
          $ref: '#/components/schemas/Address'
        nationalities:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/CountryEnum'
        uboRelationship:
          $ref: '#/components/schemas/UboRelationshipEnum'
        share:
          type: number
          multipleOf: 0.01
          minimum: 0
          exclusiveMinimum: true
          maximum: 100
        votingRights:
          type: number
          multipleOf: 0.01
          minimum: 0
          exclusiveMinimum: true
          maximum: 100
        fatcaControllingPerson:
          type: boolean
          description: |
            Indication of whether this person is a controlling person under FATCA. \
            `TRUE` = if **fatcaClassification** = `PASSIVE_NFE`
        deathDay:
          type: string
          format: date
        beneficialOwnerId:
          type: string
          format: uuid
          readOnly: true
        globalId:
          type: string
          minLength: 12
          maxLength: 12
          description: Global ID of the beneficial owner
        status:
          $ref: '#/components/schemas/BeneficialOwnerStatusEnum'
        boType:
          $ref: '#/components/schemas/BeneficialOwnerTypeEnum'
        isPep:
          type: boolean
          description: Indication of whether the person is a politically exposed person.
        isPepRelated:
          type: boolean
          description: Indication of whether the person is directly related to a politically exposed person.
        isSanction:
          type: boolean
          description: Indication of whether the person is on sanction list.
        riskLevel:
          deprecated: true
          $ref: '#/components/schemas/RiskLevelEnum'
        createdOn:
          type: string
          format: date-time
          readOnly: true
        modifiedOn:
          type: string
          format: date-time
          readOnly: true
        verifiedOn:
          type: string
          format: date-time
          description: The date on which the Beneficial Owner was verified
          readOnly: true
      required:
        - firstName
        - lastName
        - birthDay
        - birthPlace
        - birthCountry
        - isUsNationality
        - nationalities
        - taxDetails
        - share
        - votingRights
        - beneficialOwnerId
        - globalId
        - status
        - boType
        - createdOn
        - modifiedOn
    BeneficialOwnerData:
      title: BeneficialOwnerData
      type: object
      properties:
        firstName:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^\S+( \S+)*$
          description: All first names of the person according to the identification document
        lastName:
          type: string
          minLength: 1
          maxLength: 255
          description: Natural person last name
        birthDay:
          type: string
          format: date
        birthPlace:
          type: string
          minLength: 1
          description: 'Location '
          maxLength: 255
        birthCountry:
          $ref: '#/components/schemas/CountryEnum'
        taxDetails:
          type: array
          items:
            $ref: '#/components/schemas/TaxDetail'
        isUsNationality:
          type: boolean
          description: FATCA - Question whether the customer is subject to US tax liability (nationality or other references due to a green card, registration address, etc.).
        mainAddress:
          $ref: '#/components/schemas/Address'
        nationalities:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/CountryEnum'
        uboRelationship:
          $ref: '#/components/schemas/UboRelationshipEnum'
        share:
          type: number
          multipleOf: 0.01
          minimum: 0
          exclusiveMinimum: true
          maximum: 100
        votingRights:
          type: number
          multipleOf: 0.01
          minimum: 0
          exclusiveMinimum: true
          maximum: 100
        fatcaControllingPerson:
          type: boolean
          description: |
            Indication of whether this person is a controlling person under FATCA. \
            `TRUE` = if **fatcaClassification** = `PASSIVE_NFE`
      required:
        - firstName
        - lastName
        - birthDay
        - birthPlace
        - birthCountry
        - isUsNationality
        - nationalities
        - taxDetails
        - uboRelationship
        - share
        - votingRights
    BeneficialOwnerUpdate:
      title: BeneficialOwnerUpdate
      type: object
      properties:
        firstName:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^\S+( \S+)*$
          description: All first names of the person according to the identification document
        lastName:
          type: string
          minLength: 1
          maxLength: 255
          description: Natural person last name
        birthDay:
          type: string
          format: date
        birthPlace:
          type: string
          minLength: 1
          description: 'Location '
          maxLength: 255
        birthCountry:
          $ref: '#/components/schemas/CountryEnum'
        taxDetails:
          type: array
          items:
            $ref: '#/components/schemas/TaxDetail'
        isUsNationality:
          type: boolean
          description: FATCA - Question whether the customer is subject to US tax liability (nationality or other references due to a green card, registration address, etc.).
        mainAddress:
          $ref: '#/components/schemas/Address'
        nationalities:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/CountryEnum'
        uboRelationship:
          $ref: '#/components/schemas/UboRelationshipEnum'
        share:
          type: number
          multipleOf: 0.01
          minimum: 0
          exclusiveMinimum: true
          maximum: 100
        votingRights:
          type: number
          multipleOf: 0.01
          minimum: 0
          exclusiveMinimum: true
          maximum: 100
        fatcaControllingPerson:
          type: boolean
          description: |
            Indication of whether this person is a controlling person under FATCA. \
            `TRUE` = if **fatcaClassification** = `PASSIVE_NFE`
    BeneficialOwnerCommonData:
      title: BeneficialOwnerCommonData
      type: object
      properties:
        firstName:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^\S+( \S+)*$
          description: All first names of the person according to the identification document
        lastName:
          type: string
          minLength: 1
          maxLength: 255
          description: Natural person last name
        birthDay:
          type: string
          format: date
        birthPlace:
          type: string
          minLength: 1
          description: 'Location '
          maxLength: 255
        birthCountry:
          $ref: '#/components/schemas/CountryEnum'
        taxDetails:
          type: array
          items:
            $ref: '#/components/schemas/TaxDetail'
        isUsNationality:
          type: boolean
          description: FATCA - Question whether the customer is subject to US tax liability (nationality or other references due to a green card, registration address, etc.).
        mainAddress:
          $ref: '#/components/schemas/Address'
        nationalities:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/CountryEnum'
        uboRelationship:
          $ref: '#/components/schemas/UboRelationshipEnum'
        share:
          type: number
          multipleOf: 0.01
          minimum: 0
          exclusiveMinimum: true
          maximum: 100
        votingRights:
          type: number
          multipleOf: 0.01
          minimum: 0
          exclusiveMinimum: true
          maximum: 100
        fatcaControllingPerson:
          type: boolean
          description: |
            Indication of whether this person is a controlling person under FATCA. \
            `TRUE` = if **fatcaClassification** = `PASSIVE_NFE`
    CreateLegalRepresentativeResult:
      title: CreateLegalRepresentativeResult
      type: object
      properties:
        legalRepresentativeId:
          type: string
          format: uuid
          description: Unique legal representative identification number in UUID format
          readOnly: true
      required:
        - legalRepresentativeId
    LegalRepresentatives:
      title: LegalRepresentatives
      type: object
      properties:
        data:
          type: array
          description: Array of legal representatives
          items:
            $ref: '#/components/schemas/LegalRepresentative'
        pagination:
          $ref: '#/components/schemas/Pagination'
      required:
        - data
        - pagination
    LegalRepresentative:
      title: LegalRepresentative
      type: object
      properties:
        firstName:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^\S+( \S+)*$
          description: All first names of the person according to the identification document
        lastName:
          type: string
          minLength: 1
          maxLength: 255
          description: Natural person last name
        birthDay:
          type: string
          format: date
        birthPlace:
          type: string
          minLength: 1
          description: 'Location '
          maxLength: 255
        birthCountry:
          $ref: '#/components/schemas/CountryEnum'
        taxDetails:
          type: array
          description: TaxDetails is required if fatcaControllingPerson = `TRUE`
          items:
            $ref: '#/components/schemas/TaxDetail'
        isUsNationality:
          type: boolean
          description: FATCA - Question whether the customer is subject to US tax liability (nationality or other references due to a green card, registration address, etc.).
        mainAddress:
          $ref: '#/components/schemas/Address'
        nationalities:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/CountryEnum'
        function:
          $ref: '#/components/schemas/LegalRepresentativeFunctionEnum'
        soleSignatureAuthorized:
          description: Indication of whether or not the legal representative is authorized to represent the company individually.
          type: boolean
        fatcaControllingPerson:
          description: |
            Indication of whether this person is a controlling person under FATCA.\
            `TRUE` = if fatcaClassification = `PASSIVE_NFE`
          type: boolean
        deathDay:
          type: string
          format: date
        legalRepresentativeId:
          type: string
          format: uuid
          readOnly: true
        globalId:
          type: string
          minLength: 12
          maxLength: 12
          description: Global ID of the legal representative
        status:
          $ref: '#/components/schemas/LegalRepresentativeStatusEnum'
        createdOn:
          type: string
          format: date-time
          readOnly: true
        modifiedOn:
          type: string
          format: date-time
          readOnly: true
      required:
        - birthCountry
        - birthDay
        - birthPlace
        - createdOn
        - fatcaControllingPerson
        - firstName
        - function
        - globalId
        - isUsNationality
        - lastName
        - legalRepresentativeId
        - modifiedOn
        - nationalities
        - soleSignatureAuthorized
        - status
    LegalRepresentativeData:
      title: LegalRepresentativeData
      type: object
      properties:
        firstName:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^\S+( \S+)*$
          description: All first names of the person according to the identification document
        lastName:
          type: string
          minLength: 1
          maxLength: 255
          description: Natural person last name
        birthDay:
          type: string
          format: date
        birthPlace:
          type: string
          minLength: 1
          description: 'Location '
          maxLength: 255
        birthCountry:
          $ref: '#/components/schemas/CountryEnum'
        taxDetails:
          type: array
          description: TaxDetails is required if fatcaControllingPerson = `TRUE`
          items:
            $ref: '#/components/schemas/TaxDetail'
        isUsNationality:
          type: boolean
          description: FATCA - Question whether the customer is subject to US tax liability (nationality or other references due to a green card, registration address, etc.).
        mainAddress:
          $ref: '#/components/schemas/Address'
        nationalities:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/CountryEnum'
        function:
          $ref: '#/components/schemas/LegalRepresentativeFunctionEnum'
        soleSignatureAuthorized:
          description: Indication of whether or not the legal representative is authorized to represent the company individually.
          type: boolean
        fatcaControllingPerson:
          description: |
            Indication of whether this person is a controlling person under FATCA.\
            `TRUE` = if fatcaClassification = `PASSIVE_NFE`
          type: boolean
      required:
        - firstName
        - lastName
        - birthDay
        - birthPlace
        - birthCountry
        - isUsNationality
        - nationalities
        - function
        - soleSignatureAuthorized
        - fatcaControllingPerson
    LegalRepresentativeUpdate:
      title: LegalRepresentativeUpdate
      type: object
      properties:
        firstName:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^\S+( \S+)*$
          description: All first names of the person according to the identification document
        lastName:
          type: string
          minLength: 1
          maxLength: 255
          description: Natural person last name
        birthDay:
          type: string
          format: date
        birthPlace:
          type: string
          minLength: 1
          description: 'Location '
          maxLength: 255
        birthCountry:
          $ref: '#/components/schemas/CountryEnum'
        taxDetails:
          type: array
          items:
            $ref: '#/components/schemas/TaxDetail'
        isUsNationality:
          type: boolean
          description: FATCA - Question whether the customer is subject to US tax liability (nationality or other references due to a green card, registration address, etc.).
        mainAddress:
          $ref: '#/components/schemas/Address'
        nationalities:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/CountryEnum'
        function:
          $ref: '#/components/schemas/LegalRepresentativeFunctionEnum'
        soleSignatureAuthorized:
          description: Indication of whether or not the legal representative is authorized to represent the company individually.
          type: boolean
        fatcaControllingPerson:
          description: |
            Indication of whether this person is a controlling person under FATCA.\
            `TRUE` = if fatcaClassification = `PASSIVE_NFE`
          type: boolean
    PrepareLegalEntityResult:
      title: PrepareLegalEntityResult
      type: object
      properties:
        searchId:
          type: string
          format: uuid
          description: Unique identification number in UUID format
          readOnly: true
      required:
        - searchId
    PrepareLegalEntityData:
      title: PrepareLegalEntityData
      type: object
      properties:
        companyName:
          type: string
          description: The name of the company
          minLength: 1
          maxLength: 255
        providerId:
          type: string
          description: The provider id of the company
          minLength: 1
          maxLength: 255
      required:
        - companyName
    LegalEntitySearchLiteResult:
      type: object
      required:
        - address
      properties:
        address:
          $ref: '#/components/schemas/Address'
        businessOfficeType:
          type: string
          enum:
            - Branch
            - Headquarters
            - Unknown
          example: Headquarters
        legalForm:
          type: string
          example: GMBH
        name:
          type: string
          example: Hummel Dienstleistungsgesellschaft mbH
        providerId:
          type: string
          example: 727420
        registerCourt:
          type: string
          example: Kassel
        registrationNumber:
          type: string
          example: HRB 205873
    LegalEntityCompoundSearchResult:
      title: LegalEntityCompoundSearchResult
      type: object
      properties:
        search:
          $ref: '#/components/schemas/LegalEntitySearchDetails'
        legalEntity:
          $ref: '#/components/schemas/LegalEntitySearchResult'
        legalRepresentatives:
          type: array
          items:
            $ref: '#/components/schemas/LegalRepresentativeSearchResult'
        beneficialOwners:
          type: array
          items:
            $ref: '#/components/schemas/BeneficialOwnerSearchResult'
        documents:
          type: array
          items:
            $ref: '#/components/schemas/LegalEntityDocumentSearchResult'
      required:
        - search
    LegalEntitySearchDetails:
      title: LegalEntitySearchDetails
      type: object
      properties:
        searchId:
          type: string
          format: uuid
        status:
          $ref: '#/components/schemas/LegalEntitySearchStatusEnum'
        documentTypes:
          type: array
          items:
            $ref: '#/components/schemas/DocumentTypeEnum'
      required:
        - searchId
        - status
    LegalEntitySearchResult:
      title: LegalEntitySearchResult
      type: object
      properties:
        legalName:
          type: string
          description: The legal name of the entity
          maxLength: 255
        legalForm:
          $ref: '#/components/schemas/LegalFormEnum'
        naceSectors:
          type: array
          description: Specification of the sector in which the company is mainly economically active. The information should be provided according to the groups of the NACE codes (Sections A-V, Groups 01.11 - 99.00) without subclasses. (Level 4)
          items:
            $ref: '#/components/schemas/LegalEntityNaceSector'
        registerCountry:
          $ref: '#/components/schemas/CountryEnum'
        registerNumber:
          type: string
          description: Number at which the company is registered
          maxLength: 255
        registerCourt:
          type: string
          minLength: 1
          maxLength: 255
          description: An administrative court in which the company was registered
        registerCourtZipCode:
          type: string
          minLength: 1
          maxLength: 255
          description: An administrative court zip code in which the company was registered
        registeredOn:
          type: string
          format: date
          description: The date on which the entity was registered
        foundedOn:
          type: string
          format: date
          description: The date on which the entity was founded
        vendorRecordId:
          type: string
          minLength: 1
          maxLength: 255
          description: The vendor record id of the entity
        legalEntityIdentifier:
          type: string
          minLength: 1
          maxLength: 20
          description: Unique global identifier for legal entities participating in financial transactions
          pattern: ^\d{4}[0]{2}[A-Z\d]{12}\d{2}$
        purpose:
          type: string
          minLength: 1
          maxLength: 255
          description: The purpose of the legal entity
        vatId:
          type: string
          minLength: 11
          maxLength: 11
          description: The value-added tax id of the legal entity
        mainAddress:
          $ref: '#/components/schemas/Address'
        correspondenceAddress:
          $ref: '#/components/schemas/Address'
        invoiceAddress:
          $ref: '#/components/schemas/Address'
        contact:
          $ref: '#/components/schemas/Contact'
      required:
        - legalName
        - vendorRecordId
    LegalRepresentativeSearchResult:
      title: LegalRepresentativeSearchResult
      type: object
      properties:
        firstName:
          type: string
          maxLength: 255
          description: All first names of the person received from the provider
        lastName:
          type: string
          maxLength: 255
        gender:
          $ref: '#/components/schemas/GenderEnum'
        birthDay:
          type: string
          format: date
        birthPlace:
          type: string
          minLength: 1
        academicDegree:
          type: string
          minLength: 1
        title:
          type: string
          minLength: 1
        position:
          $ref: '#/components/schemas/LegalRepresentativeFunctionEnum'
        taxId:
          type: string
          minLength: 1
        representationCompetence:
          type: string
          minLength: 1
        nationalities:
          type: array
          items:
            $ref: '#/components/schemas/CountryEnum'
        address:
          $ref: '#/components/schemas/Address'
      required:
        - firstName
        - lastName
    BeneficialOwnerSearchResult:
      title: BeneficialOwnerSearchResult
      type: object
      properties:
        firstName:
          type: string
          maxLength: 255
          description: All first names of the person received from the provider
        lastName:
          type: string
          maxLength: 255
        gender:
          $ref: '#/components/schemas/GenderEnum'
        birthDay:
          type: string
          format: date
        birthPlace:
          type: string
          minLength: 1
        academicDegree:
          type: string
          minLength: 1
        title:
          type: string
          minLength: 1
        taxId:
          type: string
          minLength: 1
        scope:
          type: string
          minLength: 1
        representationCompetence:
          type: string
          minLength: 1
        share:
          type: number
          minimum: 0
          exclusiveMinimum: true
          maximum: 100
        nationalities:
          type: array
          items:
            $ref: '#/components/schemas/CountryEnum'
        address:
          $ref: '#/components/schemas/Address'
      required:
        - firstName
        - lastName
        - share
        - nationalities
    LegalEntityDocumentSearchResult:
      title: LegalEntityDocumentSearchResult
      type: object
      properties:
        contentType:
          type: string
          minLength: 1
        documentId:
          type: string
          minLength: 1
        documentType:
          $ref: '#/components/schemas/DocumentTypeEnum'
        length:
          type: integer
        name:
          type: string
          minLength: 1
        timestamp:
          type: string
          format: date-time
    StartOnboardingResult:
      title: StartOnboardingResult
      type: object
      properties:
        onboardingId:
          type: string
          format: uuid
          readOnly: true
      required:
        - onboardingId
    EntityOnboardingData:
      title: EntityOnboardingData
      type: object
      properties:
        entityType:
          $ref: '#/components/schemas/OnboardingEntityTypeEnum'
        entityId:
          type: string
          format: uuid
          description: Identification number in UUID format of the entity
      required:
        - entityType
        - entityId
    EntityOnboarding:
      type: object
      properties:
        onboardingId:
          type: string
          format: uuid
          readOnly: true
        status:
          $ref: '#/components/schemas/OnboardingStatusEnum'
        entityType:
          $ref: '#/components/schemas/OnboardingEntityTypeEnum'
        entityId:
          type: string
          format: uuid
          description: Identification number in UUID format of the entity
        createdOn:
          type: string
          format: date-time
          readOnly: true
        modifiedOn:
          type: string
          format: date-time
          readOnly: true
      required:
        - createdOn
        - entityId
        - entityType
        - modifiedOn
        - onboardingId
        - status
      title: EntityOnboarding
    StartOffboardingResult:
      title: StartOffboardingResult
      type: object
      properties:
        offboardingId:
          type: string
          format: uuid
          readOnly: true
      required:
        - offboardingId
    EntityOffboardingData:
      title: EntityOffboardingData
      type: object
      properties:
        entityType:
          $ref: '#/components/schemas/OffboardingEntityTypeEnum'
        entityId:
          type: string
          format: uuid
          description: Identification number in UUID format of the entity
        reason:
          $ref: '#/components/schemas/OffboardingReasonEnum'
      required:
        - entityType
        - entityId
        - reason
    EntityOffboarding:
      type: object
      properties:
        offboardingId:
          type: string
          format: uuid
          readOnly: true
        status:
          $ref: '#/components/schemas/OffboardingStatusEnum'
        entityType:
          $ref: '#/components/schemas/OffboardingEntityTypeEnum'
        entityId:
          type: string
          format: uuid
          description: Identification number in UUID format of the entity
        reason:
          $ref: '#/components/schemas/OffboardingReasonEnum'
        createdOn:
          type: string
          format: date-time
          readOnly: true
        modifiedOn:
          type: string
          format: date-time
          readOnly: true
      required:
        - createdOn
        - entityId
        - entityType
        - modifiedOn
        - offboardingId
        - reason
        - status
      title: EntityOffboarding
    TradingProfile:
      title: TradingProfile
      type: object
      description: Trading profile for a natural person
      properties:
        assetTypeProfiles:
          type: array
          description: Trading profile details per asset type
          items:
            $ref: '#/components/schemas/AssetTypeTradingProfile'
        investmentObjectives:
          $ref: '#/components/schemas/InvestmentObjectives'
    AssetTypeTradingProfile:
      title: AssetTypeTradingProfile
      type: object
      required:
        - assetType
        - hasKnowledge
        - hasExperience
        - createdOn
        - modifiedOn
        - riskAcknowledged
      properties:
        assetType:
          $ref: '#/components/schemas/TradingProfileAssetTypeEnum'
        hasKnowledge:
          type: boolean
          description: Indicates if the person has trading knowledge
        hasExperience:
          type: boolean
          description: Indicates if the person has trading experience
        tradingExperience:
          $ref: '#/components/schemas/TradingExperience'
        createdOn:
          type: string
          format: date-time
          description: The date on which the trading profile was created for asset type
        modifiedOn:
          type: string
          format: date-time
          description: The date on which the trading profile was modified the last time for asset type
        appropriatenessTestPassed:
          type: boolean
        riskAcknowledged:
          type: boolean
    AssetTypeTradingProfileData:
      title: AssetTypeTradingProfileData
      type: object
      description: Trading profile data per asset type
      properties:
        hasKnowledge:
          type: boolean
          description: Indicates if the person has trading knowledge
        hasExperience:
          type: boolean
          description: Indicates if the person has trading experience
        tradingExperience:
          $ref: '#/components/schemas/TradingExperience'
      required:
        - hasKnowledge
        - hasExperience
    TradingExperience:
      title: TradingExperience
      type: object
      description: Trading experience details
      properties:
        yearsOfExperience:
          type: integer
          description: Number of years of trading experience
          minimum: 0
        numberOfTrades:
          type: integer
          description: Number of trades executed
          minimum: 0
        tradeVolume:
          type: number
          description: Total volume of trades
          minimum: 0
      required:
        - yearsOfExperience
        - numberOfTrades
        - tradeVolume
    AssetTypeTradingProfileUpdate:
      title: AssetTypeTradingProfileUpdate
      type: object
      description: Trading profile data per asset type
      properties:
        hasKnowledge:
          type: boolean
          description: Indicates if the person has trading knowledge
        hasExperience:
          type: boolean
          description: Indicates if the person has trading experience
        tradingExperience:
          $ref: '#/components/schemas/TradingExperience'
      required:
        - hasKnowledge
        - hasExperience
    InvestmentObjectives:
      title: InvestmentObjectives
      type: object
      description: Investment objectives categorized by purpose
      properties:
        growthAndSavings:
          type: array
          description: Growth and savings investment purposes
          items:
            $ref: '#/components/schemas/GrowthAndSavingsPurposeEnum'
        capitalProtectionAndHedging:
          type: array
          description: Capital protection and hedging investment purposes
          items:
            $ref: '#/components/schemas/CapitalProtectionAndHedgingPurposeEnum'
        incomeAndLiquidity:
          type: array
          description: Income and liquidity investment purposes
          items:
            $ref: '#/components/schemas/IncomeAndLiquidityPurposeEnum'
        retirementAndFuturePlanning:
          type: array
          description: Retirement and future planning investment purposes
          items:
            $ref: '#/components/schemas/RetirementAndFuturePlanningPurposeEnum'
        specificInvestmentTypes:
          type: array
          description: Specific investment types purposes
          items:
            $ref: '#/components/schemas/SpecificInvestmentTypesPurposeEnum'
        taxAndEstatePlanning:
          type: array
          description: Tax and estate planning investment purposes
          items:
            $ref: '#/components/schemas/TaxAndEstatePlanningPurposeEnum'
    AppropriatenessTest:
      title: AppropriatenessTest
      type: object
      description: Appropriateness test with version and questions
      properties:
        appropriatenessTestId:
          type: string
          format: uuid
        version:
          type: integer
          description: Version of the test
        assetType:
          $ref: '#/components/schemas/AppropriatenessTestAssetTypeEnum'
        questions:
          type: array
          description: List of test questions
          items:
            $ref: '#/components/schemas/AppropriatenessTestQuestion'
        createdOn:
          type: string
          format: date-time
      required:
        - appropriatenessTestId
        - version
        - assetType
        - questions
        - createdOn
    AppropriatenessTestQuestion:
      title: AppropriatenessTestQuestion
      type: object
      description: Appropriateness test question with answers
      properties:
        questionCode:
          type: string
          description: Unique identifier for the question
        category:
          type: string
          description: Category of the question
        questionText:
          type: string
          description: Text of the question
        answers:
          type: array
          description: List of possible answers
          items:
            $ref: '#/components/schemas/AppropriatenessTestAnswer'
      required:
        - questionCode
        - category
        - questionText
        - answers
    AppropriatenessTestAnswer:
      title: AppropriatenessTestAnswer
      type: object
      description: Answer option for appropriateness test question
      properties:
        answerCode:
          type: string
          description: Unique identifier for the answer
        answerText:
          type: string
          description: Text of the answer
      required:
        - answerCode
        - answerText
    AppropriatenessTestResponsesData:
      title: AppropriatenessTestResponsesData
      type: object
      description: Data for submitting appropriateness test responses
      properties:
        TradingProfileLanguage:
          $ref: '#/components/schemas/TradingProfileLanguageEnum'
        version:
          type: integer
          description: Version of the appropriateness test
        responses:
          type: array
          description: List of test responses
          items:
            $ref: '#/components/schemas/AppropriatenessTestResponseItem'
      required:
        - TradingProfileLanguage
        - version
        - responses
    SubmitAppropriatenessTestResponseResult:
      title: SubmitAppropriatenessTestResponseResult
      type: object
      properties:
        appropriatenessTestResponseId:
          type: string
          format: uuid
          description: Unique Appropriateness Test Response identification number in UUID format
          readOnly: true
      required:
        - appropriatenessTestResponseId
    AppropriatenessTestResponseItem:
      title: AppropriatenessTestResponseItem
      type: object
      description: Single appropriateness test response item
      properties:
        questionCode:
          type: string
          description: Identifier of the question
        answerCode:
          type: string
          description: Identifier of the selected answer
      required:
        - questionCode
        - answerCode
    AppropriatenessTestResponses:
      title: AppropriatenessTestResponses
      type: object
      description: Paginated list of appropriateness test responses
      properties:
        data:
          type: array
          description: Array of appropriateness test responses
          items:
            $ref: '#/components/schemas/AppropriatenessTestResponse'
        pagination:
          $ref: '#/components/schemas/Pagination'
      required:
        - data
        - pagination
    AppropriatenessTestResponse:
      title: AppropriatenessTestResponse
      type: object
      description: Data for submitting appropriateness test responses
      properties:
        TradingProfileLanguage:
          $ref: '#/components/schemas/TradingProfileLanguageEnum'
        version:
          type: integer
          description: Version of the appropriateness test
        responses:
          type: array
          description: List of test responses
          items:
            $ref: '#/components/schemas/AppropriatenessTestResponseItem'
        appropriatenessTestId:
          type: string
          format: uuid
          description: Unique identifier of the appropriateness test
        appropriatenessTestResponseId:
          type: string
          format: uuid
          description: Unique identifier of the appropriateness test response
        createdOn:
          type: string
          format: date-time
          description: Date and time when the response was created
        modifiedOn:
          type: string
          format: date-time
          description: Date and time when the response was last modified
        status:
          $ref: '#/components/schemas/AppropriatenessTestResponseStatusEnum'
      required:
        - TradingProfileLanguage
        - appropriatenessTestId
        - appropriatenessTestResponseId
        - appropriatenessTestVersion
        - createdOn
        - modifiedOn
        - responses
        - status
        - version
    CountryEnum:
      title: CountryEnum
      type: string
      description: Country code in **ISO 3166-1 alpha-2** standard
      enum:
        - AF
        - AX
        - AL
        - DZ
        - AS
        - AD
        - AO
        - AI
        - AQ
        - AG
        - AR
        - AM
        - AW
        - AU
        - AT
        - AZ
        - BS
        - BH
        - BD
        - BB
        - BY
        - BE
        - BZ
        - BJ
        - BM
        - BT
        - BO
        - BQ
        - BA
        - BW
        - BV
        - BR
        - VG
        - IO
        - BN
        - BG
        - BF
        - BI
        - KH
        - CM
        - CA
        - CV
        - KY
        - CF
        - TD
        - CL
        - CN
        - HK
        - MO
        - CX
        - CC
        - CO
        - KM
        - CG
        - CD
        - CK
        - CR
        - CI
        - HR
        - CU
        - CW
        - CY
        - CZ
        - DK
        - DJ
        - DM
        - DO
        - EC
        - EG
        - SV
        - GQ
        - ER
        - EE
        - ET
        - FK
        - FO
        - FJ
        - FI
        - FR
        - GF
        - PF
        - TF
        - GA
        - GM
        - GE
        - DE
        - GH
        - GI
        - GR
        - GL
        - GD
        - GP
        - GU
        - GT
        - GG
        - GN
        - GW
        - GY
        - HT
        - HM
        - VA
        - HN
        - HU
        - IS
        - IN
        - ID
        - IR
        - IQ
        - IE
        - IM
        - IL
        - IT
        - JM
        - JP
        - JE
        - JO
        - KZ
        - KE
        - KI
        - KP
        - KR
        - KW
        - KG
        - LA
        - LV
        - LB
        - LS
        - LR
        - LY
        - LI
        - LT
        - LU
        - MK
        - MG
        - MW
        - MY
        - MV
        - ML
        - MT
        - MH
        - MQ
        - MR
        - MU
        - YT
        - MX
        - FM
        - MD
        - MC
        - MN
        - ME
        - MS
        - MA
        - MZ
        - MM
        - NA
        - NR
        - NP
        - NL
        - AN
        - NC
        - NZ
        - NI
        - NE
        - NG
        - NU
        - NF
        - MP
        - 'NO'
        - OM
        - PK
        - PW
        - PS
        - PA
        - PG
        - PY
        - PE
        - PH
        - PN
        - PL
        - PT
        - PR
        - QA
        - RE
        - RO
        - RU
        - RW
        - BL
        - SH
        - KN
        - LC
        - MF
        - PM
        - VC
        - WS
        - SM
        - ST
        - SA
        - SN
        - RS
        - SC
        - SL
        - SG
        - SX
        - SK
        - SI
        - SB
        - SO
        - ZA
        - GS
        - SS
        - ES
        - LK
        - SD
        - SR
        - SJ
        - SZ
        - SE
        - CH
        - SY
        - TW
        - TJ
        - TZ
        - TH
        - TL
        - TG
        - TK
        - TO
        - TT
        - TN
        - TR
        - TM
        - TC
        - TV
        - UG
        - UA
        - AE
        - GB
        - US
        - UM
        - UY
        - UZ
        - VU
        - VE
        - VN
        - VI
        - WF
        - EH
        - YE
        - ZM
        - ZW
        - XK
    Contact:
      title: Contact
      type: object
      description: ⚠️ **Important Note on Partial Updates:** Although update endpoints use the `PATCH` method, the `contact` object requires a **full representation** of the data. If optional fields (such as `fax` or `website`) are omitted from the request, they will be overwritten with `null` in the database. To preserve existing data, ensure all current contact values are included in your request payload.
      x-examples:
        Example 1:
          phone: +49 30 087324980
          email: mila_schoenherr@hotmail.com
          fax: +49 30 108612836
          website: string.string
      properties:
        phone:
          type: string
          description: Mobile telephone number
          minLength: 3
          maxLength: 20
          pattern: ^[\+\-\(\)\d ]{3,20}$
        email:
          type: string
          description: E-mail address
          maxLength: 255
          pattern: ^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$
        fax:
          type: string
          description: Fax number
          minLength: 3
          maxLength: 20
          pattern: ^[\+\-\(\)\d ]{3,20}$
        website:
          type: string
          description: website address
          maxLength: 320
      required:
        - phone
        - email
    ErrorDetailsExplanation:
      title: ErrorDetailsExplanation
      type: object
      properties:
        code:
          type: string
          maxLength: 255
        parameter:
          type: string
        message:
          type: string
      required:
        - code
        - message
    ErrorDetails:
      title: ErrorDetails
      type: object
      properties:
        field:
          type: string
          maxLength: 255
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ErrorDetailsExplanation'
      required:
        - field
    ErrorMessage:
      title: ErrorMessage
      type: object
      properties:
        message:
          type: string
        responseType:
          type: string
        validationString:
          minLength: 1
          type: string
        requestId:
          type: string
        errorCode:
          type: string
          maxLength: 255
        errorDetails:
          type: array
          items:
            $ref: '#/components/schemas/ErrorDetails'
      required:
        - message
        - responseType
        - requestId
    EntityTypeEnum:
      title: EntityTypeEnum
      type: string
      enum:
        - NATURAL_PERSON
        - LEGAL_ENTITY
        - JOINT_PERSON
        - BENEFICIAL_OWNER
        - LEGAL_REPRESENTATIVE
      description: Type of the entity.
    EntityStatusEnum:
      title: EntityStatusEnum
      type: string
      enum:
        - ACTIVE
        - INACTIVE
        - CREATED
        - REVIEW
        - REJECTED
        - PENDING
        - SUSPENDED
        - ARCHIVED
        - RECEIVED
        - INVALID
        - SUSPENDED_COMPLIANCE
        - DECEASED
      description: Status of the entity. Available values depend on entity type.
    EntityRoleEnum:
      title: EntityRoleEnum
      type: string
      enum:
        - CUSTOMER
        - PROXY
      description: |
        Role of the entity:
        * `CUSTOMER` - Entity is a customer
        * `PROXY` - Entity is a proxy
    Pagination:
      title: Pagination
      type: object
      properties:
        cursor:
          type: string
          description: String value used for pagination, which should be set in next page request.
        limit:
          type: integer
          description: Maximum number of returned items
      required:
        - cursor
        - limit
    ExternalVerifierEnum:
      title: ExternalVerifierEnum
      description: The legal name of the vendor/company performing the identification for this natural person
      type: string
      enum:
        - WEB_ID
        - ID_NOW
        - DEUTSCHE_POST
        - PARTNER
        - OTHER
    IdentificationTypeEnum:
      title: IdentificationTypeEnum
      description: Method used to identify the customer
      type: string
      enum:
        - VIDEO_IDENT
        - IN_PERSON
        - POST_IDENT
        - E_ID
        - ID_COPY
    IdentificationVerificationStatusEnum:
      title: IdentificationVerificationStatusEnum
      type: string
      enum:
        - RECEIVED
        - INVALID
        - PENDING
        - APPROVED
        - REJECTED
        - EXPIRED
    NaturalPersonStatusEnum:
      title: NaturalPersonStatusEnum
      type: string
      enum:
        - CREATED
        - REVIEW
        - REJECTED
        - INACTIVE
        - PENDING
        - ACTIVE
        - SUSPENDED
        - ARCHIVED
        - RECEIVED
        - INVALID
        - SUSPENDED_COMPLIANCE
        - DECEASED
    RiskLevelEnum:
      title: RiskLevelEnum
      type: string
      enum:
        - LOW
        - MEDIUM
        - HIGH
        - CRITICAL
    IdentificationDocumentTypeEnum:
      title: IdentificationDocumentTypeEnum
      description: Type of the identification document which has been used for identification of the natural person.
      type: string
      enum:
        - ID
        - PASSPORT
        - BIRTH_CERTIFICATE
    DocumentSignatureTypeEnum:
      title: DocumentSignatureTypeEnum
      type: string
      enum:
        - TERMS_AND_CONDITIONS
        - DATA_PRIVACY_POLICY
    TradingProfileAssetTypeEnum:
      title: TradingProfileAssetTypeEnum
      type: string
      description: The asset type for trading profile operations (create, update, acknowledge, get)
      enum:
        - BOND
        - ETF
        - EQUITY
        - FUND
        - COMMODITY
        - DERIVATIVE
        - ETN
        - SECURITY_TOKEN
        - CRYPTOCURRENCY
        - TRACKER_CERTIFICATE
    GrowthAndSavingsPurposeEnum:
      title: GrowthAndSavingsPurposeEnum
      type: string
      enum:
        - CAPITAL_GROWTH
        - LONG_TERM_SAVING
        - PERSONAL_INVESTMENTS
    CapitalProtectionAndHedgingPurposeEnum:
      title: CapitalProtectionAndHedgingPurposeEnum
      type: string
      enum:
        - WEALTH_PRESERVATION
        - HEDGING
        - RISK_MANAGEMENT
    IncomeAndLiquidityPurposeEnum:
      title: IncomeAndLiquidityPurposeEnum
      type: string
      enum:
        - INCOME_GENERATION
        - CASH_MANAGEMENT
        - SHORT_TERM_LIQUIDITY
    RetirementAndFuturePlanningPurposeEnum:
      title: RetirementAndFuturePlanningPurposeEnum
      type: string
      enum:
        - PENSION_PLANNING
        - EDUCATION_FUNDING
        - FAMILY_SECURITY
    SpecificInvestmentTypesPurposeEnum:
      title: SpecificInvestmentTypesPurposeEnum
      type: string
      enum:
        - INVESTMENT_IN_LISTED_EQUITIES
        - SMALL_SCALE_INVESTMENTS
        - REAL_ESTATE_INVESTMENTS
        - ALTERNATIVE_INVESTMENTS
        - SPECULATIVE_INVESTMENTS
        - SHORT_TERM_TRADING
    TaxAndEstatePlanningPurposeEnum:
      title: TaxAndEstatePlanningPurposeEnum
      type: string
      enum:
        - TAX_PLANNING
        - ESTATE_PLANNING
    GenderEnum:
      title: GenderEnum
      type: string
      description: Gender
      enum:
        - MALE
        - FEMALE
        - DIVERSE
    NaturalPersonTitleEnum:
      title: NaturalPersonTitleEnum
      type: string
      enum:
        - PROFESSOR
        - MAGISTER
        - DR
    NaturalPersonMaritalStatusEnum:
      title: NaturalPersonMaritalStatusEnum
      type: string
      enum:
        - MARRIED
        - DIVORCED
        - WIDOWED
        - SINGLE
        - SEPARATED
        - REGISTERED_PARTNERSHIP
    NationalIdentifierType:
      title: NationalIdentifierType
      type: string
      description: National identifier type of the customer
      enum:
        - CONCAT
        - NATIONAL_PASSPORT_NUMBER
        - BELGIAN_NATIONAL_NUMBER
        - BULGARIAN_PERSONAL_NUMBER
        - CZECH_NATIONAL_IDENTIFICATION_NUMBER
        - DENMARK_PERSONAL_IDENTITY_CODE
        - ESTONIAN_PERSONAL_IDENTIFICATION_CODE
        - SPAIN_TAX_IDENTIFICATION_NUMBER
        - FINLAND_PERSONAL_IDENTITY_CODE
        - GREECE_DSS_DIGIT_INVESTOR_SHARE
        - CROATIA_PERSONAL_IDENTIFICATION_NUMBER
        - ICELAND_PERSONAL_IDENTITY_CODE
        - ITALY_FISCAL_CODE
        - LITHUANIA_PERSONAL_CODE
        - LATVIA_PERSONAL_CODE
        - MALTA_NATIONAL_IDENTIFICATION_NUMBER
        - NORWAY_PERSONAL_ID
        - POLAND_NATIONAL_IDENTIFICATION_NUMBER
        - PORTUGAL_TAX_NUMBER
        - ROMANIA_NATIONAL_IDENTIFICATION_NUMBER
        - SWEDEN_PERSONAL_IDENTITY_NUMBER
        - SLOVENIA_PERSONAL_IDENTIFICATION_NUMBER
        - SLOVAKIA_PERSONAL_NUMBER
    Nationality:
      title: Nationality
      type: object
      x-examples:
        Example 1:
          countryCode: DE
      description: Nationality of the customer
      properties:
        countryCode:
          $ref: '#/components/schemas/CountryEnum'
        nationalIdentifier:
          type: string
          description: National identifier of the customer
        nationalIdentifierType:
          $ref: '#/components/schemas/NationalIdentifierType'
      required:
        - countryCode
    LanguageEnum:
      title: LanguageEnum
      type: string
      description: Language code in ISO 639-1 two-letter codes (EU only)
      enum:
        - da
        - de
        - el
        - en
        - es
        - fi
        - fr
        - hu
        - it
        - lt
        - lv
        - mt
        - nl
        - pl
        - pt
        - ro
        - sk
        - sl
        - sv
    TaxDetail:
      title: TaxDetail
      type: object
      x-examples:
        Example 1:
          taxId: string
          taxResidency: DE
      properties:
        taxId:
          type: string
          minLength: 1
          maxLength: 255
        taxResidency:
          $ref: '#/components/schemas/CountryEnum'
        noTinConfirmation:
          description: 'Indicates that the customer does not have a Tax Identification Number (TIN), which should only be used in exceptional cases where no TIN exists. If this field is set to true, the customer must provide supporting document (docType: TIN_NA_CONFIRMATION) confirming that no TIN is available.'
          type: boolean
          default: false
      required:
        - taxResidency
    NaturalPersonProfessionGroupEnum:
      title: NaturalPersonProfessionGroupEnum
      type: string
      enum:
        - EMPLOYED
        - INDEPENDENT
        - PENSIONER
        - MEMBER_OF_THE_BOARD
        - STUDENT_OR_PUPIL
        - UNEMPLOYED
        - PUBLIC_SECTOR_EMPLOYEE
        - PROFESSIONAL_SOLDIER
        - FREELANCER
        - HOUSEWORK
        - RETIRED
    NaturalPersonNaceSector:
      title: NaturalPersonNaceSector
      type: object
      properties:
        section:
          type: string
          minLength: 1
          maxLength: 1
          pattern: ^[A-V]$
        description:
          type: string
          maxLength: 255
      required:
        - section
    NaturalPersonSourceOfIncomeEnum:
      title: NaturalPersonSourceOfIncomeEnum
      type: string
      enum:
        - INCOME_FROM_EMPLOYMENT
        - INCOME_FROM_CAPITAL_ASSETS
        - INCOME_FROM_RENTING_AND_LEASING
        - INCOME_FROM_AGRICULTURE_AND_FORESTRY
        - INCOME_FROM_BUSINESS_OPERATIONS
        - INCOME_FROM_SELF_EMPLOYMENT
        - OTHER_INCOME
        - SALES_OF_ASSETS
        - FAMILY_INCOME_OR_DONATIONS
        - INHERITANCE
        - PENSION
        - PUBLIC_SUBSIDES
      description: source of income
    NaturalPersonAssetOriginEnum:
      title: NaturalPersonAssetOriginEnum
      type: string
      enum:
        - NON_EMPLOYED_LABOR
        - CAPITAL_ASSETS
        - REAL_ESTATE
        - INHERITANCE
        - DONATION
        - AGRICULTURE_AND_FORESTRY
        - TRADE
        - SELF_EMPLOYED_WORK
      description: source of income
    AppropriatenessTestAssetTypeEnum:
      title: AppropriatenessTestAssetTypeEnum
      type: string
      description: Asset type for appropriateness test
      enum:
        - SECURITY_TOKEN
        - TRACKER_CERTIFICATE
    TradingProfileLanguageEnum:
      title: TradingProfileLanguageEnum
      type: string
      description: Language code in ISO 639-1 two-letter codes
      enum:
        - en
        - de
    AppropriatenessTestResponseStatusEnum:
      title: AppropriatenessTestResponseStatusEnum
      type: string
      description: Status of the appropriateness test response
      enum:
        - RECEIVED
        - FAILED
        - PASSED
        - INVALID
    LegalEntityStatusEnum:
      title: LegalEntityStatusEnum
      type: string
      enum:
        - CREATED
        - REVIEW
        - REJECTED
        - INACTIVE
        - PENDING
        - ACTIVE
        - SUSPENDED
        - ARCHIVED
        - RECEIVED
        - INVALID
        - SUSPENDED_COMPLIANCE
    LeiStatusEnum:
      title: LeiStatusEnum
      type: string
      enum:
        - ISSUED
        - LAPSED
        - MERGED
        - RETIRED
        - PENDING_TRANSFER
        - PENDING_ARCHIVAL
        - DUPLICATE
        - ANNULLED
    LegalFormEnum:
      title: LegalFormEnum
      type: string
      description: LegalFormEnum
      enum:
        - LIMITED_LIABILITY_COMPANY
        - PUBLIC_LIMITED_COMPANY
        - PRIVATE_CORPORATION
        - FOUNDATION
        - ASSOCIATION
        - REGISTERED_BUSINESSMAN
        - REGISTERED_COMPANY
        - LIMITED_PARTNERSHIP
        - GENERAL_PARTNERSHIP
        - LIMITED_LIABILITY_COMPANY_AND_LIMITED_PARTNERSHIP
        - PARTNERSHIP
        - SINGLE_PARTNERSHIP
        - OTHER
        - UNACCEPTABLE
    LegalEntityNaceSector:
      title: LegalEntityNaceSector
      type: object
      properties:
        section:
          type: string
        code:
          type: string
          minLength: 2
        description:
          type: string
          maxLength: 255
      required:
        - code
    FatcaClassificationEnum:
      title: FatcaClassificationEnum
      type: string
      enum:
        - ACTIVE_NFE
        - PASSIVE_NFE
      description: FATCA/CRS classification of the legal entity. Active NFE = Entity that derives less than half of its total income from passive income and is not a Financial Institution.  Possible passive income would be, for example, interest, dividends, license fees or rents - if not generated as part of an  active business - as well as gains from the sale of assets that were used to generate passive income. Passive NFE = the Entity derives more than half of its total income from passive income and is not a Financial Institution.
    ActiveNfeTypeEnum:
      title: ActiveNfeTypeEnum
      type: string
      enum:
        - LE_BY_INCOME_ASSETS
        - NON_PROFIT_ORGANISATION
        - OTHER
      description: Its required only if fatcaClassification = ACTIVE_NFE
    FatcaCrsDeclaration:
      title: FatcaCrsDeclaration
      type: object
      properties:
        isForeignTaxResidency:
          type: boolean
          description: Indication of whether the legal entity is resident for tax purposes outside Germany
        isSanctionedCountries:
          type: boolean
          description: Indication of whether the company conducts business activities with parties from a country  that is on a sanctions list of Germany, the EU, or the USA or has been categorized as a high-risk country  by one of the aforementioned, e.g. Iran, Ukraine, Russia or Belarus
        fatcaClassification:
          $ref: '#/components/schemas/FatcaClassificationEnum'
        activeNfeType:
          $ref: '#/components/schemas/ActiveNfeTypeEnum'
      required:
        - isForeignTaxResidency
        - isSanctionedCountries
        - fatcaClassification
    BeneficialOwnerStatusEnum:
      title: BeneficialOwnerStatusEnum
      type: string
      enum:
        - CREATED
        - ACTIVE
        - INACTIVE
        - RECEIVED
        - INVALID
        - REJECTED
        - REVIEW
        - PENDING
        - SUSPENDED_COMPLIANCE
    UboRelationshipEnum:
      title: UboRelationshipEnum
      type: string
      description: |
        This enum is used to specify the type of relationship a person has with a company, particularly in terms of shareholding or control.The possible values are:
        - `DIRECTLY_HOLDING_25` - a person directly holds shares in the capital or voting rights of a company.
        - `INDIRECTLY_HOLDING_25`- a person indirectly holds shares in the capital or voting rights through intermediary entities or trust arrangements.
        - `DOMINANT_INFLUENCE_OVER_SHARE_CAPITAL` - a person exercises control over the company in any other way, such as through voting agreements, special rights, or trust relationships, even without (or with only minor) direct or indirect shareholdings.
      enum:
        - DIRECTLY_HOLDING_25
        - INDIRECTLY_HOLDING_25
        - DOMINANT_INFLUENCE_OVER_SHARE_CAPITAL
    BeneficialOwnerTypeEnum:
      title: BeneficialOwnerTypeEnum
      type: string
      description: |
        Indication of the type of beneficial owner:\
        In the context of legal entity customers:\
        `REAL_UBO_25` = person who holds more than 25% of the company shares\
        `FICTIVE_UBO` = Legal Representative, if no person exists who holds more than 25% of the company shares
      enum:
        - FICTIVE_UBO
        - REAL_UBO_25
    LegalRepresentativeStatusEnum:
      title: LegalRepresentativeStatusEnum
      type: string
      enum:
        - ACTIVE
        - INACTIVE
        - REVIEW
        - RECEIVED
        - INVALID
    LegalRepresentativeFunctionEnum:
      title: LegalRepresentativeFunctionEnum
      type: string
      enum:
        - MANAGING_DIRECTOR
        - SUPERVISORY_BOARD
        - SHAREHOLDER
        - OTHER
    LegalEntitySearchStatusEnum:
      title: LegalEntitySearchStatusEnum
      type: string
      enum:
        - WAITING_FOR_DATA
        - WAITING_FOR_DOCUMENTS
        - READY_DATA
        - READY_DOCUMENTS
        - PREPARING
        - COMPLETED
        - FAILED
        - ERROR
      description: status of the search
    DocumentTypeEnum:
      title: DocumentTypeEnum
      type: string
      description: This list may change in the future.
      enum:
        - KYC
        - OTHER
        - PROOF_OF_SINGLE_CUSTODY
        - PROOF_OF_CUSTODY
        - PROOF_OF_RESIDENCE
        - BIRTH_CERTIFICATE
        - IDENTIFICATION_CERTIFICATE
        - CURRENT_REGISTRY_EXTRACT
        - CHRONOLOGICAL_REGISTRY_EXTRACT
        - SHAREHOLDER_LIST
        - PARTNERSHIP_AGREEMENT
        - TRANSPARENCY_REGISTER_EXTRACT
        - BUSINESS_REGISTRATION
        - STATUTE
        - INHERITANCE_LEGITIMATION
        - INSOLVENCY_ORDER
        - TIN_NA_CONFIRMATION
        - SOURCE_OF_INCOME
        - SOURCE_OF_FUNDS
        - DEATH_CERTIFICATE
        - W_8BEN_E
        - W_8BEN
        - W_8IMY
        - CRYPTO_RECEIPT
        - TRADE_INVOICE
        - TOK_TRADE_INVOICE
        - EX_ANTE
        - TOK_EX_ANTE
        - CORPORATE_ACTION
        - TRANSFER_RECEIPT
        - WALLET_ACCOUNT_STATEMENT
        - TRADE_INVOICE_SAVINGS_PLAN
    OnboardingEntityTypeEnum:
      title: OnboardingEntityTypeEnum
      type: string
      enum:
        - BENEFICIAL_OWNER
    OnboardingStatusEnum:
      title: OnboardingStatusEnum
      type: string
      enum:
        - CREATED
        - PENDING
        - APPROVED
        - REJECTED
        - RECEIVED
        - INVALID
      readOnly: true
    OffboardingEntityTypeEnum:
      title: OffboardingEntityTypeEnum
      type: string
      enum:
        - BENEFICIAL_OWNER
    OffboardingStatusEnum:
      title: OffboardingStatusEnum
      type: string
      enum:
        - RECEIVED
        - CREATED
        - PENDING
        - INVALID
        - REJECTED
        - CANCELED
        - APPROVED
      readOnly: true
    OffboardingReasonEnum:
      title: OffboardingReasonEnum
      type: string
      enum:
        - CUSTOMER_REQUEST_IMMEDIATE
        - CANCELLATION_BY_PARTNER_ORDINARY
        - CANCELLATION_BY_PARTNER_IMMEDIATE
        - DEATH_IMMEDIATE
        - DISSOLUTION_IMMEDIATE
        - INSOLVENCY_IMMEDIATE
        - COMPANY_STRUCTURE_CHANGES_IMMEDIATE
        - REVOKE
    JointPersonStatusEnum:
      title: JointPersonStatusEnum
      type: string
      enum:
        - CREATED
        - REVIEW
        - REJECTED
        - INACTIVE
        - PENDING
        - ACTIVE
        - SUSPENDED
        - ARCHIVED
        - RECEIVED
        - INVALID
        - SUSPENDED_COMPLIANCE
  parameters:
    cursor:
      schema:
        type: string
      in: query
      name: cursor
      description: String value used for pagination
    limit:
      schema:
        type: integer
        default: 20
        minimum: 1
      in: query
      name: limit
      description: Maximum number of items to return
      required: true
    naturalPersonStatus:
      schema:
        $ref: '#/components/schemas/NaturalPersonStatusEnum'
      in: query
      name: naturalPersonStatus
      description: Natural person status Filter
    naturalPersonId:
      schema:
        type: string
        format: uuid
      name: naturalPersonId
      in: path
      required: true
      description: Natural Person ID
    assetType:
      schema:
        $ref: '#/components/schemas/TradingProfileAssetTypeEnum'
      name: assetType
      in: path
      required: true
      description: Asset type for the trading profile
    appropriatenessTestResponseId:
      schema:
        type: string
        format: uuid
      name: appropriatenessTestResponseId
      in: path
      required: true
      description: appropriatenessTestResponseId
    appropriatenessTestAssetType:
      schema:
        $ref: '#/components/schemas/AppropriatenessTestAssetTypeEnum'
      name: appropriatenessTestAssetType
      in: path
      required: true
      description: Asset type for appropriateness test
    TradingProfileLanguage:
      schema:
        $ref: '#/components/schemas/TradingProfileLanguageEnum'
      name: TradingProfileLanguage
      in: query
      required: true
      description: Language code in ISO 639-1 two-letter codes
    TradingProfileStatus:
      schema:
        $ref: '#/components/schemas/AppropriatenessTestResponseStatusEnum'
      name: TradingProfileStatus
      in: query
      required: false
      description: One of following [RECEIVED, FAILED, PASSED, INVALID]
    requestorId:
      schema:
        type: string
        format: uuid
      name: Requestor-ID
      in: header
      required: true
      description: Unique requestor identification in UUID format
      x-requestor-id: true
    legalEntityId:
      schema:
        type: string
        format: uuid
      name: legalEntityId
      in: path
      required: true
      description: Legal Entity ID
    jointPersonId:
      schema:
        type: string
        format: uuid
      name: jointPersonId
      in: path
      required: true
      description: Joint Person ID
    legalEntityStatus:
      schema:
        $ref: '#/components/schemas/LegalEntityStatusEnum'
      in: query
      name: legalEntityStatus
      description: Legal entity status Filter
    beneficialOwnerId:
      schema:
        type: string
        format: uuid
      name: beneficialOwnerId
      in: path
      required: true
      description: Beneficial Owner ID
    beneficialOwnerStatus:
      schema:
        $ref: '#/components/schemas/BeneficialOwnerStatusEnum'
      in: query
      name: beneficialOwnerStatus
      description: Beneficial owner status Filter
    startDate:
      schema:
        type: string
        format: date-time
      name: startDate
      in: query
      description: Beginning of the range
    endDate:
      schema:
        type: string
        format: date-time
      in: query
      name: endDate
      description: End of the range
    legalRepresentativeId:
      schema:
        type: string
        format: uuid
      name: legalRepresentativeId
      in: path
      required: true
      description: Legal Representative ID
    legalRepresentativeStatus:
      schema:
        $ref: '#/components/schemas/LegalRepresentativeStatusEnum'
      in: query
      name: legalRepresentativeStatus
      description: Legal representative status Filter
    legalName:
      schema:
        type: string
      in: query
      required: true
      description: Legal name
      name: legalName
    providerId:
      schema:
        type: string
      in: query
      description: provider id
      name: providerId
    searchId:
      schema:
        type: string
        format: uuid
      name: searchId
      in: path
      required: true
      description: Search ID
    identificationVerificationId:
      schema:
        type: string
        format: uuid
      name: identificationVerificationId
      in: path
      required: true
      description: Identification Verification ID
    naceSectorDescription:
      schema:
        type: string
      in: query
      description: Nace sector description
      name: description
    onboardingEntityType:
      schema:
        $ref: '#/components/schemas/OnboardingEntityTypeEnum'
      name: onboardingEntityType
      in: query
      required: true
    optionalEntityId:
      schema:
        type: string
        format: uuid
      in: query
      name: entityId
      description: Entity ID filter
      required: false
    mandatoryEntityId:
      schema:
        type: string
        format: uuid
      in: query
      name: entityId
      description: Unique identification number of entity in UUID format
      required: true
    onboardingId:
      schema:
        type: string
        format: uuid
      name: onboardingId
      in: path
      required: true
      description: Unique onboarding identification number in UUID format
    jointPersonStatus:
      schema:
        $ref: '#/components/schemas/JointPersonStatusEnum'
      in: query
      name: jointPersonStatus
      description: Joint person status Filter
    searchText:
      schema:
        type: string
      in: query
      name: searchText
      description: |
        Entity search text, the search will be performed on the following fields: 
        Name of the entity:
        * For Natural Person, Beneficial Owner, Legal Representative: firstName, lastName
        * For Joint Person: firstName, lastName of 1st natural person and firstName, lastName of 2nd natural person
        * For Legal Entity: legalName
        Also entityId and globalId
    entityTypes:
      schema:
        type: array
        items:
          $ref: '#/components/schemas/EntityTypeEnum'
      in: query
      name: entityTypes
      description: Entity types filter
    entityStatuses:
      schema:
        type: array
        items:
          $ref: '#/components/schemas/EntityStatusEnum'
      in: query
      name: entityStatuses
      description: Entity statuses filter. Possible values depend on entityType.
    globalId:
      schema:
        type: string
        minLength: 12
        maxLength: 12
      in: query
      name: globalId
      description: Global ID filter
    role:
      schema:
        $ref: '#/components/schemas/EntityRoleEnum'
      in: query
      name: role
      description: Role filter - filter entities by their assigned role
    offboardingId:
      schema:
        type: string
        format: uuid
      name: offboardingId
      in: path
      required: true
      description: Unique offboarding identification number in UUID format
    offboardingEntityType:
      schema:
        $ref: '#/components/schemas/OffboardingEntityTypeEnum'
      name: offboardingEntityType
      in: query
      required: true
      description: Type of entity for offboarding
  securitySchemes:
    Bearer:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://tvdcustomauthdomain.auth.eu-central-1.amazoncognito.com/oauth2/token
          scopes: {}
x-tagGroups:
  - name: General
    tags:
      - General
      - Search Nace Sectors
  - name: Natural Persons
    tags:
      - Natural Persons
      - Identification
      - Trading Profile
      - Appropriateness Test
  - name: Legal Entities
    tags:
      - Legal Entities
  - name: Beneficial Owners
    tags:
      - Beneficial Owners
  - name: Legal Representatives
    tags:
      - Legal Representatives
  - name: Onboardings
    tags:
      - Onboardings
  - name: Offboardings
    tags:
      - Offboardings
