{
  "openapi": "3.0.4",
  "servers": [
    {
      "url": "https://api.nyala.de",
      "description": "Production Environment"
    },
    {
      "url": "https://uat.api.nyala.de",
      "description": "UAT / Sandbox Environment"
    }
  ],
  "info": {
    "title": "Nyala Customer API",
    "description": "NYALA's tokenization API allows you to issue tokens on Polygon & Stellar. It allows you to create and manage tokens - including tokenized securities that have an ISIN - and to manage customer data. Interactions such as creating a new customer entity, request a wallet opening, creating a token and distributing a token to a customer are covered in this document.  During the onboarding process, an institution entity will be created for you.\n",
    "contact": {
      "name": "Nyala Digital Asset AG",
      "url": "https://www.nyala.de",
      "email": "developer@nyala.de"
    },
    "version": "v1",
    "x-logo": {
      "url": "https://developer.nyala.de/logo.png",
      "altText": "Nyala External API"
    }
  },
  "paths": {
    "/api/external/v1/customers": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Getting a list of customers from institution.",
        "operationId": "GetCustomers",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerAccountDtoListApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Customer"
        ],
        "summary": "Creates a new customer inside the institution.",
        "operationId": "CreateCustomer",
        "requestBody": {
          "description": "Data.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomerAccountDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomerAccountDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCustomerAccountDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GuidApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/external/v1/customers/{customer-id}": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Getting a customer by Id.",
        "operationId": "GetCustomer",
        "parameters": [
          {
            "name": "customer-id",
            "in": "path",
            "description": "Customer id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerAccountDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/external/v1/customers/{customer-id}/retail-wallets": {
      "get": {
        "tags": [
          "Retail Wallet"
        ],
        "summary": "Returns a list of retail wallet object associated with the given customer id.",
        "operationId": "GetRetailWalletsDetails",
        "parameters": [
          {
            "name": "customer-id",
            "in": "path",
            "description": "Customer Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RetailWalletDtoListApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Retail Wallet"
        ],
        "summary": "Request a new wallet for a customer from the selected custodian.",
        "operationId": "InitiateRetailWallet",
        "parameters": [
          {
            "name": "customer-id",
            "in": "path",
            "description": "Customer Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Contains Credentials to access the mnemonic seed. Encryption key file can be left empty, if it's stored on the Custodian side.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRetailWalletRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRetailWalletRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateRetailWalletRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RetailWalletDtoListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/external/v1/customers/retail-wallets/asset-transfer/{transfer-id}/status": {
      "get": {
        "tags": [
          "Retail Wallet"
        ],
        "summary": "Get the current status of a P2P tokenized asset transfer.",
        "operationId": "GetRetailWalletAssetTransferStatus",
        "parameters": [
          {
            "name": "transfer-id",
            "in": "path",
            "description": "Transfer Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RetailWalletTokenizedAssetTransferStatusDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/external/v1/retail-wallets/external": {
      "get": {
        "tags": [
          "External Retail Wallet"
        ],
        "summary": "List of external wallets.",
        "operationId": "GetExternalRetailWallet",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalRetailWalletDtoListApiResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "External Retail Wallet"
        ],
        "summary": "Import external wallets into the system.",
        "operationId": "CreateExternalRetailWallet",
        "requestBody": {
          "description": "External wallets' public addresse with some metadata.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateExternalRetailWalletDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateExternalRetailWalletDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateExternalRetailWalletDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateExternalRetailWalletResponseDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/external/v1/search": {
      "get": {
        "tags": [
          "Customer"
        ],
        "summary": "Searches for a customer by firstname lastname or email.",
        "operationId": "QueryCustomers",
        "parameters": [
          {
            "name": "searchText",
            "in": "query",
            "description": "search text.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "take",
            "in": "query",
            "description": "take.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100
            }
          },
          {
            "name": "skip",
            "in": "query",
            "description": "skip.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomerAccountDtoListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/external/v1/status": {
      "get": {
        "tags": [
          "Status"
        ],
        "summary": "Get status of API.",
        "operationId": "Get",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/external/v1/status/auth": {
      "get": {
        "tags": [
          "Status"
        ],
        "summary": "Returns the Users identity, if HMAC authentication worked.",
        "operationId": "GetAuth",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticatedInstitutionDtoApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/external/v1/customers/{customer-id}/approve-for-monerium": {
      "post": {
        "tags": [
          "Retail Wallet"
        ],
        "summary": "Approves the customer for Monerium.\nRequests Ibans for all customer wallets from Monerium.",
        "operationId": "ApproveForMonerium",
        "parameters": [
          {
            "name": "customer-id",
            "in": "path",
            "description": "Customer Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RetailWalletDtoListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/external/v1/customers/{customer-id}/asset-class-opt-in": {
      "post": {
        "tags": [
          "Retail Wallet"
        ],
        "summary": "Request to whitelist a retail wallet for an asset class.",
        "operationId": "AssetClassOptin",
        "parameters": [
          {
            "name": "customer-id",
            "in": "path",
            "description": "Customer id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Data.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RetailWalletOptInDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RetailWalletOptInDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RetailWalletOptInDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GuidApiResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Retail Wallet"
        ],
        "summary": "Update asset class optin.",
        "operationId": "UpdateAssetClassOptin",
        "parameters": [
          {
            "name": "customer-id",
            "in": "path",
            "description": "Customer id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Data.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOptInDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOptInDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateOptInDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BooleanApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/external/v1/customers/{customer-id}/kyc": {
      "post": {
        "tags": [
          "Customer"
        ],
        "summary": "Saving KYC data for custodying customer wallets.",
        "operationId": "SubmitCustomerKycData",
        "parameters": [
          {
            "name": "customer-id",
            "in": "path",
            "description": "Customer id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Data.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateKycData"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateKycData"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateKycData"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BooleanApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/external/v1/customers/{customer-id}/monerium-redeem": {
      "post": {
        "tags": [
          "Retail Wallet"
        ],
        "summary": "Monerium Redeem.\nPlace Order on Monerium to Redeem.",
        "operationId": "MoneriumRedeem",
        "parameters": [
          {
            "name": "customer-id",
            "in": "path",
            "description": "Customer Id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Request Dto.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RedeemRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RedeemRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RedeemRequestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RetailWalletDtoListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/external/v1/customers/{customer-id}/retail-wallets/{external-retail-wallet-id}/external-asset-class-opt-in": {
      "post": {
        "tags": [
          "External Retail Wallet"
        ],
        "summary": "Request to whitelist an external retail wallet for an asset class.",
        "operationId": "ExternalAssetClassOptin",
        "parameters": [
          {
            "name": "customer-id",
            "in": "path",
            "description": "Customer id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "external-retail-wallet-id",
            "in": "path",
            "description": "External retail wallet id.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "Data.",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalRetailWalletOptInDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalRetailWalletOptInDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalRetailWalletOptInDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GuidApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/external/v1/customers/kyc-concedus": {
      "post": {
        "tags": [
          "Customer"
        ],
        "summary": "Saving KYC data - Concedus customer.",
        "operationId": "SubmitConcedusKycData",
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ColistingOnboardCustomer"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ColistingOnboardCustomer"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ColistingOnboardCustomer"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ColistingOnboardCustomerResultApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/external/v1/customers/retail-wallets/asset-transfer": {
      "post": {
        "tags": [
          "Retail Wallet"
        ],
        "summary": "Create a request for tokenized asset transfer to another wallet.",
        "operationId": "CreateRetailWalletAssetTransfer",
        "requestBody": {
          "description": "Contains information for the transfer including amount, recipient address and credentials. Credentials to access the mnemonic seed. Encryption key file can be left empty, if it's stored on the Custodian side.",
          "content": {
            "application/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CreateP2PAssetTransferDto"
                }
              }
            },
            "text/json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CreateP2PAssetTransferDto"
                }
              }
            },
            "application/*+json": {
              "schema": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CreateP2PAssetTransferDto"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/P2PTransferResultDtoListApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/external/v1/customers/send-concedus/{customer-id}": {
      "post": {
        "tags": [
          "Customer"
        ],
        "summary": "Sends the KYC data of a specific customer to Concedus for further processing.",
        "operationId": "SubmitConcedusKycDataCustomer",
        "parameters": [
          {
            "name": "customer-id",
            "in": "path",
            "description": "The unique identifier of the customer.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConcedusPersonRequestApiResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/external/v1/customers/send-concedus/company/{company-id}": {
      "post": {
        "tags": [
          "Customer"
        ],
        "summary": "Sends the KYC data of a specific company to Concedus for further processing.",
        "operationId": "SubmitConcedusKycDataCompany",
        "parameters": [
          {
            "name": "company-id",
            "in": "path",
            "description": "The unique identifier of the company.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConcedusPersonRequestApiResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AccountTypes": {
        "enum": [
          "Unknown",
          "Person",
          "LegalEntity"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "AccountTypes",
          "enumObjects": [
            {
              "label": "Unknown",
              "value": 0
            },
            {
              "label": "Person",
              "value": 1
            },
            {
              "label": "LegalEntity",
              "value": 2
            }
          ]
        }
      },
      "AssetClassEnum": {
        "enum": [
          "Bond",
          "Share"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "AssetClassEnum",
          "enumObjects": [
            {
              "label": "Bond",
              "value": 0
            },
            {
              "label": "Share",
              "value": 1
            }
          ]
        }
      },
      "AuthenticatedInstitutionDto": {
        "type": "object",
        "properties": {
          "institutionName": {
            "type": "string",
            "nullable": true
          },
          "productAccess": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Products"
            },
            "nullable": true
          },
          "userName": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AuthenticatedInstitutionDtoApiResponse": {
        "type": "object",
        "properties": {
          "errorMessageCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Error"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/AuthenticatedInstitutionDto"
          }
        },
        "additionalProperties": false
      },
      "BalancesInDecimalDto": {
        "type": "object",
        "properties": {
          "nativeBalance": {
            "$ref": "#/components/schemas/DecimalBalanceAmount"
          },
          "nativeFreeDecimalBalanceString": {
            "type": "string",
            "description": "1.234 format in string.",
            "nullable": true,
            "readOnly": true
          },
          "nativeLockedDecimalBalanceString": {
            "type": "string",
            "description": "1.234 format in string.",
            "nullable": true,
            "readOnly": true
          },
          "nonNativeBalances": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            },
            "nullable": true
          },
          "nonNativeBalancesString": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "description": "Balances in human readable format: in case of LUNA: 1 luna is 1_000_000 uluna, and here you should see 1.0."
      },
      "Blockchains": {
        "enum": [
          "Stellar",
          "Polygon",
          "Peaq"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "Blockchains",
          "enumObjects": [
            {
              "label": "NotSet",
              "value": 0
            },
            {
              "label": "Bitcoin",
              "value": 1
            },
            {
              "label": "Ethereum",
              "value": 2
            },
            {
              "label": "Stellar",
              "value": 3
            },
            {
              "label": "Litecoin",
              "value": 4
            },
            {
              "label": "Polkadot",
              "value": 5
            },
            {
              "label": "Kusama",
              "value": 6
            },
            {
              "label": "Algorand",
              "value": 7
            },
            {
              "label": "Cosmos",
              "value": 8
            },
            {
              "label": "Terra",
              "value": 9
            },
            {
              "label": "Polymesh",
              "value": 10
            },
            {
              "label": "Binance",
              "value": 11
            },
            {
              "label": "Solana",
              "value": 12
            },
            {
              "label": "Cardano",
              "value": 13
            },
            {
              "label": "Polygon",
              "value": 14
            },
            {
              "label": "Avalanche",
              "value": 15
            },
            {
              "label": "Peaq",
              "value": 16
            },
            {
              "label": "Amoy",
              "value": 17
            },
            {
              "label": "EthereumSmartContract",
              "value": 100
            }
          ]
        }
      },
      "BooleanApiResponse": {
        "type": "object",
        "properties": {
          "errorMessageCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Error"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CompanyConsent": {
        "enum": [
          "Require",
          "NotRequire"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "CompanyConsent",
          "enumObjects": [
            {
              "label": "Require",
              "value": 0
            },
            {
              "label": "NotRequire",
              "value": 1
            }
          ]
        }
      },
      "CountryDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "iso": {
            "type": "string",
            "nullable": true
          },
          "isoCode3": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateCustomerAccountDto": {
        "required": [
          "countryIso",
          "email",
          "firstname",
          "lastname",
          "postalCode",
          "street",
          "streetNo",
          "town",
          "type"
        ],
        "type": "object",
        "properties": {
          "salutation": {
            "type": "string",
            "description": "Salutation such as \"Herr\", \"Frau\", \"Mr.\", \"Ms.\", etc.",
            "nullable": true
          },
          "title": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "description": "Title such as \"Dr.\", \"Prof.\", etc.",
            "nullable": true
          },
          "firstname": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "description": "First name of the investor. When sending values with accents (e.g. É, ç, ñ), send the values in UTF-8 charset."
          },
          "lastname": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "description": "Last name of the investor. When sending values with accents (e.g. É, ç, ñ), send the values in UTF-8 charset."
          },
          "birthDate": {
            "type": "string",
            "description": "Date of birth not required at customer creation, but necessary for the KYC process. ",
            "format": "date-time",
            "nullable": true
          },
          "phoneNumber": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "description": "Phone number of the investor.",
            "format": "tel",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/AccountTypes"
          },
          "street": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "description": "The street name where the investor resides. When sending values with accents (e.g. É, ç, ñ), send the values in UTF-8 charset."
          },
          "streetNo": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "description": "The street number where the investor resides."
          },
          "postalCode": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "description": "The postal code where the investor resides."
          },
          "town": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "description": "The town in which the investor resides. When sending values with accents (e.g. É, ç, ñ), send the values in UTF-8 charset."
          },
          "countryIso": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "The country ISO code in which the investor resides. Use ISO 3166-1 alpha-2 country codes."
          },
          "company": {
            "$ref": "#/components/schemas/CustomerCompanyDetailDto"
          },
          "nationalityIso": {
            "type": "string",
            "description": "The nationality ISO of the investor. Use ISO 3166-1 alpha-2 country codes.",
            "nullable": true
          },
          "gender": {
            "$ref": "#/components/schemas/GenderTypes"
          },
          "monerium": {
            "$ref": "#/components/schemas/MoneriumGanymedeDto"
          },
          "tanganyLegalPerson": {
            "$ref": "#/components/schemas/TanganyLegalPersonDto"
          },
          "custodyProvider": {
            "$ref": "#/components/schemas/CustodyProvider"
          },
          "email": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "description": "The email which the investor used to register. This must be unique and cannot be reused by other investors.",
            "format": "email"
          },
          "hadcCustomerId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "id": {
            "type": "string",
            "description": "If not provided, it will be auto-generated.",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateExternalRetailWalletDto": {
        "type": "object",
        "properties": {
          "blockchain": {
            "$ref": "#/components/schemas/Blockchains"
          },
          "publicAddress": {
            "type": "string",
            "nullable": true
          },
          "accountId": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "externalId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateExternalRetailWalletResponseDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "externalId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateExternalRetailWalletResponseDtoApiResponse": {
        "type": "object",
        "properties": {
          "errorMessageCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Error"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/CreateExternalRetailWalletResponseDto"
          }
        },
        "additionalProperties": false
      },
      "CreateRetailWalletRequest": {
        "type": "object",
        "properties": {
          "custodyProvider": {
            "$ref": "#/components/schemas/CustodyProvider"
          }
        },
        "additionalProperties": false
      },
      "CreateP2PAssetTransferDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "senderWalletId": {
            "type": "string",
            "format": "uuid"
          },
          "recipientWalletId": {
            "type": "string",
            "format": "uuid"
          },
          "tokenizedAssetId": {
            "type": "string",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "blockchain": {
            "$ref": "#/components/schemas/Blockchains"
          }
        },
        "additionalProperties": false
      },
      "CustodyProvider": {
        "enum": [
          "HADC",
          "Tangany",
          "TanganyExternal",
          "Iris"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "CustodyProvider",
          "enumObjects": [
            {
              "label": "HADC",
              "value": 0
            },
            {
              "label": "Tangany",
              "value": 1
            },
            {
              "label": "TanganyExternal",
              "value": 2
            },
            {
              "label": "Iris",
              "value": 3
            }
          ]
        }
      },
      "CustomerAccountDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "firstname": {
            "type": "string",
            "nullable": true
          },
          "lastname": {
            "type": "string",
            "nullable": true
          },
          "institutionId": {
            "type": "string",
            "format": "uuid"
          },
          "institutionName": {
            "type": "string",
            "nullable": true
          },
          "salutation": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/AccountTypes"
          },
          "birthDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phoneNumber": {
            "type": "string",
            "nullable": true
          },
          "taxId": {
            "type": "string",
            "nullable": true
          },
          "walletAccess": {
            "$ref": "#/components/schemas/RetailWalletAccessLevels"
          },
          "address": {
            "$ref": "#/components/schemas/CustomerAddressDto"
          },
          "nationalityId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "nationalityIso": {
            "type": "string",
            "nullable": true
          },
          "gender": {
            "$ref": "#/components/schemas/GenderTypes"
          },
          "kycData": {
            "$ref": "#/components/schemas/KycDataDto"
          },
          "company": {
            "$ref": "#/components/schemas/CustomerCompanyDetailDto"
          },
          "approvedForMonerium": {
            "type": "boolean",
            "nullable": true
          },
          "moneriumIban": {
            "type": "string",
            "nullable": true
          },
          "tanganyCustomerId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "tanganyAuthorizedId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "tanganyOwnerId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "hadcCustomerId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomerAccountDtoApiResponse": {
        "type": "object",
        "properties": {
          "errorMessageCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Error"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/CustomerAccountDto"
          }
        },
        "additionalProperties": false
      },
      "CustomerAccountDtoListApiResponse": {
        "type": "object",
        "properties": {
          "errorMessageCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Error"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomerAccountDto"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "CustomerAddressDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "street": {
            "type": "string",
            "nullable": true
          },
          "streetNo": {
            "type": "string",
            "nullable": true
          },
          "postalCode": {
            "type": "string",
            "nullable": true
          },
          "town": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "$ref": "#/components/schemas/CountryDto"
          },
          "countryCode": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CustomerCompanyDetailDto": {
        "required": [
          "email",
          "fullAddress",
          "name",
          "registerNumber"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "registerNumber": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "fullAddress": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string"
          },
          "email": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string",
            "format": "email"
          }
        },
        "additionalProperties": false,
        "description": "Only required when the account type is LegalEntity."
      },
      "DecimalBalanceAmount": {
        "type": "object",
        "properties": {
          "free": {
            "type": "number",
            "format": "double"
          },
          "locked": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Error": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "field": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ExternalRetailWalletDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "accountId": {
            "type": "string",
            "format": "uuid"
          },
          "blockchain": {
            "$ref": "#/components/schemas/Blockchains"
          },
          "publicAddress": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ExternalRetailWalletDtoListApiResponse": {
        "type": "object",
        "properties": {
          "errorMessageCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Error"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalRetailWalletDto"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "ExternalRetailWalletOptInDto": {
        "required": [
          "tokenizedAssetId"
        ],
        "type": "object",
        "properties": {
          "tokenizedAssetId": {
            "type": "string",
            "format": "uuid"
          },
          "approvedForDelivery": {
            "type": "boolean"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "txHash": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FiatCurrency": {
        "enum": [
          "None",
          "CHF",
          "EUR",
          "USD"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "FiatCurrency",
          "enumObjects": [
            {
              "label": "None",
              "value": 0
            },
            {
              "label": "CHF",
              "value": 756
            },
            {
              "label": "EUR",
              "value": 1001
            },
            {
              "label": "USD",
              "value": 1002
            }
          ]
        }
      },
      "GenderTypes": {
        "enum": [
          "NotSet",
          "Male",
          "Female",
          "Other"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "GenderTypes",
          "enumObjects": [
            {
              "label": "NotSet",
              "value": 0
            },
            {
              "label": "Male",
              "value": 1
            },
            {
              "label": "Female",
              "value": 2
            },
            {
              "label": "Other",
              "value": 3
            }
          ]
        }
      },
      "GuidApiResponse": {
        "type": "object",
        "properties": {
          "errorMessageCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Error"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "type": "string",
            "format": "uuid",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "IdentVerifiedType": {
        "enum": [
          "NotSet",
          "Normal",
          "Plain"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "IdentVerifiedType",
          "enumObjects": [
            {
              "label": "NotSet",
              "value": 0
            },
            {
              "label": "Normal",
              "value": 1
            },
            {
              "label": "Plain",
              "value": 2
            },
            {
              "label": "None",
              "value": -1
            }
          ]
        }
      },
      "IssuerWalletDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "groupId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "issuerWalletSeedId": {
            "type": "string",
            "format": "uuid"
          },
          "role": {
            "$ref": "#/components/schemas/IssuerWalletRoles"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "blockchain": {
            "$ref": "#/components/schemas/Blockchains"
          },
          "publicAddress": {
            "type": "string",
            "nullable": true
          },
          "accountIndex": {
            "type": "integer",
            "format": "int32"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "balance": {
            "$ref": "#/components/schemas/BalancesInDecimalDto"
          },
          "tokenizedAssets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TokenizedAssetDto"
            },
            "nullable": true
          },
          "seedLockStatus": {
            "type": "boolean"
          },
          "nativeCryptoAssetSymbol": {
            "type": "string",
            "nullable": true
          },
          "nativeCryptoAssetId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "isLocked": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "IssuerWalletRoles": {
        "enum": [
          "Issuer",
          "Distributor",
          "ClaimIssuer",
          "Agent"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "IssuerWalletRoles",
          "enumObjects": [
            {
              "label": "Issuer",
              "value": 1
            },
            {
              "label": "Distributor",
              "value": 2
            },
            {
              "label": "ClaimIssuer",
              "value": 3
            },
            {
              "label": "Agent",
              "value": 4
            }
          ]
        }
      },
      "KycAddressDto": {
        "required": [
          "countryCodeIso2",
          "postalCode",
          "street",
          "streetNo",
          "town"
        ],
        "type": "object",
        "properties": {
          "street": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "description": "The street name where the investor resides. When sending values with accents (e.g. É, ç, ñ), send the values in UTF-8 charset."
          },
          "streetNo": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "description": "The street number where the investor resides."
          },
          "postalCode": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "description": "The postal code where the investor resides."
          },
          "town": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "description": "The town in which the investor resides. When sending values with accents, send in UTF-8 charset."
          },
          "countryCodeIso2": {
            "maxLength": 2,
            "minLength": 1,
            "type": "string",
            "description": "ISO country codes (e.g. \"DE\")."
          }
        },
        "additionalProperties": false
      },
      "KycDataDto": {
        "required": [
          "address",
          "dateOfBirth",
          "email",
          "eulaAgreed",
          "firstname",
          "highCorruptionIndex",
          "identVerified",
          "lastname",
          "nonPepPerson",
          "nonSanctionedCountry",
          "nonUsTaxPerson",
          "placeOfBirth"
        ],
        "type": "object",
        "properties": {
          "title": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "description": "Title such as \"Dr.\", \"Prof.\", etc.",
            "nullable": true
          },
          "salutation": {
            "type": "string",
            "description": "Salutation such as \"Herr\", \"Frau\", \"Mr.\", \"Ms.\", etc.",
            "nullable": true
          },
          "firstname": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "description": "First name of the investor. When sending values with accents (e.g. É, ç, ñ), send the values in UTF-8 charset."
          },
          "lastname": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "description": "Last name of the investor. When sending values with accents (e.g. É, ç, ñ), send the values in UTF-8 charset."
          },
          "placeOfBirth": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Place of birth denoted in the used identification document of the investor."
          },
          "dateOfBirth": {
            "type": "string",
            "description": "Date of birth is a regulatory requirement for the KYC process.",
            "format": "date-time"
          },
          "email": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "description": "The email which the investor used to register. You can re-use the same input as from customer creation.",
            "format": "email"
          },
          "phoneNumber": {
            "type": "string",
            "description": "Phone number of the investor.",
            "nullable": true
          },
          "taxId": {
            "type": "string",
            "description": "TaxID of the investor.",
            "nullable": true
          },
          "nonPepPerson": {
            "type": "boolean",
            "description": "Relates to the political exposure of the person. Indicates whether the person is NOT a Politically Exposed Person (PEP)."
          },
          "highCorruptionIndex": {
            "type": "boolean",
            "description": "Relates to the country of residence. You can always send \"false\" if your KYC provider performs these checks automatically."
          },
          "nonSanctionedCountry": {
            "type": "boolean",
            "description": "Indicates the investor is NOT residing in a sanctioned country. You can always send \"true\" if your KYC provider performs these checks automatically."
          },
          "nonUsTaxPerson": {
            "type": "boolean",
            "description": "We do not accept persons subjected to US tax. Always set to \"true\" (if the person is not subject to taxes in the USA)."
          },
          "identVerified": {
            "type": "boolean",
            "description": "Only send KYC data of customers that have been verified already. Hence, always set this field to \"true\"."
          },
          "identVerifiedType": {
            "$ref": "#/components/schemas/IdentVerifiedType"
          },
          "tanganyIdentVerifiedType": {
            "$ref": "#/components/schemas/TanganyIdentVerifiedType"
          },
          "eulaAgreed": {
            "type": "boolean",
            "description": "Refers to the Smart Registry terms of use. Ensure that your end users always have to agree to the terms as part of their onboarding process, then always set to \"true\"."
          },
          "address": {
            "$ref": "#/components/schemas/KycAddressDto"
          },
          "company": {
            "$ref": "#/components/schemas/CustomerCompanyDetailDto"
          },
          "nationalityIso": {
            "type": "string",
            "description": "The nationality ISO of the investor. Use ISO 3166-1 alpha-2 country codes. ",
            "nullable": true
          },
          "gender": {
            "$ref": "#/components/schemas/GenderTypes"
          },
          "tanganyLegalPerson": {
            "$ref": "#/components/schemas/TanganyLegalPersonDto"
          }
        },
        "additionalProperties": false
      },
      "LegalKycDto": {
        "required": [
          "businessDescription",
          "isCreAvailable"
        ],
        "type": "object",
        "properties": {
          "businessDescription": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "You can always send the following value: \"Investor\"."
          },
          "isCreAvailable": {
            "type": "boolean",
            "description": "You can always set this field to false."
          }
        },
        "additionalProperties": false
      },
      "MixedRecordKeeping": {
        "enum": [
          "True",
          "False"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "MixedRecordKeeping",
          "enumObjects": [
            {
              "label": "True",
              "value": 0
            },
            {
              "label": "False",
              "value": 1
            }
          ]
        }
      },
      "MoneriumBasePersonalDto": {
        "required": [
          "birthDay",
          "country",
          "firstname",
          "lastname",
          "nationality"
        ],
        "type": "object",
        "properties": {
          "firstname": {
            "minLength": 1,
            "type": "string"
          },
          "lastname": {
            "minLength": 1,
            "type": "string"
          },
          "country": {
            "minLength": 1,
            "type": "string"
          },
          "nationality": {
            "minLength": 1,
            "type": "string"
          },
          "birthDay": {
            "minLength": 1,
            "type": "string",
            "format": "date"
          }
        },
        "additionalProperties": false
      },
      "MoneriumBeneficialOwnerDto": {
        "required": [
          "birthDay",
          "country",
          "firstname",
          "lastname",
          "nationality"
        ],
        "type": "object",
        "properties": {
          "firstname": {
            "minLength": 1,
            "type": "string"
          },
          "lastname": {
            "minLength": 1,
            "type": "string"
          },
          "country": {
            "minLength": 1,
            "type": "string"
          },
          "nationality": {
            "minLength": 1,
            "type": "string"
          },
          "birthDay": {
            "minLength": 1,
            "type": "string",
            "format": "date"
          },
          "ownershipPercentage": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MoneriumCorporateDetailsDto": {
        "required": [
          "address",
          "city",
          "country",
          "name",
          "postalCode",
          "registrationNumber",
          "representatives"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "registrationNumber": {
            "minLength": 1,
            "type": "string"
          },
          "representatives": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MoneriumRepresentativeDto"
            }
          },
          "finalBeneficiaries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MoneriumBeneficialOwnerDto"
            },
            "nullable": true
          },
          "directors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MoneriumBasePersonalDto"
            },
            "nullable": true
          },
          "address": {
            "minLength": 1,
            "type": "string"
          },
          "postalCode": {
            "minLength": 1,
            "type": "string"
          },
          "city": {
            "minLength": 1,
            "type": "string"
          },
          "country": {
            "minLength": 1,
            "type": "string"
          },
          "countryState": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MoneriumDocumentDto": {
        "required": [
          "kind",
          "number"
        ],
        "type": "object",
        "properties": {
          "number": {
            "minLength": 1,
            "type": "string"
          },
          "kind": {
            "$ref": "#/components/schemas/MoneriumDocumentType"
          }
        },
        "additionalProperties": false
      },
      "MoneriumDocumentType": {
        "enum": [
          "passport",
          "drivingLicense",
          "nationalIdentityCard"
        ],
        "type": "string",
        "description": "The type of ID document. Passports, National ID cards, and driving licenses are supported.",
        "format": "int32",
        "x-custom-enum": {
          "name": "MoneriumDocumentType",
          "enumObjects": [
            {
              "label": "passport",
              "value": 0
            },
            {
              "label": "drivingLicense",
              "value": 1
            },
            {
              "label": "nationalIdentityCard",
              "value": 2
            }
          ]
        }
      },
      "MoneriumGanymedeDto": {
        "type": "object",
        "properties": {
          "profileDocument": {
            "$ref": "#/components/schemas/MoneriumDocumentDto"
          },
          "corporate": {
            "$ref": "#/components/schemas/MoneriumCorporateDetailsDto"
          }
        },
        "additionalProperties": false
      },
      "MoneriumRepresentativeDto": {
        "required": [
          "address",
          "birthDay",
          "city",
          "country",
          "firstname",
          "idDocument",
          "lastname",
          "nationality",
          "postalCode"
        ],
        "type": "object",
        "properties": {
          "firstname": {
            "minLength": 1,
            "type": "string"
          },
          "lastname": {
            "minLength": 1,
            "type": "string"
          },
          "country": {
            "minLength": 1,
            "type": "string"
          },
          "nationality": {
            "minLength": 1,
            "type": "string"
          },
          "birthDay": {
            "minLength": 1,
            "type": "string",
            "format": "date"
          },
          "address": {
            "minLength": 1,
            "type": "string"
          },
          "postalCode": {
            "minLength": 1,
            "type": "string"
          },
          "city": {
            "minLength": 1,
            "type": "string"
          },
          "countryState": {
            "type": "string",
            "nullable": true
          },
          "idDocument": {
            "$ref": "#/components/schemas/MoneriumDocumentDto"
          }
        },
        "additionalProperties": false
      },
      "P2PTransferResultDtoListApiResponse": {
        "type": "object",
        "properties": {
          "errorMessageCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Error"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/P2PTransferResultDto"
            },
            "nullable": true,
            "readOnly": true
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "Products": {
        "enum": [
          "RetailWallet",
          "Tokenization"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "Products",
          "enumObjects": [
            {
              "label": "RetailWallet",
              "value": 101
            },
            {
              "label": "Tokenization",
              "value": 103
            }
          ]
        }
      },
      "ProjectDto": {
        "required": [
          "blockchain",
          "institutionId",
          "issueSize",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "institutionId": {
            "type": "string",
            "format": "uuid"
          },
          "userId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "creatorFirstName": {
            "type": "string",
            "nullable": true
          },
          "creatorLastName": {
            "type": "string",
            "nullable": true
          },
          "startOfSubscription": {
            "type": "string",
            "description": "Optional for Share Token Projects",
            "nullable": true
          },
          "endOfSubscription": {
            "type": "string",
            "description": "Optional for Share Token Projects",
            "nullable": true
          },
          "targetIssuanceDate": {
            "type": "string",
            "description": "Optional for Share Token Projects",
            "nullable": true
          },
          "dueDateOfPayments": {
            "type": "string",
            "nullable": true
          },
          "terminationRights": {
            "type": "string",
            "description": "Required for Bond Token Projects",
            "nullable": true
          },
          "issueSize": {
            "minLength": 1,
            "type": "string"
          },
          "currency": {
            "$ref": "#/components/schemas/FiatCurrency"
          },
          "entryType": {
            "$ref": "#/components/schemas/ProjectEntryType"
          },
          "tokenType": {
            "$ref": "#/components/schemas/AssetClassEnum"
          },
          "status": {
            "$ref": "#/components/schemas/ProjectStatus"
          },
          "created": {
            "type": "string",
            "nullable": true
          },
          "registryExtract": {
            "type": "boolean"
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "blockchain": {
            "$ref": "#/components/schemas/Blockchains"
          },
          "currentPassphrase": {
            "type": "string",
            "nullable": true
          },
          "projectPassphrase": {
            "type": "string",
            "nullable": true
          },
          "seedCreated": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "ProjectEntryType": {
        "enum": [
          "Collective",
          "Individual"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "ProjectEntryType",
          "enumObjects": [
            {
              "label": "Collective",
              "value": 0
            },
            {
              "label": "Individual",
              "value": 1
            }
          ]
        }
      },
      "ProjectStatus": {
        "enum": [
          "Initiated",
          "Live",
          "InProgress",
          "Active",
          "Finished",
          "Terminated",
          "ActionNeeded"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "ProjectStatus",
          "enumObjects": [
            {
              "label": "Initiated",
              "value": 0
            },
            {
              "label": "Live",
              "value": 1
            },
            {
              "label": "InProgress",
              "value": 2
            },
            {
              "label": "Active",
              "value": 3
            },
            {
              "label": "Finished",
              "value": 4
            },
            {
              "label": "Terminated",
              "value": 5
            },
            {
              "label": "ActionNeeded",
              "value": 6
            }
          ]
        }
      },
      "RedeemRequestDto": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "string",
            "nullable": true
          },
          "iban": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RelatedItemDto": {
        "required": [
          "isFictitiousBeneficialOwner",
          "isUltimateBeneficialOwner"
        ],
        "type": "object",
        "properties": {
          "entityId": {
            "type": "string",
            "description": "The legal requirement is to create one per beneficial owner of the company (even if they do not have to go through the KYC process).",
            "format": "uuid",
            "nullable": true
          },
          "position": {
            "maxLength": 255,
            "type": "string",
            "description": "Position of the beneficial owner in the company.",
            "nullable": true
          },
          "isFictitiousBeneficialOwner": {
            "type": "boolean",
            "description": "Indicates if this is a fictitious beneficial owner."
          },
          "isUltimateBeneficialOwner": {
            "type": "boolean",
            "description": "Indicates if this is the ultimate beneficial owner."
          },
          "sharePercentage": {
            "maxLength": 10,
            "type": "string",
            "description": "Share percentage of ownership.",
            "nullable": true
          },
          "naturalPerson": {
            "$ref": "#/components/schemas/TanganyNaturalPersonDto"
          },
          "legalPerson": {
            "$ref": "#/components/schemas/TanganyLegalPersonDto"
          }
        },
        "additionalProperties": false
      },
      "RetailWalletAccessLevels": {
        "enum": [
          "None",
          "Basic",
          "Full"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "RetailWalletAccessLevels",
          "enumObjects": [
            {
              "label": "None",
              "value": 0
            },
            {
              "label": "Basic",
              "value": 1
            },
            {
              "label": "Full",
              "value": 2
            }
          ]
        }
      },
      "RetailWalletDto": {
        "type": "object",
        "properties": {
          "blockchain": {
            "$ref": "#/components/schemas/Blockchains"
          },
          "publicAddress": {
            "type": "string",
            "nullable": true
          },
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "balance": {
            "$ref": "#/components/schemas/BalancesInDecimalDto"
          },
          "seedLockStatus": {
            "type": "boolean"
          },
          "retailWalletSeedId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "accountId": {
            "type": "string",
            "format": "uuid"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "transfers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TokenizedAssetTransferDto"
            },
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/RetailWalletType"
          },
          "status": {
            "$ref": "#/components/schemas/RetailWalletRequestStatus"
          },
          "isTangany": {
            "type": "boolean"
          },
          "isIrisWallet": {
            "type": "boolean",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RetailWalletDtoListApiResponse": {
        "type": "object",
        "properties": {
          "errorMessageCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Error"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RetailWalletDto"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "RetailWalletOptInDto": {
        "required": [
          "tokenizedAssetId"
        ],
        "type": "object",
        "properties": {
          "tokenizedAssetId": {
            "type": "string",
            "format": "uuid"
          },
          "approvedForDelivery": {
            "type": "boolean"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "custodyProvider": {
            "$ref": "#/components/schemas/CustodyProvider"
          }
        },
        "additionalProperties": false
      },
      "RetailWalletRequestStatus": {
        "enum": [
          "New",
          "Approved",
          "WalletCreated",
          "UpdatedKYCData",
          "Rejected",
          "Withdrawn"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "RetailWalletRequestStatus",
          "enumObjects": [
            {
              "label": "New",
              "value": 0
            },
            {
              "label": "Approved",
              "value": 1
            },
            {
              "label": "WalletCreated",
              "value": 2
            },
            {
              "label": "UpdatedKYCData",
              "value": 3
            },
            {
              "label": "Rejected",
              "value": 4
            },
            {
              "label": "Withdrawn",
              "value": 5
            }
          ]
        }
      },
      "RetailWalletTokenizedAssetTransferStatusDto": {
        "type": "object",
        "properties": {
          "tokenizedAssetId": {
            "type": "string",
            "format": "uuid"
          },
          "senderWalletId": {
            "type": "string",
            "format": "uuid"
          },
          "senderAddress": {
            "type": "string",
            "nullable": true
          },
          "recipientAddress": {
            "type": "string",
            "nullable": true
          },
          "recipientWalletId": {
            "type": "string",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "blockchainTxId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RetailWalletTokenizedAssetTransferStatusDtoApiResponse": {
        "type": "object",
        "properties": {
          "errorMessageCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Error"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/RetailWalletTokenizedAssetTransferStatusDto"
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "RetailWalletType": {
        "enum": [
          "RetailWallet",
          "RetailWalletRequest"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "RetailWalletType",
          "enumObjects": [
            {
              "label": "RetailWallet",
              "value": 1
            },
            {
              "label": "RetailWalletRequest",
              "value": 2
            }
          ]
        }
      },
      "ReviewDecision": {
        "enum": [
          "Pending",
          "Approved",
          "Rejected",
          "Withdrawn"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "ReviewDecision",
          "enumObjects": [
            {
              "label": "Pending",
              "value": 0
            },
            {
              "label": "Approved",
              "value": 1
            },
            {
              "label": "Rejected",
              "value": 2
            },
            {
              "label": "Withdrawn",
              "value": 3
            }
          ]
        }
      },
      "SimpleAccessCredentialsDto": {
        "type": "object",
        "additionalProperties": false
      },
      "TanganyCustomerAddressDto": {
        "required": [
          "city",
          "country",
          "postcode",
          "streetName",
          "streetNumber"
        ],
        "type": "object",
        "properties": {
          "country": {
            "maxLength": 2,
            "minLength": 1,
            "type": "string",
            "description": "ISO country code (e.g. \"DE\") where the company is registered."
          },
          "city": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "City where company is registered."
          },
          "postcode": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "Post code where company is registered."
          },
          "streetName": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "Street name where company is registered."
          },
          "streetNumber": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "Street number where company is registered."
          }
        },
        "additionalProperties": false
      },
      "TanganyCustomerKycDocumentDto": {
        "type": "object",
        "properties": {
          "nationality": {
            "maxLength": 2,
            "type": "string",
            "description": "Stated nationality. Must be a ISO 3166-1 Alpha-2 country code. Additionally \"XX\" is allowed for unknown states.",
            "nullable": true
          },
          "country": {
            "maxLength": 2,
            "type": "string",
            "description": "Document issuing country. Must be a ISO 3166-1 Alpha-2 country code. Additionally \"XX\" is allowed for unknown states. Nullable only for QES_bankident method - has to be set to null or removed from the object",
            "nullable": true
          },
          "number": {
            "maxLength": 255,
            "type": "string",
            "description": "ID of the document. Nullable only for eID and QES_bankident methods - has to be set to null or removed from the object",
            "nullable": true
          },
          "issuedBy": {
            "maxLength": 255,
            "type": "string",
            "description": "Name of the document issuer. Nullable only for eID and QES_bankident methods - has to be set to null or removed from the object",
            "nullable": true
          },
          "issueDate": {
            "type": "string",
            "description": "Date of issuance in the format YYYY-MM-DD. Must be >= 1900-01-01. If not provided, can be set to n/a. Nullable only for QES_bankident method - has to be set to null or removed from the object",
            "format": "date",
            "nullable": true
          },
          "validUntil": {
            "type": "string",
            "description": "Stated expiration date of the document in the YYYY-MM-DD format. Must be >= 1900-01-01. Nullable only for QES_bankident method - has to be set to null or removed from the object",
            "format": "date",
            "nullable": true
          },
          "type": {
            "$ref": "#/components/schemas/TanganyDocumentType"
          },
          "iban": {
            "maxLength": 34,
            "type": "string",
            "description": "International Bank Account Number comprised of 34 characters, letters and numbers. Nullable for all methods except QES_bankident",
            "nullable": true
          },
          "reference": {
            "type": "string",
            "description": "Reference or purpose of a transfer containing any characters. Nullable for all methods except QES_bankident",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "The document which was used for verification. Note that a document is required for all verification methods except for in_person"
      },
      "TanganyCustomerKycDto": {
        "required": [
          "date",
          "id",
          "method"
        ],
        "type": "object",
        "properties": {
          "id": {
            "minLength": 1,
            "type": "string",
            "format": "uuid"
          },
          "date": {
            "minLength": 1,
            "type": "string",
            "format": "date-time"
          },
          "method": {
            "$ref": "#/components/schemas/TanganyIdentVerifiedType"
          },
          "document": {
            "$ref": "#/components/schemas/TanganyCustomerKycDocumentDto"
          }
        },
        "additionalProperties": false
      },
      "TanganyDocumentType": {
        "enum": [
          "Id_card",
          "Passport",
          "Other"
        ],
        "type": "string",
        "description": "Type of the document. Nullable only for QES_bankident method - has to be set to null or removed from the object",
        "format": "int32",
        "x-custom-enum": {
          "name": "TanganyDocumentType",
          "enumObjects": [
            {
              "label": "Id_card",
              "value": 0
            },
            {
              "label": "Passport",
              "value": 1
            },
            {
              "label": "Other",
              "value": 2
            }
          ]
        }
      },
      "TanganyGenderType": {
        "enum": [
          "M",
          "F",
          "X"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "TanganyGenderType",
          "enumObjects": [
            {
              "label": "M",
              "value": 0
            },
            {
              "label": "F",
              "value": 1
            },
            {
              "label": "X",
              "value": 2
            }
          ]
        }
      },
      "TanganyIdentVerifiedType": {
        "enum": [
          "Video_ident",
          "Id_copy",
          "Auto_ident",
          "In_person",
          "Eid",
          "Post_ident",
          "Qes_bankident"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "TanganyIdentVerifiedType",
          "enumObjects": [
            {
              "label": "Video_ident",
              "value": 3
            },
            {
              "label": "Id_copy",
              "value": 4
            },
            {
              "label": "Auto_ident",
              "value": 5
            },
            {
              "label": "In_person",
              "value": 6
            },
            {
              "label": "Eid",
              "value": 7
            },
            {
              "label": "Post_ident",
              "value": 8
            },
            {
              "label": "Qes_bankident",
              "value": 9
            }
          ]
        }
      },
      "TanganyLegalPersonDto": {
        "required": [
          "legalAddress",
          "legalForm",
          "name",
          "related"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Not required in case of creating new Tangany legal person",
            "format": "uuid",
            "nullable": true
          },
          "name": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "The name of the company. You can re-use the value from company.name."
          },
          "legalForm": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "Legal form of company. E.g. \"AG\", \"GmbH\"."
          },
          "commercialRegister": {
            "maxLength": 255,
            "type": "string",
            "description": "You may leave it blank. Legally speaking, only the register number is required.",
            "nullable": true
          },
          "leiCode": {
            "maxLength": 255,
            "type": "string",
            "description": "LEI code of the company.",
            "nullable": true
          },
          "taxId": {
            "maxLength": 255,
            "type": "string",
            "description": "Tax ID of the company.",
            "nullable": true
          },
          "vatId": {
            "maxLength": 255,
            "type": "string",
            "description": "Vat ID of the company.",
            "nullable": true
          },
          "isinCode": {
            "maxLength": 255,
            "type": "string",
            "description": "ISIN code of the company.",
            "nullable": true
          },
          "legalJurisdiction": {
            "maxLength": 2,
            "type": "string",
            "description": "ISO country code (e.g. \"DE\") where the legal entity is registered. Not mandatory, as this data is captured within the legalAddress object.",
            "nullable": true
          },
          "legalAddress": {
            "$ref": "#/components/schemas/TanganyCustomerAddressDto"
          },
          "postalAddress": {
            "$ref": "#/components/schemas/TanganyCustomerAddressDto"
          },
          "kyc": {
            "$ref": "#/components/schemas/LegalKycDto"
          },
          "related": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RelatedItemDto"
            }
          }
        },
        "additionalProperties": false
      },
      "TanganyNaturalPersonDto": {
        "required": [
          "birthDate",
          "birthPlace",
          "firstName",
          "id",
          "lastName"
        ],
        "type": "object",
        "properties": {
          "id": {
            "minLength": 1,
            "type": "string",
            "description": "Customer ID received after creating a customer in NYALA's system.",
            "format": "uuid"
          },
          "firstName": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "First name of the investor. When sending values with accents (e.g. É, ç, ñ), send the values in UTF-8 charset."
          },
          "lastName": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "Last name of the investor. When sending values with accents (e.g. É, ç, ñ), send the values in UTF-8 charset."
          },
          "birthDate": {
            "minLength": 1,
            "type": "string",
            "description": "Date of birth is a regulatory requirement for the KYC process.",
            "format": "date"
          },
          "birthPlace": {
            "maxLength": 255,
            "minLength": 1,
            "type": "string",
            "description": "Place of birth denoted in the used identification document of the investor."
          },
          "title": {
            "maxLength": 255,
            "type": "string",
            "description": "Titles such as \"Dr.\", \"Prof.\", etc. ",
            "nullable": true
          },
          "gender": {
            "$ref": "#/components/schemas/TanganyGenderType"
          },
          "birthCountry": {
            "maxLength": 2,
            "type": "string",
            "description": "Country of birth using two-letter country code (ISO 3166-1 alpha-2) ",
            "nullable": true
          },
          "birthName": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "nationality": {
            "maxLength": 2,
            "type": "string",
            "description": "ISO country codes (e.g. \"DE\").",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/TanganyCustomerAddressDto"
          },
          "email": {
            "maxLength": 255,
            "type": "string",
            "description": "The email which the investor used to register. You can re-use the same input as from customer creation.",
            "nullable": true
          },
          "selfDeclaredAsPep": {
            "type": "boolean",
            "description": "Indicates whether the investor has self-declared as a Politically Exposed Person (PEP)."
          },
          "kyc": {
            "$ref": "#/components/schemas/TanganyCustomerKycDto"
          }
        },
        "additionalProperties": false
      },
      "TokenizedAssetDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "assetId": {
            "type": "string",
            "nullable": true
          },
          "toiFilePathS3": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "unitName": {
            "maxLength": 10,
            "type": "string",
            "nullable": true
          },
          "totalSupply": {
            "type": "number",
            "format": "double"
          },
          "decimals": {
            "type": "integer",
            "format": "int32"
          },
          "enableFreeze": {
            "type": "boolean"
          },
          "enableClawback": {
            "type": "boolean"
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "metaData": {
            "type": "string",
            "nullable": true
          },
          "issuerAddress": {
            "type": "string",
            "nullable": true
          },
          "distributionAddress": {
            "type": "string",
            "nullable": true
          },
          "blockchain": {
            "$ref": "#/components/schemas/Blockchains"
          },
          "reviewDecision": {
            "$ref": "#/components/schemas/ReviewDecision"
          },
          "reviewedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "reviewer": {
            "type": "string",
            "nullable": true
          },
          "issuingMemo": {
            "type": "string",
            "nullable": true
          },
          "isFungible": {
            "type": "boolean"
          },
          "projectId": {
            "type": "string",
            "format": "uuid"
          },
          "isin": {
            "maxLength": 20,
            "type": "string",
            "nullable": true
          },
          "isRegulatedSecurity": {
            "type": "boolean"
          },
          "isManuallyCreated": {
            "type": "boolean"
          },
          "agentWalletId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "claimIssuerWalletId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "issuerTxId": {
            "type": "string",
            "nullable": true
          },
          "issuerAccountIndex": {
            "type": "integer",
            "format": "int32"
          },
          "agentTxId": {
            "type": "string",
            "nullable": true
          },
          "agentAccountIndex": {
            "type": "integer",
            "format": "int32"
          },
          "agentAddress": {
            "type": "string",
            "nullable": true
          },
          "cissuerAdress": {
            "type": "string",
            "nullable": true
          },
          "tokeFactoryAddress": {
            "type": "string",
            "nullable": true
          },
          "projectName": {
            "type": "string",
            "nullable": true
          },
          "issuerWallet": {
            "$ref": "#/components/schemas/IssuerWalletDto"
          },
          "project": {
            "$ref": "#/components/schemas/ProjectDto"
          },
          "reportEnable": {
            "type": "boolean"
          },
          "created": {
            "type": "string",
            "nullable": true
          },
          "hashValue": {
            "type": "string",
            "nullable": true
          },
          "hasAIPSupport": {
            "type": "boolean"
          },
          "aipSetup": {
            "type": "boolean"
          },
          "aipLastBatchRun": {
            "type": "string",
            "format": "date-time"
          },
          "aipBatchInterval": {
            "type": "integer",
            "format": "int32"
          },
          "aiperC20TokenAddress": {
            "type": "string",
            "nullable": true
          },
          "aipInterestRate": {
            "type": "number",
            "format": "double"
          },
          "customAttributes": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "nullable": true
            },
            "nullable": true
          },
          "firstCouponDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "interestPaymentPeriod": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "numberOfPayments": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "price": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "currency": {
            "$ref": "#/components/schemas/FiatCurrency"
          },
          "nominalAmountPerToken": {
            "type": "string",
            "nullable": true
          },
          "issuerName": {
            "type": "string",
            "nullable": true
          },
          "interestRate": {
            "type": "string",
            "nullable": true
          },
          "duration": {
            "type": "string",
            "nullable": true
          },
          "metaDataUrl": {
            "type": "string",
            "nullable": true
          },
          "shareClass": {
            "type": "string",
            "nullable": true
          },
          "votingRights": {
            "type": "string",
            "nullable": true
          },
          "parValue": {
            "type": "boolean"
          },
          "votingRight": {
            "type": "boolean"
          },
          "companyConsent": {
            "$ref": "#/components/schemas/CompanyConsent"
          },
          "mixedRecordKeeping": {
            "$ref": "#/components/schemas/MixedRecordKeeping"
          },
          "tokenType": {
            "$ref": "#/components/schemas/AssetClassEnum"
          },
          "isAssetClassToken": {
            "type": "boolean"
          },
          "hasColisting": {
            "type": "boolean"
          },
          "paused": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "TokenizedAssetTransferDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "receiverRetailWalletId": {
            "type": "string",
            "format": "uuid"
          },
          "receiverInstitutionId": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "$ref": "#/components/schemas/WalletTransactionStatus"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "txId": {
            "type": "string",
            "nullable": true
          },
          "fromAddress": {
            "type": "string",
            "nullable": true
          },
          "toAddress": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "amountString": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "tokenizedAsset": {
            "$ref": "#/components/schemas/TokenizedAssetDto"
          }
        },
        "additionalProperties": false
      },
      "TransactionActions": {
        "enum": [
          "TxTest",
          "TxNative",
          "TxAsset",
          "IssueAsset",
          "FreezeAsset",
          "ClawbackAssets",
          "OptIn",
          "AuthOptIn",
          "LockAccount",
          "Stake",
          "Unstake",
          "WithdrawRewards",
          "IssueFungibleAsset",
          "TxFungibleAsset",
          "DeployIdentity",
          "RegisterIdentity",
          "RemoveIdentity",
          "TxRetailAsset",
          "PauseToken",
          "MintToken",
          "AssetClassOptin",
          "RegisterAssetClassIdentity",
          "BatchAssetTx",
          "ForceTransfer",
          "Unknown",
          "FreezeToken",
          "UnfreezeToken",
          "UnpauseToken",
          "WalletToWalletTransfer"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "TransactionActions",
          "enumObjects": [
            {
              "label": "TxTest",
              "value": 0
            },
            {
              "label": "TxNative",
              "value": 1
            },
            {
              "label": "TxAsset",
              "value": 2
            },
            {
              "label": "IssueAsset",
              "value": 3
            },
            {
              "label": "FreezeAsset",
              "value": 4
            },
            {
              "label": "ClawbackAssets",
              "value": 5
            },
            {
              "label": "OptIn",
              "value": 6
            },
            {
              "label": "AuthOptIn",
              "value": 7
            },
            {
              "label": "LockAccount",
              "value": 8
            },
            {
              "label": "Stake",
              "value": 9
            },
            {
              "label": "Unstake",
              "value": 10
            },
            {
              "label": "WithdrawRewards",
              "value": 11
            },
            {
              "label": "IssueFungibleAsset",
              "value": 12
            },
            {
              "label": "TxFungibleAsset",
              "value": 13
            },
            {
              "label": "DeployIdentity",
              "value": 14
            },
            {
              "label": "RegisterIdentity",
              "value": 15
            },
            {
              "label": "RemoveIdentity",
              "value": 16
            },
            {
              "label": "TxRetailAsset",
              "value": 17
            },
            {
              "label": "PauseToken",
              "value": 18
            },
            {
              "label": "MintToken",
              "value": 19
            },
            {
              "label": "AssetClassOptin",
              "value": 20
            },
            {
              "label": "RegisterAssetClassIdentity",
              "value": 21
            },
            {
              "label": "BatchAssetTx",
              "value": 22
            },
            {
              "label": "ForceTransfer",
              "value": 23
            },
            {
              "label": "Unknown",
              "value": 24
            },
            {
              "label": "FreezeToken",
              "value": 25
            },
            {
              "label": "UnfreezeToken",
              "value": 26
            },
            {
              "label": "UnpauseToken",
              "value": 27
            },
            {
              "label": "WalletToWalletTransfer",
              "value": 28
            }
          ]
        }
      },
      "UpdateKycData": {
        "required": [
          "address",
          "dateOfBirth",
          "email",
          "eulaAgreed",
          "firstname",
          "highCorruptionIndex",
          "identVerified",
          "lastname",
          "nonPepPerson",
          "nonSanctionedCountry",
          "nonUsTaxPerson",
          "placeOfBirth"
        ],
        "type": "object",
        "properties": {
          "title": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "description": "Title such as \"Dr.\", \"Prof.\", etc.",
            "nullable": true
          },
          "salutation": {
            "type": "string",
            "description": "Salutation such as \"Herr\", \"Frau\", \"Mr.\", \"Ms.\", etc.",
            "nullable": true
          },
          "firstname": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "description": "First name of the investor. When sending values with accents (e.g. É, ç, ñ), send the values in UTF-8 charset."
          },
          "lastname": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "description": "Last name of the investor. When sending values with accents (e.g. É, ç, ñ), send the values in UTF-8 charset."
          },
          "placeOfBirth": {
            "maxLength": 100,
            "minLength": 0,
            "type": "string",
            "description": "Place of birth denoted in the used identification document of the investor."
          },
          "dateOfBirth": {
            "type": "string",
            "description": "Date of birth is a regulatory requirement for the KYC process.",
            "format": "date-time"
          },
          "email": {
            "maxLength": 64,
            "minLength": 0,
            "type": "string",
            "description": "The email which the investor used to register. You can re-use the same input as from customer creation.",
            "format": "email"
          },
          "phoneNumber": {
            "type": "string",
            "description": "Phone number of the investor.",
            "nullable": true
          },
          "taxId": {
            "type": "string",
            "description": "TaxID of the investor.",
            "nullable": true
          },
          "nonPepPerson": {
            "type": "boolean",
            "description": "Relates to the political exposure of the person. Indicates whether the person is NOT a Politically Exposed Person (PEP)."
          },
          "highCorruptionIndex": {
            "type": "boolean",
            "description": "Relates to the country of residence. You can always send \"false\" if your KYC provider performs these checks automatically."
          },
          "nonSanctionedCountry": {
            "type": "boolean",
            "description": "Indicates the investor is NOT residing in a sanctioned country. You can always send \"true\" if your KYC provider performs these checks automatically."
          },
          "nonUsTaxPerson": {
            "type": "boolean",
            "description": "We do not accept persons subjected to US tax. Always set to \"true\" (if the person is not subject to taxes in the USA)."
          },
          "identVerified": {
            "type": "boolean",
            "description": "Only send KYC data of customers that have been verified already. Hence, always set this field to \"true\"."
          },
          "identVerifiedType": {
            "$ref": "#/components/schemas/IdentVerifiedType"
          },
          "tanganyIdentVerifiedType": {
            "$ref": "#/components/schemas/TanganyIdentVerifiedType"
          },
          "eulaAgreed": {
            "type": "boolean",
            "description": "Refers to the Smart Registry terms of use. Ensure that your end users always have to agree to the terms as part of their onboarding process, then always set to \"true\"."
          },
          "address": {
            "$ref": "#/components/schemas/KycAddressDto"
          },
          "company": {
            "$ref": "#/components/schemas/CustomerCompanyDetailDto"
          },
          "nationalityIso": {
            "type": "string",
            "description": "The nationality ISO of the investor. Use ISO 3166-1 alpha-2 country codes. ",
            "nullable": true
          },
          "gender": {
            "$ref": "#/components/schemas/GenderTypes"
          },
          "tanganyLegalPerson": {
            "$ref": "#/components/schemas/TanganyLegalPersonDto"
          },
          "custodyProvider": {
            "$ref": "#/components/schemas/CustodyProvider"
          },
          "document": {
            "$ref": "#/components/schemas/TanganyCustomerKycDocumentDto"
          },
          "monerium": {
            "$ref": "#/components/schemas/MoneriumGanymedeDto"
          }
        },
        "additionalProperties": false
      },
      "UpdateOptInDto": {
        "type": "object",
        "properties": {
          "tokenizedAssetId": {
            "type": "string",
            "format": "uuid"
          },
          "approvedForDelivery": {
            "type": "boolean"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "custodyProvider": {
            "$ref": "#/components/schemas/CustodyProvider"
          }
        },
        "additionalProperties": false
      },
      "WalletTransactionStatus": {
        "enum": [
          "New",
          "Pending",
          "Rejected",
          "Approved",
          "Sent",
          "Successful",
          "Failed",
          "TimedOut",
          "FailedOnBlockChain",
          "RecipientAddressNotFound",
          "RecipientInvalidOptinStatus"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "WalletTransactionStatus",
          "enumObjects": [
            {
              "label": "New",
              "value": 0
            },
            {
              "label": "Pending",
              "value": 1
            },
            {
              "label": "Rejected",
              "value": 2
            },
            {
              "label": "Approved",
              "value": 3
            },
            {
              "label": "Sent",
              "value": 4
            },
            {
              "label": "Successful",
              "value": 5
            },
            {
              "label": "Failed",
              "value": 6
            },
            {
              "label": "TimedOut",
              "value": 7
            },
            {
              "label": "FailedOnBlockChain",
              "value": 8
            },
            {
              "label": "RecipientAddressNotFound",
              "value": 9
            },
            {
              "label": "RecipientInvalidOptinStatus",
              "value": 10
            }
          ]
        }
      },
      "ColistingOnboardCustomer": {
        "type": "object",
        "properties": {
          "naturalPerson": {
            "$ref": "#/components/schemas/NaturalPersonDto"
          },
          "legalPerson": {
            "$ref": "#/components/schemas/LegalPersonDto"
          }
        },
        "additionalProperties": false
      },
      "ColistingOnboardCustomerResult": {
        "type": "object",
        "properties": {
          "naturalPerson": {
            "$ref": "#/components/schemas/FullNaturalPersonDto"
          },
          "legalPerson": {
            "$ref": "#/components/schemas/LegalPersonDto"
          }
        },
        "additionalProperties": false
      },
      "ColistingOnboardCustomerResultApiResponse": {
        "type": "object",
        "properties": {
          "errorMessageCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Error"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/ColistingOnboardCustomerResult"
          }
        },
        "additionalProperties": false
      },
      "ConcedusAttachment": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "description": "Document/file creation date. (e.g: \"2025-03-23\").",
            "nullable": true
          },
          "subject": {
            "type": "string",
            "description": "e.g: \"Identification\".",
            "nullable": true
          },
          "category": {
            "type": "string",
            "description": "e.g: \"KYC\". default: \"Legitimation\".",
            "nullable": true
          },
          "file": {
            "type": "string",
            "description": "Filename. e.g: \"vendorPDF-customer1234.pdf\".",
            "nullable": true
          },
          "key": {
            "type": "string",
            "description": "prefix: ATT.",
            "nullable": true
          },
          "modified": {
            "type": "string",
            "description": "YYYY-MM-DDTHH:mm:ss (ISO 8601) e.g: \"2023-03-27T16:19:50\".",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConcedusCompliance": {
        "required": [
          "pep",
          "pepChecked",
          "sanction",
          "sanctionChecked"
        ],
        "type": "object",
        "properties": {
          "pep": {
            "type": "boolean",
            "description": "Required. PEP status (politically exposed person)."
          },
          "pepChecked": {
            "minLength": 1,
            "type": "string",
            "description": "Required. Time of PEP check. (ISO 8601 timestamp e.g: \"2025-08-12T12:00:00Z\")."
          },
          "sanction": {
            "type": "boolean",
            "description": "Required. Sanction list hit (true/false)."
          },
          "sanctionChecked": {
            "minLength": 1,
            "type": "string",
            "description": "Required. Time of sanction list check. (ISO 8601 timestamp e.g: \"2025-08-12T12:00:00Z\")."
          },
          "pepHit": {
            "maxLength": 256,
            "type": "string",
            "description": "If match. Reason or list for PEP hit.",
            "nullable": true
          },
          "pepListNames": {
            "type": "array",
            "items": {
              "maxLength": 128,
              "type": "string"
            },
            "description": "If match. List(s), in which the customer is listed as PEP.",
            "nullable": true
          },
          "sanctionHit": {
            "maxLength": 256,
            "type": "string",
            "description": "If match. Reason or list for sanction hit.",
            "nullable": true
          },
          "sanctionListNames": {
            "type": "array",
            "items": {
              "maxLength": 128,
              "type": "string"
            },
            "description": "If match. List(s) in which the customer is listed as sanctioned.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConcedusCustomer": {
        "type": "object",
        "properties": {
          "person": {
            "$ref": "#/components/schemas/ConcedusPersonBase"
          },
          "investmentSurveys": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConcedusInvestmentSurvey"
            },
            "nullable": true
          },
          "events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConcedusAttachment"
            },
            "nullable": true
          },
          "key": {
            "type": "string",
            "description": "Prefix: \"CUSTO_\".",
            "nullable": true
          },
          "modified": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConcedusEventsDto": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string",
            "description": "Document/file creation date. (e.g: \"2025-03-23\").",
            "nullable": true
          },
          "subject": {
            "type": "string",
            "description": "e.g: \"Identification\".",
            "nullable": true
          },
          "category": {
            "type": "string",
            "description": "e.g: \"KYC\". default: \"Legitimation\".",
            "nullable": true
          },
          "file": {
            "type": "string",
            "description": "Filename. e.g: \"vendorPDF-customer1234.pdf\".",
            "nullable": true
          },
          "key": {
            "type": "string",
            "description": "prefix: ATT.",
            "nullable": true
          },
          "modified": {
            "type": "string",
            "description": "YYYY-MM-DDTHH:mm:ss (ISO 8601) e.g: \"2023-03-27T16:19:50\".",
            "nullable": true
          },
          "content": {
            "type": "string",
            "description": "File content in base64 string format.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConcedusIdDocument": {
        "required": [
          "docType",
          "documentNumber",
          "expireDate",
          "issueCountry",
          "issueDate"
        ],
        "type": "object",
        "properties": {
          "docType": {
            "minLength": 1,
            "type": "string",
            "description": "PASSPORT, IDCARD."
          },
          "issueCountry": {
            "minLength": 1,
            "pattern": "^[A-Z]{2}$",
            "type": "string"
          },
          "documentNumber": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "additionalNumber": {
            "maxLength": 64,
            "type": "string",
            "nullable": true
          },
          "issueDate": {
            "minLength": 1,
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "YYYY-MM-DD format."
          },
          "expireDate": {
            "minLength": 1,
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "YYYY-MM-DD format."
          }
        },
        "additionalProperties": false
      },
      "ConcedusInvestmentSurvey": {
        "type": "object",
        "properties": {
          "investmentExperience": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvestmentExperienceItem"
            },
            "description": "See: https://docs.concedus.com/import-process/send-data-sets/investment-surveys#investment-experience.",
            "nullable": true
          },
          "investorExperience": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldDto"
            },
            "description": "Name Value pairs.",
            "nullable": true
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldDto"
            },
            "nullable": true
          },
          "key": {
            "type": "string",
            "description": "Prefix: INVST_.",
            "nullable": true
          },
          "modified": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConcedusPersonBase": {
        "type": "object",
        "properties": {
          "type": {
            "type": "integer",
            "format": "int32"
          },
          "precheckPep": {
            "type": "string",
            "description": "Early flag indicating potential PEP hit (client-side precheck). \"True\" if politically engaged person.",
            "nullable": true
          },
          "street": {
            "type": "string",
            "nullable": true
          },
          "zip": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "key": {
            "type": "string",
            "nullable": true
          },
          "modified": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConcedusAttachment"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConcedusPersonRequest": {
        "type": "object",
        "properties": {
          "customers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConcedusCustomer"
            },
            "nullable": true
          },
          "files": {
            "type": "object",
            "additionalProperties": {
              "type": "string",
              "format": "byte",
              "nullable": true
            },
            "nullable": true
          },
          "concedusResponseMessage": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ConcedusPersonRequestApiResponse": {
        "type": "object",
        "properties": {
          "errorMessageCodes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true,
            "readOnly": true
          },
          "errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Error"
            },
            "nullable": true,
            "readOnly": true
          },
          "data": {
            "$ref": "#/components/schemas/ConcedusPersonRequest"
          }
        },
        "additionalProperties": false
      },
      "ConcedusVerification": {
        "required": [
          "approveTime",
          "updateTime",
          "vendor",
          "verificationMethod"
        ],
        "type": "object",
        "properties": {
          "verificationMethod": {
            "minLength": 1,
            "type": "string",
            "description": "enum(VIDEO,QES,BANK)."
          },
          "approveTime": {
            "minLength": 1,
            "type": "string",
            "description": "Time when verification was approved. (ISO 8601 timestamp e.g: \"2025-08-12T12:00:00Z\")."
          },
          "updateTime": {
            "minLength": 1,
            "type": "string",
            "description": "Last update of verification status. (ISO 8601 timestamp e.g: \"2025-08-12T12:00:00Z\")."
          },
          "vendor": {
            "minLength": 1,
            "type": "string",
            "description": "enum(SUMSUB,IDNOW,WEBID,...)"
          }
        },
        "additionalProperties": false
      },
      "NaturalPersonDto": {
        "required": [
          "birthPlace",
          "precheckPep",
          "verification"
        ],
        "type": "object",
        "properties": {
          "customerId": {
            "type": "string",
            "description": "Customer ID. Can be null when adding subperson to legalPerson with other than role 10.",
            "format": "uuid",
            "nullable": true
          },
          "birthPlace": {
            "minLength": 1,
            "type": "string",
            "description": "City/Town. - required."
          },
          "precheckPep": {
            "type": "boolean",
            "description": "Early flag indicating potential PEP hit (client-side precheck). (true/false)."
          },
          "birthCountry": {
            "type": "string",
            "description": "ISO AL2. - optional. e.g: DE.",
            "nullable": true
          },
          "verification": {
            "$ref": "#/components/schemas/ConcedusVerification"
          },
          "idDocument": {
            "$ref": "#/components/schemas/ConcedusIdDocument"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConcedusEventsDto"
            },
            "description": "Concedus \"events\" aka files which can be attached (e.g. pdf).",
            "nullable": true
          },
          "compliance": {
            "$ref": "#/components/schemas/ConcedusCompliance"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldDto"
            },
            "description": "Provides flexible key/value pairs to attach integration-specific metadata (e.g., which KYC provider was used).",
            "nullable": true
          },
          "investmentSurvey": {
            "$ref": "#/components/schemas/InvestmentSurveyDto"
          }
        },
        "additionalProperties": false
      },
      "P2PTransferResultDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "senderWalletId": {
            "type": "string",
            "format": "uuid"
          },
          "recipientWalletId": {
            "type": "string",
            "format": "uuid"
          },
          "result": {
            "type": "string",
            "nullable": true
          },
          "senderOptInStatus": {
            "type": "string",
            "nullable": true
          },
          "recipientOptInStatus": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LegalPersonDto": {
        "type": "object",
        "properties": {
          "companyId": {
            "type": "string",
            "description": "Company ID when update the company. Empty if new company.",
            "format": "uuid",
            "nullable": true
          },
          "precheckPep": {
            "type": "boolean",
            "description": "Early flag indicating potential PEP hit (client-side precheck). (true/false). Required.",
            "nullable": true
          },
          "foundingDate": {
            "type": "string",
            "description": "Date of the company founded. Required. (YYYY-MM-DD).",
            "nullable": true
          },
          "registryNumber": {
            "type": "string",
            "description": "Required. Registry number of company.",
            "nullable": true
          },
          "registryNo": {
            "type": "string",
            "description": "Optional.",
            "nullable": true
          },
          "registryCourt": {
            "type": "string",
            "description": "Optional.",
            "nullable": true
          },
          "taxId": {
            "type": "string",
            "description": "Tax id. Required.",
            "nullable": true
          },
          "legalForm": {
            "type": "string",
            "description": "Legal form. Required. [See documentation] (https://docs.concedus.com/import-process/send-data-sets/send-company-record#company-codes)",
            "nullable": true
          },
          "companyName": {
            "type": "string",
            "description": "Company name. Required.",
            "nullable": true
          },
          "street": {
            "type": "string",
            "description": "Street.  Required.",
            "nullable": true
          },
          "zip": {
            "type": "string",
            "description": "Postal code.  Required.",
            "nullable": true
          },
          "streetNo": {
            "type": "string",
            "description": "Street number.  Required.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "City/Town.  Required.",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "Country.  Required. e.g.: DE.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Email. Required.",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "description": "Phone. Optional.",
            "nullable": true
          },
          "web": {
            "type": "string",
            "description": "Web. Optional.",
            "nullable": true
          },
          "modified": {
            "type": "string",
            "description": "Not required.",
            "nullable": true
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConcedusEventsDto"
            },
            "description": "Concedus \"events\" aka files which can be attached (e.g. pdf).",
            "nullable": true
          },
          "investmentSurvey": {
            "$ref": "#/components/schemas/InvestmentSurveyDto"
          },
          "subPersons": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/SubPersonDto"
            },
            "description": "Subpersons of company. Account owner for example. Required.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "FullNaturalPersonDto": {
        "required": [
          "birthPlace",
          "precheckPep",
          "verification"
        ],
        "type": "object",
        "properties": {
          "customerId": {
            "type": "string",
            "description": "Customer ID. Can be null when adding subperson to legalPerson with other than role 10.",
            "format": "uuid",
            "nullable": true
          },
          "birthPlace": {
            "minLength": 1,
            "type": "string",
            "description": "City/Town. - required."
          },
          "precheckPep": {
            "type": "boolean",
            "description": "Early flag indicating potential PEP hit (client-side precheck). (true/false)."
          },
          "birthCountry": {
            "type": "string",
            "description": "ISO AL2. - optional. e.g: DE.",
            "nullable": true
          },
          "verification": {
            "$ref": "#/components/schemas/ConcedusVerification"
          },
          "idDocument": {
            "$ref": "#/components/schemas/ConcedusIdDocument"
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ConcedusEventsDto"
            },
            "description": "Concedus \"events\" aka files which can be attached (e.g. pdf).",
            "nullable": true
          },
          "compliance": {
            "$ref": "#/components/schemas/ConcedusCompliance"
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldDto"
            },
            "description": "Provides flexible key/value pairs to attach integration-specific metadata (e.g., which KYC provider was used).",
            "nullable": true
          },
          "investmentSurvey": {
            "$ref": "#/components/schemas/InvestmentSurveyDto"
          },
          "firstname": {
            "type": "string",
            "description": "Firstname(s) of natural person. Can be null if CustomerId is not null.",
            "nullable": true
          },
          "lastname": {
            "type": "string",
            "description": "Lastname of natural person. Can be null if CustomerId is not null.",
            "nullable": true
          },
          "salutation": {
            "type": "string",
            "description": "Optional. e.g.: Mr./Mrs./Herr/Frau.",
            "nullable": true
          },
          "title": {
            "type": "string",
            "description": "Optional. Title like \"Dr.\" , \"Prof.\" or \"Prof. Dr.\".",
            "nullable": true
          },
          "nationality": {
            "type": "string",
            "description": "Country code ISO 3166 AL2. Can be null if CustomerId is not null.",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "Country code ISO 3166 AL2. Can be null if CustomerId is not null.",
            "nullable": true
          },
          "zip": {
            "type": "string",
            "description": "Postal code. Can be null if CustomerId is not null.",
            "nullable": true
          },
          "city": {
            "type": "string",
            "description": "City. Can be null if CustomerId is not null.",
            "nullable": true
          },
          "street": {
            "type": "string",
            "description": "Street. Can be null if CustomerId is not null.",
            "nullable": true
          },
          "streetNo": {
            "type": "string",
            "description": "Street number. Can be null if CustomerId is not null.",
            "nullable": true
          },
          "birthDate": {
            "type": "string",
            "description": "Date of birth. Can be null if CustomerId is not null.",
            "nullable": true
          },
          "email": {
            "type": "string",
            "description": "Email. Can be null if CustomerId is not null.",
            "nullable": true
          },
          "phoneNumber": {
            "type": "string",
            "description": "Optional phone number.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "SubPersonDto": {
        "type": "object",
        "properties": {
          "role": {
            "type": "integer",
            "description": "Can be 10, 60, 61, 71. [See documentation] (https://docs.concedus.com/import-process/send-data-sets/send-company-record/company-roles)",
            "format": "int32"
          },
          "person": {
            "$ref": "#/components/schemas/FullNaturalPersonDto"
          }
        },
        "additionalProperties": false
      },
      "CustomFieldDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "description": "Name of custom field.",
            "nullable": true
          },
          "value": {
            "type": "string",
            "description": "Value of custom field.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "InvestmentSurveyDto": {
        "type": "object",
        "properties": {
          "investmentExperience": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvestmentExperienceElement"
            },
            "nullable": true
          },
          "investorExperience": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldDto"
            },
            "nullable": true
          },
          "customFields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CustomFieldDto"
            },
            "nullable": true
          },
          "modified": {
            "type": "string",
            "nullable": true
          },
          "key": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "External dto for investment survey item."
      },
      "InvestmentExperienceElement": {
        "type": "object",
        "properties": {
          "type": {
            "type": "integer",
            "description": "Questions: https://docs.concedus.com/import-process/send-data-sets/investment-surveys#investment-experience\n0 3 4 5 8 10 17.",
            "format": "int32"
          },
          "knowledge": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the required knowledge is present."
          }
        },
        "additionalProperties": false,
        "description": "Represents a user's investment experience, including the type of experience and whether the user possesses investment knowledge."
      },
      "InvestmentExperienceItem": {
        "type": "object",
        "properties": {
          "type": {
            "type": "integer",
            "format": "int32"
          },
          "knowledge": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "tags": [
    {
      "name": "Customer",
      "description": "The first step in the tokenization lifecycle is to create a Customer that will receive the token."
    },
    {
      "name": "Retail Wallet",
      "description": "The second step in the tokenization lifecycle is to request a retail wallet for the Customer newly created. The tokens will be sent to that wallet, and the private key to the wallet will be custodied using our technology."
    }
  ]
}