{
  "openapi": "3.0.4",
  "servers": [
    {
      "url": "https://vault.nyala.de",
      "description": "Production Environment"
    },
    {
      "url": "https://uat.vault.nyala.de",
      "description": "UAT / Sandbox Environment"
    }
  ],
  "info": {
    "title": "Nyala Tokenization API",
    "description": "",
    "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/Project/{institutionId}": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Retrieves a list of projects by institution ID.",
        "operationId": "GetProjectsByInstitutionId",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "The ID of the institution.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ProjectDto"
                      }
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": null
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Error"
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "post": {
        "tags": [
          "Project"
        ],
        "summary": "Creates a new project.",
        "operationId": "CreateProject",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "The identifier of the institution.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The project data.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProjectDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProjectDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProjectDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateProjectDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": "00000000-0000-0000-0000-000000000000"
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Error"
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "put": {
        "tags": [
          "Project"
        ],
        "summary": "Updates a project.",
        "operationId": "UpdateProject",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "The ID of the institution.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The project data transfer object.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProjectDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProjectDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProjectDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateProjectDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "boolean"
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": false
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Error"
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/Project/{institutionId}/{projectId}/optins": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Get Project OptIns.",
        "operationId": "GetProjectOptIns",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "projectId",
            "in": "path",
            "description": "The ID of the project.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/TokenizedAssetOptInDto"
                      }
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": null
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Error"
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/Project/{institutionId}/{projectId}/registry-extract": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Downloads the registry extract for a project.",
        "operationId": "DownloadRegistryExtract",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "The ID of the institution.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "projectId",
            "in": "path",
            "description": "The ID of the project.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/FileResponseDto"
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": null
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Error"
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "post": {
        "tags": [
          "Project"
        ],
        "summary": "Enqueue a task to start the registry extract generation for a specified project and institution.",
        "operationId": "GenerateRegistryExtractV2",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "The ID of the institution.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "projectId",
            "in": "path",
            "description": "The ID of the project.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "boolean"
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": false
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Error"
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/Project/{institutionId}/{projectId}/transfers": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Get Project Transfers.",
        "operationId": "GetProjectTransfers",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "projectId",
            "in": "path",
            "description": "The ID of the project.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/TokenizedAssetTransferDto"
                      }
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": null
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Error"
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/Tokenization/{institutionId}/mint-token-request": {
      "post": {
        "tags": [
          "Tokenization"
        ],
        "summary": "Create a mint token request.",
        "operationId": "CreateMintTokenRequest",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "The ID of the institution.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The data for the mint token request.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMintTokenRequestDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMintTokenRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMintTokenRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMintTokenRequestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "boolean"
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": false
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Error"
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/Tokenization/{institutionId}/tokenized-assets/{tokenized-asset-id}": {
      "get": {
        "tags": [
          "Tokenization"
        ],
        "summary": "Returns details about the given tokenized asset. Details include transfers, open opt-in requests and.",
        "operationId": "GetTokenizedAssetDetails",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "institutionId.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "tokenized-asset-id",
            "in": "path",
            "description": "tokenizedAssetId.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/TokenizedAssetDetailsDto"
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": null
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Error"
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "put": {
        "tags": [
          "Tokenization"
        ],
        "summary": "Finalized tokenized asset creation.",
        "operationId": "FinalizeTokenizedAsset",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "institutionId.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "tokenized-asset-id",
            "in": "path",
            "description": "tokenizedAssetId.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "credentials.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SimpleAccessCredentialsDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimpleAccessCredentialsDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SimpleAccessCredentialsDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SimpleAccessCredentialsDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/TokenizedAssetDto"
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": null
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Error"
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/Tokenization/{institutionId}/tokenized-assets/unit/{tokenized-asset-unit-name}": {
      "get": {
        "tags": [
          "Tokenization"
        ],
        "summary": "Returns tokenized asset by unit name.",
        "operationId": "GetTokenizedAssetByUnitName",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "institutionId.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "tokenized-asset-unit-name",
            "in": "path",
            "description": "tokenUnitName.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/TokenizedAssetDto"
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": null
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Error"
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/Customer/{institutionId}/{customerId}/registry-extract/{fileName}": {
      "get": {
        "tags": [
          "Project"
        ],
        "summary": "Downloads the registry extract file for a specific customer and tokenized asset.",
        "operationId": "DownloadRegistryExtractFile",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "The unique identifier of the institution.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "customerId",
            "in": "path",
            "description": "The unique identifier of the customer.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "fileName",
            "in": "path",
            "description": "The name of the file to download.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/FileResponseDto"
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "string",
                      "nullable": true,
                      "example": null
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Error"
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/Tokenization/{institutionId}/tokenized-asset/{tokenizedAssetId}/send-token-metadata-on-chain": {
      "post": {
        "tags": [
          "Tokenization"
        ],
        "summary": "Sends the token metadata on chain for the given institutional ID and tokenized asset ID.",
        "operationId": "SendTokenMetadataOnChain",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "The ID of the institution.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "tokenizedAssetId",
            "in": "path",
            "description": "The ID of the tokenized asset.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "boolean"
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": false
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Error"
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/Tokenization/{institutionId}/tokenized-assets": {
      "post": {
        "tags": [
          "Tokenization"
        ],
        "summary": "Initialize tokenized asset creation.",
        "operationId": "InitializeTokenizedAssetCreation",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "The identifier of the institution.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The data for initializing tokenized asset creation.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "required": [
                  "isin",
                  "issuerName"
                ],
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "nullable": true
                  },
                  "unitName": {
                    "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
                  },
                  "issuingMemo": {
                    "type": "string",
                    "nullable": true
                  },
                  "distributorWalletId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "agentWalletId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "claimIssuerWalletId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "isFungible": {
                    "type": "boolean"
                  },
                  "projectId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "isin": {
                    "minLength": 1,
                    "type": "string"
                  },
                  "isRegulatedSecurity": {
                    "type": "boolean"
                  },
                  "hasAIPSupport": {
                    "type": "boolean"
                  },
                  "customAttributes": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string",
                      "nullable": true
                    },
                    "nullable": true
                  },
                  "credentials": {
                    "type": "object",
                    "properties": {
                      "passphrase": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "additionalProperties": false
                  },
                  "isManuallyCreated": {
                    "type": "boolean"
                  },
                  "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
                  },
                  "nominalAmountPerToken": {
                    "type": "string",
                    "nullable": true
                  },
                  "issuerName": {
                    "minLength": 1,
                    "type": "string"
                  },
                  "interestRate": {
                    "type": "string",
                    "nullable": true
                  },
                  "duration": {
                    "type": "string",
                    "nullable": true
                  },
                  "shareClass": {
                    "type": "string",
                    "description": "Required for Share Token",
                    "nullable": true
                  },
                  "votingRights": {
                    "type": "string",
                    "description": "Required for Share Token",
                    "nullable": true
                  },
                  "parValue": {
                    "type": "boolean",
                    "description": "Required for Share Token"
                  },
                  "votingRight": {
                    "type": "boolean",
                    "description": "Required for Share Token"
                  },
                  "companyConsent": {
                    "type": "string",
                    "format": "int32"
                  },
                  "mixedRecordKeeping": {
                    "type": "string",
                    "format": "int32"
                  }
                },
                "additionalProperties": false
              }
            },
            "application/json": {
              "schema": {
                "required": [
                  "isin",
                  "issuerName"
                ],
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "nullable": true
                  },
                  "unitName": {
                    "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
                  },
                  "issuingMemo": {
                    "type": "string",
                    "nullable": true
                  },
                  "distributorWalletId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "agentWalletId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "claimIssuerWalletId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "isFungible": {
                    "type": "boolean"
                  },
                  "projectId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "isin": {
                    "minLength": 1,
                    "type": "string"
                  },
                  "isRegulatedSecurity": {
                    "type": "boolean"
                  },
                  "hasAIPSupport": {
                    "type": "boolean"
                  },
                  "customAttributes": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string",
                      "nullable": true
                    },
                    "nullable": true
                  },
                  "credentials": {
                    "type": "object",
                    "properties": {
                      "passphrase": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "additionalProperties": false
                  },
                  "isManuallyCreated": {
                    "type": "boolean"
                  },
                  "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
                  },
                  "nominalAmountPerToken": {
                    "type": "string",
                    "nullable": true
                  },
                  "issuerName": {
                    "minLength": 1,
                    "type": "string"
                  },
                  "interestRate": {
                    "type": "string",
                    "nullable": true
                  },
                  "duration": {
                    "type": "string",
                    "nullable": true
                  },
                  "shareClass": {
                    "type": "string",
                    "description": "Required for Share Token",
                    "nullable": true
                  },
                  "votingRights": {
                    "type": "string",
                    "description": "Required for Share Token",
                    "nullable": true
                  },
                  "parValue": {
                    "type": "boolean",
                    "description": "Required for Share Token"
                  },
                  "votingRight": {
                    "type": "boolean",
                    "description": "Required for Share Token"
                  },
                  "companyConsent": {
                    "type": "string",
                    "format": "int32"
                  },
                  "mixedRecordKeeping": {
                    "type": "string",
                    "format": "int32"
                  }
                },
                "additionalProperties": false
              }
            },
            "text/json": {
              "schema": {
                "required": [
                  "isin",
                  "issuerName"
                ],
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "nullable": true
                  },
                  "unitName": {
                    "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
                  },
                  "issuingMemo": {
                    "type": "string",
                    "nullable": true
                  },
                  "distributorWalletId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "agentWalletId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "claimIssuerWalletId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "isFungible": {
                    "type": "boolean"
                  },
                  "projectId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "isin": {
                    "minLength": 1,
                    "type": "string"
                  },
                  "isRegulatedSecurity": {
                    "type": "boolean"
                  },
                  "hasAIPSupport": {
                    "type": "boolean"
                  },
                  "customAttributes": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string",
                      "nullable": true
                    },
                    "nullable": true
                  },
                  "credentials": {
                    "type": "object",
                    "properties": {
                      "passphrase": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "additionalProperties": false
                  },
                  "isManuallyCreated": {
                    "type": "boolean"
                  },
                  "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
                  },
                  "nominalAmountPerToken": {
                    "type": "string",
                    "nullable": true
                  },
                  "issuerName": {
                    "minLength": 1,
                    "type": "string"
                  },
                  "interestRate": {
                    "type": "string",
                    "nullable": true
                  },
                  "duration": {
                    "type": "string",
                    "nullable": true
                  },
                  "shareClass": {
                    "type": "string",
                    "description": "Required for Share Token",
                    "nullable": true
                  },
                  "votingRights": {
                    "type": "string",
                    "description": "Required for Share Token",
                    "nullable": true
                  },
                  "parValue": {
                    "type": "boolean",
                    "description": "Required for Share Token"
                  },
                  "votingRight": {
                    "type": "boolean",
                    "description": "Required for Share Token"
                  },
                  "companyConsent": {
                    "type": "string",
                    "format": "int32"
                  },
                  "mixedRecordKeeping": {
                    "type": "string",
                    "format": "int32"
                  }
                },
                "additionalProperties": false
              }
            },
            "application/*+json": {
              "schema": {
                "required": [
                  "isin",
                  "issuerName"
                ],
                "type": "object",
                "properties": {
                  "name": {
                    "type": "string",
                    "nullable": true
                  },
                  "unitName": {
                    "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
                  },
                  "issuingMemo": {
                    "type": "string",
                    "nullable": true
                  },
                  "distributorWalletId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "agentWalletId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "claimIssuerWalletId": {
                    "type": "string",
                    "format": "uuid",
                    "nullable": true
                  },
                  "isFungible": {
                    "type": "boolean"
                  },
                  "projectId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "isin": {
                    "minLength": 1,
                    "type": "string"
                  },
                  "isRegulatedSecurity": {
                    "type": "boolean"
                  },
                  "hasAIPSupport": {
                    "type": "boolean"
                  },
                  "customAttributes": {
                    "type": "object",
                    "additionalProperties": {
                      "type": "string",
                      "nullable": true
                    },
                    "nullable": true
                  },
                  "credentials": {
                    "type": "object",
                    "properties": {
                      "passphrase": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "additionalProperties": false
                  },
                  "isManuallyCreated": {
                    "type": "boolean"
                  },
                  "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
                  },
                  "nominalAmountPerToken": {
                    "type": "string",
                    "nullable": true
                  },
                  "issuerName": {
                    "minLength": 1,
                    "type": "string"
                  },
                  "interestRate": {
                    "type": "string",
                    "nullable": true
                  },
                  "duration": {
                    "type": "string",
                    "nullable": true
                  },
                  "shareClass": {
                    "type": "string",
                    "description": "Required for Share Token",
                    "nullable": true
                  },
                  "votingRights": {
                    "type": "string",
                    "description": "Required for Share Token",
                    "nullable": true
                  },
                  "parValue": {
                    "type": "boolean",
                    "description": "Required for Share Token"
                  },
                  "votingRight": {
                    "type": "boolean",
                    "description": "Required for Share Token"
                  },
                  "companyConsent": {
                    "type": "string",
                    "format": "int32"
                  },
                  "mixedRecordKeeping": {
                    "type": "string",
                    "format": "int32"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": "00000000-0000-0000-0000-000000000000"
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string",
                            "nullable": true
                          },
                          "message": {
                            "type": "string",
                            "nullable": true
                          },
                          "field": {
                            "type": "string",
                            "nullable": true
                          }
                        },
                        "additionalProperties": false
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      },
      "patch": {
        "tags": [
          "Tokenization"
        ],
        "summary": "Edits the details of a tokenized asset.",
        "operationId": "EditTokenDetails",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "The identifier of the institution.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The token details to persist (must include the token id).",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/TokenizedAssetDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TokenizedAssetDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TokenizedAssetDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TokenizedAssetDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "boolean"
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": false
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Error"
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/Tokenization/{institutionId}/tokenized-assets/{tokenized-asset-id}/get-set-token-address": {
      "post": {
        "tags": [
          "Tokenization"
        ],
        "summary": "Retrieves the unique address of a token based on its deployment conditions - Just for Polygon Tokens.",
        "operationId": "GetSetTokenAddress",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "institutionId.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "tokenized-asset-id",
            "in": "path",
            "description": "tokenizedAssetId.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "credentials.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SimpleAccessCredentialsDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SimpleAccessCredentialsDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SimpleAccessCredentialsDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SimpleAccessCredentialsDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "boolean"
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": false
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Error"
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/Tokenization/{institutionId}/tokenized-assets/{tokenized-asset-id}/transfer-asset-class": {
      "post": {
        "tags": [
          "Tokenization"
        ],
        "summary": "Send asset class tokenized assets to retail wallets.\nReturns a list of transfer ids.",
        "operationId": "TransferAssetClassTokenizedAssets",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "institutionId.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "tokenized-asset-id",
            "in": "path",
            "description": "tokenizedAssetId.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "data.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "object",
                "properties": {
                  "transfers": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "retailWalletId": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "retailWalletInstitutionId": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "amount": {
                          "type": "number",
                          "format": "double"
                        },
                        "message": {
                          "type": "string",
                          "nullable": true
                        }
                      },
                      "additionalProperties": false
                    },
                    "nullable": true
                  },
                  "batchSize": {
                    "type": "integer",
                    "format": "int32"
                  },
                  "credentials": {
                    "type": "object",
                    "properties": {
                      "passphrase": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            },
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "transfers": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "retailWalletId": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "retailWalletInstitutionId": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "amount": {
                          "type": "number",
                          "format": "double"
                        },
                        "message": {
                          "type": "string",
                          "nullable": true
                        }
                      },
                      "additionalProperties": false
                    },
                    "nullable": true
                  },
                  "batchSize": {
                    "type": "integer",
                    "format": "int32"
                  },
                  "credentials": {
                    "type": "object",
                    "properties": {
                      "passphrase": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            },
            "text/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "transfers": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "retailWalletId": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "retailWalletInstitutionId": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "amount": {
                          "type": "number",
                          "format": "double"
                        },
                        "message": {
                          "type": "string",
                          "nullable": true
                        }
                      },
                      "additionalProperties": false
                    },
                    "nullable": true
                  },
                  "batchSize": {
                    "type": "integer",
                    "format": "int32"
                  },
                  "credentials": {
                    "type": "object",
                    "properties": {
                      "passphrase": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            },
            "application/*+json": {
              "schema": {
                "type": "object",
                "properties": {
                  "transfers": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "retailWalletId": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "retailWalletInstitutionId": {
                          "type": "string",
                          "format": "uuid"
                        },
                        "amount": {
                          "type": "number",
                          "format": "double"
                        },
                        "message": {
                          "type": "string",
                          "nullable": true
                        }
                      },
                      "additionalProperties": false
                    },
                    "nullable": true
                  },
                  "batchSize": {
                    "type": "integer",
                    "format": "int32"
                  },
                  "credentials": {
                    "type": "object",
                    "properties": {
                      "passphrase": {
                        "type": "string",
                        "nullable": true
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "nullable": true
                          },
                          "walletId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "result": {
                            "type": "string",
                            "nullable": true
                          },
                          "optInStatus": {
                            "type": "string",
                            "format": "int32"
                          },
                          "assetClassOptInStatus": {
                            "type": "string",
                            "format": "int32"
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": null
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string",
                            "nullable": true
                          },
                          "message": {
                            "type": "string",
                            "nullable": true
                          },
                          "field": {
                            "type": "string",
                            "nullable": true
                          }
                        },
                        "additionalProperties": false
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/Tokenization/{institutionId}/tokenized-assets/{tokenized-asset-id}/transfer-asset-class-afd": {
      "post": {
        "tags": [
          "Tokenization"
        ],
        "summary": "Initiate transfer for approved for delivery asset class optins.",
        "operationId": "TransferAFDAssetClassTokenizedAssets",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "institutionId.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "tokenized-asset-id",
            "in": "path",
            "description": "tokenizedAssetId.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "credentials.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "type": "object",
                "properties": {
                  "passphrase": {
                    "type": "string",
                    "nullable": true
                  },
                  "keyFileContent": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "additionalProperties": false
              }
            },
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "passphrase": {
                    "type": "string",
                    "nullable": true
                  },
                  "keyFileContent": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "additionalProperties": false
              }
            },
            "text/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "passphrase": {
                    "type": "string",
                    "nullable": true
                  },
                  "keyFileContent": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "additionalProperties": false
              }
            },
            "application/*+json": {
              "schema": {
                "type": "object",
                "properties": {
                  "passphrase": {
                    "type": "string",
                    "nullable": true
                  },
                  "keyFileContent": {
                    "type": "string",
                    "nullable": true
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "boolean"
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": false
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string",
                            "nullable": true
                          },
                          "message": {
                            "type": "string",
                            "nullable": true
                          },
                          "field": {
                            "type": "string",
                            "nullable": true
                          }
                        },
                        "additionalProperties": false
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/Transaction/institutionId/{institutionId}": {
      "post": {
        "tags": [
          "Transaction"
        ],
        "summary": "Retrieves a paginated list of transactions based on the given query parameters.",
        "operationId": "GetTransactions",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "The ID of the institution.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "description": "The query parameters for filtering transactions.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/TransactionsQueryDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransactionsQueryDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TransactionsQueryDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TransactionsQueryDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/TxDtoPaginatedListResponse"
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": null
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Error"
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/Tokenization/tokenized-asset/{tokenizedAssetId}": {
      "patch": {
        "tags": [
          "Tokenization"
        ],
        "summary": "Upload Terms of Issuance file.",
        "operationId": "UpdateTokenizedAsset",
        "parameters": [
          {
            "name": "tokenizedAssetId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "tokenizedAssetData": {
                    "type": "string",
                    "description": "tokenizedAssetData."
                  },
                  "toiRawFile": {
                    "type": "string",
                    "description": "request file to be saved.",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "tokenizedAssetData": {
                  "style": "form"
                },
                "toiRawFile": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "boolean"
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": false
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Error"
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/Tokenization/{institutionId}/tokenized-assets/{tokenizedAssetId}/approve": {
      "put": {
        "tags": [
          "Tokenization"
        ],
        "summary": "Approves the creation of a tokenized asset.",
        "operationId": "ApproveTokenizedAssetCreation",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "The ID of the institution.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "tokenizedAssetId",
            "in": "path",
            "description": "The ID of the tokenized asset.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "boolean"
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": false
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Error"
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/Institution/{institutionId}/generate-annual-registry-extract-v2": {
      "post": {
        "tags": [
          "Annual Registry Extracts"
        ],
        "summary": "Trigger the job for generating annual extracts.",
        "operationId": "GenerateAnnualRegistryExtractV2",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "The unique identifier of the institution.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "type": "boolean"
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": false
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Error"
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/Institution/{institutionId}/annual-registry-extract": {
      "get": {
        "tags": [
          "Annual Registry Extracts"
        ],
        "summary": "Downloads the annual registry extract for a given institution.",
        "operationId": "DownloadAnnualRegistryExtract",
        "parameters": [
          {
            "name": "institutionId",
            "in": "path",
            "description": "The unique identifier of the institution.",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/StreamResponseDto"
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "nullable": true,
                      "example": null
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "BadRequest",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "data": {
                      "nullable": true,
                      "example": null
                    },
                    "errorMessageCodes": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      },
                      "nullable": true,
                      "example": [
                        "InvalidInput",
                        "MissingField"
                      ]
                    },
                    "errors": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Error"
                      },
                      "nullable": true,
                      "example": [
                        {
                          "code": "InvalidInput",
                          "message": "Intstitution id is empty. (00000000-0000-0000-0000-000000000000)",
                          "field": "institutionId"
                        },
                        {
                          "code": "MissingField",
                          "message": "Required field is missing.",
                          "field": "password"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AssetClassEnum": {
        "enum": [
          "Bond",
          "Share"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "AssetClassEnum",
          "enumObjects": [
            {
              "label": "Bond",
              "value": 0
            },
            {
              "label": "Share",
              "value": 1
            }
          ]
        }
      },
      "AssetClassOptInStatus": {
        "enum": [
          "New",
          "Failed",
          "Rejected",
          "AuthorizationFailed",
          "Pending",
          "KycClaimAdded",
          "IdentityDeployed",
          "IdentityRegistered",
          "IdentityRemoved",
          "NotExisting"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "AssetClassOptInStatus",
          "enumObjects": [
            {
              "label": "New",
              "value": 0
            },
            {
              "label": "Failed",
              "value": 1
            },
            {
              "label": "Rejected",
              "value": 2
            },
            {
              "label": "AuthorizationFailed",
              "value": 3
            },
            {
              "label": "Pending",
              "value": 4
            },
            {
              "label": "KycClaimAdded",
              "value": 5
            },
            {
              "label": "IdentityDeployed",
              "value": 6
            },
            {
              "label": "IdentityRegistered",
              "value": 7
            },
            {
              "label": "IdentityRemoved",
              "value": 8
            },
            {
              "label": "NotExisting",
              "value": -1
            }
          ]
        }
      },
      "AssetClassOptInTokenizedAssetStatus": {
        "enum": [
          "New",
          "TransferInitiated",
          "TransferCompleted",
          "TokenFrozen",
          "TransferFailed"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "AssetClassOptInTokenizedAssetStatus",
          "enumObjects": [
            {
              "label": "New",
              "value": 0
            },
            {
              "label": "TransferInitiated",
              "value": 1
            },
            {
              "label": "TransferCompleted",
              "value": 2
            },
            {
              "label": "TokenFrozen",
              "value": 3
            },
            {
              "label": "TransferFailed",
              "value": 4
            }
          ]
        }
      },
      "BalancesInDecimalDto": {
        "type": "object",
        "properties": {
          "nativeBalance": {
            "$ref": "#/components/schemas/DecimalBalanceAmount"
          },
          "nativeFreeDecimalBalanceString": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "nativeLockedDecimalBalanceString": {
            "type": "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
      },
      "Blockchains": {
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "Blockchains",
          "enumObjects": [
            {
              "label": "Stellar",
              "value": 3
            },
            {
              "label": "Polygon",
              "value": 14
            }
          ]
        }
      },
      "CompanyConsent": {
        "enum": [
          "Require",
          "NotRequire"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "CompanyConsent",
          "enumObjects": [
            {
              "label": "Require",
              "value": 0
            },
            {
              "label": "NotRequire",
              "value": 1
            }
          ]
        }
      },
      "CreateMintTokenRequestDto": {
        "required": [
          "amount",
          "institutionId",
          "tokenizedAssetId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "tokenizedAssetId": {
            "type": "string",
            "format": "uuid"
          },
          "institutionId": {
            "type": "string",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "blockchainTransactionId": {
            "type": "string",
            "nullable": true
          },
          "created": {
            "type": "string",
            "nullable": true
          },
          "reviewDecision": {
            "$ref": "#/components/schemas/ReviewDecision"
          },
          "credentials": {
            "$ref": "#/components/schemas/SimpleAccessCredentialsDto"
          }
        },
        "additionalProperties": false
      },
      "CreateProjectDto": {
        "required": [
          "blockchain",
          "entryType",
          "institutionId",
          "name",
          "projectPassphrase",
          "tokenType"
        ],
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "institutionId": {
            "minLength": 1,
            "type": "string",
            "format": "uuid"
          },
          "userId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "startOfSubscription": {
            "type": "string",
            "description": "Optional for Share Token Projects. (YYYY-MM-DD)",
            "nullable": true
          },
          "endOfSubscription": {
            "type": "string",
            "description": "Optional for Share Token Projects. (YYYY-MM-DD)",
            "nullable": true
          },
          "targetIssuanceDate": {
            "type": "string",
            "description": "Optional for Share Token Projects. (YYYY-MM-DD)",
            "nullable": true
          },
          "dueDateOfPayments": {
            "type": "string",
            "description": "Optional. (YYYY-MM-DD)",
            "nullable": true
          },
          "terminationRights": {
            "type": "string",
            "description": "Required for Bond Token Projects ('yes'/'no')",
            "nullable": true
          },
          "issueSize": {
            "minLength": 1,
            "type": "string",
            "allOf": [
              {
                "pattern": "^\\d+$"
              },
              {
                "pattern": "^\\d+$"
              }
            ],
            "description": "A number in string format."
          },
          "currency": {
            "enum": [
              "None",
              "CHF",
              "EUR",
              "USD"
            ],
            "type": "string",
            "description": "Allowed values: 'EUR' / 'CHF'. Default currency is EUR.",
            "nullable": true,
            "x-custom-enum": {
              "name": "FiatCurrency",
              "enumObjects": [
                {
                  "label": "None",
                  "value": 0
                },
                {
                  "label": "CHF",
                  "value": 756
                },
                {
                  "label": "EUR",
                  "value": 1001
                },
                {
                  "label": "USD",
                  "value": 1002
                }
              ]
            }
          },
          "entryType": {
            "minLength": 1,
            "enum": [
              "Collective",
              "Individual"
            ],
            "type": "string",
            "x-custom-enum": {
              "name": "ProjectEntryType",
              "enumObjects": [
                {
                  "label": "Collective",
                  "value": 0
                },
                {
                  "label": "Individual",
                  "value": 1
                }
              ]
            }
          },
          "tokenType": {
            "minLength": 1,
            "enum": [
              "Bond",
              "Share"
            ],
            "type": "string",
            "x-custom-enum": {
              "name": "AssetClassEnum",
              "enumObjects": [
                {
                  "label": "Bond",
                  "value": 0
                },
                {
                  "label": "Share",
                  "value": 1
                }
              ]
            }
          },
          "status": {
            "enum": [
              "Initiated",
              "Live",
              "InProgress",
              "Active",
              "Finished",
              "Terminated",
              "ActionNeeded"
            ],
            "type": "string",
            "nullable": true,
            "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
                }
              ]
            }
          },
          "blockchain": {
            "minLength": 1,
            "enum": [
              "Polygon",
              "Stellar"
            ],
            "type": "string",
            "description": "Allowed values: 'Polygon', 'Stellar' OR 3 (Stellar), 14 (Polygon).",
            "x-custom-enum": {
              "name": "Blockchains",
              "enumObjects": [
                {
                  "label": "Stellar",
                  "value": 3
                },
                {
                  "label": "Polygon",
                  "value": 14
                }
              ]
            }
          },
          "projectPassphrase": {
            "minLength": 10,
            "type": "string",
            "allOf": [
              {
                "pattern": "[A-Z]"
              },
              {
                "pattern": "[a-z]"
              },
              {
                "pattern": "\\d"
              }
            ],
            "description": "Password must be min 10 character and contain at least one uppercase and one lowercase letter"
          }
        },
        "additionalProperties": false
      },
      "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
      },
      "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
            }
          ]
        }
      },
      "FileResponseDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "data": {
            "type": "string",
            "format": "byte",
            "nullable": true
          },
          "contentType": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "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
            }
          ]
        }
      },
      "MixedRecordKeeping": {
        "enum": [
          "True",
          "False"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "MixedRecordKeeping",
          "enumObjects": [
            {
              "label": "True",
              "value": 0
            },
            {
              "label": "False",
              "value": 1
            }
          ]
        }
      },
      "OptInStatus": {
        "enum": [
          "New",
          "Sent",
          "Failed",
          "Rejected",
          "Approved",
          "Revoked",
          "AuthorizationFailed",
          "Pending",
          "KycClaimAdded",
          "IdentityDeployed",
          "IdentityRegistered",
          "IdentityRemoved",
          "TransferInitiated",
          "TransferCompleted",
          "TokenFrozen",
          "NotExisting"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "OptInStatus",
          "enumObjects": [
            {
              "label": "New",
              "value": 0
            },
            {
              "label": "Sent",
              "value": 1
            },
            {
              "label": "Failed",
              "value": 2
            },
            {
              "label": "Rejected",
              "value": 3
            },
            {
              "label": "Approved",
              "value": 4
            },
            {
              "label": "Revoked",
              "value": 5
            },
            {
              "label": "AuthorizationFailed",
              "value": 6
            },
            {
              "label": "Pending",
              "value": 7
            },
            {
              "label": "KycClaimAdded",
              "value": 8
            },
            {
              "label": "IdentityDeployed",
              "value": 9
            },
            {
              "label": "IdentityRegistered",
              "value": 10
            },
            {
              "label": "IdentityRemoved",
              "value": 11
            },
            {
              "label": "TransferInitiated",
              "value": 12
            },
            {
              "label": "TransferCompleted",
              "value": 13
            },
            {
              "label": "TokenFrozen",
              "value": 14
            },
            {
              "label": "NotExisting",
              "value": -1
            }
          ]
        }
      },
      "ProjectDto": {
        "required": [
          "blockchain",
          "institutionId",
          "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
            }
          ]
        }
      },
      "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
            }
          ]
        }
      },
      "RetailWalletTokenizedAssetTransferDto": {
        "type": "object",
        "properties": {
          "tokenizedAssetId": {
            "type": "string",
            "format": "uuid"
          },
          "senderAddress": {
            "type": "string",
            "nullable": true
          },
          "recipientAddress": {
            "type": "string",
            "nullable": true
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "txAction": {
            "$ref": "#/components/schemas/TransactionActions"
          },
          "status": {
            "$ref": "#/components/schemas/WalletTransactionStatus"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "blockchainTxId": {
            "type": "string",
            "nullable": true
          },
          "txInternalId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "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",
        "properties": {
          "passphrase": {
            "type": "string",
            "nullable": true
          },
          "keyFileContent": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TokenizedAssetDetailsDto": {
        "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"
          },
          "transfers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TokenizedAssetTransferDto"
            },
            "nullable": true
          },
          "secondaryMarketTransfers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RetailWalletTokenizedAssetTransferDto"
            },
            "nullable": true
          },
          "optIns": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TokenizedAssetOptInDto"
            },
            "nullable": true
          }
        },
        "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
      },
      "TokenizedAssetOptInDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "txIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionDto"
            },
            "nullable": true
          },
          "modified": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "customerId": {
            "type": "string",
            "format": "uuid"
          },
          "customerName": {
            "type": "string",
            "nullable": true
          },
          "retailWalletId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "retailWalletPublicAddress": {
            "type": "string",
            "nullable": true
          },
          "externalRetailWalletId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "proposedRetailWalletId": {
            "type": "string",
            "format": "uuid"
          },
          "tokenizedAssetId": {
            "type": "string",
            "format": "uuid"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "$ref": "#/components/schemas/OptInStatus"
          },
          "assetClassOptinStatus": {
            "$ref": "#/components/schemas/AssetClassOptInStatus"
          },
          "assetClassOptInTokenizedAssetStatus": {
            "$ref": "#/components/schemas/AssetClassOptInTokenizedAssetStatus"
          },
          "walletAccess": {
            "$ref": "#/components/schemas/RetailWalletAccessLevels"
          },
          "approvedForDelivery": {
            "type": "boolean"
          },
          "isNameHidden": {
            "type": "boolean"
          },
          "amount": {
            "type": "number",
            "format": "double"
          },
          "amountString": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "pricePerToken": {
            "type": "string",
            "nullable": true
          },
          "totalPrice": {
            "type": "number",
            "format": "double",
            "readOnly": true
          },
          "totalPriceString": {
            "type": "string",
            "nullable": true,
            "readOnly": true
          },
          "tokenizedAsset": {
            "$ref": "#/components/schemas/TokenizedAssetDto"
          },
          "issuerWalletId": {
            "type": "string",
            "format": "uuid"
          },
          "issuerWalletSeedId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "customerInstitutionId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "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"
        ],
        "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
            }
          ]
        }
      },
      "TransactionDto": {
        "type": "object",
        "properties": {
          "txAction": {
            "$ref": "#/components/schemas/TransactionActions"
          },
          "created": {
            "type": "string",
            "format": "date-time"
          },
          "txId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TransactionsQueryDto": {
        "type": "object",
        "properties": {
          "take": {
            "type": "integer",
            "format": "int32"
          },
          "skip": {
            "type": "integer",
            "format": "int32"
          },
          "sortPath": {
            "type": "string",
            "nullable": true
          },
          "sortDirection": {
            "type": "string",
            "nullable": true
          },
          "txStatus": {
            "$ref": "#/components/schemas/TxStatus"
          },
          "blockchains": {
            "$ref": "#/components/schemas/Blockchains"
          },
          "txActions": {
            "$ref": "#/components/schemas/TransactionActions"
          },
          "searchText": {
            "type": "string",
            "nullable": true
          },
          "institutionId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "txId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TxDto": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "blockchain": {
            "$ref": "#/components/schemas/Blockchains"
          },
          "institutionId": {
            "type": "string",
            "format": "uuid",
            "nullable": true
          },
          "action": {
            "$ref": "#/components/schemas/TransactionActions"
          },
          "txBody": {
            "type": "string",
            "nullable": true
          },
          "nonce": {
            "type": "integer",
            "format": "int64"
          },
          "created": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "modified": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/TxStatus"
          },
          "retryCounter": {
            "type": "integer",
            "format": "int32"
          },
          "txId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TxDtoPaginatedListResponse": {
        "type": "object",
        "properties": {
          "count": {
            "type": "integer",
            "format": "int32"
          },
          "result": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TxDto"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TxStatus": {
        "enum": [
          "New",
          "Successful",
          "Canceled",
          "Failed",
          "Retrying"
        ],
        "type": "string",
        "format": "int32",
        "x-custom-enum": {
          "name": "TxStatus",
          "enumObjects": [
            {
              "label": "New",
              "value": 1
            },
            {
              "label": "Successful",
              "value": 2
            },
            {
              "label": "Canceled",
              "value": -3
            },
            {
              "label": "Failed",
              "value": -2
            },
            {
              "label": "Retrying",
              "value": -1
            }
          ]
        }
      },
      "UpdateProjectDto": {
        "required": [
          "id",
          "name"
        ],
        "type": "object",
        "properties": {
          "id": {
            "minLength": 1,
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "institutionId": {
            "type": "string",
            "format": "uuid"
          },
          "startOfSubscription": {
            "type": "string",
            "description": "Optional for Share Token Projects (YYYY-MM-DD). If not provided the existing value won't change.",
            "nullable": true
          },
          "endOfSubscription": {
            "type": "string",
            "description": "Optional for Share Token Projects (YYYY-MM-DD). If not provided the existing value won't change.",
            "nullable": true
          },
          "targetIssuanceDate": {
            "type": "string",
            "description": "Optional for Share Token Projects (YYYY-MM-DD). If not provided the existing value won't change.",
            "nullable": true
          },
          "dueDateOfPayments": {
            "type": "string",
            "description": "Optional (YYYY-MM-DD)",
            "nullable": true
          },
          "terminationRights": {
            "type": "string",
            "description": "Allowed values: 'yes' / 'no'. If not provided the existing value won't change.",
            "nullable": true
          },
          "issueSize": {
            "type": "string",
            "description": "A number in string format.",
            "nullable": true
          },
          "entryType": {
            "enum": [
              "Collective",
              "Individual"
            ],
            "type": "string",
            "description": "If not provided the existing value won't change.",
            "nullable": true,
            "x-custom-enum": {
              "name": "ProjectEntryType",
              "enumObjects": [
                {
                  "label": "Collective",
                  "value": 0
                },
                {
                  "label": "Individual",
                  "value": 1
                }
              ]
            }
          },
          "status": {
            "enum": [
              "Initiated",
              "Live",
              "InProgress",
              "Active",
              "Finished",
              "Terminated",
              "ActionNeeded"
            ],
            "type": "string",
            "description": "If not provided the existing value won't change.",
            "nullable": true,
            "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
                }
              ]
            }
          },
          "blockchain": {
            "enum": [
              "Polygon",
              "Stellar"
            ],
            "type": "string",
            "description": "If not provided the existing value won't change. Allowed values: 'Polygon', 'Stellar' OR 3 (Stellar), 14 (Polygon).",
            "nullable": true,
            "x-custom-enum": {
              "name": "Blockchains",
              "enumObjects": [
                {
                  "label": "Stellar",
                  "value": 3
                },
                {
                  "label": "Polygon",
                  "value": 14
                }
              ]
            }
          },
          "currentPassphrase": {
            "type": "string",
            "nullable": true
          },
          "projectPassphrase": {
            "type": "string",
            "nullable": true
          }
        },
        "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
            }
          ]
        }
      },
      "StreamResponseDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "stream": {
            "type": "string",
            "format": "binary",
            "nullable": true
          },
          "contentType": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "description": "API Key header. Example: \"X-API-KEY: {key}\"",
        "name": "X-API-KEY",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "ApiKey": []
    }
  ]
}